title: “ERNIE: Enhanced Representation through Knowledge Integration,Yu Sun 2020 【word represatation+BERT+MASKED stages】”
subtitle: “”
date: 2021-1-18
author: “xuqiurong”
tag:
- language representation
-
摘要:我們提出了一個新的語言表達模型,名為ERNIE(Enhanced Representation through Knowledge Integration)。通過知識masking政策學習語言表達,包括entity-lavel masking和phrase-level masking. 實體級政策遮蔽通常由多個單詞組成。短語級政策遮蔽整個短語,而整個短語是由多個單詞組成的概念單元。
在五個自然語言處理任務上得到了SOTA結果,任務包含natural language processing, semantic similarity, named entity recognition, sentiment analisis, question answering.特别是在完形填空測試中有更強大的知識推理能力。
介紹:這是一篇關于language representation pre-training的文章。
大多數研究中,(ELMO,GPT,BERT…),是通過上下文預測缺失的單詞來建立表征模型的。這些模型沒有考慮句子中的先驗知識。
我們的模型中,a prase or a entity看做one unit,一個單元中的所有word會同時被masked.
我們的貢獻是:介紹了一個新的語言模型學習過程,這個模型遮蔽了prases and entities單元,進而從這些單元中隐式的學習句法和語義資訊。
在多個NLP任務上取得了SOTA的性能。
Related Work
Context-independent Representation
上下文獨立的word embedding方法比如Word2Vec,Glove,通常有幾百維,他們為詞彙表中每一個單詞生成一個word embedding.
Context-aware Representation
但是,一個詞在上下文中可以有完全不同的意義。
上下文感覺的word embedding方法比如:ELMO,GPT,BERT,MT-DNN,GPT-2。
ELMO将傳統的word embedding研究推廣到不同的廣度,他們建議從語言模型中提取上下文敏感的特征。
GPT通過調整transformer來增強上下文敏感的嵌入。
BERT使用兩個不同的預訓練任務進行語言模組化,BERT随機遮蔽句子中一定比例的單詞,并學習預測這些遮蔽詞。另外學會了預測兩個句子是不是相鄰,這個任務嘗試對傳統語言模型不能捕獲的兩個句子之間的關系模組化。
Heterogeneous Data
異構資料
語義編碼器在異構無監督資料上預訓練可以提高transfer learning的性能。
The Method
本章詳細介紹ERNIE和它的具體實作。首先介紹模型的tranformer encoder, 然後介紹knowledge integration方法。
Transformer Encoder
ERNIE使用multi-layer Transformer作為基本編碼器。和GPT,BERT,XLM等模型是一樣的。Transformer通過self-attention可以捕獲句子中的上下文資訊,并且生成一系列上下文embedding。
對于中文語料,我們在CJK Unicode範圍中在每個字元周圍添加空格。用WordPiece來标記中文句子。對于一個給定的token,其輸入表示是通過相應的token, segment, position embedding相加來構造的**(???)**。每個序列的第一個token是特殊的分類embedding (???)。
解釋:WordPiece字面了解是把word拆成piece一片一片,其實就是這個意思。WordPiece的一種主要的實作方式叫做BPE(Byte-Pair Encoding)雙位元組編碼。
BPE的過程可以了解為把一個單詞再拆分,使得我們的此表會變得精簡,并且寓意更加清晰。
比如"loved",“loving”,“loves"這三個單詞。其實本身的語義都是“愛”的意思,但是如果我們以單詞為機關,那它們就算不一樣的詞,在英語中不同字尾的詞非常的多,就會使得詞表變的很大,訓練速度變慢,訓練的效果也不是太好。
BPE算法通過訓練,能夠把上面的3個單詞拆分成"lov”,“ed”,“ing”,"es"幾部分,這樣可以把詞的本身的意思和時态分開,有效的減少了詞表的數量。
BPE的大概訓練過程:首先将詞分成一個一個的字元,然後在詞的範圍内統計字元對出現的次數,每次将次數最多的字元對儲存起來,直到循環次數結束。
參考例子了解
Knowledge Integration
我們使用先驗知識增強我們的預訓練語言模型。和直接添加知識embedding不同,我們提出多階段知識遮蔽政策來內建phrase and entity level 知識到語言表達。
一個句子不同level的知識表達如圖2.
-
Basic-Level Masking
第一階段是使用基本級遮蔽,他把一個句子當做一個基本的語言單元序列,對于英語來說,基本的語言單元是一個單詞,對于中文,一個基本的語言單元是一個文字。在訓練過程中,我們随機遮蔽句子15%的units, 用句子中其他基本單元作為輸入,然後訓練一個transformer預測遮蔽的units。基于基本級遮蔽,我們得到一個基本的單詞表達。因為它是訓練在一個随機遮蔽的基本語義單元,進階語義知識很難模組化。
-
Phrase-Level Masking
第二階段采用短語級遮蔽。短語是指一組單詞/文字一起作為一個概念單元,對于英語來說,我們使用詞彙分析和分塊工具來擷取句子中的短語邊界,并且使用一些語言依賴分割工具來擷取其他餘元中的單詞/短語資訊,比如中文。在短語級遮蔽階段,我們也使用基本語言單元作為訓練輸入,不像随機基本單元遮蔽,這次我們在句子中随機挑選一些短語,遮蔽和預測同一個短語中的所有基本單元。
-
Entity_Level Masking
第三個階段是實體級遮蔽。命名實體包括persons, locations, organizations, products…,可以用一個适當的名字表示,它可以是抽象的,也可以是實體存在的,通常實體包含句子中的重要資訊。像在短語遮蔽階段一樣,我們首先**分析(怎麼分析的???)**句子中的命名實體,然後遮蔽和預測實體中所有有slots。經過三個階段的學習,一個單詞的表示被豐富的語義資訊增強。
Experiments
ERNIE和BERT有相同的模型大小,便于比較。ERNIE使用12 encoder layer, 178 hidden units,12 attention heads.
異構語料預訓練
本文采用異構語料進行預訓練,我們繪制混合的語料Chinese Wikipedia, Baidu Baike, Baidu news, Baidu Tieba. 句子的數量是21M, 51M, 47M, 54M。
NLP任務上的實驗
-
NLI
XNLI語料是MultiNLI語料庫的衆包集合,成對的标注被翻譯為14種語言,包括中文,labels包括:沖突,中性,蘊含,我們遵循BERT中的中文實驗。
-
Semantic Similarity
大規模中文問題比對語料庫(LCQMC)旨在識别兩個句子是不是有相同的意圖。資料集中的沒對句子都與一個二進制label關聯,表明這兩個句子有相同的意圖,任務可以形式化為預測二進制标簽。
-
NER
MSRA-NER資料集用于NER任務,其中的實體包類型包括person, place, organization,…,這個任務可以看做是序列标注任務。
-
Sentiment Analysis
ChnSentiCorp是判斷句子感情的資料集,它包括幾個領域的評論比如,飯店,書籍,電子計算機,這個任務的目标是判斷一個句子是正面的還是負面的。
-
檢索問答問題
NLPPCC-DBQA資料集是選擇相應問題的答案,評估方法包括MRR和F1分數。
實驗結果
可以看出ERNIE的效果在所有的任務上優勝于BERT,而且在XNIL,MSRA-NER,ChnSentiCorp,nlpcc-dbqa,大約提高了1%的精确度。
![在這裡插入圖檔描述](https://img-blog.csdnimg.cn/20210118152121363.png#pic_center ==500x)
Summary
模型的encoder h部分個BERT是一樣的。
模型不是直接将embedding喂入模型,而是分三個階段masked,增強語義資訊。
分析命名實體的時候怎麼分析的??? 上一個階段訓練出的單詞表達怎麼用于下一個階段???