如何設(shè)計(jì)一款垂直領(lǐng)域的對(duì)話型機(jī)器人?

0 評(píng)論 6398 瀏覽 38 收藏 11 分鐘

文章主要討論垂直領(lǐng)域?qū)υ挋C(jī)器人的設(shè)計(jì),簡(jiǎn)單的闡述一下意圖分析的典型思路和方法,并實(shí)現(xiàn)一個(gè)基本的意圖分類器。那設(shè)計(jì)一款垂直領(lǐng)域的對(duì)話型機(jī)器人,應(yīng)該包括哪些模塊呢?

如何設(shè)計(jì)一款垂直領(lǐng)域?qū)υ挋C(jī)器人,首先要了解一下對(duì)話型機(jī)器人要解決問題。

其實(shí)主要有兩方面:

  • 第一是聽得懂,主要是講的機(jī)器人要能夠理解用戶的語(yǔ)言——也就是自然語(yǔ)言理解。在這方面,已經(jīng)很成熟,已經(jīng)可以做到情緒的識(shí)別。
  • 第二方面就是答得出,就是說在聽懂的基礎(chǔ)上,我能夠給出最準(zhǔn)確的答案,這就需要有一個(gè)龐大的語(yǔ)料做儲(chǔ)備,或者說答案做儲(chǔ)備。

作為一款垂直領(lǐng)域的機(jī)器人,可以解決兩個(gè)問題:

  • 第一,我可以預(yù)測(cè)到用戶問的問題方向。
  • 第二,我的語(yǔ)料可以做的非常的精細(xì)精密,能夠做到問不漏,可以提升很大的用戶體驗(yàn)。

所以說垂直領(lǐng)域的機(jī)器人搭建更簡(jiǎn)單,也更實(shí)用。

對(duì)話型機(jī)器人包括哪些模塊

1. 問題的語(yǔ)義理解

問題的語(yǔ)義理解的過程包括兩個(gè)子任務(wù):意圖識(shí)別和實(shí)體抽取。

意圖識(shí)別?(intention classification):用來識(shí)別用戶所提問題的意圖,也就是用戶希望做一件什么事。

本文只是簡(jiǎn)單的闡述一下意圖分析的典型思路和方法,并實(shí)現(xiàn)一個(gè)基本的意圖分類器。因?yàn)楸疚闹饕懻摯怪鳖I(lǐng)域?qū)υ挋C(jī)器人的設(shè)計(jì),所以用戶的問題意圖限定在了特定領(lǐng)域,因此答案的結(jié)果的準(zhǔn)確率也會(huì)很高。

  • 意圖分類:做意圖識(shí)別第一步是要做意圖分類,根據(jù)所在領(lǐng)域,搜集歸納數(shù)個(gè)意圖。并為意圖命名。
  • 數(shù)據(jù)準(zhǔn)備:意圖識(shí)別離不開數(shù)據(jù),搜索領(lǐng)域的意圖識(shí)別用到的數(shù)據(jù)通常就是用戶的搜索日志了。一般一條搜索日志記錄會(huì)包括時(shí)間-查詢串-點(diǎn)擊URL記錄-在結(jié)果中的位置等信息。對(duì)話領(lǐng)域則需要批量的意圖語(yǔ)料。
  • 特征提?。禾卣鞯奶崛∈菫榱朔奖氵M(jìn)行分類計(jì)算,每一個(gè)特征都具備一定的權(quán)重,表明它的權(quán)值。通過特征的權(quán)值,就能夠確定句子屬于哪一個(gè)類別。這里我們將每一個(gè)字作為一個(gè)特征,1/(字出現(xiàn)的總次數(shù))作為權(quán)值,并構(gòu)建字典。
  • 模型準(zhǔn)備:模型準(zhǔn)備需要的是建立分類模型。這里我們通過給每一個(gè)特征賦予一個(gè)得分,然后將句子中每一個(gè)字的特征得分進(jìn)行相加,然后就可以得到句子在某一個(gè)類別下特征的總得分,從而能夠?qū)渥舆M(jìn)行分類。
  • 訓(xùn)練模型:在完成特征任務(wù)后,接下來就是選擇合適的分類器進(jìn)行訓(xùn)練了,因?yàn)橐鈭D識(shí)別可以看作是一個(gè)多分類任務(wù),所以通??梢赃x擇SVM、決策樹等來訓(xùn)練分類器。

完成以上工作后基本上一個(gè)意圖識(shí)別分類模型就建立好了,接下來就是對(duì)已識(shí)別語(yǔ)句的實(shí)體進(jìn)行抽取。

實(shí)體抽取?(entity extraction):用于提取用戶對(duì)話中所提供的和意圖相關(guān)的參數(shù)(實(shí)體),例如:時(shí)間、地點(diǎn)等。

要想實(shí)現(xiàn)實(shí)體抽取,主要分為兩步:

  • 系統(tǒng)分詞:現(xiàn)在都有一些開源的分詞工具,可以實(shí)現(xiàn)很高精度的分詞效果,如:jieba分詞,它的全模式就是把句子中所有的可以成詞的詞語(yǔ)都掃描出來,速度非???。
  • 信息抽取:利用jieba分詞后我們得到了切分好的短詞信息,將該信息輸入到語(yǔ)義識(shí)別模型中就可以實(shí)現(xiàn)機(jī)器人“聽得懂”的功能了。

舉個(gè)例子:智小保是一款保險(xiǎn)行業(yè)的機(jī)器人,主要回答保險(xiǎn)相關(guān)的問題。

那么可以如此定義意圖和實(shí)體:

  • Case1:推薦一款小孩的醫(yī)療險(xiǎn)給我?—— 意圖:保險(xiǎn)推薦;保險(xiǎn)類型實(shí)體:醫(yī)療險(xiǎn),被保人實(shí)體:小孩 。
  • Case2:e生保的產(chǎn)品特色是什么?—— 意圖:保險(xiǎn)產(chǎn)品了解;了解維度實(shí)體:產(chǎn)品特色,產(chǎn)品實(shí)體:e生保。

垂直領(lǐng)域的對(duì)話機(jī)器人就可以根據(jù)該領(lǐng)域所涉及的所有問題進(jìn)行聚合,梳理若干意圖,根據(jù)意圖拆分實(shí)體,意圖越具象,實(shí)體顆粒度越細(xì),回答越準(zhǔn)確。

2. 知識(shí)庫(kù)構(gòu)建

知識(shí)庫(kù)分為聊天話語(yǔ)庫(kù)和聊天人屬性庫(kù),聊天話語(yǔ)庫(kù)由多個(gè)聊天話語(yǔ)記錄構(gòu)成,每個(gè)記錄包含一條聊天話語(yǔ)、該聊天話語(yǔ)的語(yǔ)境信息、該聊天話語(yǔ)的多個(gè)回復(fù)話語(yǔ)及每一回復(fù)話語(yǔ)的限制條件集合。

聊天人屬性庫(kù)由多個(gè)聊天人屬性記錄構(gòu)成,每個(gè)記錄包含聊天人的靜態(tài)屬性和動(dòng)態(tài)屬性。聊天機(jī)器人都含有一個(gè)聊天知識(shí)庫(kù)以及對(duì)話控制模塊,聊天知識(shí)庫(kù)就像聊天機(jī)器人的大腦,存儲(chǔ)著回復(fù)用戶輸入的聊天知識(shí),而對(duì)話控制模塊則用于控制對(duì)話進(jìn)程。

對(duì)于垂直領(lǐng)域的對(duì)話型機(jī)器人,知識(shí)庫(kù)搭建則更為垂直。一般分為以下幾個(gè)步驟:

(1)數(shù)據(jù)獲取

  1. 人工維護(hù)錄入數(shù)據(jù):非標(biāo)性答案。
  2. 第三方開放平臺(tái)接口數(shù)據(jù),例:金融股票行業(yè)對(duì)于股票實(shí)時(shí)信息有相應(yīng)的API接口。
  3. 垂直爬蟲爬取數(shù)據(jù):所謂垂直爬蟲,通俗的講,可以認(rèn)為是針對(duì)某一領(lǐng)域或行業(yè)的爬蟲。網(wǎng)上的數(shù)據(jù)畢竟是錯(cuò)綜復(fù)雜的,用戶所需獲取的信息是需要有針對(duì)性的。比如:保險(xiǎn)行業(yè)可以去百度貼吧保險(xiǎn)吧等類似垂直領(lǐng)域爬取數(shù)據(jù)。
  4. 數(shù)據(jù)商城購(gòu)買數(shù)據(jù)。

(2)數(shù)據(jù)清洗

網(wǎng)路獲取到的數(shù)據(jù)畢竟是雜亂無(wú)章和帶有很多噪點(diǎn),無(wú)法拿來直接使用,必須經(jīng)過清洗后才能使用。

清洗基本也分為三個(gè)方向:

  1. 文本挖掘:從海量文本中提取出有用的信息。
  2. 協(xié)同過濾:協(xié)同過濾是利用集體智慧的一個(gè)典型方法——也就是說的少數(shù)服從多數(shù)。對(duì)數(shù)據(jù)中權(quán)重大的做優(yōu)先級(jí)排序,類似今日頭條的推薦系統(tǒng)。
  3. 深度學(xué)習(xí):目前深度學(xué)習(xí)做對(duì)話系統(tǒng),主流的核心算法是seq2seq,之后還有很多優(yōu)化算法,如使用beam search解決前k個(gè)字符概率乘積最大、考慮低頻回復(fù)的MMI,兼顧問題前后字符的信息——attention mechanism,解決連續(xù)多輪的問答HRED,同時(shí)使用reinforcement learning也能在一定程度上解決多輪問題。

總的來說,這些優(yōu)秀的算法在一定程度上確實(shí)解決了問題,不過你還是得有合適的數(shù)據(jù)(如多輪問答數(shù)據(jù))才能測(cè)試、評(píng)估、改進(jìn)等。

(3)搭建知識(shí)庫(kù)

知識(shí)庫(kù)的類型又有結(jié)構(gòu)化和非結(jié)構(gòu)化之分,非結(jié)構(gòu)化數(shù)據(jù)庫(kù)的使用涉及復(fù)雜的數(shù)據(jù)分析、挖掘技術(shù),在實(shí)現(xiàn)的效果和性能等方面都很難滿足聊天機(jī)器人的要求,因此通常采用結(jié)構(gòu)化的知識(shí)庫(kù)。

例如:對(duì)于一個(gè)機(jī)器人對(duì)話系統(tǒng),你說一句話,語(yǔ)音轉(zhuǎn)成文字之后,根據(jù)文字的分詞、句法、語(yǔ)義分析結(jié)果,去對(duì)應(yīng)的語(yǔ)言庫(kù)中,尋求或自動(dòng)生成最合理的應(yīng)答。

以保險(xiǎn)行業(yè)為例來說:需要搭建。

  1. 通用知識(shí)庫(kù):所有保險(xiǎn)名稱及專屬名稱解釋;
  2. 保險(xiǎn)產(chǎn)品知識(shí)庫(kù)?:所有保險(xiǎn)產(chǎn)品,及相關(guān)維度信息;
  3. 保險(xiǎn)產(chǎn)品推薦邏輯庫(kù):每款保險(xiǎn)產(chǎn)品的適用地區(qū)、人群等相關(guān)維度信息;
  4. 保險(xiǎn)公司庫(kù):所有保險(xiǎn)公司相關(guān)信息;
  5. 核保知識(shí)庫(kù):針對(duì)所有情況的核保信息等。

總結(jié)

在完成了上述工作后,一個(gè)可以理解人類語(yǔ)言的垂直領(lǐng)域的聊天機(jī)器人就可以為顧客服務(wù)了。但是這僅僅是可以服務(wù),具體服務(wù)效果還需后期的驗(yàn)證,對(duì)于對(duì)話型機(jī)器人產(chǎn)品,其實(shí)這只是完成了30%工作,后續(xù)的標(biāo)注、糾偏、訓(xùn)練才是重點(diǎn)。

 

作者:老張, 宜信集團(tuán)保險(xiǎn)事業(yè)部智能保險(xiǎn)產(chǎn)品負(fù)責(zé)人,運(yùn)營(yíng)軍師聯(lián)盟創(chuàng)始人之一,《運(yùn)營(yíng)實(shí)戰(zhàn)手冊(cè)》作者之一。

本文由 @老張 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!