लापता मूल्यों के साथ एक मैट्रिक्स का एसवीडी


12

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

व्यवहार में, लोग अनुशंसा मैट्रिक्स से गायब मूल्यों के साथ क्या करते हैं, जो गणना करने का पूरा बिंदु है? साइमन के ब्लॉग पोस्ट को पढ़ने से मेरा अनुमान है कि वह केवल एक मॉडल बनाने के लिए गैर-लापता शब्दों (जो (सिफारिश) से मिलकर बनता है) ~ 1% का उपयोग करता है) (कुछ हाइपर-मापदंडों और नियमितीकरण के विवेकपूर्ण विकल्प के साथ) भविष्यवाणी करने के लिए मैट्रिक्स के अन्य 99%?

व्यवहार में, क्या आप वास्तव में उन सभी मूल्यों को छोड़ देते हैं? या क्या आप स्टोचैस्टिक ग्रेडिएंट डीसेंट करने से पहले जितना संभव हो सके? लापता मूल्यों से निपटने के लिए मानक सर्वोत्तम प्रथाओं में से कुछ क्या हैं?


1
यह करने के लिए एक ही प्रश्न की तरह लगता है यह । मैंने वहां सवाल का जवाब दिया।
d_ijk_stra

2
मैंने भी जवाब दिया।
स्टॉपी जो पीट

2
@d_ijk_stra "उत्तर" इसे एक पीडीएफ के लिए एक लिंक के लिए कितनी मात्रा के लिए उदारता से डाल रहा है
अलिअम_

जवाबों:


6

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

एसवीडी को लापता मानों का संदर्भ देने के लिए एक विधि के रूप में सोचना शायद सबसे अच्छा है। यदि आपको ऐसा करने का बेहतर तरीका मिल गया है, तो आपको एसवीडी की आवश्यकता क्यों है? यदि आप नहीं करते हैं, तो एसवीडी खुशी से आपके लिए अंतराल में भर जाएगा।


1
आप उन गुम मूल्यों का पता लगाने के लिए एसवीडी का उपयोग कैसे करते हैं? क्या आपने लापता मानों का पता लगाने के लिए अन्य तरीकों की कोशिश की है, गैर-लापता मानों का उपयोग करके एक यादृच्छिक-वनों को वर्गीकृत करने वाले को प्रशिक्षित करने के लिए कहें, जो तब आपके लापता मूल्यों का अनुमान लगाने के लिए इस्तेमाल किया जा सकता है? क्या आपको बेहतर परिणाम मिलते हैं, या क्या यह वास्तव में समस्या पर निर्भर है?
विशाल

1
आप एसवीडी अपघटन के संबंधित घटकों का उपयोग करके, जिस तरह से आप भविष्य के मूल्यों का अनुमान लगाते हैं, उसी तरह आप लापता मानों का अनुमान लगाते हैं। भविष्य की रेटिंग की भविष्यवाणी करना वैसा ही समस्या है जैसा कि लापता मानों का संदर्भ देना। यदि आपको लापता मानों का अनुमान लगाने का एक अच्छा तरीका मिल गया है, तो इसका उपयोग भविष्य की रेटिंग का अनुमान लगाने के लिए करें। यदि आप नहीं करते हैं, तो वह SVD के लिए है।
मार्टिन ओ'लेरी

"एसवीडी के बारे में सोचना सबसे अच्छा है कि लापता मूल्यों का उल्लेख करने के लिए एक विधि के रूप में"। आह, नहीं, वास्तव में एसवीडी उपयोगकर्ता पर निर्भर करता है कि वह एसवीडी चलाने से पहले सभी लापता मूल्यों को किसी अन्य तरीके से पूर्व-अनुमान कर सकता है। एसवीडी बिल्कुल कुछ नहीं लगाता है।
ज्योफ्री एंडरसन

1

व्यवहार में, लोग अनुशंसा मैट्रिक्स से गायब मूल्यों के साथ क्या करते हैं, जो गणना करने का पूरा बिंदु है? साइमन के ब्लॉग पोस्ट को पढ़ने से मेरा अनुमान है कि वह केवल एक मॉडल बनाने के लिए गैर-लापता शब्दों का उपयोग करता है।

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

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

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

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

सटीक रूप से इस तरह के एक मशीन लर्निंग मैट्रिक्स फैक्टराइजेशन मॉडल को स्टैनफोर्ड ऑनलाइन कोर्स माइनिंग मैसिव डेटा सेट्स के प्रशिक्षकों द्वारा मॉड्यूल 5 में काफी अच्छी तरह से प्रस्तुत किया गया है। वे आपको गणित दिखाते हैं और मॉडल की व्याख्या करते हैं। वे इसे आप के लिए हालांकि कोड नहीं है।

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

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

विशेष रूप से, मैट्रिक्स फैक्टराइजेशन मशीन लर्निंग मॉडल में नकली डेटा नहीं खिलाने का एक तरीका है, आपके नुकसान और लागत कार्यों में लापता डेटा के मैट्रिक्स तत्वों को छोड़ना


1

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

थीसिस शीर्षक एवगेनी फ्रोलोव द्वारा "के साथ लिमिटेड पसंद सूचना Recommender सिस्टम के लिए कम रैंक मॉडल" है https://www.skoltech.ru/app/data/uploads/2018/09/Frolov_Dissertation_Final1.pdf

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.