2015-01-09 8 views
49

मैं नीचे पेपर पढ़ रहा हूं और मुझे नकारात्मक नमूनाकरण की अवधारणा को समझने में कुछ परेशानी है।word2vec: नकारात्मक नमूनाकरण (आम आदमी अवधि में)?

http://arxiv.org/pdf/1402.3722v1.pdf

किसी को भी मदद कर सकते हैं, कृपया?

+1

संबंधित: https : //stats.stackexchange.com/questions/282425/what-is-the-relation-of-the-negative-sampling-objective-function-to-the-original – Pinocchio

उत्तर

96

word2vec का विचार पाठ में शब्दों के लिए वैक्टरों के बीच समानता (डॉट उत्पाद) को अधिकतम करने के लिए है (पाठ के एक दूसरे के संदर्भ में), और शब्दों की समानता को कम करें। आपके द्वारा लिंक किए गए पेपर के समीकरण (3) में, एक पल के लिए एक्सपोनिएशन को अनदेखा करें। आप मूल रूप से अंश c शब्द के बीच समानता (संदर्भ) और w (लक्ष्य) शब्द है

 v_c * v_w 
------------------- 
    sum(v_c1 * v_w) 

है। Denominator c1 और लक्ष्य शब्द w के सभी अन्य संदर्भों की समानता की गणना करता है। इस अनुपात को अधिकतम करने से शब्दों में पाठ के करीब दिखाई देने वाले शब्दों को ऐसे शब्दों की तुलना में अधिक समान वैक्टर होते हैं जो नहीं करते हैं। हालांकि, यह कंप्यूटिंग बहुत धीमी हो सकती है, क्योंकि c1 के कई संदर्भ हैं। ऋणात्मक नमूनाकरण इस समस्या को हल करने के तरीकों में से एक है- यादृच्छिक रूप से c1 के कुछ संदर्भों का चयन करें। अंतिम परिणाम, democracy जैसे कि catfood के संदर्भ में प्रकट होता है, तो food के वेक्टर अधिक cat के वेक्टर के समान है कई अन्य अनियमित रूप से चुने शब्दों का वैक्टर से (उनके डॉट उत्पाद द्वारा उपायों के रूप में) है (greed, Freddy), के बजाय भाषा में अन्य सभी शब्द। यह word2vec ट्रेन करने के लिए बहुत तेज़ बनाता है।

+8

धन्यवाद या अच्छी व्याख्या। मुझे लगता है कि यह सिर्फ नमूना है। लेकिन क्या आप जानते हैं कि इसे "नकारात्मक" क्यों कहा जाता है? – HappyCoding

+21

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

14

कम्प्यूटिंग Softmax (फंक्शन निर्धारित करने के लिए जो शब्द वर्तमान लक्ष्य शब्द के समान हैं) महंगा है जो आम तौर पर बहुत बड़ी है वी (भाजक) में सभी शब्दों के ऊपर संक्षेप की आवश्यकता है के बाद से,।

enter image description here

क्या किया जा सकता है?

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

Word2vec में नुकसान समारोह है कुछ की तरह: कुछ गणित और ढाल सूत्र (3 में अधिक विवरण देखें) के साथ

enter image description here

:

enter image description here

कौन सा लघुगणक में विघटित कर सकते हैं यह परिवर्तित हो गया:

enter image description here

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

संदर्भ:

+1

हाय @ आमिर, मेरा प्रारंभिक प्रश्न यह है कि मुझे कुछ परेशानी है, नकारात्मक नमूनाकरण की अवधारणा को समझना ... –

संबंधित मुद्दे