NLP pretrained model

最近聽了NLP pretrained model的報告,感覺挺有意思的。此處大量參考從Word Embedding到Bert模型—自然語言處理中的預訓練技術發展史

Word Embedding

詞向量在自然語言處理中有着重要的角色,它將抽象的詞語之間的語義關係量化成向量形式。有了良好的詞向量,我們就可以做更多的工作。目前構建詞向量的方式大體上分成兩大類:

  1. 統計方法:通過統計詞語之間的關係,定義一些顯性隱性的關係,從而構建詞向量。例如SVD,LSA等等。這樣的做法在邏輯上不理性,效果上也不好。
  2. 語言模型:通過構建語言模型來實現對詞向量的學習,在理論上可行的,並且目前大部分的工作就是基於這樣的思想。從最開始的神經網絡語言模型(NNLM)到後來的Word2vec,GloVe等等。
    他們最大的缺點就是詞向量是固定的,也就是語義消除的問題。他們不包含上下文語義信息,因此接下來的模型就是基於解決這個問題展開的。
    在這裏插入圖片描述
    Word2Vec有兩種訓練方法,一種叫CBOW,核心思想是從一個句子裏面把一個詞摳掉,用這個詞的上文和下文去預測被摳掉的這個詞;第二種叫做Skip-gram,和CBOW正好反過來,輸入某個單詞,要求網絡預測它的上下文單詞。

ELMo

ELMO是“Embedding from Language Models”的簡稱,論文名稱爲:“Deep contextualized word representation”
在這裏插入圖片描述
如何預訓練:給定一個句子的上文,然後預測下一個缺失的單詞;或者句子的後半部分(下文),來預測缺失的單詞,即對應上圖兩個各自獨立的不同方向的LSTM

訓練完如何用:
在這裏插入圖片描述

GPT

GPT是“Generative Pre-Training”的簡稱
在這裏插入圖片描述
和ELMo的區別

  1. 特徵抽取器不是用的RNN,而是用的Transformer
  2. 預訓練時採用的目標任務是單向的,即給定上文預測缺失詞,而沒有設定給下文反過來預測缺失詞

訓練完如何用:
在這裏插入圖片描述

BERT

在這裏插入圖片描述
BERT與ELMo、GPT的區別

  1. 與ELMo比,RNN換成了Transformer
  2. 與GPT比,單向的目標任務改成了和ELMo一樣的雙向任務
  3. 同時設計了一個Masked LM:我們不是像傳統LM那樣給定已經出現過的詞,去預測下一個詞,而是直接把整個句子的一部分詞(隨機選擇)蓋住(make it masked),這樣模型不就可以放心的去做雙向encoding了嘛,然後就可以放心的讓模型去預測這些蓋住的詞是啥。這個任務其實最開始叫做cloze test

訓練完如何用:
在這裏插入圖片描述
BERT中encoding了更多豐富的信息,因此下游任務的網絡設計就變得很簡單,比如直接加Softmax或者MLP就行了,不再需要複雜的attention等網絡結構
在這裏插入圖片描述

以上四者的關係

在這裏插入圖片描述

Tiny BERT

Google T5

XLNet

PLM隨機排列一些詞來預測其他詞彙

GPT2.0

把任務信息也包含進文本序列
如翻譯任務:
“I am boy” is translated to “我是一個男孩”
然後隨機mask掉一些詞進行預測pretrain model


參考博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章