百分點科技認知智能實驗室:CCKS知識圖譜問答大賽的季軍實現(xiàn)方案

  編者按:2021年全國知識圖譜與計算語義大會(China Conference on Knowledge Graph and Semantic Computing 2021)共設(shè)立五個評測主題,十四個評測任務(wù)。百分點認知實驗室參加了該評測任務(wù)中的“生活服務(wù)領(lǐng)域知識圖譜問答”比賽,經(jīng)過長達3個多月的激烈角逐,百分點認知智能實驗室在比賽數(shù)據(jù)集上得分0.7852,位列B榜第三名,獲得該大賽的季軍。本文主要介紹實驗室在本次比賽和知識圖譜問答業(yè)務(wù)實踐中使用的技術(shù)方案。

  一、背景介紹

  知識圖譜的早期理念源于萬維網(wǎng)之父Tim Berners-Lee關(guān)于語義網(wǎng)(The SemanticWeb)的設(shè)想,旨在采用圖結(jié)構(gòu)(Graph Structure)來建模和記錄世界萬物之間的關(guān)聯(lián)關(guān)系和知識,以便有效實現(xiàn)更加精準的對象級搜索。知識圖譜的相關(guān)技術(shù)已經(jīng)在搜索引擎、智能問答、語言理解、推薦計算、大數(shù)據(jù)決策分析等眾多領(lǐng)域得到廣泛的實際應(yīng)用。

  隨著自然語言處理、深度學(xué)習、圖數(shù)據(jù)處理等眾多領(lǐng)域的飛速發(fā)展,知識圖譜在自動化知識獲取、知識表示學(xué)習與推理、大規(guī)模圖挖掘與分析等領(lǐng)域又取得了很多新進展。知識圖譜已經(jīng)成為實現(xiàn)認知層面的人工智能不可或缺的重要技術(shù)之一。

  知識圖譜是較為典型的交叉領(lǐng)域,涉及知識工程、自然語言處理、機器學(xué)習、圖數(shù)據(jù)庫等多個領(lǐng)域。而知識圖譜的構(gòu)建及應(yīng)用涉及更多細分領(lǐng)域的一系列關(guān)鍵技術(shù),包括:知識建模、關(guān)系抽取、圖存儲、自動推理、圖譜表示學(xué)習、語義搜索、智能問答、圖計算分析等。做好知識圖譜需要系統(tǒng)掌握和應(yīng)用這些分屬多個領(lǐng)域的技術(shù)。

  近年來,基于自然語言的問答系統(tǒng)逐漸成為人工智能及其相關(guān)產(chǎn)業(yè)的重點關(guān)注領(lǐng)域,成為人機交互的新趨勢。相比于傳統(tǒng)的搜索引擎獲取知識的方式,智能問答系統(tǒng)基于自然語言交互的方式更符合人的習慣。

  隨著人工智能的進一步發(fā)展,知識圖譜在深度知識抽取、表示學(xué)習與機器推理、基于知識的可解釋性人工智能、圖譜挖掘與圖神經(jīng)網(wǎng)絡(luò)等領(lǐng)域取得了一系列新的進展。這些進展讓知識圖譜的問答系統(tǒng)需要面對的兩個問題(問題的理解和問題到知識圖譜的語義關(guān)聯(lián))得到了較好的解決,使得知識圖譜智能問答工程應(yīng)用成為現(xiàn)實。百分點認知智能實驗室在多個行業(yè)積累了豐富的基于知識圖譜問答的技術(shù)實踐經(jīng)驗。

  二、賽題任務(wù)

  1. 任務(wù)描述

  本任務(wù)屬于中文知識圖譜自然語言問答任務(wù),簡稱CKBQA (Chinese Knowledge Base Question Answering)。即輸入一句中文問題,問答系統(tǒng)從給定知識庫中選擇若干實體或?qū)傩灾底鳛樵搯栴}的答案。

  今年在OpenKG基礎(chǔ)上引入生活服務(wù)領(lǐng)域知識庫及問答數(shù)據(jù)。其中包括旅游、酒店、美食等多種領(lǐng)域的數(shù)據(jù),同開放領(lǐng)域知識庫PKUBASE一起作為問答任務(wù)的依據(jù)。

  2. 數(shù)據(jù)格式

  數(shù)據(jù)集以自然語言問句和對應(yīng)的SPARQL查詢語句標記組成。

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

  比賽數(shù)據(jù)示例:

  問題:莫妮卡·貝魯奇的代表作?

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

  答案:<西西里的美麗傳說>

  3. 問題格式

  傳統(tǒng)的問題知識圖譜查詢問題類型,根據(jù)實體數(shù)量不同主要分為單實體查詢、雙實體查詢、三實體查詢,又根據(jù)查詢方式不同分為一跳查詢,跳查詢、關(guān)系查詢,如圖1所示。

圖1. 傳統(tǒng)問題類型

  今年在問題設(shè)置上引入了一些特殊問題類型,主要是添加了filter、order等函數(shù)和http://www.w3.org/2001/XMLSchema#float等RDF標準類型后綴的美團生活服務(wù)類問題,如圖2所示。

圖2. 特殊類型問題

  三、技術(shù)方案

  1. 方案概述

  百分點科技提出了一種結(jié)合語義解析和信息檢索的方法,該方法應(yīng)用語義解析處理具有固定句型或“Filter”等函數(shù)的問題,并應(yīng)用信息檢索處理具有不同句式的問題。技術(shù)方案總結(jié)如圖3所示。在信息檢索模塊中,Pipeline由四個子模塊組成,即指稱識別、實體鏈接、路徑生成和路徑排序。在語義解析模塊中,百分點科技采用了SPARQL模板匹配和SPARQL生成兩種方法實現(xiàn)。最后,通過同樣的方式選擇答案,將語義解析模塊和信息檢索模塊集成在一起。

圖3. 技術(shù)方案總結(jié)

  該方案的優(yōu)勢在于能夠處理復(fù)雜函數(shù)結(jié)構(gòu)的問題,例如:

  問題:我們現(xiàn)在在北京的首都賓館,行走3公里的能到達的景點都有哪些?

  Sparql:select ?x where { <首都賓館(原首都大酒店)> <附近> ?cvt. ?cvt <實體名稱> ?x. ?cvt <距離值> ?d. ?x <類型><景點>. filter(?d<=3) }

  2. 方案介紹

圖4. 流程實現(xiàn)和模型原理圖

  技術(shù)方案框架如圖4所示,各個模塊與各個子模塊執(zhí)行流程與功能介紹如下。

  信息檢索(Information Retrieval):借助問題傳遞的信息,直接從KG中檢索出可能的答案,并排序答案。

  指稱識別:識別問題中提及的圖譜實體節(jié)點的文本片段;

  實體鏈接:根據(jù)指稱和問題檢索出圖譜中與其對應(yīng)的實體,作為話題實體;

  路徑生成:從識別到的話題實體出發(fā),遍歷生成從話題實體到答案實體的候選路徑;

  路徑排序:對候選路徑進行排序,篩選出最能回答問題的正確路徑。

  語義解析(Semantic Parsing):將問題解析成可執(zhí)行的Sparql查詢語句,執(zhí)行語句獲取答案。分為兩種方法,一種是Sparql模板匹配,一種是Sparql生成,兩種方法相互獨立。

  (1)SPARQL模板匹配:將問題與訓(xùn)練集中最相似的SPARQL模板進行匹配。

  (2)SPARQL生成:利用預(yù)訓(xùn)練語言模型Unilm生成新的SPARQL。

  query2Sparql:根據(jù)query語義解析成Sparql語句;

  Sparql候選路徑生成:基于Sparql語句中的實體,去知識圖譜中匹配與Sparql相關(guān)的候選路徑;

  路徑排序:對候選路徑進行排序,篩選出最能回答問題的正確路徑。

  結(jié)果合并:根據(jù)不同模型輸出結(jié)果的排序分數(shù)對輸出進行過濾,獲取最終結(jié)果。

  3. 指稱識別

  指稱識別的目標是識別問題中提到的知識庫實體的文本片段。為了提高召回率,百分點科技實現(xiàn)了四種提及識別方法。

  (1)序列標注:如圖5所示,將識別作為序列標記任務(wù)建模,并基于Roberta+CRF訓(xùn)練K-Fold交叉驗證的序列標記模型。

圖5. 序列標注模型架構(gòu)

  (2)匹配-判別式:候選實體指稱數(shù)目較多,因此通過一個指稱判別模型進行過濾。在候選指稱的開始和結(jié)束位置加入“&”號作為實體位置標志位,然后用BERT模型做文本分類判斷當前的實體指稱是否正確。

  基于規(guī)則的識別:使用正則表達式來匹配特殊的實體和屬性值,如日期、連續(xù)英語和引號中的文本片段等。

  基于字典的識別:通過最長匹配算法與實體提及詞典識別問題中的提及。

  模糊匹配:建立一個實體提及次數(shù)的倒排索引,然后將問題作為查詢詞,回憶出匹配度最高的前10個提及次數(shù)。以序列標注的輸出為主要結(jié)果,輔以其他方式的結(jié)果。

  4. 實體鏈接

  當前任務(wù)是基于上一步獲得的候選實體指稱,找到其對應(yīng)的KG中真實存在的實體,也稱為話題實體。分為以下步驟:

  (1)獲取候選實體:使用上一步獲取到的實體提及在別名字典與實體集合中進行模糊匹配,獲取排名top10的候選實體。

  (2)獲取鄰居節(jié)點信息:從候選實體出發(fā)(作為頭實體或尾實體),獲取候選實體的所有一階路徑。

  (3)按照PageRank分數(shù)過濾鄰居節(jié)點:獲取候選實體鄰居節(jié)點的PageRank分數(shù),保留前10分數(shù)的鄰居節(jié)點。

  PageRank假設(shè):

  數(shù)量假設(shè):一個實體節(jié)點的入度(被鏈接數(shù))越大,實體重要性越高。

  重要性假設(shè):一個實體節(jié)點的入度的來源(哪些實體在鏈接它)重要性越高,實體重要性越高。

  (4)融合鄰居節(jié)點信息的BERT語義匹配度計算:利用鄰居節(jié)點和問題信息,通過BERT進行語義匹配度計算,過濾候選實體,得到話題實體。

  候選實體篩選模型輸入數(shù)據(jù)格式:[CLS]問題[SEP]提及&候選實體[SEP]鄰居節(jié)點關(guān)系[SEP]

  計算方式:取[CLS]張量做二分類(0,1分類),保留其分數(shù)排名top10 的實體。

  5. 路徑生成

  在實體鏈接步驟中獲取到了問題中的話題實體,路徑生成是從話題實體出發(fā),遍歷KG,生成所有可能的答案路徑,在過程中對路徑進行剪枝。

  (1)路徑召回:路徑召回策略分為單實體和多實體兩種情況。其中,多實體優(yōu)先,即如果多實體間存在路徑,則不進行單實體召回。

  單實體:

  (1) 作為頭實體的一度路徑 <實體><關(guān)系>;

  (2) 作為尾實體的一度路徑<關(guān)系><實體>;

  (3) 對 (1) 擴展至二度出路徑 <實體><關(guān)系1><關(guān)系2>;

  (4) 對 (1) 擴展至二度入路徑 <實體><關(guān)系1><關(guān)系2>;

  (5) 對 (2) 擴展至二度出路徑<關(guān)系1><實體><關(guān)系2>;

  (6) 對 (2) 擴展至二度入路徑<關(guān)系1><實體><關(guān)系2>。

  多實體(以雙實體為例):

  (1) 一度路徑 <實體1><關(guān)系1><實體2><關(guān)系2>;

  (2) 一度路徑<關(guān)系1><實體1><關(guān)系2><實體2>;

  (3) 一度路徑<關(guān)系1><實體1><實體2><關(guān)系2>;

  (4) 一度路徑 <實體1><關(guān)系1><關(guān)系2><實體2>;

  (5) 對 (1)(同2、3、4) 擴展至二度出路徑 <實體><關(guān)系1><實體2><關(guān)系2><關(guān)系3>;

  (6) 對 (1)(同2、3、4) 擴展至二度入路徑 <實體><關(guān)系1><實體2><關(guān)系2><關(guān)系3>;

  (7) 實體間的關(guān)系<實體1><實體2>。

  (2)剪枝:為避免候選答案數(shù)目爆炸,我們根據(jù)以下策略進行剪枝。

  (1) 刪除一跳路徑中答案實體是話題實體的路徑,避免將話題實體本身作為答案;

  (2) 如果二跳節(jié)點超過10000個,則不進行二跳;

  (3) 刪掉二跳路徑中答案實體是話題實體的路徑,避免將話題實體本身作為答案;

  (4) 當二跳路徑(出或入)數(shù)超過100條但小于500時,刪掉二跳路徑(出或入)中的關(guān)系與問句沒有任何字符上的交集的候選答案路徑;

  (5) 當二跳路徑(出或入)數(shù)超過500時,過濾掉所有二跳路徑。

  6. 路徑排序

  路徑排序分為粗排和精排兩個步驟。

  粗排:根據(jù)問題query和候選路徑path的特征,對候選路徑進行粗排,采用LightGBM機器學(xué)習模型,保留最多20條路徑,選取的模型特征如圖6所示。

圖6. LightGBM模型特征

  精排:采用預(yù)訓(xùn)練語言模型計算query和path的語義匹配度,選擇得分最高的答案路徑作為答案,如圖7所示。

圖7. 語義相似度計算模型

  7. SPARQL模板匹配

  當前任務(wù)是根據(jù)訓(xùn)練集的數(shù)據(jù)獲取“問題——Sparql”的問答模板,然后通過匹配問題模板的方式獲取Sparql模板,并將實體關(guān)系填入Sparql模板,得到完整的Sparql。

  (1)問句Sparql對模板生成:利用訓(xùn)練集的sparksql,摳出實體形成槽位,生成模板。

  (2)問句抽象:將問句query轉(zhuǎn)化為抽象的query模板,以方便下一步的query匹配和Sparql模板槽位填充。具體地,利用分詞工具將詞性為LOC,ORG,nz,m,PER,n的詞摳出,并替換成相對的詞性。

  (3)問句模板相似度計算:相似度計算方法“格式塔模式匹配”,保留相似度分數(shù)最大的抽象query模板,取其對應(yīng)的抽象Sparql模板。

  (4)填補Sparql 模板槽位:將query中的實體關(guān)系和抽象Sparql模板中的槽位一一對應(yīng),將對應(yīng)的實體關(guān)系填入到Sparql模板中,得到完整的Sparql。

  8. SPARQL生成

  采用預(yù)訓(xùn)練語言模型Unilm(Uni?ed Language Model)的seq2seq架構(gòu)生成Sparql。類似于翻譯任務(wù),輸入問題,輸出Sparql,Unilm模型結(jié)構(gòu)如圖8所示。

圖8. query2sparql模型

  輸入query:運動員李娜的丈夫的主要獎項有哪些?

  輸出Sparql:select ?Z where{?X <中文名> “李娜”. ?X <類型><運動員>. ?X <丈夫> ?Y.?Y <主要獎項> ?Z.}

  由于Unilm模型直接生成的Sparql可能與KG中存在的實體關(guān)系有差異,如上例中的“李娜”的“丈夫”是用“配偶”存儲的,故不能直接查詢得到答案,還需對實體關(guān)系做進一步的修補,使修補后的Sparql的實體和關(guān)系是真實存在于KG中的。有以下4種修補策略:

  (1)原實體不存在時,先修實體后修關(guān)系。具體地,采用實體鏈接中的獲取候選實體方法得到新實體,然后把原關(guān)系替換成新實體的一階關(guān)系。

  (2)原關(guān)系不存在時,先修關(guān)系再修實體。具體地,采用原關(guān)系在Elasticsearch中關(guān)系字典的模糊匹配或者原關(guān)系的同義詞關(guān)系(需在kg的關(guān)系字典中),然后把原實體替換成新關(guān)系的一階實體。

  (3)不管原實體關(guān)系是否存在,修實體+修關(guān)系。

  (4)對實體使用Sparql的regex語法(不需要完全正確的實體名稱)。例如:select ?x where { ?x <主要成就> ?y. filterregex(?y, '雜交水稻之父'). }

  由于修補后一個問題會有多個候選Sparql路徑,因此也需對其進行排序,篩選出最能回答問題的正確Sparql,方法同信息檢索中路徑排序中的BERT精排。

  9. 結(jié)果合并

  在信息檢索和語義解析兩大類方法中,最終都是使用的同一模型計算與問題的相似度,因此可以將兩類方法的結(jié)果放在一起比較,取分數(shù)最高的結(jié)果作為最終答案。

  四、評測效果

  本方案在2021 CCKS知識圖譜問答大賽的數(shù)據(jù)集上進行了評測,數(shù)據(jù)方面,相較往年在OpenKG基礎(chǔ)上引入生活服務(wù)領(lǐng)域知識庫及問答數(shù)據(jù),其中包括旅游、酒店、美食等多種領(lǐng)域的數(shù)據(jù),同開放領(lǐng)域知識庫PKUBASE一起作為問答任務(wù)的依據(jù)。特別是生活服務(wù)領(lǐng)域的數(shù)據(jù)集,涉及過濾、分類等功能。訓(xùn)練集有6525個帶標簽sparql和答案的問題,開發(fā)集有2100個問題,測試集有1191個問題。給定的知識圖包含6600萬個三元組和超過2000萬個實體。

  百分點科技使用ElasticSearch構(gòu)建一個反向索引,整個知識圖譜存儲在Nebula圖形數(shù)據(jù)庫中,BERT模型統(tǒng)一使用RoBERTa-wwm-ext-large。

  本任務(wù)的評價指標包括宏觀準確率(Macro Precision),宏觀召回率(Macro Recall),Averaged F1值。

  本方案最終的實驗效果指標如下:

  識別效果:Averaged F1=0. 7852

  總結(jié)

  在應(yīng)用有效性方面,通過2021年全國知識圖譜與計算語義大會知識圖譜問答任務(wù),百分點科技設(shè)計的方案在公開數(shù)據(jù)集上性能表現(xiàn)優(yōu)秀,具有很好的應(yīng)用效果,且后續(xù)可繼續(xù)對路徑排序算法進行優(yōu)化,使其能夠更準確地選擇正確的答案。

  在價值潛力方面,該方案擴展性強,且適合各種不同業(yè)務(wù)場景的問答需求,表現(xiàn)出良好的可擴展性,適合工程應(yīng)用。

  百分點認知智能實驗室已經(jīng)將該方案部署到了眾多不同業(yè)務(wù)的知識圖譜系統(tǒng)中,將知識圖譜與預(yù)訓(xùn)練模型融合,通過邏輯推理進行復(fù)雜問題查詢,讓問答查詢更智能。

(免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )