【知識總結】預訓練語言模型BERT的發展由來


語言模型

語言模型是根據語言客觀事實對語言進行抽象數學建模。可以描述為一串單詞序列的概率分布:

通過極大化L可以衡量一段文本是否更像是自然語言(根據文本出現的概率):

函數P的核心在於,可以根據上文預測后面單詞的概率(也可以引入下文聯合預測)。

其中一種很常用的語言模型就是神經網絡語言模型。

神經網絡語言模型NNLM

給定上文的單詞,利用神經網絡來預測當前位置的單詞。即最大化:

模型結構如下圖所示,首先將one-hot表示的詞向量通過look-up表,也就是矩陣Q,轉換為word embedding的表示,作為輸入層。
訓練剛開始用隨機值初始化矩陣Q,隨着網絡訓練好之后,矩陣Q的內容也被正確賦值了。所以Word Embedding是NNLM的副產物。

這個Word Embedding其實可以單獨拿出來用於下游任務,所以就有了專門預訓練Word Embedding的word2vec。

預訓練語言模型

預訓練首先在計算機視覺領域ImageNet上取得了突破性的進展,人們發現底層的網絡可以捕捉到邊角弧線等基礎特征,而高層網絡捕捉到的特征更為復雜,與下游任務更相關。
所以底層網絡其實是可以在不同的任務間通用的,而高層網絡則可以根據任務進行調整。

底層的網絡參數抽取出特征跟具體任務越無關,則越具備任務的通用性。
而高層特征跟具體任務的關聯較大,實際任務中可以不使用,或者采用Fine-tuning的方法,用新數據集合清洗掉高層無關的特征抽取器。
這種思想后來也被用到了NLP領域。

Word2Vec

word2vec的主要目的就是訓練得到Word Embedding詞向量,有兩種訓練方式:CBOW(用上下文來預測當前詞),skip-gram(用當前詞預測上下文單詞)。
此外,為了減少計算量,還使用了Negative Sampling,Hierarchical Softmax等方法。

對於下游任務,將句子中的每個詞以one-hot的形式輸入,然后乘以預訓練得到的word embedding矩陣,從而取出對應的詞向量。

使用方式有兩種:
1)Frozen:embedding層的網絡參數不動;
2)Fine-Tuning: embedding層的參數跟着訓練過程一起更新。

不過,這種Word Embedding無法區分一詞多義(因為同一個詞占用的是同一行的參數空間),然而單詞的歧義在語言中廣泛存在(多義性是語言信息編碼的靈活性和高效性的表現)。
為了解決這一問題,就出現了以下一些預訓練模型。以下這些模型不僅可以得到預訓練的詞向量,還可以得到預訓練好的網絡參數,用於下游任務fine-tune。

ELMo

ELMo的兩個階段:1)預訓練,2)將各層的Embedding作為新特征補充到下游任務中(基於特征融合)。
不僅學到了單詞的Embedding,還學到了一個雙層雙向的LSTM的網絡結構。

缺點(對比后來出現的GPT/BERT):1)特征提取:LSTM的特征抽取能力遠低於Transformer
2)特征融合:淺層的雙向拼接,特征融合能力比較弱

GPT

特點:1)特征抽取器采用Transformer,抽取能力優於RNN;
2)采用單向的語言模型(漏掉了很多有用信息)(只使用了Transformer的Decoder,所以是單向的)

GPT的兩階段:1)預訓練,2)通過Fine-tuning解決下游任務(基於Fine-tuning)。
Fine-tuning: 對於下游任務,將任務的網絡結構改造成和GPT一樣,使用GPT的參數來初始化。(下圖是不同任務上fine-tune的方法)

BERT

BERT模型就是預訓練模型的集大成者,刷新了很多任務的benchmark,而且因其通用性,可以應用於很多NLP任務,所以得到了廣泛的使用和傳播。

BERT模型借鑒了很多以往模型的方法,創新不多,其主要創新點在pre-train方法上,即用了Masked LM和Next Sentence Prediction兩種方法分別捕捉詞語和句子級別的representation。

BERT的特點:1)使用Transformer作為特征抽取器,2)預訓練的時候采用了雙向語言模型。(結合了ELMo和GPT的優點)

BERT是一種自編碼的語言模型。
AutoEncoder(自編碼器)是為了避免過擬合,會以一定概率抹掉input矩陣。這種破損數據訓練出來的噪聲較小,因為噪聲也在一定程度上被擦除了,減輕了訓練數據與測試數據的GAP。
BERT就是基於DAE(去噪自編碼器),在BERT中稱為Masked LM。

備注:
Autoregressive ML: 根據上文預測下一個單詞,即LTR任務,或者反過來,從右到左。(ELMo, GPT, XLNET)
Autoencoder ML: 讓語言模型試圖去還原原始輸入的系統。(BERT, RoBerta)

相關資料

NNLM: Yoshua Bengio. A Neural Probabilistic Language Model. JMLR. 2003.
Word2Vec: Efficient Estimation of Word Representations in Vector Space. Tomas Mikolov. 2013. https://arxiv.org/abs/1301.3781v3 (Mikolov是Bengio的高徒)
ELMo: Deep contextualized word representations. Matthew E. Peters. 2018. https://arxiv.org/abs/1802.05365
GPT: Improving Language Understanding by Generative Pre-Training. OpenAI. 2018. https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. 2018. https://arxiv.org/abs/1810.04805
從Word Embedding到Bert模型—自然語言處理中的預訓練技術發展史,張俊林. https://zhuanlan.zhihu.com/p/49271699
放棄幻想,全面擁抱Transformer:自然語言處理三大特征抽取器(CNN/RNN/TF)比較。張俊林。 https://zhuanlan.zhihu.com/p/54743941


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM