HeadlinesBriefing favicon HeadlinesBriefing.com

समय श्रृंखला में Transformers के लिए स्थितीय एन्कोडिंग

Towards Data Science •
×

समय श्रृंखला के लिए आधार मॉडल में गहराई से जाने पर, मुझे एहसास हुआ कि मैं बिना पहले transformers को समझे उन्हें वास्तव में नहीं समझ सकता। मैं इन मॉडलों को ब्लैक बॉक्स के रूप में उपयोग नहीं करना चाहता था, इसलिए मैंने विचारों को पीछे की ओर ट्रेस करना शुरू किया, आधार मॉडल से transformers तक, और transformers से स्व-ध्यान तक। जिसने इस संक्रमण को दिलचस्प बनाया वह यह है कि हालांकि transformers मूल रूप से भाषा के लिए बनाए गए थे, मूल विचार स्वाभाविक रूप से समय श्रृंखला पर लागू होता है। दोनों मोडलिटी बहुत अलग हैं, लेकिन वे कुछ मौलिक साझा करते हैं: दोनों अनुक्रम हैं, और दोनों मामलों में, क्रम अर्थ को बदलता है। भाषा में, कुत्ता आदमी को काटता है बहुत अलग है आदमी कुत्ते को काटता है से। समय श्रृंखला अलग नहीं है। कल 30° और आज 20° का तापमान कल 20° और आज 30° से एक अलग कहानी कहता है। मान समान हो सकते हैं, लेकिन उनका क्रम अनुक्रम के अर्थ को बदल देता है। सवाल यह है कि यदि स्व-ध्यान एक साथ सभी अवलोकनों को देखता है, तो transformer को कैसे पता चलता है कि कौन सा अवलोकन पहले आया, कौन सा बाद में आया, या दो अवलोकन कितनी दूरी पर हैं? उस प्रश्न ने मुझे स्थितीय एन्कोडिंग तक ले जाया। मुझे सबसे अधिक आश्चर्यचकित करने वाली बात यह थी कि इतना सरल गणितीय विचार Transformer को क्रम की भावना कैसे दे सकता है। तब से सटीक तकनीकों काफी विकसित हुई हैं, लेकिन अंतर्निहित समस्या वही बनी हुई है। यह लेख उस अंतर्ज्ञान को शुरुआत से बनाने का मेरा प्रयास है, एक सरल समय श्रृंखला से शुरू करके और कच्चे अवलोकनों से स्व-ध्यान और अंत में स्थितीय एन्कोडिंग तक के मार्ग का अनुसरण करके।

अदिश अवलोकनों से सदिश प्रतिनिधित्व तक पांच कार्यदिवसों में दर्ज किए गए तापमान वाली एक सरल समय श्रृंखला पर विचार करें: समय श्रृंखला का उदाहरण: 5-दिन का तापमान इतिहास प्रत्येक अवलोकन x_t केवल एक अदिश है। हालांकि, एक transformer d_model आयाम वाले सदिशों पर काम करता है। इसलिए अदिश अवलोकनों को पहले उस प्रतिनिधित्व स्थान में मैप करने की आवश्यकता है। ऐसा करने का एक सरल तरीका एक सीखी गई रैखिक प्रोजेक्शन यानी एम्बेडिंग के माध्यम से है: e_t = W_e x_t + b_e हमें सदिश प्रतिनिधित्व का एक अनुक्रम देता है: e_1, e_2, e_3, e_4, e_5 एम्बेडिंग श्रृंखला का एक गहरा, अमूर्त प्रतिनिधित्व है, जो एक बहुआयामी संख्यात्मक सदिश के रूप में इसकी विशेषताओं को एन्कोड करता है और जिसे मॉडल समझता है। प्रत्येक समय श्रृंखला टोकन को एक सीखी गई एम्बेडिंग द्वारा दर्शाया जाता है। प्रत्येक e_t उस समय-चरण पर देखे गए मान के बारे में जानकारी कैप्चर करता है, लेकिन इस बिंदु पर, यह केवल अवलोकन का एक प्रतिनिधित्व है। यहाँ महत्वपूर्ण शब्द सीखा गया है। मॉडल को 18° जैसे तापमान के लिए पूर्वनिर्धारित सदिश प्रतिनिधित्व नहीं दिया जाता है। पैरामीटर W_e और b_e को प्रशिक्षण के दौरान सीखा जाता है ताकि परिणामी प्रतिनिधित्व कार्य के लिए उपयोगी बन जाएं। इस बिंदु पर, e_t जो देखा गया था उसका प्रतिनिधित्व करता है। यह अभी तक मॉडल को नहीं बताता कि अनुक्रम में वह अवलोकन कहाँ हुआ।

स्व-ध्यान संदर्भ कैसे बनाता है? स्व-ध्यान प्रत्येक अवलोकन को अनुक्रम के बाकी हिस्सों से जानकारी का उपयोग करने की अनुमति देता है। मान लीजिए कि हम शुक्रवार के प्रतिनिधित्व को अपडेट करना चाहते हैं। मॉडल पहले प्रत्येक e_t से तीन सीखी गई प्रोजेक्शन बनाता है: q_t = W_Q e_t, k_t = W_K e_t, v_t = W_V e_t क्वेरी, कुंजी और मान सदिश स्व-ध्यान ब्लॉक में सीखे जाते हैं। मैट्रिक्स W_Q, W_K और W_V भी प्रशिक्षण के दौरान सीखे जाते हैं। मॉडल को पहले नहीं बताया जाता कि एक उपयोगी क्वेरी, कुंजी या मान कैसा दिखना चाहिए। शुक्रवार के लिए, इसकी क्वेरी q_5 की तुलना सभी अवलोकनों की कुंजियों से की जाती है: k_1, k_2, k_3, k_4, k_5। प्रत्येक तुलना एक... उत्पन्न करती है