2015-09-08 6 views
14

मैं एनएलपी पर बहुत से कागजात पढ़ रहा हूं, और कई मॉडलों में आया हूं। मुझे एसवीडी मॉडल मिला और 2-डी में इसका प्रतिनिधित्व किया, लेकिन मुझे अभी भी यह नहीं मिला कि हम शब्द 2vec/skip-gram मॉडल को कॉर्पस देकर एक शब्द वेक्टर कैसे बनाते हैं? क्या यह प्रत्येक शब्द के लिए मैट्रिक्स प्रतिनिधित्व भी सह-घटना है? आपको एक उदाहरण कोष लेने के द्वारा यह व्याख्या कर सकते हैं:word2vec या skip-gram मॉडल शब्द को वेक्टर में कैसे परिवर्तित करता है?

Hello, my name is John. 
John works in Google. 
Google has the best search engine. 

मूल रूप से, कैसे ग्राम छोड़ करता है एक वेक्टर के लिए John कन्वर्ट?

+3

देखें http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf – e9t

उत्तर

10

मुझे लगता है कि आपको प्रशिक्षण प्रक्रिया के बारे में एक पेपर पढ़ने की आवश्यकता होगी। मूल रूप से वेक्टर के मूल्य प्रशिक्षित तंत्रिका नेटवर्क के नोड मान होते हैं।

मैंने the original paper पढ़ने की कोशिश की लेकिन मुझे लगता है कि ज़िन रोंग द्वारा पेपर "word2vec Parameter Learning Explained" में एक और विस्तृत स्पष्टीकरण है।

+0

मैंने पेपर पढ़ने का सर्वोत्तम प्रयास किया। यह अच्छी तरह से बताता है लेकिन मुझे अभी भी भरोसा नहीं है कि मैं इसे अच्छी तरह से समझ गया हूं। क्या आप मुझे कुछ ऐसा सुझाव दे सकते हैं जो समझने में आसान हो? –

+0

कोई खेद नहीं है मेरे पास अब मेरे दिमाग में कोई अन्य कागजात नहीं हैं :(मैं मानता हूं कि पेपर पढ़ने में आसान नहीं है .. बाद में मैंने अपनी पुनरावृत्ति प्रक्रिया के (थोड़ा) बेहतर विचार प्राप्त करने के लिए कोड पढ़ा। –

+0

दूसरा पेपर है वास्तव में सहायक। धन्यवाद। –

8

मुख्य अवधारणा को तंत्रिका नेटवर्क के साथ Autoencoding के उदाहरण के साथ आसानी से समझा जा सकता है। आप इनपुट परत से इनपुट परत तक मध्यम परत के माध्यम से जानकारी पास करने के लिए तंत्रिका नेटवर्क को प्रशिक्षित करते हैं जो छोटे होते हैं।

एक पारंपरिक ऑटो एन्कोडर में, आपके पास आकार एन का इनपुट वेक्टर होता है, लंबाई एम की एक मध्यम परत एम < एन, और आउटपुट परत, आकार एन के फिर से। आप एक समय में केवल एक इकाई चाहते हैं इनपुट परत और आप आउटपुट परत में इनपुट परत में चालू होने वाली इकाई को दोहराने के लिए नेटवर्क को प्रशिक्षित करते हैं।

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

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

1

वर्तमान पाठकों जो भी सोच "क्या एक शब्द वेक्टर वास्तव में क्या मतलब है" के रूप में ओपी उस समय था हो सकता है के लिए: http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf में बताया गया है, एक शब्द वेक्टर आयाम n की है, और n "एक मनमाना आकार है जो हमारे एम्बेडिंग स्पेस के आकार को परिभाषित करता है। " यही कहना है, इस शब्द वेक्टर का मतलब कुछ भी ठोस नहीं है। यह केवल कुछ गुणों का एक सार प्रस्तुतिकरण है जो इस शब्द में हो सकता है, कि हम शब्दों को अलग करने के लिए उपयोग कर सकते हैं।

वास्तव में, सीधे के "कैसे है एक शब्द एक वेक्टर प्रतिनिधित्व करने के लिए परिवर्तित", एक सदिश एक शब्द के लिए एम्बेड करने के मूल्यों आमतौर पर है सिर्फ प्रारंभ में बेतरतीब मूल सवाल का जवाब देने, और बेहतर यात्रा-दर- यात्रा।

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

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