सिफारिश प्रणालियों के एनाटॉमी। एक भाग

मैं क्लीवरडाटा में एक डेटा वैज्ञानिक के रूप में काम करता हूं । हम मशीन लर्निंग प्रोजेक्ट्स में लगे हुए हैं, और मशीन लर्निंग आधारित मार्केटिंग सॉल्यूशंस के विकास के लिए सबसे लगातार अनुरोधों में से एक है सिफारिश मॉडल का विकास।

इस लेख में, मैं अनुशंसाकर्ता प्रणालियों के बारे में बात करूंगा, मौजूदा तरीकों का सबसे पूरा अवलोकन देने की कोशिश करूंगा, और उंगलियों पर समझाऊंगा कि एल्गोरिदम कैसे काम करता है। कुछ सामग्री मूवीलेंस प्रयोगशाला की अनुशंसा प्रणालियों पर एक अच्छे पाठ्यक्रम पर आधारित है (जो अधिकांश लोग परीक्षण की सिफारिशों के लिए एक ही डेटासेट से परिचित हैं), शेष व्यक्तिगत अनुभव से है। लेख में दो भाग होते हैं। पहले समस्या के विवरण का वर्णन करता है और सरल (लेकिन लोकप्रिय) अनुशंसा एल्गोरिदम का अवलोकन देता है। दूसरे लेख में मैं अधिक उन्नत तरीकों और कार्यान्वयन के कुछ व्यावहारिक पहलुओं के बारे में बात करूंगा।

स्रोत

समस्या की समीक्षा और बयान


सिफारिशकर्ता प्रणाली का कार्य उपयोगकर्ता को एक उत्पाद के बारे में सूचित करना है जिसे वह किसी निश्चित समय में सबसे अधिक दिलचस्पी ले सकता है। ग्राहक जानकारी प्राप्त करता है, और सेवा गुणवत्ता सेवाओं के प्रावधान पर पैसा बनाती है। आवश्यक रूप से दी जाने वाली वस्तुओं की प्रत्यक्ष बिक्री आवश्यक नहीं है। सेवा आयोगों पर भी कमा सकती है या उपयोगकर्ता की वफादारी बढ़ा सकती है, जो तब विज्ञापन और अन्य आय में बदल जाती है।

व्यवसाय मॉडल के आधार पर, सिफारिशें इसका आधार हो सकती हैं, उदाहरण के लिए, ट्रिपएडवाइजर के साथ, या केवल एक सुविधाजनक अतिरिक्त सेवा हो सकती है (जैसे, उदाहरण के लिए, कुछ ऑनलाइन कपड़ों की दुकान में), ग्राहक अनुभव को बेहतर बनाने और कैटलॉग नेविगेशन को और अधिक बनाने के लिए डिज़ाइन किया गया है। आरामदायक।

ऑनलाइन मार्केटिंग का निजीकरण पिछले दशक का एक स्पष्ट चलन है। मैकिन्से के अनुसार, अमेज़ॅन का 35% राजस्व या नेटफ्लिक्स का 75% राजस्व अनुशंसित उत्पादों से आता है, और यह प्रतिशत बढ़ने की संभावना है। रेफरल सिस्टम ग्राहक को खुश करने के लिए क्या पेशकश करना है, इसके बारे में हैं।

पूरी तरह से सिफारिश सेवाओं की व्याख्या करने के लिए, मैं उन मुख्य विशेषताओं की एक सूची दूंगा जिनके साथ आप किसी भी सिफारिश प्रणाली का वर्णन कर सकते हैं।

  1. सिफारिश का विषय - क्या सिफारिश की है।

    यहां बहुत विविधता है - यह माल (अमेज़ॅन, ओजोन), लेख (Arxiv.org), समाचार (सर्फिंगबर्ड, Yandex.Zen), चित्र (500px), वीडियो (YouTube, नेटफ्लिक्स), लोग (लिंक्डइन, लोनलीप्लानेट), संगीत हो सकते हैं। (Last.fm, भानुमती), प्लेलिस्ट, और अधिक। सामान्य तौर पर, आप कुछ भी सुझा सकते हैं।
  2. सिफारिश का उद्देश्य यह क्यों सिफारिश की है।

    उदाहरण के लिए: खरीदना, सूचित करना, प्रशिक्षण, संपर्क बनाना।
  3. सिफारिश का संदर्भ इस समय उपयोगकर्ता क्या कर रहा है।

    उदाहरण के लिए: सामान देखना, संगीत सुनना, लोगों के साथ बात करना।
  4. सिफारिश का स्रोत यह है कि कौन सिफारिश करता है:

    - दर्शक (ट्रिपएडवाइजर पर औसत रेस्तरां रेटिंग),
    - इच्छुक उपयोगकर्ता
    - विशेषज्ञ समुदाय (कभी-कभी जब यह एक जटिल उत्पाद की बात आती है, जैसे कि, उदाहरण के लिए, शराब)।
  5. वैयक्तिकरण की डिग्री

    गैर-व्यक्तिगत सिफारिशें - जब आपको सभी के समान सिफारिश की जाती है। वे क्षेत्र या समय के आधार पर लक्ष्यीकरण की अनुमति देते हैं, लेकिन आपकी व्यक्तिगत प्राथमिकताओं को ध्यान में नहीं रखते हैं।

    एक अधिक उन्नत विकल्प तब होता है जब सिफारिशें आपके वर्तमान सत्र के डेटा का उपयोग करती हैं। आपने कई उत्पादों को देखा है, और पृष्ठ के निचले भाग में आपको इसी तरह की पेशकश की जाती है।

    व्यक्तिगत सिफारिशें ग्राहक के बारे में सभी उपलब्ध जानकारी का उपयोग करती हैं, जिसमें उसकी खरीद का इतिहास भी शामिल है।
  6. पारदर्शिता।

    लोग अनुशंसा पर अधिक भरोसा करते हैं यदि वे ठीक से समझते हैं कि यह कैसे प्राप्त किया गया था। इसलिए "बेईमान" सिस्टम में चलने का कम जोखिम है जो भुगतान किए गए सामानों को बढ़ावा देता है या रैंकिंग में अधिक महंगा सामान डालता है। इसके अलावा, एक अच्छी सिफारिश करने वाला सिस्टम स्वयं खरीदी गई समीक्षाओं और बिक्री के साथ धोखा करने में सक्षम होना चाहिए।

    वैसे, जोड़तोड़ भी अनजाने में होते हैं। उदाहरण के लिए, जब कोई नई ब्लॉकबस्टर रिलीज़ होती है, तो पहली बात यह है कि प्रशंसक उस पर चलते हैं, तदनुसार, पहले कुछ महीनों के लिए रेटिंग को बहुत कम करके आंका जा सकता है।
  7. सिफारिश का प्रारूप

    यह एक पॉप-अप विंडो हो सकती है, साइट के एक विशिष्ट खंड में प्रदर्शित एक सॉर्ट की गई सूची, स्क्रीन के नीचे एक रिबन, या कुछ और।
  8. एल्गोरिदम।

    कई मौजूदा एल्गोरिदम के बावजूद, वे सभी कई बुनियादी तरीकों को उबालते हैं, जिन्हें बाद में वर्णित किया जाएगा। सबसे शास्त्रीय एल्गोरिदम सारांश-आधारित (गैर-व्यक्तिगत), सामग्री-आधारित (उत्पाद विवरण के आधार पर मॉडल), सहयोगी फ़िल्टरिंग (सहयोगी फ़िल्टरिंग), मैट्रिक्स फैक्टराइजेशन (मैट्रिक्स अपघटन पर आधारित तरीके) और कुछ अन्य हैं।


स्रोत

किसी भी सिफारिश प्रणाली के केंद्र में तथाकथित वरीयता मैट्रिक्स है। यह एक मैट्रिक्स है, जिसके एक अक्ष पर सेवा के सभी क्लाइंट (उपयोगकर्ता) अलग-अलग सेट होते हैं, और दूसरे पर, सिफारिश की वस्तुएं (आइटम)। कुछ जोड़े (उपयोगकर्ता, आइटम) के चौराहे पर, यह मैट्रिक्स रेटिंग्स (रेटिंग्स) से भरा होता है - यह इस उत्पाद में उपयोगकर्ता की रुचि का एक ज्ञात संकेतक है, एक दिए गए पैमाने पर (उदाहरण के लिए, 1 से 5 तक) व्यक्त किया गया है।


उपयोगकर्ता आमतौर पर उन उत्पादों के केवल एक छोटे हिस्से का मूल्यांकन करते हैं जो कैटलॉग में हैं, और सिफारिश प्रणाली का कार्य इस जानकारी को संक्षेप में प्रस्तुत करना है और ग्राहक के अन्य उत्पादों के प्रति दृष्टिकोण का अनुमान लगाना है जिसके बारे में कुछ भी नहीं पता है। दूसरे शब्दों में, आपको ऊपर की छवि में सभी खाली कक्षों को भरने की आवश्यकता है।

लोगों के उपभोग पैटर्न अलग हैं, और नए उत्पादों की सिफारिश करने की आवश्यकता नहीं है। आप दोहराए गए पदों को दिखा सकते हैं, उदाहरण के लिए, स्टॉक को फिर से भरने के लिए। इस सिद्धांत के अनुसार, सामानों के दो समूह प्रतिष्ठित हैं।

  • दोहराने योग्य । उदाहरण के लिए, शैंपू या रेज़र जिनकी हमेशा ज़रूरत होती है।
  • अनोखा । उदाहरण के लिए, ऐसी किताबें या फ़िल्में जिन्हें शायद ही कभी दोबारा हासिल किया जाता है।

यदि उत्पाद को स्पष्ट रूप से किसी एक वर्ग को नहीं सौंपा जा सकता है, तो यह व्यक्तिगत रूप से दोहराने की खरीद की स्वीकार्यता निर्धारित करने के लिए समझ में आता है (कोई व्यक्ति केवल एक निश्चित ब्रांड के पीनट बटर के लिए स्टोर पर जाता है, और किसी के लिए यह सब कुछ जो कैटलॉग में है, कोशिश करना महत्वपूर्ण है)।

"रुचि" की अवधारणा भी व्यक्तिपरक है। कुछ उपयोगकर्ताओं को केवल अपनी पसंदीदा श्रेणी (रूढ़िवादी सिफारिशों) से चीजों की आवश्यकता होती है, जबकि कोई, इसके विपरीत, गैर-मानक उत्पादों या उत्पादों के समूहों (जोखिम भरी सिफारिशों) के लिए अधिक उत्तरदायी होता है। उदाहरण के लिए, वीडियो होस्टिंग उपयोगकर्ता को उसकी पसंदीदा श्रृंखला के केवल नए एपिसोड की सिफारिश कर सकती है, और समय-समय पर उसे नए शो या नई शैलियों को भी फेंक सकती है। आदर्श रूप से, आपको क्लाइंट श्रेणी के मॉडलिंग का उपयोग करके, प्रत्येक क्लाइंट के लिए अलग से सिफारिशें प्रदर्शित करने के लिए एक रणनीति चुननी चाहिए।

उपयोगकर्ता रेटिंग दो तरीकों से प्राप्त की जा सकती है:

  • स्पष्ट रेटिंग - उपयोगकर्ता उत्पाद रेटिंग डालता है, समीक्षा छोड़ता है, पेज पसंद करता है,
  • निहित रेटिंग - उपयोगकर्ता स्पष्ट रूप से अपने रवैये को व्यक्त नहीं करता है, लेकिन एक अप्रत्यक्ष निष्कर्ष उसके कार्यों से निकाला जा सकता है: उसने उत्पाद खरीदा - इसका मतलब है कि वह इसे पसंद करता है, लंबे समय तक विवरण पढ़ें - इसका मतलब है कि इसमें रुचि है, आदि।

बेशक, स्पष्ट प्राथमिकताएं बेहतर हैं - उपयोगकर्ता खुद कहता है कि उसे यह पसंद है। हालांकि, व्यवहार में, सभी साइटें स्पष्ट रूप से अपनी रुचि व्यक्त करने का अवसर प्रदान नहीं करती हैं, और सभी उपयोगकर्ताओं को ऐसा करने की इच्छा नहीं है। दोनों प्रकार की रेटिंग सबसे अधिक बार उपयोग की जाती हैं और एक दूसरे को अच्छी तरह से पूरक करती हैं।

यह भविष्यवाणी (ब्याज की डिग्री की भविष्यवाणी) और खुद की सिफारिश (सिफारिश दिखाते हुए) के बीच अंतर करना भी महत्वपूर्ण है। क्या और कैसे दिखाना है यह एक अलग कार्य है जो भविष्यवाणी कदम पर प्राप्त अनुमानों का उपयोग करता है, लेकिन इसे विभिन्न तरीकों से लागू किया जा सकता है।

कभी-कभी "अनुशंसा" शब्द का उपयोग व्यापक अर्थों में किया जाता है और किसी भी अनुकूलन को संदर्भित करता है, चाहे वह विज्ञापन मेलिंग के लिए ग्राहकों का चयन हो, इष्टतम प्रस्ताव मूल्य निर्धारित करना हो या बस ग्राहक के साथ सबसे अच्छी संचार रणनीति चुनना हो। लेख में, मैं अपने आप को इस शब्द की क्लासिक परिभाषा तक सीमित करता हूं, ग्राहक के लिए सबसे दिलचस्प उत्पाद की पसंद को दर्शाता है।

गैर-व्यक्तिगत सिफारिशें


आइए गैर-व्यक्तिगत सिफारिशों के साथ शुरू करें, क्योंकि वे लागू करने में सबसे आसान हैं। उनमें, उपयोगकर्ता की संभावित रुचि बस उत्पाद की औसत रेटिंग से निर्धारित होती है: "हर कोई इसे पसंद करता है, इसलिए आप इसे पसंद करेंगे।" जब उपयोगकर्ता सिस्टम में लॉग इन नहीं होता है, तो अधिकांश सेवाएं इस सिद्धांत पर काम करती हैं, उदाहरण के लिए, वही ट्रिपएडवाइजर।

अनुशंसाओं को अलग-अलग तरीकों से दिखाया जा सकता है - उत्पाद विवरण (अमेज़ॅन) के किनारे एक बैनर की तरह, एक विशिष्ट पैरामीटर (ट्रिपएडवाइजर), या किसी अन्य द्वारा छांटे गए अनुरोध के परिणामस्वरूप।

उत्पाद की रेटिंग को भी विभिन्न तरीकों से प्रदर्शित किया जा सकता है। यह उत्पाद के बगल में सितारे, पसंद की संख्या, सकारात्मक और नकारात्मक वोटों के बीच अंतर (जैसा कि आमतौर पर मंचों पर किया जाता है), उच्च रेटिंग का अनुपात या रेटिंग का एक हिस्टोग्राम भी हो सकता है। हिस्टोग्राम सबसे अधिक जानकारीपूर्ण तरीका है, लेकिन उनके पास एक खामी है - जब वे उत्पादों को सूचीबद्ध करने की आवश्यकता होती है, तो वे एक-दूसरे के साथ तुलना करना मुश्किल होते हैं।


कोल्ड स्टार्ट की समस्या


एक ठंड की शुरुआत एक विशिष्ट स्थिति है जब सिफारिशकर्ता प्रणाली को सही तरीके से काम करने के लिए पर्याप्त डेटा अभी तक जमा नहीं हुआ है (उदाहरण के लिए, जब कोई उत्पाद नया होता है या बस शायद ही कभी खरीदा जाता है)। यदि औसत रेटिंग की गणना केवल तीन उपयोगकर्ताओं (igor92, xyz_111 और oleg_s) के अनुमानों से की जाती है, तो ऐसा मूल्यांकन स्पष्ट रूप से विश्वसनीय नहीं होगा, और उपयोगकर्ता इसे समझते हैं। अक्सर ऐसी स्थितियों में, रेटिंग्स को कृत्रिम रूप से समायोजित किया जाता है।

पहला तरीका औसत मूल्य नहीं दिखाना है, लेकिन सुचारू औसत (डम्प्ड मीन) है। इसका अर्थ यह है: रेटिंग की एक छोटी संख्या के साथ, प्रदर्शित रेटिंग कुछ प्रकार के सुरक्षित "औसत" संकेतक के लिए अधिक इच्छुक है, और जैसे ही पर्याप्त संख्या में नई रेटिंग एकत्र होती है, "औसत" समायोजन काम करना बंद कर देता है।

एक अन्य दृष्टिकोण प्रत्येक रेटिंग के लिए आत्मविश्वास अंतराल की गणना करना है। गणितीय रूप से, अधिक अनुमान, औसत की कम भिन्नता और इसलिए, इसकी शुद्धता पर अधिक विश्वास। और एक रेटिंग के रूप में, आप उदाहरण के लिए, अंतराल की निचली सीमा (लो सीआई बाउंड) प्रदर्शित कर सकते हैं। इसी समय, यह स्पष्ट है कि इस तरह की प्रणाली काफी रूढ़िवादी होगी, नए उत्पादों के लिए रेटिंग को कम करने की प्रवृत्ति के साथ (जब तक, निश्चित रूप से, यह एक हिट है)।

चूंकि अनुमान एक निश्चित पैमाने (उदाहरण के लिए, 0 से 1 तक) तक सीमित हैं, आत्मविश्वास अंतराल की गणना करने का सामान्य तरीका यहां खराब तरीके से लागू होता है: क्योंकि वितरण पूंछ जो अनंत तक जाती हैं और अंतराल की समरूपता के कारण। इसकी गणना के लिए एक वैकल्पिक और अधिक सटीक तरीका है - विल्सन कॉन्फिडेंस इंटरवल । इस मामले में, लगभग इस तरह के असममित अंतराल प्राप्त होते हैं।


ऊपर की तस्वीर में, औसत रेटिंग का क्षैतिज स्थान प्लॉट किया गया है, और ऊर्ध्वाधर औसत के आसपास फैला हुआ है। रंग अलग-अलग नमूना आकारों (स्पष्ट रूप से, बड़ा नमूना, आत्मविश्वास अंतराल) को इंगित करता है।

गैर-वैयक्तिकृत अनुशंसाओं के लिए कोल्ड स्टार्ट समस्या उतनी ही प्रासंगिक है। यहाँ सामान्य दृष्टिकोण को बदलने के लिए है जिसे इस समय विभिन्न उत्तराधिकारियों के साथ नहीं गिना जा सकता है (उदाहरण के लिए, औसत रेटिंग के साथ बदलें, सरल एल्गोरिथ्म का उपयोग करें, या डेटा एकत्र होने तक किसी उत्पाद का उपयोग न करें)।

सिफारिशों की प्रासंगिकता


कुछ मामलों में, सिफारिश की "ताजगी" पर विचार करना भी महत्वपूर्ण है। यह लेख या फ़ोरम पोस्ट के लिए विशेष रूप से सच है। ताजा प्रविष्टियों को अक्सर शीर्ष पर पहुंचना चाहिए। ऐसा करने के लिए, भिगोना कारकों का उपयोग करें। नीचे मीडिया साइटों पर लेखों की रैंकिंग की गणना के लिए कुछ सूत्र दिए गए हैं।

हैकर समाचार पत्रिका में रेटिंग गणना का उदाहरण:

जहां U = upvotes, D = downvotes, और P (पेनल्टी) - अन्य व्यावसायिक नियमों के कार्यान्वयन के लिए अतिरिक्त समायोजन

Reddit में रेटिंग गणना:

जहाँ U = पक्ष में वोटों की संख्या, D = वोटों की संख्या, T = रिकॉर्डिंग का समय। पहला शब्द "रिकॉर्डिंग गुणवत्ता" का अनुमान लगाता है, और दूसरा समय के लिए सुधार करता है।

जाहिर है, एक सार्वभौमिक सूत्र मौजूद नहीं है, और प्रत्येक सेवा उस सूत्र का आविष्कार करती है जो अपनी समस्या को हल करता है - यह अनुभवजन्य रूप से सत्यापित है।

सामग्री-आधारित अनुशंसाएँ


व्यक्तिगत सिफारिशें उपयोगकर्ता के बारे में जानकारी के अधिकतम उपयोग का सुझाव देती हैं, मुख्य रूप से उसकी पिछली खरीद के बारे में। पहले में से एक सामग्री-आधारित फ़िल्टरिंग दृष्टिकोण था। इस दृष्टिकोण के ढांचे में, उत्पाद (सामग्री) के विवरण की तुलना उसकी पिछली रेटिंग से प्राप्त उपयोगकर्ता के हितों के साथ की जाती है। जितना अधिक उत्पाद इन रुचियों को पूरा करता है, उतनी ही अधिक उपयोगकर्ता की संभावित रुचि का मूल्यांकन किया जाता है। यहां स्पष्ट आवश्यकता यह है कि कैटलॉग के सभी उत्पादों का विवरण होना चाहिए।

ऐतिहासिक रूप से, सामग्री-आधारित सिफारिशों का विषय अक्सर एक असंरचित विवरण के साथ सामान रहा है: फिल्में, किताबें, लेख। इस तरह के संकेत हो सकते हैं, उदाहरण के लिए, पाठ विवरण, समीक्षा, कास्ट और अधिक। हालांकि, कुछ भी साधारण संख्यात्मक या श्रेणीबद्ध संकेतों के उपयोग को नहीं रोकता है।

अनस्ट्रक्चर्ड फीचर्स को टेक्स्ट के लिए एक विशिष्ट तरीके से वर्णित किया जाता है - शब्दों के अंतरिक्ष में वेक्टर ( वेक्टर-स्पेस मॉडल )। इस तरह के वेक्टर का प्रत्येक तत्व एक विशेषता है जो संभावित रूप से उपयोगकर्ता के हित की विशेषता है। इसी तरह, एक उत्पाद एक ही स्थान में एक वेक्टर है।

जैसा कि उपयोगकर्ता सिस्टम के साथ बातचीत करता है (कहते हैं, वह फिल्मों को खरीदता है), उसके द्वारा खरीदे गए सामानों के वेक्टर विवरण संयुक्त (संक्षेप और सामान्यीकृत) एक एकल वेक्टर में होते हैं और इस प्रकार, उनके हितों का एक वेक्टर बनता है। आगे, यह एक उत्पाद खोजने के लिए पर्याप्त है जिसका विवरण हितों के वेक्टर के सबसे करीब है, अर्थात। निकटतम पड़ोसियों को खोजने की समस्या को हल करें।

सभी तत्व समान रूप से महत्वपूर्ण नहीं हैं: उदाहरण के लिए, संबद्ध शब्द, जाहिर है, कोई पेलोड नहीं ले जाते हैं। इसलिए, दो वैक्टर में मेल खाने वाले तत्वों की संख्या निर्धारित करते समय, सभी मापों को पहले उनके महत्व से तौला जाना चाहिए। यह कार्य टीएफ-आईडीएफ परिवर्तन द्वारा हल किया गया है, जिसे टेक्स्ट माइनिंग में जाना जाता है, जो दुर्लभ हितों के लिए अधिक वजन प्रदान करता है। लोकप्रिय लोगों के संयोग की तुलना में दो वैक्टर की निकटता का निर्धारण करने में इस तरह के हितों का संयोग अधिक महत्वपूर्ण है।


यहां TF-IDF सिद्धांत समान रूप से साधारण नाममात्र विशेषताओं पर लागू होता है, जैसे कि, उदाहरण के लिए, शैली, निर्देशक, भाषा। टीएफ - उपयोगकर्ता के लिए विशेषता के महत्व का एक उपाय, आईडीएफ - विशेषता की "दुर्लभता" का एक उपाय।

समान परिवर्तनों का एक पूरा परिवार है (उदाहरण के लिए, BM25 और इसी तरह के), लेकिन पदार्थ में वे सभी TF-IDF के समान तर्क दोहराते हैं: उत्पादों की तुलना करते समय दुर्लभ विशेषताओं में अधिक वजन होना चाहिए। नीचे दी गई छवि बताती है कि TF-IDF का वजन TF और IDF पर कैसे निर्भर करता है। निकटतम क्षैतिज अक्ष DF है: सभी उत्पादों के बीच विशेषता आवृत्ति, सबसे क्षैतिज अक्ष TF है: उपयोगकर्ता की विशेषता आवृत्ति लघुगणक।


कार्यान्वयन के दौरान कुछ बिंदुओं को ध्यान में रखा जा सकता है।

  • व्यक्तिगत शब्दों के बजाय सामानों की वेक्टर-स्पेस प्रस्तुति बनाते समय, आप शिंगल या एन-ग्राम (शब्दों के जोड़े, ट्राइएल्स आदि) का उपयोग कर सकते हैं। यह मॉडल को अधिक विस्तृत बना देगा, लेकिन प्रशिक्षण के लिए अधिक डेटा की आवश्यकता होगी।
  • उत्पाद विवरण के विभिन्न स्थानों में, खोजशब्दों का वजन भिन्न हो सकता है (उदाहरण के लिए, एक फिल्म विवरण में एक शीर्षक, एक संक्षिप्त विवरण और एक विस्तृत विवरण शामिल हो सकता है)।
  • विभिन्न उपयोगकर्ताओं के उत्पाद विवरण अलग-अलग वजन किए जा सकते हैं। उदाहरण के लिए, हम सक्रिय उपयोगकर्ताओं को अधिक वजन दे सकते हैं जिनकी कई रेटिंग हैं।
  • इसी तरह, आप वजन और उत्पाद कर सकते हैं। किसी वस्तु की औसत रेटिंग जितनी अधिक होगी, उसका वजन उतना ही अधिक होगा ( पेजरैंक के समान)।
  • यदि उत्पाद विवरण बाहरी स्रोतों से लिंक की अनुमति देता है, तो आप भ्रमित हो सकते हैं और उत्पाद से संबंधित सभी तृतीय-पक्ष जानकारी का विश्लेषण भी कर सकते हैं।

यह देखा जा सकता है कि सामग्री-आधारित फ़िल्टरिंग लगभग पूरी तरह से खोज इंजन जैसे कि यैंडेक्स और Google में उपयोग किए जाने वाले क्वेरी-दस्तावेज़ मिलान तंत्र को दोहराता है। एकमात्र अंतर खोज क्वेरी के रूप में है - यहां यह उपयोगकर्ता के हितों का वर्णन करने वाला एक वेक्टर है, और अनुरोधित दस्तावेज़ के कीवर्ड हैं। जब खोज इंजनों ने निजीकरण को जोड़ना शुरू किया, तो भेद और भी अधिक मिट गया।

दो वैक्टर की निकटता के उपाय के रूप में, कोसाइन दूरी का सबसे अधिक उपयोग किया जाता है।


जब एक नया मूल्यांकन जोड़ा जाता है, तो हितों का वेक्टर वृद्धिशील रूप से अपडेट किया जाता है (केवल उन तत्वों के लिए जो बदल गए हैं)। जब पुनरावृत्ति होती है, तो नए अनुमानों को थोड़ा और अधिक वजन देने के लिए समझ में आता है, क्योंकि वरीयताएँ भिन्न हो सकती हैं।

सहयोगी फ़िल्टरिंग (उपयोगकर्ता-आधारित विकल्प)


90 के दशक में सिस्टम का यह वर्ग सक्रिय रूप से विकसित होना शुरू हुआ। दृष्टिकोण के भाग के रूप में, अन्य समान उपयोगकर्ताओं के हितों के आधार पर सिफारिशें उत्पन्न की जाती हैं। ऐसी सिफारिशें कई उपयोगकर्ताओं के "सहयोग" का परिणाम हैं। इसलिए विधि का नाम।

एल्गोरिथ्म का क्लासिक कार्यान्वयन k निकटतम पड़ोसियों के सिद्धांत पर आधारित है। उंगलियों पर - प्रत्येक उपयोगकर्ता के लिए, हम उसके लिए सबसे अधिक के समान दिखते हैं (वरीयताओं के संदर्भ में) और अपने पड़ोसियों पर ज्ञात डेटा के साथ उपयोगकर्ता के बारे में जानकारी को पूरक करते हैं। इसलिए, उदाहरण के लिए, यदि यह ज्ञात है कि हितों में आपके पड़ोसी फिल्म "रक्त और कंक्रीट" से खुश हैं, और आपने इसे किसी कारण से नहीं देखा है, तो शनिवार को देखने के लिए यह फिल्म आपको पेश करने का एक शानदार अवसर है।


ऊपर दिया गया चित्र विधि के सिद्धांत को दर्शाता है। वरीयता मैट्रिक्स में, उपयोगकर्ता को पीले रंग में हाइलाइट किया जाता है जिसके लिए हम नए उत्पादों (प्रश्न चिह्न) के लिए रेटिंग निर्धारित करना चाहते हैं। उनके तीन निकटतम पड़ोसियों को नीले रंग में हाइलाइट किया गया है।

"समानता" इस मामले में हितों के "सहसंबंध" का एक पर्याय है और इसे कई मायनों में माना जा सकता है (पियर्सन सहसंबंध के अलावा, एक कोसाइन दूरी भी है, एक जैक्वार्ड दूरी, हैमिंग दूरी, आदि है)।

एल्गोरिथ्म के शास्त्रीय कार्यान्वयन में एक स्पष्ट शून्य है - यह द्विघात जटिलता के कारण व्यवहार में खराब रूप से लागू होता है।वास्तव में, निकटतम पड़ोसी की किसी भी विधि की तरह, इसे उपयोगकर्ताओं के बीच सभी जोड़ीदार दूरी की गणना की आवश्यकता होती है (और लाखों उपयोगकर्ता हो सकते हैं)। यह गणना करना आसान है कि दूरी मैट्रिक्स की गणना की जटिलता क्या होगीहे(n2मीटर)जहाँ n उपयोगकर्ताओं की संख्या है और m उत्पादों की संख्या है। एक मिलियन उपयोगकर्ताओं के साथ, दूरी मैट्रिक्स को स्टोर करने के लिए न्यूनतम 4TB की आवश्यकता होती है।

उच्च प्रदर्शन वाले लोहे को खरीदकर इस समस्या को आंशिक रूप से हल किया जा सकता है। लेकिन अगर आप समझदारी से संपर्क करते हैं, तो एल्गोरिथ्म में सुधार पेश करना बेहतर है:

  • अपडेट हर खरीदारी के साथ नहीं, बल्कि बैचों के साथ (उदाहरण के लिए, दिन में एक बार),
  • दूरी मैट्रिक्स को पूरी तरह से पुनर्गणना न करें, लेकिन इसे नियमित रूप से अपडेट करें,
  • पुनरावृत्त और अनुमानित एल्गोरिदम (जैसे ALS) का विकल्प चुनें।

एल्गोरिथ्म प्रभावी होने के लिए, यह महत्वपूर्ण है कि कुछ मान्यताओं को पूरा किया जाए।

  • लोगों का स्वाद समय के साथ नहीं बदलता (या बदलता है, लेकिन सभी के लिए समान है)।
  • अगर लोगों का स्वाद मेल खाता है, तो वे हर चीज में मेल खाते हैं।

    उदाहरण के लिए, यदि दो ग्राहक एक ही फिल्में पसंद करते हैं, तो उन्हें एक ही किताबें पसंद हैं। यह अक्सर तब होता है जब अनुशंसित उत्पाद सजातीय होते हैं (उदाहरण के लिए, केवल फिल्में)। यदि यह ऐसा नहीं है, तो कुछ ग्राहकों की खाद्य प्राथमिकताएं समान हो सकती हैं, और राजनीतिक विचार सीधे विपरीत होंगे - यहां एल्गोरिदम कम प्रभावी होगा।

वरीयता स्थान (उसके पड़ोसी) में उपयोगकर्ता का पड़ोस, जिसे हम नई सिफारिशें उत्पन्न करने के लिए विश्लेषण करेंगे, अलग-अलग तरीकों से चुना जा सकता है। हम सिस्टम के सभी उपयोगकर्ताओं के साथ सामान्य रूप से काम कर सकते हैं, हम एक निश्चित निकटता सीमा निर्धारित कर सकते हैं, हम कई पड़ोसियों को यादृच्छिक रूप से चुन सकते हैं या n सबसे समान पड़ोसी (यह सबसे लोकप्रिय दृष्टिकोण है) ले सकते हैं।

मूवीलेंस के लेखक पड़ोसियों की इष्टतम संख्या के रूप में फिल्मों के लिए 30-50 पड़ोसियों और 25-100 की मनमानी सिफारिशों के लिए आंकड़े देते हैं। यहां यह स्पष्ट है कि यदि हम बहुत अधिक पड़ोसी लेते हैं, तो हमें यादृच्छिक शोर का अधिक मौका मिलेगा। और इसके विपरीत, अगर हम बहुत कम लेते हैं, तो हमें अधिक सटीक सिफारिशें मिलेंगी, लेकिन कम उत्पादों की सिफारिश की जा सकती है।

डेटा की तैयारी में एक महत्वपूर्ण चरण अनुमानों का सामान्यीकरण है।

डेटा मानकीकरण (स्केलिंग)


चूंकि सभी उपयोगकर्ता अलग-अलग मूल्यांकन करते हैं - कोई एक पंक्ति में पांच डालता है, और आप शायद ही किसी से चार की उम्मीद करते हैं - गणना करने से पहले डेटा को सामान्य करने के लिए बेहतर है, अर्थात। एकल पैमाने पर ले जाएं ताकि एल्गोरिथ्म सही ढंग से उनकी एक-दूसरे से तुलना कर सके।

स्वाभाविक रूप से, अनुमानित अनुमान का उलटा रूपांतरण करके मूल पैमाने में अनुवाद करना होगा (और, यदि आवश्यक हो, तो निकटतम पूर्णांक तक गोल)।

सामान्य करने के कई तरीके हैं:

  • केंद्रित (मतलब-केंद्रित) - उपयोगकर्ता की रेटिंग से हम केवल औसत रेटिंग घटाते हैं,

    * केवल गैर-बाइनरी मैट्रेस के लिए प्रासंगिक
  • मानकीकरण (z- स्कोर) - केंद्रित करने के अलावा, हम उपयोगकर्ता के मानक विचलन द्वारा इसकी रेटिंग को विभाजित करते हैं,

    * यहाँ, रिवर्स रूपांतरण के बाद, रेटिंग पैमाने से परे जा सकती है (यानी, उदाहरण के लिए, पांच-बिंदु पैमाने पर 6), लेकिन ऐसी स्थितियां काफी दुर्लभ हैं और वे केवल निकटतम स्वीकार्य अनुमान की ओर गोल करके हल किए जाते हैं।
  • दोहरा मानकीकरण - पहली बार जब हम उपयोगकर्ता रेटिंग को सामान्य करते हैं, दूसरी बार - उत्पाद रेटिंग।

    यदि फिल्म "द बेस्ट मूवी" की औसत रेटिंग 2.5 है, और उपयोगकर्ता इसे 5 देता है, तो यह एक मजबूत कारक है जो दर्शाता है कि ऐसी फिल्में स्पष्ट रूप से उसके स्वाद के लिए हैं।

दो उपयोगकर्ताओं की प्राथमिकताओं के "समानता" या सहसंबंध को अलग-अलग तरीकों से माना जा सकता है। वास्तव में, हमें केवल दो वैक्टर की तुलना करने की आवश्यकता है। हम सबसे लोकप्रिय में से कुछ को सूचीबद्ध करते हैं।

  1. — , .


    — , .

    50 / min(50, Rating intersection) damping factor, .


  2. — , .. , . .



  3. . , — , .



    — , (.. ), . , .

सहयोगी दृष्टिकोण का एक दिलचस्प विकास तथाकथित ट्रस्ट-आधारित सिफारिशें हैं, जो न केवल उनके हितों के अनुसार लोगों की निकटता को ध्यान में रखते हैं, बल्कि उनकी "सामाजिक" निकटता और उनके बीच विश्वास की डिग्री भी हैं। यदि, उदाहरण के लिए, हम देखते हैं कि फेसबुक पर एक लड़की समय-समय पर अपने दोस्त की ऑडियो रिकॉर्डिंग के साथ एक पृष्ठ पर जाती है, तो वह अपने संगीत स्वाद पर भरोसा करती है। इसलिए, लड़की की सिफारिशें मित्र की प्लेलिस्ट से नए गीतों को पूरी तरह से मिला सकती हैं।


सिफारिशों का औचित्य


यह महत्वपूर्ण है कि उपयोगकर्ता सिफारिश प्रणाली पर भरोसा करता है, और इसके लिए यह सरल और समझने योग्य होना चाहिए। यदि आवश्यक हो, तो सिफारिश की एक समझदार व्याख्या हमेशा उपलब्ध होनी चाहिए (अंग्रेजी शब्दावली स्पष्टीकरण में)।

स्पष्टीकरण के हिस्से के रूप में, पड़ोसियों के उत्पाद के मूल्यांकन को दिखाने के लिए अच्छा है, जिसके अनुसार विशेषता (उदाहरण के लिए, अभिनेता या निर्देशक), एक संयोग था, साथ ही मूल्यांकन (आत्मविश्वास) में सिस्टम का विश्वास भी प्रदर्शित करता था। इंटरफ़ेस को अधिभार नहीं देने के लिए, आप यह सारी जानकारी "मुझे और बताओ" बटन में डाल सकते हैं।

उदाहरण के लिए:

  • "आपको फिल्म पसंद आ सकती है ... क्योंकि यह वहां खेलती है ... और ..."
  • "समान संगीत स्वाद वाले उपयोगकर्ताओं ने एल्बम को रेट किया ... 5. में से 4.5।"

सारांश


इससे लेख का पहला भाग समाप्त हो जाएगा। हमने समस्या के सामान्य विवरण की जांच की, गैर-व्यक्तिगत सिफारिशों के बारे में बात की, दो शास्त्रीय दृष्टिकोण (सामग्री-आधारित और सहयोगी फ़िल्टरिंग) का वर्णन किया, और अनुशंसाओं के विषय पर भी छुआ। सामान्य तौर पर, उत्पादन-तैयार सिफारिश प्रणाली का निर्माण करने के लिए ये दोनों दृष्टिकोण काफी हैं। अगले भाग में, मैं और अधिक आधुनिक तरीकों के बारे में समीक्षा जारी रखूंगा, जिसमें तंत्रिका नेटवर्क और गहन सीखने के साथ-साथ हाइब्रिड मॉडल भी शामिल हैं।

इस बीच, हमारी रिक्तियों को देखें।

Source: https://habr.com/ru/post/hi420499/


All Articles