ICLR 2020上,Transformers 有何新動向?
- 2020 年 4 月 29 日
- AI
雷鋒網AI科技評論:繼昨天的「知識圖譜@ICLR2020」之後,我們今天關注ICLR 2020 上 Transformer的研究動態。
Transformers,作為一種基於注意力的神經架構,在自然語言處理中已經無處不在,在過去一年多的時間裡也將自然語言處理推向了新的高度。那麼,在ICLR
2020 上有什麼新的內容呢?在這篇文章中,我們從三個維度:對架構的修改、訓練方法的創新以及應用——介紹相關的 9 篇文章。
註:文中涉及論文,可關注「AI科技評論」微信公眾號,並後台回復「Transformer@ICLR2020」打包下載。
一、對架構的修改
1、輕量級BERT
論文:ALBERT: A Lite BERT for Self-supervised Learning of Language Representations
鏈接://openreview.net/pdf?id=H1eA7AEtvS
曾經,預訓練是大模型(玩家)的天下,直到出現了 ALBERT。
預訓練自然語言表徵時,增加模型大小一般是可以提升模型在下游任務中的性能。但是這種純粹依賴模型尺寸進而期望大力出奇蹟的想法在未來會越發困難。進一步增加模型大小將帶來三點困難:1)GPU/TPU記憶體不足;2)訓練時間會更長;3)模型退化。
為了解決這些問題,Google研究人員提出了「一個精簡的 BERT」(A Lite BERT,ALBERT),參數量遠遠少於傳統的 BERT 架構,而性能方面則基本一致。
ALBERT的優化包括三個方面
嵌入向量參數化的因式分解:通過使用與詞嵌入大小不同的隱藏大小,可以對嵌入參數化進行因式分解,將其大小從O(Vocab×Hidden)減小為O(Vocab×Emb
+ Emb + Emb×Hidden),當 Hidden >> Emb時,這種減小會有實質性意義。
跨層參數共享:重新使用不同 Transformer 模組的參數,例如FFN 或注意力權重。句子間順序預測:作者認為從原始的BERT預測下一個句子並不是什麼有挑戰的事情,因此引入了新的句子級自監督目標。
結果?與BERT-Large相比,參數可減少18倍,性能相當,推理速度稍快。
2、高效 Transformer
論文:Reformer: The Efficient Transformer
鏈接://openreview.net/pdf?id=rkgNKkHtvB
Transformer是NLP中廣為應用的成熟技術,在許多任務中取得了驕人的成績,尤其是長序列文本上表現突出,但卻極其耗費算力和記憶體資源,Transformer網路一層的參數量約0.5B,需要2G的記憶體空間,單層網路的Transformer在單台機器上尚可滿足,但鑒於以下考慮,整個Transformer網路所需要的資源是驚人的:
-
一個N層的網路需要的記憶體資源要多於一層所需記憶體的N倍,因為同時需要存儲激活結果,在反向傳播時使用。
-
Transformer前饋全連接神經網路的寬度(神經單元數)要比attention激活的寬度(可理解為embedding的size)多,需要更多的記憶體消耗。
-
對一個長度為L的序列,Attention層的複雜度是,這對長序列文本處理是無法接受的。
Source: Reformer: The Efficient Transformer
這篇文章通過下面幾項技術解決上面提到的幾個問題:
-
使用可逆殘差層取代標準殘差層,在訓練階段只需要存儲一層的激活結果而不是N層(N是網路層數)(消除了網路中N的倍數)。
-
分離前饋全連接層的激活部分,分區塊進行處理,消除對記憶體的消耗。
-
使用局部敏感哈希(Local-Sensitive Hashing, LSH)技術把計算attention部分的複雜度O(L²)(主要來自於點乘)從降至O(L log L)(其中L代表序列長度)。
3、CPU 上的 Transformer
論文:Lite Transformer with Long-Short Range Attention (LSRA)
鏈接://openreview.net/pdf?id=ByeMPlHKPH
這篇文章針對Transformer 在mobile device(CPU)上做了改進。
Transformer 要實現高性能,需要大量計算,這顯然不適用於受硬體限制的移動設備。在這篇文章中,作者提出了一種高效的移動端的輕量級的 Transformer,以此來促進在邊緣設備上部署NLP應用程式。
Source: Lite Transformer with Long-Short Range Attention (LSRA)
關鍵點是,作者提出了一個長短距離注意力(Long-Short Range Attention,LSRA),其中一組heads專門(通過卷積)對局部上下文進行建模,另一組heads(通過注意力)對長程關係進行建模。
這個模型雖然在最終結果上與那些大型Transformer不可比,但1)其研究動機;2)其創新性的架構,值得我們重點關注。
目前這篇文章已經開源://github.com/mit-han-lab/lite-transformer
二、訓練方法的創新
Transformer架構重要,訓練方法也同樣。在今年的ICLR上出現了不少令人耳目一新的訓練方法。
4、ELECTRA:GAN的巧妙運用
論文:ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
鏈接://openreview.net/pdf?id=r1xMH1BtvB
這是斯坦福SAIL實驗室Manning組與Google合作的工作。ELECTRA的全稱是Efficiently
Learning an Encoder that Classifies Token Replacements
Accurately。網傳這是2019年最佳NLP預訓練模型。
在去年11月份,ELECTRA一經發布,迅速火爆整個NLP圈,其中ELECTRA-small模型參數量僅為 BERT-base模型的1/10,性能卻依然能與BERT、RoBERTa等模型相媲美。
在前不久,Google也開源了ELECTRA,並發布了預訓練模型。中文社區,哈工大訊飛聯合實驗室(HFL)基於ELECTRA開源程式碼,也發布了中文版的 ELECTRA 預訓練模型。//github.com/ymcui/Chinese-ELECTRA
感受一下ELECTRA的效果:
Source: ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
ELECTRA能夠取得如此優異結果,基於其新穎的預訓練框架,其中包含兩個部分:Generator和Discriminator。
Generator: 一個小的MLM,在[MASK]的位置預測原來的詞。Generator將用來把輸入文本做部分詞的替換。
Discriminator:
判斷輸入句子中的每個詞是否被替換,即使用Replaced Token Detection
(RTD)預訓練任務,取代了BERT原始的Masked Language Model (MLM)。需要注意的是這裡並沒有使用Next
Sentence Prediction (NSP)任務。
在預訓練階段結束之後,只使用Discriminator作為下游任務精調的基模型。
換句話說,作者們把CV領域的GAN運用到了自然語言處理。
值得注意的是,儘管與GAN的訓練目標相似,但仍存在一些關鍵差異。首先,如果生成器碰巧生成了正確的token,則該token被視為「真實」而不是「偽造」;所以模型能夠適度改善下游任務的結果。更重要的是,生成器使用最大似然來訓練,而不是通過對抗性訓練來欺騙判別器。
5、新時代,新任務
論文:TabFact: A Large-scale Dataset for Table-based Fact Verification
鏈接://openreview.net/pdf?id=rkeJRhNYDH
這篇工作來自
UCSB 電腦科學系助理教授王威廉等人的研究。隨著現在 Transformer
的性能與人類水平之間的差距越來越小,許多經典的NLP數據集事實上已經過時了。因此,若想更近一步研究,就需要創建一個更具挑戰性的新基準。在這種背景下,作者提出了一個新的數據集,用來解決以自然語言表達的基於事實的資訊進行建模的問題。
Source: TabFact: A Large-scale Dataset for Table-based Fact Verification
數據集由Wikipedia的16k 的表和118k人工注釋的語句組成,這些語句帶有ENTAILMENT或REFUTED標籤來引用事實數據。
目前這個任務的基準性能仍然處於中等水平,仍然大有可為。
6、加入現實世界知識
論文:Pretrained Encyclopedia: Weakly Supervised Knowledge-Pretrained Language Model
鏈接://openreview.net/pdf?id=BJlzm64tDH
預訓練語言模型的最新進展表明,自監督學習對於多種自然語言處理(NLP)任務的有效性。除了標準的語法和語義NLP任務外,預訓練的模型還對涉及真實世界知識的任務進行了大幅度改進,這表明大規模語言建模可能是捕獲知識的隱式方法。
在這篇文章中,作者提出了一個簡單而有效的弱監督預訓練目標。這個目標明確強迫模型納入有關現實世界實體的知識。使用這個新目標訓練的模型在「事實完成」(fact
completion)任務上有較大改進。當應用於下游任務時,他們的在多個任務(如問答、實體鍵入)上性能都優於BERT。
三、應用
Transformer不僅與語言建模有關,在一些相關問題上也有一些巧妙的應用。
7、用BERT評估文本生成
論文:BERTScore: Evaluating Text Generation with BERT
鏈接://openreview.net/pdf?id=SkeHuCVFDr
在鬆散定義的環境(即生成連貫的文本)下,客觀地測量生成品質,具有很大的挑戰性。傳統上,BLUE分數作為文本相似性的代名詞,雖然被廣泛應用(例如翻譯、問答),但在長文本生成任務中卻顯得不那麼完美。
Example of one of the BERT-based scoring function. Source: BERTScore: Evaluating Text Generation with BERT
為了解決這個問題,BERTScore提出了一種新的度量標準,利用來自BERT的預訓練上下文嵌入,並通過餘弦相似性匹配候選和參考句子中的單詞。
這個過程其實非常簡單,不涉及任何微調,僅進行預訓練的上下文嵌入,以及餘弦相似度和基於頻率的重要性加權。
相較於BLUE,這種度量方法會失去一些可解釋性。這種學習型評分標準是否能成為新的評價標準呢?時間會給出答案。
BERT既然這麼牛逼,為什麼不能用它作為一種度量標準呢?直接把生成句子和參考句子懟進BERT,然後計算token之間的cos相似度,然後用一個max-pool,再玄學算一下,暴力有效,因吹斯聽!據說和人類評估更接近,而且也比較魯棒(這篇文章好像是某會被拒了,重投ICLR)。來源://xueqiu.com/4851636118/135380777
8、用預訓練做檢索
論文:Pre-training Tasks for Embedding-based Large-scale Retrieval
鏈接://openreview.net/pdf?id=rkg-mA4FDr
大規模查詢文檔檢索問題,即給定一個查詢(例如一個問題),會從一個大型文檔語料庫中返回相應文檔集(例如包含答案的段落)。這個問題通常會分為兩個步驟:1)檢索階段主要來減小解空間的大小,並返回一個包含候選文檔的子集;2)計分階段,會根據分數對文檔進行排序。
對於評分階段,由於基於交叉注意力模型的BERT類的預訓練,有了顯著的提高。但檢索階段的研究卻仍然較少,目前的方法大多還以來經典的IR技術,例如BM-25(令牌匹配+TF-IDF權重)。這些模型只能處理少量手工的特徵,而無法針對感興趣的其他下游任務進行優化。
Source: Pre-training Tasks for Embedding-based Large-scale Retrieval
在這篇文章中,作者對基於嵌入的檢索模型,通過適當設計段落級預訓練任務,Transformer模型可以顯著改善檢索的性能;甚至在缺乏監督訓練數據的情況下,在問答任務上也比BM25性能更好。
9、用BERT做視覺語言任務
論文:VL-BERT: Pre-training of Generic Visual-Linguistic Representations
鏈接://openreview.net/pdf?id=SygXPaEYvH
開源://github.com/jackroos/VL-BERT
如何利用預訓練和微調框架來學習語言和視覺表示呢?
在這篇文章中,作者引入了一種新型的可做預訓練的通用表示形式
VL-BERT。VL-BERT以
Transformer和R-CNN作為主幹進行擴展(儘管並不是首個這樣做的,但它對現有模型的改進讓人耳目一新),從而能夠將視覺和語言嵌入特徵作為輸入。輸入的每個元素要麼是輸入句子中的單詞,要麼是輸入影像中的關注區域(RoI)。
Source: VL-BERT: Pre-training of Generic Visual-Linguistic Representations
這個設計可以適用於大多數的可視語言的下游任務。作者將VL-BERT與純文本語料庫一起,在大規模概念字幕數據集(Conceptual Captions dataset)上進行了預訓練。實驗表明,預訓練可以很好地協調視覺語言線索,且有利於下游任務。
這個工作,在發布的時候,也在視覺常識推理(VCR)基準測試的排行榜上取得第一名的成績。
雷鋒網雷鋒網