文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.190566
中文引用格式: 代文韜,,林詩璐,朱小燕,,等. 基于知識圖譜的保險領(lǐng)域?qū)υ捪到y(tǒng)構(gòu)建[J].電子技術(shù)應(yīng)用,,2019,45(9):18-21,,27.
英文引用格式: Dai Wentao,,Lin Shilu,Zhu Xiaoyan,,et al. A knowledge-based dialogue system for insurance domain[J]. Application of Electronic Technique,,2019,45(9):18-21,,27.
0 引言
人工智能是當(dāng)前世界科技發(fā)展的潮流,。問答系統(tǒng)和對話系統(tǒng)是人工智能系統(tǒng)中既古老而又年輕的話題。隨著互聯(lián)網(wǎng)服務(wù)對象的規(guī)模日益擴(kuò)大,,為了提高效率,,降低人力成本,很多特定領(lǐng)域的服務(wù)都開始引入自動問答系統(tǒng),。保險行業(yè)由于其業(yè)務(wù)量大,、業(yè)務(wù)范圍廣、業(yè)務(wù)面對的對象多等特點(diǎn),,非常需要對話系統(tǒng)的建設(shè)。
圖1中描述了特定領(lǐng)域?qū)υ捪到y(tǒng)的一般結(jié)構(gòu),,自然語言理解模塊對用戶的問題進(jìn)行語義分析,,產(chǎn)生語義結(jié)構(gòu),再通過對話管理和答案生成模塊得到答案,。對于特定領(lǐng)域的對話系統(tǒng),,知識圖譜的地位非常重要。沒有知識,,就不能理解用戶輸入的上下文,,也就不能進(jìn)行對話。在結(jié)合知識的基礎(chǔ)上,,對自然語言進(jìn)行分析,,識別出用戶的意圖,通過對話管理,,生成多輪的對話,。
雖然隨大數(shù)據(jù)和人工智能的發(fā)展出現(xiàn)了很多通用的知識圖譜,例如Google的Knowledge Graph[1]就已經(jīng)有了30億條數(shù)據(jù),,但是如此龐大的圖譜不足以支撐垂直領(lǐng)域所需要更細(xì)致的專業(yè)知識,,對于保險領(lǐng)域來說也是如此。保險行業(yè)由于知識的復(fù)雜性,、動態(tài)性和保密性,,缺乏真實(shí)可用的知識圖譜和與之相對應(yīng)的語法分析與對話管理。
1 知識圖譜構(gòu)建和維護(hù)
對于領(lǐng)域的對話系統(tǒng),知識圖譜是非常重要的,。當(dāng)需要在一個新的領(lǐng)域構(gòu)建一個對話系統(tǒng)時,,首先必須做的就是構(gòu)建出可以反映領(lǐng)域知識的知識圖譜,然后在知識圖譜的基礎(chǔ)上,,才可以真正地理解用戶的意圖,,從而實(shí)現(xiàn)有上下文交互的對話流程。
1.1 知識圖譜的表示
通常來說,,知識圖譜是基于語義網(wǎng)對概念,、關(guān)系的抽象描述,描述專業(yè)領(lǐng)域知識和各類資源及資源之間的關(guān)系,,可以幫助人類和計算機(jī)更好地協(xié)同工作[2],。本文使用RDF和RDFS作為知識圖譜的描述語言[3]。
資源描述框架(RDF)是用來表示萬維網(wǎng)上各類資源和信息的一種語言,,用三元組(Triple)的方式描述對象和對象之間的關(guān)系,,通常可以形式化為(Subject,,Predict,,Object),簡稱為SPO,。
RDF Schema(RDFS)是對RDF的一種擴(kuò)展,。RDF通過類、屬性和值來描述資源,,在此之外,,RDF還需要一種定義應(yīng)用程序?qū)I(yè)的類和屬性的方法。應(yīng)用程序?qū)S玫念惡蛯傩员仨毷褂脤DF的擴(kuò)展來定義,。RDF Schema就是這樣一種擴(kuò)展,,專門用來定義知識圖譜的結(jié)構(gòu)框架Schema。
1.2 知識圖譜構(gòu)建的一般方法
知識圖譜的構(gòu)建包括了本體的構(gòu)建與知識實(shí)例的填充,。常用知識圖譜構(gòu)建方法有企業(yè)建模法(Tove),、骨架法(Skeletal Methodology)、Methontology法,、循環(huán)獲取法,、七步法等[4-5]。根據(jù)特定領(lǐng)域具體情況,,本文借鑒了七步法構(gòu)建知識圖譜,。7個步驟如圖2所示,分別為:
(1)確定知識圖譜的專業(yè)領(lǐng)域和范疇,。明確構(gòu)建的語義本體所覆蓋的專業(yè)領(lǐng)域,、構(gòu)建目的,、作用、維護(hù)和應(yīng)用對象(這些元素與領(lǐng)域本體的建立有著很大的關(guān)系,,所以在開發(fā)語義本體前就必須確定),。
(2)考慮復(fù)用現(xiàn)有語義本體的可能性。
(3)列出語義本體中的重要術(shù)語,。著手建立自己的本體前,,先根據(jù)專業(yè)知識重要術(shù)語列出一個術(shù)語表。
(4)定義類(Class)和類的等級體系(Hierarchy),。建立一個類等級體系一般來說有3種方法:一是自頂向下法,,從領(lǐng)域中最大的通用概念開始,而后將這些概念細(xì)化,;二是自底向上法,,由等級體系樹中底層葉子類的定義開始,然后將這些葉子類合并為更為概括的較大概念(即向上回溯),;三是綜合法,,綜合以上兩種方法,首先定義直接大量顯而易見的概念,,然后再對它們進(jìn)行進(jìn)一步的歸納和細(xì)化,。
(5)定義類的屬性。一旦定義好了類,,就要開始描繪概念間的內(nèi)在結(jié)構(gòu),,即類的屬性。任意一個類的所有下位類都會繼承其上位類(父類)的屬性,。為了方便操作,屬性的定義多是基于之前列出的術(shù)語清單,。
(6)定義屬性的限制,。屬性限制有許多不同的類型,如描述賦值類型(value type),、允許的賦值(allowed value)以及賦值的基數(shù)(cardinality),。除了上述幾種限制外,還有值域(range)和定義域(domain)的定義,。
(7)創(chuàng)建實(shí)例,。在類和屬性的結(jié)構(gòu)確定后,根據(jù)實(shí)際情況和知識,,建立實(shí)例,。
1.3 保險領(lǐng)域知識圖譜
保險領(lǐng)域包括了產(chǎn)品、個險,、核保和養(yǎng)老社區(qū)等子領(lǐng)域,。通過4步法,,本文構(gòu)建了如表1所示的知識圖譜。
以保險產(chǎn)品為例,,按照圖3的方式定義了保險的層次類別,。
一個具體的保險產(chǎn)品就是一個保險產(chǎn)品類的實(shí)例,同時具有多個屬性,。很多時候,,實(shí)體和屬性的關(guān)系往往比較復(fù)雜,這也需要在知識圖譜里面加以體現(xiàn),。
最簡單的情況就是“實(shí)體-屬性-值”,,例如:(XX保險定義<def>)。除此之外,,還存在以下幾種復(fù)雜的情況,,如圖4所示。
(1)實(shí)體-屬性-屬性
例如:對于問句“我投保你們這個產(chǎn)品A的時候,,定價是怎么定出來的,?”,表示了如下的實(shí)體屬性關(guān)系:“產(chǎn)品A-投保-定價方式-值”,。在這種情況下需要引入一個空白節(jié)點(diǎn)(Blank Node),,產(chǎn)品A是實(shí)體,投保是對象屬性(OP),,定價方式是數(shù)據(jù)屬性(DP),。
(2)實(shí)體-屬性-屬性-約束條件-值
例如:對于問句“我是個青少年,投保你們這個產(chǎn)品A的時候,,定價是怎么定出來的,?”,表示了如下的實(shí)體屬性關(guān)系:“產(chǎn)品A-投保-定價方式-青少年-值”,。即產(chǎn)品A是實(shí)體,,投保是OP,條件屬性(UC)為年齡階段,,條件是青少年,,定價方式是DP。
(3)實(shí)體+實(shí)體-屬性
例如:對于問句“產(chǎn)品A訂單的查看方式是什么,?”,,表示了如下的實(shí)體屬性關(guān)系:實(shí)體1是產(chǎn)品A,實(shí)體2是訂單,,查看方式是DP,。
2 語義分析
語義分析是對話系統(tǒng)的核心,它負(fù)責(zé)分析輸入的自然語言中關(guān)鍵的要素和整體的意圖,,對整個問答系統(tǒng)的處理能力起著至關(guān)重要的作用,。
基于語義模板的語義分析模型是比較成熟的語義分析方法,。由于在特定領(lǐng)域,用戶所用的語言和所涉及的語言變化相對較少,,使用語義模板可以基本覆蓋實(shí)際的需要,,具有簡單易行、準(zhǔn)確性高,、實(shí)用性強(qiáng)的特點(diǎn),。
因此本文采用了改進(jìn)的基于語義模板的語義分析模型。一方面把領(lǐng)域無關(guān)的語義知識和領(lǐng)域相關(guān)的語義知識分開,,另一方面利用多層次模板生成的方法,,保證模板的準(zhǔn)確度與靈活度。模板既人工可控,,可以較為精確地處理每一類問題,,又可以充分體現(xiàn)人類智慧在人工智能中起到的指導(dǎo)意義。語義分析的基本流程如圖5所示,。
圖5表示了語義分析的整個流程:自然語言通過預(yù)處理,,得到分詞后的字符串流,包括了各種命名實(shí)體的識別,、特殊符號的識別等,。字符串流和模板庫中的模板進(jìn)行匹配,得到相應(yīng)的對話意圖,。同時輸入的字符串通過信息檢索的方法,,對語料中存在答案的QA對進(jìn)行搜索,通過相似度比對找到最相似的答案,。后處理模塊決定采用模板還是QA對的結(jié)果,,將結(jié)果輸出到對話管理。
語義模板規(guī)則是通過模板的形式把用戶的意圖映射到知識圖譜上面,,例如:
句子:如何購買XX人壽險
模板R:(如何|怎么)(購買|買){{保險產(chǎn)品:e}}→(e,,p=“購買方式”,?)
從工程上來說,,類似R這種類正則表達(dá)式的方式,用戶維護(hù)起來比較困難,,很難考慮周全,。本文把用戶維護(hù)模板與系統(tǒng)模板分開,通過多級語言知識擴(kuò)展,,生成系統(tǒng)模板,。
模板生成模塊遞歸調(diào)用同義規(guī)則資源,將可維護(hù)的模板自動生成為機(jī)器使用的模板,。所謂的同義規(guī)則,,主要由3種規(guī)則構(gòu)成:
(1)停用詞規(guī)則:在句子中可以被省略的詞,,并不會影響句子的實(shí)質(zhì)語義表達(dá)。通常這些詞為副詞,、助詞等,。
(2)同義詞規(guī)則:在任何上下文中都可以相互替換而保持同義的詞匯。例如:母親和媽媽,。這部分資源,,可以在已有語言學(xué)資源的基礎(chǔ)上(例如:同義詞詞林),經(jīng)過人工編輯審核得到,。
(3)同義轉(zhuǎn)換規(guī)則:只在特定上下文中是同義的,,通常有較大的結(jié)構(gòu)性的變化。這部分資源可以一方面通過人工編輯補(bǔ)充,,也可以在較大規(guī)模的標(biāo)注數(shù)據(jù)上歸納得到,。
如上的規(guī)則在很多情況下是領(lǐng)域無關(guān)的,維護(hù)好同義規(guī)則資源,,對于領(lǐng)域遷移有很大的益處,。
例如:
用戶可維護(hù)模板:如何購買{{保險產(chǎn)品:e}}
同義詞規(guī)則1:如何→如何|怎樣
同義詞規(guī)則2:購買→購買|買
統(tǒng)一轉(zhuǎn)換規(guī)則1:如何購買{{NP}}→購買{{NP}}的方式
可以生成如下的機(jī)器使用規(guī)則:
R1:(如何|怎樣)(購買|買){{保險產(chǎn)品:e}}
R2:(購買|買){{保險產(chǎn)品:e}}的方式
這樣就實(shí)現(xiàn)了用戶可維護(hù)性與機(jī)器匹配便利性的統(tǒng)一。
3 對話管理
對話管理模塊的作用是處理對話的上下文信息,,進(jìn)行相應(yīng)的邏輯運(yùn)算并返回回答結(jié)果的表達(dá)式,。特別對于保險領(lǐng)域來說,用戶的主要目的不是閑聊,,而是要獲取相應(yīng)信息,,對話的進(jìn)程有一定的限定性和指向性。對話管理模塊主要包含了對話管理模型與自然語言生成兩部分內(nèi)容,。
在經(jīng)過語義分析和意圖分析后,,輸入的自然語言已經(jīng)被轉(zhuǎn)化為一個較為明確的邏輯表達(dá)式。對話模型旨在建立一個完整的對話流程控制和對話邏輯處理的體系,,以完成對話系統(tǒng)的對話功能,。結(jié)合特定領(lǐng)域的特點(diǎn),本文采用了基于有限狀態(tài)自動機(jī)的對話模型[6-7],,同時結(jié)合了填表的方法來構(gòu)建對話管理模塊,,如圖6所示。
在當(dāng)前保險領(lǐng)域,,自動機(jī)的狀態(tài)由{實(shí)體,,意圖,條件,,上下文}四元組決定,。狀態(tài)之間轉(zhuǎn)移而發(fā)生的對話動作(DA)主要有寒暄、反問,、推薦,、查詢,。自動機(jī)的設(shè)計遵循如下的規(guī)則,在當(dāng)前狀態(tài)下:
(1)如果意圖是寒暄,,就回答寒暄,;
(2)如果可以在知識圖譜中得到結(jié)果,就返回查詢結(jié)果,;
(3)如果在知識圖譜中沒有找到結(jié)果,,返回推薦;
(4)如果在知識圖譜中找到多個結(jié)果,,按照條件或者意圖反問澄清,,并根據(jù)回答更新上下文。
考慮到保險知識圖譜的復(fù)雜性,,自動機(jī)在自動生成的基礎(chǔ)上,,針對知識圖譜的特殊結(jié)構(gòu)做了特別的處理。
例如:保險的投保年齡分別涉及投保人和被保險人的年齡,,而年齡又有上限和下限的具體限制,,如圖7所示。在查詢投保年齡時,,系統(tǒng)檢查上下文中是否包含了“對象”信息,,以及所問的具體屬性是否明確。如當(dāng)用戶詢問“X保險最小幾歲能買”時,,系統(tǒng)反問“您想問的是X保險哪個對象的投保年齡下限:投保人,、被保險人”,此時如果用戶補(bǔ)充“被保險人”,,系統(tǒng)便能回答“X保險被保險人的投保年齡下限為0歲”,。
每輪對話都會產(chǎn)生DA,DA由邏輯表達(dá)式通過可編輯的模板生成自然語言回答,。答案生成模板是開放用戶維護(hù)的,。如果通過答案表達(dá)式索引到了多個模板,則從這些模板中隨機(jī)進(jìn)行選擇,,答案的形式可以變得更加豐富,,也使得系統(tǒng)與人交互更為友好和智能。答案生成的數(shù)據(jù)資源和自動機(jī)邏輯是完全分離的,,這使得系統(tǒng)能夠快速有效地進(jìn)行遷移,。
4 系統(tǒng)實(shí)現(xiàn)
本文在保險領(lǐng)域構(gòu)建了實(shí)用的對話系統(tǒng)。為搭建系統(tǒng),,在9 000條用戶真實(shí)QA數(shù)據(jù)上進(jìn)行了實(shí)體和意圖的標(biāo)注,,構(gòu)建了約800個語義模板,。在40 000條用戶真實(shí)測試集合上取得了93%正確率的效果,,系統(tǒng)在實(shí)際的運(yùn)行中,,不滿意占比小于10%,效果良好,。
圖8為系統(tǒng)真實(shí)的問答記錄,。
5 結(jié)論
本文從特定領(lǐng)域的特點(diǎn)出發(fā),介紹了特定領(lǐng)域?qū)υ捪到y(tǒng)的構(gòu)建方法,??偟膩碚f特定領(lǐng)域的對話系統(tǒng)是以知識圖譜為靈魂,語義解析和對話管理為核心的對話系統(tǒng),,強(qiáng)調(diào)實(shí)用性,,時效性,可移植性,。在具有較高冷啟動性能的基礎(chǔ)上,,通過從易到難,從簡單到復(fù)雜,,從數(shù)據(jù)到知識,,再從知識到數(shù)據(jù)的過程,逐步提高系統(tǒng)的表現(xiàn),。
未來的系統(tǒng)還主要需要在如下幾個方面加強(qiáng):
(1)從較大規(guī)模無結(jié)構(gòu)數(shù)據(jù)中提取知識的有效性,,利用半監(jiān)督學(xué)習(xí)和增強(qiáng)學(xué)習(xí)的方法,盡量減少人工干預(yù),;
(2)更有效率和操作性的知識圖譜構(gòu)建方法論,;
(3)適用于特定領(lǐng)域的語法分析器,在滿足數(shù)據(jù)量的基礎(chǔ)上,,結(jié)合知識圖譜的向量化,,通 過深度學(xué)習(xí),得到更好的語言模型,;
(4)更好地利用數(shù)據(jù)評價知識,,并對知識進(jìn)行加權(quán),甚至引入部分常識性表示,;
(5)更好地利用知識評價數(shù)據(jù),,減少標(biāo)注數(shù)據(jù)的偏置,通過主動交互的方法,,更有效地加快系統(tǒng)收斂的速度,。
參考文獻(xiàn)
[1] EHRLINGER L,WOB W.Towards a definition of knowledge graphs[C].SEMANTICS,,2016.
[2] 李潔,,丁穎.語義網(wǎng)、語義網(wǎng)格和語義網(wǎng)絡(luò)[J].計算機(jī)與現(xiàn)代化,2005,,7(4):38-41.
[3] MANOLA F,,MILLER E.RDF primer recommendation[EB/OL].(2004-02-10)[2019-05-14].http://www.w3.org/TR/rdf-primer.
[4] 韓韌,黃永忠,,劉振林,,等.OWL本體構(gòu)建方法的研究[J].計算機(jī)工程學(xué)報,2008,,29(6):93-101.
[5] 王梅.OWL領(lǐng)域本體構(gòu)建方法研究[J].圖書情報工作,,2006,50(12):30-35.
[6] 黃民烈,,朱小燕.對話管理中基于槽特征有限狀態(tài)自動機(jī)的方法研究[J].計算機(jī)學(xué)報,,2004,27(8):1092-1101.
[7] LIU Y,,HAO Y,,ZHU X,et al.A question answering system built on domain knowledge base[C].Web-age Information Management,,2015:111-122.
作者信息:
代文韜1,,林詩璐2,朱小燕1,,黃民烈1
(1.清華大學(xué) 計算機(jī)科學(xué)與技術(shù)系,,北京100084;2.華北電力大學(xué) 控制與計算機(jī)工程學(xué)院,,北京102206)