albert相對BERT而言主要有三個改進方向:
1、對Embedding因式分解
在BERT中,詞向量維度E和隱層維度H是相等的。而詞嵌入學習的是單詞與上下文無關的表示,而隱層則是學習與上下文相關的表示。顯然後者更加複雜,需要更多的參數,也就是說模型應當增大隱層大小 ,或者說滿足 。在實際中,詞表V通常非常大,如果E=V,隨着BERT模型的增大,E也會隨着H不斷增加,導致embedding matrix的維度 非常巨大。
在Albert中,想要打破 與 之間的綁定關係,從而減小模型的參數量,同時提升模型表現。詞表V到隱層H的中間,使用一個小維度做一次尺度變換:先將單詞投影到一個低維的embedding空間 ,再將其投影到高維的隱藏空間 。這使得embedding matrix的維度從 減小到 。當 時,參數量減少非常明顯。
2、參數共享
通過層與層之間的參數共享也是albert減少參數量的一個方法。
bert的每一層參數獨立,當層數增加時,參數量也會明顯上升,albert將所有層的參數進行共享,即只學習一層的參數量,極大地減小模型的參數量,提升訓練速度。
3、SOP任務
Albert對BERT的預訓練任務Next-sentence prediction (NSP)進行了改進。
下一句預測(Next-sentence prediction,NSP):正樣本爲文章中上下相鄰的兩個句子,負樣本爲從兩篇文檔中各自選取一個句子。
句子順序預測(Sentence-order prediction,SOP):正樣本爲文章中上下相鄰的兩個句子,負樣本爲一篇文檔中的兩個連續的句子,並將它們的順序交換
NSP任務相對簡單: 模型在判斷兩個句子的關係時不僅考慮了兩個句子之間的連貫性(coherence),還會考慮到兩個句子的話題(topic)。而兩篇文檔的話題通常不同,模型會更多的通過話題去分析兩個句子的關係,而不是句子間的連貫性,這使得NSP任務變成了一個相對簡單的任務。