Google BERT摘要


1.BERT模型

BERT的全稱是Bidirectional Encoder Representation from Transformers,即雙向Transformer的Encoder,因為decoder是不能獲要預測的信息的。模型的主要創新點都在pre-train方法上,即用了Masked LM和Next Sentence Prediction兩種方法分別捕捉詞語和句子級別的representation。

1.1 模型結構

由於模型的構成元素Transformer已經解析過,就不多說了,BERT模型的結構如下圖最左:

對比OpenAI GPT(Generative pre-trained transformer),BERT是雙向的Transformer block連接;就像單向rnn和雙向rnn的區別,直覺上來講效果會好一些。

對比ELMo,雖然都是“雙向”,但目標函數其實是不同的。ELMo是分別以[公式] 和 [公式] 作為目標函數,獨立訓練處兩個representation然后拼接,而BERT則是以 [公式] 作為目標函數訓練LM。

1.2 Embedding

這里的Embedding由三種Embedding求和而成:

其中:

  • Token Embeddings是詞向量,第一個單詞是CLS標志,可以用於之后的分類任務
  • Segment Embeddings用來區別兩種句子,因為預訓練不光做LM還要做以兩個句子為輸入的分類任務
  • Position Embeddings和之前文章中的Transformer不一樣,不是三角函數而是學習出來的

總結:

1. BERT的特征提取,是在捕捉詞的(前后)位置關系。bidirectional決定了能獲得前后的關系,position embedding決定了能學到更長的順序關系。

2.訓練,分為pre-train和fine-tune。pre-train中用到了MLM, Masked LM.

3. trick: MLM. 在訓練過程中作者隨機mask 15%的token,而不是把像cbow一樣把每個詞都預測一遍。最終的損失函數只計算被mask掉那個token。

4. 缺點: (1)[MASK]標記在實際預測中不會出現,訓練時用過多[MASK]影響模型表現

             (2)每個batch只有15%的token被預測,所以BERT收斂得比left-to-right模型要慢(它們會預測每個token)

 

https://zhuanlan.zhihu.com/p/46652512

https://arxiv.org/pdf/1810.04805.pdf

https://jalammar.github.io/illustrated-transformer/


免責聲明!

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



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