朱雅鳳,邵 清
(上海理工大學 光電信息與計算機工程學院,上海 200093)
知識庫問答(KBQA,Knowledge Base Question Answer)任務是指利用知識庫中的一個或多個知識三元組〈Sub,Re,Obj〉來回答自然語言問題.例如,問題“Who created the character Harry Potter” 可以用一組事實
為了檢測給定輸入問題的知識庫關系,現有的方案通常在實體鏈接生成多個候選關系的基礎上,將問題句子和候選關系名稱分別映射到向量,然后計算向量之間的相似性作為它們之間的相關性.關系檢測作為一個問題-關系匹配任務,大都遵循編碼比較范式(encoder-compare framework)[1-9]——這種方案存在兩個顯著的問題:
1)匹配視角單一:大多數方法只關注〈問題句子,候選關系名稱〉一個視角,沒有過多地關注問題句子中隱含的主體類型和客體類型信息,而不同的知識庫元素可以與問題的不同部分相匹配(例如問題詞通常更可能表示答案(客體)類型);
2)編碼比較框架存在信息瓶頸:一種常用的方案直接使用最大或平均池操作將序列壓縮成固定向量進行語義相似度的比較(Encoding-comparing mode),但導致了信息丟失,另一種對兩個序列先使用雙向注意力機制進行簡單的信息交互再進行聚合操作(Encoding-comparing model with bi-directional attention)來緩解上述問題,但是由于輸入信息有限,效果仍然不夠理想.此外,現有的關系檢測方法通常沒有考慮到KBQA的最終任務,而KBQA最終任務既需正確檢測關系也需正確檢測實體.
基于編碼比較范式的關系檢測存在兩個顯著的問題:
1)匹配視角單一;
2)編碼比較框架存在信息瓶頸.
本文對每個候選對象構造多個匹配單元,補充構造〈問題模式,主體類型〉匹配單元作為網絡的輸入,解決匹配視角單一問題.提出一種多視角層次匹配網絡M-HMN,使用問題-關系的雙向匹配層來來挖掘問題-候選關系之間的深層匹配信息,收集多個分散的證據,通過自匹配注意力層聚合不同重要程度的多個匹配單元的輸入,改善信息瓶頸問題.
表1 純實體鏈接無法區分同名實體的例子在上面
Table 1 Examples where pure entity links do not distinguish between entities of the same name

QuestionMIDEntityRelationwhowrotethebookgulliver'stravels?06znpjrGulliver'sTravels(Americanfilm)film/film/writtenby0btc7Gulliver'sTravels(Book)book/writtenwork/author………
關系檢測通常運行在實體鏈接的結果之上,然而我們觀察到現有的實體鏈接器往往無法區分同名實體.例如對于表1中的問題Who wrote the book gulliver′s travels,現有的實體鏈接器[4]無法區分問題提及的是Gulliver′s Travels(American film),還是Gulliver′s Travels(Book),而誤識實體的錯誤會在后續的關系檢測任務中繼續傳播,因為不同的實體候選對象通常連接到不同的關系,從而使實體鏈接成為KBQA系統的瓶頸.因此,我們在KBQA最終任務的評估中,使用一種簡易的實體重排序算法,利用M-HMN網絡進行實體消歧,使正確實體獲得比初始更高的排名,然后在一個更小、更為精準的候選實體集中,進行關系檢測.
本文的結構安排如下:第2節介紹了KBQA關系檢測的系統框架,第3節詳細介紹系統框架中的匹配模塊,即M-HMN網絡,第4節介紹我們的實體重排序算法,第5節介紹了實驗設置并分析結果,第6節介紹了該領域的相關工作,第7節總結全文.
本節介紹我們的 KBQA關系檢測的系統框架,首先明確文中概念的形式化定義,接著分別介紹輸入模塊、編碼模塊和匹配模塊.其中的匹配模塊即M-HMN網絡,將在第3節重點介紹.圖1描述了關系檢測的整個系統框架.
知識庫:一種大規模的語義網絡圖.形式上表達為一個二元組G=(E,R),其中結點e∈E代表實體,邊r∈R代表實體之間的各種語義關系.三元組〈esub,r,eobj〉∈G代表知識庫中的一條知識.
候選關系池:給定G=(E,R)和問題q提及的知識庫實體eq_sub,對于G中任意以eq_sub作為頭結點的三元組〈eq_sub,r,eobj〉∈G,Req_sub={r}刻畫問題以q以eq_sub為主體實體的候選關系池.
實體鏈接:給定原始問題q={q1,…,q|Nq|},實體鏈接將q中的實體提及eq_mention(其中emention?q)映射到給定的知識庫G的主體實體eq_sub.
關系檢測:給定一個問題模式Q,主體實體eq_sub和KB中的候選關系(鏈)池Req_sub={r1,r2…rk…r|R|},其中,主體實體eq_sub由實體鏈接標識.關系檢測計算rk與問題模式Q的匹配分數S(Q,rk),最終選取得分最高的關系(鏈)作為關系檢測的結果,形式如下:

圖1 關系檢測網絡系統框架Fig.1 Relation detection network system framework
(1)

匹配向量:給定任意匹配單元U=[Q,r],匹配層將其轉換為相互融合的雙向匹配向量T[Q,r].
輸入模塊對數據進行預處理,通過生成問題模式和生成多個匹配單元得到多對輸入視角.
生成問題模式:通過Q=f(q,e)得到原始問題q的問題模式Q,避免q中多余的實體單詞e干擾問題和正確候選關系之間的匹配.
生成多個匹配單元:知識庫元素(實體或關系)中蘊含的信息可以與問題的不同部分相匹配,我們生成以下三對匹配單元,并在模型中使用這三對輸入.
1)[Q,r

3)[Q,r
編碼模塊將輸入模塊的文本轉化為計算機可以處理的向量表示,包含編碼層和上下文表示層.
2.3.1 編碼層

2.3.2 上下文表示層
為了進一步利用周圍單詞的上下文線索來改進單詞嵌入,在編碼層的嵌入之上對所有匹配單元使用一個相同的BiLSTM網絡來進行序列建模.

(2)
(3)
(4)
(5)
(6)
(7)

(8)
(9)

關系檢測的核心任務是計算候選關系與給定問題之間的信息交互,為此,我們設計了能夠封裝并聚合多個匹配單元交互信息的M-HMN網絡,其具體實現在第3節描述.
多視角層次匹配網絡M-HMN由問題-關系雙向匹配層、自匹配注意力層以及輸出層構成.


圖2 雙向匹配機制模型圖Fig.2 Bidirectional matching mechanism model diagram
首先對每一對輸入的匹配單元U=[Q,r]計算其對齊矩陣:
A=QT·R
(10)
其中A∈Rn×m,A中的每個元素度量Q中每個單詞與R中每個單詞的語義相似度.在雙向匹配矩陣A之上,利用注意力機制[14,15]分別從兩個方向挖掘問題和關系之間的匹配信息,可以將其看作是問題關于關系的注意力R-to-Q和關系關于問題的注意力Q-to-R.
·R-to-Q利用點積來計算問題Q的注意力權重向量α:
(11)
(12)
其中向量α∈Rn表示R對于Q的注意力分布,Wr∈Rd×m和wr∈Rd是權重矩陣.接著利用問題的注意力權重向量α,得到關系-問題的匹配向量:Tr∈Rd
Tr=Q·α
(13)
·Q-to-R:采用相似的操作得到問題-關系匹配向量Tc∈Rd:
(14)
(15)
Tc=R·β
(16)
然后將關系-問題匹配向量和問題-關系匹配向量結合起來表示匹配單元U=[Q,r]最終的雙向匹配向量:
T[Q,r]=Tr⊕Tc
(17)
對于關系檢測任務,不同匹配單元的匹配向量具有不同的重要性.為了更好地收集這些向量的證據來進行關系檢測,使用一個自匹配注意力機制,該將這些信息向量與他們自身匹配,通過捕捉數據的內部相關性來細化向量的表示.該層的輸入是來自多個匹配單元的匹配向量,輸出是聚合后的問題-關系對表示向量.具體實現如下:
在問題-關系雙向匹配層獲得各匹配單元的雙向匹配向量之后,我們計算該向量的注意力分布:
T=[T[Q,r
(18)
V=tanh(Wh·T)
(19)
(20)
其中γ是注意力權重向量,衡量這些匹配向量的重要性,Wh和wh是權重矩陣.通過自匹配注意力層,最后得到問題-關系對表示D如下:
D=T·γ
(21)
最后我們將自匹配注意力層的輸出通過一個多感知層轉換為最終預測.訓練的目的是使訓練集中的正例獲得比反例更高的匹配分數,因此兩兩的排序損失定義為:
Loss=max (0,λ+S(Q,r-)-S(Q,r+))
(22)
在KBQA系統中既要正確檢測關系,也要正確檢測實體.本節利用M-HMN對初始的候選實體重新排序,實現從一個更小的候選實體集中確定回答問題的知識庫核心關系(鏈),以提高關系檢測的準確度.表2詳述了該實體重排序算法.
表2 實體重排序算法
Table 2 Entity reranking algorithm

輸入:問題q,知識庫GG=(EE,R),初始的候選實體列表ELK(q)={e1…ei…e|E|},其中每個實體的得分為Slinker(q,e).輸出:重排序的實體列表ELK'rerank(q)初始化q的整個候選關系池Rq=?;fore∈ELK(q)do 利用GG生成e的候選關系池Re={r1…rj…r|R|}; forr∈Redo 利用M-HMN網絡計算與q的匹配分數Sr(q,r); 計算e的類型r 實驗使用標準數據集—SimpleQuestions(SQ)[16],數據集分為train(79,590)、valid(10,845)和test(21,687),其中的每個問題都已經標注了提及的知識庫實體和關系.該數據集只含有單關系問題,即每個問題可用一個知識三元組回答.我們使用一個包含2M實體的Freebase[21]子集(FB2M)作為知識庫,以便與之前的研究相比較. 實驗使用300維預訓練Glove[11]詞向量表來對單詞嵌入進行初始化,對非詞匯表的關系和單詞進行隨機初始化,采樣值均勻取[-0.5,0.5],嵌入值在訓練過程中更新,LSTM的隱藏層設置為300維,dropout比例為0.2.為了訓練模型,在batch為64的小批處理設置中,使用初始學習率為0.001的Adam[18]優化器來更新參數,訓練過程中每隔30個epoch進行指數衰減. 所有的實驗都在一臺使用Nvidia GTX1080 GPU的機器上進行,在Keras2中實現了以Tensorflow3為后臺的神經網絡.我們選擇在開發集上工作的最好的模型,然后在測試集上對其進行評估. 為了探究M-HMN的效果,本文在關系檢測和KBQA終端任務兩個方面進行消融研究并與幾個基線模型進行對比,下面先簡要介紹實驗步驟. 5.3.1 關系檢測效果驗證 對于關系檢測任務,我們采用Yin等人[4]發布的SimpleQuestions問題關系對集合,基于Freebase子集(FB2M)創建正例和反例,來檢驗M-HMN模型緩解信息瓶頸的效果.使用參數設置中的數據,對M-HMN、去掉自匹配注意層的M-HMN模型、將QR雙向匹配層替換為encoding-comparing model或 encoding-comparing model with bi-directional attention的M-HMN模型進行訓練.幾個模型的網絡參數均為模型學習最好的一組,即獲取準確率最高、代價最小的一組參數數值. 5.3.2 KBQA評估效果驗證 對于一個好的關系檢測模型,它應該能夠在KBQA最終任務上也展現出強大的效果.對于KBQA評估,我們的方法從Yin等人[4]發布的實體鏈接的結果開始,首先利用第4節提出的排序算法對初始實體鏈接結果進行重排序,排序后的正確的實體應當具有比初始更高的排名,然后綜合實體重排序和關系檢測得到KBQA的結果.為了探究我們的方法對KBQA終端任務的貢獻,實驗對使用重排序(Yin[4]的實體鏈接結果+實體重排序+M-HMN關系檢測)和不使用重排序的模型及已有基線相比較,在相同環境下獲取其準確率. 5.4.1 關系檢測評估結果 表3展示的是不同消融設置下的M-HMN(第5-10行)以及幾個基線AMPCNN[4]、HR-BiLSTM[5]、ABWIM[9]、BiMPM[8]模型在關系檢測任務上輸出的準確率.首先,7-10行中多匹配單元輸入的效果總優于單一輸入,這表明多對特征輸入可以為模型提供豐富的匹配信息以備處理,從輸入源頭緩解了信息瓶頸.第6行去掉M-HMN的自匹配注意層后,只簡單將前一層得到的多個匹配向量串聯,比起M-HMN(第5行)準確率下降0.75%,表明了有效聚合多個匹配向量對于關系檢測的重要性.正是由于自注意力擅長捕捉稀疏數據的內部相關性,使重要區域的觀察精細度更高,才能使聚合得到的最終向量對于重要信息的表達質量更高.第5、7-10行表明,我們的QR雙向匹配層比起傳統的Encoding-comparing model及Encoding-comparing model with bi-directional attention,對于序列之間重要匹配信息的學習能力更強.我們的關于構造多個匹配單元的思想和整個模型架構與基線BiMPM[8]最接近,但在匹配模塊上有所不同.總的來說,多對特征輸入提供豐富匹配信息,QR雙向匹配層分別編碼學得序列對的匹配向量,自注意力層有效聚合多個向量,使得我們的M-HMN能夠有效緩解信息瓶頸,呈現出比其他幾個優秀基線模型(1-5行)更高的準確率. 表3 SimpleQuestions上關系檢測的準確率 圖3展示的是M-HMN中QR雙向匹配層注意力熱力圖,橫軸為替換掉實體的問題模式,縱軸為候選關系的不同特 圖3 QR雙向匹配層注意力熱力圖Fig.3 Attention thermogram for QR bidirectional matching layer 征(Sub_type,Re_name,Obj_type),與問題模式構成不同的匹配單元.圖中顏色越深表示其相關程度越高.可以看到,注意力能夠有效對齊兩個序列,捕捉到相似詞串間的語義相關性(比如問題詞與答案類型,問題謂語與關系名稱,問題的主題定語與實體類型),這有助于之后計算序列的注意力權重得到高質量的匹配向量. 圖4展示了問題who wrote the book gulliver′s travels的幾個候選關系利用自匹配注意力層得到的不同匹配向量的權 圖4 自匹配注意力層注意力權重分布情況Fig.4 Distribution of attention weight in self-matching attention layer 重分布情況.其中r+表示正確的候選關系,r-表示錯誤的候選關系.可以看到正確關系中各匹配向量的權重分布較為集中,而錯誤關系中僅僅表示Sub_type的匹配向量權重較大,這表明正確關系中的各個類型的匹配向量均捕捉到了重要的匹配信息,在貢獻程度上相當,而錯誤關系當依賴于正確的實體鏈接時,僅僅表示Sub_type的匹配向量捕捉到了匹配信息,因此錯誤關系中幾個匹配向量的權重大小較為懸殊.自匹配注意力層的輸出向量即為各匹配向量的加權和,它使得稀疏的匹配向量在不同權重的刻畫下變得更為精細,也即自匹配注意力層能夠選擇信息性單元來預測候選關系的正確與否. 表 4 為不同模型訓練一個epoch的平均耗時對比.M-HMN的模型架構和思想與其基線BiMPM[8]最為接近,但與需要對每個匹配單元中的anchor 和target使用復雜的匹配策略函數計算匹配向量的BiMPM[8]相比,M-HMN利用一個簡單的雙向匹配機制即可得到有效的匹配向量.在計算機硬件配置與模型基本參數相同的情況下,M-HMN不但準確率更高(見表3),而且訓練一個epoch的平均耗時也比BiMPM更少,訓練速度得到了很大的提高.由表3和表4可知,將QR雙向匹配層替換為Encoding-comparing model with bi-directional attention的模型,其準確率比BiMPM[8]高0.25,而訓練一個epoch的平均耗時更少,這表明我們的模型在較小的時間復雜度上即可獲得與基線模型相當的準確率. 表4 不同模型訓練一個epoch的平均耗時對比 RowModelMinutes/eachepoch1BiMPM[8]52.02M-HMN48.73去掉自匹配注意層的M-HMN47.04將QR雙向匹配層替換為Encoding-com-paringmodelwithbi-directionalattention46.25將QR雙向匹配層替換為Encoding-com-paringmodel40.1 5.4.2 KBQA評估結果 對于KBQA評估,我們將利用M-HMN進行實體重排序的結果與初始實體鏈接結果進行了比較,圖5顯示了前K個實體候選項的recall(K∈{1,5,10,20,50,100,400}),其中recall計算為實體候選項前K個包含正確主題實體的問題的百分比.第一行(K=1)可以看作是實體檢測的精度.從圖5可以看出,從top 1到top 100,重排序后的recall都高于原始的實體鏈接結果,這證明了利用M-HMN進行實體重排序的有效性——重排序后,在較小的候選集中,就能擁有更多有用的信息,并且正確的實體具有更高的排名. 圖5 重排序后TopK實體候選項recall對比Fig.5 Recall comparison of TopK entity candidates after reranking 在KBQA最終任務中,當且僅當預測的實體、關系與事實實體、關系都相符時,問題才算回答正確.表5展示了我們的方法在KBQA最終任務上的結果.由于ABWIM、BiMPM均未發布他們的終端KBQA結果,我們只與兩個基線AMPCNN、HR-BiLSTM進行比較.可以看到,我們的方法在FB2M設置下的準確率達到78.9%,比最先進HR-BiLSTM高出1.9%.第4行的消融實驗表明刪除實體重新排序步驟會顯著降低分數,由于重排序依賴于M-HMN網絡,這表明我們的M-HMN模型對KBQA終端任務性能有著顯著的提升. 表5 SimpleQuestions上KBQA的準確率 RowModelAccuracy1AMPCNN[4]76.42HR-BiLSTM[5]77.03M-HMNwithentityre-ranking78.94M-HMNwithoutentityre-ranking78.0 KBQA的主要目標是通過從知識庫中獲得最佳支撐三元組〈主題-謂詞-對象〉(SPO)來回答給定的問題. 關系推斷任務是整個KBQA任務的核心部分.Bordes[1]首先將深度學習應用于KBQA的關系推斷,此后又開發了各種模型.這些方法大都遵循編碼比較范式(encoder-compare framework)[1-9],將問題和候選對象分別映射到向量,然后計算向量之間的相似性作為它們的語義相似性.這些方法的主要區別在于編碼器模型(RNN或CNN)和輸入粒度(詞級或字符級和關系級)的不同.Dai等人[2]提出了relation-level RNN-based approach,將關系作為單一token,用TransE學習的預訓練向量進行關系初始化,解決了訓練數據中未見關系(unseen relation)的學習問題.Golub等人[3]提出了一種基于增強注意力架構的字符處理方法,引入注意力機制來更好地處理較長的序列.此外,字符級的表示方法不僅減小了參數的大小,而且提高了對詞匯表外單詞的魯棒性,使用CNN而不是LSTM來嵌入KB條目,提高了計算效率.Yin等人[4]為了更好地匹配謂詞,采用傳統的CNN層對問題和關系進行編碼,提出一種關注最大池機制來總結問題表示,以便關系表示能更有效地與以關系為中心的問題表示相匹配.Yih等人[17]使用字符三元組作為問題和關系方面的輸入.Yu等人[5]使用具有不同粒度輸入的Bi-LSTM(包括word-level和relation-level表示)來表示關系,問題由具有不同抽象級別的分層殘差Bi-LSTM網絡來表示,使得問題匹配不同級別的關系信息的質量更高.Zhang等人[9]提出學習問題和關系之間的詞級交互,并將注意力機制引入到單詞之間的細粒度對齊中,用于KBQA的關系檢測. 以上方法雖然效果顯著,但存在匹配視角單一和信息瓶頸等問題.受Yu等人的BiMPM[8]的啟發,我們利用來自問題句子和KB的輔助信息,構造多個匹配單元,并提出一種多視角層次匹配網絡來融合來自多個匹配單元的信息,一定程度上緩解了信息瓶頸. 在本文中,我們提出了一種新穎的多視角層次匹配網絡M-HMN,用于知識庫問答(KBQA)的關系檢測問題.該方法利用來自問題和KB的輔助信息,挖掘問題-關系的深層匹配信息,取得了較好的實驗結果.本文還探索了提出的M-HMN關系檢測網絡對KBQA終端任務的貢獻.在未來的工作中,我們將擴展我們的方法來處理更多多關系問題,如GraphQuestions[19]、ComplexQuestions[20],多關系問題有更多接近人類真實世界的問題,并且需要對知識庫進行更復雜的推理.5 實驗結果分析
5.1 數據集
5.2 參數設置
5.3 實驗設計
5.4 實驗結果與分析
Table 3 Accuracy of relation detection for SimpleQuestions dataset

Table 4 Mean time comparison of training an epoch by different models

Table 5 Accuracy of KBQA for SimpleQuestions dataset
6 相關工作
7 結 論