NLP任務非Transformer不可?谷歌大規(guī)模研究發(fā)現預訓練卷積模型往往更優(yōu)
在當前 NLP 領域,基于 Transformer 的模型可謂炙手可熱,其采用的大規(guī)模預訓練方法已經為多項自然語言任務的基準帶來了實質性的提升,也已經在機器翻譯等領域得到了實際應用。但之前卻很少有研究者思考:預訓練是否也能提升卷積在 NLP 任務上的效果?近日, 資源雄厚的 Google Research 的一項大規(guī)模實證研究填補了這一空白。結果發(fā)現,在許多 NLP 任務上,預訓練卷積模型并不比預訓練 Transformer 模型更差。本文將重點關注該研究的實驗結果和相關討論,具體實驗設置請參閱論文。
論文地址:https://arxiv.org/pdf/2105.03322.pdf
在這個預訓練已成為慣用方法的現代,Transformer 架構與預訓練語言模型之間似乎已經有了密不可分的聯(lián)系。BERT、RoBERTa 和 T5 等模型的底層架構都是 Transformer。事實上,近來的預訓練語言模型很少有不是基于 Transformer 的。
盡管基于上下文的表征學習歷史豐富,但現代預訓練語言建模卻是始于 ELMo 和 CoVE 等基于循環(huán)架構的模型。盡管它們取得了巨大成功,但使用這些架構的研究已經減少了很多,因為 Transformer 已經偷走了 NLP 社區(qū)的心,而且 NLP 社區(qū)也已經將它(可能較為隱式地)看作是在前代架構上明確無疑的進步。
近來有研究展現了全卷積模型的潛力并質疑了 Transformer 等自注意力架構的必要性。舉個例子, 康奈爾大學博士 Felix Wu 等人在 2019 年提出的卷積式 seq2seq 模型在機器翻譯和語言建模等一系列規(guī)范基準任務上都取得了優(yōu)于 Transformer 的表現。在這些發(fā)現的基礎上,我們自然會有疑問:我們是否應該考慮 Transformer 之外的預訓練模型?
盡管卷積模型早期取得了一些成功,但在預訓練語言模型時代,卷積是否仍然重要還是一個有待解答的問題。研究者表示,之前尚未有研究工作在預訓練 - 微調范式下對卷積架構進行嚴格評估。這正是本研究的主要目的。具體而言,這篇論文的目標是通過實證方式驗證預訓練卷積模型在一系列任務上是否能與預訓練的 Transformer 相媲美。
預訓練方案與模型架構之間的交互關系這一主題所得到的研究仍舊不足。只有 Transformer 能從預訓練大量獲益嗎?如果我們使用一種不同架構的歸納偏置(inductive bias),預訓練是否也能帶來顯著增益?預訓練的卷積模型能在某些情況中取得更優(yōu)表現嗎?這篇論文研究了這些問題。
基于卷積的模型有一些明顯的優(yōu)勢。第一,卷積不會有自注意力那種二次內存復雜度的問題—這是一個重大問題,甚至足以催生出一類全新的「高效」Transformer 架構;第二,卷積在本地執(zhí)行,并不依賴位置編碼作為模型的順序信號。話說回來,卷積也有許多缺點。舉個例子,卷積無法獲取全局信息,這意味著這樣的模型無法執(zhí)行一種跨多個序列的跨注意力形式。
本文將展示一種預訓練的序列到序列模型,即 Seq2Seq。卷積模型的訓練使用了基于跨度的序列到序列去噪目標,其類似于 T5 模型使用的目標。研究者在原始范式(無預訓練)和預訓練 - 微調范式下對多種卷積變體模型進行了評估,比如擴張模型、輕量模型和動態(tài)模型。這些評估的目標是理解在預訓練時代卷積架構的真正競爭力究竟如何。
實驗結果表明,在毒性檢測、情感分類、新聞分類、查詢理解和語義解析 / 合成概括等一系列 NLP 任務上,預訓練卷積能與預訓練 Transformer 相媲美。此外,研究者發(fā)現在某些情況下,預訓練的卷積模型在模型質量和訓練速度方面可以勝過當前最佳的預訓練 Transformer。而且為了平衡考慮,研究者也描述了預訓練卷積并不更優(yōu)或可能不適用的情況。
本文的主要貢獻包括:
在預訓練 - 微調范式下對卷積式 Seq2Seq 模型進行了全面的實證評估。研究者表示,預訓練卷積模型的競爭力和重要性仍還是一個仍待解答的問題。
研究者還得出了幾項重要觀察結果。具體包括:(1)預訓練能給卷積模型和 Transformer 帶來同等助益;(2)在某些情況下,預訓練卷積在模型質量與訓練速度方面與預訓練 Transformer 相當。
研究者使用 8 個數據集在多個領域的許多任務上執(zhí)行了廣泛的實驗。他們發(fā)現,在 8 項任務的 7 項上,預訓練卷積模型優(yōu)于當前最佳的 Transformer 模型(包括使用和未使用預訓練的版本)。研究者比較了卷積和 Transformer 的速度和操作數(FLOPS),結果發(fā)現卷積不僅更快,而且還能更好地擴展用于更長的序列。
研究問題和討論
研究者主要關注了以下研究問題(RQ):
RQ1:預訓練能否為卷積和 Transformer 帶來同等助益?
RQ2:卷積模型(不管是否使用預訓練)能否與 Transformer 模型媲美?它們在什么時候表現較好?
RQ3:相比于使用 Transformer 模型,使用預訓練卷積模型是否有優(yōu)勢,又有哪些優(yōu)勢?相比于基于自注意力的 Transformer,卷積模型是否更快?
RQ4:預訓練卷積不適用于哪些情況?哪些情況需要警惕?原因是什么?
RQ5:是否有某些卷積模型變體優(yōu)于另一些模型?
實驗結果
下表 2 是在毒性檢測、情感分類、問題分類和新聞分類上,預訓練卷積和預訓練 Transformer 的表現比較。所有模型都是 12 層的 seq2seq 架構,都有大約 2.3 億個參數??梢钥吹?,預訓練對卷積也有所助益,并且總是優(yōu)于使用和沒使用預訓練的 Transformer 模型。
結果總結
實驗發(fā)現,在多個領域的 7 項任務上,(1)相比于沒使用預訓練的 Transformer,沒使用預訓練的卷積是具有競爭力的,而且常常更優(yōu);(2)預訓練卷積在 7 項任務中的 6 項上都優(yōu)于預訓練 Transformer。這是問題 RQ2 的答案。
實驗還發(fā)現預訓練能給卷積帶來助益,其產生助益的方式類似于助益基于自注意力的模型的方式。因此,預訓練的優(yōu)勢并不是 Transformer 模型獨占的。這是問題 RQ1 的答案。
研究者還發(fā)現,在這些預訓練卷積模型中,擴張卷積和動態(tài)卷積通常優(yōu)于輕量卷積,這回答了問題 RQ5。
最后,研究者觀察到,使用預訓練后,模型的相對性能(即排名)會改變。這說明使用預訓練來構建架構肯定會有某種效果。這種效果的直接影響是不使用預訓練時表現好(相對而言)的模型并不一定在使用預訓練后表現最佳。因此,除了將架構與預訓練方案組合到一起使用之外,我們也需要注意不同的架構在使用預訓練后可能會有不同的行為。
討論和分析
下面將通過詳細的分析和討論對結果進行擴展討論。其中將討論預訓練卷積的優(yōu)劣和預訓練對性能的影響,并將為廣大社區(qū)給出一些建議。
1. 預訓練卷積在哪些情況下不管用?
根據實驗結果,我們可以觀察到卷積模型相較于完善的預訓練 Transformer 的潛在優(yōu)勢,并且在某些情況下還能獲得質量上的提升。但是,進一步理解卷積的缺陷可能會有所助益。
預訓練卷積的一個明顯缺點是它們缺乏跨注意力的歸納偏置,而在 Transformer 編碼器中,使用自注意力可以自然而然地獲得這一能力。因為這個原因,對于需要建模兩個或更多序列的關系的任務而言,不宜使用預訓練卷積。為了驗證這一點,研究者在 SQuAD 和 MultiNLI 上執(zhí)行了實驗,結果發(fā)現,正是由于缺少歸納偏置,預訓練卷積的表現遠遠不及 Transformer。在檢查和評估模型時,我們應該能清楚地區(qū)分這一點,就像早期的 SNLI 排行榜能清楚地區(qū)分使用和不使用跨注意力的模型一樣。
之前在 SQuAD/MNLI 等基準上的評估表明,預訓練卷積模型確實乏善可陳。舉個例子,在 MultiNLI 上,卷積僅能實現約 75% 的準確度,而 Transformer 能輕松達到約 84%。類似地,卷積在 SQuAd 上能達到 70% 左右,而 Transformer 則可達約 90%。這完全在意料之中,因為前提 / 問題無法與假設 / 上下文交互(RQ4)。但是,研究者通過實驗發(fā)現,這種現象的原因只是單純地缺乏這種跨注意力屬性。當在編碼器中使用單層跨注意力增強卷積時,結果發(fā)現預訓練卷積能在 MultiNLI 等數據集上達到與預訓練 Transformer 非常相近的水平,實現約 83% 的準確度。
話雖如此,跨注意力歸納偏置是否真的重要,還需要實踐者進一步證明。研究者強調,在擴大規(guī)模時,連接句子對的模式并不一定是必要的,因為這需要對句子對的每種排列進行推理。因為這個原因,在實踐中,使用雙編碼器設置來執(zhí)行快速嵌入空間查找是更為實際和可行的做法。鑒于卷積在一系列編碼任務上的強勁表現,可以期待預訓練卷積在雙編碼器設置中的出色效果。
2. 相比于預訓練 Transformer,預訓練卷積有何優(yōu)勢?
基于實驗結果可知,相比于使用 Transformer,使用卷積能獲得一些質量提升。下面討論其它優(yōu)勢。
在處理長序列時,卷積速度更快,擴展更好。
圖 1:在一個 seq2seq 掩碼語言建模任務上,序列長度對處理速度的影響。結果是使用 16 塊 TPUv3 芯片在 C4 預訓練上通過基準測試得到的。結果以對數標度展示。
上圖 1 展示了在一個序列到序列任務上,卷積(LightConvs)與 Transformer 的訓練速度。輸入長度的取值為 {64, 128, 256, 512, 1024, 2048, 4096}。結果發(fā)現,卷積不僅速度總是更快(序列更短時也更快),而且擴展性能也更好。卷積會線性擴展到更長的序列,而 Transformer 無法擴展。
卷積的 FLOPs 效率更高
研究者測算了當序列長度增大時卷積與 Transformer 的 FLOPs 的數量。下圖 2 展示了不同序列長度下的結果??傮w而言,在所有序列長度上,卷積在浮點運算數量上都比 Transformer 更加高效。
圖 2:在一個 seq2seq 掩碼語言建模任務上,序列長度對 FLOPs 數量(愛因斯坦求和的操作數)的影響。結果是使用 16 塊 TPUv3 芯片在 C4 預訓練上通過基準測試得到的。結果以對數標度展示。
整體而言,不管是時鐘,還是 FLOPs,卷積都更快一些,這解答了問題 RQ3。此外,研究者還發(fā)現卷積的 FLOPs 效率在不同序列長度上延展得也更好。
3. 是否建議用卷積完全替代 Transformer?
盡管 Transformer 已經主導了 NLP 研究社區(qū),但這篇論文認為卷積的一些優(yōu)勢被忽視了,比如模型質量、速度、FLOPs 和擴展性。此外,此前我們并不知道預訓練是否能助益卷積。這篇論文表明,在某些任務上,預訓練能給卷積模型帶來與給 Transformer 模型帶來的類似增益。但是,研究者也著重指出,卷積難以應付需要跨注意力的任務,也難以建模在同一序列中有多個句子或文檔的情況。研究者認為這是一個值得實踐者探索的研究方向,并有望發(fā)掘出 Transformer 之外的新架構。
4. 不要將預訓練與架構的發(fā)展進步混為一談
這篇論文還表明,輕量、動態(tài)和擴張卷積都能從預訓練獲益,其帶來的增益程度不比給 Transformer 帶來的增益少。
在當前的研究圖景中,預訓練總是與 Transformer 架構緊密相關。因此,人們總是將 BERT 的成功、Transformer 和大規(guī)模語言模型這三者混為一談。盡管到目前為止確實只有 Transformer 會使用大規(guī)模預訓練,但可以相信其它架構也可能有類似潛力。
基于實驗結果,研究者相信在架構和預訓練的組合效果方面還有進一步的研究空間。這項研究本身也有望提升卷積模型在 NLP 領域的競爭力。他們表示,在探索解決 NLP 任務時,不要總是局限于當前最佳的 Transformer,也應積極地探索其它替代框架。
*博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。