Attention is all you need


Attention is all you need

3 模型結構

    大多數牛掰的序列傳導模型都具有encoder-decoder結構. 此處的encoder模塊將輸入的符號序列\((x_1,x_2,...,x_n)\)映射為連續的表示序列\({\bf z} =(z_1,z_2,...,z_n)\)(特征表示), decorder 模塊將\(z\)輸出為符號序列\((y_1,y_2,...,y_n)\), 該模塊每次只生成一個符號.每一步,模型都是自回歸的即生成下一個符號要使用之前生成的符號序列作為輸入.

本文的encorder-decorder結構如下圖所示:

上圖中左側是encorder stack,右側是decorder stack

    Encorder: encorder是由6個完全一樣的block構成的. 每個block包含2個sub-layer,第一個sub-layer是multihead self-Attention機制, 第二個是position-wise的全連接層. 每個sub-layer都引入殘差連接, 后面都要接一個歸一化層.這樣每個sub-layer的輸出就是 \(LayerNorm(x+Sublayer(x))\)

    Decorder: decorder和encorder結構類似, 除了每個block多了一個sub-layer, 多出來的一個sub-layer還要將encorder模塊的輸出作為輸入. 如上圖中部所示.剩下的那個Multi-Head Attention layer要添加mask,這是為了確保position-i的預測輸出僅僅依賴之前position的預測輸出.

下面詳細了解一下Attention 機制

    Attention 機制就是將 a query 和 a set of key-value pairs 映射為輸出. 輸出是這些values的加權平均, 加權系數是the query 和 這些keys計算得到的.
在機器翻譯中,我的理解是key-value pairs 建立起比如中文和英文之間的全體映射關系.這個映射關系的好壞直接決定了模型性能. 比如現在從英文翻譯中文. key對應着英文,value對應這中文,query自然是英文了.下面的Attention機制是計算query與keys的內積取softmax后作為values的加權系數. 內積表示query與keys的相似度.

比如, I love you. 翻譯為我愛你. 有映射關系集(a set of key-values pairs){I->我, love->愛, you->你, ...}(->前面是key,后面是value), 查詢向量{I, love, you}.key-values對應的keys集為{I, love, you, ...}, 對應的values集為{我,愛,你, ...}
分別計算查詢向量與keys集的相似度, I:{1,0,0, ...}, love:{0,1,0, ...}, you:{0,0,1,...}
查詢向量與keys的相似度,也可以認為是與values的相似度,於是加權平均就得到了我,愛,你.

下面再正式梳理一下Attention機制

    Scaled Dot-Product Attention 其輸入包括\(d_k\)維的queries和keys,和\(d_v\)維的values.因為queries和keys在同一域中,所以維度是一樣的.正如論文最開始就點明的,Attention機制,就是計算query與所有的keys的內積作為加權系數作用於values,為了消除個別內積過大導致梯度過小,內積之后要除以\(\sqrt k\). 眾多queries可以一起計算.千言萬語都在一個公式中

\(Attention(Q,K,V)=softmax(\frac{QK^T}{\sqrt k})V\)

Multi-Head Attention 作者實踐發現下面做效果更好. 用不同的線性映射將queries,keys,values映射為新的維度一致的queries,keys,values,然后再經過Scaled Dot-Product Attention 之后得到的 outputs聚合在一起再映射得到最終的輸出.公式就不再寫了.

這兩個Attention如下圖所示

    再回頭看看本文的encoreder-decorder結構, 兩種Attention機制輸入包含3個Q,K,V.圖1中左側的模塊中,Q,K,V都是相同的,來自其上一層; 右側模塊中queries來自上一個decorder layer的輸出, 而keys,values則來自encorder模塊的輸出.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM