ट्रांसफार्मर मॉडल में स्थितीय एन्कोडिंग क्या है?


24

मैं एमएल के लिए नया हूं और यह मेरा पहला प्रश्न है, इसलिए यदि मेरा प्रश्न मूर्खतापूर्ण है तो क्षमा करें।

मैं कागज को पढ़ने और समझने की कोशिश कर रहा हूं ध्यान आप सभी की जरूरत है और इसमें, एक तस्वीर है:

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

मैं नहीं जानता कि स्थितिगत एन्कोडिंग क्या है। कुछ यूट्यूब वीडियो को सुनने से मुझे पता चला है कि यह एक एम्बेडिंग है जिसमें एक शब्द का अर्थ और स्थिति दोनों है और इसके साथ कुछ करना हैरोंमैंn(एक्स)यासीरों(एक्स)

लेकिन मैं समझ नहीं पाया कि वास्तव में यह क्या है और यह वास्तव में ऐसा कैसे कर रहा है। तो मैं यहाँ कुछ मदद के लिए हूँ। अग्रिम में धन्यवाद।

जवाबों:


32

उदाहरण के लिए, इनपुट अनुक्रम में स्थिति में शब्द लिए 4-आयामी एम्बेडिंग__ , और , ऑपरेशन होगा wपीरों[0,एल-1]w=(w0,,wएल-1)wएल=4

w'=w+[रोंमैंn(पीरों100000),सीरों(पीरों100000),रोंमैंn(पीरों100002/4),सीरों(पीरों100002/4)]=w+[रोंमैंn(पीरों),सीरों(पीरों),रोंमैंn(पीरों100),सीरों(पीरों100)]

जहाँ स्थितीय एन्कोडिंग का सूत्र इस प्रकार है साथ (इस प्रकार मूल कागज में)।

पी.ई(पीरों,2मैं)=रोंमैंn(पीरों100002मैं/एल),
पी.ई(पीरों,2मैं+1)=सीरों(पीरों100002मैं/एल)
एल=512मैं[0,255]

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

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


1
आपके पास यह उत्कृष्ट लेख विशुद्ध रूप से स्थितीय अंतःकरण
Yohan Obadia

6

पोजिशनल एन्कोडिंग किसी शब्द के मानों और उसकी स्थिति का एक वाक्य में फिर से प्रतिनिधित्व है (यह दिए जाने की शुरुआत में ऐसा नहीं है कि अंत या मध्य में हो)।

लेकिन आपको इस बात का ध्यान रखना होगा कि वाक्य किसी भी लम्बाई के हो सकते हैं, इसलिए यह कहना कि "X" शब्द वाक्य में तीसरा है 'अलग-अलग लंबाई के वाक्य होने से कोई मतलब नहीं है: 3-शब्द-वाक्य में 3 पूरी तरह से है 20-शब्द-वाक्य में 3 से भिन्न।

एक स्थितिगत एनकोडर जो कुछ भी करता है, है की चक्रीय प्रकृति और कार्यों की मदद से किसी वाक्य के शब्द की स्थिति की जानकारी लौटाना।रोंमैंn(एक्स)सीरों(एक्स)


2
धन्यवाद। क्या आप इस बारे में विस्तार से बता सकते हैं कि यह स्थितिगत एनकोडर और साथ कैसे करता है ? रोंमैंnसीरों
पेमैन

1

अन्य उत्तरों में जोड़ने के लिए, ओपनएआई का रेफ कार्यान्वयन इसे प्राकृतिक लॉग-स्पेस में गणना करता है (सटीक में सुधार करने के लिए, मुझे लगता है। यकीन नहीं होता कि वे बेस 2 में लॉग का उपयोग कर सकते थे)। वे एन्कोडिंग के साथ नहीं आए। यहाँ C के लिए लूप में फिर से लिखा गया पीई लुक टेबल जेनरेशन है:

int d_model = 512, max_len = 5000;
double pe[max_len][d_model];

for (int i = 0; i < max_len; i++) {
   for (int k = 0; k < d_model; k = k + 2) {
      double div_term = exp(k * -log(10000.0) / d_model);
      pe[i][k] = sin(i * div_term);
      pe[i][k + 1] = cos(i * div_term);
   }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.