一種完全基於注意力機制的翻譯模型 – Transformer,最近在不同語言對上的翻譯任務上都取得了最好的效果,引起了工業界和學術界的極大興趣。 由騰訊AI Lab主導,與來自南京大學、澳門大學、香港中文大學的實習生合作完成的三篇論文中,作者從多層表示融合,自注意力模型,和多頭注意力模型三個方面改進Transformer模型。以下是技術詳細解讀。
論文:Exploiting Deep Representations for Neural Machine Translation
http://ai.tencent.com/ailab/nlp/papers/emnlp2018_deep_representations.pdf
論文:Modeling Localness for Self-Attention Networks
http://ai.tencent.com/ailab/nlp/papers/emnlp2018_localness_modeling.pdf
論文 :Multi-Head Attention with Disagreement Regularization
http://ai.tencent.com/ailab/nlp/papers/emnlp2018_disagreement_regularizations.pdf
Transformer模型介紹
Transformer仍然是經典的編碼器-解碼器框架。其中編碼器是由L層神經網路組成,每層網路中包含:
1. 多頭自注意力層 (Multi-Head Self-attention)
2. 全連線的前向網路層 (Feed Forward)
3. 多頭源注意力層 (Multi-Head Attention)
受益於更強大的模型表達能力,該新型網路結構在機器翻譯任務上超過了過去基於遞迴神經網路(RNN)和卷積神經網路(CNN)的翻譯模型。
多層表示融合
本文由騰訊AI Lab主導,與南京大學合作完成。如上所述,神經機器翻譯系統通常由多層編碼器和解碼器構成,這允許系統對於複雜函式進行建模並捕獲複雜的語言結構。最近研究工作表明,不同網路層會捕獲不同層次的句法和語義資訊。 然而,通常情況下,翻譯過程僅利用了編碼器和解碼器的頂層,這錯過了利用在其他層中的有用資訊的機會。在這項工作中,研究人員提出用層聚合和多層注意力模型的方法同時利用不同網路包含的資訊。
a.標準架構 b.層聚合 c.多層注意力模型
以Transformer編碼器為例,其架構如圖(a)所示。具體計算過程如下:
其中ATT是指自注意力模型,FFN指前向連線網路,LN指層歸一化函式。是由第(l-1)層的編碼器表示轉化得到的。
層聚合模型如圖(b)所示,聚合節點(綠色圓圈)的計算公式如下:
其中聚合函式AGG定義為:
多層注意力模型如圖(c)所示,在構建第l層網路時,我們允許注意力模型可以查詢所有低層網路,而不是隻查詢第(l-1)層:
對比提出的兩種方法,其中層聚合模型將不同網路層同一位置的表示融合起來,而多層注意力模型則允許融合不同層不同位置的表示,但代價是計算複雜度更高。
自注意力模型的區域性性建模
本文由騰訊AI Lab主導,與澳門大學合作完成。自注意力模型的一個優勢在於透過直接注意所有輸入元素,從而捕獲長距離依賴關係。但是該過程是透過加權平均操作完成的,我們認為會導致其忽視相鄰元素間關係。本文透過為自注意力模型進行區域性建模,增強其學習區域性上下文的能力。
相鄰元素的關係通常對應短語的概念,在機器翻譯中起著重要作用。以下圖為例,當“Bush”對齊到“held”時,我們希望自注意力模型能同時將更多注意力放到其鄰近的詞“a talk”上。這樣,模型能捕獲短語“held a talk”。
針對該問題,本文將區域性建模設計為一種可學習的高斯偏差,這種高斯偏差表示了需要得到更多關注的區域性範圍的中心Pi和尺寸Di:
如上圖中,P在單詞“talk”位置處,而D則為2。我們透過不同的策略(如利用不同的模型中間表示)來計算pi和zi。
隨後,高斯偏差被用於修正原始注意力分佈以得到區域性強化的的權重分佈:
上圖中,透過引入學習到的高斯偏差,自注意力模型更多關注於短語“held a talk”。為了保持原模型捕獲長距離依賴性的能力的同時增強其學習短距離依存關係的能力,本文僅將區域性性建模應用於較低層的自我關注網路中。
具有差異性約束的多頭注意力模型
本文由騰訊AI Lab主導,與香港中文大學和澳門大學合作完成。多頭注意力機制是Transformer中的一個重要元件,優勢在於能在不同子空間學習不同表徵。以下圖為例,綠色和紅色代表了不同的注意力頭(attention head),對於查詢詞“Bush”,它們分別對齊到“talk”和“Sharon”,對應著不同的語言學關係。
多頭注意力模型將Q, K, V轉換到H個子空間中:
其中是第h個注意力頭的查詢向量、鍵向量和值向量。每個注意力頭透過標準注意力機制計算輸出向量:
所有注意力頭的輸出向量透過拼接操作得到最終向量表示。
在這個工作中,我們引入一種差異性約束來顯式地鼓勵多個注意力頭的多樣性:
具體地,本文提出了3種差異性約束,分別鼓勵每個注意力頭在輸入子空間、對齊矩陣、輸出表示上跟其他的注意力頭不一樣:
輸入子空間差異化約束:
對齊矩陣差異化約束:
輸出表示差異化約束: