NLP突破性成果 BERT 模型詳細解讀

Google發(fā)布的論文《Pre-training of Deep Bidirectional Transformers for Language Understanding》郎汪,提到的BERT模型刷新了自然語言處理的11項記錄。最近在做NLP中問答相關的內容闯狱,抽空寫了篇論文詳細解讀煞赢。我發(fā)現(xiàn)大部分關注人工智能領域的朋友看不懂里面的主要結論,為了讓你快速了解論文精髓哄孤,這里特地為初學者和剛接觸深度學習的朋友們奉上技能點突破roadmap照筑。如果別人寫的論文解讀你看不懂,代表你需要補充基礎知識啦录豺。另外給了主要論文參考朦肘,在第五部分饭弓,希望對你在NLP領域全面的了解有所幫助双饥。


一、 總體介紹

? ? ? ? BERT模型實際上是一個語言編碼器弟断,把輸入的句子或者段落轉化成特征向量(embedding)咏花。論文中有兩大亮點:1.雙向編碼器。作者沿用了《attention is all you need》里提到的語言編碼器阀趴,并提出雙向的概念昏翰,利用masked語言模型實現(xiàn)雙向。2.作者提出了兩種預訓練的方法Masked語言模型和下一個句子的預測方法刘急。作者認為現(xiàn)在很多語言模型低估了預訓練的力量棚菊。Masked語言模型比起預測下一個句子的語言模型,多了雙向的概念叔汁。

二统求、 模型框架

? ? ? BERT模型復用OpenAI發(fā)布的《Improving Language Understanding with Unsupervised Learning》里的框架检碗,BERT整體模型結構與參數(shù)設置都盡量做到OpenAI GPT一樣,只在預訓練方法做了改造码邻。而GPT讓編碼器只學習每一個token(單詞)與之前的相關內容折剃。

? ? ? ? 上圖是根據(jù)OpenAI GPT的架構圖做的改動,以便讀者更清楚的了解整個過程像屋。

? ? ? ? 整體分為兩個過程:1.預訓練過程(左邊圖)預訓練過程是一個multi-task learning怕犁,遷移學習的任務,目的是學習輸入句子的向量己莺。2微調過程(右邊圖)可基于少量監(jiān)督學習樣本奏甫,加入Feedword神經網絡,實現(xiàn)目標凌受。因為微調階段學習目標由簡單的feedward神經網絡構成扶檐,且用少量標注樣本,所以訓練時間短胁艰。

1.輸入表示

? ? ? 對比其他語言模型輸入是一個句子或者文檔款筑,Bert模型對輸入做了更寬泛的定義,輸入表示即可以是一個句子也可以一對句子(比如問答和答案組成的問答對)腾么。

? ? ? ? 輸入表示為每個詞對應的詞向量奈梳,segment向量,位置向量相加而成解虱。(位置向量參考《attention is all you need》)

2.預訓練過程-Masked語言模型

? ? ? ? Masked語言模型是為了訓練深度雙向語言表示向量攘须,作者用了一個非常直接的方式,遮住句子里某些單詞殴泰,讓編碼器預測這個單詞是什么于宙。

訓練方法為:作者隨機遮住15%的單詞作為訓練樣本。

(1)其中80%用masked token來代替悍汛。

(2)10%用隨機的一個詞來替換捞魁。

(3)10%保持這個詞不變。

? ? ? 作者在論文中提到這樣做的好處是离咐,編碼器不知道哪些詞需要預測的谱俭,哪些詞是錯誤的,因此被迫需要學習每一個token的表示向量宵蛀。另外作者表示昆著,每個batchsize只有15%的詞被遮蓋的原因,是性能開銷术陶。雙向編碼器比單項編碼器訓練要慢凑懂。

3.預測下一個句子。

? ? ? ? 預訓練一個二分類的模型梧宫,來學習句子之間的關系接谨。預測下一個句子的方法對學習句子之間關系很有幫助杭攻。

訓練方法:正樣本和負樣本比例是1:1,50%的句子是正樣本疤坝,隨機選擇50%的句子作為負樣本兆解。

[CLS]為句子起始符,[MASK]為遮蔽碼跑揉,[SEP]為分隔符和截止符

4.預訓練階段參數(shù)

(1)256個句子作為一個batch,每個句子最多512個token锅睛。

(2)迭代100萬步。

(3)總共訓練樣本超過33億历谍。

(4)迭代40個epochs现拒。

(5)用adam學習率, 1 = 0.9,? 2 = 0.999望侈。

(6)學習率頭一萬步保持固定值印蔬,之后線性衰減。

(7)L2衰減脱衙,衰減參數(shù)為0.01侥猬。

(8)drop out設置為0.1。

(9)激活函數(shù)用GELU代替RELU捐韩。

(10)Bert base版本用了16個TPU退唠,Bert large版本用了64個TPU,訓練時間4天完成荤胁。

(論文定義了兩個版本瞧预,一個是base版本,一個是large版本仅政。Large版本(L=24, H=1024, A=16, Total Parameters=340M)垢油。base版本( L=12, H=768, A=12, Total Pa- rameters=110M)。L代表網絡層數(shù)圆丹,H代表隱藏層數(shù)滩愁,A代表self attention head的數(shù)量。)

5.微調階段

? ? ? 微調階段根據(jù)不同任務使用不同網絡模型运褪。在微調階段惊楼,大部分模型的超參數(shù)跟預訓練時差不多玖瘸,除了batchsize秸讹,學習率,epochs雅倒。

訓練參數(shù):

Batch size: 16, 32

Learning rate (Adam): 5e-5, 3e-5, 2e-5

Number of epochs: 3, 4

三璃诀、實驗效果

1.分類數(shù)據(jù)集上的表現(xiàn)

2.問答數(shù)據(jù)集上的表現(xiàn)

? ? ? 在問答數(shù)據(jù)集SQuAD v1.1上的表現(xiàn),TriviaQA是一個問答數(shù)據(jù)集蔑匣。EM的基本算法是比較兩個字符串的重合率劣欢。F1是綜合衡量準確率和召回率的一個指標棕诵。

3.命名實體識別上的表現(xiàn)

4.常識推理上的表現(xiàn)

四、模型簡化測試

? ? ? Blation study就是為了研究模型中所提出的一些結構是否有效而設計的實驗凿将。對該模型推廣和工程化部署有極大作用校套。

1.預訓練效果測試

NO NSP: 用masked語言模型,沒用下一個句子預測方法(next sentence prediction)

LTR&NO NSP: 用從左到右(LTR)語言模型牧抵,沒有masked語言模型笛匙,沒用下一個句子預測方法

+BiLSTM: 加入雙向LSTM模型做預訓練。

2.模型結構的復雜度對結果的影響

L代表網絡層數(shù)犀变,H代表隱藏層數(shù)妹孙,A代表self attention head的數(shù)量。

3.預訓練中training step對結果的影響

4.基于特征的方法對結果的影響

五获枝、重要參考論文

? ? ? 如何你想了解2017年到2018年NLP領域重要發(fā)展趨勢蠢正,你可以參考以下幾篇論文。google直接就可以下載省店。

《Attention is all you need》2017年NLP領域最重要突破性論文之一嚣崭。

《Convolutional Sequence to Sequence Learning》2017年NLP領域最重要突破性論文之一。

《Deep contextualized word representations》2018年NAACL最佳論文懦傍,大名鼎鼎的ELMO有鹿。

《Improving Language Understanding by Generative PreTraining》,OpenAI GPT谎脯,Bert模型主要借鑒和比較對象葱跋。

《An efficient framework for learning sentence representations》句子向量表示方法。

《Semi-supervised sequence tagging with bidirectional language models》提出雙向語言模型源梭。

六娱俺、個人觀點

? ? ? 個人覺得如果你大概了解近兩年NLP的發(fā)展的話,BERT模型的突破在情理之中废麻,大多思想是借用前人的突破荠卷,比如雙向編碼器想法是借助這篇論文《Semi-supervised sequence tagging with bidirectional language models》。并且烛愧,他提出的一些新的思想油宜,是我們自然而然就會想到的。(十一在家的時候怜姿,在做問答模型的時候慎冤,我就在想,為什么不能把前一個句子和后一個句子作為標注數(shù)據(jù)沧卢,組成一個二分類模型來訓練呢蚁堤。)

? ? ? 整片論文最有價值的部分,我認為是預訓練的兩種方法但狭,不需要大量標注數(shù)據(jù)披诗,在工程實踐和一些NLP基礎訓練中具有很大借鑒意義撬即。

? ? ? 自然語言處理領域2017年和2018年的兩個大趨勢:一方面,模型從復雜回歸到簡單呈队。另一方面剥槐,遷移學習和半監(jiān)督學習大熱。這兩個趨勢是NLP從學術界向產業(yè)界過渡的苗頭宪摧,因為現(xiàn)實情況往往是才沧,拿不到大量高質量標注數(shù)據(jù),資源設備昂貴解決不了效率問題绍刮。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末温圆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子孩革,更是在濱河造成了極大的恐慌岁歉,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膝蜈,死亡現(xiàn)場離奇詭異锅移,居然都是意外死亡,警方通過查閱死者的電腦和手機饱搏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門非剃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人推沸,你說我怎么就攤上這事备绽。” “怎么了鬓催?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵肺素,是天一觀的道長。 經常有香客問我宇驾,道長倍靡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任课舍,我火速辦了婚禮塌西,結果婚禮上,老公的妹妹穿的比我還像新娘筝尾。我一直安慰自己捡需,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布忿等。 她就那樣靜靜地躺著栖忠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贸街。 梳的紋絲不亂的頭發(fā)上庵寞,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音薛匪,去河邊找鬼捐川。 笑死,一個胖子當著我的面吹牛逸尖,可吹牛的內容都是我干的古沥。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼娇跟,長吁一口氣:“原來是場噩夢啊……” “哼岩齿!你這毒婦竟也來了?” 一聲冷哼從身側響起苞俘,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤盹沈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后吃谣,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乞封,經...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年岗憋,在試婚紗的時候發(fā)現(xiàn)自己被綠了肃晚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡仔戈,死狀恐怖关串,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情监徘,我是刑警寧澤悍缠,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站耐量,受9級特大地震影響飞蚓,放射性物質發(fā)生泄漏。R本人自食惡果不足惜廊蜒,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一趴拧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧山叮,春花似錦著榴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春问麸,著一層夾襖步出監(jiān)牢的瞬間往衷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工严卖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留席舍,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓哮笆,卻偏偏與公主長得像来颤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子稠肘,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內容

  • 本文上兩篇系列 NLP的巨人肩膀(上) NLP的巨人肩膀(中) 4.6 Bidirectional Encoder...
    weizier閱讀 6,394評論 1 22
  • 弟弟快三十歲了福铅,在村里面沒結婚的小伙中算是比較大的了。最近幾年沒少相親项阴,但都是有了第一次見面就沒下文了滑黔。父母都很替...
    藍寶貝閱讀 287評論 1 2