從Transformer到BERT模型-葛瀚騁

一詞多義例子

Bank在前兩句是銀行,后兩行是河床(river bank)

ELMo:用長文本訓練詞向量,而不是窗口;使用了CNN建立詞的表達

一個詞給出三個Embedding,不是固定的,則可以很好地解決一詞多義,可以理解成一個詞給三個意思,最后將三個加權平均在一起,看選哪個

將ELMo中的LSTM換成transformer之后就是BERT

LSTM:迭代的,順序的,一個詞接著一個詞進行訓練的

Transformer:并行的,全部詞同時訓練。所以會缺少位置信息,需要增加位置信息,理解詞間關系(誰在前誰在后)

其中最重要的是多頭注意力機制。

Transformer回顧:

即給定一個Q,找到K,算出Q、K的相關度,即注意力多少,再用V表示。

BERT:使用transformer的雙向編碼器詞向量表達,只用到了transformer的編碼器部分。

Google于2018年提出

由兩部分組成:預訓練模型+fine-tuning。第一部分從非常大量的文本中做預訓練,第二部分是針對某一種具體的任務(如QA)進行微調

是一種站在巨人肩膀上的模型,及眾家之所長:

1、給上下文預測下一個詞,如word2vec

2、GPT:第一個使用transformer的,openAI開發(fā)出來的模型

3、結構是雙向的,如同ELMo

兩個task同時訓練

靈感來自于完形填空,一句話挖掉一部分,根據(jù)其他部分把這部分填入

Bert一共mask15%的token,其中80%用mask特殊字符取代,10%用其他詞取代,剩下10%不變。最后計算loss時,只針對被mask的token,其他不關注。

Bert設置了最大句子長度,對于超長的可以在開頭或結尾隨機去掉一些token。

Base版有12個head,不同的head可以抓住不同的特征,包括全局的和局部的

Base版有12個layer,同一層里的head相互之間很接近

每一層之間的head都差不多,head內部卻很不一樣

Bert學到了什么呢?

指標高代表在這個任務中該layer發(fā)揮的作用大

Base版會學12個embedding,加強版學24個,最后加權平均,藍色越大代表權重越大

例子:北京天氣怎么樣?上海呢?? ?其實是指天氣

他是誰?川普,他的妻子是誰?? ???他指的是川普

多語言混合訓練效果更好:

BERT的應用:

Bert的問題,模型太大了,不方便使用:

DistilBERT:學了一半

TinyBERT:從里到外把老師全學了,效果好而且參數(shù)少

使用teacher-student模式壓縮模型規(guī)模,用老師訓練出很多學生,規(guī)模小且越來越接近老師的水平

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容