盧 琪,潘志松,謝 鈞
中國人民解放軍陸軍工程大學 指揮控制工程學院,南京 210000
知識圖譜以節(jié)點和邊來表示真實世界中存在的各種實體及其之間的關系,最早于2012年由谷歌提出,起初用于提高搜索引擎智能化搜索能力,如今各公司,如微軟Bing、搜狗知立方、百度知心等,都構建了自己的知識圖譜。而隨著Freebase、DBpedia、YAGO等大規(guī)模開源知識圖譜的誕生,知識圖譜相關的研究和應用在多個領域飛速發(fā)展[1],知識圖譜問答(Question Answering over Knowledge Graph,KGQA)便是研究熱點之一。
近年來智能問答取得了極大的發(fā)展,很多智能問答系統(tǒng)走進了人們的生活,為人們帶來了很大的便利。蘋果公司研發(fā)的智能語音助手Siri不僅能智能問答還可以對手機進行語音控制等操作。之后各大公司也推出了自己的語音助手或者問答系統(tǒng),如微軟開發(fā)了Windows上的語音助手微軟小娜Cortana,百度推出了自己的人工智能助手小度,騰訊開發(fā)的聊天機器人QQ小冰等。根據(jù)數(shù)據(jù)的來源可以把智能問答分為三類:(1)基于知識庫問答,也稱為知識圖譜問答,即直接從構建好的結構化知識庫中檢索答案;(2)基于文本問答,也稱為機器閱讀理解式(Machine Reading Comprehension,MRC)問答,每個問題對應若干篇非結構化文本數(shù)據(jù),從文本數(shù)據(jù)中檢索和抽取答案;(3)基于社區(qū)的問答,用戶生成的問答對組成了社區(qū)問答的數(shù)據(jù),例如百度知道、搜狗問答、知乎等論壇。隨著知識圖譜的發(fā)展,知識圖譜問答有了越來越重要的現(xiàn)實意義。
知識圖譜問答任務形式定義為:給定一個包含若干三元組的知識圖譜G和一個自然語言問題q,要求根據(jù)知識圖譜正確回答問題。如今知識圖譜問答的方法要分為基于語義解析和基于信息檢索兩種方法,近年與深度學習相結合,取得了優(yōu)異的表現(xiàn),但是仍然面臨諸多的挑戰(zhàn)。Bordes[2]、Huang[3]等人都基于知識嵌入設計了有效的知識圖譜問答框架,在簡單問題方面實現(xiàn)了優(yōu)異的性能,但是模型推理能力較差,回答多跳問題的能力有待提升。Sun等人[4]增強了模型的推理能力,并且在知識圖譜的基礎上引入了額外的文本數(shù)據(jù),但是仍然無法有效處理知識圖譜中數(shù)據(jù)缺失和數(shù)據(jù)稀疏的問題。此外,Sun[5]、Bao[6]等人的工作都是通過限制問題的跳數(shù)先得到知識圖譜的子圖,然后在子圖上進行推理得到答案。綜上可知目前的知識圖譜問答仍然存在下列問題:(1)復雜的場景下,要求模型具有推理能力,從而正確回答多跳問題;(2)當知識圖譜的信息不完整時,如何保證知識圖譜問答的性能;(3)如今的多跳知識圖譜問答大多對跳數(shù)有所限制,模型僅對知識圖譜局部建模,損失了長距離信息。
針對上述問題,本文提出一種融合知識表示學習的雙向注意力模型,該模型引入知識表示學習以解決知識圖譜數(shù)據(jù)稀疏和數(shù)據(jù)缺失問題,BiDAF[7]模型使用了雙向注意力模型在機器閱讀理解任務上取得非常優(yōu)異的性能,受Seo等人啟發(fā),KR-BAT模型構建了雙向注意力模型來提高模型的推理能力,能夠更好地處理多跳問題。主要貢獻為:(1)設計一個主題實體預測模型,引入知識表示,對于未登錄實體也能預測其表示,有效解決知識圖譜不完整所帶來的信息損失;(2)結合雙向注意力機制和LSTM,提高模型的多跳推理能力;(3)提出融合知識表示的雙向注意力模型,經(jīng)過實驗,模型針對多跳問題和不完整知識圖譜情況實現(xiàn)了優(yōu)秀的性能。
知識表示是知識組織的前提和基礎,表示學習把數(shù)據(jù)轉換成一種機器能夠有效處理的方式,便于模型提取特征。
早期的獨熱表示[8](One-hot representation)是一種簡單有效的數(shù)據(jù)表示方法,獨熱表示通過0和1將數(shù)據(jù)編碼成向量,如果數(shù)據(jù)維度為L,則獨熱編碼中只有一維元素為1,其余L-1維為0。獨熱表示方法優(yōu)點在于通過無監(jiān)督的方法,有效地把數(shù)據(jù)區(qū)分開來,耗費少。但是該方法的缺點也較為突出,獨熱編碼認為數(shù)據(jù)之間都是獨立的,無法對數(shù)據(jù)之間的語義相似度進行建模,然而在自然語言處理領域中,語義相似度尤為重要,這樣會導致信息損失嚴重;其次,當數(shù)據(jù)規(guī)模較大時,獨熱表示容易造成維度災難,且編碼的向量過于稀疏。
與獨熱表示相比,基于機器學習的表示學習能夠把數(shù)據(jù)映射成低維的向量,解決了數(shù)據(jù)稀疏問題,并且學習過程能夠對數(shù)據(jù)之間的語義相似度進行建模,更有利于模型提取特征。
知識表示學習是以知識圖譜中節(jié)點和關系為對象的表示學習[9],目標是把知識圖譜中的節(jié)點和關系映射為低維向量,實現(xiàn)對知識的建模,對知識圖譜的構建、補全、推理和應用有著重要意義。
結構表示(Structured Embedding,SE)是距離模型的一種,對于每個三元組(h,r,t),模型為關系r定義了兩個投影矩陣,分別用于頭實體h和尾實體t的投影,然后計算兩個實體投影直接的距離,距離代表該三元組中頭實體和尾實體的語義相似度。但SE中頭實體和尾實體是根據(jù)兩個不同的矩陣進行投影,語義關系的建模能力較差。
雙線性對角模型DistMult[10]把關系矩陣設置為對角陣,提高處理多關系數(shù)據(jù)能力的同時,極大簡化了模型。但是DistMult過于簡化,無法處理非對稱關系,于是ComplEx[11]在DistMult基礎上提高非對稱關系建模能力,通過把實體和關系映射到復數(shù)空間,利用埃爾米特乘積對非對稱關系進行建模。
受到Word2Vec[12]中平移不變的啟發(fā),Bordes等人[13]提出TransE模型。對于每個三元組(h,r,t),TransE把尾實體向量νt看作頭實體向量νh經(jīng)過關系向量νr平移得到,希望滿足νh+νr≈νt。TransE模型參數(shù)較少、簡單有效,是知識表示學習中最為經(jīng)典的模型之一,但是無法建模復雜關系。TransH[14]在TransE的基礎上把實體向量投影到關系向量對應的超平面上,以此緩解復雜關系下的學習過度收斂問題。TransR[15]在TransH的基礎上定義了兩個投影矩陣,把實體向量投影到關系語義空間中,經(jīng)過投影的實體區(qū)分度增加,提高復雜關系建模能力。但是TransR構造的兩個投影矩陣提高了模型的計算復雜度,TransD[16]把TransR的投影矩陣分解成兩個向量,降低了模型的復雜度,并且關系和實體共同參與構造投影矩陣,模型對語義建模能力更強。
知識圖譜問答的關鍵在于把用戶的自然語言問題轉化為機器可以理解的形式查詢。目前知識圖譜問答方法主要分為兩類:基于語義解析的方法和基于信息檢索的方法。
基于語義解析的方法:把要解決的問題看作語義解析問題,即把自然語言問題轉化成語義表示,再映射成邏輯形式,在知識圖譜上進行查詢得到答案。Zhang等人[17]提出了一個基于注意力機制的模型來根據(jù)候選答案的不同側重點動態(tài)地表示問題,利用了知識圖譜的全局信息,并且一定程度上解決了未登錄詞的問題。Alvarezmelis等人[18]提出了一種改進型樹狀解碼器,使用兩個獨立的RNN分別對父-子和兄弟-兄弟節(jié)點之間的信息流建模,提供了使用RNN從自然語言查詢生成可執(zhí)行的查詢語言這一思路。Mohammed等人[19]用最基本的神經(jīng)網(wǎng)絡結構(CNN、LSTM)加上一些簡單的規(guī)則,便能在簡單問題上達到很好的性能。
基于信息檢索的方法:先確定用戶查詢中的中心實體,然后鏈接到知識圖譜中確定相關實體得到候選答案集合,之后通過評分或者排序的方式找出最可能的答案。Yih等人[20]使用卷積神經(jīng)網(wǎng)絡解決單關系問答。通過CNN構建兩個不同的匹配模型,分別用來識別問題中出現(xiàn)的實體和匹配實體與KG中實體的相似度,相似度最高的三元組作為問題的答案,但是模型難以處理復雜的多關系情況。Hao等人[21]更關注問題的表示,提出了一種新的基于Cross-Attention的模型,根據(jù)不同的答案類型賦予問題中不同單詞的權重,這種動態(tài)表示不僅精確而且更加靈活。
在引入知識表示學習之后,Bordes等人[2]進行了進一步的研究,僅使用少量的手工特征來學習單詞和知識的低維向量。Li等人[22]提出使用多列卷積神經(jīng)網(wǎng)絡(Multi-column CNN)從答案路徑、答案類型和答案上下文三個角度來表示問題,提取了更豐富的信息并且不依賴手工特征和規(guī)則。Huang等人[3]基于知識嵌入設計了一個簡單有效的知識圖譜問答框架(KEQA),針對簡單問題,要求模型恢復出實體和謂詞,在簡單問題方面實現(xiàn)了優(yōu)異的性能,但是模型不具有推理能力,無法處理多跳問題。Saxena等人[23]基于預訓練模型設計了EmbedKGQA模型,在多跳問題上有很好的處理能力,尤其是當知識圖譜不完整時,利用鏈接預測實現(xiàn)知識補全而不需要額外的文本數(shù)據(jù)。
本文結合知識表示學習和雙向注意力機制,提出了一個融合知識表示學習的雙向注意力模型(KR-BAT)用于知識圖譜問答,模型框架如圖1所示,主要包括兩個模型:(1)主題實體預測模型:預測問題中主題實體的表示;(2)雙向注意力模型:問題與實體進行交互并返回答案。圖1中紫色部分TEP(Topic Entity Prediction,TEP)即為主題實體預測模型,剩下的部分構成了雙向注意力模型(Bidirection ATtention,BAT)。在BAT中的注意力層實現(xiàn)兩個模型的有機結合,TEP模型的輸出作為BAT模型中注意力層的輸入,通過雙向注意力實現(xiàn)信息交互。TEP為三層結構的層級模型,BAT模型由四層組成,兩個模型的細節(jié)部分將在2.2節(jié)和2.3節(jié)進行詳細介紹。在介紹模型框架之前,先介紹相關概念及任務形式。
一個三元組表示為<h,r,t>,h和t分別表示頭實體(head entity)和尾實體(tail entity),r表示兩個實體間的關系。知識圖譜是由眾多三元組構成的集合,對于知識圖譜可以形式化描述為G={ }E,R,E,其中E和R分別表示所有實體和關系的集合。對于知識圖譜G,使用如TransE等知識表示學習模型可以得到關系和實體的分布式表示,一個三元組被表示為<eh,er,et>。
知識圖譜問答任務形式定義為:給定一個知識圖譜G和一個自然語言問題q,要求根據(jù)知識圖譜正確地回答問題。
知識圖譜問答首先要預測出問題中的主題實體,可以通過序列標注、語法句法解析等方法來檢測出主題實體。但是,面對用戶給出的問題可能包含未登錄實體,以及知識圖譜不完整等情況,這些方法難以檢測出主題實體。針對上述問題,構建了主題實體預測模型(TEP)。
TEP是一個層次結構,架構如圖2所示,主要由三層構成,輸入層(Input Layer)、建模層(Modeling Layer)、輸出層(Output Layer)。輸入層中,給定一個長度為J的自然語言問題,首先把J個單詞表示成詞向量{qj},j=1,2,…,J。詞向量輸入建模層后,使用BiLSTM[24]進行建模提取語義信息,得到正向的隱層狀態(tài)序列和反向的隱層狀態(tài)序列。
圖1 KR-BAT整體框架圖Fig.1 Overview of KR-BAT
圖2 主題實體預測模型Fig.2 Topic entity prediction model
正向隱層狀態(tài)可通過公式(1)~(5)得到:
其中,fj、ij和oj分別是LSTM遺忘門、輸入門和輸出門的激活向量,Wf、Wi、Wo、Wc與bf、bi、bo、bc分別為三個門控機制與記憶細胞的權重和偏置,cj是記憶細胞狀態(tài)向量,°是對應元素乘積。正向和反向狀態(tài)拼接得到當前詞的隱層狀態(tài):。輸出層中經(jīng)過全連接層,得到token的目標向量rj,再對所有token的目標向量求平均得到主題實體表示向量:
當給定一個自然語言問題作為輸入時,TEP目標并非判斷主題實體的位置,而是直接對主題實體的表示進行預測,使預測的表示盡可能接近該實體經(jīng)過知識表示學習得到的向量表示,注意這里是經(jīng)過知識表示學習的向量et,而非主題實體的詞向量qt。即使問題中的主題實體是未登錄實體,TEP也能給出該主題實體經(jīng)過知識表示學習后的向量,通過主題實體預測模型引入知識表示學習,得到包含知識圖譜中其他節(jié)點信息的主題實體表示,這時的實體表示是具有知識圖譜感知的主題實體(KG-aware Topic Entity)。
雙向注意力模型(BAT)為圖1中TEP模型右側部分,由四層組成:輸入層(Input Layer)、問題嵌入層(Query Embedding Layer)、注意力層(Attention Layer)和輸出層(Output Layer)。
(1)輸入層。把一個長度為J的自然語言問題中的每個詞,映射到向量空間:{qj},j=1,2,…,J,qj∈?d。這里使用Manning等人[25]提出的GloVe預訓練詞向量,GloVe是基于共現(xiàn)矩陣分解得到的表示,向量包含了全局信息。
(2)問題嵌入層。使用一個BiLSTM對詞向量表示的問題進行建模,實現(xiàn)問題內部的信息傳遞,對BiLSTM正向和反向隱層表示進行拼接,獲得隱層表示hj∈?2d,j=1,2,…,J。
(3)注意力層。TEP輸出預測的主題實體表示向量,與候選答案實體表示eai拼接:
首先計算Q和E的相似度矩陣S∈?T×J:
Sij表示第i個候選答案與問題中第j個詞的相似度,Ei為E的第i個列向量,Qj為Q的第i個列向量,α是可訓練的映射函數(shù),用于編碼輸入向量之間的相似度,本文使用的映射函數(shù)為:
其中w(S)∈?6d,為相似度矩陣S的權重向量。然后用相似度矩陣S得到行和列兩個方向的注意力。
①行注意力(Row-wise Attention,RA)。行注意力如圖3所示,針對相似度矩陣的每一行計算注意力:
圖3 行注意力Fig.3 Row-wise attention
ai∈?J表示問題中哪個詞qj與每個答案實體ei最相關,Si為相似度矩陣的第i行。則加權后問題的每個單詞表示向量為:,加權后的整個問題編碼矩陣為。
②列注意力(Column-wise Attention,CA)。列注意力如圖4所示,針對相似度矩陣的每一列計算注意力,先對相似度矩陣每一行求最大值,然后對列進行歸一化得到:
b∈?T,maxrow表示對行求最大值,加權后的實體表示向量為,重復T次得到加權后整個實體編碼矩陣,。
圖4 列注意力Fig.4 Column-wise attention
得到兩個方向的問題編碼和實體編碼之后,進行拼接得到問題感知的實體表示:
(4)輸出層:輸出層以問題感知的實體表示{gi},i=1,2,…,T為輸入,輸出每個實體為答案的概率:
使用兩層全連接層和softmax函數(shù)得到每個候選答案實體的概率,概率最大的即為預測答案,其中Wfc為全連接層的權重。
本文使用開放數(shù)據(jù)集MetaQA[26]進行實驗,該數(shù)據(jù)集是WikiMovies的擴展,包含用于單跳和多跳推理的40萬多個問題,數(shù)據(jù)分為1跳、2跳和3跳,具體數(shù)量如表1所示。此外,MetaQA還提供了一個知識圖譜,該知識圖譜包含13.5萬條三元組、4.3萬個實體以及9種關系。表2展示了MetaQA中三種跳數(shù)的問題形式。
實驗使用的操作系統(tǒng)為Ubuntu16.04,GPU使用顯存為32 GB的V100,開發(fā)環(huán)境為Python3.7、Pytorch 1.7.1。
表1 MetaQA數(shù)據(jù)集Table 1 MetaQA dataset
表2 MetaQA數(shù)據(jù)集問題(跳數(shù)示例)Table 2 MetaQA dataset questions(hop example)
兩個模型的具體參數(shù)設置如表3所示。其中預訓練詞向量采用GloVe,知識表示方法采用TuckER[27]。
表3 模型參數(shù)設置Table 3 Model parameters setting
為了加快學習速度,防止過擬合以及模型不收斂等問題,設置了EarlyStopping,其中Patience表示當模型在指定數(shù)量的epoch內沒有改進時,停止訓練。
本文和以下幾種基準模型進行比較:
(1)Bordes等人[2]基于子圖嵌入表示提出的模型,學習單詞和知識庫子圖組成的低維向量,向量用于給自然語言問題打分。
(2)VRN[26]:提出了一種端到端的變分學習算法,讓模型能夠處理問題中的噪聲問題,同時具有多跳推理能力。
(3)KV-MemNN[28]:提出了一種基于Key-Value Memory Network的模型,可以通過鍵-值對的形式編碼信息,并用于檢索。
(4)GraftNet[4]:引入了知識圖譜之外的非結構化文本用于數(shù)據(jù)增強,創(chuàng)建一個特定于問題的子圖,該子圖包含文本語料庫中的KG實體、關系和句子,然后使用圖表示學習方法來回答問題。
實驗結果(hit@1)如表4所示,其中基準模型的結果來自Zhang[26]和Saxena[23]。知識圖譜問答與機器閱讀理解相比較為簡單,因為數(shù)據(jù)都有一定的結構性并且答案一定存在于知識圖譜中,為了驗證當知識圖譜不完整時模型的性能,設計了50%KG,即以50%的概率隨機丟掉一條三元組。
表4 實驗結果對比Table 4 Comparison of experimental results %
表5 不同模型結果對比Table 5 Comparison of results of different models %
對于完整的知識圖譜,KR-BAT達到了很有競爭力的結果。當問題是1跳時,五個模型的結果較為接近,KR-BAT排名第三,性能略低于VRN和GraftNet,這是因為1跳問題為簡單問題,僅用一條三元組即可回答問題,并不需要模型具有推理能力,而KR-BAT為了提高推理能力,聚焦于建模長距離信息,包含了豐富的全局信息,損失了部分局部信息。當問題是2跳時,KR-BAT性能排名第二,僅比GraftNet低0.9%,卻大幅度由于第三名VRN(4%),這是因為GraftNet進行了數(shù)據(jù)增強處理,引入文本數(shù)據(jù)來輔助問答。當問題是3跳時,KR-BAT性能優(yōu)于其他基準模型,這說明該模型具有優(yōu)異的推理能力,能夠很好地回答多跳問題。
對于不完整的知識圖譜,KR-BAT在1跳、2跳和3跳問題上均大幅優(yōu)于其他基準模型。當知識圖譜不完整時,該任務對模型的鏈接預測能力要求很高,使用鏈接預測模型——TuckER來學習知識圖譜的知識表示,即使面對不完整的知識圖譜,也能通過模型進行知識補全,并把知識編碼到知識表示中。此外,還對比了不同知識表示學習模型對KR-BAT在不完整知識圖譜上的性能影響,結果展示在表5中。
本文提出了一種融合知識表示學習的雙向注意力模型用于知識圖譜問答,其核心包括:(1)主題實體預測模型,用于融合知識表示并且對自然語言問題中的主題實體進行預測,有效解決了未登錄實體和知識圖譜不完整問題。(2)雙向注意力模型,用于建模候選答案實體和問題之間的關系,捕捉答案和問題之間的信息,分析問題中的哪些詞對于選擇答案最重要以及哪些候選答案和問題相關,進行推理并選擇答案。在MetaQA數(shù)據(jù)集上驗證模型并與基準模型對比,在完整知識圖譜中模型達到非常有競爭力的性能,在不完整知識圖譜中,模型性能大幅優(yōu)于其他基準模型。
在未來的工作中,考慮提高模型的局部建模能力,以提高模型在簡單問題上的性能。此外,考慮將主題實體預測模型與雙向注意力模型結合為一個整體,構建端到端模型聯(lián)合訓練。