訂閱
糾錯
加入自媒體

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

三、ERNIE

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

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

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

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

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

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

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

圖4 ERNIE 2.0框架

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

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

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

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

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

四、然后呢?

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

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

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

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

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

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

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

星標(biāo)

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

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

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

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