BERT泛讀系列(二)—— BERT論文筆記

一、寫(xiě)在前面的話(huà)

BERT模型其實(shí)一直想寫(xiě)筆記,但一直沒(méi)寫(xiě),主要原因就是在研究完Transformer之后,BERT幾乎一讀就懂,沒(méi)有在額外加入太多的東西,但另一方法,BERT在實(shí)踐上可以說(shuō)是結(jié)合很多深度學(xué)習(xí)領(lǐng)域有效的方法的一個(gè)大禮包,仔細(xì)研究BERT模型可以發(fā)現(xiàn)很多目前最前沿有效的方法。故這次蹭著論文學(xué)習(xí)小組需要寫(xiě)筆記,記錄了一下自己關(guān)于BERT的理解,后續(xù)會(huì)在這個(gè)的基礎(chǔ)上加入代碼分解。

二、BERT的整體結(jié)構(gòu)

BERT 的模型結(jié)構(gòu)是一個(gè)多層雙向Transformer 編碼器,整體的模型結(jié)構(gòu)其實(shí)就是Transformer,但BERT的創(chuàng)新點(diǎn)在于:

  1. 引入了掩碼使得Transformer編碼器能夠使用雙向信息
  2. 加入兩個(gè)預(yù)訓(xùn)練任務(wù),實(shí)現(xiàn)NLP領(lǐng)域的遷移學(xué)習(xí)

三、輸入表示

BERT在預(yù)訓(xùn)練階段輸入基本和Transformer結(jié)構(gòu)是相同的,主要的區(qū)別是加入了CLS和SEP兩個(gè)特殊字符,每個(gè)序列的第一個(gè)標(biāo)記始終是特殊分類(lèi)嵌入CLS,該特殊標(biāo)記對(duì)應(yīng)的最終隱藏狀態(tài)(即Transformer 的輸出)被用作分類(lèi)任務(wù)中該序列的總表示。對(duì)于非分類(lèi)任務(wù),這個(gè)最終隱藏狀態(tài)將被忽略,SEP則是用來(lái)區(qū)別被打包到一起的句子對(duì)輸入。

1. WordPiece

BERT在處理輸入時(shí),會(huì)采用WordPiece方法對(duì)輸入進(jìn)行分割。WordPiece字面理解是把word拆成piece一片一片,其主要使用雙字節(jié)編碼(BPE,Byte-Pair Encoding)的方式來(lái)實(shí)現(xiàn)的。BPE的過(guò)程可以理解為把一個(gè)單詞再拆分,使得我們的此表會(huì)變得精簡(jiǎn),并且寓意更加清晰。比如"loved","loving","loves"這三個(gè)單詞。其實(shí)本身的語(yǔ)義都是“愛(ài)”的意思,但是如果我們以單詞為單位,那它們就算不一樣的詞,在英語(yǔ)中不同后綴的詞非常的多,就會(huì)使得詞表變的很大,訓(xùn)練速度變慢,訓(xùn)練的效果也不是太好。BPE算法通過(guò)訓(xùn)練,能夠把上面的3個(gè)單詞拆分成"lov","ed","ing","es"幾部分,這樣可以把詞的本身的意思和時(shí)態(tài)分開(kāi),有效的減少了詞表的數(shù)量。

2. Segment Embeddings

為了對(duì)被打包在一起輸入的句子對(duì),除了使用上面的SEP標(biāo)示之外,BERT會(huì)給第一個(gè)句子的每個(gè)標(biāo)記添加一個(gè)可訓(xùn)練的句子 A嵌入,給第二個(gè)句子的每個(gè)標(biāo)記添加一個(gè)可訓(xùn)練的句子 B 嵌入,例如A嵌入都是0,B嵌入都是1。

3. Position Embeddings

位置嵌入其實(shí)就是對(duì)輸入的每個(gè)位置訓(xùn)練一個(gè)向量,在原論文中使用如下公式得到位置嵌入:

但現(xiàn)在的BERT代碼中似乎換成和隨機(jī)生成詞向量一樣,通過(guò)訓(xùn)練得到位置嵌入,這也是一般獲得位置嵌入的方法。

四、Transformer編碼器

基本上就是從原論文照搬結(jié)構(gòu),參考之前的筆記:《Attention is All You Need》論文筆記

五、預(yù)訓(xùn)練任務(wù)

1. 遮蔽語(yǔ)言模型

BERT為了訓(xùn)練擁有雙向句子信息的模型采用了一種隨機(jī)遮蔽一定比例的輸入標(biāo)記,然后預(yù)測(cè)那些被遮蔽的標(biāo)記的預(yù)訓(xùn)練任務(wù)。BERT在每個(gè)序列中隨機(jī)遮蔽 15% 的標(biāo)記,然后通過(guò)最后使用softmax去預(yù)測(cè)被遮蔽的字,但直接使用這樣的預(yù)訓(xùn)練任務(wù)會(huì)有兩個(gè)問(wèn)題:

  1. 預(yù)訓(xùn)練和微調(diào)之間造成了不匹配,因?yàn)?[MASK] 標(biāo)記在微調(diào)期間從未出現(xiàn)過(guò)
  2. 使用 Transformer 的每批次數(shù)據(jù)中只有 15% 的標(biāo)記被預(yù)測(cè),這意味著模型可能需要更多的預(yù)訓(xùn)練步驟來(lái)收斂

為了解決問(wèn)題一(問(wèn)題二還有待優(yōu)化),BERT采用了以下的操作:

  1. 80% 的情況下:用 [MASK] 替換被選擇的單詞,例如,my dog is hairy → my dog is [MASK]
  2. 10% 的情況下:用一個(gè)隨機(jī)單詞替換被選擇的單詞,例如,my dog is hairy → my dog is apple
  3. 10% 的情況下:保持被選擇的單詞不變,例如,my dog is hairy → my dog is hairy
2. 句子預(yù)測(cè)

BERT為了訓(xùn)練一個(gè)理解句子關(guān)系的模型,預(yù)訓(xùn)練了一個(gè)下一句預(yù)測(cè)的二元分類(lèi)任務(wù):例如對(duì)每一個(gè)輸入的句子對(duì)(句子A和句子B),50% 的情況下 B 是真的在 A 后面的下一個(gè)句子,50% 的情況下是來(lái)自語(yǔ)料庫(kù)的隨機(jī)句子。

六、微調(diào)

可以看到,BERT的微調(diào)非常簡(jiǎn)單,通過(guò)對(duì)最后一層的簡(jiǎn)單改造即可遷移到自己的NLP任務(wù)中。

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

相關(guān)閱讀更多精彩內(nèi)容

  • BERT:Pre-training of Deep Bidirectional Transformer for L...
    EdwardLee閱讀 5,310評(píng)論 0 3
  • 摘要:圖解,2018年自然語(yǔ)言處理領(lǐng)域最成功的方向! 2018年是自然語(yǔ)言處理的轉(zhuǎn)折點(diǎn),能捕捉潛在意義和關(guān)系的方式...
    城市中迷途小書(shū)童閱讀 2,135評(píng)論 0 18
  • 對(duì)于宇宙來(lái)說(shuō),我們是多么渺小的。不用說(shuō)幾億光年,就是光一秒照到的地方我們都到不了。更不用說(shuō)幾光年、幾十光年、幾百光...
    努力活著珍惜閱讀 498評(píng)論 0 0
  • 死神,好似萬(wàn)物終結(jié)的歸宿 它,悲傷、恐怖 穿梭在鋼鐵怪獸所鑄就的宮殿 好似在召喚著那些 迷茫、恐懼中的靈魂 突然,...
    魘客閱讀 342評(píng)論 2 3
  • 昨天是9月10號(hào),一年度的教師節(jié)。頭天晚上已經(jīng)跟女兒商量好了,給老師買(mǎi)禮物,女兒高高興興的去上學(xué)了。上午...
    相信女兒閱讀 330評(píng)論 3 4

友情鏈接更多精彩內(nèi)容