वास्तव में, आउटपुट वैक्टर किसी भी गणितीय ऑपरेशन का उपयोग करके इनपुट से गणना नहीं की जाती है। इसके बजाय, प्रत्येक इनपुट पूर्णांक का उपयोग उस तालिका को एक्सेस करने के लिए सूचकांक के रूप में किया जाता है जिसमें सभी पॉसिबल वैक्टर होते हैं। यही कारण है कि आपको पहले तर्क के रूप में शब्दावली के आकार को निर्दिष्ट करने की आवश्यकता है (इसलिए तालिका को इनिशियलाइज़ किया जा सकता है)।
इस परत का सबसे आम अनुप्रयोग टेक्स्ट प्रोसेसिंग के लिए है। आइए एक साधारण उदाहरण देखें। हमारे प्रशिक्षण सेट में केवल दो वाक्यांश होते हैं:
आपसे मिलने की उम्मीद है
आपसे दोबारा मिलकर अच्छा लगा
इसलिए हम प्रत्येक शब्द को एक अद्वितीय पूर्णांक संख्या (उदाहरण के लिए हमारे प्रशिक्षण डाटासेट में उपस्थिति के क्रम से) निर्दिष्ट करके इन वाक्यांशों को एन्कोड कर सकते हैं। तब हमारे वाक्यांशों को फिर से लिखा जा सकता है:
[0, 1, 2, 3, 4]
[5, 1, 2, 3, 6]
अब कल्पना करें कि हम एक ऐसे नेटवर्क को प्रशिक्षित करना चाहते हैं जिसकी पहली परत एक एम्बेडिंग परत है। इस मामले में, हमें इसे इस प्रकार शुरू करना चाहिए:
Embedding(7, 2, input_length=5)
पहला तर्क (7) प्रशिक्षण सेट में अलग-अलग शब्दों की संख्या है। दूसरा तर्क (2) एम्बेडिंग वैक्टर के आकार को इंगित करता है। Input_length argumet, ज़ाहिर है, प्रत्येक इनपुट अनुक्रम का आकार निर्धारित करता है।
एक बार नेटवर्क प्रशिक्षित हो जाने के बाद, हम एम्बेडिंग परत का वजन प्राप्त कर सकते हैं, जो इस मामले में आकार (7, 2) का होगा और इसे वैक्टर को एम्बेड करने के लिए पूर्णांकों को मैप करने के लिए उपयोग की जाने वाली तालिका के रूप में सोचा जा सकता है:
+------------+------------+
| index | Embedding |
+------------+------------+
| 0 | [1.2, 3.1] |
| 1 | [0.1, 4.2] |
| 2 | [1.0, 3.1] |
| 3 | [0.3, 2.1] |
| 4 | [2.2, 1.4] |
| 5 | [0.7, 1.7] |
| 6 | [4.1, 2.0] |
+------------+------------+
तो इन एम्बेडिंग के अनुसार, हमारे दूसरे प्रशिक्षण वाक्यांश का प्रतिनिधित्व किया जाएगा:
[[0.7, 1.7], [0.1, 4.2], [1.0, 3.1], [0.3, 2.1], [4.1, 2.0]]
यह पहली बार में सहज ज्ञान युक्त लग सकता है, लेकिन अंतर्निहित स्वचालित भेदभाव इंजन (जैसे, टेन्सरफ़्लो या थीनो) आपके मॉडल के किसी भी अन्य पैरामीटर की तरह प्रत्येक इनपुट पूर्णांक से जुड़े इन वैक्टर को अनुकूलित करने का प्रबंधन करते हैं। अन्य डोमेन / विभिन्न डोमेन में लोगों द्वारा सीखी गई एम्बेडिंग का उपयोग करना भी दिलचस्प है (देखें https://blog.keras.io/use-pre-trained-word-embeddings-in-a-keras-model.html ) किया हुआ [१]।
[१] लोपेज़-सान्चेज़, डी।, हेरेरो, जेआर, एरीटा, एजी, और कोर्चाडो, जेएम हाइब्रिडाइज़िंग मेट्रिक लर्निंग एंड केस-बेस्ड रीज़निंग फॉर एडाप्टेबल क्लिकबैट डिटेक्शन। एप्लाइड इंटेलिजेंस, 1-16।