Attention Is All You Need

Attention Is All You Need閱讀論文筆記劲厌,論文內(nèi)提出了transformer模型

一、進食前提

這里需要了解Encoder–Decoder模型

二并级、Transformer模型概覽

Transformer

由圖可知颂鸿,Transformer是由N對Encoder–Decoder組合而成的扰藕,這篇論文里,N=6校摩,BERT(arXiv1810.04805)中看峻,N=8,如下圖所示

三秧耗、模型細節(jié)

1. 輸入文本的向量化

假設我們翻譯一句話

image.png

我們將詞向量與位置編碼(Positional Encoding)相加輸入

為什么加入位置編碼备籽?

原文翻譯:由于我們的模型不包含遞歸和卷積,為了讓模型利用序列的順序分井,我們必須注入一些關于序列中標記的相對或絕對位置的信息车猬。為此,我們將“位置編碼”添加到編碼器和解碼器堆棧底部的輸入嵌入中尺锚。位置編碼具有與嵌入相同的維數(shù)模型珠闰,因此可以將兩者相加。有多種固定位置瘫辩,學習伏嗜,編碼的選擇。在這項工作中伐厌,我們使用不同頻率的正弦和余弦函數(shù):
Positional Encoding實現(xiàn)參考

P E_{(p o s, 2 i)}=\sin \left(p o s / 10000^{2 i / d_{\text {madd }}}\right)

P E_{(p o s, 2 i+1)}=\cos \left(p o s / 10000^{2 i / d_{\text {madd }}}\right)

3.1 Encoder

2 Multi-Head Attention

2.1 Scaled Dot-Product Attention

我們先來看Scaled Dot-Product Attention承绸,公式表達如下

\text { Attention }(Q, K, V)=\operatorname{softmax}\left(\frac{Q K^{T}}{\sqrt{d_{k}}}\right) V

具體計算過程

從編碼器的每個輸入向量創(chuàng)建三個向量。因此挣轨,對于每個單詞军熏,我們創(chuàng)建一個查詢向量、一個關鍵字向量和一個值向量卷扮。這些向量是通過將嵌入向量乘以我們在訓練過程中訓練的三個矩陣來創(chuàng)建的荡澎。他們的維度為64

1.X_{i}乘以權重矩陣W^{Q},W^{K},W^{V}產(chǎn)生q_{i},k_{i},v_{i}

q_{i} = W^{Q}*x_{i}

k_{i} = W^{K}*x_{i}

v_{i} = W^{V}*x_{i}

Queries,Keys,Values

2.得分是通過將查詢向量與我們正在評分的相應單詞的關鍵向量的點積計算出來的。因此晤锹,如果我們正在處理位置為pos1的單詞摩幔,第一個分數(shù)是q_{1}k_{1}的點積。第二個分數(shù)將是q_{1}k_{2}的點積鞭铆。

Score=q_{posi}*k_{i}

3.將每個除以\sqrt{d_{k}}
4.應用Softmax函數(shù)來獲得值的權重或衡。
5.將每個值向量乘以Softmax得分

v_{i}{'}=v_{i}*softmax_{i}

6.對加權值向量進行求和

z_{1}=v_{1}{'}+v_{2}{'}+...+v_{i}{'}

計算過程

2.2 Multi-Head Attention

Multi-Head Attention的公式表達如下
\begin{aligned} \text { MultiHead } (Q, K, V) &=\text { Concat } \left(\text { head }_{1}, \ldots, \text { head }_{\mathrm{h}}\right) W^{O} \\ \text { where head }_{\mathrm{i}} &=\text { Attention }\left(Q W_{i}^{Q}, K W_{i}^{K}, V W_{i}^{V}\right) \end{aligned}

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)澄港,所以我們計算出由Q_{0}...Q_{7},K_{0}...K_{7},V_{0}...V_{7}組成的8組(Q_{i}椒涯,K_{i},V_{i})組成的矩陣
d_{k}=d_{v}=d_{model}/h=64


4.因為每一組計算出一個回梧,我們最終得到了8個權重矩陣


5.但因為前饋層不需要8個矩陣废岂,它只需要一個矩陣,所以需要把8個矩陣壓縮成一個矩陣狱意,所以我們把八個矩陣拼接起來湖苞,然后將它們乘以附加的權重矩陣,最終得到矩陣輸入到前饋層

到這里详囤,終于把Encoder和Decoder共有的Multi-Head Attention層理解完了财骨。接下來我們看經(jīng)過attention后是如何進行的

2.3.Add & Layer-Normalization

通過殘差連接和層正則化,計算出新的Z_{i}藏姐,依次傳遞到下一層隆箩,直到最后一層輸出

\mathrm{FFN}(x)=\max \left(0, x W_{1}+b_{1}\right) W_{2}+b_{2}

3.2 Decoder

接下來將最后輸出的向量拼接成矩陣Z,然后分別輸入到每一層的Multi-Head Attention層羔杨,生成K捌臊,V矩陣,因為每一層的Multi-Head Attention都一樣兜材,所以簡化至下圖理澎,即K,V矩陣依次輸入到各個Decoder

輸入至Decoder

Multi-Head Attention層有三個輸入曙寡,如下圖所示糠爬,兩個是由Encoder輸入的,另一個是由Decoder底層的Masked Multi-Head Attention輸入的(分別用紅線和藍線標明)举庶。

接下來的概率輸出

transformer_decoding_2.gif

最終的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模型的學習總結

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末俗扇,一起剝皮案震驚了整個濱河市硝烂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铜幽,老刑警劉巖滞谢,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異除抛,居然都是意外死亡狮杨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門到忽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來橄教,“玉大人,你說我怎么就攤上這事喘漏』さ” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵陷遮,是天一觀的道長滓走。 經(jīng)常有香客問我,道長帽馋,這世上最難降的妖魔是什么搅方? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮绽族,結果婚禮上姨涡,老公的妹妹穿的比我還像新娘。我一直安慰自己吧慢,他們只是感情好涛漂,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著检诗,像睡著了一般匈仗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上逢慌,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天悠轩,我揣著相機與錄音,去河邊找鬼攻泼。 笑死火架,一個胖子當著我的面吹牛鉴象,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播何鸡,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼纺弊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了骡男?” 一聲冷哼從身側響起淆游,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎洞翩,沒想到半個月后稽犁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡骚亿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年已亥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片来屠。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡虑椎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俱笛,到底是詐尸還是另有隱情捆姜,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布迎膜,位于F島的核電站泥技,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏磕仅。R本人自食惡果不足惜珊豹,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望榕订。 院中可真熱鬧店茶,春花似錦、人聲如沸劫恒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽两嘴。三九已至丛楚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間憔辫,已是汗流浹背鸯檬。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留螺垢,地道東北人喧务。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像枉圃,于是被迫代替她去往敵國和親功茴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內(nèi)容