前言
隨着BERT的橫空出世,目前越來越多優秀的預訓練語言模型涌現出來,學習的步伐跟不上發展的速度。
BERT 剛出來時,感覺,可預期的時間內,只要預訓練目標任務足夠好,相信效果會有更進一步提升。
預訓練語言模型
名稱 | 特點 | 機構 |
---|---|---|
ELMO | 自迴歸語言模型,雙層BiLSTM | AllenNLP |
BERT | 自編碼語言模型,Transformer | 谷歌 |
GPT,GPT 2.0 | 自迴歸,Transformer | OpenAI |
ERINE | 結合知識圖譜的BERT | 百度 |
MASS | 聯合訓練encoder和decoder的模型 | 微軟 |
XLNet | 排列語言模型,Transformer XL | CMU & 谷歌 |
RoBERTa | 對比BERT,數據質量更優,剔除下一句預測任務 | |
SG-Net | 融入句法結構的BERT | 上海交通大學 |
ALBERT | Embedding因式分解,跨層的參數共享,移除dropout,參數量相比於BERT下降了一個數量級(Base 110M->11M) | 谷歌 |
T5 | 整個 NLP 預訓練模型領域提供了一個通用框架 ,以及預訓練語料C4 | 谷歌 |
ELECTRA | 把生成式的Masked language model(MLM)預訓練任務改成了判別式的Replaced token detection(RTD)任務,判斷當前token是否被語言模型替換過。 | 斯坦福 |
近期兩篇
下面分享最新的學術界兩篇論文,他們有共同點:對比於BERT參數量少了一個量級,但是效果卻反而提升了
ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
1.ELECTRA
摘要(原文)
雖然像BERT這樣的MASK語言建模(MLM)預訓練方法在下游的NLP任務上產生了很好的結果,但是它們需要大量的計算纔能有效。這些方法通過用[MASK]替換一些Token來破壞輸入,然後訓練一個模型來重構Token。作爲一種替代方案,我們提出了一種更具效率的預訓練,稱爲Replaced token detection(RTD)判斷當前詞是否被替換了。我們的方法不是屏蔽輸入,而是用從小型GAN中提取的plausible alternatives sampled替換一些輸入Token,從而破壞輸入。然後,我們不是訓練一個模型來預測[MASK],而是訓練一個判別模型來[MASK]輸入中的每個Token是否被生成器樣本替換。實驗表明,這種預訓練模型更有效,因爲它從所有的輸入中學習,而不是僅僅從[MASK]中。結果,在相同的模型大小、數據和計算條件下,通過我們的方法學習的上下文表示大大優於通過BERT和XLNet等方法學習的上下文表示。例如,我們在一個GPU上訓練一個模型4天,該模型在GLUE自然語言理解基準上的性能優於GPT(使用30倍以上的計算進行訓練)。我們的方法在規模上也很有效,我們使用不到1/4的計算,就可以達到RoBERTa的性能。
- 14M參數就能達到RoBERTa 的效果,訓練語料更少,速度更快
- 33M參數在GLUE很多任務上超過RoBERT和ALBERT,GLUE 榜單上還沒有,所以很多比較結果不全
- 尚未開源,斯坦福的個性,coming soon
MNLI | QQP | |
---|---|---|
XLNet | 89.8 | 91.8 |
RoBERTa | 90.2 | 92.2 |
ALBERT | 88 | * |
T5 | 92 | 90.2 |
ELECTRA | 90.5 | 92.4 |
1.1GAN的引入
GAN在CV中大火,但是在NLP中卻一直差點意思,效果不是很突出。這篇文章一個突出貢獻就是將GAN引入到預訓練語言模型中,並且取得了SOTA(state of the art)的效果。
Replaced Token Detection(RTD)
1.1.1Generator 生成器
通過對MASK後的句子生成樣本,這裏使用的是MLM(maximum likelihood),而不是使用的 Adversarially。因爲NLP和CV的差異性
1.1.2Discriminator 判別器
通過序列標註的方法,判斷當前詞是否是原文(original,replaced)
- GAN生成的都是假的,但是該文的G會生成真實樣本(部分詞彙真實)
- 梯度不能從D傳到G,所以該文使用強化學習的方法來訓練G
1.2權重共享
-
正常情況下,Generator 和Discriminator 使用相同的大小,但是 實驗表明,Generator 更小效果會好點。
-
Generator 和Discriminator 只是對於 token embeddings 進行共享,如果將所有權重共享效果反而會差點。
1.3Smaller Generators
- 實驗表明,Generator的大小爲 Discriminator 1/4~1/2效果最好,作者假設,Generator太大會給Discriminator 造成困擾。
1.4Training Algorithms
-
將Generator 和Discriminator 進行聯合訓練
-
Train only the generator with MLM for n steps.
開始只訓練通過MLM去訓練Generator -
Initialize the weights of the discriminator with the weights of the generator. Then train the discriminator with Disc for n steps, keeping the generator’s weights frozen.
然後用Generator 的參數去初始化 Discriminator,通過Disc 去訓練Discriminator 同時凍結 Generator 的參數
1.5 contrastive learning(對比學習)
- 通過對比學習方法來區分虛構的負樣本與正樣本
- 本文算是 contrastive learning 與GANs的一種結合
2.ALBERT
Other
參考
ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
XLNet: Generalized Autoregressive Pretraining for Language Understanding
T5:Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer