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

問題:凱文·杜蘭特得過哪些獎(jiǎng)?

查詢語(yǔ)句:select ?x where { <凱文·杜蘭特> <主要獎(jiǎng)項(xiàng)> ?x . }

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

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

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

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

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

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

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

答案:“236”

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

三、技術(shù)方案

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

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

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

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

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

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

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

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

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

四、問題分類上面方案中的第二步需要對(duì)問題進(jìn)行分類,問題的分類標(biāo)準(zhǔn)有如下幾個(gè)考量:

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

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

(c)查詢過程中是夾式還是鏈?zhǔn)健?/p>

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

鏈?zhǔn)剑?/strong>多個(gè)實(shí)體依次求關(guān)系,再通過關(guān)系求實(shí)體。

圖5. 問題類型示意圖

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

(a)一跳問實(shí)體類型:

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

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

(b)二跳鏈?zhǔn)絾枌?shí)體類型:

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

其括號(hào)內(nèi)結(jié)構(gòu)為<主1><謂1><賓1><主2><謂2><賓2>,得到主語(yǔ)1、謂語(yǔ)1,匹配中間節(jié)點(diǎn)<?x>,再根據(jù)中間點(diǎn)的”職業(yè)”得到鏈?zhǔn)酱鸢浮?/p>

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

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

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

4.1  問題類型的編碼方法

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

圖6. 槽位示意圖

其中每一位表示方法:

圖7. 每一位表示方法圖

一跳問實(shí)體類型:

圖8. 一跳問實(shí)體槽位信息圖

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

五、實(shí)體識(shí)別

5.1  常見的命名實(shí)體識(shí)別方法

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

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

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

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

5.2  檢索在實(shí)體識(shí)別過程中的作用

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

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

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

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

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

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

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

六、實(shí)體鏈接

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

圖10. 實(shí)體鏈接示意圖

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

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

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

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

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

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

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

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

七、查詢構(gòu)造

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

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

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

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

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

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

(參考Siamese Recurrent Architectures for Learning Sentence Similarity)

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

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

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

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

總結(jié)

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

參考資料

[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)推薦