ए/बी परीक्षण खत्म हो रहा है, और मैं इसके लिए यहां हूं। हस्तक्षेपों के एक छोटे समूह (कभी-कभी केवल एक हस्तक्षेप) का असतत, समयबद्ध मूल्यांकन स्थायी रूप से कार्रवाई योग्य परिणाम नहीं देता है।
ऐसी बहुत सी चीज़ें हैं जिनका आप संभावित रूप से परीक्षण कर सकते हैं। किसी भी वास्तविक दुनिया की व्यावसायिक स्थिति में, परीक्षण करने के लिए चीजों की संख्या बहुत तेजी से बढ़ जाती है - यदि आप ए / बी परीक्षण ढांचे का उपयोग कर रहे हैं। अभिभूत होना परीक्षण दृष्टिकोण की एक सीमा है, परीक्षण वातावरण की विशेषता नहीं है।
एक परीक्षण चलाने में लंबा समय लग सकता है, और बहुत सारे परीक्षण चलाने में लंबा, लंबा समय लग सकता है। आपको सावधान रहना होगा कि अलग-अलग परीक्षण उन उपयोगकर्ताओं में ओवरलैप न हों जिनसे वे प्रभावित होते हैं। आपको उन दिनों और स्थानों से बचना होगा जिन्हें व्यवसाय किसी परीक्षण में शामिल करने के लिए तैयार नहीं है। यह ए/बी परीक्षण चलाने के लिए बहुत से संसाधनों का एकाधिकार करता है।
एक परीक्षण संभावित रूप से हारने वाले वेरिएंट पर बहुत अधिक प्रभाव डालता है - यदि आप एक महीने के लिए A बनाम B चलाते हैं और पाते हैं कि A ने बहुत बेहतर प्रदर्शन किया है, तो इसका मतलब है कि आपने अपने आधे उपयोगकर्ताओं को पूरे महीने कम प्रदर्शन करने वाला वेरिएंट दिखाया। आपने वह सब मूल्य खो दिया। इससे कोई खुश नहीं है।
परीक्षण की दीर्घकालिक प्रभावशीलता कभी भी निश्चित नहीं होती है। आपके द्वारा किए गए किसी भी विकल्प का प्रभाव दिन के समय, सप्ताह के दिन, महीने के समय, वर्ष के समय, विश्व की घटनाओं, बाजार में परिवर्तन से प्रभावित हो सकता है - सिर्फ इसलिए कि A उस महीने B से बेहतर था जिस महीने आपने इसका परीक्षण किया था, इसका मतलब यह नहीं है कि यह हमेशा बेहतर होगा। और कोई A/B परीक्षण आपको इसके परिणामों की शेल्फ-लाइफ नहीं बता सकता है।
यदि आप ए/बी परीक्षण के साथ समस्याओं की थोड़ी अधिक गहन चर्चा चाहते हैं, तो [बबेल](https://अनुकूली नियंत्रण समूह का उपयोग करके एक ही समय में कई प्रयोग चलाएं) पर लोगों की एक अच्छी प्रस्तुति है विषय, और दस्यु फ़ीडबैक पर यह ट्यूटोरियल कई उद्योग जगत के नेताओं का एक अच्छा दृष्टिकोण है।
पारंपरिक A/B टेस्टिंग सेटिंग में, आपके पास वैरिएंट A होता है और आपके पास वैरिएंट B होता है। वास्तविक दुनिया की अधिकांश स्थितियों में, या तो A या B केवल सांख्यिकीय अर्थ में "बेहतर" होता है।
यदि आप एक परीक्षण चलाते हैं और A को 20% सफलता दर मिलती है और B को 10% सफलता दर मिलती है, तो A स्पष्ट रूप से "जीतता है" ... लेकिन उन लोगों के बारे में क्या जिन्होंने B को जवाब दिया? क्या वे ए प्राप्त करने के साथ ठीक होने जा रहे हैं? ए/बी परीक्षण और बैंडिट एल्गोरिदम दोनों ही आपको बहुमत के लिए अपनी अल्पसंख्यक प्राथमिकताओं का त्याग करने के लिए मजबूर करते हैं। यह उस तरह से होना जरूरी नहीं है - बस यही तरीका है कि वे विशेष उपकरण काम करते हैं। एक बेहतर रणनीति उन लोगों को विकल्प A प्राप्त करना है जो विकल्प A को पसंद करते हैं, और विकल्प B उन लोगों को प्राप्त करना है जो विकल्प B का जवाब देते हैं। इसलिए:
आइए उदार बनें और मान लें कि विकल्प बी पर प्रतिक्रिया देने वाले आधे लोगों ने वास्तव में विकल्प ए को जवाब दिया होता अगर वे इसके बजाय इसे देखते।
इसका मत:
इसलिए परिणामों के आधार पर आप प्रत्येक उपचार को कैसे लागू करते हैं, इसे समायोजित करके, आप टेबल पर कम मूल्य छोड़ते हैं। बैंडिट एल्गोरिथम इतना ही करता है — यह दांव को हेज करता है: B, A की तुलना में आधा सफल है, इसलिए आप वास्तव में B को आधा समय दिखाते हैं। आप इसे एक ही समय में कई अलग-अलग विकल्पों के साथ कर सकते हैं (सिर्फ ए और बी नहीं), स्वत: परिनियोजन और पुन: समायोजन परीक्षण चलाने के लिए कम खर्चीला बनाता है, आप वेरिएंट खोने के लिए ज्यादा मूल्य का त्याग नहीं करते हैं, और सिस्टम कर सकता है उपयोगकर्ता प्राथमिकताओं या बड़े निर्णय परिवेश में परिवर्तन के लिए समायोजित करें।
ए/बी परीक्षण की सभी समस्याएं हल हो गईं!
लेकिन यह उल्टा पड़ सकता है।
आप कितनी बार A को पसंद करने वाले लोगों को B दिखाएंगे, या B को पसंद करने वाले लोगों को A दिखाएंगे, क्योंकि आप अपना निर्णय व्यक्तिगत प्राथमिकताओं के बजाय कुल आंकड़ों पर आधारित कर रहे हैं? इस प्रकार की परिस्थितियों में बैंडिट एल्गोरिद्म का A/B परीक्षण से भी खराब प्रदर्शन करना वास्तव में संभव है। और, बेशक, ये सभी चीजें समय के साथ बदल सकती हैं। हो सकता है कि B को पसंद करने वाले लोगों में से आधे वास्तव में समय के साथ A को पसंद करने लगे। , बिल्कुल वैसा ही रहेगा। वह इष्टतम नहीं है।
नियमित बैंडिट एल्गोरिदम में छिपी हुई लागतें होती हैं — या, बल्कि, वे A/B परीक्षणों की लागत लेते हैं और इसे अलग-अलग स्थानों पर घुमाते हैं ताकि आप इसे आसानी से नोटिस न कर सकें। आप अपना एल्गोरिथ्म सेट करते हैं और भेजना शुरू करते हैं और सब कुछ बहुत अच्छा लगता है... जब तक कि आप उन कुछ मुद्दों को महसूस करना शुरू नहीं कर देते जिनका मैंने पिछले पैराग्राफ में उल्लेख किया था। हो सकता है कि ए बनाम बी के लिए वरीयताओं का संतुलन, नए उपयोगकर्ताओं के लिए भिन्न हो, जितना कि लौटने वाले उपयोगकर्ताओं के लिए। हो सकता है कि वे प्राथमिकताएँ अलग-अलग भौगोलिक क्षेत्रों के लिए अलग-अलग हों। शायद अनुभवी उपयोगकर्ताओं को भी उन लोगों में विभाजित किया जा सकता है जो पावर उपयोगकर्ता हैं और जो नियमित हैं। यही कारण है कि लोगों नेप्रासंगिक बैंडिट्स का आविष्कार किया है, जो वास्तव में बैंडिट्स प्लस सेगमेंटेशन के लिए एक फैंसी शब्द है।
अब आपको यह समझने के लिए बहुत अधिक रिपोर्टिंग करनी होगी कि आपके उपयोगकर्ता आधार के कौन से सेगमेंट में अलग-अलग वरीयताएँ प्रोफ़ाइल हो सकती हैं। इसलिए आपने प्रयोगों का विश्लेषण करने के लिए आवश्यक रिपोर्टिंग कम कर दी, लेकिन आपने अपने बैंडिट का दायरा बढ़ाने के लिए आवश्यक रिपोर्टिंग बढ़ा दी। और आपने उस रिपोर्टिंग को वास्तविक दायरे में बदलने के लिए आवश्यक कार्य की मात्रा बढ़ा दी है। और एक बार जब आपके पास ये अलग-अलग सेगमेंट हो जाते हैं, तो आप महसूस करते हैं कि उस संदर्भ को ध्यान में रखने के लिए शायद आपको अधिक क्रिएटिव की आवश्यकता है, इसलिए यह अधिक काम है। और फिर पाइपलाइन बनाने के लिए इंजीनियरिंग का काम है जो सही उपयोगकर्ता को सही बैंडिट में ले जाएगा। और यह सुनिश्चित करने के लिए आपको अपने मैसेजिंग सिस्टम में काम करने की ज़रूरत है कि यह पृष्ठभूमि में चल रही इन सभी चीजों का समर्थन करता है।
तो डाकुओं ने ए/बी परीक्षण की बहुत सारी समस्याओं का समाधान किया है, लेकिन जो डाकू वास्तव में प्रभावी हैं वे नई विश्लेषणात्मक ज़रूरतें और नई तार्किक बाधाएँ पैदा करते हैं जिन्हें हल करना आसान नहीं है। ए/बी परीक्षण अभी भी इतना लोकप्रिय होने के कारणों में से एक है: प्रक्रिया इतनी आम है कि भारी भारोत्तोलन में मदद के लिए बहुत सारे उपकरण हैं।
इसलिए मैंने एक ऐसे उत्पाद के डिजाइन और निर्माण में मदद की जो जटिल प्रासंगिक दस्यु परीक्षण को आसान बनाता है — इतना आसान कि यह आपकी साइट या ऐप पर प्रत्येक व्यक्तिगत उपयोगकर्ता के लिए एक अलग संदर्भ बनाता है। आप उस उत्पाद के बारे में अधिक विवरण यहां प्राप्त कर सकते हैं, यह वास्तव में इस पोस्ट का सार नहीं है, इसलिए मैं इसके बारे में और बात नहीं करूंगा। मैं यहां किस बारे में बात करना चाहता हूं कि हमने प्रति दिन सैकड़ों हजारों व्यक्तिगत अनुकूली परीक्षणों के मूल्यांकन की समस्या को कैसे हल किया।
विवरण arXiv पर हमारे पेपर में पाया जा सकता है।
मैंने प्रयोगों का मूल्यांकन करने के लिए होल्डआउट समूह के निर्माण में निहित व्यावहारिक, विश्लेषणात्मक और कभी-कभी नैतिक चुनौतियों के बारे में पहले भी लिखा है । मैं अभी भी उस पर कायम हूं। हम सिंथेटिक नियंत्रण का उपयोग करके अपने अनुकूली प्रयोगों का मूल्यांकन करते हैं, क्योंकि इसमें किसी भी उपयोगकर्ता को संभावित लाभकारी हस्तक्षेपों से वंचित करना शामिल नहीं है। हालाँकि, पारंपरिक सिंथेटिक नियंत्रण विधियाँ विश्लेषणात्मक नुकसान से भरी हो सकती हैं, क्योंकि आप अनिवार्य रूप से उस वातावरण के लिए आधारभूत डेटा-जनरेटिंग प्रक्रिया का मॉडल कर रहे हैं जिसमें आप अपना प्रयोग कर रहे हैं। बहुत सारे और बहुत सारे समानांतर प्रयोग करें, जिनमें से कई अतिव्यापी वातावरण में होते हैं, और नियंत्रण समस्या का एक विश्लेषणात्मक समाधान ... कठिन हो जाता है।
इसलिए हम उस रास्ते पर नहीं गए।
कई साल पहले हार्वर्ड में गैरी किंग और उनके सहयोगियों ने अवलोकन डेटा से कारण निष्कर्ष निकालने के लिए एक अद्भुत सरल विधि का आविष्कार किया था। इसे मोटे तौर पर सटीक मिलान (सीईएम) कहा जाता है। आप यहां सेमिनल पेपर और सैद्धांतिक आधार यहां पा सकते हैं।
CEM कारण अनुमान की जटिलता को विश्लेषणात्मक तरीकों से दूर ले जाता है - आप जो भी तरीका पसंद करते हैं उसका उपयोग कर सकते हैं - और इसके बजाय इसे डेटासेट निर्माण विधियों में रख सकते हैं। यह एक वर्गीकरण समस्या में असंतुलन डेटासेट के ओवर- या अंडर-सैंपलिंग के समान, वैचारिक रूप से समान है।
हमने महसूस किया कि हम अपने बैंडिट प्रयोगों के लिए उपयुक्त नियंत्रण संदर्भों को खोजने के लिए इसी तरह के तर्क का उपयोग कर सकते हैं, जिसमें मिलान करने के लिए सुविधाओं में से एक के रूप में समय शामिल है। हम पहले से ही कुछ हस्तक्षेप विशेषताओं पर मेल खाते हैं - एक उपयोगकर्ता द्वारा प्राप्त हस्तक्षेप का प्रकार और हस्तक्षेप के समय उपयोगकर्ता द्वारा ऐप पर प्रदर्शित गतिविधि का स्तर। लेकिन फिर हम एक अवलोकन विंडो को भी परिभाषित करते हैं और यह सुनिश्चित करते हैं कि किसी भी मिलान किए गए उपयोगकर्ता को उस हस्तक्षेप के करीब समय अवधि में हस्तक्षेप प्राप्त होगा जिसके लिए हम नियंत्रण की मांग कर रहे हैं, लेकिन हस्तक्षेप की अवलोकन अवधि के भीतर नहीं।
यह हमारे द्वारा चलाए जाने वाले अधिकांश परीक्षणों के लिए उपयोगकर्ता स्तर पर नियंत्रणों का मिलान करने की अनुमति देता है। बैंडिट एल्गोरिदम बड़े पैमाने पर A/B परीक्षण की कुछ जटिलताओं से छुटकारा पा लेते हैं, लेकिन उस जटिलता के अन्य भागों को छिपा देते हैं। हमारी नियंत्रण विधि उस छिपी हुई जटिलता को लेती है और उसका समाधान करती है ताकि हम बैंडिट असाइनमेंट के अनुकूली लाभ प्राप्त कर सकें, लेकिन A/B परीक्षण के स्पष्ट अनुमान और आरोपण।
दोबारा, आप पेपर में arXiv पर अधिक जानकारी प्राप्त कर सकते हैं।