圖1. 第一種問題的查詢路徑

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

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

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

圖2. 第二種問題的查詢路徑

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

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

答案:“<淋巴結(jié)腫大> <HIV感染> <脾腫大> <心力衰竭> <腎源性水腫> <抑郁> <心源性呼吸困難> <低蛋白血癥> <不明原因發(fā)熱> <免疫缺陷> <高凝狀態(tài)> <右下腹痛伴嘔吐> “

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

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

答案:“236”

圖3. 第三種問題的查詢路徑

三、技術(shù)方案

圖4. 技術(shù)方案框架圖

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

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

第二步:將問題輸入我們的問題結(jié)構(gòu)分類模型(預(yù)處理模塊:問題分類),得到該問題屬于一跳問實體的問題類型,得知該問題有一個實體槽位和一個關(guān)系槽位需要填充(預(yù)處理模塊:槽位預(yù)測)。

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

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

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

第六步:將代表作品填入第二步所預(yù)測的關(guān)系槽位中,得到查詢語句select ?xwhere {<莫妮卡·貝魯奇><代表作品>?x.},并轉(zhuǎn)化為圖數(shù)據(jù)庫查詢語言(查詢生成模塊:槽位填充)。

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

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

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

(b)每一跳的查詢中分為是問實體還是問關(guān)系;

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

夾式:為多個實體查詢不同的關(guān)系之后求交集。

鏈式:多個實體依次求關(guān)系,再通過關(guān)系求實體。

圖5. 問題類型示意圖

根據(jù)上面的分類標準,問題可以具體劃分為如下三類:

(a)一跳問實體類型:

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

其括號內(nèi)結(jié)構(gòu)為<主><謂><賓>,得到主語、謂語,問賓語。

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

發(fā)明顯微鏡的人是什么職業(yè)?select ?y where {<顯微鏡><發(fā)明人>?x.?x<職業(yè)>?y.} select ?y where {<><>?x.?x<>?y.}

其括號內(nèi)結(jié)構(gòu)為<主1><謂1><賓1><主2><謂2><賓2>,得到主語1、謂語1,匹配中間節(jié)點<?x>,再根據(jù)中間點的”職業(yè)”得到鏈式答案。

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

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

其括號內(nèi)結(jié)構(gòu)為<主1><謂1><賓1><主2><謂2><賓2>,得到主語1、謂語1、主語2、謂語2,最終得到賓語1、賓語2。將二者取交集,得到夾式答案。

4.1  問題類型的編碼方法

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

圖6. 槽位示意圖

其中每一位表示方法:

圖7. 每一位表示方法圖

一跳問實體類型:

圖8. 一跳問實體槽位信息圖

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

五、實體識別

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

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

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

   圖9. Bert-Lstm-CRF結(jié)構(gòu)圖

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

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

2020年CCKS基于知識圖譜的問答任務(wù)中有較多的和疫情相關(guān)的醫(yī)學領(lǐng)域問題:

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

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

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

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

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

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

六、實體鏈接

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

圖10. 實體鏈接示意圖

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

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

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

(c)缺?。河袝r,一些命名實體可能在目標知識庫中沒有正確的實體鏈接。這種情況可能發(fā)生在處理非常特定或不尋常的實體時,或者在處理關(guān)于最近事件的文檔時,另一種常見情況是在使用特定領(lǐng)域的知識庫(例如,生物學知識庫或電影數(shù)據(jù)庫)時。

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

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

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

(c)基于知識圖的方法:利用知識圖的結(jié)構(gòu)來表示上下文和實體之間的關(guān)系。

七、查詢構(gòu)造

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

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

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

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

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

圖11. 語義匹配方法網(wǎng)絡(luò)結(jié)構(gòu)圖

(參考Siamese Recurrent Architectures for Learning Sentence Similarity)

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

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

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

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

總結(jié)

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

參考資料

[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

分享到

xiesc

相關(guān)推薦