BERT和ERNIE,NLP領域近來最受關注的2大模型究竟怎麼樣?剛剛有人實測比拼了一下,結果在中文語言環境下,結果使人意外又驚喜。具體詳情究竟如何?不妨一塊兒圍觀下這篇技術評測。分佈式
隨着2018年ELMo、BERT等模型的發佈,NLP領域終於進入了「大力出奇跡」的時代。採用大規模語料上進行無監督預訓練的深層模型,在下游任務數據上微調一下,便可達到很好的效果。曾經須要反覆調參、精心設計結構的任務,如今只需簡單地使用更大的預訓練數據、更深層的模型即可解決。性能
隨後在2019年上半年,百度的開源深度學習平臺PaddlePaddle發佈了知識加強的預訓練模型ERNIE,ERNIE經過海量數據建模詞、實體及實體關係。相較於BERT學習原始語言信號,ERNIE直接對先驗語義知識單元進行建模,加強了模型語義表示能力。學習
簡單來講,百度ERNIE採用的Masked Language Model是一種帶有先驗知識Mask機制。能夠在下圖中看到,若是採用BERT隨機mask,則根據後綴「龍江」便可輕易預測出「黑」字。引入了詞、實體mask以後,「黑龍江」做爲一個總體被mask掉了,所以模型不得不從更長距離的依賴(「冰雪文化名城」)中學習相關性。測試
除此以外,百度ERNIE還引入了DLM(對話語言模型)任務,經過這種方式來學習相同回覆對應的query之間的語義類似性。實驗證實DLM的引入對LCQMC(文本類似度計算)系列任務帶來了較大的幫助。最終ERNIE採用多源訓練數據,利用高性能分佈式深度學習平臺PaddlePaddle完成預訓練。spa
到底百度ERNIE模型所引入訓練機制有沒有起到做用,只有實踐了之後才知道。爲此,我親自跑了BERT和ERNIE兩個模型,在下面的幾個場景中獲得了預測結果。設計
2.1 完形填空
完形填空任務與預訓練時ERNIE引入的知識先驗Mask LM任務十分類似。從下圖的比較中咱們能夠看到,ERNIE對實體詞的建模更加清晰,對實體名詞的預測比BERT更準確。例如BERT答案「周家人」融合了類似詞語「周潤發」和「家人」結果不夠清晰;「市關村」不是一個已知實體;「菜菜」的詞邊界是不完整的。ERNIE的答案則可以準確命中空缺實體。token
2.2 NER (命名實體識別)
在一樣爲token粒度的NER任務中,知識先驗Mask LM也帶來了顯著的效果。對比MSRA-NER數據集上的F1 score表現,ERNIE與BERT分別爲93.8%、92.6%。在PaddleNLP的LAC數據集上,ERNIE也取得了更好的成績,測試集F1爲92.0%,比BERT的結果90.3%提高了1.7%。分析兩者在MSRA-NER測試數據中兩者的預測結果。能夠觀察到:圖片
1.)ERNIE對實體理解更加準確:「漢白玉」不是實體類型分類錯誤;深度學習
2.)ERNIE對實體邊界的建模更加清晰:「美國法律所」詞邊界不完整,而「北大」、「清華」分別是兩個機構。it
Case對比:摘自MSRA-NER數據測試集中的三段句子。B_LOC/I_LOC爲地點實體的標籤,B_ORG/L_ORG爲機構實體的標籤,O爲無實體類別標籤。下表分別展示了 ERNIE、BERT模型在每一個字上的標註結果。
2.3 類似度
ERNIE在訓練中引入的DLM能有效地提高模型對文本類似度的建模能力。所以,咱們比較文本類似度任務LCQMC數據集上兩者的表現。從下表的預測結果能夠看出,ERNIE學習到了中文複雜的語序變化。最終ERNIE與BERT在該任務數據的預測準確率爲87.4%、87.0%.
2.4 分類
最後,比較應用最普遍的情感分類任務。通過預訓練的ERNIE可以捕捉更加細微的語義區別,這些句子一般含有較委婉的表達方式。下面展現了PaddleNLP情感分類測試集上ERNIE與BERT的打分表現:在句式「不是很…」中含有轉折關係,ERNIE可以很好理解這種關係,將結果預測爲「消極」。在ChnSentiCorp情感分類測試集上finetune後ERNIE的預測準確率爲95.4%,高於BERT的準確率(94.3%)。
從以上數據咱們能夠看到,ERNIE在大部分任務上都有不俗的表現。尤爲是在序列標註、完形填空等詞粒度任務上,ERNIE的表現尤其突出,不輸給Google的BERT。