論文題目:
ERNIE: Enhanced Language Representation with Informative Entities(THU/ACL2019)
本文的工作也是屬於對BERT錦上添花,將知識圖譜的一些結構化信息融入到BERT中,使其更好地對真實世界進行語義建模。也就是說,原始的bert模型只是機械化地去學習語言相關的“合理性”,而並學習不到語言之間的語義聯系,打個比喻,就比如掉包xia只會掉包,而不懂每個包里面具體是什么含義。於是,作者們的工作就是如何將這些額外的知識告訴bert模型,而讓它更好地適用於NLP任務。
但是要將外部知識融入到模型中,又存在兩個問題:
- Structured Knowledge Encoding: 對於給定的文本,如何高效地抽取並編碼對應的知識圖譜事實;
- Heterogeneous Information Fusion: 語言表征的預訓練過程和知識表征過程有很大的不同,它們會產生兩個獨立的向量空間。因此,如何設計一個特殊的預訓練目標,以融合詞匯、句法和知識信息又是另外一個難題。
為此,作者們提出了ERNIE模型,同時在大規模語料庫和知識圖譜上預訓練語言模型:
- 抽取+編碼知識信息: 識別文本中的實體,並將這些實體與知識圖譜中已存在的實體進行實體對齊,具體做法是采用知識嵌入算法(如TransE),並將得到的entity embedding作為ERNIE模型的輸入。基於文本和知識圖譜的對齊,ERNIE 將知識模塊的實體表征整合到語義模塊的隱藏層中。
- 語言模型訓練: 在訓練語言模型時,除了采用bert的MLM和NSP,另外隨機mask掉了一些實體並要求模型從知識圖譜中找出正確的實體進行對齊(這一點跟baidu的entity-masking有點像)。
如上圖,整個模型主要由兩個子模塊組成:
- 底層的textual encoder (T-Encoder),用於提取輸入的基礎詞法和句法信息,N個;
- 高層的knowledgeable encoder (K-Encoder), 用於將外部的知識圖譜的信息融入到模型中,M個。
knowledgeable encoder
這里T-encooder跟bert一樣就不再贅述,主要是將文本輸入的三個embedding加和后送入雙向Transformer提取詞法和句法信息:

K-encoder中的模型稱為aggregator,輸入分為兩部分:

接着利用multi-head self-attention對文本和實體分別處理:

然后就是將實體信息和文本信息進行融合,實體對齊函數為

:

最終的輸出為最頂層的Aggregator的token embedding和entity embedding。
改進的預訓練
除了跟bert一樣的MLM和NSP預訓練任務,本文還提出了另外一種適用於信息融合的預訓練方式,denoising entity auto-encoder (dEA). 跟baidu的還是有點不一樣,這里是有對齊后的entity sequence輸入的,而百度的是直接去學習entity embedding。dEA 的目的就是要求模型能夠根據給定的實體序列和文本序列來預測對應的實體:

微調
為了使得模型可以更廣泛地適用於不同的NLP任務,作者也學習BERT設計了不同的特殊的token:
- 【CLS】:該token含有句子信息的表示,可適用於一般任務
- 【HD】和【TL】:該token表示關系分類任務中的頭實體和尾實體(類似於傳統關系分類模型中的位置向量),然后使用【CLS】來做分類; 【ENT】:該token表示實體類型,用於entity typing等任務。
