सिफारिशकर्ता सिस्टम - मशीन लर्निंग मॉडल के लिए एक पूर्ण गाइड
उपयोगकर्ताओं को नई सामग्री खोजने में मदद करने के लिए डेटा का लाभ उठाना
सिफारिश प्रणाली: क्यों और कैसे?
अनुशंसाकर्ता सिस्टम एल्गोरिदम हैं जो उन वस्तुओं के लिए वैयक्तिकृत सुझाव प्रदान करते हैं जो प्रत्येक उपयोगकर्ता के लिए सबसे अधिक प्रासंगिक हैं। उपलब्ध ऑनलाइन सामग्री की भारी वृद्धि के साथ, उपयोगकर्ताओं के पास विकल्पों की भरमार हो गई है। इसलिए वेब प्लेटफॉर्म के लिए यह महत्वपूर्ण है कि उपयोगकर्ता संतुष्टि और जुड़ाव बढ़ाने के लिए प्रत्येक उपयोगकर्ता को आइटम की अनुशंसाएं प्रदान करें।
निम्नलिखित सूची उपलब्ध सामग्री की एक बड़ी संख्या के साथ जाने-माने वेब प्लेटफ़ॉर्म के उदाहरण दिखाती है , जिन्हें उपयोगकर्ताओं को रुचि रखने के लिए कुशल अनुशंसाकर्ता सिस्टम की आवश्यकता होती है।
- यूट्यूब । हर मिनट लोग 500 घंटे के वीडियो अपलोड करते हैं , यानी सिर्फ आखिरी घंटे में अपलोड किए गए सभी वीडियो को देखने में एक यूजर को 82 साल लगेंगे।
- Spotify । उपयोगकर्ता 80 मिलियन से अधिक गीत ट्रैक और पॉडकास्ट सुन सकते हैं।
- अमेज़न । उपयोगकर्ता 350 मिलियन से अधिक विभिन्न उत्पाद खरीद सकते हैं ।
स्पष्ट प्रतिक्रिया बनाम अंतर्निहित प्रतिक्रिया
अनुशंसाकर्ता प्रणालियों में, मशीन लर्निंग मॉडल का उपयोग किसी आइटम i पर उपयोगकर्ता यू की रेटिंग की भविष्यवाणी करने के लिए किया जाता है । अनुमान के समय, हम प्रत्येक उपयोगकर्ता को उन वस्तुओं की सलाह देते हैं जिनकी उच्चतम अनुमानित रेटिंग rᵤ ᵢ है ।
इसलिए हमें उपयोगकर्ता प्रतिक्रिया एकत्र करने की आवश्यकता है, ताकि हमारे मॉडल के प्रशिक्षण और मूल्यांकन के लिए हमारे पास जमीनी सच्चाई हो सके। यहाँ स्पष्ट प्रतिक्रिया और अंतर्निहित प्रतिक्रिया के बीच एक महत्वपूर्ण अंतर किया जाना है ।
स्पष्ट प्रतिक्रिया एक रेटिंग है जो उपयोगकर्ता द्वारा किसी वस्तु के साथ अपनी संतुष्टि व्यक्त करने के लिए स्पष्ट रूप से दी जाती है। उदाहरण हैं: किसी उत्पाद को खरीदने के बाद दिए गए 1 से 5 के पैमाने पर सितारों की संख्या, वीडियो देखने के बाद थंब अप/डाउन, आदि। यह प्रतिक्रिया इस बात की विस्तृत जानकारी प्रदान करती है कि उपयोगकर्ता ने किसी आइटम को कितना पसंद किया, लेकिन यह मुश्किल है एकत्र करें क्योंकि अधिकांश उपयोगकर्ता आमतौर पर समीक्षा नहीं लिखते हैं या प्रत्येक आइटम के लिए स्पष्ट रेटिंग नहीं देते हैं जो वे खरीदते हैं।
दूसरी ओर, अप्रत्यक्ष प्रतिक्रिया , यह मानती है कि उपयोगकर्ता-आइटम इंटरैक्शन वरीयताओं का एक संकेत है। उदाहरण हैं: किसी उपयोगकर्ता का खरीदारी/ब्राउज़िंग इतिहास, उपयोगकर्ता द्वारा चलाए गए गीतों की सूची, आदि। यह प्रतिक्रिया अत्यधिक प्रचुर मात्रा में है , लेकिन साथ ही यह कम विस्तृत और अधिक शोर है (उदाहरण के लिए कोई उत्पाद उपहार के रूप में खरीद सकता है कोई और)। हालांकि, इस तरह के उपलब्ध डेटा के विशाल आकार की तुलना में यह शोर नगण्य हो जाता है, और अधिकांश आधुनिक अनुशंसाकर्ता सिस्टम अंतर्निहित प्रतिक्रिया पर भरोसा करते हैं ।
एक बार जब हम स्पष्ट या अंतर्निहित फीडबैक एकत्र कर लेते हैं, तो हम उपयोगकर्ता-आइटम रेटिंग मैट्रिक्स rᵤᵢ बना सकते हैं । स्पष्ट प्रतिक्रिया के लिए, rᵤᵢ में प्रत्येक प्रविष्टि एक संख्यात्मक मान है—उदाहरण के लिए rᵤᵢ = “स्टार्स देन यू टू मूवी आई ”—या “?” यदि उपयोगकर्ता ने आइटम i को रेट नहीं किया है । अंतर्निहित प्रतिक्रिया के लिए, rᵤᵢ में मान एक बूलियन मान हैं जो सहभागिता की उपस्थिति या कमी का प्रतिनिधित्व करते हैं—उदाहरण के लिए rᵤᵢ = "क्या उपयोगकर्ता ने मूवी देखी ? "। ध्यान दें कि मैट्रिक्स rᵤᵢबहुत विरल है, क्योंकि उपयोगकर्ता सभी उपलब्ध सामग्री के बीच कुछ वस्तुओं के साथ बातचीत करते हैं, और वे और भी कम वस्तुओं की समीक्षा करते हैं!
सामग्री-आधारित बनाम सहयोगी फ़िल्टरिंग दृष्टिकोण
सामग्री-आधारित या सहयोगात्मक फ़िल्टरिंग के रूप में उपयोगकर्ता की प्राथमिकताओं की भविष्यवाणी करने के लिए उपयोग की जाने वाली जानकारी के अनुसार सिफारिशकर्ता प्रणाली को वर्गीकृत किया जा सकता है ।
सामग्री-आधारित दृष्टिकोण
सामग्री-आधारित विधियाँ उपयोगकर्ताओं और वस्तुओं का उनके ज्ञात मेटाडेटा द्वारा वर्णन। प्रत्येक आइटम i को प्रासंगिक टैग्स के एक सेट द्वारा दर्शाया जाता है- उदाहरण के लिए IMDb प्लेटफॉर्म की फिल्मों को "एक्शन", "कॉमेडी", आदि के रूप में टैग किया जा सकता है। प्रत्येक उपयोगकर्ता u को एक उपयोगकर्ता प्रोफ़ाइल द्वारा दर्शाया जाता है, जिसे ज्ञात उपयोगकर्ता जानकारी से बनाया जा सकताउदा. लिंग और आयु—या उपयोगकर्ता की पिछली गतिविधि से।
इस दृष्टिकोण के साथ मशीन लर्निंग मॉडल को प्रशिक्षित करने के लिए हम k-NN मॉडल का उपयोग कर सकते हैं । उदाहरण के लिए, यदि हम जानते हैं कि उपयोगकर्ता ने i खरीदा है, तो हम i के समान सुविधाओं वाली उपलब्ध वस्तुओं की अनुशंसा कर सकते हैं ।
इस दृष्टिकोण का लाभ यह है कि आइटम मेटाडेटा पहले से ज्ञात हैं, इसलिए हम इसे कोल्ड-स्टार्ट परिदृश्यों पर भी लागू कर सकते हैं जहां प्लेटफॉर्म पर एक नया आइटम या उपयोगकर्ता जोड़ा गया है और हमारे मॉडल को प्रशिक्षित करने के लिए हमारे पास उपयोगकर्ता-आइटम इंटरैक्शन नहीं है। . नुकसान यह है कि हम ज्ञात उपयोगकर्ता-आइटम इंटरैक्शन के पूर्ण सेट का उपयोग नहीं करते हैं (प्रत्येक उपयोगकर्ता को स्वतंत्र रूप से माना जाता है), और हमें प्रत्येक आइटम और उपयोगकर्ता के लिए मेटाडेटा जानकारी जानने की आवश्यकता होती है।
सहयोगी फ़िल्टरिंग दृष्टिकोण
सहयोगात्मक फ़िल्टरिंग विधियाँ आइटम या उपयोगकर्ता मेटाडेटा का उपयोग नहीं करती हैं, बल्कि इसके बजाय सभी उपयोगकर्ताओं के फीडबैक या गतिविधि इतिहास का लाभ उठाने का प्रयास करती हैं ताकि किसी दिए गए आइटम पर उपयोगकर्ता की रेटिंग का अनुमान लगाया जा सके और देखी गई गतिविधियों से उपयोगकर्ताओं और वस्तुओं के बीच अन्योन्याश्रितता का अनुमान लगाया जा सके।
इस दृष्टिकोण के साथ एक मशीन लर्निंग मॉडल को प्रशिक्षित करने के लिए हम आमतौर पर रेटिंग मैट्रिक्स rᵤᵢ को क्लस्टर या फ़ैक्टराइज़ करने की कोशिश करते हैं ताकि अनदेखे जोड़े ( u,i ), यानी जहां rᵤᵢ = "?" पर भविष्यवाणियां की जा सकें। इस लेख में निम्नलिखित में हम मैट्रिक्स फैक्टराइजेशन एल्गोरिथम प्रस्तुत करते हैं , जो इस वर्ग की सबसे लोकप्रिय विधि है।
इस दृष्टिकोण का लाभ यह है कि उपयोगकर्ता-आइटम इंटरैक्शन (यानी मैट्रिक्स rᵤᵢ ) के पूरे सेट का उपयोग किया जाता है, जो आमतौर पर सामग्री-आधारित मॉडल का उपयोग करने की तुलना में उच्च सटीकता प्राप्त करने की अनुमति देता है। इस दृष्टिकोण का नुकसान यह है कि मॉडल को फिट करने से पहले इसमें कुछ उपयोगकर्ता सहभागिता की आवश्यकता होती है।
हाइब्रिड दृष्टिकोण
अंत में, हाइब्रिड तरीके भी हैं जो ज्ञात मेटाडेटा और अवलोकन किए गए उपयोगकर्ता-आइटम इंटरैक्शन के सेट दोनों का उपयोग करने का प्रयास करते हैं। यह दृष्टिकोण सामग्री-आधारित और सहयोगी फ़िल्टरिंग विधियों दोनों के लाभों को जोड़ता है, और सर्वोत्तम परिणाम प्राप्त करने की अनुमति देता है। बाद में इस लेख में हम लाइटएफएम पेश करते हैं , जो इस वर्ग के तरीकों का सबसे लोकप्रिय एल्गोरिदम है।
सहयोगी फ़िल्टरिंग: मैट्रिक्स फ़ैक्टराइज़ेशन
सिफारिश करने वाले सिस्टम के लिए मैट्रिक्स फैक्टराइजेशन एल्गोरिदम शायद सबसे लोकप्रिय और प्रभावी सहयोगी फ़िल्टरिंग तरीके हैं। मैट्रिक्स गुणनखंडन एक अव्यक्त कारक मॉडल है जो यह मानता है कि प्रत्येक उपयोगकर्ता यू और आइटम i के लिए अव्यक्त वेक्टर प्रतिनिधित्व हैं pᵤ, qᵢ ∈ R ᶠ st rᵤᵢ को विशिष्ट रूप से व्यक्त किया जा सकता है - अर्थात "कारक" - pᵤ और qᵢ के संदर्भ में । पायथन पुस्तकालय आश्चर्य इन विधियों के उत्कृष्ट कार्यान्वयन प्रदान करता है।
स्पष्ट प्रतिक्रिया के लिए मैट्रिक्स फैक्टराइजेशन
एक रेखीय मॉडल के माध्यम से उपयोगकर्ता-आइटम इंटरैक्शन को मॉडल करना सबसे सरल विचार है । pᵤ और qᵢ के मूल्यों को जानने के लिए , हम जोड़े ( u , i ) के सेट K पर एक नियमित MSE हानि को कम कर सकते हैं जिसके लिए rᵤᵢ ज्ञात है। इस प्रकार प्राप्त एल्गोरिथम को संभाव्य मैट्रिक्स गुणनखंडन (पीएमएफ) कहा जाता है ।
हानि समारोह को दो अलग-अलग तरीकों से कम किया जा सकता है। पहला दृष्टिकोण स्टोचैस्टिक ग्रेडिएंट डिसेंट (SGD) का उपयोग करना है । SGD को लागू करना आसान है, लेकिन इसमें कुछ समस्याएँ हो सकती हैं क्योंकि pᵤ और qᵢ दोनों अज्ञात हैं और इसलिए हानि फ़ंक्शन उत्तल नहीं है। इस समस्या को हल करने के लिए, हम वैकल्पिक रूप से मान pᵤ और qᵢ को ठीक कर सकते हैं और एक उत्तल रैखिक प्रतिगमन समस्या प्राप्त कर सकते हैं जिसे साधारण न्यूनतम वर्गों (OLS) के साथ आसानी से हल किया जा सकता है । इस दूसरी विधि को कम से कम वर्गों (एएलएस) के रूप में जाना जाता है और महत्वपूर्ण समांतरता और गति की अनुमति देता है।
पीएमएफ एल्गोरिदम को बाद में एकवचन मूल्य अपघटन (एसवीडी) एल्गोरिदम द्वारा सामान्यीकृत किया गया, जिसने मॉडल में पूर्वाग्रह शर्तों को पेश किया। अधिक विशेष रूप से, bᵤ और bᵢ क्रमशः उपयोगकर्ता u और आइटम i के रेटिंग विचलन को मापते हैं, जबकि μ समग्र औसत रेटिंग है। ये शब्द अक्सर देखी गई अधिकांश रेटिंग की व्याख्या करते हैं , क्योंकि कुछ आइटम व्यापक रूप से बेहतर/खराब रेटिंग प्राप्त करते हैं, और कुछ उपयोगकर्ता अपनी रेटिंग के साथ लगातार अधिक/कम उदार होते हैं।
निहित प्रतिक्रिया के लिए मैट्रिक्स गुणनखंडन
एसवीडी पद्धति को अंतर्निहित फीडबैक डेटासेट के लिए अनुकूलित किया जा सकता है । विश्वास के अप्रत्यक्ष उपाय के रूप में अंतर्निहित प्रतिक्रिया को देखने का विचार है । मान लेते हैं कि निहित प्रतिक्रिया tᵤᵢ उस फिल्म के प्रतिशत को मापती है जिसे उपयोगकर्ता ने देखा है - उदाहरण के लिए tᵤᵢ = 0 का अर्थ है कि आपने कभी नहीं देखा i , tᵤᵢ = 0.1 का अर्थ है कि उसने इसका केवल 10% देखा, tᵤᵢ = 2 का अर्थ है कि उसने देखा यह दो बार। सहज रूप से, एक उपयोगकर्ता को उस फिल्म में दिलचस्पी लेने की अधिक संभावना होती है जिसे उन्होंने दो बार देखा, बजाय उस फिल्म में जिसे उन्होंने कभी नहीं देखा। इसलिए हम एक परिभाषित करते हैं आत्मविश्वास मैट्रिक्स cᵤᵢ और एक रेटिंग मैट्रिक्स rᵤᵢ निम्नानुसार है।
फिर, हम एसवीडी के लिए उपयोग किए जाने वाले समान रैखिक मॉडल का उपयोग करके देखे गए आरᵤᵢ को मॉडल कर सकते हैं , लेकिन थोड़े अलग नुकसान फ़ंक्शन के साथ। सबसे पहले, हम सभी ( यू , आई ) जोड़े पर नुकसान की गणना करते हैं - स्पष्ट मामले के विपरीत, यदि उपयोगकर्ता ने कभी भी मेरे साथ बातचीत नहीं की है तो हमारे पास rᵤᵢ = "?" के बजाय rᵤᵢ = 0 है? . दूसरा, हम प्रत्येक नुकसान की अवधि को इस विश्वास के आधार पर भारित करते हैं कि आप मुझे पसंद करते हैं ।
अंत में, SVD++ एल्गोरिथम का उपयोग तब किया जा सकता है जब हमारे पास स्पष्ट और निहित दोनों फीडबैक तक पहुंच हो। यह बहुत उपयोगी हो सकता है, क्योंकि आम तौर पर उपयोगकर्ता कई वस्तुओं (= अंतर्निहित फ़ीडबैक) के साथ बातचीत करते हैं, लेकिन उनमें से केवल एक छोटे उपसमुच्चय (= स्पष्ट प्रतिक्रिया) को रेट करते हैं। आइए, प्रत्येक उपयोगकर्ता u के लिए, उन वस्तुओं के सेट N(u) को निरूपित करें जिनके साथ आपने इंटरैक्ट किया है। फिर, हम मानते हैं कि एक आइटम जे के साथ एक निहित बातचीत एक नए अव्यक्त वेक्टर zⱼ ∈ R ᶠ के साथ जुड़ा हुआ है । एसवीडी++ एल्गोरिथम एसवीडी के रैखिक मॉडल को उपयोगकर्ता के प्रतिनिधित्व में इन अव्यक्त कारकों zⱼ के भारित योग को शामिल करके संशोधित करता है।
हाइब्रिड दृष्टिकोण: लाइटएफएम
मैट्रिक्स फैक्टराइजेशन पर आधारित सहयोगात्मक फ़िल्टरिंग विधियां अक्सर उत्कृष्ट परिणाम देती हैं, लेकिन कोल्ड-स्टार्ट परिदृश्यों में— जहां नए आइटम और उपयोगकर्ताओं के लिए बहुत कम या कोई इंटरैक्शन डेटा उपलब्ध नहीं होता है—वे अच्छी भविष्यवाणी नहीं कर सकते क्योंकि उनके पास गुप्त कारकों का अनुमान लगाने के लिए डेटा की कमी होती है। मैट्रिक्स फैक्टराइजेशन मॉडल को बेहतर बनाने के लिए हाइब्रिड दृष्टिकोण ज्ञात वस्तु या उपयोगकर्ता मेटाडेटा का लाभ उठाकर इस समस्या को हल करते हैं। पायथन लाइब्रेरी लाइटएफएम सबसे लोकप्रिय हाइब्रिड एल्गोरिदम में से एक को लागू करता है।
लाइटएफएम में, हम मानते हैं कि प्रत्येक उपयोगकर्ता यू के लिए हमने एयू (यू) टैग एनोटेशन का एक सेट एकत्र किया है - उदाहरण के लिए "पुरुष" , "उम्र <30" , ... - और इसी तरह प्रत्येक आइटम में एएन (i) एनोटेशन का एक सेट है। - उदाहरण के लिए "मूल्य> 100 $" , "पुस्तक" , ... फिर हम प्रत्येक उपयोगकर्ता टैग को एक अव्यक्त कारक xᵁₐ ∈ Rᶠ और पूर्वाग्रह शब्द bᵁₐ ∈ R द्वारा मॉडल करते हैं, और हम मानते हैं कि उपयोगकर्ता वेक्टर प्रतिनिधित्व pᵤ और उससे संबंधित पूर्वाग्रह bᵤ को केवल इन शब्दों xᵁₐ के योग के रूप में व्यक्त किया जा सकता है और bᵁₐ , क्रमशः। हम आइटम टैग के लिए एक ही दृष्टिकोण अपनाते हैं, गुप्त कारकों xᴵₐ ∈ Rᶠ और पूर्वाग्रह शब्दों bᴵₐ ∈ R का उपयोग करते हुए। एक बार जब हम इन सूत्रों का उपयोग करके pᵤ, qᵢ, bᵤ, bᵢ परिभाषित कर लेते हैं, तो हम संबंध का वर्णन करने के लिए SVD के समान रैखिक मॉडल का उपयोग कर सकते हैं। इन शर्तों और rᵤᵢ के बीच ।
ध्यान दें कि लाइटएफएम के इस हाइब्रिड दृष्टिकोण के तीन रोचक मामले हैं।
- ठंडी शुरुआत। यदि हमारे पास ज्ञात टैग Aᴵ(i) के साथ एक नया आइटम i है , तो हम इसके एम्बेडिंग qᵢ की गणना करने के लिए गुप्त वैक्टर xᴵₐ (पिछले डेटा पर हमारे मॉडल को फिट करके प्राप्त किया गया) का उपयोग कर सकते हैं , और इसलिए किसी भी उपयोगकर्ता के लिए इसकी रेटिंग rᵤᵢ का अनुमान लगा सकते हैं। .
- कोई टैग उपलब्ध नहीं है। यदि हमारे पास आइटम या उपयोगकर्ताओं के लिए कोई ज्ञात मेटाडेटा नहीं है, तो हम केवल एक एनोटेशन का उपयोग कर सकते हैं जो एक संकेतक फ़ंक्शन है, यानी प्रत्येक उपयोगकर्ता और प्रत्येक आइटम के लिए एक अलग एनोटेशन। फिर, उपयोगकर्ता और आइटम फीचर मैट्रिसेस पहचान मैट्रिसेस हैं, और लाइटएफएम एसवीडी जैसे शास्त्रीय सहयोगी फ़िल्टरिंग विधि को कम कर देता है।
- सामग्री-आधारित बनाम हाइब्रिड। यदि हम केवल संकेतक एनोटेशन के बिना उपयोगकर्ता या आइटम टैग का उपयोग करते हैं, तो LightFM लगभग एक सामग्री-आधारित मॉडल होगा। इसलिए व्यवहार में, उपयोगकर्ता-आइटम इंटरैक्शन का लाभ उठाने के लिए, हम ज्ञात टैग्स में प्रत्येक उपयोगकर्ता और आइटम से अलग एक संकेतक एनोटेशन भी जोड़ते हैं ।
- प्रासंगिक सामग्री खोजने में उपयोगकर्ताओं की मदद करने के लिए अनुशंसाकर्ता सिस्टम मशीन लर्निंग एल्गोरिदम का लाभ उठाते हैं।
- स्पष्ट बनाम अंतर्निहित प्रतिक्रिया : पहला लाभ उठाना आसान है, लेकिन दूसरा अधिक प्रचुर मात्रा में है।
- सामग्री-आधारित मॉडल कोल्ड-स्टार्ट परिदृश्यों में अच्छी तरह से काम करते हैं, लेकिन उपयोगकर्ता और आइटम मेटाडेटा को जानने की आवश्यकता होती है ।
- सहयोगात्मक फ़िल्टरिंग मॉडल आमतौर पर मैट्रिक्स फ़ैक्टराइज़ेशन का उपयोग करते हैं: PMF, SVD, SVD अंतर्निहित प्रतिक्रिया के लिए, SVD++।
- हाइब्रिड मॉडल सामग्री-आधारित और सहयोगी फ़िल्टरिंग का सर्वोत्तम उपयोग करते हैं। लाइटएफएम इस दृष्टिकोण का एक बेहतरीन उदाहरण है।
- विकिपीडिया, सिफारिश प्रणाली ।
- "आश्चर्य", पायथन पैकेज प्रलेखन ।
- (एस फंक 2006), नेटफ्लिक्स अपडेट: इसे घर पर आजमाएं।
- (आर. सलाखुटदीनोव 2007), प्रोबेबिलिस्टिक मैट्रिक्स फ़ैक्टराइज़ेशन।
- ( वाई हू 2008), अंतर्निहित फीडबैक डेटासेट के लिए सहयोगात्मक फ़िल्टरिंग ।
- (वाई कोरेन 2009), सिफ़ारिश करने वाले सिस्टम के लिए मैट्रिक्स फ़ैक्टराइज़ेशन तकनीक ।
- (वाई. कोरेन 2008) गुणनखंडन पड़ोस से मिलता है: एक बहुआयामी सहयोगी फ़िल्टरिंग मॉडल।
- ( एम. कुला 2015), उपयोगकर्ता और आइटम कोल्ड-स्टार्ट अनुशंसाओं के लिए मेटाडेटा एम्बेडिंग ।