प्रसिद्ध शोध पत्र - "अटेंशन इज़ ऑल यू नीड" से ट्रांसफार्मर मॉडल में "पोजिशनल एम्बेडिंग" के पीछे के अंतर्ज्ञान को समझाने वाला एक लेख।
गहरी शिक्षा के क्षेत्र में ट्रांसफार्मर आर्किटेक्चर की शुरूआत ने निस्संदेह मूक क्रांति का मार्ग प्रशस्त किया है, खासकर एनएलपी की शाखाओं में। ट्रांसफॉर्मर आर्किटेक्चर के सबसे अभिन्न भागों में से एक "स्थितीय एम्बेडिंग" है जो तंत्रिका नेटवर्क को शब्दों के क्रम और उनकी निर्भरता को एक लंबे वाक्य में समझने की क्षमता देता है।
हालाँकि, हम जानते हैं कि RNN और LSTM, जो ट्रांसफॉर्मर से बहुत पहले पेश किए गए थे, में पोजिशनल एम्बेडिंग के बिना भी वर्ड ऑर्डरिंग को समझने की क्षमता थी। तब, आपको एक स्पष्ट संदेह होगा कि इस अवधारणा को ट्रांसफार्मर में क्यों पेश किया गया था और इस धारणा को भड़काने के पीछे असली धार क्या थी। आइए हम इस लेख में इस सारी जानकारी की अवधारणा करें।
एंबेडिंग एक प्रक्रिया है जिसका उपयोग प्राकृतिक भाषा प्रसंस्करण में कच्चे पाठ को गणितीय वैक्टर में परिवर्तित करने के लिए किया जाता है। ऐसा इसलिए है क्योंकि मशीन लर्निंग मॉडल विभिन्न आंतरिक कम्प्यूटेशनल प्रक्रियाओं के लिए सीधे टेक्स्ट फॉर्मेट में इनपुट का उपभोग करने में सक्षम नहीं होगा।
Word2vec, Glove, आदि जैसे एल्गोरिदम द्वारा की जाने वाली एम्बेडिंग प्रक्रिया को शब्द एम्बेडिंग या स्थिर एम्बेडिंग कहा जाता है।
यहां, प्रशिक्षण प्रक्रिया के लिए एक मॉडल के अंदर बहुत सारे शब्दों वाला एक बड़ा टेक्स्ट कॉर्पस पारित किया जाता है। मॉडल प्रत्येक शब्द के लिए एक संबंधित गणितीय मान प्रदान करेगा, यह मानते हुए कि जो शब्द एक दूसरे के करीब दिखाई दे रहे हैं वे समान हैं। इस प्रक्रिया के बाद, व्युत्पन्न गणितीय मूल्यों का उपयोग आगे की गणना के लिए किया जाता है।
उदाहरण के लिए,
गौर कीजिए कि हमारे टेक्स्ट कॉर्पस में 3 वाक्य थे जैसा कि यहां बताया गया है-
यहाँ, हम देख सकते हैं कि "राजा" और "रानी" शब्द बार-बार दिखाई दे रहे हैं। इसलिए, मॉडल मान लेगा कि इन शब्दों में कुछ समानताएँ हो सकती हैं। जब इन शब्दों को गणितीय मानों में रूपांतरित किया जाता है, तो उन्हें एक बहुआयामी स्थान में प्रदर्शित करने पर थोड़ी दूरी पर रखा जाएगा।
छवि स्रोत: लेखक द्वारा सचित्र
कल्पना कीजिए कि एक और शब्द "सड़क" है तो तार्किक रूप से यह एक बड़े टेक्स्ट कॉर्पस में "राजा" और "रानी" के साथ अधिक बार दिखाई नहीं देगा। अत: उस शब्द को अंतरिक्ष में दूर-दूर रखा जाएगा।
छवि स्रोत: लेखक द्वारा सचित्र
गणितीय रूप से, एक सदिश को संख्याओं के अनुक्रम का उपयोग करके दर्शाया जाता है जहां प्रत्येक संख्या एक विशेष आयाम में शब्द के परिमाण का प्रतिनिधित्व करती है।
उदाहरण के लिए,
हमने यहां 3 आयामों में "राजा" शब्द का प्रतिनिधित्व किया है। इसलिए, इसे अंतरिक्ष [0.21,0.45,0.67] में काल्पनिक रूप से दर्शाया जा सकता है।
"क्वीन" शब्द को काल्पनिक रूप से [0.24,0.41,0.62] के रूप में दर्शाया जा सकता है।
शब्द "सड़क" को काल्पनिक रूप से [0.97,0.72,0.36] के रूप में दर्शाया जा सकता है।
जैसा कि हमने परिचय भाग में चर्चा की है, तंत्रिका नेटवर्क को वाक्य में आदेश और स्थिति संबंधी निर्भरता को समझने के लिए स्थितीय एम्बेडिंग की आवश्यकता है।
उदाहरण के लिए, आइए निम्नलिखित वाक्यों पर विचार करें-
वाक्य 1 - "सचिन तेंदुलकर ने भले ही आज शतक नहीं लगाया, लेकिन उन्होंने टीम को जीत की स्थिति में पहुंचा दिया"।
वाक्य 2 - "सचिन तेंदुलकर ने भले ही आज शतक लगाया हो, लेकिन वे टीम को जीत की स्थिति में नहीं ले जा सके"।
दोनों वाक्य समान दिखते हैं क्योंकि वे अधिकांश शब्द साझा करते हैं लेकिन दोनों का आंतरिक अर्थ बहुत भिन्न है। "नहीं" जैसे शब्द के क्रम और स्थिति ने यहां दी गई जानकारी के पूरे संदर्भ को बदल दिया है।
इसलिए, एनएलपी परियोजनाओं पर काम करते समय स्थितीय जानकारी को समझना बहुत महत्वपूर्ण है। यदि मॉडल केवल बहुआयामी स्थान में संख्याओं का उपयोग करके संदर्भ को गलत समझता है, तो यह हमें गंभीर परिणामों की ओर ले जा सकता है, विशेष रूप से भविष्य कहनेवाला मॉडल में।
इस चुनौती को दूर करने के लिए, आरएनएन (पुनरावर्ती तंत्रिका नेटवर्क) और एलएसटीएम (लॉन्ग टर्म शॉर्ट टर्म मेमोरी) जैसे न्यूरल नेटवर्क आर्किटेक्चर पेश किए गए। एक हद तक, ये आर्किटेक्चर स्थितीय जानकारी को समझने में बहुत सफल रहे। उनकी सफलता का मुख्य रहस्य यह है कि वे शब्दों के क्रमबद्ध क्रम को बनाए रखते हुए लंबे वाक्यों को सीखने का प्रयास करते हैं। इसके अलावा, उनके पास उन शब्दों के बारे में जानकारी होगी जो "रुचि के शब्द" के बहुत निकट रखे गए हैं और ऐसे शब्द जो "रुचि के शब्द" से बहुत दूर रखे गए हैं।
उदाहरण के लिए,
निम्नलिखित वाक्य पर विचार कीजिए-
"सचिन अब तक के सबसे महान क्रिकेटर हैं।"
छवि स्रोत: लेखक द्वारा सचित्र
लाल रंग से रेखांकित शब्द "ब्याज का शब्द" है। यह वह शब्द है जिसे न्यूरल नेटवर्क (RNN/LSTM) एम्बेडिंग जैसी जटिल गणितीय प्रक्रियाओं के माध्यम से सीखने की कोशिश करता है। हम यहां देख सकते हैं कि "ब्याज के शब्द" मूल पाठ के अनुसार क्रमिक रूप से ट्रेस किए गए हैं।
इसके अलावा, वे "संदर्भ शब्द" को याद करके शब्दों के बीच निर्भरता को याद कर सकते हैं। यहाँ, संदर्भ शब्द वे हैं जो "रुचि के शब्द" के पास रखे गए हैं। एक साधारण प्रदर्शन के रूप में, हम प्रत्येक " रुचि के शब्द" को सीखते समय संदर्भ शब्दों को निम्नलिखित छवि में हरे रंग से रेखांकित शब्दों के रूप में मान सकते हैं।
छवि स्रोत: लेखक द्वारा सचित्र
इन तकनीकों के माध्यम से, RNN/LSTM एक बड़े टेक्स्ट कॉर्पस में स्थितीय जानकारी को समझ सकता है।
सब ठीक चल रहा है। सही?
फिर, यहाँ असल समस्या क्या है?
वास्तविक समस्या एक बड़े टेक्स्ट कॉर्पस में शब्दों का अनुक्रमिक ट्रैवर्सिंग है। कल्पना कीजिए कि हमारे पास 1 मिलियन शब्दों के साथ वास्तव में एक बड़ा टेक्स्ट कॉर्पस है, प्रत्येक शब्द के माध्यम से अनुक्रमिक रूप से पार करने में वास्तव में काफी समय लगेगा। कभी-कभी, मॉडलों के प्रशिक्षण के लिए इतना संगणना समय वहन करना संभव नहीं होता है।
इस चुनौती पर काबू पाने के लिए, एक नई उन्नत वास्तुकला - "ट्रांसफॉर्मर" पेश की गई।
ट्रांसफॉर्मर आर्किटेक्चर की एक महत्वपूर्ण विशेषता यह है कि यह सभी शब्दों को समानांतर में संसाधित करके एक टेक्स्ट कॉर्पस सीख सकता है। यहां तक कि अगर आपके पास 10 शब्द या 10 लाख शब्द हैं, तो यह वास्तव में कॉर्पस की लंबाई के बारे में परवाह नहीं करता है।
छवि स्रोत: लेखक द्वारा सचित्र
छवि स्रोत: लेखक द्वारा सचित्र
अब, शब्दों के समानांतर प्रसंस्करण से जुड़ी एक चुनौती है। चूँकि सभी शब्दों को एक साथ एक्सेस किया जाता है, निर्भरता की जानकारी खो जाएगी। इसलिए, मॉडल किसी विशेष शब्द के "संदर्भ" को याद नहीं रख पाएगा और शब्दों के बीच संबंध के बारे में जानकारी को सही ढंग से संरक्षित नहीं किया जा सकता है। यह समस्या फिर से हमें प्रासंगिक निर्भरता को बनाए रखने की प्रारंभिक चुनौती की ओर ले जाती है, हालांकि मॉडल की गणना/प्रशिक्षण समय काफी कम हो जाता है।
अब, हम इस स्थिति से कैसे निपट सकते हैं?
समाधान "स्थितीय एम्बेडिंग" है।
प्रारंभ में, जब इस अवधारणा को पेश किया गया था, शोधकर्ता एक अनुकूलित विधि प्राप्त करने के लिए बहुत उत्सुक थे जो ट्रांसफॉर्मर आर्किटेक्चर में स्थितीय जानकारी को संरक्षित कर सके।
इस परीक्षण और त्रुटि प्रयोग के एक भाग के रूप में आजमाई गई पहली विधि "शब्दों के सूचकांक पर आधारित स्थितीय एम्बेडिंग" थी।
यहां, इस शब्द वेक्टर के साथ एक नया गणितीय वेक्टर पेश करने का विचार था जिसमें किसी विशेष शब्द की अनुक्रमणिका हो सकती है।
छवि स्रोत: लेखक द्वारा सचित्र
मान लीजिए कि यह बहुआयामी अंतरिक्ष में शब्दों का प्रतिनिधित्व है-
छवि स्रोत: लेखक द्वारा सचित्र
स्थितीय वेक्टर जोड़ने के बाद, परिमाण और दिशा प्रत्येक शब्द की स्थिति को इस तरह बदल सकती है:
छवि स्रोत: लेखक द्वारा सचित्र
इस तकनीक से जुड़े बड़े नुकसानों में से एक यह है कि यदि वाक्य की लंबाई बहुत बड़ी है तो स्थिति सदिश का परिमाण भी आनुपातिक रूप से बढ़ जाएगा। मान लीजिए कि एक वाक्य में 25 शब्द हैं, तो पहला शब्द 0 के परिमाण के साथ स्थितीय सदिश के साथ जोड़ा जाएगा और अंतिम शब्द 24 के परिमाण के साथ स्थितीय सदिश के साथ जोड़ा जाएगा। यह बड़ी असमानता एक समस्या का कारण बन सकती है जब हम इन मूल्यों को उच्च आयामों में पेश कर रहे हैं।
स्थितीय सदिश के बड़े परिमाण को कम करने के लिए एक अन्य तकनीक ने "वाक्य की लंबाई के अंश के आधार पर स्थितीय एम्बेडिंग" की कोशिश की है।
यहां, वाक्य की लंबाई के संबंध में प्रत्येक शब्द के भिन्नात्मक मान की गणना स्थितीय सदिश के परिमाण के रूप में की जाती है।
भिन्नात्मक मान की गणना सूत्र का उपयोग करके की जाती है-
मान = 1/N-1
उदाहरण के लिए,
आइए इस वाक्य पर विचार करें-
छवि स्रोत: लेखक द्वारा सचित्र
इस तकनीक में, वाक्य की लंबाई के बावजूद स्थितीय सदिश के अधिकतम परिमाण को 1 तक सीमित किया जा सकता है। लेकिन, इस व्यवस्था में एक बड़ी खामी है।
यदि हम 2 वाक्यों की अलग-अलग लंबाई के साथ तुलना कर रहे हैं तो किसी विशेष स्थान पर किसी शब्द के लिए एम्बेडिंग मान अलग-अलग होगा। किसी विशेष शब्द या स्थिति के संदर्भ को आसानी से समझने के लिए पूरे टेक्स्ट कॉर्पस में समान एम्बेडिंग मान होना चाहिए। यदि विभिन्न वाक्यों में एक ही शब्द अलग-अलग एम्बेडिंग मान रखता है तो एक बहुआयामी स्थान में संपूर्ण पाठ कोष की जानकारी का प्रतिनिधित्व करना एक बहुत ही जटिल कार्य हो जाएगा। यहां तक कि अगर हम इस तरह के एक जटिल स्थान को प्राप्त करते हैं, तो इस बात की बहुत अधिक संभावना है कि बहुत अधिक जानकारी के विरूपण के कारण मॉडल किसी बिंदु पर ढह जाएगा। इसलिए, ट्रांसफॉर्मर में स्थितीय एम्बेडिंग के लिए आगे की प्रगति से इस तकनीक को समाप्त कर दिया गया।
अंत में, शोधकर्ता "फ्रीक्वेंसी-आधारित पोजिशनल एम्बेडिंग" की एक प्रणाली के साथ आए, जिसे दुनिया भर में आलोचनात्मक प्रशंसा मिली और अंत में ट्रांसफॉर्मर आर्किटेक्चर में शामिल किया गया और प्रसिद्ध श्वेत पत्र में उल्लेख किया गया - "अटेंशन इज ऑल यू नीड"।
इस तकनीक के अनुसार, शोधकर्ता निम्न सूत्र का उपयोग करके तरंग आवृत्ति के आधार पर शब्दों को एम्बेड करने का एक अनूठा तरीका सुझाते हैं-
छवि स्रोत: लेखक द्वारा सचित्र
कहाँ पे,
छवि स्रोत: लेखक द्वारा सचित्र
छवि स्रोत: लेखक द्वारा सचित्र
छवि स्रोत: लेखक द्वारा सचित्र
चूँकि वक्र की ऊँचाई x-अक्ष पर दर्शाए गए शब्द की स्थिति पर निर्भर करती है, इसलिए वक्र की ऊँचाई को शब्द की स्थिति के लिए प्रॉक्सी के रूप में इस्तेमाल किया जा सकता है।
यदि 2 शब्द समान ऊँचाई के हैं तो हम मान सकते हैं कि वाक्य में उनकी निकटता बहुत अधिक है।
इसी तरह, यदि 2 शब्द अत्यधिक भिन्न ऊँचाइयों के हैं तो हम विचार कर सकते हैं कि वाक्य में उनकी निकटता बहुत कम है।
हमारे उदाहरण पाठ के अनुसार - "सचिन एक महान क्रिकेटर हैं" ,
"सचिन" शब्द के लिए,
सूत्र लागू करते समय,
छवि स्रोत: लेखक द्वारा सचित्र
मैं = 0 के लिए,
पीई(0,0) = पाप(0/10000^2(0)/3)
पीई(0,0) = पाप(0)
पीई (0,0) = 0
मैं = 1 के लिए,
पीई(0,1) = कॉस(0/10000^2(1)/3)
पीई(0,1) = कॉस(0)
पीई (0,1) = 1
मैं = 2 के लिए,
पीई(0,2) = पाप(0/10000^2(2)/3)
पीई(0,2) = पाप(0)
पीई (0,2) = 0
"महान" शब्द के लिए
सूत्र लागू करते समय,
छवि स्रोत: लेखक द्वारा सचित्र
मैं = 0 के लिए,
पीई(3,0) = पाप(3/10000^2(0)/3)
पीई (3,0) = पाप (3/1)
पीई(3,0) = 0.05
मैं = 1 के लिए,
पीई(3,1) = कॉस(3/10000^2(1)/3)
पीई(3,1) = कॉस(3/436)
पीई(3,1) = 0.99
मैं = 2 के लिए,
पीई(3,2) = पाप(3/10000^2(2)/3)
पीई(3,2) = पाप(3/1.4)
पीई(3,2) = 0.03
छवि स्रोत: लेखक द्वारा सचित्र
यहां, अधिकतम मान 1 पर कैप किया जाएगा (चूंकि हम sin/cos फ़ंक्शंस का उपयोग कर रहे हैं)। इसलिए, उच्च-परिमाण स्थितीय सदिशों के लिए कोई गुंजाइश नहीं है जो पहले की तकनीकों में एक समस्या थी।
इसके अलावा, उच्च निकटता वाले शब्द कम आवृत्तियों पर समान ऊंचाई पर गिर सकते हैं और उच्च आवृत्तियों पर उनकी ऊंचाई थोड़ी भिन्न होगी।
यदि शब्दों की एक-दूसरे से कम निकटता है तो कम आवृत्तियों पर भी उनकी ऊँचाई अत्यधिक भिन्न होगी और आवृत्ति बढ़ने पर उनकी ऊँचाई का अंतर बढ़ जाएगा।
उदाहरण के लिए,
वाक्य पर विचार करें - "राजा और रानी सड़क पर चल रहे हैं।"
"राजा" और "सड़क" शब्द बहुत दूर रखे गए हैं।
विचार करें कि तरंग आवृत्ति सूत्र को लागू करने के बाद इन 2 शब्दों की लगभग समान ऊँचाई है। जब हम उच्च आवृत्तियों (जैसे 0) तक पहुँचते हैं, तो उनकी ऊँचाई अधिक भिन्न हो जाएगी।
छवि स्रोत: लेखक द्वारा सचित्र
छवि स्रोत: लेखक द्वारा सचित्र
छवि स्रोत: लेखक द्वारा सचित्र
"राजा" और "रानी" शब्द निकट दूरी पर रखे गए हैं।
इन 2 शब्दों को कम आवृत्तियों में समान ऊंचाई पर रखा जाएगा (जैसे यहां 2)। जब हम उच्च आवृत्तियों (जैसे 0) तक पहुँचते हैं, तो विभेदन के लिए उनकी ऊँचाई का अंतर थोड़ा बढ़ जाता है।
छवि स्रोत: लेखक द्वारा सचित्र
लेकिन हमें यह ध्यान देने की आवश्यकता है कि यदि शब्दों की निकटता कम है, तो जब हम उच्च आवृत्तियों की ओर बढ़ रहे हैं तो उनकी ऊँचाई बहुत भिन्न होगी। यदि शब्द उच्च निकटता वाले हैं, तो जब हम उच्च आवृत्तियों की ओर बढ़ रहे हैं तो उनकी ऊँचाई केवल थोड़ी सी भिन्न होगी।
मुझे आशा है कि इस लेख के माध्यम से आपको मशीन लर्निंग में पोजिशनल एम्बेडिंग के पीछे जटिल गणितीय संगणनाओं की सहज समझ प्राप्त हुई होगी। संक्षेप में, हमने "एम्बेडिंग" की अवधारणा के पीछे के सिद्धांत, इसके विभिन्न प्रकारों में से कुछ और कुछ उद्देश्यों को प्राप्त करने के लिए पोजिशनल एम्बेडिंग को लागू करने की आवश्यकता पर चर्चा की।
तकनीकी उत्साही लोगों के लिए जिनकी रुचि का क्षेत्र "प्राकृतिक भाषा प्रसंस्करण" है, मुझे लगता है कि यह सामग्री कुछ परिष्कृत गणनाओं को संक्षेप में समझने में सहायक होगी। अधिक विस्तृत जानकारी के लिए, आप प्रसिद्ध शोध पत्र - "अटेंशन इज़ ऑल यू नीड" का उल्लेख कर सकते हैं (मैंने इस शोध पत्र को संदर्भ अनुभाग में एक्सेस करने के लिए उल जोड़ा है)।