告別自注意力,谷歌爲Transformer打造新內核Synthesizer

一隻小狐狸帶你解鎖 煉丹術&NLP 祕籍

作者:舒意恆(南京大學碩士生,知識圖譜方向)

今天給大家介紹一篇來自Google的最新論文《SYNTHESIZER: Rethinking Self-Attention in Transformer Models[4],該論文重新探索了Transformer中注意力機制的必要性,並引入了新的attention計算方法Synthesizer。實驗顯示,即使不進行token之間的attention交互計算,synthesizer在翻譯、語言模型、GLUE等任務上也可以達到很好的效果。

前言

什麼是自注意力?

2017 年,Vaswani 等人 [1] 提出了 Transformer 模型,在衆多領域取得了成功的應用,證明了它相比於自卷積模型和循環模型的優勢。

Transformer 的關鍵在於 query-key-product 的點積注意力,token 被完全連接,能夠對遠距離的依賴關係進行建模。

Transformer 存在的問題

點積自注意力提供了強大的建模能力,但同時作者對點積自注意力提出了質疑,它的計算可能是不必要的。

點積的基本作用是確定單個 token 相對於序列中所有其他 token 的相對重要性。key、query、value 暗示自注意力模擬一個基於內容的檢索過程,過程的核心是 pairwise 的交互。該文對整個過程進行了反思。

技術簡介

Synthesizer 的關鍵思想

Synthesizer 的核心思想是用低複雜度的attention計算代替dot product式的注意力機制。傳統 Transformer 的注意力機制需要進行 token 之間的兩兩交互,雖然可以獲得更多的交互信息,但attention score會很依賴實例,難以保證模型學到更多的泛化特徵。

因此,synthesizer提出了新的attention matrix學習方法,只通過簡單的前饋神經網絡即可得到注意力分數,完全省去了token之間的點積交互。

實現細節

Synthesizer 大體上可以理解爲一個 Transformer,其中自注意力模塊被 Synthetic Attention 模塊替換。

上圖表示了 Transformer、Dense Synthesizer 和 Random Synthesizer 的關鍵思想。

Synthesizer 移除了 query-key-value 的概念,而直接合成一個對齊矩陣。具體而言,即去除了 ,而使用一個行和列大小等同於序列長度 的矩陣 來表示任意 token 之間的關係。作者提出了兩類 synthesizer,分別是 Dense Synthesizer 和 Random Synthesizer。

Dense Synthesizer

給定模型的輸入 ,表示了 個 token,每個 token 的維度爲 . 該方法做如下的變換:

這可以理解爲兩個 Dense 層,和 用於 Dense 層的計算。而最後模型的輸出 ,由表示 token 間關係的矩陣 得到。

其中,可類比爲標準 Transformer 的 .

該思路並不複雜,但是,作者進一步描述了 Random Synthesizer。

Random Synthesizer

Dense Synthesizer 方法實際上是給定每個 token,然後映射到 維,而不是如同原生的 Transformer 對 token 間交互進行建模。Random Synthesizer 的方法中,注意力權重的初始化不是受任何輸入 token 的影響,而是完全隨機初始化。這些隨機初始化的值可以被訓練,或者保持固定。

以 表示一個隨機初始化矩陣,則 Random Synthesizer 被定義爲:

即 初始化的值是 . 該方法不依賴 token 對之間的交互或者任何單個 token 的信息,而是學習一個能跨實例有效的任務特定的對齊。作者表示這是最近固定自注意力方法 [2]的直接產物。

換句話說,作者認爲,學習一個跨實例有效的模型意味着在初始化時不直接依靠任何 token 信息。

分解模型

Dense Synthesizer 爲網絡添加了大小爲 的參數,用於映射;而  Random Synthesizer 添加了大小爲 的參數。如果序列很長,將導致很大的參數量。因此,爲了實踐中更加可行,作者提出了分解模型,分別針對 Dense Synthesizer 和 Random Synthesizer 稱爲 Factorized Dense Synthesizer 和 Factorized Random Synthesizer。該方法的作用是減少參數量,並防止過擬合。

1. Factorized Dense Synthesizer  

針對可能過大的序列長度 ,取兩個整數 和 使得 ,分別按 Dense Synthesizer 算得兩個矩陣記爲 和 ,兩矩陣大小分別是 和 . 然後將 中表示 token 的每個向量重複 次,將 中表示 token 的每個向量重複 次,再做元素積,即可從分解出的兩個矩陣恢復到 . 參數量減小,同時模型的表徵能力可能也受到了影響。

2. Factorized Random Synthesizer 

類似地,隨機矩陣也可被分解爲兩個低秩矩陣。

混合模型

上述所有提出的 synthetic 注意力變種都可以通過加和形式混合到一起。

αα

其中,表示一個 synthesizer 的函數,並且 是可學習的。

另外,類似於原生 Transformer 的 multi-head attention,Synthesizer 同樣支持多個 head.

效果

作者在機器翻譯、語言模型、文本生成、多任務自然語言處理等任務上進行了實驗。

機器翻譯與語言建模

作者採用常見的 WMT'14 英德(EnDe)和英法(EnFr)翻譯測試。

關於機器翻譯任務,可以看到相同參數量的 Synthesizer(Random + Vanilla) 與其他模型拉開了一定差距,也比相同參數量的 Transformer (Control) 表現更好。值得注意的是,兩個分解方法取得的提升並不如混合模型取得的提升更多,但在一定程度上減少了參數量。

關於語言建模任務,使用的數據集是 LM1B,取得最好效果的是 Synthesizer (Dense + Vanilla),它仍然是一個混合模型,同樣是 Synthesizer 的各種設置中唯一超過 Transformer 的模型。

文本生成

評測使用 CNN/Dailymail 數據集的抽象摘要任務和使用 PersonaChat 數據集的對話生成任務。其中,Synthesizer 的各個模型表現不一。

多任務 NLP

在多任務 NLP 上,作者遵循 T5 [3] 所使用的使用 GLUE 和 SuperGLUE 評測方法,並在多項指標超過了 T5(base)。在衆多測試中,仍然是加上 Vanilla 的 Synthesizer 取得較好效果。

總結

該文提出了 Synthesizer,一個新的 Transformer 模型,它採用了合成注意力(Synthetic Attention)。作者試圖更好地理解和評估全局對齊和局部、實例對齊(獨立 token 和 token 到 token 的對齊)在自注意力中的效用。

在機器翻譯、語言建模和對話生成等多個任務上,合成注意力與原有自注意力相比,表現出有競爭力的性能,點積自注意力的作用與效率值得懷疑與進一步研究。此外,在對話生成任務上,token 之間的交互信息實際會損害性能。

實際上,Synthesizer 的不同設置沒有絕對的優劣,也和具體的任務相關。個人認爲爲何在各種任務中 Synthesizer 的表現存在明顯差異、它與點積注意力分別適合於哪些任務,以及背後的成因是值得深究的。

參考文獻

[1] Attention Is All You Need. arXiv preprint arXiv:1706.03762, 2017.

[2] Fixed encoder self-attention patterns in transformer-based machine translation. arXiv preprint arXiv:2002.10260, 2020.

[3] xploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv preprint arXiv:1910.10683, 2019.

[4] Tay Y, Bahri D, Metzler D, et al. Synthesizer: Rethinking Self-Attention in Transformer Models[J]. arXiv preprint arXiv:2005.00743, 2020.

本文收錄於原創專輯:《賣萌屋@自然語言處理》

重磅驚喜:賣萌屋小可愛們苦心經營的 自然語言處理討論羣 成立三羣啦!掃描下方二維碼,後臺回覆「入羣」即可加入。衆多頂會審稿人、大廠研究員、知乎大V以及美麗小姐姐(劃掉????‍♀️)等你來撩噢~(手慢無

夕小瑤的賣萌屋

_

關注&星標小夕,帶你解鎖AI祕籍

訂閱號主頁下方「撩一下」有驚喜哦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章