天天看點

算法面試之ELMO BERT GPT1.ELMO2.GPT3.Bert4.BERT、GPT、ELMO

算法面試之ELMO BERT GPT

  • 1.ELMO
  • 2.GPT
  • 3.Bert
  • 4.BERT、GPT、ELMO

1.ELMO

ELMO的本質思想是:我事先用語言模型學好一個單詞的Word Embedding,此時多義詞無法區分,不過這沒關系。在我實際使用Word Embedding的時候,單詞已經具備了特定的上下文了,這個時候我可以根據上下文單詞的語義去調整單詞的Word Embedding表示,這樣經過調整後的Word Embedding更能表達在這個上下文中的具體含義,自然也就解決了多義詞的問題了。是以ELMO本身是個根據目前上下文對Word Embedding動态調整的思路。

算法面試之ELMO BERT GPT1.ELMO2.GPT3.Bert4.BERT、GPT、ELMO

ELMo為一個典型的自回歸預訓練模型,其包括兩個獨立的單向LSTM實作的單向語言模型進行自回歸預訓練,不使用雙向的LSTM進行編碼的原因正是因為在預訓練任務中,雙向模型将提前看到上下文表征而對預測結果造成影響。是以,ELMo在本質上還是屬于一個單向的語言模型,因為其隻在一個方向上進行編碼表征,隻是将其拼接了而已

ELMO采用了典型的兩階段過程,第一個階段是利用語言模型進行預訓練;第二個階段是在做下遊任務時,從預訓練網絡中提取對應單詞的網絡各層的Word Embedding作為新特征補充到下遊任務中。

上圖展示的是其預訓練過程,它的網絡結構采用了雙層雙向LSTM,目前語言模型訓練的任務目标是根據單詞的上下文去正确預測單詞

句子中每個單詞都能得到對應的三個Embedding:最底層是單詞的Word Embedding,往上走是第一層雙向LSTM中對應單詞位置的Embedding,這層編碼單詞的句法資訊更多一些;再往上走是第二層LSTM中對應單詞位置的Embedding,這層編碼單詞的語義資訊更多一些。也就是說,ELMO的預訓練過程不僅僅學會單詞的Word Embedding,還學會了一個雙層雙向的LSTM網絡結構,而這兩者後面都有用。

先将句子X作為預訓練好的ELMO網絡的輸入,這樣句子X中每個單詞在ELMO網絡中都能獲得對應的三個Embedding,之後給予這三個Embedding中的每一個Embedding一個權重a,這個權重可以學習得來,根據各自權重累加求和,将三個Embedding整合成一個。然後将整合後的這個Embedding作為X句在自己任務的那個網絡結構中對應單詞的輸入,以此作為補充的新特征給下遊任務使用。

ELMO使用了LSTM而不是Transformer,提取特征能力弱

ELMO采取雙向拼接這種融合特征的能力可能比Bert一體化的融合特征方式弱

2.GPT

算法面試之ELMO BERT GPT1.ELMO2.GPT3.Bert4.BERT、GPT、ELMO

首先,特征抽取器不是用的RNN,而是用的Transformer,它的特征抽取能力要強于RNN,這個選擇很明顯是很明智的;

其次,GPT的預訓練雖然仍然是以語言模型作為目标任務,但是采用的是單向的語言模型

算法面試之ELMO BERT GPT1.ELMO2.GPT3.Bert4.BERT、GPT、ELMO

3.Bert

算法面試之ELMO BERT GPT1.ELMO2.GPT3.Bert4.BERT、GPT、ELMO

Bert采用和GPT完全相同的兩階段模型,首先是語言模型預訓練;其次是使用Fine-Tuning模式解決下遊任務。和GPT的最主要不同在于在預訓練階段采用了類似ELMO的雙向語言模型

算法面試之ELMO BERT GPT1.ELMO2.GPT3.Bert4.BERT、GPT、ELMO

·對于句子關系類任務,很簡單,和GPT類似,加上一個起始和終結符号,句子之間加個分隔符即可。對于輸出來說,把第一個起始符号對應的Transformer最後一層位置上面串接一個softmax分類層即可。

·對于分類問題,與GPT一樣,隻需要增加起始和終結符号,輸出部分和句子關系判斷任務類似改造;

·對于序列标注問題,輸入部分和單句分類是一樣的,隻需要輸出部分Transformer最後一層每個單詞對應位置都進行分類即可。

Bert借鑒了ELMO,GPT及CBOW,主要提出了Masked 語言模型及Next Sentence Prediction,但是這裡Next Sentence Prediction基本不影響大局,而Masked LM明顯借鑒了CBOW的思想

4.BERT、GPT、ELMO

算法面試之ELMO BERT GPT1.ELMO2.GPT3.Bert4.BERT、GPT、ELMO

(1)特征提取器:elmo采用LSTM進行提取,GPT和bert則采用Transformer進行提取。很多任務表明Transformer特征提取能力強于LSTM,elmo采用1層靜态向量+2層LSTM,多層提取能力有限,而GPT和bert中的Transformer可采用多層,并行計算能力強。

(2)單/雙向語言模型:

GPT采用單向語言模型,elmo和bert采用雙向語言模型。但是elmo實際上是兩個單向語言模型(方向相反)的拼接,這種融合特征的能力比bert一體化融合特征方式弱。

GPT和bert都采用Transformer,Transformer是encoder-decoder結構,GPT的單向語言模型采用decoder部分,decoder的部分見到的都是不完整的句子;bert的雙向語言模型則采用encoder部分,采用了完整句子。

上一篇:算法面試之Word2Vec

下一篇:算法面試之BERT細節

注:本專題大部分内容來自于總結,若有侵權請聯系删除。

繼續閱讀