訂閱
糾錯(cuò)
加入自媒體

百度提出的持續(xù)學(xué)習(xí)語(yǔ)義理解框架RNIE基本原理簡(jiǎn)析

三、ERNIE

介紹了 ERNIE 的骨架結(jié)構(gòu)后,下面再來介紹了 ERNIE 的原理。

ERNIE 分為 1.0 版和 2.0 版,其中ERNIE 1.0是通過建模海量數(shù)據(jù)中的詞、實(shí)體及實(shí)體關(guān)系,學(xué)習(xí)真實(shí)世界的語(yǔ)義知識(shí)。相較于BERT學(xué)習(xí)原始語(yǔ)言信號(hào),ERNIE 1.0 可以直接對(duì)先驗(yàn)語(yǔ)義知識(shí)單元進(jìn)行建模,增強(qiáng)了模型語(yǔ)義表示能力。例如對(duì)于下面的例句:“哈爾濱是黑龍江的省會(huì),國(guó)際冰雪文化名城”

圖3 ERNIE 1.0 與 BERT 詞屏蔽方式的比較 BERT在預(yù)訓(xùn)練過程中使用的數(shù)據(jù)僅是對(duì)單個(gè)字符進(jìn)行屏蔽,例如圖3所示,訓(xùn)練Bert通過“哈”與“濱”的局部共現(xiàn)判斷出“爾”字,但是模型其實(shí)并沒有學(xué)習(xí)到與“哈爾濱”相關(guān)的知識(shí),即只是學(xué)習(xí)到“哈爾濱”這個(gè)詞,但是并不知道“哈爾濱”所代表的含義;而ERNIE在預(yù)訓(xùn)練時(shí)使用的數(shù)據(jù)是對(duì)整個(gè)詞進(jìn)行屏蔽,從而學(xué)習(xí)詞與實(shí)體的表達(dá),例如屏蔽“哈爾濱”與“冰雪”這樣的詞,使模型能夠建模出“哈爾濱”與“黑龍江”的關(guān)系,學(xué)到“哈爾濱”是“黑龍江”的省會(huì)以及“哈爾濱”是個(gè)冰雪城市這樣的含義。

訓(xùn)練數(shù)據(jù)方面,除百科類、資訊類中文語(yǔ)料外,ERNIE 1.0 還引入了論壇對(duì)話類數(shù)據(jù),利用對(duì)話語(yǔ)言模式(DLM, Dialogue Language Model)建模Query-Response對(duì)話結(jié)構(gòu),將對(duì)話Pair對(duì)作為輸入,引入Dialogue Embedding標(biāo)識(shí)對(duì)話的角色,利用對(duì)話響應(yīng)丟失(DRS, Dialogue Response Loss)學(xué)習(xí)對(duì)話的隱式關(guān)系,進(jìn)一步提升模型的語(yǔ)義表示能力。

因?yàn)?ERNIE 1.0 對(duì)實(shí)體級(jí)知識(shí)的學(xué)習(xí),使得它在語(yǔ)言推斷任務(wù)上的效果更勝一籌。ERNIE 1.0 在中文任務(wù)上全面超過了 BERT 中文模型,包括分類、語(yǔ)義相似度、命名實(shí)體識(shí)別、問答匹配等任務(wù),平均帶來 1~2 個(gè)百分點(diǎn)的提升。

我們可以發(fā)現(xiàn) ERNIE 1.0 與 BERT 相比只是學(xué)習(xí)任務(wù) MLM 作了一些改進(jìn)就可以取得不錯(cuò)的效果,那么如果使用更多較好的學(xué)習(xí)任務(wù)來訓(xùn)練模型,那是不是會(huì)取得更好的效果呢?因此 ERNIE 2.0 應(yīng)運(yùn)而生。ERNIE 2.0 是基于持續(xù)學(xué)習(xí)的語(yǔ)義理解預(yù)訓(xùn)練框架,使用多任務(wù)學(xué)習(xí)增量式構(gòu)建預(yù)訓(xùn)練任務(wù)。如圖4所示,在ERNIE 2.0中,大量的自然語(yǔ)言處理的語(yǔ)料可以被設(shè)計(jì)成各種類型的自然語(yǔ)言處理任務(wù)(Task),這些新構(gòu)建的預(yù)訓(xùn)練類型任務(wù)(Pre-training Task)可以無縫的加入圖中右側(cè)的訓(xùn)練框架,從而持續(xù)讓ERNIE 2.0模型進(jìn)行語(yǔ)義理解學(xué)習(xí),不斷的提升模型效果。

小媛插一句: NLP崗面試可是被問到過ERNIE 1.0 與 2.0 的區(qū)別哦, 重點(diǎn)畫好了, 你們看著辦

圖4 ERNIE 2.0框架

ERNIE 2.0 的預(yù)訓(xùn)練包括了三大類學(xué)習(xí)任務(wù),分別是:

詞法層任務(wù):學(xué)會(huì)對(duì)句子中的詞匯進(jìn)行預(yù)測(cè)。

語(yǔ)法層任務(wù):學(xué)會(huì)將多個(gè)句子結(jié)構(gòu)重建,重新排序。

語(yǔ)義層任務(wù):學(xué)會(huì)判斷句子之間的邏輯關(guān)系,例如因果關(guān)系、轉(zhuǎn)折關(guān)系、并列關(guān)系等。

通過這些新增的語(yǔ)義任務(wù),ERNIE 2.0語(yǔ)義理解預(yù)訓(xùn)練模型從訓(xùn)練數(shù)據(jù)中獲取了詞法、句法、語(yǔ)義等多個(gè)維度的自然語(yǔ)言信息,極大地增強(qiáng)了通用語(yǔ)義表示能力。ERNIE 2.0模型在英語(yǔ)任務(wù)上幾乎全面優(yōu)于BERT和XLNet,在7個(gè)GLUE任務(wù)上取得了最好的結(jié)果;中文任務(wù)上,ERNIE 2.0模型在所有9個(gè)中文NLP任務(wù)上全面優(yōu)于BERT。

四、然后呢?

完成預(yù)訓(xùn)練后,如何用 ERNIE 來解決具體的 NLP 問題呢?

下面以單句分類任務(wù)(如情感分析)為例,介紹下游 NLP 任務(wù)的解決過程:

基于tokenization.py腳本中的Tokenizer對(duì)輸入的句子進(jìn)行token化,即按字粒度對(duì)句子進(jìn)行切分;

分類標(biāo)志符號(hào)[CLS]與token化后的句子拼接在一起作為ERNIE模型的輸入,經(jīng)過 ERNIE 前向計(jì)算后得到每個(gè)token對(duì)應(yīng)的embedding向量表示;

在單句分類任務(wù)中,[CLS]位置對(duì)應(yīng)的嵌入式向量會(huì)用來作為分類特征。只需將[CLS]對(duì)應(yīng)的embedding抽取出來,再經(jīng)過一個(gè)全連接層得到分類的 logits 值,最后經(jīng)過softmax歸一化后與訓(xùn)練數(shù)據(jù)中的label一起計(jì)算交叉熵,就得到了優(yōu)化的損失函數(shù);

經(jīng)過幾輪的fine-tuning,就可以訓(xùn)練出解決具體任務(wù)的ERNIE模型。

關(guān)于ERNIE更詳細(xì)的介紹,可以參考這兩篇學(xué)術(shù)論文:

ERNIE: Enhanced Representation through Knowledge Integration

ERNIE 2.0: A Continual Pre-training Framework for Language Understanding

本文沒有對(duì)預(yù)訓(xùn)練過程作過多展開,只是簡(jiǎn)單的進(jìn)行了介紹。

在以后的文章中,小媛仍會(huì)就如何使用ERNIE解決下游的NLP任務(wù)原理以及實(shí)戰(zhàn)等內(nèi)容進(jìn)行分享。

星標(biāo)

<上一頁(yè)  1  2  
聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無評(píng)論

暫無評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)