©原創作者 | 瘋狂的Max
論文CoLAKE: Contextualized Language and Knowledge Embedding 解讀
01 背景與動機
隨著預訓練模型在NLP領域各大任務大放異彩,一系列研究都致力於將外部知識融入大規模預訓練模型,比如ERNIE[1]和KnowBERT[2],然而這些模型的侷限性可以總結為以下三個方面:
(1)entity embedding都是通過一些knowledge embedding(KE) models,比如用TransE[3],預先提前訓練好的。因此模型並不是一個真正的同步訓練知識表徵和語言表徵的綜合模型;
(2)只利用了知識圖譜中的entity embedding來提升預訓練模型,很難完全獲取的知識圖譜中一個實體豐富的上下文資訊。因此對應的效能增益也就侷限於預先訓練好的 entity embedding的質量。
(3)預訓練好的entity embedding是固定的,並且在知識圖譜稍作改變時都需要重新訓練。針對這三點侷限,本文作者提出一種CoLAKE模型,通過改造模型的輸入和結構,沿用預訓練模型的MLM目標,對語言和知識的表徵同時進行同步訓練,將其統一在一個一致的表徵空間中去。不同於前人的模型,CoLAKE根據知識的上下文和語言的上下文動態的表徵一個實體。
為了解決非結構化文字與知識之間的異構性衝突,CoLAKE將兩者以一種統一的資料結果將兩者整合起來,形成word-knowledge graph,將其作為預訓練資料在改造後的Transformer encoder模型上進行預訓練。
除此之外,CoLAKE擴充了原始BERT的MLM訓練任務,也就是將掩碼策略應用的word,entity,relation節點上,通過WK graph未被掩蓋的上下文和知識來預測掩蓋的節點。
作者在GLUE和一些知識導向的下游任務上進行了實驗,結果證明CoLAKE在大多數任務上都超越了原始的預訓練模型和其他融合知識圖譜的預訓練模型。
總結起來,CoLAKE有以下三個亮點:
(1)通過擴充套件MLM訓練任務同步學習到了帶有上下文的語言表徵和知識表徵。
(2)採用WK graph的方法融合了語言和知識的異構性。
(3)本質上是一個預訓練的GNN網路,因此其結構性可擴充套件。
02 模型方法
CoLAKE在結構化的、無標籤的word-knowledge graphs的資料上對結合了上下文的語言和知識表徵進行聯合的、同步的預訓練。其實現方法是先構造出輸入句子對應的WK graphs,然後對模型結構和訓練目標稍作改動。具體實現如下:
①構造WK graphs
先對輸入的句子中的mention進行識別,然後通過一個entity linker找到其在特定知識圖譜中對應的entity。Mention結點被替換為相應的entity,被稱作anchor nodes。
以這個anchor node為中心,可以提取到多種三元組關係來形成子圖,提取到的這些子圖和句子中的詞語,以及anchor node一起拼接起來形成WK graph,如下圖 Figure 2所示。
實際上,對於每個anchor node,作者隨機玄奇最多15個相鄰關係和實體來構建WK graph,並且只考慮anchor node在三元組中是head的情況。
②模型結構改動
接下來構建好的WK graph進入Transformer Encoder,CoLAKE對embedding層和encoder層都做了相應的改造。
Embedding Layer:輸入的embedding是token embedding,type embedding和position embedding的加和。
其中,token embedding,需要構建word、relation和entity三種型別的查詢表。
對於word embedding,採用Roberta一樣的BPE的分詞方法,將詞語切割為字詞用以維護大規模的詞典。相應的,對每一個entity和relation就沿用一般的知識巢狀方法一樣來獲取對應的embedding。
然後輸入中token embedding則是由word embedding,entity embedding, relation embedding拼接起來,這三者是同樣維度的向量。
因為WK graph會將原本的輸入以token為單位進行重組,因此輸入的token序列會看起來像是一段錯亂的序列,因此需要對應修正其type input和position input。
其中對於每個token,其同一對應的type會用來表徵該token對應的node的型別,比如是word,entity或者是relation;對應的position也是根據WK graph賦予的。下圖給出了一個具體的例子進行說明:
可以看出,模型的改動就是在計算注意力矩陣的時候,對於沒有關聯的節點加上了負無窮,使得兩者不可見,以這種方式體現出WK graph的結構。
③訓練目標
MLM是指隨機的掩蓋掉輸入中的某些詞,讓模型預測掩蓋掉的詞是什麼。而CoLAKE就是將MLM從詞序列擴充到了WK graphs。
作者隨機掩蓋15%的節點,80%的時間用[MASK]替代,10%的時間隨機替換成同型別的其他節點,10%時間不做任何改變。
通過掩蓋詞語,關係和實體三種不同的結點,能從不同角度幫助模型更好的同時學習到語言本身和知識圖譜中的知識,並且對齊語言和知識的表徵空間。
同時,作者提到在預測anchor node的時候,模型可能會更容易藉助知識上下文而不是語言上下文,因為後者的多樣性和學習難度更大。為了規避這個問題,作者在預訓練時在50%的時間裡丟棄了anchor nodes的相鄰節點,從而減少來自知識圖譜的幫助。
03 實驗結果
CoLAKE模型在知識導向類任務(entity typing和relation extraction任務)上表現都超越了其他融合知識圖譜的預訓練模型,實驗結果如下圖所示:
同時,CoLAKE在語言理解類的任務(GLUE)[4]上表現與未加入知識圖譜的Roberta模型相當,且優於同樣用Roberta初始化訓練KEPLER模型效果(加入了知識圖譜的KEPLER在語言理解類任務上效果會變差的更為明顯),實驗結果如下圖所示。
因此由此得出結論,CoLAKE可以通過異構的WK graph同時模型化文字和知識。
總而言之,文中的實驗結果表明CoLAKE可以在知識導向的任務上提升模型效能,並且在語言理解類任務上獲得與原本的預訓練模型相當的效果。
另外,作者還設計了一個word-knowledge graph completion的任務來探索CoLAKE在模型化結構特徵上的能力,分別通過直推式的設定和歸納式的設定來進行任務訓練,輸出是三元組中的實體或者關係。簡單來說就是,通過輸入三元組
直推式的設定指h,r,t都分別出現在訓練集中,但是這個三元組組合沒有出現在訓練集中;歸納式的設定是指h和t至少有一個實體並未出現在訓練集中。
作者也將CoLAKE與常見的集中知識圖譜巢狀訓練的模型進行了效果比較,如下圖所示,效果也是趕超了其他知識圖譜巢狀模型。
04 結論和未來研究方向
CoLAKE模型實現了非結構化的語言表徵和結構化的知識表徵同步綜合訓練。其通過一種統一化的資料結構word-knowledge graph實現了語言上下文和知識上下文的融合。實驗結構表明CoLAKE模型在知識導向類NLP任務上的有效性。
除此之外,作者還通過設計一種WK graph complication的任務來探索了WK graph的應用潛力和未來的研究方向:
(1)CoLAKE可以用於關係抽取中遠距離標註樣例的去噪。
(2)CoLAKE可以用於檢測graph-to-text模板的效果。
參考文獻
[1] Zhengyan Zhang, Xu Han, Zhiyuan Liu, Xin Jiang, Maosong Sun, and Qun Liu. 2019. ERNIE: enhanced language representation with informative entities. In ACL, pages 1441–1451
[2]Matthew E. Peters, Mark Neumann, Robert L. Logan IV, Roy Schwartz, Vidur Joshi, Sameer Singh, and Noah A.
Smith. 2019. Knowledge enhanced contextual word representations. In EMNLP-IJCNLP, pages 43–54.
[3]Antoine Bordes, Nicolas Usunier, Alberto Garc´ıa-Dur´an, Jason Weston, and Oksana Yakhnenko. 2013. Translating embeddings for modeling multi-relational data. In NIPS.
[4]Alex Wang, Amanpreet Singh, Julian Michael, Felix Hill, Omer Levy, and Samuel R. Bowman. 2019a. GLUE: A multi-task benchmark and analysis platform for natural language understanding. In ICLR.