【論文解讀】EMNLP2019-多粒度自注意力機制

閱讀大概需要7分鐘

跟隨小部落客,每天進步一丟丟

來自:演算法碼上來

論文地址

Multi-Granularity Self-Attention for Neural Machine Translation[1]

介紹

現在主流的機器翻譯模型基本都是採用多頭注意力機制來對句子進行編碼解碼,但是有一些研究表明,這麼多 head 其實並不是都有用的,有些 head 的資訊是冗餘的,所以本文就想充分利用一下這些冗餘的 head 。

此外,統計機器翻譯的研究也表明了,對短語的翻譯效果可能要好於對單個單詞的翻譯,所以本文將一些 head 用來建模短語(比如 2-gram 或者 3-gram)。

最後本文在兩個翻譯任務(WMT14 英譯德和 NIST 中譯英)上做了實驗,效果都要好於普通的 Transformer ,但是運行速度上慢了許多。

多粒度自注意力機制(MG-SA)

整體框架

首先將單詞級別的輸入 映射為短語級別的表示 :

其中 是第 個 head 對應的映射函數,針對不同的短語粒度有不同的映射函數。而 是短語的個數,不同粒度個數也是不同的。

然後對於第 個 head 來說,將 分別做線性變換,得到自注意力機制的 query、key 和 value:

這樣三種向量都被映射到了相同的維度: 。

接著做 self-attention 得到每個單詞的輸出:

最後將 個 head 輸出拼接起來得到了最後的輸出:

短語劃分

短語劃分有兩種方式,一種是 n-gram ,一種是根據句法樹劃分。n-gram 劃分方式就是將句子 等分為 個短語得到 。而句法樹劃分就是按照句法樹的不同層次得到不同粒度的短語,如下圖所示:

綠色框是第一層,有 2 個短語,粒度比較大。紅色框是第二層,有 4 個短語,粒度小一點。

短語組合

每個短語 的表示可以用不同的網路來得到:

這裡 函數可以用 CNN、LSTM 或者自注意力網路(SAN)。

最後所有短語的表示記為 。

短語交互

這些短語之間也像單詞一樣做一下上下文表示,效果可能會更好:

這裡 可以選擇 LSTM 或者編碼結構能力好的 ON-LSTM[2]

最後如下圖所示,通過短語劃分短語組合短語交互,模型得到了不同粒度的各個短語表示:

損失函數

這裡添加了一個輔助任務用來增強效果:短語標籤預測。也就是對於 而言,在句法樹中對應著 個短語標籤 。然後用一個線性變換接 softmax 來預測標籤的概率:

最後標籤預測的損失函數就是:

最終的損失函數還得再加上機器翻譯的損失:

這裡的 就是機器翻譯的輸出單詞, 在實驗中設置為了 。

實驗

模型是在 Transformer 基礎上修改的,把四分之一的 head 還用來做單詞級別的 self-attention 。對於 n-gram 劃分來說,四分之三的 head 分別用來做 2-gram、3-gram 和 4-gram 短語的 self-attention 。對於句法樹短語劃分來說,四分之三的 head 正好對應了最高的三層短語的 self-attention 。

實驗主要得出了三點結論,如果不想看細節的,可以只看結論了:

  • 融入了 MG-SA 的 Transformer 的確提高了機器翻譯的 BLUE 得分。
  • MG-SA 確實可以促進目標短語的生成。
  • MG-SA 確實可以捕捉到不同粒度的短語資訊。

不同短語組合策略

可以看出三種策略效果都比普通的 Transformer 好,SAN 的效果最好,所以後面實驗都用 SAN 。

不同 encoder 層

MG-SA 用的層數越低效果越好,只用在最低層上效果最好(可能是因為直接和單詞表示接觸,對短語建模更有利),所以後面實驗都只用到最低層上。

短語劃分、標籤監督和短語交互策略影響

這個也不用過多解釋,說明了句法樹劃分短語比 n-gram 劃分短語效果好,短語標籤預測輔助任務確實有用,用 ON-LSTM 融合短語確實要更好。

輸出 n-gram 性能提升

通過對翻譯結果的 n-gram 的 BLEU 得分進行分析,可以看出幾種 MG-SA 的變體效果都是好於普通的 Transformer 的,說明了確實可以促進目標短語的生成。

主要結果

無論是 Transformer 的 base 還是 large 版本,加上 MG-SA 之後效果都有較大提升,base 版本加上去之後效果甚至逼近了 large 版本,同時參數量並沒有多太多。

attention 可視化

可以看出,普通的 Transformer(左邊)每個詞主要聚焦於前後一個詞和句子結束標記,而 MG-SA 則大多聚焦於句子的關鍵詞「三峽工程」和「首要任務」。

多粒度標籤預測任務

做了 5 個探測任務:Voice(主動被動)、Tense(時態)、TSS(根結點下層標籤序列預測)、SPC(單詞的最小包含短語標籤)和 POS(詞性標註)。

模型就是在 MG-SA 的 encoder 上面接了一個 MLP ,然後做分類。encoder 分為兩種,一種是固定參數,用 NMT 訓練好的 encoder ,一種是重新訓練 encoder 。

主要得到以下幾點結論:

  • 重新訓練 encoder 結果比直接用 NMT 的 encoder 效果提升大(除了 SPC 和 POS)。
  • 用句法樹劃分短語效果比 n-gram 劃分短語效果好。
  • 用 NMT 的 encoder 時,只有 SPC 和 POS 效果提升大(主要這兩個任務粒度小,都是單詞級別的,任務很簡單)。
  • 重新訓練 encoder 時前三個任務有提升(因為粒度比較大,而後兩個僅靠 MLP 就能學的很好了)。

結論

本文提出了一種多粒度的自注意力機制,將其加入到了 Transformer 的 encoder 中。不僅僅是機器翻譯任務,其他許多任務例如閱讀理解、語言推理、情感分類等都可以用上這種方法,更好的融入短語結構資訊。

其實這篇和 Tree Transformer: Integrating Tree Structures into Self-Attention[3] 挺類似的,都是在 Transformer 的 self-attention 上面做了手腳,加入了一些結構上的資訊,增強 encoder 的編碼能力。

參考資料

[1]

Multi-Granularity Self-Attention for Neural Machine Translation: http://arxiv.org/abs/1909.02222

[2]

Ordered Neurons: Integrating Tree Structures into Recurrent Neural Networks: http://arxiv.org/abs/1810.09536

[3]

Tree Transformer: Integrating Tree Structures into Self-Attention: http://arxiv.org/abs/1909.06639