Transformers是機器學習(ML)中一個令人興奮的(相對)新的部分,但是在理解它們之前,有很多概念需要分解。這裡我們關注的是基本的Self-Attention機制是如何工作的,這是Transformers模型的第一層。本質上,對於每個輸入向量,Self-Attention產生一個向量,該向量在其鄰近向量上加權求和,其中權重由單詞之間的關係或連通性決定。
內容列表
介紹自我關注-數學引用文章介紹
Transformers是一種ML架構,已經成功地應用於各種NLP任務,尤其是序列到序列(seq2seq)任務,如機器翻譯和文本生成。在seq2seq任務中,目標是獲取一組輸入(例如英語單詞)並產生一組理想的輸出(德語中的相同單詞)。自2017年發布以來,他們已經佔領了seq2seq的主流架構(LSTMs),幾乎無所不在地出現在任何關於NLP突破的新聞中(比如OpenAI的GPT-2甚至出現在主流媒體上!)。
圖1:機器翻譯 英->德
本篇將作為一個非常溫和、漸進的介紹Transformer架構背後的數學、代碼和概念。沒有比注意力機制更好的開始了,因為:
最基本的transformers 完全依賴於注意力機制
Self-Attention的數學表示
我們需要一個ML系統來學習單詞之間的重要關係,就像人類理解句子中的單詞一樣。在圖2.1中,你我都知道「The」指的是「animal」,因此應該與這個詞有很強的聯繫。如圖中的顏色編碼所示,該系統知道「animal」、「cross」、「street」和「the」之間存在某種聯繫,因為它們都與句子的主語「animal」有關。這是通過Self-Attention來實現的
圖2.1:「The」注意力集中在了哪些詞?
在最基本的層面上,Self-Attention是一個過程,其中一個向量序列x被編碼成另一個向量序列z(圖2.2)。每一個原始向量只是一個代表一個單詞的數字塊。它對應的z向量既表示原始單詞,也表示它與周圍其他單詞的關係。
圖2.2:把一系列的輸入向量變成另一個長向量序列
向量表示空間中的某種事物,如海洋中的水粒子流或地球周圍任何點的重力效應。你可以把單詞看作是整個單詞空間中的向量。每個詞向量的方向都有意義。向量之間的相似性和差異性對應於單詞本身的相似性和差異性。
讓我們先看前三個向量,特別是向量x2,我們的「cat」向量,是如何變成z2的。對於每個輸入向量,將重複所有這些步驟。
首先,我們將向量x2乘以一個序列中的所有向量,包括它本身。我們將對每個向量和x2的轉置(對角翻轉)做一個乘積(圖2.3)。這和做點積是一樣的,你可以把兩個向量的點積看作是衡量它們有多相似。
圖2.3 轉置乘法(上標「T」=「轉置」)
兩個向量的點積與它們之間夾角的餘弦成正比(圖2.4),因此它們在方向上越接近,點積就越大。如果它們指向同一個方向,那麼角A為0,餘弦為0等於1。如果它們指向相反的方向(因此A=180),那麼餘弦值為-1。
圖2.4 向量點積
如果你想要一個更直觀的觀點,Bloem的文章(地址參看引用段)討論了自我關注如何類似於推薦系統決定電影或用戶的相似性。
所以我們一次只關注一個詞,然後根據它周圍的詞來確定它的輸出。這裡我們只看前面和後面的單詞,但我們可以選擇在將來拓寬這個窗口。
圖2.5-每個j-th向量的原始權重
如果我們關注的單詞是「cat」,那麼我們要複習的單詞序列是「the」,「cat」,「sat」。我們要問的是「cat」這個詞應該分別關注「the」、「cat」和「sat」(與圖2.1所示類似)。
將關注的單詞向量的轉置和它周圍的單詞序列相乘將得到一組3個原始權重(圖2.5)。兩個詞的權重是如何成比例的。我們需要對它們進行規範化,以便它們更易於使用。我們將使用softmax公式(圖2.6)來實現這一點。這將數字序列轉換為0,1的範圍內,其中每個輸出與輸入數字的指數成比例。這使得我們的權重更容易使用和解釋。
圖2.6:通過softmax函數將原始權重標準化
現在我們取歸一化的權重(j序列中每個向量對應一個),分別將它們與x輸入向量相乘,將它們的乘積相加,結果就完成了!我們有一個輸出z向量,(圖2.5)!當然,這只是x2的輸出向量(「cat」)——這個操作將對x中的每個輸入向量重複,直到我們得到圖2.2中所說的輸出序列。
圖2.7:最終得到新的向量序列z的操作
這種解釋到目前為止可能引發了一些問題:
我們計算的權重不是很大程度上依賴於我們如何確定原始輸入向量嗎?
為什麼我們要依賴向量的相似性?如果我們想在兩個「不相似」的單詞之間找到聯繫,比如「the cat sit on the matt」的賓語和主語,該怎麼辦?
在後面的文章中,我們將討論這些問題。我們將根據每個向量的不同用法對其進行轉換,從而更精確地定義單詞之間的關係,這樣我們就可以得到如圖2.8所示的輸出。
圖2.8 -橙色欄中的「cross」和粉色欄中的「cross」關注的是哪個單詞?
引用
Alammar J. The Illustrated Transformer. (2018) jalammar.github.io illustrated-transformer/ [accessed 27th June 2020]Bloem P. Transformers from Scratch. (2019) peterbloem.nl /blog/transformers .[accessed 27th June 2020]Vaswani A. et al. Dec 2017. Attention is all you need. 31st Conference on Neural Information Processing Systems (NIPS 2017), Long Beach, CA, USA. [accessed 27th June 2020]. arXiv:1706.03762Vaswani A. et al. Mar 2018 arXiv:1803.07416 .作者:Ioana
deephub翻譯組