摘取于https://www.jianshu.com/p/810ca25c4502
任務(wù)1:Masked Language Model
Maked LM 是為了解決單向信息問(wèn)題,現(xiàn)有的語(yǔ)言模型的問(wèn)題在于,沒(méi)有同時(shí)利用雙向信息,如 ELMO 號(hào)稱是雙向LM,但實(shí)際上是兩個(gè)單向 RNN 構(gòu)成的語(yǔ)言模型的拼接,由于時(shí)間序列的關(guān)系,RNN模型預(yù)測(cè)當(dāng)前詞只依賴前面出現(xiàn)過(guò)的詞,對(duì)于后面的信息無(wú)從得知。
那么如何同時(shí)利用好前面的詞和后面的詞的語(yǔ)義呢?Bert 提出 Masked Language Model,也就是隨機(jī)遮住句子中部分 Token,模型再去通過(guò)上下文語(yǔ)義去預(yù)測(cè) Masked 的詞,通過(guò)調(diào)整模型的參數(shù)使得模型預(yù)測(cè)正確率盡可能大。
怎么理解這一邏輯,Bert 預(yù)訓(xùn)練過(guò)程就是模仿我們學(xué)習(xí)語(yǔ)言的過(guò)程,要準(zhǔn)確的理解一個(gè)句子或一段文本的語(yǔ)義,就要學(xué)習(xí)上下文關(guān)系,從上下文語(yǔ)義來(lái)推測(cè)空缺單詞的含義。而 Bert 的做法模擬了英語(yǔ)中的完形填空,隨機(jī)將一些單詞遮住,讓 Bert 模型去預(yù)測(cè)這個(gè)單詞,以此達(dá)到學(xué)習(xí)整個(gè)文本語(yǔ)義的目的。
那么 Bert 如何做到”完形填空“的呢?
隨機(jī) mask 預(yù)料中 15% 的 Token,然后預(yù)測(cè) [MASK] Token,與 masked token 對(duì)應(yīng)的最終隱藏向量被輸入到詞匯表上的 softmax 層中。這雖然確實(shí)能訓(xùn)練一個(gè)雙向預(yù)訓(xùn)練模型,但這種方法有個(gè)缺點(diǎn),因?yàn)樵陬A(yù)訓(xùn)練過(guò)程中隨機(jī) [MASK] Token 由于每次都是全部 mask,預(yù)訓(xùn)練期間會(huì)記住這些 MASK 信息,但是在fine-tune期間從未看到過(guò) [MASK] Token,導(dǎo)致預(yù)訓(xùn)練和 fine-tune 信息不匹配。
而為了解決預(yù)訓(xùn)練和 fine-tune 信息不匹配,Bert 并不總是用實(shí)際的 [MASK] Token 替換 masked 詞匯。
my dog is hairy → my dog is [MASK] 80%選中的詞用[MASK]代替
my dog is hairy → my dog is apple 10%將選中的詞用任意詞代替
my dog is hairy → my dog is hairy 10%選中的詞不發(fā)生變化
為什么 15% 的 Token 不完全 MASK?如果只有 MASK,這個(gè)預(yù)訓(xùn)練模型是有偏置的,也就是只能學(xué)到一種方式,用上下文去預(yù)測(cè)一個(gè)詞,這導(dǎo)致 fine-tune 丟失一部分信息。
加上 10% 的隨機(jī)詞和 10% 的真實(shí)值是讓模型知道,每個(gè)詞都有意義,除了要學(xué)習(xí)上下文信息,還需要提防每個(gè)詞,因?yàn)槊總€(gè)詞都不一定是對(duì)的,對(duì)于 Bert 來(lái)說(shuō),每個(gè)詞都需要很好的理解和預(yù)測(cè)。
有些人會(huì)疑惑,加了隨機(jī) Token,會(huì)讓模型產(chǎn)生疑惑,從而不能學(xué)到真實(shí)的語(yǔ)義嗎?對(duì)于人來(lái)說(shuō),完形填空都不一定能做對(duì),而將文本中某些詞隨機(jī)替換,更是難以理解,從概率角度來(lái)說(shuō),隨機(jī) Token 占比只有 15% * 10% = 1.5%,預(yù)料足夠的情況下,這并不會(huì)影響模型的性能。
因?yàn)?[MASK] Token 占比變小,且預(yù)測(cè)難度加大的原因,所以 MASK 會(huì)花更多時(shí)間。
任務(wù)2:Next Sentence Prediction
在許多下游任務(wù)中,如問(wèn)答系統(tǒng) QA 和自然語(yǔ)言推理 NLI,都是建立在理解兩個(gè)文本句子之間的關(guān)系基礎(chǔ)上,這不是語(yǔ)言模型能直接捕捉到的。
為了訓(xùn)練一個(gè)理解句子關(guān)系的模型,作者提出 Next Sentence Prediction,也即是預(yù)訓(xùn)練一個(gè)下一句預(yù)測(cè)的二分類任務(wù),這個(gè)任務(wù)就是每次訓(xùn)練前都會(huì)從語(yǔ)料庫(kù)中隨機(jī)選擇句子 A 和句子 B,50% 是正確的相鄰的句子,50% 是隨機(jī)選取的一個(gè)句子,這個(gè)任務(wù)在預(yù)訓(xùn)練中能達(dá)到 97%-98% 的準(zhǔn)確率,并且能很顯著的提高 QA 和 NLI 的效果。
Input = [CLS] the man went to [MASK] store [SEP]
he bought a gallon [MASK] milk [SEP]
Label = IsNext
Input = [CLS] the man [MASK] to the store [SEP]
penguin [MASK] are flight ##less birds [SEP]
Label = NotNext
模型通過(guò)對(duì) Masked LM 任務(wù)和 Next Sentence Prediction 任務(wù)進(jìn)行聯(lián)合訓(xùn)練,使模型輸出的每個(gè)字 / 詞的向量表示都能盡可能全面、準(zhǔn)確地刻畫輸入文本(單句或語(yǔ)句對(duì))的整體信息,為后續(xù)的微調(diào)任務(wù)提供更好的模型參數(shù)初始值。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-674554.html
作者:隨時(shí)學(xué)丫
鏈接:https://www.jianshu.com/p/810ca25c4502
來(lái)源:簡(jiǎn)書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-674554.html
到了這里,關(guān)于論文解讀:Bert原理深入淺出的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!