ध्यान आप सभी की जरूरत नहीं है

मैकग्राफ पर काम करते हुए, एक तंत्रिका नेटवर्क जो ज्ञान ग्राफ का उपयोग करते हुए प्रश्नों का उत्तर देता है, मुझे एक समस्या आई: किसी सूची में कुछ मौजूद नहीं है तो कैसे बताएं।

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

पृष्ठभूमि

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

तंत्रिका नेटवर्क अलग-अलग कार्यों से बने होते हैं, ताकि उन्हें ढाल वंश का उपयोग करके प्रशिक्षित किया जा सके। समानता ऑपरेटर, लूप के लिए और यदि शर्तें हैं, तो इस कार्य को हल करने के लिए उपयोग किए जाने वाले पारंपरिक प्रोग्रामिंग के मानक टुकड़े, काम नहीं करते हैं जो कि तंत्रिका नेटवर्क में अच्छी तरह से हैं:

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

मदों की सूचियों के साथ काम करने के लिए एक लोकप्रिय तंत्रिका-नेटवर्क तकनीक (उदाहरण के लिए उन्हें शब्दों की सूची के रूप में व्यवहार करने वाले वाक्य) "ध्यान" लागू करना है। यह एक ऐसा फंक्शन है, जिसमें नेटवर्क के लिए खोजे गए “क्वेरी” की सूची में प्रत्येक आइटम की तुलना की जाती है, और क्वेरी के समान वस्तुओं का एक भारित योग आउटपुट होता है:

उपरोक्त उदाहरण में,

  1. क्वेरी को "स्कोर" की गणना करने के लिए सूची में प्रत्येक आइटम के साथ डॉट-प्रोडक्ट किया गया है। यह सभी वस्तुओं के लिए समानांतर में किया जाता है
  2. स्कोर को फिर सॉफ्टमैक्स के माध्यम से पारित किया जाता है, जो उन्हें एक सूची में परिवर्तित करता है जो 1.0 तक बैठता है। स्कोर को तब प्रायिकता वितरण के रूप में उपयोग किया जा सकता है।
  3. अंत में, आइटम की एक भारित राशि की गणना की जाती है, प्रत्येक आइटम को उसके स्कोर द्वारा भारित किया जाता है

ध्यान बहुत सफल रहा है और वर्तमान सर्वश्रेष्ठ-इन-क्लास अनुवाद मॉडल का आधार बनता है। तंत्र ने विशेष रूप से अच्छी तरह से काम किया है क्योंकि:

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

हमारी समस्या

ध्यान की चंचलता और सफलता के बावजूद, इसमें एक कमी है जिसने ग्राफ के सवाल पर हमारे काम को जवाब दिया: ध्यान हमें यह नहीं बताता है कि क्या कोई वस्तु सूची में मौजूद है।

यह पहली बार हुआ जब हमने "लंदन ब्रिज नामक स्टेशन है?" और "वाटरलू स्टेशन से सटे ट्राफलगर स्क्वायर स्टेशन?" जैसे सवालों का जवाब देने का प्रयास किया। ग्राफ़ नोड्स और किनारों की हमारी तालिकाओं में ध्यान हटाने के लिए यह सब जानकारी है, लेकिन आइटम के अस्तित्व को सफलतापूर्वक निर्धारित करने के लिए ध्यान स्वयं विफल हो रहा था।

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

हमारा समाधान

हमारे द्वारा प्रस्तावित सरल समाधान कच्चे आइटम-क्वेरी स्कोर (जैसे सॉफ्टमैक्स का उपयोग करने से पहले) का एक स्केल एग्रीगेट है। यदि कोई आइटम क्वेरी के समान नहीं है, और यदि कई आइटम हैं तो यह संकेत कम होगा।

व्यवहार में यह बहुत प्रभावी रहा है (वास्तव में, हमने परीक्षण किया कई लोगों का एकमात्र मजबूत समाधान) अस्तित्व के सवालों को हल करने में। अब से हम इस संकेत को "फोकस" के रूप में संदर्भित करेंगे। यहाँ ध्यान नेटवर्क का एक चित्रण है जो हमने पहले दिखाया था, फोकस सिग्नल के साथ:

कच्चे स्कोर के एकत्रीकरण के लिए एक योग का उपयोग करते हुए, फोकस सिग्नल के साथ ध्यान दें

प्रयोगिक व्यवस्था

मैकग्राफ कुछ कार्यों पर सफल रहा, इसके लिए फोकस सिग्नल आवश्यक था, हमने पाया कि हमने इस अवधारणा का परीक्षण कई डेटासेट और मॉडल आर्किटेक्चर पर किया है।

प्रयोग का तंत्रिका नेटवर्क

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

नेटवर्क नुकसान की गणना सॉफ्टमैक्स क्रॉस एन्ट्रापी का उपयोग करके की जाती है और एडम ऑप्टिमाइज़र का उपयोग करके प्रशिक्षित की जाती है। प्रत्येक नेटवर्क भिन्नता में सीखने की दर खोजक का उपयोग करके प्रशिक्षण से पहले निर्धारित की गई आदर्श आदर्श दर है।

हमारे प्रयोगों में, हम नेटवर्क को अलग-अलग करते हैं:

  • फ़ोकस स्टेप से फ़ोकस सिग्नल को हटाने / हटाने सहित ("फोकस का उपयोग करें")
  • ध्यान स्कोर फ़ंक्शन को भिन्न करना
  • फ़ोकस सिग्नल एकत्रीकरण फ़ंक्शन को भिन्न करना
  • पहले अवशिष्ट परिवर्तन परत के सक्रियण समारोह ("आउटपुट सक्रियण") को नीचे लाना

फिर हम अगले अनुभाग में सूचीबद्ध कुछ अलग डेटासेट पर इन नेटवर्क भिन्नताओं को लागू करते हैं।

यहाँ हमारे द्वारा जांचे गए सभी नेटवर्क कॉन्फ़िगरेशन हैं:

फोकस सिग्नल को नेटवर्क के लिए आवश्यक रूप से आवश्यक पाया गया> डेटासेट्स और नेटवर्क कॉन्फ़िगरेशन की सीमा में 99% सटीकता।

हमारे प्रयोगों का कोड हमारे गिटहब में खुला-स्रोत है।

डेटासेट

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

प्रत्येक डेटासेट का निर्माण किया गया था इसलिए 100% सटीकता संभव है।

हमने तीन अलग-अलग डेटासेट पर परीक्षण किया, जिनमें से प्रत्येक आइटम का एक अलग स्रोत है:

  • ओर्थोगोनल एक-गर्म लंबाई के 12 वैक्टर
  • कई-गर्म वैक्टर (जैसे 1.0 और 0.0 के यादृच्छिक स्ट्रिंग्स) की लंबाई 12 है
  • 300 की लंबाई के Word2vec वैक्टर

प्रत्येक डेटासेट में संतुलित उत्तर कक्षाएं होती हैं (यानी सही और गलत उत्तर के बराबर संख्या)

एक-गर्म और कई-गर्म वैक्टर बेतरतीब ढंग से उत्पन्न हुए थे। प्रत्येक प्रशिक्षण उदाहरण में दो मदों की एक सूची है। प्रत्येक डेटासेट में 5,000 प्रशिक्षण आइटम हैं। यहाँ प्रशिक्षण उदाहरणों में से एक है:

ऑर्थोगोनल एक-हॉट डेटासेट में एक प्रशिक्षण उदाहरण। (दृश्य सादगी के लिए लंबाई 3 के रूप में दिखाया गया क्षेत्र)

हमारे word2vec डेटासेट के लिए, हमने Google समाचार पर प्रशिक्षित पूर्व-गणना word2vec एम्बेडिंग का उपयोग किया, जिसे यहाँ डाउनलोड किया जा सकता है।

Word2vec डेटासेट में लंबाई 77 तक की आइटम सूचियाँ हैं, प्रत्येक में 300-लाइन विकिपीडिया लेख से एक फेरबदल, यादृच्छिक रूप से चुने गए वाक्य का प्रतिनिधित्व होता है। प्रत्येक वांछित-वस्तु लेख के भीतर शब्दों से एक यादृच्छिक रूप से चुना गया word2vec वेक्टर है।

परिणाम

फोकस संकेत को वस्तु अस्तित्व को निर्धारित करने के लिए आवश्यक पाया गया:

  • फोकस सिग्नल के बिना, किसी भी नेटवर्क कॉन्फ़िगरेशन ने सभी डेटासेट के लिए 56% सटीकता हासिल नहीं की
  • ऑर्थोगोनल डेटासेट वैक्टर के लिए, किसी भी नेटवर्क ने फोकस सिग्नल के बिना 80% सटीकता हासिल नहीं की
  • फोकस सिग्नल प्राप्त करने वाले नेटवर्क> सभी डेटासेट और कॉन्फ़िगरेशन में 98% सटीकता, केवल फोकस सिग्नल के बिना नेटवर्क> 9 कॉन्फ़िगरेशन में से 4 में 98% सटीकता हासिल की

यह ध्यान दिया जाना चाहिए कि फोकस सिग्नल के बिना नेटवर्क ने कुछ कॉन्फ़िगरेशन और डेटासेट में> 98% सटीकता हासिल की।

निष्कर्ष

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

हमें उम्मीद है कि यह काम आइटम-अस्तित्व की चुनौती से निपटने में अन्य टीमों की मदद करता है और इस बात पर अधिक स्पष्टता जोड़ता है कि किस आर्किटेक्चर का उपयोग करना है।

ऑक्टेवियन का शोध

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

स्वीकृतियाँ

मैं डेविड मैक को इस विचार के संपादन के लिए प्रारंभिक विचार और मदद करने के लिए धन्यवाद देना चाहूंगा। मैं एंड्रयू जेफरसन को बहुत सारे कोड लिखने और मुझे इस लेखन के माध्यम से मार्गदर्शन करने के लिए धन्यवाद देना चाहता हूं। अंत में, मुझे इस परियोजना पर काम करने का अवसर देने के लिए ऑक्टेवियन को धन्यवाद देना चाहता हूं।

फुटनोट

  1. मैकग्राफ से आउटपुट ट्रांसफ़ॉर्मेशन लेयर्स को कॉपी किया गया और संभवतः इसे सरल बनाया जा सकता है। इस मॉडल में सिग्मॉइड (σ) परत निश्चित रूप से अनावश्यक है क्योंकि यह इनपुट की सीमा को सॉफ्टमैक्स तक सीमित करता है और इसलिए मॉडल को शून्य हानि के लिए प्रशिक्षित करने में सक्षम होने से रोकता है (हालांकि यह आउटपुट अर्गैक्स होने के बाद भी 100% सटीकता प्राप्त कर सकता है) एक हॉट-वेक्टर के लिए एड और लेबल के साथ तुलना)। हमारा मानना ​​है कि यह जटिलता किसी भी परिणाम को अमान्य करती है, लेकिन इसे बाहर कॉल करने के लिए मजबूर महसूस किया।