[論文整理] ALBERT

CHEN TSU PEI
NLP-trend-and-review
9 min readDec 2, 2019

介紹

今天要整理的這篇ALBERT,利用一些技術減少原先BERT中的參數,並且改進在BERT中使用的NSP,提出了SOP Loss有效地提升了下游任務的表現。BERT雖然在很多NLP的任務上取得成功,但是由於其巨大的模型架構,很難被應用在講求速度的實際應用上,像是聊天機器人,所以近期有許多研究都是針對怎麼讓BERT更小,怎麼讓BERT訓練更快等等。ALBERT的預訓練模型以及相關程式碼都已經開源出來了,所以讓我們好好了解一下ALBERT,並且試試看拿它來取代原先我們模型中BERT的部分

懶人包

一樣地我們提供懶人快速的總結😂,ALBERT利用了參數共享、矩陣分解等技術大大減少模型參數,利用改進的SOP Loss取代NSP Loss提升了下游任務的表現,但是BERT的層數並未減少,因此推理時間(Inference Time)還是沒有得到改進。不過,參數減少的確使得訓練變快,ALBERT可以擴展到比BERT更大的模型(ALBERT-xxlarge),因此得到了更好的表現

Abstract

  1. Two parameter-reduction techniques
  2. self-supervised loss that focuses on modeling inter-setence coherence
  3. establishes new SOTA on the GLUE, RACE, SQuAD benchmarks

近期的大型預訓練模型帶來一系列突破性的發展,尤其是在Reading Comprehension這一塊,RACE test在2017原始論文被提出時,當時的SOTA僅有44.1%的準確度(Accuracy),但到了現在的ALBERT已能達到89.4%,進步了高達45.3%

這些大型模型往往擁有幾百萬甚至到幾十億的參數,這使得訓練的成本非常高,目前通常透過模型平行化(model parallelization)及聰明的記憶體管理(clever memory management)來解決,但並沒有解決在分佈式運算(distributed learning)中溝通成本(communication overhead)的問題

Two Parameters Reduction Techniques

  1. factorized embedding parameterization
  2. cross-layer parameter sharing

ALBERT使用這兩種減少參數的技術,跟BERT-large相同的設置下,可以減少近18x的參數,訓練速度快了1.7x,同時,這樣的方法也有扮演著正規化(regularization)的角色,也有助於讓訓練更加穩定,並幫助模型更加泛化

Self-supervised loss for sentence-order prediction(SOP)

SOP主要是為了抓到句子間的關係(inter-sentence coherence),用來改善原始BERT論文中的NSP loss,在BERT中,NSP loss預測下一個句子是否被置換成其他文章中的句子

Factorized embedding parameterization

在BERT模型中,隱藏層長度(hidden-layer size)H等於字嵌入長度(Embedding size) E,所以當H越大,E越大,那麼嵌入層(embedding layer)的參數大小就會越大(V * E),但其實這些參數在訓練過程中只有少量會被更新(sparsely updated)

所以,ALBERT不直接將原本的one-hot vectors映射到hidden space size of H,而是分解成兩個矩陣,原本參數數量為V*H,分解成兩步驟則減少為V*E + E*H,當H的數量很大的時候,這樣的作法能夠大幅降低參數數量

VE = 30000 * 768 = 23,040,000

E(V+H) = 256 * (30000+768) = 7,876,608

舉個例子,當我們V為30000,H為768,E為256,分解成兩個矩陣後,參數從約2300萬降低到780萬左右

Cross-layer parameter sharing

也就是直接共享某些權重,像是在每層之間共享FFN、共享Attention、共享所有參數等等,作者這邊分析了每一層input及output的L2 distancecosine similarity,並觀察到了相比於BERT-large所呈現的曲線更加平滑,作者認為這表示cross-layer parameter sharing起到的穩定模型參數的效果

Inter-sentence coherence loss

NSP Loss是預測兩個segments是否在原始資料中為連續的兩段話,正樣本直接拿從訓練集裡面拿兩段接續的話,而負樣本則是從不同的文件中取兩段話,以相同的機率去取樣正負樣本。原本NSP是被設計來使BERT能夠加強下游任務的表現,但之後有些研究(Yang et al, 2018; Liu et al., 2019)剔除NSP後反而在一些任務上得到更好的表現

作者推測NSP的缺失應是該任務難度不夠,NSP任務去分析的話,可以說它包含兩個部分:topic prediction及coherence prediction,這邊我認為:由於正負樣本的兩個segments來自不同文件,通常代表來自不同主題,因此很大一部分透過主題預測就能解決NSP,也因此句子之間的推論關係並沒有學得很好。

作者提出SOP,不同於NSP產生負樣本的方法是取自不同文件,而是直接將正樣本的兩句話對調,這樣強迫模型專注在coherence prediction上,根據實驗顯示,NSP無法解決SOP的問題,但SOP卻能夠在一定程度上解決NSP的問題

可以看出以SOP訓練後,在NSP上還是能有不錯的表現,反之則否

Experiment

Setup and Comparision

基本上的設定都跟BERT相同,但引進了一些後來用來改進BERT的技巧,像是n-gram masking(Joshi et al, 2019)、LAMB optimizer(You et al., 2019)

Ablation Experiment

很多研究的會通過Ablation(消融)來證明每個改進方法都是有用的,這邊針對factorized embedding parameterization及cross-layer parameter sharing做消融研究

  1. Factorized Embedding Parameterization
上排是原先BERT-style架構,下排則是ALBERT-style,可以看到在下排表現最好的反而是E=128,且模型參數低於上排近8x

2. Cross-layer Parameter Sharing

我們可以發現大部分的drop都來自於shared-FFN,shared-attention在E=768只有小幅度降低(-0.7),在E=128甚至小幅度提升(+0.1)

3. Sentence Order Prediction(SOP)

可以看出SOP確實在下游任務中有提昇表現(優於NSP

Adding Data and Remove Dropout

ALBERT到這邊都是使用跟BERT相同的訓練資料,但是增加訓練資料可以期待會增進模型表現,於是加上STORIES dataset後得到總和約157G的原始資料。另外,訓練到1M步的時候,發現模型還是沒對訓練集overfit,所以直接把dropout移除,結果大幅提升了在MLM上驗證集的accuracy

Adding data and Removing dropout increase Dev accuracy

Discussion

作者這邊提到,雖然ALBERT-xxlarge達到比BERT-large更好的效果,但過長的訓練時間跟推論時間(inference time)還是需要再被改進,作者考慮了sparse attention(Child et al., 2019)及block attention(shen et al., 2018),再來是改進NSP Loss的SOP Loss雖然整體表現優於原先的NSP Loss,但作者仍覺得應有其他更好設計Loss的方式可以捕捉到更多維度來更好的表達

Conclusion

看完DistilBERT與ALBERT這兩篇近期(2019)以降低BERT模型參數數量為目標的論文,裡頭都提到了一些相關可以用來降低模型參數數量的技術,像是降低精準度(quantization)、模型減枝(weight pruning)、蒸餾(Distilling)、共享模型參數(cross-layer parameter sharing)、分解矩陣(factorized parameters)等等,也提到像BERT此類的大型預訓練模型,除了在訓練時需要極高成本,使用時過長的inference time也很難用於實際應用上。

不過,ALBERT雖然讓模型參數數量大幅下降,但推理時間(inference time)並未得到改善,因為即使是使用了共享參數機制,還是得跑完12層的Encoder參數,故推理時間跟BERT是差不多的

自從BERT被提出後,許多NLP任務都有極大幅的效能提升,也讓我們可以用更小的資料就能訓練出極好的效果,因此,接下來如何讓其更小、更快,讓它可以於現實中被應用是近期最重要的目標

Reference

ALBERT: A Lite BERT for Self-supervised Learning of Language Representations

All photos in this ariticle are screenshot from the paper. Only used for illustration in this article

--

--

CHEN TSU PEI
NLP-trend-and-review

這邊停止更新了!麻煩移駕到https://tsupei.github.io,有持續更新更多NLP的文章唷!