רקע

חסרונות של מודלים רקרנטיים

רשתות RNN ו-LSTM נחשבו עד לזמן כתיבת המאמר בתור state of the art ל-sequence modeling ולבעיות נלוות כמו תרגום מכונה. מודלים רקרנטיים מחשבים לאורך פוזיציות שונות לאורך רצפי הקלט והפלט, תוך כדי סידור alignment של הפוזיציות כך שיתאימו לצעדים תוך כדי החישוב, ובכך מייצרים רצף של מצבים חבויים hidden states, כאשר כל מצב חבוי h_t הוא פונקציה של המצב החבוי הקודם h_t-1 והקלט עבור הפוזיציה / השלב ה-t. המודלים האלו הם מאוד “סדרתיים / רצפיים” במהות ושלהם, ולכן אי אפשר לחשב אותם באופן מקבילי אלא רק טורי (מה שנהיה יותר ויותר קריטי ככל שאורך משפט הקלט גדל, שזה מצב שבו גם שיקולי מגבלת זכרון נכנסים לתמונה). אמנם הושגו שיפורים משמעותיים שמקצרים את זמן האימון שלהם, אבל הבעיה של הצורך לחשב באופן טורי תמיד תשאר (כיוון שכל חישוב תלוי בחישוב קודם).

טכניקת ה-Attention לפני עידן הטרנספורמרים

כבר בזמן כתיבת המאמר (2017), הטכניקה של attention לקחה חלק משמעותי במגוון משימות (אם כי רק בהקשר של רשתות RNN), ואפשרה למדל תלויות בין טוקנים בלי להתחשב במרחק ביניהם ברצפי הקלט או הפלט.

טכניקת self attention (מכונה גם intra-attention) מקשרת פוזיציות שונות בתוך אותו רצף טוקנים כדי לחשב ייצוג עבור הרצף sequence כולו. השיטה הושמשה בהצלחה עבור מגוון משימות כולל reading comprehension, abstractive summarization, textual entailment וייצור task-dependent representation.

מוטיבציה לפיתוח הטרנספורמרים

נכון לעת כתיבת המאמר, היו קיימים מספר אלגוריתמים ורכיבי חומרה תואמים המשתמשים ברשתות CNN בתור “אבני בניין” בסיסיות, מה שמאפשר לחשב את ה-hidden representations באופן מקבילי לכל הטוקנים בקלט ובפלט. ברשתות CNN, מספר הפעולות הנדרשות כדי לקשר בין סיגנלים משני מיקומים positions שרירותיים בקלט או בפלט גדלה כתלות במרחק בין המיקומים - זה הופך את היכולת ללמוד על הקשרים בין טוקנים רחוקים ליותר קשה חישובית. ארכיטקטורת הטרנספורמר הקטינה את מספר הפעולות הדרוש לקישור בין שני פוזישנים שרירותיים למספר קבוע של פעולות (תוך שימוש ב-multi head attention - יוסבר בהמשך).

כותבי המאמר מציינים שלמיטב ידיעתם, טרנספורמים היו מודל ה-transduction (למידה מדוגמאות) הראשון שמתבסס לחלוטין על self-attention כדי לחשב ייצוגים representations לקלטים והפלטים שלו מבלי להשתמש ב-RNN או בקונבולוציה.

מודל

ארכיטקטורת Encoder-Decoder

נכון לעת כתיבת המאמר, רוב מודלי רשתות הנוירונים שמייצרות רצפי טקסט הן מאכיטקטרת Encoder-decoder. בארכיטקטורה שכזו, האנקודר ממפה את רצף הטוקנים של הקלט x_1,..,x_n לרצף של ייצוגים רציפים z=(z_1,..,zn). בהנתן הייצוג z, הדיקודר מייצר רצף של טוקני פלט y_1,..,y_m באופן הדרגתי (אלמנט אחד בכל שלב). בכל שלב בו המודל מייצר טוקן פלט כלשהו, הוא עושה זאת באופן אוטו-רגרסיבי, כלומר צורך את הטוקנים שהוא ייצר עד כה בתור קלט נוסף.

Attention

פונקצית attention יכולה להיותר מתוארת בתור פונקציה שממפה שאילתא query וקבוצה של זוגות מפתח-ערך key-value לפלט, כאשר השאתא, המפתחות, הערכים והפלט כולם וקטורים. הפלט מחושב בתור סכום משוקלל של הערכים, כאשר המשקולת לכל ערך היא תוצאת חישוב כלשהו של השאילתא על המפתח של אותו ערך.

היתרונות בשימוש ב-self attention:

Untitled