何儒漢,唐 嬌,史愛武+,陳 佳,李相朋,胡新榮
(1.武漢紡織大學 數學與計算機學院,湖北 武漢 430000; 2.武漢紡織大學 湖北省服裝信息化工程技術研究中心,湖北 武漢 430000)
隨著互聯網信息的快速增長,出現了許多大型知識庫,如YAGO和Freebase,知識庫問答已成為自然語言處理(natural language processing)領域的研究熱點,基于知識庫的問答(knowledge base question answer,KBQA)是指給定一個自然語言問題,通過對問題進行語義理解和分析,然后利用知識庫中三元組進行查詢和推理并得到答案,其中涉及的命名實體識別和關系抽取等技術對信息檢索、文本分類和機器翻譯等自然語言處理領域有重要的應用價值。
現有的知識庫問答方法如語義解析和信息抽取雖取得較好的效果,但較依賴先驗知識和人工定義的規則模板,而深度學習技術使用端到端的思想將候選關系編碼映射到同一向量空間中再進行比較,繞開了最困難的問句理解步驟,但結構化的知識庫與自然語言問題之間存在差異,加上編碼過程中向量聚合容易丟失原始信息,知識庫問答仍存在較大的挑戰。
為了解決知識庫問答中一詞多義和信息丟失問題,本文提出了一種基于實體消岐和多粒度注意力機制的知識庫問答方法,融合雙向長短時記憶網絡-條件隨機場(BiLSTM-CRF)和實體消歧進行實體鏈接,結合雙向門控循環單元(BiGRU)網絡使用兩個注意力機制(attention mecha-nism)從不同的粒度對問題模式和候選關系進行建模,捕獲問題和候選關系之間的深層匹配特征,該模型在SimpleQuestions[1]數據集上召回率和準確率均得到了明顯的提升。
隨著深度學習在自然語言處理領域的迅速發展,自2015年以來,深度學習方法在知識庫問答中得到了廣泛的應用,并取得了良好的效果。現有的KBQA深度學習方法大多遵循編碼-比較(encoding-comparing)框架[2,3],首先對問題中的實體進行識別,在知識庫中查詢與該實體相關的關系構成關系候選,通過深度神經網絡將候選問題和關系名稱映射到一個公共的嵌入空間中,計算問題和候選關系的語義相似性來得到答案。整體上,知識庫問答主要分為兩個步驟:①實體鏈接,對于一個給定問題,識別問題中的實體,并在知識庫中查找該實體,組成候選實體;②關系檢測,根據實體候選得出候選關系,計算問題和候選關系的語義相似性,尋找最能正確描述問題和答案之間聯系的候選關系。
在以前的工作中,實體鏈接通常使用n-gram方法來搜索具有常見問題子串的實體,但這樣產生的候選實體數量較多,包含大量的噪聲數據。為了減小搜索范圍,文獻[4]使用雙向的長短期記憶(LSTM)和隨機條件場(CRF)來標注問題中的實體,文獻[5]使用BERT訓練語言模型來表示語句特征從而更好地識別實體,文獻[6]使用雙向的準循環神經網絡在序列維度和特征維度上并行獲取序列來進行實體識別,雖然這些方法有效提高了實體識別的準確率,但是無法較好解決實體一詞多義和匹配不精準的問題。
從實體開始到確定應答路徑的過程稱為關系檢測,由于知識庫中存在大量的關系,關系檢測通常被認為是一個選擇問題,主要通過計算問題與候選關系之間的語義相似度并排序來實現。在提取問題和候選關系特征時,文獻[7]使用詞級注意力來自動學習不同關系之間的聯系,文獻[8]使用記憶網絡對輸入的信息進行建模,文獻[9]使用卷積神經網絡和注意力機制從詞層和語義層來匹配問題和關系,這些方法較好學習了問題和關系之間的深層匹配信息,但在計算相似性前需要將問題和關系壓縮成固定維向量,容易導致一些重要信息丟失。
基于此,本文提出了一種基于實體消岐多粒度注意力機制的知識庫問答方法,該模型在實體鏈接階段,使用BiLSTM-CRF序列標注網絡進行命名實體識別,針對得到的大量同名實體的噪聲數據,根據詞性抽取問題中關系詞與候選關系進行相似性計算并排序,達到了實體消歧的效果,減少了對后續工作的累計錯誤傳播。在關系檢測階段,為了改善信息丟失問題,提出了一種基于多粒度注意力機制的方法,分別從單詞級和關系級對候選關系進行表示豐富關系語義信息,結合BiGRU網絡使用兩種注意力機制從不同的粒度對問題模式和候選關系進行建模,注意力機制有效聚合輸入,改善了信息丟失問題,提高了關系檢測的準確率。
本文的研究基于Freebase知識庫,Freebase是Facebook于2015年公開的一個針對單一事實的結構化知識庫,該知識庫中存儲著大量描述事實的三元組,由事實主體subject、關系relation和客體object組成,其中KB={G1,G2,…Gf},G=(S,R,O)。 SimpleQuestions中的每一個問題對應著Freebase知識庫中的一個三元組事實,問題集合可以表示為Q={q1,q2,…qf}。 知識庫問答可以通過查詢知識庫的G來回答單關系問題,需要將問題Q和實體S、 關系R進行查詢匹配,若匹配的實體S和關系R正確,則該三元組中最后一個元素O便是正確答案,如圖1所示,本文知識庫問答整體上分為命名實體識別、實體消岐和多粒度注意力匹配3個步驟:
(1)命名實體識別,主要識別問題中提到的實體,對于一個自然語言問題Q, 找到問題中的實體提及M, 其中M∈Q, 然后查詢實體提及M在知識庫中的映射,組成候選實體E。
(2)實體消岐,主要依據問題關系詞和候選關系的相似性對候選實體進行排序,縮小候選實體范圍,緩解了候選實體一詞多義的問題。
(3)多粒度注意力匹配,主要為了找到最能描述問題答案的關系,從多個粒度對問題和候選關系的相關性進行注意力匹配,最后計算問題模式P和候選關系R的語義相似性,選取相似性最高的候選關系對應的object作為問題的答案。

圖1 知識庫問答流程
命名實體識別作為知識庫問答的第一步極為重要,實體識別的準確性將直接影響關系檢測,它的主要任務是正確標注出給定問題Q中的實體提及M, 可以看作是一個0-1序列標注模型,本文標注實體時采用BIO模式,將問題中每個元素標注為“B-X”、“I-X”或“O”,其中“B-X”表示此元素屬于X類型且在實體的開頭,“I-X”表示此元素屬于X類型且在實體的中間,“O”表示不屬于任何類型,如對于問題“Who is Yao Ming’s wife”經過實體識別后標注結果如圖2所示。

圖2 實體標注結果

(1)
式中:A為輸出的分數矩陣,表示在時間順序上從yi-1標簽到yi標簽的概率, p[yi-1,yi] 為輸出標簽的轉移得分值,經過命名實體識別后得到了實體提及,在知識庫中查詢與實體提及相同的實體組成候選實體E, E={e1,e2,…et}。

圖3 命名實體識別模型
一般同一個實體具有不同的類型,如“apple”既可是水果也可以是蘋果公司,為了進一步縮小候選實體的范圍,考慮到問題中一般已包含描述實體和答案的關系詞,如問題“Who is Yao Ming’s wife?”,對應知識庫中正確的三元組為“people/person/spouse”,問題中“wife”關系詞與三元組中候選關系“spouse”對應,由此可知,計算問題中關系詞和候選關系的相似性有助于減少同名實體的影響。
在確定問題中關系詞時,首先去掉問題中的實體,剩下的單詞根據一定的規則進行詞性篩選,本文使用NLTK對問題進行分詞及詞性標注,NLTK是自然語言處理庫,具有豐富的英文分詞工具,并且在去除停用詞、詞干化處理方面表現優異。問題中常見的詞性有動詞、名詞、疑問代詞、形容詞和副詞等,跳過對計算相似性沒有價值的疑問代詞、形容詞和副詞,然后選取問題中名詞(film、wife、school等)和動詞(write、born、say等)組成問題關系詞QR,QR={Qr1,Qr2,…Qri}。
在計算問題關系詞和候選關系相似性[10]時,由于字符串相似度匹配僅考慮了字面相似度,故采用字符串相似度和語義相似度結合的計算方式,同時獲取關系詞和關系字面和語義上的匹配。其中字符串相似性sim1使用歐式距離相似度作為判斷依據,如式(2),式中x代表關系詞字符串,y代表候選關系字符串。語義相似性sim2通過計算余弦相似性實現,如式(3),式中x代表關系詞向量,y代表候選關系向量
(2)
(3)
根據相似性sim(x,y) 的高低對候選關系進行排序,相似性由字符串相似性和語義相似性共同組成,計算如式(4),取排名靠前的候選關系進行實驗,實體消岐有效篩選出與正確實體類型不同的噪聲數據,不僅縮小了候選實體的范圍,而且提高了候選關系的準確性
sim(x,y)=0.5sim1+0.5sim2
(4)
多粒度注意力匹配的目的是找到最能描述問題和答案的關系,通常被定義為一個序列匹配問題,盡管Freebase中問題是自然詞序問題,但如何將一個關系表示為序列仍存在挑戰。為了豐富關系語義,獲取問題模式和候選關系深層匹配特征信息,本文構建了P與R之間的兩個相關級別即單詞級和關系級的匹配,并采用2個層次的注意力機制進行細粒度對齊,問題與不同粒度關系的層次匹配有助于計算它們之間的語義相似度。計算問題模式P和候選關系R之間的每個關系r的語義相似度s(P,r), 并選擇得分最高的關系鏈作為最終結果,多粒度注意力匹配模型如圖4所示
(5)

圖4 多粒度注意力匹配模型
2.4.1 關系編碼層

r=Bi-GRU([r1,r2,r3,…rR])
(6)
2.4.2 問題模式編碼層
為了減少實體對特征匹配的干擾,將問題中的實體用
P=Bi-GRU([w1,w2,w3,…wQ])
(7)
2.4.3 多粒度注意力層
注意力層計算包括問題模式P對于候選關系r和候選關系r對于問題模式P的2個粒度的深層注意力匹配信息,2個注意力機制的計算方式相同,注意力層旨在學習問題與關系之間的細粒度交互,能夠將內部經驗和外部感覺對齊來增加內部區域的觀察精細度從而可以快速提取稀疏數據,關系的每個部分對問題的關注程度不同從而決定問題如何表示,將注意的程度作為問題中每個單詞的權重。以問題模式P的編碼層輸出對于候選關系r的編碼層輸出視為注意力機制表示為例,對于候選關系中的每一個關系ri, 問題模式wi的注意力表示pi計算如下
(8)
wi,j=vT·pi·WT·rj
(9)
(10)
式中:wi,j代表問題模式中單詞wi和候選關系中單詞rj之間的相似度,v和w均是可學習的矩陣,ai,j是問題中單詞與關系之間的注意權重,代表問題中第i個單詞對關系中第j個單詞的注意力權重。
2.4.4 輸出層
經過問題和關系匹配,可以得到4個不同方面的特征匹配分數 (s1,s2,s3,s4), 這里的運算是兩個向量的點積,它們的相似性由以下公式計算
si=pi?ri(i=1,2,3,4)
(11)
為了獲取注意力層和編碼層的高級交互特征信息,最后使用一個線性層來學習它們各自對整體匹配分數s(p,r) 的貢獻
s(p,r)=Sigmoid(WT[s1,s2,s3,s4])
(12)


表1 SimpleQuestions數據集劃分
在訓練過程中,使用Glove300維詞向量初始化單詞嵌入,通過均勻采樣(-0.25,0.25)中的值,對詞匯表外的關系詞和單詞即OOV(out of vocabulary)進行隨機初始化,嵌入值在訓練過程中更新。關系GRU有2層,GRU隱藏層為128維,關系向量維度為300,問題模式GRU層數為2,GRU隱藏層維度為128,為了訓練模型,使用Adam優化器來更新參數。
為了驗證模型的有效性,本文將實驗結果與最近在SimpleQuestion數據集上取得較好實驗效果的4個模型進行了比較,SimpleQuestions數據集準確率對比見表2,另外分別分析了實體檢測和關系檢測的實驗結果。

表2 SimpleQuestions數據集準確率
4個比較模型分別為:文獻[11]提出基于character level的注意力機制編碼模型,很大程度改善了OOV問題;文獻[1]提出的記憶網絡模型,通過引入長期記憶組件(long-term memory component)來解決神經網絡長程記憶困難的問題;文獻[12]使用殘差網絡解決訓練時深層的LSTM陷入局部最優解問題,獲取問題和關系之間的層次匹配;文獻[13]將擅長處理空間相關數據的CNN與能較好按照順序處理時間信號的RNN結合,并使用注意力機制同時跟蹤實體和關系來捕獲綜合分層信息;之前的模型忽視了問題關系詞和候選關系之間的聯系,并且無法較好解決信息丟失問題,本文通過BiLSTM-CRF模型獲得了序列級別的標簽信息,使得標注的性能得到了進一步的提升,通過實體消歧提高了實體鏈接的準確率,再從單詞級和關系級分別對候選關系進行建模,使用2種注意力機制捕獲問題和關系之間的深層匹配信息,表征更加豐富,提高了模型的準確率。
為了檢驗本文實體消岐模型的實驗效果,分別選取文獻[14]和文獻[13]的方法與本文方法進行對比,這些方法候選實體排名前Top K的召回率見表3。

表3 候選實體排名TopK召回率
由表3可知,本文實體鏈接模型在召回率上取得了最佳效果,驗證了本文實體消岐方法的有效性,文獻[14]使用關系檢測來增強聯合事實選擇,利用多級編碼和多維信息來增強整個過程,文獻[13]直接檢測問題中的實體提及省略實體匹配使得模型更加簡單化,這些模型均忽視了問題中關系詞與候選關系之間的聯系,不能有效解決候選實體中存在大量不同類型的同名實體的問題,故在召回率上表現略不足,本文模型在進行BiLSTM-CRF網絡序列標注后,通過觀察發現問題關系詞與候選關系的內在聯系,計算它們之間的相似性來對候選實體進行消岐,不僅避免召回過多的噪聲實體,而且提高了候選實體的準確率。
將本文的關系檢測模型與幾個基線模型進行對比來驗證實驗有效性,基線模型包括APMCNN[15]、HR-BiLSTM[12]、ABWIM[16]和AR-SMCNN[13],這些模型都使用編碼-比較框架,首先將問題和關系映射為向量,然后通過向量比較得到語義相似性。實驗使用基于SimpleQuestions構建的用來評估關系檢測的數據集,同時對本文模型進行消融實驗,通過去除模型中實體消岐或者單詞級匹配等來進一步驗證該模塊對整體實驗效果的影響,關系檢測實驗對比效果及消融實驗效果見表4。

表4 SimpleQuestions關系檢測準確率
由表4可知,本文基于多粒度注意力機制模型取得了較好的成績,模型準確率比AR-SMCNN[13]提高0.4%,相比于AR-SMCNN,本文模型在實體鏈接時,使用了實體消歧減少了噪聲關系,減少了實體錯誤對關系檢測的影響,故關系檢測模型準確率高于AR-SMCNN模型,而消融實驗去除實體消岐時,準確率下降了0.4%,驗證了實體消岐對關系檢測任務有著重要的作用。當去除單詞級或者關系級注意力編碼時,準確率分別下降0.9%和0.5%,可看出單詞級和關系級結合編碼可以互補,不僅考慮了單詞和短語信息,而且包含了全局上下文信息,而多粒度注意力機制能夠捕獲稀疏數據的內部相關性,使得重要區域的觀察精細度更高,最終聚合得到的向量對于重要信息的表達質量更高,注意力機制從兩個層次捕獲問題和候選關系之間的深層匹配信息,豐富了語義信息從而提高了關系檢測準確率。而在去除注意力機制時,關系檢測準確率下降的最多為1.9%,驗證了多粒度注意力機制的有效性。
由于自然語言的語義多樣性和知識庫中存在大量的關系,知識庫問答一直存在諸多的難點。本文提出了一種基于實體消岐和多粒度注意力的知識庫問答方法,在實體鏈接階段,使用BiLSTM-CRF進行序列標注,為了排除同名實體的干擾減少候選實體的范圍,使用一定的規則提取問題中關系詞并根據它與候選關系的相似性進行實體消歧,縮短了知識庫問答的時間提高了問答的準確率。在關系檢測階段,從多個粒度對關系進行編碼,同時使用2種注意力機制對問題和多粒度關系表示分別進行建模,學習問題和關系之間多層次的交互信息。實驗結果表明,本文模型的準確率相比之前的方法有明顯的提升。在今后的工作中,我們將繼續研究如何將模型應用到多關系問答上。