何國對,黃容鑫,黃偉剛,李 航,覃 曉**,元昌安,施 宇,廖兆琪
(1.南寧師范大學計算機與信息工程學院,八桂學者創新團隊實驗室,廣西南寧 530000;2.廣西科學院,廣西南寧 530007)
問答系統(Question Answering System,QA)是人工智能和自然語言處理領域中一個倍受關注并具有廣泛發展前景的研究方向[1],它能用準確、簡潔的自然語言回答用戶用自然語言提出的問題。旅游是問答系統的一個重要應用場景。一個完善的旅游知識問答系統,能夠幫助人們在旅游前、旅游中,通過詢問快速獲得旅游資訊、了解旅游目的地的文化和特色旅游資源,對游客、管理部門和商家而言,都具有重要的應用價值。然而,當前針對旅游行業的知識咨詢現狀卻難以令人滿意:一方面游客對旅游地的文化知識和旅游資訊的咨詢需求不斷增大[2];另一方面,由于各個地方在旅游知識自動問答系統的建設方面投入不足,當前的咨詢服務還停留在依靠用戶獨自在網上搜索碎片化信息階段,遠遠不能滿足用戶的需求。
知識圖譜技術[3]能夠把大量不同種類的信息鏈接在一起,使其形成一個關系網絡,為人們提供從“關系”角度分析問題的能力。當前,基于知識圖譜的問答系統已經在油茶產業[4]、蘋果種植銷售產業[5]、水利信息管理[6]等方面得到充分研究和應用,而知識圖譜所具備的推理功能,更是讓其在新冠肺炎智能輔助問診系統[7]、軍事裝備知識問答系統[8]、中醫藥知識問答與輔助開藥系統[9]中表現出令人驚喜的效果。
大部分領域構建知識圖譜和問答系統是希望通過構建知識庫來提高領域知識的檢索效率,同時輔助推理、決策等行為,這也是各個領域智能化的基本需求。知識圖譜技術是領域智能化的一條路徑,旅游領域的智能化無疑也需要借助知識圖譜來實現。旅游領域的知識圖譜可以用來輔助各種復雜的旅游應用分析,同時也可以對用戶進行個性化的路線推薦[10,11]。廣西是一個多民族聚居的地區,壯、漢、苗、瑤、侗等多個民族都在此地居住[12],各個民族都有著悠久的歷史和燦爛的文化,在語言、社交、婚姻、服裝、飲食、建筑等文化上各具特色,又相互交融。利用廣西民族文化知識圖譜,構建一個知識問答系統,對人工智能助力廣西旅游業的發展而言,無疑是一項具有重要意義的工作。
本研究構建的廣西文化旅游問答系統,基于南寧師范大學“全域數字文化旅游智能服務技術研發及應用”項目團隊所構建的廣西民族文化知識圖譜,知識圖譜的部分內容如圖1所示。該知識圖譜的實體包含具有廣西民族文化色彩的旅游景點、民族、民族文化、民族節假婚慶、民族服飾等概念,每一類概念下存儲多個實體及實體關系。以民族服飾為例,其中包含廣西各民族的服裝、頭飾、鞋子、帽子等實體,實體關系包含民族、支系、歷史、服裝部件、服裝特點、穿著人群、相關人物、相關傳說等。
廣西民族文化知識圖譜實體與實體關系以三元組(ei,rs,ej)的形式存儲于neo4j數據庫中,其中,ei,ej分別表示實體i和實體j,rs表示實體i和實體j之間的關系。例如:三元組(香粽,食材,糯米)中,香粽和糯米為兩個實體,食材為關系,表示糯米為香粽的食材。知識圖譜中實體、實體關系均以單詞方式存儲,其中表示關系的單詞稱為關系詞。
廣西民族文化知識圖譜建立了廣西旅游景點、民族和民族文化的關聯性,將三者之間的關聯關系可視化,實現知識的關聯與挖掘,使得這些民族旅游文化不再是數據孤島,為基于廣西民族文化知識圖譜的問答系統的構建奠定了數據和技術基礎。

圖1 廣西民族文化知識部分數據可視化結果
基于廣西民族文化知識圖譜的問答系統,主要有3個核心模塊:(1)基于BERT的命名實體識別模塊(BERT based Entity_identification Model,BEiM),(2)基于模版的關系抽取模塊(Template based Relationship_extraction Module,TReM),(3)基于知識圖譜的匹配推理模塊(Knowledge Graph based Matching Module,KGMM)。BEiM模塊主要功能:對給定對詢問語句,識別出其中對實體詞,幫助問答系統理解詢問主體(即確定詢問的范圍)。TReM模塊通過對詢問句的關系抽取,完成對詢問句的語義解析,幫助問答系統理解詢問的語義(即確定詢問的內容)。KGMM模塊則是在廣西民族文化知識圖譜之上,構建查詢匹配語句,完成針對詢問句的匹配推理解答。
以在文化旅游問答系統詢問“你知道丹洲書院在哪里嗎?”為例。對于問句“你知道丹洲書院在哪里嗎?”,問答系統首先通過命名實體識別模塊BEiM確定問句中所提及的實體“丹洲書院”,然后通過關系抽取模塊TReM確定問句所問的意圖,既確定問句所涉及的關系“具體位置”,最后通過匹配推理模塊KGMM將“丹洲書院”與“具體位置”映射為知識圖譜的結構化查詢,并在知識圖譜中最終確定問句的目標實體為“丹洲古鎮”(圖2)。
以下詳細介紹3個主要功能模塊。

圖2 基于知識圖譜的問答系統執行流程
BERT[13]是一種預訓練語言表示的語言表征模型,它是谷歌公司在大量文本語料上訓練出來的通用的“語言理解”模型。BERT模型的核心功能是對輸入的自然語言語料進行分析。在分析基礎上將文本中各個字或詞的一維詞向量作為輸入,經過一系列復雜的轉換后,最終輸出每個詞的一維詞向量表示,即BERT會對句子中的每個詞作處理,并得到每個詞最終的語義表示。對BERT的輸出層進行微調,可以使其適應不同的文本分析需求,因此能夠靈活應用于問答任務和語言推理,無需針對具體任務做大幅度架構修改。
基于BERT的強大功能,本研究設計并實現了基于BERT命名實體識別模型BEiM。對于詢問句S,假設經過BERT模型處理后,得到S的字符集合為(S1,S2,…,Sm),字符集合中的任意一個Si代表輸入的字符i的詞向量。詞的類別按命名實體識別約定,分為B-PER、I-ORG、E-PER、O 4類,其中B-PER表示字符處在實體字符邊界的開始,I-ORG表示字符處在實體的中間,E-ORG表示字符處在實體的結束位置,字符O表示不屬于實體的無關字符,BEiM模型可描述如下:
BEiM(S)=MLP(BERT(S))=
MLP(S1,S2,…,Sm)={p(S1),p(S2),…,
p(Sm)},
其中,MLP為對BERT模型的輸出作簡單全連接的操作,p(Si)為對字符Si類別的預測。
p(Si)=cj,且cj∈{B-PER,I-ORG,E-PER,O},j=1,2,3,4。
從模型描述可知,BEiM分兩個階段對輸入的詢問句S進行處理。第一階段,使用BERT對輸入的詢問句S的每個字符進行embedding,得到每個字符的向量表示,并將每個字符的embedding輸入到Transformer block(Trm)中,Trm會計算句子中所有詞對當前輸入詞的貢獻,再根據得到的信息對當前輸入詞進行編碼,獲得詢問句詞向量(S1,S2,…,Sm)。第二階段,采用MLP對詞向量的類別進行預測,對獲得的詞向量(S1,S2,…,Sm)作全連接操作并進行多層感知機權重的調整。圖3給出BEiM的架構,并說明詢問句“丹洲島上有什么”的處理過程。

圖3 BEiM架構圖
關系抽取是問答系統中幫助系統理解詢問句語義的環節,只有理解并獲取了詢問句中的語義關系,才能把該關系映射到知識圖譜中,最終獲取答案。
為方便說明TReM構建方法,下面先對相關概念進行定義和描述。
設在領域知識圖譜中,共定義了n個關系,則可將關系集記為R={r1,r2,…,rn}。其中fr(wri)=rj表示從關系詞wri到關系rj的映射。假設知識圖譜中存儲的關系詞數目為m,則m個關系詞構成集合WR。
定義1(關系詞集合) 由廣西民族文化知識圖譜中所有關系詞構成的集合,記為WR:
WR={wri|fr(wri)=rj,i∈[1,m],j∈[1,n],m>n}。
由知識圖譜的特性可知,在知識圖譜中,關系詞的數目m往往大于關系數目n(m>n),因此多個關系詞將會被映射到同一個關系。本文將fr函數定義為關系模板,它能將具有同一種語義關系的關系詞映射為同一個關系。由n個關系模版構成的集合定義為關系模版集。
定義2(關系模版和關系模版集) 關系模版是指被映射為同一個關系的關系詞向量,關系模版集是由所有關系模版構成的集合,記為WRS:
WRS={WRSj|j∈[1,n]}。
則第j個關系模版記為WRSj:

即WRS是由n個不定長的關系模版構成的集合。對于一個關系模版而言,該模版中的所有關系詞,均映射到同一個關系中。
TReM的具體實現方法:首先構建廣西民族文化知識圖譜關系詞組集WRS;然后調用分詞函數split(),獲取詢問句分詞向量W;最后,在關系詞組集中對問句分詞向量進行匹配檢索,如果檢索成功,則問句關系即可判定為匹配關系。TReM算法描述如下:
Template based Relationship_extraction algorithm
input:query senten S,WRS
output:relation of words in S,記為Sr
begin
(1)W:(w1,w2,…,wm)←split(S) //
(2)for i=1 to m do
(3) for j=1 to n do
(4) ifwiinWRSj:
(5)Sr←rj
(6) end for
(7)end for
(8)end
KGMM的主要功能是基于廣西民族文化知識圖譜,根據BEiM 和 TReM的輸出結果,構造Cypher查詢模板進行答案的查詢。對于問答系統,只要確定查詢實體的E,然后再確定查詢實體關聯關系r,便可構造。構造的查詢語句為 “MATCH (n:E)-[re:r]->(s) return s”,該語句通過確定問句的實體E,并通過關系鏈路r確定答案s,其中查詢語句中n:E 表示將實體名稱E賦值給實體n,re:r表示將關系名稱r賦值給關系鏈路re。該查詢語句會查詢與實體E具有關系r的實體并返回。例如:對于問句“你知道丹洲書院在哪里嗎?”,確定詢問實體“丹洲書院”與實體關系“具體位置”,便可將查詢語句構造為“MATCH (n:丹洲書院)-[re:具體位置]->(s) return s”,該語句會匹配與“丹洲書院”具有“具體位置”關系的實體并返回。
至此,本研究介紹了基于知識圖譜的廣西民族文化問答系統的關鍵技術。系統的具體實現方法如下:首先構建廣西民族文化知識圖譜KG關系詞組集WRS;然后將問句S輸入到BEiM模型,得到問句的詢問實體E,再將問句S輸入到關系抽取模塊TReM,得到關系r,進而將實體E和關系r輸入到匹配推理模塊KGMM,得到查詢語句Q,最后基于語句Q在廣西民族文化知識圖譜上查詢答案t并返回。廣西民族文化問答系統模型算法(Knowledge question answering algorithm)描述如下:
Knowledge question answering algorithm
input:query senten S,WRS,KG
output:answer t of KG
(1)E=BEiM(S)
(2)R=TReM(S,WRS)
(3)Q←KGMM(E,R)= ‘MATCH (n:E)-[re:R]->(t) return t’
(4)match t based on Q from KG
(5)return t
對問答系統而言,能否正確識別問句中所詢問的實體是問答系統的關鍵,只有先確定了實體,才能通過關系鏈路把正確答案找出來,因此命名實體識別模型通常需要達到較高的精度才能投入到問答系統中使用。為此,先對基于BERT的命名實體識別模型(BEiM)進行訓練測試,其中訓練數據集以及驗證集使用的是含有人名、地名、機構名、時間、景點、飲食等實體的標注序列數據,其數據為通用的中文命名實體識別數據集Uniuersal data;同時,對廣西民族文化知識圖譜中的部分實體數據集進行測試。
本研究使用準確率作為命名實體識別的評價指標。本研究使用BEiM預訓練模型來訓練中文命名實體識別數據集。BEim對輸入字特征進行微調,通過微調可以更好地學習與命名實體相關的特征。從BEiM模型對部分廣西民族文化知識圖譜實體進行命名實體識別的實驗結果可知,BEiM在Universal data驗證集上的準確率達到了99.30%,BEiM模型對部分廣西文化知識圖譜上的命名實體識別精度達到94.45%,完全能夠勝任廣西文化旅游問答系統的命名實體識別任務。
如表1所示,用戶分別詢問了景點的票價、旅游地點的美食、景區內的主要景點、當地美食的主要食材等問題,問答系統都能很好地對用戶的問句進行解析,并通過廣西民族旅游文化知識圖譜進行檢索,得到了準確的答案,并用精簡的方式返回給用戶,增強用戶的體驗感。

表1 問答系統詢問測試
本文設計并實現了基于廣西民族旅游文化知識圖譜的智能問答系統,重點介紹了問答系統中命名實體識別和詢問句關系抽取關鍵技術。在實現的智能問答系統上進行詢問測試,其結果表明系統能夠準確解析詢問句子,從知識圖譜中檢索到準確答案,并以簡潔的實體樹形式展示。該智能問答系統不足之處在于:基于模版的命名實體識別方法需要構建大量的關系詞組模版,才能保證將用戶的問句映射為知識圖譜中的關系,而手工構建關系詞組模版將導致高額的系統構建代價。因此在下一步工作中,可以設計一套完整的映射模型,將用戶問句自動映射到知識圖譜中的關系列表中,從而提升系統的智能程度,降低系統構建代價。