百分點認知智能實驗室:基於知識圖譜的問答技術和實踐

編者按

隨着互聯網軟硬件相關技術的飛速發展,人們逐漸從信息時代進入智能時代。知識圖譜作爲承載底層海量知識並支持上層智能應用的重要載體,在智能時代中扮演了極其重要的角色。而利用知識圖譜支撐上層應用仍存在諸多挑戰,因此基於知識圖譜的自然語言問答展開研究是十分有必要的。

時值2020年新型冠狀病毒疫情爆發,2020年全國知識圖譜與計算語義大會(China Conference onKnowledge Graph and Semantic Computing 2020)以新型冠狀病毒爲核心構建了包括新冠百科、健康、防控等多個高質量的知識圖譜, 並於此針對知識圖譜構建的關鍵技術及其核心應用提出四個評測子任務。

北京百分點信息科技有限公司認知智能實驗室參加了該評測任務中的“知識圖譜的自然語言問答”比賽,經過長達3個多月的激烈角逐,百分點認知智能實驗室在比賽數據集上得分0.90106,位列A榜第三名。

本文主要介紹實驗室在本次比賽和基於知識圖譜問答業務的實踐中使用的技術方案。

本文作者:易顯維、蘇海波

一、背景介紹

知識圖譜的目的是給人工智能應用提供知識支撐,使得人工智能系統尤其是其中的決策算法在決策過程中能夠參考到現實世界中豐富的知識。但是一直以來如何利用其中的知識是人工智能從感知走向認知的一個關鍵問題。在這個背景下,基於知識圖譜的問答成爲人工智能算法利用知識圖譜的知識的一個突破點,解決了這個問題,意味着人機交互的重要變革,象徵着計算機對於人類的自然語言理解產生了巨大進步。

相比於傳統的搜索引擎獲取知識的方式,智能問答系統基於自然語言交互的方式更符合人的習慣。隨着人工智能的進一步發展,知識圖譜在深度知識抽取、表示學習與機器推理、基於知識的可解釋性人工智能、圖譜挖掘與圖神經網絡等領域取得了一系列新的進展。這些進展讓知識圖譜的問答系統需要面對的兩個問題(問題的理解和問題到知識圖譜的語義關聯)得到了較好的解決,使得知識圖譜智能問答工程應用成爲現實。百分點認知智能實驗室在多個行業積累了豐富的基於知識圖譜問答的技術實踐經驗。

二、問題示例

數據集以自然語言問句和對應的SPARQL查詢語句標記組成,這裏簡要介紹SPARQL查詢語言:

SPARQL [1] (SPARQLProtocol and RDF Query Language),是爲RDF開發的一種查詢語言和數據獲取協議。其語法由三元組組成,其中?x所在where語句中的位置表示需要查詢的是哪一個要素。

列舉數據集中三種典型問題爲例,這三種問題代表了數據集中三種不同的查詢類型,查詢類型見每個問題的查詢路徑圖:

問題:武漢大學出了哪些科學家

查詢語句:select ?x where {?x<職業><科學家_(從事科學研究的人羣)>.?x<畢業院校><武漢大學>.}

答案:"<郭傳傑><張貽明><劉西堯><石正麗><王小村>"

百分點認知智能實驗室:基於知識圖譜的問答技術和實踐
圖1. 第一種問題的查詢路徑

問題:凱文·杜蘭特得過哪些獎?

查詢語句:select ?x where { <凱文·杜蘭特> <主要獎項> ?x . }

答案:“7次全明星(2010-2016)” “5次NBA最佳陣容一陣(2010-2014)” “NBA得分王(2010-2012;2014)” “NBA全明星賽MVP(2012)” "NBA常規賽MVP(2014)"

百分點認知智能實驗室:基於知識圖譜的問答技術和實踐
圖2. 第二種問題的查詢路徑

問題:獲得性免疫缺陷綜合徵涉及哪些症狀?

查詢語句:select ?x where {<獲得性免疫缺陷綜合徵><涉及症狀>?x.}

答案:"<淋巴結腫大> <脾腫大> <心力衰竭> <腎源性水腫> <抑鬱> <心源性呼吸困難> <低蛋白血癥> <不明原因發熱> <免疫缺陷> <高凝狀態> <右下腹痛伴嘔吐> "

問題:詹妮弗·安妮斯頓出演了一部1994年上映的美國情景劇,這部美劇共有多少集?

查詢語句:select ?y where {?x<主演><詹妮弗·安妮斯頓>.?x<上映時間>""1994"".?x<集數>?y.}

答案:"236"

百分點認知智能實驗室:基於知識圖譜的問答技術和實踐
圖3. 第三種問題的查詢路徑

三、技術方案

百分點認知智能實驗室:基於知識圖譜的問答技術和實踐
圖4. 技術方案框架圖

技術方案如上圖,下面以“莫妮卡·貝魯奇的代表作?”這個問題舉例說明該技術方案中的步驟。

第一步:我們將該問題進行命名實體識別(預處理模塊:實體識別),得到名爲“莫妮卡·貝魯奇”的實體提及,將該實體提及輸入別名詞典和ES中,得到備選實體名稱。

第二步:將問題輸入我們的問題結構分類模型(預處理模塊:問題分類),得到該問題屬於一跳問實體的問題類型,得知該問題有一個實體槽位和一個關係槽位需要填充(預處理模塊:槽位預測)。

第三步:將第一步中得到的實體通過語義特徵和人工特徵進行實體消歧,得到真正的實體爲<莫妮卡·貝魯奇>(實體分析模塊:實體鏈接)。

第四步:根據第二步中預測的槽位,將實體填充到該查詢語句中得到select ?xwhere {<莫妮卡·貝魯奇><>?x.}(查詢生成模塊:槽位填充)。

第五步:搜索<莫妮卡·貝魯奇>的所有關係名稱,和原文進行語義匹配並排序,得到關係<代表作品>(查詢生成模塊:路徑排序)。

第六步:將代表作品填入第二步所預測的關係槽位中,得到查詢語句select ?xwhere {<莫妮卡·貝魯奇><代表作品>?x.},並轉化爲圖數據庫查詢語言(查詢生成模塊:槽位填充)。

第七步:將第六步中得到的查詢語言在圖數據庫中查詢並得到答案,並進行答案校驗(答案驗證模塊:驗證答案的實體類型)。

四、問題分類

上面方案中的第二步需要對問題進行分類,問題的分類標準有如下幾個考量:

(a)問題生成的知識圖譜查詢語句有幾次查詢,稱爲幾跳問題;

(b)每一跳的查詢中分爲是問實體還是問關係;

(c)查詢過程中是夾式還是鏈式。

夾式:爲多個實體查詢不同的關係之後求交集。

鏈式:多個實體依次求關係,再通過關係求實體。

百分點認知智能實驗室:基於知識圖譜的問答技術和實踐
圖5. 問題類型示意圖

根據上面的分類標準,問題可以具體劃分爲如下三類:

(a)一跳問實體類型:

莫妮卡·貝魯奇的代表作? select ?x where {<莫妮卡·貝魯奇><代表作品>?x.} select ?x where {<><>?x.}

其括號內結構爲<主><謂><賓>,得到主語、謂語,問賓語。

(b)二跳鏈式問實體類型:

發明顯微鏡的人是什麼職業?select ?y where {<顯微鏡><發明人>?x.?x<職業>?y.} select ?y where {<><>?x.?x<>?y.}

其括號內結構爲<主1><謂1><賓1><主2><謂2><賓2>,得到主語1、謂語1,匹配中間節點<?x>,再根據中間點的“職業”得到鏈式答案。

(c)二跳夾式問實體類型:

我們會在哪個民俗節日裏猜燈謎?select ?x where {?x<類別><民俗>.?x<節日活動><猜燈謎>.} select ?x where{?x<><>.?x<><>.}

其括號內結構爲<主1><謂1><賓1><主2><謂2><賓2>,得到主語1、謂語1、主語2、謂語2,最終得到賓語1、賓語2。將二者取交集,得到夾式答案。

4.1 問題類型的編碼方法

爲了能建立一種將自然語言到SPARQL語言的中間表達方式(見參考文獻3、4),我們將問題根據上述分類標準,生成每種分類的序列式標籤標記,每個標籤表示問句中槽位要素的語法成分。我們若考慮二跳以內問題,則編碼需要的槽位數量爲:

百分點認知智能實驗室:基於知識圖譜的問答技術和實踐
圖6. 槽位示意圖

其中每一位表示方法:

百分點認知智能實驗室:基於知識圖譜的問答技術和實踐
圖7. 每一位表示方法圖

一跳問實體類型:

百分點認知智能實驗室:基於知識圖譜的問答技術和實踐
圖8. 一跳問實體槽位信息圖

採用Bert-Seq(見參考文獻2)模型建模,測試集問題通過該模型預測後,得知問題的分類序列,即可得知有哪幾個語義槽需要填充,比如一跳問實體需要填充一個實體和一個關係。

五、實體識別

5.1 常見的命名實體識別方法

目前爲止,命名實體識別主流方法可概括爲:基於詞典和規則的方法、基於統計機器學習的方法、基於深度遷移學習的方法等。在項目實際應用中一般應結合詞典或規則、深度遷移學習等多種方法,充分利用不同方法的優勢抽取不同類型的實體,從而提高準確率和效率。在中文分詞領域,國內科研機構推出多種分詞工具(基於規則和詞典爲主)已被廣泛使用,例如哈工大LTP、中科院計算所NLPIR、清華大學THULAC和jieba分詞等。

在本數據集中主要採用了詞向量+條件隨機場的方法對自然語言問題中的命名實體進行識別:

百分點認知智能實驗室:基於知識圖譜的問答技術和實踐
圖9. Bert-Lstm-CRF結構圖

(參考BioNerFlair:biomedical named entity recognition using flair embedding and sequence tagger)

5.2 檢索在實體識別過程中的作用

2020年CCKS基於知識圖譜的問答任務中有較多的和疫情相關的醫學領域問題:

(a)新冠病毒肺炎有哪些別稱?

(b)哪些是非傳染性的胃炎?

(c)流感裂解疫苗的規定組織是?

(d)哪種檢查項目能檢測出耳廓腹側面侷限性囊腫、耳硬化症和耳骨外翻的症狀?

(e)有什麼樣的檢查項目能檢測新生兒呼吸暫停、先天性肺動靜脈瘻和老年人急性呼吸窘迫綜合徵這些疾病?

這類問題中出現的命名實體的特點是名稱較長,組成字符較爲生僻,用上文中提到的模型識別效果不理想,會出現少字、識別結果序列中斷的現象。爲了能夠提高召回率,並加速匹配實體名稱的過程,我們引入ELK作爲命名實體識別的輔助技術手段,並取得了良好的效果。

六、實體鏈接

下圖中,“喬丹”、“美國”、“NBA”這些片段都是mention,其箭頭所指的方塊就是它們在圖譜裏對應的entity。其中“NBA”和“聯盟”雖然字面上不同,但是都指代了知識庫中的同一種實體。實體鏈接(entitylinking)就是將一段文本中的某些字符串映射到知識庫中對應的實體上。

百分點認知智能實驗室:基於知識圖譜的問答技術和實踐
圖10. 實體鏈接示意圖

中文短文本的實體鏈接存在很大的挑戰,主要原因如下:

(a)名稱變體:同一實體可能以不同的文本表示形式出現。這些變體的來源包括縮寫(New York, NY),別名(New York, Big Apple),或拼寫變體和錯誤(New yokr)。

(b)歧義性:根據上下文的不同,同一名稱通常會涉及許多不同的實體,因爲許多實體名稱往往是多義詞(即具有多重含義)。“巴黎”這個詞可以指法國首都或帕麗斯·希爾頓。

(c)缺省:有時,一些命名實體可能在目標知識庫中沒有正確的實體鏈接。這種情況可能發生在處理非常特定或不尋常的實體時,或者在處理關於最近事件的文檔時,另一種常見情況是在使用特定領域的知識庫(例如,生物學知識庫或電影數據庫)時。

實體鏈接的方法大致分爲以下幾種:

(a)基於排序的方法:Point-wise、Pair-wise。由於實體鏈接任務ground truth只有一個實體,一般都是用point-wise來做。輸入是文本的context、mention、和某個實體的特徵,輸出mention指向該entity的置信度,以此排序,選出最可信的實體,常用的方法有包括LR、GBDT、RankSVM等算法。

(b)基於文本的方法:利用從大型文本語料庫中提取的文本特徵(如詞頻-逆文檔頻率Tf-Idf,單詞共現概率等)。

(c)基於知識圖的方法:利用知識圖的結構來表示上下文和實體之間的關係。

七、查詢構造

在知識圖譜問答中,一個關鍵的步驟就是查詢路徑的構造。查詢構造旨在根據問題,構造出問題的候選查詢路徑,通過路徑排序篩選出正確的查詢路徑,根據此路徑在知識圖譜中查找相對應的實體目標,作爲問題的最終答案。而在此過程中,提高查詢路徑的召回率是我們的根本目標。

主要有兩種不同類型的問句被廣泛研究:

(a)帶約束的單關係問題。例如,在問題“誰是美國第一任總統?”中,答案實體和實體“美國”之間只有一個“總統”的關係,但是我們也有“首先”的約束需要被滿足。針對這類複雜問題,我們提出了一種分階段查詢圖生成方法,該方法首先確定單跳關係路徑,然後對其添加約束,形成查詢圖。

(b)有多個關係跳躍的問題。例如“誰是Facebook創始人的妻子?”,答案與 “Facebook”有關,通過兩種關係,即“妻子”和“創始人”。爲了回答這類多跳問題,我們需要考慮更長的關係路徑,以達到正確的答案。這裏的主要挑戰是如何限制搜索空間,即減少需要考慮的多跳關係路徑的數量,因爲搜索空間隨着關係路徑的長度呈指數級增長。一個基本的解決方法就是使用beam search,其次還可以根據數據構造特定的剪枝規則,減少產生的查詢路徑。

待候選查詢路徑產生後,須在候選路徑中選擇評分Top1的查詢路徑,作爲最終選擇的目標。其選擇路徑的方法基本是基於排序模型的,如深度模型 ESIM、BiMPM等算法。以下介紹一種基於計算句子相似度的排序方法,Siamese LSTM。Siamese Network 是指⽹絡中包含兩個或以上完全相同的⼦⽹絡,多應⽤於語句相似度計算、⼈臉匹配、簽名鑑別等任務上。下圖是整個網絡大致的計算過程,左右兩個句子輸入後,句子中的每個詞對應一個數字,左右兩句話分別映射成一個向量,各自經過一個LSTM網絡抽取特徵後,使用曼哈頓距離計算兩邊向量的差距,最終得出預測結果(見參考文獻1)。

百分點認知智能實驗室:基於知識圖譜的問答技術和實踐
圖11. 語義匹配方法網絡結構圖

(參考Siamese Recurrent Architectures for Learning Sentence Similarity)

通過Siamese LSTM的方法,我們可以計算待候選查詢路徑和查詢問題的匹配得分,選出得分Top1的查詢路徑就可以作爲我們的最終選擇路徑。

八、評測效果

本評測任務所使用的是2020CCKS(中國知識圖譜與計算語義大會)新冠開放知識圖譜,它來源於 (http://openkg.cn/group/coronavirus),其中包括健康、防控百科、臨牀等多個具體數據集。我們將這些數據集整合到一起,同開放領域知識庫PKUBAS一起作爲問答任務的依據。本任務的評價指標包括宏觀準確率(MacroPrecision),宏觀召回率(Macro Recall),AveragedF1 值,本文方法最終的實驗效果指標如下:

(a)識別效果:Averaged F1=0.901

(b)識別性能:在NVIDIA 2080Ti GPU上,平均響應時間約200ms

總結

最後我們總結一下本方案的應用有效性和價值潛力。在應用有效性方面,通過今年2020年全國知識圖譜與計算語義大會知識圖譜問答任務數據集的評測得分,證明該方案在公開數據集上性能表現優秀,具有很好的應用效果;在價值潛力方面,本方案執行效率高,並且適合各種不同業務場景的問答需求,表現出良好的可擴展性,適合工程應用。百分點認知智能實驗室已經將該套方案部署到了衆多不同業務的知識圖譜系統中,取得了不錯的社會和經濟效益。

參考資料

[1]Siamese Recurrent Architectures for Learning Sentence Similarity

[2]Learning Phrase Representations using RNNEncoder–Decoder for Statistical Machine Translation

[3]SEQ2SQL: GENERATING STRUCTURED QUERIES FROMNATURAL LANGUAGE USING REINFORCEMENT LEARNING

[4]Towards Complex Text-to-SQL in Cross-DomainDatabase with Intermediate Representation

[5]BioNerFlair: biomedical named entityrecognition using flair embedding and sequence tagger

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章