【一】ERNIE:飛槳開源開發套件,入門學習,看看行業頂尖持續學習語義理解框架,如何取得世界多個實戰的SOTA效果?( 二 )


2.2 ERNIE介紹了 ERNIE 的骨架結構后,下面再來介紹了 ERNIE 的原理 。
ERNIE 分為 1.0 版和 2.0 版 , 其中ERNIE 1.0是通過建模海量數據中的詞、實體及實體關系,學習真實世界的語義知識 。相較于BERT學習原始語言信號,ERNIE 1.0 可以直接對先驗語義知識單元進行建模,增強了模型語義表示能力 。例如對于下面的例句:“哈爾濱是黑龍江的省會,國際冰雪文化名城”

【一】ERNIE:飛槳開源開發套件,入門學習,看看行業頂尖持續學習語義理解框架,如何取得世界多個實戰的SOTA效果?

文章插圖
圖3 ERNIE 1.0 與 BERT 詞屏蔽方式的比較
BERT在預訓練過程中使用的數據僅是對單個字符進行屏蔽 , 例如圖3所示 , 訓練Bert通過“哈”與“濱”的局部共現判斷出“爾”字,但是模型其實并沒有學習到與“哈爾濱”相關的知識,即只是學習到“哈爾濱”這個詞,但是并不知道“哈爾濱”所代表的含義;而ERNIE在預訓練時使用的數據是對整個詞進行屏蔽,從而學習詞與實體的表達,例如屏蔽“哈爾濱”與“冰雪”這樣的詞,使模型能夠建模出“哈爾濱”與“黑龍江”的關系,學到“哈爾濱”是“黑龍江”的省會以及“哈爾濱”是個冰雪城市這樣的含義 。
訓練數據方面 , 除百科類、資訊類中文語料外,ERNIE 1.0 還引入了論壇對話類數據,利用對話語言模式(DLM, Dialogue Language Model)建模Query-Response對話結構,將對話Pair對作為輸入 , 引入Dialogue Embedding標識對話的角色,利用對話響應丟失(DRS, Dialogue Response Loss)學習對話的隱式關系,進一步提升模型的語義表示能力 。
因為 ERNIE 1.0 對實體級知識的學習,使得它在語言推斷任務上的效果更勝一籌 。ERNIE 1.0 在中文任務上全面超過了 BERT 中文模型,包括分類、語義相似度、命名實體識別、問答匹配等任務,平均帶來 1~2 個百分點的提升 。
我們可以發現 ERNIE 1.0 與 BERT 相比只是學習任務 MLM 作了一些改進就可以取得不錯的效果 , 那么如果使用更多較好的學習任務來訓練模型,那是不是會取得更好的效果呢?因此 ERNIE 2.0 應運而生 。ERNIE 2.0 是基于持續學習的語義理解預訓練框架,使用多任務學習增量式構建預訓練任務 。如圖4所示,在ERNIE 2.0中,大量的自然語言處理的語料可以被設計成各種類型的自然語言處理任務(Task),這些新構建的預訓練類型任務(Pre-training Task)可以無縫的加入圖中右側的訓練框架,從而持續讓ERNIE 2.0模型進行語義理解學習,不斷的提升模型效果 。
【一】ERNIE:飛槳開源開發套件,入門學習,看看行業頂尖持續學習語義理解框架,如何取得世界多個實戰的SOTA效果?

文章插圖
圖4 ERNIE 2.0框架
ERNIE 2.0 的預訓練包括了三大類學習任務,分別是:
  • 詞法層任務:學會對句子中的詞匯進行預測 。
  • 語法層任務:學會將多個句子結構重建,重新排序 。
  • 語義層任務:學會判斷句子之間的邏輯關系,例如因果關系、轉折關系、并列關系等 。
通過這些新增的語義任務,ERNIE 2.0語義理解預訓練模型從訓練數據中獲取了詞法、句法、語義等多個維度的自然語言信息,極大地增強了通用語義表示能力 。ERNIE 2.0模型在英語任務上幾乎全面優于BERT和XLNet,在7個GLUE任務上取得了最好的結果;中文任務上,ERNIE 2.0模型在所有9個中文NLP任務上全面優于BERT 。
完成預訓練后,如何用 ERNIE 來解決具體的 NLP 問題呢?下面以單句分類任務(如情感分析)為例,介紹下游 NLP 任務的解決過程:
  1. 基于tokenization.py腳本中的Tokenizer對輸入的句子進行token化,即按字粒度對句子進行切分;
  2. 分類標志符號[CLS]與token化后的句子拼接在一起作為ERNIE模型的輸入,經過 ERNIE 前向計算后得到每個token對應的embedding向量表示;
  3. 在單句分類任務中 , [CLS]位置對應的嵌入式向量會用來作為分類特征 。只需將[CLS]對應的embedding抽取出來,再經過一個全連接層得到分類的 logits 值,最后經過softmax歸一化后與訓練數據中的label一起計算交叉熵,就得到了優化的損失函數;
  4. 經過幾輪的fine-tuning,就可以訓練出解決具體任務的ERNIE模型 。

【一】ERNIE:飛槳開源開發套件,入門學習,看看行業頂尖持續學習語義理解框架,如何取得世界多個實戰的SOTA效果?

文章插圖
關于ERNIE更詳細的介紹 , 可以參考這兩篇學術論文:
  • ERNIE: Enhanced Representation through Knowledge Integration
  • ERNIE 2.0: A Continual Pre-training Framework for Language Understanding
本教程不對預訓練過程作過多展開,主要關注如何使用ERNIE解決下游的NLP任務 。

推薦閱讀