1. 程式人生 > 其它 >一文帶你瞭解知識圖譜融入預訓練模型哪家強?九大模型集中放送

一文帶你瞭解知識圖譜融入預訓練模型哪家強?九大模型集中放送

©原創作者 | 瘋狂的Max

01 預訓練模型與知識圖譜

1.預訓練模型

近年來,隨著語言模型的技術發展,其在NLP領域獲得巨大的成功,業界SOTA的前沿模型也大多是Transformer結構模型的變體。

Transformer結構模型使用注意力機制來獲取文字中長距離字元間的依賴關係,包括對其進行優化的Transformer XL,BERT使用的MLM模型和XLNET使用的PLM模型。

這種型別的模型對語法知識進行編碼,同時在一定程度上擴充套件了非結構文字中蘊含的語義知識,比如有論文證實了BERT模型在編碼過程中獲取了句法樹的知識[5],也就解釋了為什麼這些預訓練模型能夠在語法相關的下游任務上表現良好。

2.知識圖譜

知識圖譜的概念誕生於2012年,由Google公司首先提出。知識圖譜的提出是為了準確地闡述人、事、物之間的關係,最早應用於搜尋引擎。

知識圖譜在不同應用場景和技術範疇內,定義有所不同,但在自然語言處理視角下,知識圖譜可以看做從文字中抽取語義和結構化的資料。

簡單來說,知識圖譜可以被定義為一種用於表示現實世界知識的圖形式的資料,其中的每個節點代表一種實體或屬性,連線節點的邊表示兩節點的關係[3]。

簡單理解,可以將知識圖譜看做是若干三元組的集合,這些三元組在某個知識領域範疇內表示著各個實體概念之間錯綜複雜的關係。

這些知識圖譜既可以是來自於現實世界的常識類知識圖譜,如下圖1所示[2]。也可以是基於語言學知識構建的單詞圖譜,如WordNet[4],這是一個覆蓋範圍寬廣的英語詞彙語義網,反映了詞語之間同義詞,反義詞,上下位詞等關係,如下圖2 所示。

圖1 常識概念類的知識圖譜示例

圖2 WordNet示例

3.將知識圖譜融入預訓練模型

正如前文提到,預訓練模型在一定程度上可以從非結構化的文字資訊中獲取知識,而知識圖譜可以看做從文字中抽取語義和結構化的資料,那麼可以預想這兩者的結合對於提升模型效果將有極大研究價值和探索空間。

但如何將兩者有效的結合起來,也激發了許多研究者的興趣。是否有通用的融合方式使得可以在任何型別的業務場景下或者是下游任務中,都能有效提升模型效果?或者在某些特定條件下,需要針對不同的垂直領域,對融合方式進行實驗調整和選擇?本文接下來將對一系列將知識圖譜融入預訓練模型的研究進行介紹,並歸納總結。

02 知識圖譜融入預訓練模型的三種方式[3]

由於知識圖譜是以圖的形式表示實體關係,因此需要對其進行轉換和改造,以融入預訓練模型中,可以將融合方式分為三種類型:改造模型輸入的融合方式、改造模型結構的融合方式和改造模型輸出的融合方式[3]。

接下來介紹的一系列研究中,可能是採取其中一種融合方式,或者幾種融合方式相結合。

1. 改造模型輸入的融合方式(input injection)

這種融合方式被定義為對進入預訓練模型的輸入進行改造,既包括在預處理階段將知識圖譜的三元組知識融入到輸入資料中,也包括將輸入中實體的embedding和輸入本身的embedding結合起來的方式。

無論是以哪種技術實現,只要是對輸入模型的資料進行了與知識圖譜相關的改造或結合,都被劃分為改造模型輸入的融合方式。

2. 改造模型結構的融合方式(architecture injection)

通過改造預訓練模型結構的方式來融合外部知識,這種融合方式包括在原有預訓練模型的層結構之間加入額外的層或者在最終層之後新增額外的層。

3. 改造模型輸出的融合方式(output injection)

通過改造模型的預訓練或微調任務,這種改造是基於知識圖譜構建的,可以理解為隱性的通過訓練模型去適應蘊含知識圖譜知識的任務來實現知識圖譜的融入,這也包括了對損失函式的重新定義。

以上三種融入方式在整個預訓練模型中的流程如下圖3所示:

圖3 知識圖譜融入預訓練模型的三種方式

03 知識圖譜融入預訓練的一系列模型

本文除了從融入方式對模型進行歸納,還將從以下幾個維度對每種介紹的模型進行歸納總結:使用的知識圖譜型別,是否使用知識圖譜巢狀,是否在pre-training和fine-tuning階段融入知識圖譜。

1.K-ADAPTER: Infusing Knowledge into Pre-Trained Models with Adapters

1)論文地址:
https://arxiv.org/pdf/2002.01808.pdf

2)融入方式:architecture injection + output injection

3)使用的知識圖譜:Wikipedia(常識類),dependency parse(語法類)

4)是否使用知識圖譜巢狀:

5)是否在pre-training和fine-tuning階段使用知識圖譜的融入:fine-tuning

6)模型的介紹說明

K-ADAPTER通過一種靈活且簡單的框架將多種知識圖譜融入預訓練模型中,保留原本的預訓練模型引數不變,通過在預訓練模型的中間層之外加入額外的模型結構。

整體的模型框架如下圖所示。圖(a)是之前大部分通過注入知識圖譜相關的多工學習來更新整個模型引數的框架,圖(b) 是K-ADAPTER通過知識介面卡引入知識的框架。

具體來說,K-ADAPTER保留了預訓練模型原本的引數,使其引數固定,在融入某一種知識的時候,只更新對應的adapter,從而產出不同知識對應的不相互混淆的模型輸出。這些不同的adapter結構是在預訓練模型的之外的,可以插入和抽取。

其輸入是預訓練模型中間層的隱層輸出結構,這就使得每一個adapter在不同的任務上可以對應融入不同的外部知識,並保證原本的預訓練模型的引數是被凍結,不被更新的。

 

具體來說,每個知識圖譜對應一種adapter,每個adapter包含K個adapter層,分別插入到預訓練模型原本的不同的transformer層之間。而這中間的每個adapter層由N 個transformer層,2 個對映層和1 個殘差連線組成,如下圖所示:

 

每個adapter層連線到預訓練模型中不同的transformer層上。其中,每個adapter層的輸入為:當前adapter層的輸入為連線的 transformer層隱藏層的輸出和前一個adapter層的輸出,這兩個表示進行拼接之後進入adapter層。

而整個K-ADAPTER模型的輸出為:將預訓練模型最後一層的隱藏層輸出和最後一個adapter層的輸出,進行拼接作為最終的輸出。

文中,作者用RoBERTa作為基礎預訓練模型,共計335M引數。

在其第0層、11層、23層的transformer層之後加入adapter層,每個adapter層中的transformer層數 、隱層維度和自注意力頭為2,768,12,兩個對映層維度分別是 1024 和 768。

並且,不同的adapter層之間不共享引數,最終一種adapter包含的引數量為42M。

作者融入了兩種型別的知識圖譜:一種是維基百科三元組構成的知識圖譜,另一種是基於句法依存的語法類知識圖譜。

訓練好的模型在relation classification,entity typing和question answering這3個知識導向的下游任務上效果都優於RoBERTa,由此可見K-ADAPTER所做的改進是有效的。

7)優點及缺點:

優點:①只需要更新少量引數,訓練效率高;②支援持續的多種知識的融入,並且新融入的知識不會對舊知識學習到的引數產生影響。

缺點:並沒有對如何針對不同的知識設計不同的訓練任務進行探索和說明,模型在實際業務場景中的效果不可知。

2. KT-NET: Enhancing Pre-Trained Language Representations with Rich Knowledge for Machine Reading Comprehension

1)論文地址:https://aclanthology.org/P19-1226.pdf

2)融入方式:architecture injection

3)使用的知識圖譜:WordNet(語法類),NELL(常識類)

4)是否使用知識圖譜巢狀:

5)是否在pre-training和fine-tuning階段使用知識圖譜的融入:fine-tuning

6)模型的介紹說明:

KT-NET將注意力機制應用到對知識圖譜內知識抽取中,並將其融入BERT預訓練模型,從而提升知識相關的MRC下游任務效果。KT-NET的模型架構如下圖所示。

 

①BERT Encoding Layer:模型的輸入經過預訓練好的BERT模型,得到最後一層的隱層向量表示,即圖中所示的BERT vector,而輸入的文字內容裡面會抽取出對應的實體,這個實體通過BILINEAR model得到對應的知識圖譜中每個實體的知識表示,即圖中所指的KB embedding;

②Knowledge integration layer:通過注意力機制將BERT Vector與KB embedding做融合;

③Self-matching layer:通過雙層的自注意力機制進一步融合BERT和KB的表示;

④將幾種知識圖譜對應的輸出結果做拼接後進入最終預測層。該模型在MRC任務上表現超過SOTA效果。

7)優點與缺點:

優點:可以同時融合多種知識圖譜,對與知識相關的MRC任務提升效果明顯

缺點:模型的效果可能與提取KB embedding的模型有關,並且沒有考慮KB embedding和BERT vector是通過不同的模型進行對映得到,兩者之間存在gap,直接用attention機制融合的合理性還有待進一步探究。

3. KnowBERT:Knowledge Enhanced Contextual Word Representations

1)論文地址:
https://arxiv.org/pdf/1909.04164v2.pdf

2)融入方式:architecture injection + output injection

3)使用的知識圖譜:WordNet(語法類),Wikipedia(常識類)

4)是否使用知識圖譜巢狀:

5)是否在pre-training和fine-tuning階段使用知識圖譜的融入:pre-training + fine-tuning

6)模型的介紹說明[6]:

KnowBERT通過在BERT的原始模型兩層之間加入KAR層結構來注入知識圖譜資訊。同時利用了輸入文字抽取的span之間,span和entity之間,entity之間的attention來實現互動計算,進一步將知識圖譜的資訊融入到模型中去。

其主要思想是要在輸入文字中顯式建模實體跨度(Entity spans),並使用實體連結器(Entity Linker)從KB中檢測mention、檢索相關的實體嵌入(Entity embeddings),以形成知識增強的實體跨度表示形式。

然後使用word-to-entity attention將單詞的表示重新上下文化,以攜帶全部的實體資訊。

具體的實現步驟是,首先需要對輸入的文字中的實體進行抽取並或獲取其embedding。

其中檢測mention的方法用到了共指消解,在此不再詳細介紹,KnowBERT的作者也是直接使用其他研究的技術方法,有興趣的讀者可以對本文進行精讀研究其實現。

得到mention之後,就需要獲取對應的entity embedding,對於不同的知識圖譜,做法不完全一致,WordNet採用TuckER的技術獲取200維嵌入,而對於Wikipedia,作者在實驗部分介紹到他們使用doc2vec的方式直接從Wikipedia描述中學習Wikipedia頁面標題的300維嵌入,對於兩種融合在一起的資料庫作者也介紹了他們使用的方法。

值得注意的是,訓練時entity embedding的引數是凍結的,模型訓練只會更新BERT結構和加入KAR結構的引數。

接下來,作者通過在BERT的原始模型兩層之間加入KAR結構,如下圖所示:

 

①為了與Entity Embedding維度一致,對來自BERT層的隱層向量進行一個線性投射,得到

 

如下圖公式所示:

 

②使用之前提到過的共指消解的方法,檢測到Prince、Purple Rain和Rain這三個mention,並進行了消解,得到了消解後的編碼S。

③對於第②步得到的S,通過一個多頭self-attention,使得mention可以獲得全域性資訊,得到

 

 

④之前提到的Entity Linker,作者希望通過訓練得到一個可以將mention正確連線到對應實體embedding的聯結器。因此對每個mention對應的候選實體列表中的實體embedding通過以下公式依次打分。

 

對於對應的ground truth,也就是這個mention所應該真正對應的實體,也就可以對聯結器進行訓練。loss使用的是這兩個當中的之一:

 

 

無論使用哪種損失,都是為了讓ground truth對應的打分應該高。Max-margin loss還希望除了ground truth的其他打分應該比較低。

 

⑥對第⑤步的結果通過一個多頭attention之後再進行對映,得到的結果再進行一個殘差連線得到最終結果,如下圖兩公式所示:

 

 

KnowBert作者在實驗結果中表明其引數量只比BERT-base多一點,但效果與BERT-large相當。

7)優點與缺點:

優點:①不針對特定任務,對任何下游任務都可以fine-tune;②模型輕量,只在原有預訓練模型的基礎上增加了少量的引數

缺點:需要更新預訓練模型的全部引數,訓練速度較慢

4. K-BERT: Enabling Language Representation with Knowledge Graph

1)論文地址:
https://arxiv.org/pdf/1909.07606v1.pdf

2)融入方式:input injection + architecture injection

3)使用的知識圖譜:CN-DBpedia(常識類)、HowNet(語法類)、MedicalKG(特定領域)

4)是否使用知識圖譜巢狀:

5)是否在pre-training和fine-tuning階段使用知識圖譜的融入:fine-tuning

6)模型的介紹說明[7]:

針對文字中的詞嵌入向量和從知識圖譜中實體的詞嵌入向量的向量空間不一致的問題和過多引入知識圖譜知識造成噪音的問題,K-BERT提出用soft-position和visible matrix在BERT模型中引入外部知識。其整體模型框架如下圖所示:

 

整體的模型框架分為四個模組:knowledge layer,embedding layer,seeing layer和mask-transformer。

對於輸入的句子,knowledge layer先融入從知識圖譜中抽取的該句子的相關三元組,將原始的句子轉換為蘊含有知識圖譜知識的句子樹。

這個句子樹同時進入embedding layer和seeing layer,然後再分別輸出對應的token-level embedding representation和visible matrix。

這個visible matrix用於控制每個token可見的區域,防止因為過多的外部知識注入導致原本句子語義的改變。具體每一個模組的計算細節為:

①knowledge layer:給定一個輸入的句子

 

通過知識圖譜的knowledge query得到一個句子中對應實體的三元組集合

 

然後這個集合注入到原本的句子s中,從而得到一個句子樹,如下圖所示:

 

②embedding layer:通過①得到到的句子樹,需要通過embedding layer輸出對應的embedding presentation。

與BERT相似,K-BERT的embedding也是token embedding,position embedding和segment embedding三者相加,其不同在於K-BERT的輸入是句子樹而不是原始句子。

因此,如何將句子樹轉變成一個句子是K-BERT的關鍵。

正如下圖Figure 2上部分token embedding所示,原本的句子“Tim Cook is currently visiting Beijing now”經過句子樹的轉換,輸入變成“Tim Cook CEO Apple is visiting Beijing capital China is a City now”。

這個句子會產生對應的token embedding,同時這個重組後的輸入對應的position embedding也會相應做出調整。

如下圖Figure 2中Sentence tree部分所示,如果按照BERT原本的position進行標註,就是黑字對應顯示每個token的位置,而K-BERT用soft-position index來產出position index,就使得句子中三元組對應的分支是互不影響的,通過這樣的index標註來告訴模型句子正確的語義順序。

同時,從Figure 2中可以看到,因為三元組的融入,存在位置不同編碼相同的問題,解決的方案是用後面會提到的Mask-Self-Attention來解決。

而K-BERT的segment embedding部分與BERT一致,在這裡不再贅述。

 

③seeing layer:正如前文提到的,K-BERT引入KG可能造成noise問題,於是seeing layer層的作用就是通過一個visible matrix來限制詞與詞之間的聯絡。如果兩個詞是來自統一分支,那麼兩者是可見的,反之不可見,可以用以下公式表示:

 

④mask-transformer:從某種角度來說,visible matrix M在一定程度上蘊含了句子樹的結構化資訊,而BERT模型本身的transformer encoder裡面是不能直接將visible matrix M作為輸入計算的(因為本身的mask計算是正常句子輸入進行self-attention計算,輸入改變了,但是attention計算方式不變當然是不合理的)。

因此,K-BERT中的將其修正為了Mask-Tranformer,用以限制visible matrix M決定的self-attention的計算區,本質上就是mask-self-attention塊的堆疊。

對於一個visible matrix M,相互可見的紅色點取值為 0,相互不可見的白色取值為負無窮,如下圖所示:

 

然後把 M 加到計算 self-attention 的 softmax 函式裡即可,即如下公式:

 

 

以上公式只是對 BERT 裡的 self-attention 做簡單的修改,多加了一個 M,其餘並無差別。

以上就是K-BERT的整個模型改進和輸入改進的流程。總的來說,K-BERT除了soft position和visible matrix,其餘結構均與 Google BERT 保持一致,這就讓其能夠相容所有BERT 類的模型引數包括Roberta,Electra,ERNIE,MacBERT等,理論上將,這樣的增益就可以在更好效果的預訓練模型上可以進一步提升模型效果。

7)優點與缺點:

優點:與原始的BERT模型相相容,消除了預訓練模型產出的representation與知識圖譜之間對映的向量空間不一致問題;通過visible matrix解決knowledge noise的問題。

缺點:fine-tuning一次只能融入一種知識圖譜知識。

5.清華ERNIE: Enhanced Language Representation with Informative Entities

1)論文地址:
https://aclanthology.org/P19-1139.pdf

2)融入方式:architecture injection + output injection

3)使用的知識圖譜:Wikipedia

4)是否使用知識圖譜巢狀:

5)是否在pre-training和fine-tuning階段使用知識圖譜的融入:pre-taining + fine-tuning

6)模型的介紹說明:

清華ERNIE通過同時在大規模的非結構化的文字語料資料和知識圖譜上對模型進行預訓練以增強僅僅只吸收了非結構化文字資訊的預訓練模型。

概括來講,就是通過改造BERT原本的模型結構,直接在模型中注入知識圖譜資訊,同時改造預訓練的目標任務,通過任務的方式隱性的讓模型學習到更多知識圖譜的知識。

①模型結構的改進:ERNIE由兩種Encoder組成,分別是T-Encoder以及K-Encoder,其中T-Encoder主要是進行輸入文字的encoder,提取的是詞法以及語義的資訊,跟原本的BERT模型的encoder層結構一樣,共N層;而K-Encoder用來對來自知識圖譜entity embedding進行融合,共M層。如下圖所示:

 

論文中M和N都取值為6,總共加起來12層,與正常的BERT模型一致,並且在進行預訓練時,模型引數可以直接用訓練好的BERT模型引數進行初始化,作者也是這麼做的。

 

K-Encoder每層(文中稱為aggregator)的具體實現可見上圖 Figure 2的右邊部分,進入的token embedding和entity embedding各自經過一個multi-head self-attention,得到的結果再進行information fusion來實現token序列和entity序列的互動融合,計算出融合後的每個token和entity的output embedding。對於每個token和其對應的entity,其資訊融合流程如下:

 

本質上就是通過線性對映和啟用函式組合起來的dense層之後再對映加和對映,本文中的啟用函式使用的是GELU。而對於沒有對應的entity的token,計算流程如下:

 

第i個aggregator得到的token embedding序列和entity embedding序列一次進入下一個aggregator,最頂層的aggregator得到的output用於連線後續的訓練任務。

②訓練任務的改進:除了跟預訓練模型一樣的MLM和NSP任務外,類似於[8]研究者提出的訓練一個denoising auto-encoder,ERNIE提出了一種denoising entity auto-encoder(dEA)訓練目標進一步隱性的讓模型更好的學習到知識圖譜的知識。

主要的做法是隨機mask一些token-entity alignments 然後要模型根據aligned tokens 去預測entities 。

同時考慮到有可能存在錯誤的token-entity alignmnent,類似MLM,具體操作為:5%的概率對一個token-entity alignment隨機替換entity,讓模型預測正確的entity;15%的概率隨機mask掉 token-entity alignment,讓模型去正確預測token-entity alignment;剩下80%概率,token-entity alignment不變,讓模型將知識進行融合。

7)優點與缺點:

優點:可以相容原版的BERT模型;個人認為還可以在此基礎上通過concatenate的方式融合多種知識圖譜知識。

缺點:模型結構過於複雜;效果可能強依賴於抽取實體的精準度。

6.BERT-MK: Integrating Graph Contextualized Knowledge into Pre-trained Language Models

1)論文地址:
http://staff.ustc.edu.cn/~tongxu/Papers/Bin_EMNLP20.pdf

2)融入方式:architecture injection + output injection

3)使用的知識圖譜:UMLS(medical KG)

4)是否使用知識圖譜巢狀:

5)是否在pre-training和fine-tuning階段使用知識圖譜的融入:pre-training + fine-tuning

6)模型的介紹說明:

BERT-MK的作者指出知識圖譜表徵的一般做法知識將圖譜中的三元組作為一個單獨的訓練單元而沒有利用整個圖譜的上下文資訊。

為了更有效的利用圖級別的知識,BERT-MK提出了在預訓練模型融入知識圖譜知識時,增加一個GCKE模組,同時加入訓練,使得知識圖譜獲取entity embedding的時候考慮到了整個圖譜的上下文資訊,從而更好的挖掘和利用到蘊含在知識圖譜中的知識。

BERT-MK模型的整體架構跟上文提到的ERNIE模型一致,ERNIE entity embedding是通過知識圖譜用TransE模型直接獲取的,而BERT-MK則設計了GCKE模組對entity embedding進行訓練獲得。

具體模型的結構和實現可以也分為兩部分,第一部分用來提取蘊含在知識圖譜的上下文資訊,第二部分將知識圖譜知識融入預訓練模型中如下圖Figure 3所示。

 

其中第二部分也就是跟ERNIE的T-ENCODER+K-ENCODER結構一樣,讀者可以細度ERNIE的模型介紹。對於第一部分,也就是BERT-MK的主要工作,具體分為兩個步驟:

①subgraph conversion:通過如下的演算法抽取知識圖譜中的子圖:

 

通過以上演算法原理的得到每句輸入對應的子圖結構與原本的句子進行充足,生成加入了知識圖譜三元組資訊的一個句子序列,這個思路與K-BERT的輸入改造相似,讀者可以對照閱讀前文對K-BERT的解說,具體實現流程可以參見下圖Figure 2:

 

②GCKE:通過subgraph conversion對輸入進行重組之後,再進入GCKE模組,這個模組由L層組成,並將最終的頂層輸入連線一個triple restoration層連線輸出單獨計算GCKE模組的訓練目標損失。

具體來說,GCKE的每一層都是Transformer-base的模型結構,也是有多頭注意力機制和前向層組成,加上了殘差結構。

多頭注意力機制的matrix與K-BERT的visible matrix原理一樣,用以適配經過知識圖譜關係注入的輸入重組,如下圖所示,具體實現同樣的可以參見K-BERT的相關解說:

 

經過GCKE模組的輸出連線到Triple Restoration,其訓練目標簡單來說就是訓練對應的三元組是否是valid,也是通過替換對應三元組中的entity來實現,具體可在上圖右上角。

7)優點與缺點:

優點:可以看做是上文提到的第5種模型ERNIE的進一步改進版本,對於ERNIE直接用TransE獲取entity的embedding,bert-mk通過GCKE模組並增加新的訓練任務,通過這個模組獲取更為合理的entity embedding,且GCKE模組是單獨設定訓練目標進行訓練的,後續研究有更多改進攻堅。

缺點:模型結構複雜,訓練更新成本高。

7. KG-BERT: BERT for Knowledge Graph Completion

1)論文地址:
https://arxiv.org/pdf/1909.03193.pdf

2)融入方式:output injection

3)使用的知識圖譜:Wikipedia

4)是否使用知識圖譜巢狀:

5)是否在pre-training和fine-tuning階段使用知識圖譜的融入:fine-tuning

6)模型的介紹說明:

KG - BERT的作者稱,KG-BERT第一項使用PLM對三元組進行建模的研究。作者採用的方法比較簡單粗暴,第一種方法是直接用預訓練好的BERT模型進行fine-tuning,只是fine-tuning的任務是判斷三元組是否使正確的三元組組合,而模型的輸入也是直接將三元組中的三個元素直接用[SEP]分隔進入BERT模型,如下圖所示:

 

另外,除了這種方法,KG-BERT採取的另一種訓練方式是隻輸入兩個實體的描述,來預測兩者的關係,如下圖所示:

 

而作者在文中提到第二種方式相較第一種方式,在預測關係時效果更好。

7)優點與缺點:

優點:模型沒有結構的變化,實現簡單,符合直覺。

缺點:沒有充分利用知識圖譜中三元組之間相互關聯的深層知識資訊,可以看做是知識圖譜融入預訓練模型最簡單的嘗試。

8. (WKLM)Pretrained Encyclopedia: Weakly Supervised Knowledge-Pretrained Language Model

1)論文地址:
https://arxiv.org/pdf/1912.09637.pdf

2)融入方式:input injection + output injection

3)使用的知識圖譜:Wikidata

4)是否使用知識圖譜巢狀:

5)是否在pre-training和fine-tuning階段使用知識圖譜的融入:pre-training

6)模型的介紹說明[9]:

WKLM的作者提出大規模的預訓練模型通過理解非結構化的大量文字資訊隱式地從真實世界中獲取知識,因此可以進一步以一種強制的方式促使預訓練模型關注於真實世界實體的百科知識,以便於能夠更好的的自然語言中獲取實體資訊並且將其應用到與實體相關的NLP任務上去。

簡單來說,就是在預訓練時改造模型的輸入和輸出,將輸入中出現的實體替換為同類型的另一實體,讓模型任務變成判斷實體是否為隨機替換的,以此構造訓練任務,達到知識的融入效果。

值得一提的是,這裡作者所提到的弱監督的概念可以理解為訓練的任務構造僅僅只需要將實體進行替換,不需要額外的標籤標註,所以可以定義為弱監督。具WKLM的具體實現包括:

①資料準備:使用英文維基百科作為訓練資料,文件中的實體根據維基百科中的錨鏈接和Wikidata(三元組知識庫)的實體名來識別。即首先檢索由錨鏈接註釋的實體,然後通過字串匹配它們在Wikidata中的名稱,以檢索其他提到這些實體的地方。通過此方法可以使用現成的實體連結工具,也很容易擴充套件至其他語料庫。

②替換策略:如下圖所示,進行實體替換時首先需通過Wikidata知識庫確定其實體型別,並隨機選取該實體型別下的其他實體替換原實體,每個實體會通過同樣的方式進行10次替換,生成10個不同的負例。相鄰實體不會被同時替換,以避免多個連續的負例組成了符合事實的描述。

 

③訓練目標:對於在上下文C中提到的某個實體e,我們訓練模型進行正負樣本預測,以指示該實體是否已被替換,計算公式如下:

 

7)優點與缺點:

優點:通過簡單的改造預訓練模型的輸入輸出來隱式引入知識圖譜的知識,實現方式簡單

缺點:僅僅利用了知識圖譜中實體的資訊,沒有充分利用到三元組關係,可以看做是知識圖譜與預訓練模型的簡單結合。

9. CoLAKE: Contextualized Language and Knowledge Embedding

1)論文地址:
https://arxiv.org/pdf/2010.00309.pdf

2)融入方式:input injection + architecture injection

3)使用的知識圖譜:Wikipedia

4)是否使用知識圖譜巢狀:

5)是否在pre-training和fine-tuning階段使用知識圖譜的融入:pre-training

6)模型的介紹說明:

在將知識圖譜融入預訓練模型這個課題上,大部分研究都只考慮了知識圖譜中淺層的、固態的知識表徵,並且對非結構性語言的表徵和結構性知識的表徵是分別進行訓練的,造成外部知識的潛力並沒有在預訓練模型中得到充分利用,沒能獲得更大的效能增益,也幾乎沒有研究探索過在融入外部知識時挖掘更多知識表徵的深層上下文語境。

為解決這些問題,CoLAKE模型通過改造模型的輸入和結構,沿用預訓練模型的MLM目標,對語言和知識的表徵同時進行同步訓練。

此外,為了解決非結構化文字與知識之間的異構性衝突,CoLAKE將兩者以一種統一的資料結果將兩者整合起來,形成word-knowledge graph,將其作為預訓練資料在改造後的Transformer encoder模型上進行預訓練。

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的加和。因為WK graph會將原本的句子進行充足,因此輸入的句子會使一句錯亂的序列,因此需要對應修正其type input和position input。

其中對於每個token,其同一對應的type會用來表徵該token對應的node的型別,比如是word,entity或者是relation;對應的position也是根據WK graph賦予的。下圖給出了一個具體的例子進行說明:

 

Masked Transformer Encoder:

利用多頭注意力機制中的注意力矩陣來反映WK graph的結構。

 

可以看出,模型的改動就是在計算注意力矩陣的時候,對於沒有關聯的節點加上了負無窮,使得兩者不可見,以這種方式體現出WK graph的結構。

③訓練目標:

MLM是指隨機的掩蓋掉輸入中的某些詞,讓模型預測掩蓋掉的詞是什麼。而CoLAKE就是將MLM從詞序列拓展到了WK graphs。

作者隨機掩蓋15%的節點,80%的時間用[MASK]替代,10%的時間隨機替換成同類型的其他節點,10%時間不做任何改變。

通過掩蓋詞語,關係和實體結點,能從不同角度幫助模型更好的同時學習到語言本身和知識圖譜中的知識。

同時,作者提到在預測anchor node的時候,模型可能會更容易藉助知識上下文而不是語言上下,因為後者的多樣性和學習難度更大。

為了規避這個問題,作者在預訓練時在50%的時間裡丟棄了anchor nodes的相鄰節點,從而減少來自知識圖譜的幫助。

7)優點與缺點:

優點:對模型結構改動小,可根據實際需求融入多種知識圖譜

缺點:對結構化知識強依賴的下游任務更有效,在應對需要理解語義的下游任務時沒有改進

04 未來探索方向思考

知識對於語言的理解至關重要,在語言預訓練模型大行其道的當下,將知識融入語言預訓練模型中是重要的技術發展方向,但知識的注入未必總是有效的。

在一些下游任務上知識圖譜的融入反而有可能會擾亂預訓練模型從非結構化的文字中理解到的知識體系,同時過多的知識引入也可能帶來噪聲,反而造成模型損失。

因此也不需要一味鼓吹魔改模型或者是設計繁複的模型結構盲目融合知識圖譜。

但在不盲目的前提下,將知識圖譜融入預訓練模型肯定是大有可為的。

經過前文的論述,知識圖譜融入的模型改進方式多種多樣,不論是從模型輸入,模型結構,模型輸出進行融合,在一定程度上都可以提升模型在與知識導向相關的下游任務上的表現,因此後續的工作可以考慮將多種模型的改進共同作用在一個模型上,當然這也需要進一步考量各個模型改進方案之間是否存在衝突。

除了以上的一些模型介紹外,還有一些研究將知識圖譜轉換成自然語言作為evidence與任務輸入一同進入模型,以減少知識圖譜和自然語言之間的異構性衝突。

而知識圖譜融入預訓練模型的效果,除了融合方法的改進和嘗試,知識圖譜本身構建的合理性和高效性也關係到融合技術是否有效落地到實際業務中,因此在以後的研究中應當更多兼顧知識圖譜本身構建的技術研究上去。

參考文獻

[1] 當知識圖譜遇上預訓練語言模型

https://blog.csdn.net/qq_27590277/article/details/119988603

[2]終於有人把知識圖譜講明白
https://blog.csdn.net/zw0Pi8G5C1x/article/details/113930459

[3] Colon-Hernandez P , Havasi C , Alonso J , et al. Combining pre-trained language models and structured knowledge[J]. 2021.

[4]WordNet https://wordnet.princeton.edu/

[5]Hewitt, John and Christopher D Manning. 2019. A structural probe for finding syntax in word representations. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), pages 4129–4138.

[6]論文筆記《Knowledge Enhanced Contextual Word Representations》

https://blog.csdn.net/BigPig_LittleTail/article/details/104511432

[7] 【深度學習】知識圖譜——K-BERT詳解
https://zhuanlan.zhihu.com/p/314998122

[8] Pascal Vincent, Hugo Larochelle, Yoshua Bengio, and Pierre-Antoine Manzagol. 2008. Extracting and composing robust features with denoising autoencoders. In Proceedings of ICML, pages 1096–1103.

[9] 論文筆記 --《CoLAKE: Contextualized Language and Knowledge Embedding》

https://www.jianshu.com/p/3b5faaa691fe

[10]當知識圖譜遇上預訓練語言模型

https://blog.csdn.net/qq_27590277/article/details/119988603

[11]BERT遇上知識圖譜:預訓練模型與知識圖譜相結合的研究進展

https://zhuanlan.zhihu.com/p/408088588