機器人是如何實現(xiàn)對話的?

2 評論 14422 瀏覽 75 收藏 21 分鐘

對話機器人作為近年來愈發(fā)普遍的產(chǎn)品,以各種各樣的形態(tài)出現(xiàn)我們的生活中:電話客服、文本客服、超市里的導(dǎo)購機器人等;那這些機器人如何實現(xiàn)和我們?nèi)祟惖闹悄軐υ挼哪??本文將用顯淺易懂的文字講述機器人的對話原理與產(chǎn)品設(shè)計要點。

一、你都見過什么樣的對話機器人

在正式開始接受設(shè)計原理前,我們一下來回顧下生活中,常見的對話機器人包括哪些類型:

1. 文本型智能客服

這種類型的對話機器人大多出現(xiàn)在app中或者網(wǎng)站上,以文字為主要的交互方式,旨在為顧客提供常見的問題解答與簡單任務(wù)的處理(如退貨,換貨等);常見的有:

  • 阿里小蜜
  • 京東JIMI
  • 唯品客服

2. 話務(wù)型智能客服

這種類型的對話機器人常見于銀行與大型企業(yè)(如家電)的話務(wù)咨詢上,以語音為交互方式,同樣也是為了解答顧客的常見問題與處理簡單任務(wù)(如查詢余額、充值等);常見的有:

  • 工行工小智
  • 中行智能客服
  • 海爾智能客服

3. 個人助手

這種的對話機器人現(xiàn)階段基本已經(jīng)滲透到了每一臺智能手機,進入大多數(shù)人的日常生活,旨在為用戶提供一種語音交互的手段來提高操作的效率(如鬧鐘設(shè)置,日程提醒);常見的有:

  • Siri
  • Google Assistant
  • Alexa
  • 小愛同學(xué)

4. 工作助手

這種類型的對話機器人主要用于以文本或者語音對話的形式幫助員工進行假期申請,事務(wù)提醒等日常工作事項,起到辦公事項的整合(各種辦公事項都可以通過工作助手對話來實現(xiàn))與效率的提高;常見的有:

  • slack
  • 釘釘

二、對話機器人的價值

1. 售后接待

在這個場景下,對話機器人最大的價值在于問題的攔截,即100個顧客來咨詢,最終需要人工客服解答的顧客只有10個——大大降低客服成本。

2. 售前接待

這種場景下,對話機器人最大的價值在于接待的及時性;想象下,淘寶里詢問掌柜問題,若是掌柜隔了五分鐘再回復(fù),那基本就不會在這家店買東西了。因此,這類機器人在顧客到來的第一時間由機器人接待,同時機器人也在通知掌柜的抓緊上線,接管會話。

對于企業(yè)服務(wù)來說,這類機器人還會判斷顧客的意向程度,針對高意向的顧客會引導(dǎo)留下聯(lián)系方式,方便后續(xù)客戶經(jīng)理的跟進。

3. 個人助手

這種場景下的機器人,最大的價值在于以語音交互的方式提高用戶操作效率。例如在晚上在床上準備睡了,忘了設(shè)鬧鐘,而手機在桌子上,這時候一句話就能完成鬧鐘設(shè)置想必是一個很爽的體驗。

三、問答型文本對話機器人

這類型最典型的代表就是文本智能客服,這類客服常見于各種app中,以文本的形式為用戶排憂解惑。

1. 工作流程

下面我們來看下一個文本型智能客服的完整工作流程:

1)用戶發(fā)送消息:用戶以文本的形式輸入自己的問題。

2)NLU:NLU單元收到用戶的文本消息后,進行自然語言理解,識別用戶的問題,輸出識別結(jié)果

3)對話管理:對話管理單元收到NLU的識別結(jié)果后,找到該識別結(jié)果對應(yīng)的回復(fù)內(nèi)容,進而以文本的形式輸出回復(fù)內(nèi)容給到用戶

2. NLU到底做了什么

在整個工作流程中,NLU作為核心環(huán)節(jié)之一,想必是許多朋友們希望能夠了解的,那我們接下來就講講,在這一個環(huán)節(jié)里面,機器到底是如何理解人類的語言的。

如果用一句話來概括NLU的工作的話:根據(jù)用戶的問題,在知識庫中尋找對應(yīng)的問題。

這里涉及了一個概念,知識庫:所有用戶常見問題的集合(包含同一個問題的多種問法與回答)。

這就好比一個行軍打仗的將領(lǐng),面臨大敵的時候,拿出仙人給的錦囊,從錦囊里掏出一條退敵的妙計。知識庫在這里就好比是錦囊,而挑選出錦囊中的妙計這一過程就好比NLU的工作。

2.1 基于統(tǒng)計學(xué)的自然語言理解

實際應(yīng)用中,NLU常用的技術(shù)是基于統(tǒng)計學(xué)的自然語言理解,即:通俗的說就是把用戶的問題經(jīng)過簡單處理后,和知識庫中的所有問題進行相似度計算,找到相似度最高的問題,然后把該問題的答案返還給用戶。

用一句話來概括就是:找相似。

而在這個過程中,又可以詳細的拆分為以下幾個環(huán)節(jié):

  • 分詞:顧名思義,把一句話,進行分詞處理,這也是中文自然語言理解領(lǐng)域最痛的一點,一旦分錯,后面的工作都白費了。而英文不一樣,英文本就是每個詞都用空格隔開的,不存在這個問題。
  • 去除停用詞:把一些沒有用的詞去掉,例如【的】【呢】語氣詞、副詞等,精簡句子,輸出最簡表達。
  • 詞性標注與命名實體識別(時間,貨幣):針對最簡表達中的詞性進行標注,同時針對一些專有名詞名次進行識別,我們叫命名實體識別,如時間、貨幣、樓盤名稱、人名等領(lǐng)域知識的識別。
  • 向量化(word2vec):想要計算機處理這些數(shù)據(jù),向量化是一個不錯的方法,利用word2vec等算法把文本向量化。
  • 計算相似度(BM25算法,TFIDF,分類與檢索):完成了文本向量化之后,我們就需要計算用戶的這個問題和知識庫中每一個問題的相似度了,并從中找出相似度最高的一個知識庫問題,并把該問題對應(yīng)的答案返還給到用戶。其實整個過程又可以分為兩個過程:召回與排序;通過分類算法(如Bert)找出知識庫中用戶最有可能問的幾個問題,進而通過檢索算法(如BM25)計算這幾個候選問題的相似度。

2.2 其他NLU技術(shù)

1)基于模版標注的語言理解

基于模版標注的自然語言理解也是常用一種技術(shù),人工標注知識庫每個問題的最簡表達、關(guān)鍵實體、同義詞標注。這樣做的最大好處就是識別的準確率高,因為系統(tǒng)通過標注數(shù)據(jù),已經(jīng)知道了知識庫問題的最簡表達,以及每個問題的關(guān)鍵詞,以及同義詞;進而利用這部分數(shù)據(jù)去解析用戶的問題,往往能夠得到更加準確的識別結(jié)果。但是,缺點也是同樣明顯,需要針對每一個問題的每一個文法進行標注,典型的有多少人工,就有多少智能的做法。

2)基于知識圖譜的問答(KBQA)

另外的話,基于知識圖譜的知識問答也逐漸走上舞臺。通過知識圖譜來對問題進行語義解析。例如姚明的老婆的國籍這樣一個問題,知識圖譜先找到姚明,然后找到姚明的老婆葉莉,最后找到葉莉的國籍中國。這項技術(shù)的準確率一般很高,但是能夠覆蓋多少問題,就要看這個知識圖譜建設(shè)的好不好,夠不夠廣;而知識圖譜的搭建,本身就是有多少人工,有多少智能的工作。

3. 知識庫的構(gòu)建

講了NLU之后,不得不講的就是知識庫了,顧名思義,就是【知識的寶庫】,里面收集了所有希望機器人能夠回答的問題,對應(yīng)問題的N種文法(如價格這個問題:多少錢?怎么賣?價格怎樣?),以及問題的對應(yīng)答案。

構(gòu)建一個知識庫的步驟也很簡單(簡單,但不代表很快,它需要多次調(diào)整和補充):

  • 收集問題:收集我們希望機器人能夠回答的所有問題,一般客服中心都有這種知識庫,沒有的話可通過相關(guān)部門人員結(jié)合日常工作內(nèi)容進行總結(jié)整合。
  • 填寫問法:即一個問題對應(yīng)的多個文法,這個需要窮舉(如價格這個問題,問法可能有:怎么賣?多少錢?等),可利用同義詞和句式的改變來進行思考,一般這是傳統(tǒng)客服知識庫沒有的內(nèi)容,需要重新整理。
  • 補充答案:即該問題對應(yīng)的答案,這塊內(nèi)容也是傳統(tǒng)的客服知識庫就會有的內(nèi)容,但是一般建議對每一個問題最少填寫兩個答案,為的就是在用戶提出同一個問題的時候,可以對同一個問題有不同的回答方式(但意思相同),讓用戶體驗更好。
  • 知識庫模型發(fā)布:每一個知識庫就是一個NLU模型,因此每一次的知識庫更新也就意味著NLU模型的更新:系統(tǒng)把知識庫中的內(nèi)容(問題與問法)輸入到模型中進行訓(xùn)練,得到一個專門針對該知識庫的NLU模型。

四、閑聊機器人:做個有溫度的機器人

除卻問答型的機器人外,市面上常見的還有閑聊機器人,最典型的代表就是微軟小冰:無聊了,寂寞了,都可以找小冰說說話,而小冰一般也能給出不錯的對話內(nèi)容。

要滿足機器人的閑聊場景,做法和問答型機器人大同小異,就是加入一個閑聊的語料庫,這個語料庫一般都可以從網(wǎng)上找到,但語料的覆蓋范圍和提供者所從事的服務(wù)有很大的關(guān)系,例如阿里云小蜜的閑聊就滿滿的都是淘寶味,畢竟那些訓(xùn)練的語料大都來自于淘寶體系內(nèi)用戶和掌柜的聊天內(nèi)容。

而一般的智能客服廠商,為了更好的銜接對話,也為了讓用戶有一個更好的對話體驗,一般也會加入一定量級的閑聊語料庫,但這個庫一般卻是不允許編輯的,里面涉及一些敏感詞的管理,以及運營成本的考慮。

而這個閑聊語料庫,廠商必定也是在服務(wù)客戶的過程中,根據(jù)對話記錄去不斷豐富和完善的。

五、任務(wù)型機器人:做一個能夠解決問題的機器人

圖片中是一個物業(yè)報修機器人的對話截圖,一個用戶通過和機器人的多輪對話,完成了問題的描述并成功報修。

類似的場景逐漸得到了越來越多的應(yīng)用,例如海爾的家電安裝預(yù)約已經(jīng)實現(xiàn)了全量的機器人接待和預(yù)約,一方面大大的節(jié)省了企業(yè)的人力成本,另一方面也解決了及時響應(yīng)消費者的問題。

1. 什么是任務(wù)型對話機器人

在開始講任務(wù)型對話機器人設(shè)計之前,我們先明確下任務(wù)型對話機器人的定義:

  • 任務(wù)型機器人指特定條件下提供信息或服務(wù)的機器人
  • 場景案例:查天氣,設(shè)鬧鐘,訂餐,訂票,播歌
  • 通常需分多輪互動,用戶在對話過程中不斷修改與完善需求,任務(wù)型機器人通過詢問、澄清和確認來幫助用戶明確目的

結(jié)合以上定義,我們就不難理解,完成一個任務(wù)型對話,需要進行以下三個關(guān)鍵點的設(shè)置:

  • 意圖識別設(shè)置:即設(shè)置一個意圖(一個意圖一般對應(yīng)一個任務(wù)與操作),以及用戶如何發(fā)問才能觸發(fā)該意圖,如示例中的物業(yè)維修就是一個意圖。
  • 詞槽設(shè)置:即需要執(zhí)行該意圖任務(wù)所需收集的關(guān)鍵信息,如示例中的物業(yè)報修,需要知道用戶具體是什么問題才能生成物業(yè)維修工單。
  • 回復(fù)設(shè)置:即當(dāng)機器人完成了所有關(guān)鍵信息的收集且執(zhí)行了意圖任務(wù)之后,對用戶的回復(fù),可能是一句話,如示例中的【收到,回頭會有物業(yè)維修的師傅聯(lián)系您】;也可能是一個執(zhí)行結(jié)果,如示例中的工單接受通知。

2. 意圖設(shè)置

意圖,就是用戶想要達到的目標。上圖的示例講的是一個早餐預(yù)定的例子。

對于機器人來說,我們得先告訴它,用戶輸入了哪些內(nèi)容之后,即可認為用戶想要達成的就是該意圖。而這個設(shè)置,一般有以下幾種常見的方法:

1)對話樣本集

例如示例這里的意圖是早餐預(yù)定,那么當(dāng)用戶輸入:預(yù)定早餐、訂一份早餐等語句的時候,即可認為用戶想要達成的就是早餐預(yù)定這個意圖。

而這個設(shè)置的基本原理和方法與知識庫中的問題設(shè)置基本一樣,就是把用戶表達該意圖時常用的對話樣本進行收集和錄入。后續(xù)用戶只要表達了相近的輸入后,系統(tǒng)就會按照該意圖來執(zhí)行對話。

2)關(guān)鍵詞

這個很好理解,就是對用戶表達某個意圖時的關(guān)鍵詞進行識別,只要用戶的表達中含有這些關(guān)鍵詞,系統(tǒng)就會按照該意圖執(zhí)行對話。例如訂火車票這個意圖,只要用戶提及【訂火車票】這個詞時,即可讓機器人進入訂火車票這個意圖的多輪對話。

3)句式模版

句式模版這種方法,其實就是把某個意圖的語言表達進行規(guī)則化的抽象。例如訂火車票這個意圖,一般的表達就有:訂一下從廣州到長沙的火車票。像這種表達就可以抽象成這樣的句式模版:【發(fā)起預(yù)定】+【出發(fā)城市】+【到大城市】+【票類】

3. 詞槽設(shè)置

詞槽是多輪對話過程中將初步用戶意圖轉(zhuǎn)化為明確用戶指令所需要補全的信息。例如說,示例中的早餐預(yù)定,我們識別到了這個意圖之后,還需要知道顧客想要吃什么,什么時候來拿——這兩個關(guān)鍵信息就是機器人在執(zhí)行這個意圖前需要完成收集的。

而詞槽設(shè)置一般包含以下幾個關(guān)鍵環(huán)節(jié):

  • 詞槽設(shè)置
  • 詞典設(shè)置
  • 澄清話術(shù)設(shè)置

1)詞槽設(shè)置

詞槽設(shè)置的核心在于明確執(zhí)行該意圖過程中,需要明晰哪些關(guān)鍵信息。例如示例的早餐預(yù)定,那【時間】和【吃什么】則是兩個必須明確的信息。

當(dāng)然,除了必須要明晰的信息外,我們也可以讓機器人去記錄一些非必要因素(例如是否加辣),如果用戶有表達這個信息,機器人則會記錄相關(guān)信息;若用戶沒有表達該信息,機器人也不回去追問。

2)詞典

詞典,即告訴機器人,那些關(guān)鍵信息都有哪些枚舉值。例如示例的早餐預(yù)定,【吃什么】這個詞槽的詞典,就包含了:餃子、牛肉丸、蘿卜糕等詞。

而機器人只要能夠完成這些詞的識別,即可完成【吃什么】這個詞槽的填寫。

至于詞典的設(shè)置,一般分為兩部分:

  • 系統(tǒng)預(yù)置詞典:對于像時間、貨幣、地點、城市這些信息,系統(tǒng)一般會提供預(yù)置詞典,用戶只需要自己選擇即可。
  • 用戶自定義詞典:而對于一些特定領(lǐng)域的專有名詞,則需要用戶自己去定義,例如樓盤的名稱,菜單的名稱等;只有設(shè)置了這些詞典,機器人在遇到這些特殊領(lǐng)域的專有名詞時才能夠更好的識別和完成關(guān)鍵信息的提取。

3)澄清話術(shù)

既然一個意圖中設(shè)置了若干的關(guān)鍵信息(詞槽)需要用戶填寫,自然就會存在用戶在表達意圖過程中沒有一次性表達清楚所有的關(guān)鍵信息,這時候機器人就需要針對一些必要的關(guān)鍵信息做追問,并根據(jù)用戶的回答完成關(guān)鍵信息的識別和提取。

而這個追問的話術(shù),正是這里的澄清話術(shù),即我們告訴機器人關(guān)于某個具體的關(guān)鍵信息,機器人應(yīng)該如何發(fā)問。且一般針對同一個關(guān)鍵信息,會設(shè)置多個澄清話術(shù),為的是在追問用戶同一個關(guān)鍵信息的時候,機器人能夠用不同的化詢問同一個信息,讓用戶能有更好的體驗。

4、回復(fù)設(shè)置

當(dāng)機器人完成用戶意圖的識別,且完成了關(guān)鍵信息的收集后,即可進行意圖的執(zhí)行。而意圖的執(zhí)行后,機器人需要給用戶一個回復(fù)(總得告訴人家做得怎么樣嘛),這個回復(fù)可以是一句話,也可以是一個操作的執(zhí)行入口,又或者是意圖執(zhí)行之后的模版消息,也可是一個h5頁面等等,這個要具體場景,具體而論,沒有太多的限制。

六、綜合型對話機器人

當(dāng)前市面上的機器人,更多的是綜合型的對話機器人,即同一個機器人,掛載了問答知識庫、閑聊語料庫以及多個任務(wù)技能。只是每個機器人根據(jù)自身具體的服務(wù)場景,在知識問答、閑聊、任務(wù)對話三者上面有所傾向罷了。

也正是因為綜合型對話機器人的出現(xiàn),讓我們現(xiàn)在的生活更加多彩,我們才可以在深夜十二點進行物業(yè)報修預(yù)約,才可以夜深人靜的時候有個傾訴的對象,才可以在懶癌發(fā)作的時候通過一把聲音控制家里的電器。

那是不是只要一個綜合型對話機器人做到了以上的內(nèi)容,就可以高枕無憂,和我們?nèi)祟悤惩▽υ捔四兀匡@然不是的!上面這些內(nèi)容如果形容為游戲中的核心裝備的話,那要做好一個對話機器人,還需要針對不同的服務(wù)場景增加不同的輔助裝備——這方面我們下回分解!

 

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

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

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 知識圖譜和對話機器人是什么關(guān)系?

    來自浙江 回復(fù)
    1. 對話機器人的知識庫可以嘗試以知識圖譜的形式去做組織

      回復(fù)