ALBERT:用於語言表示自我監督學習的Lite BERT!

自問世以來,自然語言的研究已經接受了一個新的模式。充分利用大量現有的文本數據為前提,來監督pretrain模型的參數,而一旦沒有的數據就需要用到數據註釋。

因此,無需訓練用於自然語言處理的機器學習模型(NLP)從零開始,可以從以某種語言知識為基礎的模型開始。但是,為了改進這種新的NLP方法,必須瞭解一種對語言理解性能的確切貢獻:網絡的高度(即層數)、網絡的寬度(隱藏層的大小)、以及表示形式)。

ALBERT:用於語言表示自我監督學習的Lite BERT!

自我監督的學習標準或其他完全標準是什麼?

“ALBERT:用於語言表示的自我監督學習的精簡BERT”中 ,提出了BERT的升級,以提高12項NLP任務的最新性能,包括競爭性的斯坦福問答,數據集(SQuAD v2.0)和SAT風格的閱讀理解RACE基準。

ALBERT 作為TensorFlow之上的開源項目實現發佈,其中包括許多現成的ALBERT預訓練語言表示模型。

什麼因素對NLP性能有貢獻?

確定NLP性能的主要驅動因素很複雜——有些設置比其他設置更重要,而且,正如我們的研究表明的那樣,假設進行一次簡單地探索,很可能這些設置不會產生正確有效的答案。

那有人可能會疑問:ALBERT在設計中捕捉時的優化性能是啥?答案很明瞭,就是更有效地分配模型的容量;輸入級別的嵌入(單詞,子標記等)需要學習與上下文無關的內容。

而這是通過對嵌入參數化進行因子分解來實現的。

嵌入矩陣在尺寸相對較小(例如128)的輸入級,並嵌入之時進行劃分,而隱藏層嵌入使用的尺寸更高(例如BERT情況下為768),或者更多)。

僅憑此步驟,ALBERT即可將投影塊的參數減少80%,而僅以很小的性能下降為代價—— 其他所有條件與BERT相同:而SQuAD2.0得分從80.4下降80.3 ;RACE上從68.2降低了 67.9。

ALBERT的另一個關鍵設計決策

ALBERT的另一個關鍵設計決策源於檢查冗餘的不同監測。基於變壓器的神經網絡架構(例如BERT, XLNet和RoBERTa)依靠彼此堆疊的獨立層。

但是,我們觀察到,網絡學會了通過使用不同參數在各個層執行相似的操作。通過在各層之間進行參數共享,可以消除ALBERT中這種可能的冗餘,即同一層相互疊加。這種方法會稍微降低精度,但是更緊湊的尺寸非常值得權衡。

通過參數共享,注意力前饋塊的參數減少了90%(總體減少了70%),如果將其應用到嵌入參數化的分解過程中,則在SQuAD2.0上的性能會下降到80.0 ;RACE得分下降到64.0。
按照這兩個設計更改,將產生一個基於ALBERT的模型,該模型僅具有1200萬個參數,與基於BERT的模型相比,參數減少了89%,但在基準測試中仍表現出可觀的性能。

這種參數大小的減少提供了再次擴大模型的機會。假設內存大小允許,則可以將隱藏層嵌入的大小擴大10到20倍。與BERT大型模型相比,ALBERT-xxlarge配置的隱藏大小為4096,可實現整體參數減少30%,並且更重要的是,可顯著提高性能。

這些結果表明:準確的語言理解取決於開發健壯的,高容量的上下文表示。在隱藏層嵌入中建模的上下文捕獲了單詞的含義,這反過來又推動了整體理解,這直接由標準基準上的模型性能來衡量。

使用RACE數據集優化模型的性能

要評估模型的語言理解能力,可以進行閱讀理解測試(例如,類似於SAT閱讀測試)。這可以通過RACE數據集來完成。在此閱讀理解挑戰中的計算機性能很好地反映了過去幾年中語言建模的進步:僅通過與上下文無關的單詞表示進行預訓練的模型在此測試中的評分很低,而帶有上下文的BERT依賴語言的知識,相對得分為72.0。完善的BERT模型,例如XLNet和RoBERTa,在82-83的得分範圍內,將標準設置得更高。當在基礎BERT數據集(維基百科和書籍)上進行訓練時,上述ALBERT-xxlarge配置產生的RACE得分在相同範圍內(82.3)。但是,當在與XLNet和RoBERTa相同的較大數據集上進行訓練時,它顯著優於迄今所有其他方法,並在89.4時建立了新的最新評分。

ALBERT:用於語言表示自我監督學習的Lite BERT!

應對RACE挑戰的機器性能(類似於SAT的閱讀理解)。隨機猜測的基線得分是25.0。滿分為95.0。

ALBERT的成功證明了識別模型的各個方面的重要性,這些模型會產生強大的上下文表示。通過將改進工作集中在模型體系結構的這些方面,可以極大地提高各種NLP任務的模型效率和性能。


分享到:


相關文章: