ICLR 2020|ELECTRA

MLM(Masked language modeling)方式的預訓練語言模型如BERT是在輸入上用[MASK]遮蔽掉部分tokens,再訓練一個模型以重建出原始的tokens。這種方式遷移到下游NLP任務時能夠得到較好的結果,已然成爲NLP任務中的標配。但是這種預訓練方法往往需要大量的算力。爲此,本文提出一種樣本效率更爲高效的預訓練任務:替換token檢測(replaced token detection, RTD)。RTD不對輸入進行遮蔽,而是從生成器中採樣得到可信的tokens,再替換掉原始輸入上的tokens。本文不再訓練模型預測輸入中的原始tokens,而是訓練一個判別器以辨別輸入中每個token是否是由生成器生成。通過實驗表明這種新的預訓練任務比MLM更高效,該任務定義於全部的輸入tokens,而非僅僅被遮蔽掉的那一部分小小的輸入子集。實驗結果表明本文方案所學習到的上下文表徵大大優於相同模型大小、相同數據量和相同算力下的BERT。這種收益在小模型上更加顯著,比如在GLUE自然語言理解基準上,單塊GPU訓練4天的結果優於GPT(算力比其高30倍+)。本文的方法在大模型上也很有成效,只使用RoBERTa和XLNet四分之一算力即可取得與之比肩的結果,在相同算力下輕鬆超越對方。

題目:ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators

機構:斯坦福、Google Brain

作者:Kevin Clark, Minh-Thang Luong, Quoc V. Le, Christopher D. Manning

論文地址:https://www.aminer.cn/pub/5e5e18d593d709897ce33b3c/electra-pre-training-text-encoders-as-discriminators-rather-than-generators

1. 方法

替換Token檢測(RTD)任務如Figure 2所示。

 

 

 

rtd.png

 

 

本文方法需要訓練兩個神經網絡分別是生成器G和判別器D。兩者[1] 都包含了一個encoder,比如Transformer 。encoder將輸入token序列映射爲一序列上下文表徵向量。給定位置t,生成器用softmax層輸出x_t概率分佈:

 

 

soft.png

 

 

其中e表示token的嵌入表徵。給定位置t,判別器判斷token x_t是否由生成器生成,其輸出層是sigmoid:

 

 

 

sig.png

 

訓練的生成器是爲了執行MLM。給定輸入列,MLM先選擇一些隨機的位置進行遮蔽,遮蔽集合記爲m。這些被選中的tokens被用[MASK] token替換。生成器學習預測出被遮蔽掉的原始token。至於訓練的判別器則是爲了能夠鑑別出token是否是來自生成器。通過生成器生成的token替換原始字符,再訓練判別器鑑別出哪些token和原始輸入相匹配。

總結下,模型根據以下式子重建輸入:

 

 

tokrn.png

 

 

其中REPLACE是定義的替換操作。第一個是用[MASK]替換,第二個是用生成器生成的字符替換。

對應的損失函數分別如下:

 

 

re.png

 

 

儘管看似GAN的訓練目標函數,但是存在以下幾點關鍵不同點:

第一,當生成器碰巧生成正確的token,則該token被視爲真實的,而非假冒的。實驗發現這種方式可以一定程度上地改善下游任務。

第二,生成器的訓練是基於最大似然而非對抗訓練。後者試圖在訓練過程中騙過判別器。對抗訓練在這裏很難實現,究其原因在於無法通過從生成器採樣來進行反向傳播。儘管本文也嘗試使用強化學習的方式訓練生成器從而繞開這個問題(附件F),但是效果仍不及最大似然的訓練方式。

第三,不像GAN那樣在生成器的輸入中添加噪聲。

 

最終最小化聯合損失:

 

 

gun.png

 

 

實驗過程中用單樣本來近似損失的期望。同時不把判別器的損失反向傳播到生成器,採樣的步驟也做不到。在預訓練之後,丟棄生成器,並在下游任務中對判別器進行微調。

2. 實驗

2.1 實驗設置

爲驗證文本方法的有效性,在GLUE和SQuAD上進行實驗。預訓練數據集分兩種情況:第一種是和BERT對比,則採用Wikipedia 和 BooksCorpus數據集,合計大概3.3 Billion tokens;第二種是和XLNet對比,則與其相同的數據集進行預訓練,即ClueWeb、CommonCrawl和Gigaword,合計33 Billion tokens。

 

本文的模型架構和超參數總體上和BERT相同。在微調階段,對於GLUE則在ELECTRA的頂部增加一個簡單的線性分類器;對於SQuAD則借用XLNet中的問-答模塊,將其加到ELECTRA的頂部。之所以這部分借用XLNet,是由於該模塊比BERT更精細,起始位置和終點位置是聯合預測的,而不像BERT那樣兩者各自獨立,另外對於SQuAD2.0該模塊還有能否回答的分類器。需要注意的是,一些評估數據集很小,這意味着微調模型的準確性可能會隨着隨機種子的不同而發生很大的變化。因此,最終報告結果是從相同的預先訓練的檢查點運行10次微調的中位數。

 

2.2 模型拓展

爲了改善模型本文在模型中進行了以下幾點拓展。除非特別說明,否則實驗對比中模型大小和訓練數據集均與BERT-Base相同。

 

第一,權重共享。

生成器和判別器權重參數共享可以提高預訓練的效率。當生成器和判別器大小相同,則二者的所有transformer權重都可以密切相連。但是,實驗中發現較小的生成器更爲高效,這使得只能共享生成器和判別器的嵌入參數(包括token嵌入和位置嵌入)。這種情況下,使用的嵌入大小是根據判別器隱狀態的嵌入尺寸。在生成器中添加一個線性變換層以將嵌入投射爲生成器隱狀態尺寸的表徵。

 

實驗對比了生成器和判別器相同大小的情況。在GLUE中,權重完全無關時的得分爲83.6,共享token 嵌入時的得分爲84.3,共享所有權重時的得分爲84.4。可以猜想本文的模型得益於共享token嵌入的方案,可能是MLM在學習以下表徵上更爲有效:

 

- 僅當輸入中有生成器生成的token時判別器纔會更新。生成器的softmax在整個詞典上密集更新所有的token嵌入。

- 完全關聯生成器和判別器的權重幾乎沒有什麼提升,卻需要生成器和判別器大小完全相同,這得不償失。

 

基於上述這些發現,最終選用共享嵌入參數。

 

第二,較小的生成器。

如果生成器和判別器大小相同,則訓練ELECTRA每步需要的計算量大約是隻使用MLM訓練的兩倍。爲此,本文使用較小的生成器以降低該因素的影響。具體是降低層的大小,同時保持其他超參數恆定不變。此外,本文還嘗試了一個極簡的unigram生成器,該生成器根據訓練語料中的頻率採樣生成假的tokens。不同大小的生成器和判別器在GLUE上的得分如Figure 3中左圖所示。

 

 

glue.png

 

 

從中發現生成器最佳的尺寸是判別器的1/4-1/2。這可能是由於當生成器過於強大,則對應的任務對判別器來說越難。

 

第三,訓練方法。

本文還進一步探索了ELECTRA的其他訓練方法。儘管這些探索性工作並沒有最終改善結果。探索的訓練方法使用以下兩階段的訓練流程:

1. 只訓練生成器,訓練n步。

2. 用生成器的權重初始化判別器。再訓練判別器,訓練n步,同時固定住生成器的權重。

 

上述提到的權重初始化要求生成器和判別器的大小相同。實驗中發現,如果判別器沒有這個權重初始化操作,那麼有時會甚至在大多數類之外學習失敗。這可能是由於此時的生成器已遠遠領先於判別器。聯合訓練的方式另一方面天然地爲判別器提供了一個總綱,在這個總綱中,生成器一開始很弱,但在整個訓練過程中變得越來越好。此外本文還探索瞭如同GAN那般使用對抗方式訓練生成器,具體使用強化學習來適應離散操作的採樣生成器。具體參考附件F。

 

各種訓練方法的對比如Figure 3右圖所示。從中可以看出,對於兩階段的訓練方法,當將生成目標轉爲判別目標後,下游任務的性能得到顯著提升,但是最終沒有超過聯合訓練方案。至於對抗訓練方案,儘管超過了BERT,但是仍然遜色於最大似然訓練方法。這之間的差距可能源於以下2個因素:

 

第一,對抗方式訓練生成器在MLM上表現更差,只能取得58%的準確率,而最大似然的訓練方案可以取得65%的準確率。準確率較差的主要原因是在生成文本的龐大動作空間中[2] ,強化學習的樣本效率較低。

 

第二,對抗方式訓練的生成器產生一個低熵輸出分佈,其中大部分概率集中在單個token上,這意味着生成器生成的樣本中沒有太多的多樣性。

2.3 Small版模型

先在Small版模型上對比本文預訓練方案的有效性。Small版模型與BERT-Base的超參數基本相同,只是將序列長度由原來的512縮短爲128,batch size由原來的256降低爲128,隱層維度由原來的768縮減爲128。爲公平起見,用上述超參數也訓練一個BERT-Small。各個模型的Small版[3] 在GLUE dev數據集上的對比詳情如Table 1 所示。

 

 

small.png

 

 

可以看出,在模型大小相同時ELECTRA-Small顯著優於其他模型。比如ELECTRA-Small高出BERT-Small大概5分,甚至高於更大的GPT模型。ELECTRA-Small的訓練多數是收斂的,即使模型的訓練時間更短(只有6個小時),仍然可以獲得合理的性能結果。

實驗結果還表明ELECTRA在中度大小的模型上依然有效,ELECTRA-Base顯著優於BERT-Base,甚至超越BERT-Large(GLUE得分爲84)。

2.4 Large版模型

此外,訓練ELECTRA-Large[4] 以驗證RTD預訓練任務在大規模先進的Transformers模型中的有效性。ELECTRA-Large和BERT-Large大小一致,但是後者訓練耗時更久。ELECTRA-400k模型僅訓練400k個steps,大概是RoBERTa的1/4;ELECTRA-1.75M模型則是訓練了1.75M個steps,所耗算力與RoBERTa相當。使用2048的batch size,數據集是來自於XLNet的預訓練數據集。Large版模型在GLUE dev數據集上的實驗結果如Table 2所示。

 

 

table2.png

 

 

 

 

可以看出ELECTRA-400K能夠取得與RoBERTa、XLNet相比肩的性能結果,但所需的算力僅僅是RoBERTa和XLNet的1/4。這表明ELECTRA的採樣效率增益在大模型上保持不變。訓練得越久的ELECTRA,比如ELECTRA-1.75M在大部分的GLUE任務上都優於其他模型且所需的預訓練算力更少。令人驚訝的是,基線BERT模型得分明顯低於RoBERTa- 100k,這表明我們的模型可能受益於更多的超參數調優或RoBERTa訓練數據。ELECTRA在GLUE test數據集上仍能維持收益,具體見Table 3。

 

 

 

 

large.png

 

 

 

 

各個模型在SQuAD數據集上的表現如Table 4所示。

 

 

 

 

ro.png

 

 

實驗結果表明在相同算力資源下,ELECTRA的得分高於基於MLM的模型。比如ELECTRA-400K優於RoBERTa-100k和BERT基線模型(均使用相近的預訓練算力)。ELECTRA訓練得越久,結果能夠進一步提升:在SQuAD數據集上ELECTRA-1.75M超出此前的其他模型。ELECTRA-Base不僅大大優於相同模型大小的BERT-Base 和XLNet-Base,甚至在多數指標上超越BERT-Large。ELECTRA在SQuAD 2.0上的表現優於SQuAD 1.1。這可能得益於RTD任務的引入,在RTD任務中模型能夠辨別token的真僞,這對於有是否可回答類型問題的SQuAD 2.0數據集來說更具遷移能力。

2.5 有效性分析

爲了進一步理解ELECTRA模型收益來源,對比了以下幾種預訓練目標:

 

ELECTRA 15%:

這與ELECTRA大致相同,僅有的不同的在判別器的損失僅來自於輸入中被遮蔽的15%tokens。換句話說,$\mathcal{L}_{\mathrm{Disc}}$中$i$的不再是1-n,而是$i \in m$。

 

Replace MLM:

該目標與MLM大致相同,所唯一不同的是不使用[MASK]替換tokens,而是用生成器生成的token替換。這一目標測試了ELECTRA的收益在多大程度上來自於預訓練期間解決的將模型暴露於[MASK] tokens的不一致問題,而不是微調階段。

 

All-TokensMLM:

與Replace MLM類似,該目標的替換token也是來自生成器。所不同的是,模型預測輸入中的所有tokens,而不再僅僅是被遮蔽掉的那些。實驗發現當模型有顯性的拷貝機制時,效果更好。這種拷貝機制採用一個sigmoid層控制每個輸入token的輸出拷貝概率爲$D$。模型的輸出分佈由輸入token的D權值,再加上1-D乘以MLM softmax的輸出。該模型本質上是BERT和ELECTRA的結合體。需要注意的是,如果沒有生成器生成替換字符,模型將很容易地學會從[MASK]標記的詞彙表中進行預測,並從輸入中直接拷貝其他token。

 

上述的對比結果如Table 5 所示:

 

 

table5.png

 

 

從實驗結果可以看出:

第一,ELECTRA很大程度上受益於基於所有輸入token定義的損失。採用15%子集定義的損失遜色於ELECTRA。

第二,從Replace MLM略勝BERT,可以看出BERT預訓練時引入的[MASK] token導致微調的不一致,確實略微有損性能指標。

第三,使用All-Tokens MLM方案的模型可以很大程度上縮減BERT和ELECTRA之間的差距。

總之:ELECTRA模型的提升大部分可以歸因於從所有tokens中學習,而小部分源於提升得益於減輕預訓練-微調的不一致。

 

另外還對比了BERT和ELECTRA在不同模型尺寸下的表現,如Figure 4所示:

 

 

 

sq.png

 

 

 

可以看出,小模型中ELECTRA的收益更大,對於完全訓練的小模型,ELECTRA也是顯著優於BERT。這可以看出ELECTRA訓練參數更爲高效,估計是由於ELECTRA不必對每個位置可能的token的完整分佈進行建模。但是仍然需要進行更多的分析來完全解釋ELECTRA的參數效率問題。

3. 總結

本文提出一個新的自監督任務:替換Token檢測(RTD)。其核心是訓練一個文本encoder以在輸入tokens中鑑別出來自於小型生成器所生成的高質量負樣本。對比於MLM,本文的預訓練目標計算更高效,在下游任務中能取得更優的結果。本文的方法即使在算力相對較少的情況下仍然有效,這對於算力貧困人士來說真是大大的福音。

 

相關推薦:

1. ICLR 2020 | 互信息視角下的表徵學習

2. ICLR 2020 | 探索新的圖表徵學習思路

3. ICLR 2020 | PairNorm: Tackling Oversmoothing in GNNs

4. ICLR 2020 | 知識圖譜推理框架:基於向量空間的推理和數值邏輯推理

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