Attention Is All You Need閱讀論文筆記劲厌,論文內(nèi)提出了transformer模型
一、進食前提
這里需要了解Encoder–Decoder模型
二并级、Transformer模型概覽
由圖可知颂鸿,Transformer是由N對Encoder–Decoder組合而成的扰藕,這篇論文里,N=6校摩,BERT(arXiv1810.04805)中看峻,N=8,如下圖所示
三秧耗、模型細節(jié)
1. 輸入文本的向量化
假設我們翻譯一句話
我們將詞向量與位置編碼(Positional Encoding)相加輸入
為什么加入位置編碼备籽?
原文翻譯:由于我們的模型不包含遞歸和卷積,為了讓模型利用序列的順序分井,我們必須注入一些關于序列中標記的相對或絕對位置的信息车猬。為此,我們將“位置編碼”添加到編碼器和解碼器堆棧底部的輸入嵌入中尺锚。位置編碼具有與嵌入相同的維數(shù)模型珠闰,因此可以將兩者相加。有多種固定位置瘫辩,學習伏嗜,編碼的選擇。在這項工作中伐厌,我們使用不同頻率的正弦和余弦函數(shù):
Positional Encoding實現(xiàn)參考
3.1 Encoder
2 Multi-Head Attention
2.1 Scaled Dot-Product Attention
我們先來看Scaled Dot-Product Attention承绸,公式表達如下
具體計算過程
從編碼器的每個輸入向量創(chuàng)建三個向量。因此挣轨,對于每個單詞军熏,我們創(chuàng)建一個查詢向量、一個關鍵字向量和一個值向量卷扮。這些向量是通過將嵌入向量乘以我們在訓練過程中訓練的三個矩陣來創(chuàng)建的荡澎。他們的維度為64
1.乘以權重矩陣
產(chǎn)生
2.得分是通過將查詢向量與我們正在評分的相應單詞的關鍵向量的點積計算出來的。因此晤锹,如果我們正在處理位置為的單詞摩幔,第一個分數(shù)是
和
的點積。第二個分數(shù)將是
和
的點積鞭铆。
3.將每個除以
4.應用Softmax函數(shù)來獲得值的權重或衡。
5.將每個值向量乘以Softmax得分
6.對加權值向量進行求和
2.2 Multi-Head Attention
Multi-Head Attention的公式表達如下
Multi-Head Attention的計算過程
先看一下計算過程
1.將單詞轉為512維度的詞向量
2.Q,K,V矩陣的計算
這里X矩陣向量為512(用橫向4個格子表示)薇宠,Q偷办,K,V矩陣向量為64(用橫向3個格子表示)
2.計算自我注意層的輸出
3.論文中使用8個(h=8)平行的注意力層(Scaled Dot-Product Attention)澄港,所以我們計算出由組成的8組
組成的矩陣
=64
4.因為每一組計算出一個回梧,我們最終得到了8個權重矩陣
5.但因為前饋層不需要8個矩陣废岂,它只需要一個矩陣,所以需要把8個矩陣壓縮成一個矩陣狱意,所以我們把八個矩陣拼接起來湖苞,然后將它們乘以附加的權重矩陣,最終得到矩陣輸入到前饋層
到這里详囤,終于把Encoder和Decoder共有的Multi-Head Attention層理解完了财骨。接下來我們看經(jīng)過attention后是如何進行的
2.3.Add & Layer-Normalization
通過殘差連接和層正則化,計算出新的藏姐,依次傳遞到下一層隆箩,直到最后一層輸出
3.2 Decoder
接下來將最后輸出的向量拼接成矩陣Z,然后分別輸入到每一層的Multi-Head Attention層羔杨,生成矩陣,因為每一層的Multi-Head Attention都一樣兜材,所以簡化至下圖理澎,即
矩陣依次輸入到各個Decoder
Multi-Head Attention層有三個輸入曙寡,如下圖所示糠爬,兩個是由Encoder輸入的,另一個是由Decoder底層的Masked Multi-Head Attention輸入的(分別用紅線和藍線標明)举庶。
接下來的概率輸出
最終的Linear層和Softmax層
線性層是一個簡單的完全連接的神經(jīng)網(wǎng)絡秩铆,它將解碼器堆棧產(chǎn)生的向量投影到一個更大的向量中,稱為logits向量灯变。
模型輸出時,假設模型知道從其訓練數(shù)據(jù)集中學習的10捅膘,000個獨特的英語單詞(輸出詞匯)添祸。這將使logits矢量10,000個單元格-每個單元格對應于一個唯一單詞的分數(shù)寻仗,Softmax層將這些分數(shù)轉換為概率(全部為正數(shù)刃泌,合計為1.0)。選擇具有最高概率的單元格,并產(chǎn)生與其相關聯(lián)的單詞作為該時間步長的輸出耙替。
即輸出 I am a student <eos>
若有些理解不到位和不足的地方亚侠,請多多指教!
參考文章
[1] Attention Is All You Need
[2] The Illustrated Transformer
[3] Add & Layer-Normalization
[4] Transformer模型的學習總結