日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

BERT的通俗理解 預(yù)訓(xùn)練模型 微調(diào)

 印度阿三17 2019-07-17

1、預(yù)訓(xùn)練模型
? ? ? BERT是一個(gè)預(yù)訓(xùn)練的模型,那么什么是預(yù)訓(xùn)練呢?舉例子進(jìn)行簡(jiǎn)單的介紹
? ? ? 假設(shè)已有A訓(xùn)練集,先用A對(duì)網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,在A任務(wù)上學(xué)會(huì)網(wǎng)絡(luò)參數(shù),然后保存以備后用,當(dāng)來(lái)一個(gè)新的任務(wù)B,采取相同的網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)參數(shù)初始化的時(shí)候可以加載A學(xué)習(xí)好的參數(shù),其他的高層參數(shù)隨機(jī)初始化,之后用B任務(wù)的訓(xùn)練數(shù)據(jù)來(lái)訓(xùn)練網(wǎng)絡(luò),當(dāng)加載的參數(shù)保持不變時(shí),稱為"frozen",當(dāng)加載的參數(shù)隨著B(niǎo)任務(wù)的訓(xùn)練進(jìn)行不斷的改變,稱為“fine-tuning”,即更好地把參數(shù)進(jìn)行調(diào)整使得更適合當(dāng)前的B任務(wù)

? ? ?優(yōu)點(diǎn):當(dāng)任務(wù)B的訓(xùn)練數(shù)據(jù)較少時(shí),很難很好的訓(xùn)練網(wǎng)絡(luò),但是獲得了A訓(xùn)練的參數(shù),會(huì)比僅僅使用B訓(xùn)練的參數(shù)更優(yōu)

Task #1: Masked LM
? ? ?為了訓(xùn)練雙向特征,這里采用了Masked Language Model的預(yù)訓(xùn)練方法,隨機(jī)mask句子中的部分token,然后訓(xùn)練模型來(lái)預(yù)測(cè)被去掉的token。

具體操作是:

隨機(jī)mask語(yǔ)料中15%的token,然后將masked token 位置輸出的final hidden vectors送入softmax,來(lái)預(yù)測(cè)masked token。

這里也有一個(gè)小trick,如果都用標(biāo)記[MASK]代替token會(huì)影響模型,所以在隨機(jī)mask的時(shí)候采用以下策略:

1)80%的單詞用[MASK]token來(lái)代替

my dog is hairy → my dog is [MASK]
2)10%單詞用任意的詞來(lái)進(jìn)行代替

my dog is hairy → my dog is apple

3)10%單詞不變

my dog is hairy → my dog is hairy


Task 2#: Next Sentence Prediction
? ? ? ?為了讓模型捕捉兩個(gè)句子的聯(lián)系,這里增加了Next Sentence Prediction的預(yù)訓(xùn)練方法,即給出兩個(gè)句子A和B,B有一半的可能性是A的下一句話,訓(xùn)練模型來(lái)預(yù)測(cè)B是不是A的下一句話
Input = [CLS] the man went to [MASK] store [SEP]
?????????????penguin [MASK] are flight ## less birds [SEP]
Label = NotNext
?????????????he bought a gallon [MASK] milk [SEP]
Label = IsNext
Input = [CLS] the man [MASK] to the store [SEP]
訓(xùn)練模型,使模型具備理解長(zhǎng)序列上下文的聯(lián)系的能力

2、BERT模型
BERT:全稱是Bidirectional Encoder Representation from Transformers,即雙向Transformer的Encoder,BERT的模型架構(gòu)基于多層雙向轉(zhuǎn)換解碼,因?yàn)閐ecoder是不能獲要預(yù)測(cè)的信息的,模型的主要?jiǎng)?chuàng)新點(diǎn)都在pre-traing方法上,即用了Masked LM和Next Sentence Prediction兩種方法分別捕捉詞語(yǔ)和句子級(jí)別的representation

其中“雙向”表示模型在處理某一個(gè)詞時(shí),它能同時(shí)利用前面的詞和后面的詞兩部分信息,這種“雙向”的來(lái)源在于BERT與傳統(tǒng)語(yǔ)言模型不同,它不是在給你大牛股所有前面詞的條件下預(yù)測(cè)最可能的當(dāng)前詞,而是隨機(jī)遮掩一些詞,并利用所有沒(méi)被遮掩的詞進(jìn)行預(yù)測(cè)

下圖展示了三種預(yù)訓(xùn)練模型,其中 BERT 和 ELMo 都使用雙向信息,OpenAI GPT 使用單向信息


3、BERT的輸入部分


? ? ?bert的輸入部分是個(gè)線性序列,兩個(gè)句子通過(guò)分隔符分割,最前面和最后增加兩個(gè)標(biāo)識(shí)符號(hào)。每個(gè)單詞有三個(gè)embedding:位置信息embedding,這是因?yàn)镹LP中單詞順序是很重要的特征,需要在這里對(duì)位置信息進(jìn)行編碼;單詞embedding,這個(gè)就是我們之前一直提到的單詞embedding;第三個(gè)是句子embedding,因?yàn)榍懊嫣岬接?xùn)練數(shù)據(jù)都是由兩個(gè)句子構(gòu)成的,那么每個(gè)句子有個(gè)句子整體的embedding項(xiàng)對(duì)應(yīng)給每個(gè)單詞。把單詞對(duì)應(yīng)的三個(gè)embedding疊加,就形成了Bert的輸入。

? ? ? 如上圖所示,輸入有A句[my dog is cute]和B句[he likes playing]這兩個(gè)自然句,我們首先需要將每個(gè)單詞及特殊符號(hào)都轉(zhuǎn)化為詞嵌入向量,因?yàn)樯窠?jīng)網(wǎng)絡(luò)只能進(jìn)行數(shù)值計(jì)算。其中特殊符[SEP]是用于分割兩個(gè)句子的符號(hào),前面半句會(huì)加上分割碼A,后半句會(huì)加上分割碼B
? ? ? 因?yàn)橐>渥又g的關(guān)系,BERT 有一個(gè)任務(wù)是預(yù)測(cè) B 句是不是 A 句后面的一句話,而這個(gè)分類任務(wù)會(huì)借助 A/B 句最前面的特殊符 [CLS] 實(shí)現(xiàn),該特殊符可以視為匯集了整個(gè)輸入序列的表征。
最后的位置編碼是 Transformer 架構(gòu)本身決定的,因?yàn)榛谕耆⒁饬Φ姆椒ú⒉荒芟?CNN 或 RNN 那樣編碼詞與詞之間的位置關(guān)系,但是正因?yàn)檫@種屬性才能無(wú)視距離長(zhǎng)短建模兩個(gè)詞之間的關(guān)系。因此為了令 Transformer 感知詞與詞之間的位置關(guān)系,我們需要使用位置編碼給每個(gè)詞加上位置信息。

總結(jié)一下:
(1)token embeddings表示的是詞向量,第一個(gè)單詞是CLS,可以用于之后的分類任務(wù)
(2)segment embeddings用來(lái)區(qū)別兩種句子,因?yàn)轭A(yù)訓(xùn)練不光做LM還要做以兩個(gè)句子為輸入的分類任務(wù)
(3)position embeddings表示位置信息

4、NLP的四大類任務(wù)
(1)序列標(biāo)注:分詞、實(shí)體識(shí)別、語(yǔ)義標(biāo)注……
(2)分類任務(wù):文本分類、情感計(jì)算……
(3)句子關(guān)系判斷:entailment、QA、自然語(yǔ)言推理
(4)生成式任務(wù):機(jī)器翻譯、文本摘

上圖給出示例,對(duì)于句子關(guān)系類任務(wù),很簡(jiǎn)單,和GPT類似,加上一個(gè)起始和終結(jié)符號(hào),句子之間加個(gè)分隔符即可。對(duì)于輸出來(lái)說(shuō),把第一個(gè)起始符號(hào)對(duì)應(yīng)的Transformer最后一層位置上面串接一個(gè)softmax分類層即可。對(duì)于分類問(wèn)題,與GPT一樣,只需要增加起始和終結(jié)符號(hào),輸出部分和句子關(guān)系判斷任務(wù)類似改造;對(duì)于序列標(biāo)注問(wèn)題,輸入部分和單句分類是一樣的,只需要輸出部分Transformer最后一層每個(gè)單詞對(duì)應(yīng)位置都進(jìn)行分類即可。從這里可以看出,上面列出的NLP四大任務(wù)里面,除了生成類任務(wù)外,Bert其它都覆蓋到了,而且改造起來(lái)很簡(jiǎn)單直觀。(https://zhuanlan.zhihu.com/p/49271699)

5、模型的評(píng)價(jià)
(1)優(yōu)點(diǎn)

BERT是截止至2018年10月的最新的的state of the art模型,通過(guò)預(yù)訓(xùn)練和精調(diào)可以解決11項(xiàng)NLP的任務(wù)。使用的是Transformer,相對(duì)于rnn而言更加高效、能捕捉更長(zhǎng)距離的依賴。與之前的預(yù)訓(xùn)練模型相比,它捕捉到的是真正意義上的bidirectional context信息

(2)缺點(diǎn)

作者在文中主要提到的就是MLM預(yù)訓(xùn)練時(shí)的mask問(wèn)題:

1)[MASK]標(biāo)記在實(shí)際預(yù)測(cè)中不會(huì)出現(xiàn),訓(xùn)練時(shí)用過(guò)多[MASK]影響模型表現(xiàn);

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

6、GLUE語(yǔ)料集的介紹
實(shí)驗(yàn)數(shù)據(jù)以及對(duì)應(yīng)的NLP任務(wù)
MNLI:蘊(yùn)含關(guān)系推斷
QQP:?jiǎn)栴}對(duì)是否等價(jià)
QNLI:句子是都回答問(wèn)句
SST-2:情感分析
CoLA:句子語(yǔ)言性判斷
STS-B:語(yǔ)義相似
MRPC:句子對(duì)是都語(yǔ)義等價(jià)
RTE:蘊(yùn)含關(guān)系推斷
WNLI:蘊(yùn)含關(guān)系推斷

7、git網(wǎng)址https://github.com/google-research/bert
關(guān)于bert知識(shí)干貨的匯總https://zhuanlan.zhihu.com/p/50717786

本文轉(zhuǎn)自https://blog.csdn.net/yangfengling1023/article/details/84025313
---------------------
作者:小白的進(jìn)階
來(lái)源:CSDN
原文:https://blog.csdn.net/laobai1015/article/details/87937528
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!

來(lái)源:https://www./content-4-336551.html

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章