知識增強的預訓練語言模型系列之KEPLER:如何針對上下文和知識圖譜聯合訓練

NLP論文解讀 發表於 2022-01-24

©原創作者 | 楊健

論文標題:

KEPLER: A unified model for knowledge embedding and pre-trained language representation

 

收錄期刊:

TACL

 

論文連結:

https://direct.mit.edu/tacl/article/doi/10.1162/tacl_a_00360/98089/

 

專案地址:

https://github.com/THU-KEG/KEPLE

 

圖片

01、問題

上一次我們介紹了ERNIE,其實類似的工作還有KnowBERT,它們的思路都是對知識圖譜中的三元組表示學習,在編碼實體間的關聯資訊後,通過對齊文字指稱項將其注入到預訓練語言模型之中。所不同的是KnowBERT不使用TransE,而是使用Tucker進行表示學習。

 

此外,KnowBERT設計了一個基於神經網路的實體連結器,該連結器能夠獲得和某個指稱項關聯的多個實體,從而為一個指稱項注入多個實體的資訊。

 

對這兩個模型而言,知識的豐富程度都取決於知識表示的方法。然而傳統的基於平移的表示學習方法沒有考慮圖譜的拓撲結構,也無法利用實體相關的文字資訊編碼實體。在這篇文章中,筆者將介紹該論文如何使用文字輔助圖譜的表示學習,從而讓實體向量蘊含更多的資訊。

 

此外,在上次介紹ERNIE的文章中,筆者提到ERNIE使用基於自注意力機制來克服異構向量的融合。那麼有沒有可能在一開始就產生同構的表示向量,降低知識和文字向量融合的難度呢?

 

圖片

02、解決方案

為了避免異構向量的產生,作者使用同一個預訓練語言模型編碼實體和文字,從而生成處於同一語義空間的向量,並使用知識表示學習和掩碼語言模型(MLM)作為預訓練任務聯合訓練,共同更新模型引數。

 

具體而言,作者沿用RoBERTa作為基礎模型,拼接實體的描述文字和特殊符號<s>作為模型的輸入,從而為實體引入了更多的上下文資訊。

 

考慮到RoBERTa採用雙向關注的Transformer作為編碼層,特殊符號<s>所對應的表示向量將包含整個序列的語義,因此作者將這一向量視為實體的初始化向量,該向量將用於TransE的損失函式計算,為預訓練模型注入實體關聯資訊。模型的結構如下圖所示:

圖片

為了比較不同的實體描述文字所產生的效果,作者設計了三種不同的描述文字組合來進行對比實驗。第一種是使用實體的描述文字編碼實體向量並隨機初始化關係向量。給定三元組(h,r,t),向量編碼過程如下:

圖片

其中E表示編碼器,表示起始位置的特殊符號,T表示關係向量矩陣。

 

第二種是分別使用實體和關係的描述文字編碼實體和關係的向量,其中頭尾實體編碼方式同上,關係向量的編碼方式如下:

圖片

最後一種則是拼接實體和關係的描述文字編碼實體向量,隨機初始化關係向量,實體的編碼方式如下:

圖片

在獲得實體和關係的表示向量後,模型使用TransE中的損失函式計算損失值,更新模型引數。計算公式如下:

圖片

其中

知識增強的預訓練語言模型系列之KEPLER:如何針對上下文和知識圖譜聯合訓練

 

 為負樣本,

gamma為邊緣值,

dr則採用P=1的評分函式:

知識增強的預訓練語言模型系列之KEPLER:如何針對上下文和知識圖譜聯合訓練

 

 除了知識表示的預訓練任務,模型仍然針對描述文字進行掩碼,並預測掩碼詞,以避免模型出現引數遺忘的問題。模型總的損失函式為:

知識增強的預訓練語言模型系列之KEPLER:如何針對上下文和知識圖譜聯合訓練

 

 通過這種方式生成的向量既能夠同時利用三元組結構資訊和文字語義,又避免了引入外部實體連結器或者融合兩類向量的編碼層,保持了模型結構在預訓練階段和推理應用階段的一致性。

 

傳統的知識表示學習方法僅能夠應用於轉導式(transductive)連結預測任務,即只能判斷訓練階段出現過的實體間的關係。

 

對於訓練階段未出現過的實體,由於無法獲得對應的表示向量,也就無法判斷彼此是否存在關聯。使用預訓練模型生成的實體向量則能夠克服這一問題,應用到推導式(inductive)連結預測任務,關係分類任務甚至是資訊檢索任務[1]。

 

圖片

03、實驗分析

實驗主要包括針對下游任務測試實驗和消融(ablation)實驗。

3.1 下游任務測試實驗

針對下游任務,作者使用關係分類和實體分類這兩個知識驅動型任務檢驗知識注入的有效性。此外,該方法也為實體向量注入了文字資訊,為了檢驗文字資訊對實體向量的效能提高,作者還使用推導式和轉導式連結預測任務進行實驗對比。

 

除了上述提到的三種不同的描述文字,作者還考慮了不同知識圖譜對模型效能的影響,並根據這兩個變數設計了以下的模型變種(Variant)。

 

其中KEPLER-Wiki僅使用作者自己構建的Wikidata5M圖譜,KEPLER-WordNet僅使用WordNet圖譜,而KEPLER-W+W則使用兩類圖譜。

 

以上三個模型都使用實體描述文字編碼實體,KEPLER-Rel同樣使用兩類圖譜進行訓練,但分別使用實體和關係的描述文字編碼二者。KEPLER-Cond也使用兩類圖譜進行訓練,使用包含實體和關係的描述文字編碼實體。

 

關係分類任務的實驗結果如圖1所示,結果表明,相比ERNIE、KnowBERT和RoBERTa等基準模型以及其他變種模型,KEPLER-Wiki取得了最高的F1值和召回率,對比不同描述文字產生的效能差異,可以發現使用包含實體和關係的描述文字編碼實體並沒有提高模型在該任務上的效能,但在連結預測任務上有很大的效能提升,筆者認為這可能是因為關係分類任務更傾向於獲取實體資訊,含有別的關係描述文字反而干擾了實體的準確性。

 

相比另外兩類變種模型,KEPLER-Rel的F1值最低,這是由於Wikidata中關係的描述內容很短並且和普通文字異構,使用關係描述對關係編碼反而惡化了模型的效能。

圖片

圖1 基於TACRED資料集的關係分類任務

對比不同知識圖譜產生的效能差異,可以發現同時使用Wikidata5M和WordNet訓練反而不如僅僅使用Wikidata5M,筆者認為WordNet是以詞義作為關聯資訊的知識圖譜,會連線存在近義或者反義的實體,與Wikidata關聯方式不一致, 這也說明了不同組織方式的圖譜可能會存在衝突。

 

實體分類任務的實驗結果同樣顯示KEPLER-Wiki取得了比基準模型更好的結果,其中F1值比ERNIE高出1.3%,比KnowBERT高出0.6%。

 

此外,在GLUE資料集上KEPLER-Wiki取得了和RoBERTa相近的結果,表明模型在注入知識後保持了預訓練語言模型原有的語言理解能力。

 

連結預測任務的實驗結果顯示KEPLER-Cond取得了最好的效果,表明實體和關係的描述文字在該任務中能幫助模型更準確的預測出尾實體。

3.2 消融實驗

為了檢測模型所具有的知識含量,作者使用LAMA資料進行實驗,考慮到資料可能包含字面上的線索提示模型生成正確答案,作者還使用了LAMA-UHN測試模型。

 

結果發現KEPLER-W+W雖然在關係分類任務上不如KEPLER-Wiki,但在LAMA-UHN上卻取得了最高的正確率。這表明不同的下游任務需要不同型別的知識圖譜。

 

在計算效率方面,由於模型並沒有引入額外的引數或者架構,因此對比ERNIE和KnowBERT,模型在訓練和推理階段所需的時間都更短。

圖片

在低頻詞語義學習方面,作者按照單詞在訓練語料中出現的頻率從高往低分成了五組,並使用RoBERTa和KEPLER對這些詞進行實體對齊實驗,結果發現當對於低頻詞,KEPLER比RoBERTa的實體預測準確率更高。

 

由於訓練語料存在長尾分佈的特徵,低頻詞無法從上下文文中充分學習語義,而KEPLER通過外部描述文字彌補了這一缺陷。

 

04、點滴思考

模型通過引入描述文字帶來了以下幾個好處,一是解決了分別對文字和知識編碼造成的異構向量問題,二是保持了和原有模型相同的結構,減少了訓練時長和額外的工程實現。三是彌補了預訓練語言模型低頻詞無法充分學習語義的缺陷。

 

然而這種方法也依賴於具有充分準確的實體和關係描述文字,適用於具有實體簡介語料如醫療領域的術語詞條的領域知識增強。

 

在不具備實體描述文字的情況下,我們也可以考慮使用實體所在圖譜的上下文,也即實體在圖譜的路徑幫助實體表示向量的學習,通過取樣區域性的結構圖並構造實體的上下文,也能幫助模型獲取更多的資訊[2][3]。

 

此外,我們在這篇論文中看到了借用預訓練語言模型,可以用實體的介紹文字初始化實體向量,從而解決文字和知識向量存在於異構向量空間的問題。問題的關鍵在於使用同一個編碼器對兩種不同結構的物件表示學習。

 

除了本文這種方法,通過將三元組結構的知識圖譜轉換為文字序列也能夠解決這一問題[2][4],筆者將在後續詳細介紹這些方法。

 

參考文獻

[1] Inductive Entity Representations from Text via Link Prediction

https://arxiv.org/abs/2010.03496

 

[2] CoLAKE- Contextualized Language and Knowledge Embedding

https://arxiv.org/abs/2010.00309

 

[3] Integrating Graph Contextualized Knowledge into Pre-trained Language Models

https://arxiv.org/abs/1912.00147

 

[4] K-BERT: Enabling Language Representation with Knowledge Graph

https://ojs.aaai.org/index.php/AAAI/article/view/5681