K-BERT | 基於知識圖譜的語言表示模型

1。研究背景

BERT曾被應用在多項NLP任務中,並且取得了很好的結果。它透過在大規模開放語料庫上進行預訓練以獲得通用的語言表示,然後在特定的下游任務中進行微調,吸收特定領域的知識。但這些模型在不同的領域執行知識驅動任務時,效果不佳。為了解決這個問題,可以在特定領域的資料集上進行預訓練,或者在預訓練時注入特定的領域知識。但這些方法一般非常耗時且昂貴。

有些學者提出將知識圖譜(KG)整合到語言表示(LR)中,為模型配備領域知識,提高模型在特定領域任務上的效能,同時降低大規模預訓練成本。但在知識整合的同時,存在兩個不可避免的問題:1)異構嵌入空間(HES),文字中的詞和KG中的詞嵌入向量空間不一致;2)知識噪音(KN),過多的知識融合會使句子偏離正確的意思。為了解決這些問題,文章提出一種基於知識圖譜的語言表示模型——K-BERT。K-BERT能夠與BERT模型相容,載入任何預先訓練好的BERT模型,並且透過配置KG可以很容易地將領域知識注入到模型中,而不需要預訓練。另外,該模型引入了軟位置和可見矩陣來限制知識的影響以克服知識噪音。

2。方法

文章詳細介紹了K-BERT的實現,K-BERT的模型體系結構主要由四個模組組成,即知識層、嵌入層、檢視層和掩碼轉換。其總體框架如圖1所示:

K-BERT | 基於知識圖譜的語言表示模型

圖1 K-BERT的模型結構

K-BERT模型的每一部分都有著不可或缺的作用。對於輸入的句子,知識層首先從KG向其注入相關的三元組,將原始句子轉換為知識豐富的句子樹。然後將句子樹同時饋送到嵌入層和視覺層,然後將其轉換為符號級嵌入表示和可視矩陣。可見矩陣用於控制每個符號的可見區域,防止由於注入過多的知識而改變原句的意思。

2.1 知識層

知識層(KL)用於句子知識注入和句子樹轉換。給定輸入句子s={w0,w1,w2,。。。,wn}和知識圖譜K,KL輸出句子樹t={w0,w1,。,wi{(ri0,wi0),。。。,(rik,wik)},。。。,wn}。這個過程可以分為兩個步驟:知識查詢(K-Query)和知識注入(K-Inject)。

K-BERT | 基於知識圖譜的語言表示模型

在K-Query中,從K-Query中選出句子s中涉及的所有實體名稱來查詢其對應的三元組。K-Query可以表示為(1),

(1)

其中E={(wi,ri0,wi0),。,(wi,rik,wik)}是相應三元組的集合。

接下來,K-Inject透過將E中的三元組注入到它們對應的位置,將查詢到的E注入到句子s中,並生成一個句子樹t。在本文中,一棵句子樹可以有多個分支,但其深度固定為1,這意味著三元組中的實體名稱不會迭代地派生分支。K-Inject可以表示為(2),

K-BERT | 基於知識圖譜的語言表示模型

2.2 嵌入層

嵌入層(EL)的功能是將語句樹轉換為可以饋送到掩碼轉換器中的嵌入表示。與BERT相似,K-BERT的嵌入表示是由符號嵌入、位置嵌入和段嵌入三部分組成,不同之處在於K-BERT嵌入層的輸入是句子樹,而不是符號序列。因此,如何在保留句子樹結構資訊的同時將句子樹轉換成序列是K-BERT的關鍵。

符號嵌入與BERT基本一致,不同之處在於語句樹中的符號在嵌入操作之前需要重新排列。在重新排列策略中,分支中的符號被插入到相應節點,而後續的符號則向後移動。經此操作後句子變得不可讀,丟失了正確的結構資訊。但該問題可以透過軟位置可視矩陣來解決。

BERT輸入句子的所有結構資訊都包含在位置嵌入中,可以將缺失的結構資訊重新新增到不可讀的重新排列的句子中,但句子位置資訊會有所改變。要解決這個問題,需要給句子樹重新設定位置標號。但在設定位置編號時又會發生實際沒有聯絡的詞彙,因具有相同的軟位置標號而出現聯絡,導致句子意思發生改變。這個問題的解決方案是使用掩碼-自我注意機制。

2.3 檢視層

檢視層是K-BERT和BERT的最大區別,也是這種方法如此有效的原因。K-BERT的輸入是一棵句子樹,其中的分支是從KG獲得的知識。但它可能導致原句意思的變化,即KN問題。

在句子樹中,一個實體的三元組應與其他詞彙無關。同時,用於分類的[CLS]標籤不能繞過主體詞彙來獲得修飾三元組的資訊。為了解決這個問題,K-BERT使用可見矩陣M來限制每個符號的可見區域防止不相干詞彙相互干擾。可視矩陣可以表示為(3),

K-BERT | 基於知識圖譜的語言表示模型

(3)

其中wi⊖wj表示在同一分支,wi⊘wj則不在。i和j是硬位置索引。

嵌入層和可視層的工作原理如圖2所示:

K-BERT | 基於知識圖譜的語言表示模型

圖2 句子樹轉換成嵌入表示和可視矩陣工作過程

2.4 掩碼轉換

可視矩陣M包含句子樹的結構資訊,但BERT中的編碼器不能接收M作為輸入,所以我們需要將其修改為Mask-Transformer,它可以根據M限制自注意區域。Mask-Transformer是一個由多個掩碼-自我注意塊組成的堆疊。

為了利用M中的句子結構資訊來防止錯誤的語義變化,文章提出了一種掩碼-自注意,它是自我注意的擴充套件。掩碼-自注意表示如(4)。

K-BERT | 基於知識圖譜的語言表示模型

其中Wq,Wk和Wv表示可訓練的模型引數;hi表示第i個掩碼自我注意塊;dk是比例因子;M是可視矩陣。掩碼轉換的工作原理如圖4所示:

K-BERT | 基於知識圖譜的語言表示模型

圖4 掩碼轉換是多個掩碼自我注意塊的堆疊

3。實驗

3.1 資料集

K-BERT在12箇中國自然語言處理任務上進行微調,其中8個是開放領域的,4個是特定領域的。文章採用兩個預訓練語料庫:WikiZh和WebtextZH;三個中文知識圖譜:CN-DBpedia、HowNet和MedicalKG。在文章中,作者將K-BERT和Google BERT和Our BERT模型進行了一個比對,以觀察它的效能。

3.2 實驗分析

在文章中,作者首先比較了KBERT和BERT在八個中文開放領域自然語言處理任務上的效能。這八個任務分別是:Book_revire、Chnsenticorp、Shopping、Weibo、XNLI、LCQMC、NLPCC-DBQA和MSRA-NER。

上述每個資料集分為三個部分:訓練、開發和測試。實驗結果如表1和表2所示:

表1 句子分類任務的不同模型在開放領域任務上的結果(ACC%)

K-BERT | 基於知識圖譜的語言表示模型

表2 不同模型對NLPCC-DBQA(MRR%)和MSRA-NER(F1%)的結果

K-BERT | 基於知識圖譜的語言表示模型

從表中可以看出,使用額外的語料庫(WebtextZh)也可以帶來效能提升,但不如KG顯著。

作者在兩個特定領域的任務:Domain Q&A和Law_Q&A上評估了K-BERT的效能。實驗結果如表3所示:

表3 特定領域任務的各種模型的結果(%)

K-BERT | 基於知識圖譜的語言表示模型

結果表明,K-BERT在特定領域上的具有明顯的語言表示優勢。

參考資料

https://www。

aaai。org/Papers/AAAI/20

20GB/AAAI-LiuW。5594。pdf

程式碼

https://

github。com/autoliuweiji

e/K-BERT

K-BERT | 基於知識圖譜的語言表示模型