編者按算法
隨着互聯網軟硬件相關技術的飛速發展,人們逐漸從信息時代進入智能時代。知識圖譜做爲承載底層海量知識並支持上層智能應用的重要載體,在智能時代中扮演了極其重要的角色。而利用知識圖譜支撐上層應用仍存在諸多挑戰,所以基於知識圖譜的天然語言問答展開研究是十分有必要的。數據庫
時值2020年新型冠狀病毒疫情爆發,2020年全國知識圖譜與計算語義大會(China Conference onKnowledge Graph and Semantic Computing 2020)以新型冠狀病毒爲核心構建了包括新冠百科、健康、防控等多個高質量的知識圖譜, 並於此針對知識圖譜構建的關鍵技術及其核心應用提出四個評測子任務。網絡
北京百分點信息科技有限公司認知智能實驗室參加了該評測任務中的「知識圖譜的天然語言問答」比賽,通過長達3個多月的激烈角逐,百分點認知智能實驗室在比賽數據集上得分0.90106,位列A榜第三名。框架
本文主要介紹實驗室在本次比賽和基於知識圖譜問答業務的實踐中使用的技術方案。機器學習
本文做者:易顯維、蘇海波ide
1、背景介紹工具
知識圖譜的目的是給人工智能應用提供知識支撐,使得人工智能系統尤爲是其中的決策算法在決策過程當中可以參考到現實世界中豐富的知識。可是一直以來如何利用其中的知識是人工智能從感知走向認知的一個關鍵問題。在這個背景下,基於知識圖譜的問答成爲人工智能算法利用知識圖譜的知識的一個突破點,解決了這個問題,意味着人機交互的重要變革,象徵着計算機對於人類的天然語言理解產生了巨大進步。性能
相比於傳統的搜索引擎獲取知識的方式,智能問答系統基於天然語言交互的方式更符合人的習慣。隨着人工智能的進一步發展,知識圖譜在深度知識抽取、表示學習與機器推理、基於知識的可解釋性人工智能、圖譜挖掘與圖神經網絡等領域取得了一系列新的進展。這些進展讓知識圖譜的問答系統須要面對的兩個問題(問題的理解和問題到知識圖譜的語義關聯)獲得了較好的解決,使得知識圖譜智能問答工程應用成爲現實。百分點認知智能實驗室在多個行業積累了豐富的基於知識圖譜問答的技術實踐經驗。學習
2、問題示例測試
數據集以天然語言問句和對應的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. 第三種問題的查詢路徑
3、技術方案
圖4. 技術方案框架圖
技術方案如上圖,下面以「莫妮卡·貝魯奇的表明做?」這個問題舉例說明該技術方案中的步驟。
第一步:咱們將該問題進行命名實體識別(預處理模塊:實體識別),獲得名爲「莫妮卡·貝魯奇」的實體說起,將該實體說起輸入別名詞典和ES中,獲得備選實體名稱。
第二步:將問題輸入咱們的問題結構分類模型(預處理模塊:問題分類),獲得該問題屬於一跳問實體的問題類型,得知該問題有一個實體槽位和一個關係槽位須要填充(預處理模塊:槽位預測)。
第三步:將第一步中獲得的實體經過語義特徵和人工特徵進行實體消歧,獲得真正的實體爲<莫妮卡·貝魯奇>(實體分析模塊:實體連接)。
第四步:根據第二步中預測的槽位,將實體填充到該查詢語句中獲得select ?xwhere {<莫妮卡·貝魯奇><>?x.}(查詢生成模塊:槽位填充)。
第五步:搜索<莫妮卡·貝魯奇>的全部關係名稱,和原文進行語義匹配並排序,獲得關係<表明做品>(查詢生成模塊:路徑排序)。
第六步:將表明做品填入第二步所預測的關係槽位中,獲得查詢語句select ?xwhere {<莫妮卡·貝魯奇><表明做品>?x.},並轉化爲圖數據庫查詢語言(查詢生成模塊:槽位填充)。
第七步:將第六步中獲得的查詢語言在圖數據庫中查詢並獲得答案,並進行答案校驗(答案驗證模塊:驗證答案的實體類型)。
4、問題分類
上面方案中的第二步須要對問題進行分類,問題的分類標準有以下幾個考量:
(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,匹配中間節點<?x>,再根據中間點的「職業」獲得鏈式答案。
(c)二跳夾式問實體類型:
咱們會在哪一個民俗節日裏猜燈謎?select ?x where {?x<類別><民俗>.?x<節日活動><猜燈謎>.} select ?x where{?x<><>.?x<><>.}
其括號內結構爲<主1><謂1><賓1><主2><謂2><賓2>,獲得主語一、謂語一、主語二、謂語2,最終獲得賓語一、賓語2。將兩者取交集,獲得夾式答案。
4.1 問題類型的編碼方法
爲了能創建一種將天然語言到SPARQL語言的中間表達方式(見參考文獻三、4),咱們將問題根據上述分類標準,生成每種分類的序列式標籤標記,每一個標籤表示問句中槽位要素的語法成分。咱們若考慮二跳之內問題,則編碼須要的槽位數量爲:
圖6. 槽位示意圖
其中每一位表示方法:
圖7. 每一位表示方法圖
一跳問實體類型:
圖8. 一跳問實體槽位信息圖
採用Bert-Seq(見參考文獻2)模型建模,測試集問題經過該模型預測後,得知問題的分類序列,便可得知有哪幾個語義槽須要填充,好比一跳問實體須要填充一個實體和一個關係。
5、實體識別
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做爲命名實體識別的輔助技術手段,並取得了良好的效果。
6、實體連接
下圖中,「喬丹」、「美國」、「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)基於知識圖的方法:利用知識圖的結構來表示上下文和實體之間的關係。
7、查詢構造
在知識圖譜問答中,一個關鍵的步驟就是查詢路徑的構造。查詢構造旨在根據問題,構造出問題的候選查詢路徑,經過路徑排序篩選出正確的查詢路徑,根據此路徑在知識圖譜中查找相對應的實體目標,做爲問題的最終答案。而在此過程當中,提升查詢路徑的召回率是咱們的根本目標。
主要有兩種不一樣類型的問句被普遍研究:
(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的查詢路徑就能夠做爲咱們的最終選擇路徑。
8、評測效果
本評測任務所使用的是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