百度提出的持續(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)

請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個字
最新活動更多
推薦專題
- 1 UALink規(guī)范發(fā)布:挑戰(zhàn)英偉達(dá)AI統(tǒng)治的開始
- 2 北電數(shù)智主辦酒仙橋論壇,探索AI產(chǎn)業(yè)發(fā)展新路徑
- 3 “AI寒武紀(jì)”爆發(fā)至今,五類新物種登上歷史舞臺
- 4 降薪、加班、裁員三重暴擊,“AI四小龍”已折戟兩家
- 5 國產(chǎn)智駕迎戰(zhàn)特斯拉FSD,AI含量差幾何?
- 6 光計算迎來商業(yè)化突破,但落地仍需時間
- 7 東陽光:2024年扭虧、一季度凈利大增,液冷疊加具身智能打開成長空間
- 8 地平線自動駕駛方案解讀
- 9 封殺AI“照騙”,“淘寶們”終于不忍了?
- 10 優(yōu)必選:營收大增主靠小件,虧損繼續(xù)又逢關(guān)稅,能否乘機器人東風(fēng)翻身?