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