word2vec: नकारात्मक नमूना (आम शब्द में)?


91

मैं नीचे दिए गए पेपर को पढ़ रहा हूं और मुझे कुछ परेशानी है, नकारात्मक नमूने की अवधारणा को समझना।

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

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


जवाबों:


166

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

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

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


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

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

40

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

यहाँ छवि विवरण दर्ज करें

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

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

Word2vec में नुकसान फ़ंक्शन कुछ इस प्रकार है:

यहाँ छवि विवरण दर्ज करें

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

यहाँ छवि विवरण दर्ज करें

कुछ गणितीय और ढाल के फार्मूले के साथ ( 6 पर अधिक विवरण देखें )

यहाँ छवि विवरण दर्ज करें

जैसा कि आप देखते हैं कि यह द्विआधारी वर्गीकरण कार्य (y = 1 सकारात्मक वर्ग, y = 0 नकारात्मक वर्ग) में परिवर्तित हो गया है। हम लेबल की जरूरत है जैसा कि हमारे द्विआधारी वर्गीकरण कार्य करने के लिए, हम सभी संदर्भ शब्द को नामित सच लेबल (y = 1, सकारात्मक नमूना), और के रूप में k बेतरतीब ढंग से कॉर्पोरा से चयनित झूठे लेबल (y = 0, नकारात्मक नमूना) के रूप में।


निम्नलिखित पैराग्राफ को देखें। मान लें कि हमारा लक्षित शब्द " Word2vec " है। 3 की खिड़की के साथ, हमारे संदर्भ शब्द हैं: The, widely, popular, algorithm, was, developed। ये संदर्भ शब्द सकारात्मक लेबल के रूप में मानते हैं। हमें कुछ नकारात्मक लेबल भी चाहिए। हम बेतरतीब ढंग से कोष से कुछ शब्दों को लेने ( produce, software, Collobert, margin-based, probabilistic) और उन्हें नकारात्मक नमूने के रूप में विचार करें। इस तकनीक को हमने कोरपस से कुछ बेतरतीब ढंग से उदाहरण के रूप में चुना है जिसे नकारात्मक नमूनाकरण कहा जाता है।

यहाँ छवि विवरण दर्ज करें

संदर्भ :

  • (1) सी। डायर, "नोट्स ऑन नॉइज़ कॉन्ट्रास्टिव एस्टीमेशन एंड निगेटिव सैंपलिंग" , 2014
  • (२) http://sebastianruder.com/word-embeddings-softmax/

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

1
बहुत अच्छी तरह से समझाया और स्वीकृत उत्तर की तुलना में थोड़ा अधिक तकनीकी है। तो एक आदर्श SO स्थिति: विचार प्राप्त करने के लिए स्वीकृत उत्तर पढ़ें और फिर इस उत्तर को विस्तार से समझने के लिए।
उर्सिन ब्रूनर

22

मैंने यहां नकारात्मक नमूने के बारे में एक ट्यूटोरियल लेख लिखा है

हम नकारात्मक नमूने का उपयोग क्यों करते हैं? -> कम्प्यूटेशनल लागत को कम करने के लिए

वेनिला स्किप-ग्राम (एसजी) और स्किप-ग्राम नकारात्मक नमूनाकरण (एसजीएनएस) के लिए लागत समारोह इस तरह दिखता है:

यहाँ छवि विवरण दर्ज करें

ध्यान दें कि Tसभी वोकैब की संख्या है। के बराबर है V। दूसरे शब्दों में, T= V

p(w_t+j|w_t)SG में संभाव्यता वितरण की गणना Vकॉर्पस के सभी वोकैब के साथ की जाती है:

यहाँ छवि विवरण दर्ज करें

Vस्किप-ग्राम मॉडल के प्रशिक्षण के दौरान आसानी से हज़ार से अधिक हो सकते हैं। संभावना को गणना Vसमय की आवश्यकता होती है , जिससे यह कम्प्यूटेशनल रूप से महंगा हो जाता है। इसके अलावा, हर में सामान्यीकरण कारक को अतिरिक्त Vगणना की आवश्यकता होती है।

दूसरी ओर, SGNS में संभाव्यता वितरण की गणना निम्न के साथ की जाती है:

यहाँ छवि विवरण दर्ज करें

c_posसकारात्मक शब्द के लिए एक शब्द वेक्टर है, और आउटपुट वजन मैट्रिक्स में W_negसभी Kनकारात्मक नमूनों के लिए शब्द वैक्टर है । SGNS के साथ, संभावना को केवल K + 1समय की गणना करने की आवश्यकता होती है , जहां Kआम तौर पर 5 ~ 20 के बीच होता है। इसके अलावा, भाजक में सामान्यकरण कारक की गणना करने के लिए कोई अतिरिक्त पुनरावृत्तियों आवश्यक नहीं है।

SGNS के साथ, प्रत्येक प्रशिक्षण नमूने के लिए केवल वजन का एक अंश अपडेट किया जाता है, जबकि SG प्रत्येक प्रशिक्षण नमूने के लिए सभी लाखों वजन अपडेट करता है।

यहाँ छवि विवरण दर्ज करें

SGNS इसे कैसे प्राप्त करता है? -> बहु-वर्गीकरण कार्य को द्विआधारी वर्गीकरण कार्य में परिवर्तित करके।

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

यहाँ छवि विवरण दर्ज करें

वास्तविक जीवन में, आप आमतौर पर regressionयादृच्छिक शब्दों के साथ निरीक्षण नहीं करते हैं Gangnam-Style, या pimples। विचार यह है कि यदि मॉडल संभावित (सकारात्मक) जोड़े बनाम असम्भव (नकारात्मक) जोड़े के बीच अंतर कर सकता है, तो अच्छे शब्द वैक्टर सीख जाएंगे।

यहाँ छवि विवरण दर्ज करें

उपरोक्त आकृति में, वर्तमान सकारात्मक शब्द-संदर्भ जोड़ी है ( drilling, engineer)। K=5नकारात्मक नमूने रहे बेतरतीब ढंग से तैयार से शोर वितरण : minimized, primary, concerns, led, page। जैसा कि मॉडल प्रशिक्षण के नमूनों के माध्यम से पुनरावृत्त होता है, वज़न को अनुकूलित किया जाता है ताकि सकारात्मक जोड़ी के लिए संभावना उत्पादन हो p(D=1|w,c_pos)≈1, और नकारात्मक जोड़े के लिए संभावना उत्पादन हो p(D=1|w,c_neg)≈0


1
टी टोकन की संख्या के लिए है (एक पाठ में शब्द घटित)। शब्दावली के लिए वी (अद्वितीय शब्द) मैं कहूंगा।
एडम

यदि हम सेट Kकरते हैं V -1, तो नकारात्मक नमूना वैनिला स्किप-ग्राम मॉडल के समान है। क्या मेरी समझ सही है?
शाश्वत

@ शशवत प्रत्येक प्रशिक्षण नमूने के लिए अपडेट किए गए शब्द वैक्टर की संख्या समान है, लेकिन प्रशिक्षण उद्देश्य समारोह अभी भी मौलिक रूप से अलग होगा
एरिक किम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.