BERT Paper Review

BERT-Google Code

Pre-training of Deep Bidirectional Transformers for Language Understanding

? ? ? ?EMLo的熱度還沒降下來(涼了)淋纲,緊接著OpenAI GPT和ELMo的Google BERT,在很多個NLP任務(wù)中都獲得了大幅度的提升院究,又成了NLP的一個牛逼瘋了大熱點 洽瞬。
? ? ? ?下面記錄一下對論文的理解和筆記。

1业汰、相關(guān)知識

? ? ? ?預(yù)訓(xùn)練模型伙窃,BERT是一個預(yù)訓(xùn)練模型。簡單的來說就是一個模型通過大數(shù)據(jù)集A來訓(xùn)練样漆,學(xué)習(xí)到一個關(guān)于數(shù)據(jù)集A的參數(shù)为障。當進行數(shù)據(jù)集B的任務(wù)時,先調(diào)用關(guān)于A的參數(shù)作為初始參數(shù)放祟,然后再通過數(shù)據(jù)集B進行再訓(xùn)練鳍怨,并調(diào)整參數(shù),逐漸調(diào)整成為適合數(shù)據(jù)集B的模型跪妥,也就是“fine-tuning(微調(diào))”鞋喇。
? ? ? ?這個特性的特點就是可以用很少的數(shù)據(jù)集B就能訓(xùn)練得到很好的訓(xùn)練參數(shù),即眉撵,一定程度上的繼承了在數(shù)據(jù)集A訓(xùn)練好的參數(shù)侦香,通過微調(diào)使之快速適應(yīng)數(shù)據(jù)集B落塑。而且通常這樣做,會得到比只用數(shù)據(jù)B訓(xùn)練得到的模型參數(shù)更好罐韩。

2憾赁、BERT

? ? ? ?主要貢獻:雙向預(yù)訓(xùn)練對語言表示的重要性,使用MLM(Masked Language Model散吵,遮蔽語言模型)龙考,語句級訓(xùn)練NextSentence任務(wù)

? ? ? ?論文提出了兩種不同Size的BERT模型:
? ? ? ?? ? ? ?BERTbase:L=12,H=768错蝴,A=12洲愤,TotalParams = 110M(Base版本的提出意在與GPT模型有相同的模型size,用以對比參照)
? ? ? ?? ? ? ?BERTlarge:L=24顷锰,H=1024柬赐,A=16,TotalParams = 340M
L:指網(wǎng)絡(luò)的層數(shù)
H:指隱層的單元數(shù)
A:指使用的自注意力的頭數(shù)(Attention Is All You Need)
? ? ? ? 兩者的差別就是大小不同官紫,在后面的實驗結(jié)果部分肛宋,BERTlarge版本大概比base版本要再高約1% ~ 2%左右,在CoLA數(shù)據(jù)集差8%左右束世,RTE在4%左右酝陈。

? ? ? ?模型結(jié)構(gòu)對比
OpenAI GPT

? ? ? ?OpenAI GPT就是只用到了從左往右的上下文信息來做訓(xùn)練。


ELMo

? ? ? ?而ELMo使用的是兩個獨立的單向LSTM來做訓(xùn)練毁涉。據(jù)說ELMo使用時效率比較低沉帮,而且很快又被提出的BERT強勢壓在頭上,所以ELMo小火之后贫堰,就沒然后了穆壕。


BERT

? ? ? ?BERT的結(jié)構(gòu)主要是基于多層多個雙向Transformer(從左到右和從右到左)。Transformer在Attention論文中應(yīng)用MT(機器翻譯)任務(wù)時用了6層的Transformer其屏。從結(jié)構(gòu)上來講喇勋,Transformer之間用的是Residual Connection,并且有batch normarlization這種“常規(guī)操作”偎行,所以得以實現(xiàn)多層網(wǎng)絡(luò)川背。而疑問在于多層的網(wǎng)絡(luò)結(jié)構(gòu)可以在NLP任務(wù)中學(xué)習(xí)到什么特征?有論點認為低層網(wǎng)絡(luò)偏向于語法特征學(xué)習(xí)蛤袒,高層網(wǎng)絡(luò)偏向于語義特征學(xué)習(xí)熄云,但這還沒有得到論證。
? ? ? ?Task1:MLM(遮蔽語言模型)

? ? ? ?BERT創(chuàng)新性的一個亮點就是對輸入數(shù)據(jù)的處理汗盘,“MLM”皱碘,即遮蔽語言模型。BERT通過對輸入句子15%的token進行隨機遮蔽(隨機遮蔽的原因是為了減少未來fine-tuning時遇到未見詞的可能性)隐孽,然后將masked token的位置輸出的最終隱層向量送到softmax癌椿,來預(yù)測masked token。而對于遮蓋住的token在NLP下游任務(wù)中不存在這種Mask標記菱阵,因此為了解決這個問題踢俄,作者按照一定的比例來進行輸入原詞或者輸入某個隨機詞。
文中例如:My dog is hairy

  • 80%概率:用[mask] 標記替換:My dog is hairy -->My dog is [mask]
  • 10%概率:隨機詞替換要標記位置:My dog is hairy -->My dog is pig.
  • 10%概率:不做替換操作:My dog is hairy -->My dog is hairy. (無替換)
    ? ? ? ?Transformer
    ? ? ? ?Transformer已經(jīng)提到晴及,是來自于同是Google提出的《Attention Is All You Need》都办,是一種可以替代CNN和RNN的新架構(gòu),用來實現(xiàn)MT任務(wù)虑稼。CNN處理文本的缺陷是琳钉,卷積操作先天不適合用于文本序列操作故响,RNN沒有并行化挎扰,很容易超出內(nèi)存限制沮明。
    Transformer 結(jié)構(gòu)

    ? ? ? ?上圖就是Transformer的結(jié)構(gòu)圖绒净,分成左邊Nx的encoder部分和右邊Nx的decoder部分吓懈,相比較于RNN+Attention常見的encoder-decoder之間的Attention冗恨,還多出encoder和decoder內(nèi)部的self-attention棺妓。每個Attention都有Multi-Head特征价涝,最后通過Position encoding加入沒有考慮過的位置信息且改。
    ? ? ? ?Multi - Head Attention
    ? ? ? ?將一個詞的vector验烧,切分成h個維度,求attention相似度(點積又跛、cosine碍拆、MLP)時每個h維度計算。由于單詞映射在高維空間作為向量形式慨蓝,每一維空間都可以學(xué)習(xí)到不同的特征感混,相鄰空間所學(xué)到的結(jié)果更相似,相較于全體空間放到一起更具合理性菌仁。比如對于vector-size = 512的詞向量浩习,取h=8,每64個空間做一個Attention济丘,學(xué)到的結(jié)果更細化谱秽,更合理(即高維空間中的相鄰維度具有的聯(lián)系更緊密,我猜)摹迷。
    ? ? ? ?Self - Attention
    ? ? ? ?每個詞位置的詞都可以無視距離和方向疟赊,有機會和句子詞序列中的每個詞進行encoding。兩個詞的聯(lián)系越強峡碉,self-attention的值越大近哟。
    ? ? ? ?Position Encoding
    ? ? ? ?因為Transformer既沒有RNN的循環(huán)單元也沒有CNN的卷積操作,但序列順序信息是非常重要的特征鲫寄。
    ? ? ? ?Transformer計算token的位置信息(這里使用正弦波)吉执,類似信號的周期性變化疯淫。這樣的循環(huán)函數(shù)可以一定程度上增加模型的泛化能力。
    ? ? ? ?? ? ? ?PE (pos,2i) = sin(pos/10000 2i/d model )
    ? ? ? ?? ? ? ?PE (pos,2i+1) = cos(pos/10000 2i/d model )
    ? ? ? ?但BERT直接訓(xùn)練一個Position Embedding 來保留位置信息戳玫,每個位置隨機初始化一個向量熙掺,加入模型訓(xùn)練,最后就得到一個包含位置信息的embedding(emmmm)咕宿。BERT最后這個Position Embedding 和 Word Embedding選擇使用 直接拼接币绩。
? ? ? ?Task2:Next Sentence Prediction

? ? ? ?句子級別的連續(xù)性預(yù)測任務(wù),即預(yù)測輸入BERT的兩端文本是否為連續(xù)的文本府阀。訓(xùn)練時缆镣,輸入模型的第二句以50%的概率從全部文本中隨機抽取,剩下50%的概率選取第一個句子的后續(xù)一個句子作為輸入试浙。(其實就是做句子級匹配的二分類)
即如下:
? ? ? ?[Input]:[CLS]太陽天[mask]照[SEP]我[mask]去學(xué)校[SEP]
? ? ? ?[Label]:IsNext
? ? ? ?[Input]:[CLS]太陽天[mask]照[SEP]交給警察[mask]叔手里面[SEP]
? ? ? ?[Label]:NotNext
(雖然這個訓(xùn)練任務(wù)非常的簡單董瞻,但是后來證明這項訓(xùn)練任務(wù)對QA和NLI都極有幫助)

? ? ? ?Segment Embedding
BERT Input Representation

? ? ? ?The input embeddings is the sum of the token embeddings, the segmentation embeddings and position embeddings.
? ? ? ?即直接拼接各個Embedding組合

3川队、遷移策略

下游NLP任務(wù)分類:
a). 序列標注:分詞力细、NER、語義標注…
b).分類任務(wù):文本分類固额、情感識別…
c).句子關(guān)系判斷:QA眠蚂、自然語言推理、文本蘊含…
d).生成式任務(wù):機器翻譯斗躏、文本摘要逝慧、文本生成…
? ? ? ?BERT 將傳統(tǒng)大量在下游具體的NLP任務(wù)中做的操作轉(zhuǎn)移到預(yù)訓(xùn)練詞向量中,在獲得BERT詞向量后啄糙,最終只需要在詞向量上加簡單的MLP或線性分類器即可笛臣。

4、GLUE語料集

實驗數(shù)據(jù)以及對應(yīng)的NLP任務(wù)

  • MNLI蘊含關(guān)系推斷
  • QQP問題對是否等價
  • QNLI句子是都回答問句
  • SST-2情感分析
  • CoLA句子語言性判斷
  • STS-B語義相似
  • MRPC句子對是都語義等價
  • RTE蘊含關(guān)系推斷
  • WNLI蘊含關(guān)系推斷

References:
? ? ? ?BERT Paper
? ? ? ?Attention Paper
? ? ? ?Attention Is All You Need 閱讀筆記
? ? ? ?BERT的理解
? ? ? ?徹底搞懂BERT
? ? ? ?BERT介紹

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末隧饼,一起剝皮案震驚了整個濱河市沈堡,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌燕雁,老刑警劉巖诞丽,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異拐格,居然都是意外死亡僧免,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門捏浊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來懂衩,“玉大人,你說我怎么就攤上這事∽嵌矗” “怎么了牵敷?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長沛申。 經(jīng)常有香客問我劣领,道長姐军,這世上最難降的妖魔是什么铁材? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮奕锌,結(jié)果婚禮上著觉,老公的妹妹穿的比我還像新娘。我一直安慰自己惊暴,他們只是感情好饼丘,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辽话,像睡著了一般肄鸽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上油啤,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天典徘,我揣著相機與錄音,去河邊找鬼益咬。 笑死逮诲,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的幽告。 我是一名探鬼主播梅鹦,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼冗锁!你這毒婦竟也來了齐唆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤冻河,失蹤者是張志新(化名)和其女友劉穎箍邮,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芋绸,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡媒殉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了摔敛。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片廷蓉。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桃犬,到底是詐尸還是另有隱情刹悴,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布攒暇,位于F島的核電站土匀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏形用。R本人自食惡果不足惜就轧,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望田度。 院中可真熱鬧妒御,春花似錦、人聲如沸镇饺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奸笤。三九已至惋啃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間监右,已是汗流浹背边灭。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留秸侣,地道東北人存筏。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像味榛,于是被迫代替她去往敵國和親椭坚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354