如何從0開始打造一個對話機器人?

如何從0開始打造一個對話機器人?

你是否想做一個對話機器人?如果答案是肯定,那這篇文章就是為你而準備的。

在 Facebook Messenger 里已經有超過 34000 多個對話機器人了,大部分為品牌宣傳服務(譯者註:在微信平台中也有大量的公眾號開始具備對話機器人的功能)。這些對話機器人能幹什麼呢?它們能回答用戶的問題,也能幫助用戶自助解決遇到的麻煩,從而減輕服務人員的工作負擔。那麼,你是否知道如何打造一個好用的對話機器人呢?

以下說明將指導你從 0 開始打造一個服務對話機器人,雖然它不是一個說明書般的指南,但可以幫助你規劃和思考如何打造自己的對話機器人。

1. 明確對話機器人的定位並設定目標

首先你要確定希望使用對話機器人做什麼。根據帕累托法則,客戶服務中心裡前20%的高頻問題和回答佔總查詢量的80%。因此,你需要確定是希望自己的機器人能準確地回答一小部分問題,還是能廣泛地回答更多問題。廣泛回答大量問題的「副作用」是機器人會不可避免地給出一些錯誤的答案。

2. 評估並選擇在線溝通渠道

對話機器人可以在任何支持雙向溝通的渠道中運行,包括傳統運營商(簡訊),即時通信工具(微信),社交網路(如微博)或嵌入在網站上的聊天框。如果你考慮給自己的 App 增加與客戶的對話功能,你需要問自己一個問題:在 App 中增加任何新的功能都會給用戶帶來負擔,那麼增加對話功能是否給用戶帶來新的價值?有些情況下,新的溝通渠道能夠創造出更好的客戶服務體驗。

3. 設計對話架構

對話機器人支持連續的對話場景,在對話中允許機器人和用戶進行多輪交互。與 App 或網站的體驗相比,對話式交互是基於場景或流程的,且之前所有的交互歷史對雙方來說都是始終可見的。

這意味著在對話機器人的設計中,每一條用戶消息都不能被孤立地分析,因為它是完整會話的一部分。因此,第一步你需要設計一個對話架構。這類似於圖形交互界面(GUI)中的信息架構中,如一個網站的站點地圖。需要注意的是,某些對話場景中,對話機器人的動作需要依賴上下文才能弄清楚。

4. 設計對話流程

對話流程涉及工程師開發機器人所需的所有細節,包括對話中的每個分支。在對話流程之外,還需為機器人回復的消息內容進行設計。你可以為機器人高頻使用的回復設計不同說法,也就是說,讓機器人使用不同措辭來表述同樣的意思。這樣能夠讓整個對話機器人的回復不那麼機械化、更擬人化,這有助於用戶獲得良好的體驗。

5. 設計與現有業務的集成方式

和傳統的 App 一樣,對話機器人也需要與你企業的現有業務系統進行集成。如果你已經將現有的自助服務平台(網路或語音)與企業內部系統模塊進行了集成,你也可以用類似的方法和對話機器人做集成。例如,如果你的IVR(互動式語音響應)已經可以對客戶進行身份驗證,並且提供訂單狀態信息等功能,則該集成方式很可能也能復用在對話機器人中。

6. 收集儘可能多的對話數據

你需要整理收集一系列的標準問題的不同問法,這些問法能夠反映客戶提出請求的不同方式。如果你已經有某個渠道中客戶服務人員與客戶的溝通記錄,你可以將這些對話記錄保存下來作為機器學習的樣本。

如果你需要手動生成對話數據,請確保這些數據不只是由開發人員憑直覺生成,而是從儘可能通過多的人那裡生成對話數據。因此,一種有效的方法是與眾包公司合作,通過他們讓具有不同背景的人能夠參與進來,產生對話數據。找到與目標用戶相同背景的人會對最終效果有幫助,因為相同的背景有助於創建更真實的數據。

7. 選擇合適的對話模型

大多數對話機器人都是通過以下兩個步驟處理用戶的請求:

(1)確定用戶消息的意圖;

(2)從用戶消息中提取相關的信息,並進行回復。

上述任務有兩種不同處理的方法:

(1)基於規則的方法,由開發者定義規則;

(2)基於機器學習的方法,從大量的交互記錄中訓練模型。

如果你沒有現成的數據來訓練模型,那麼你可以用基於規則的方法。基於規則的方法更可控,這在客戶服務中很重要,因為你希望最大限度地減少錯誤答案。

8. 訓練自然語言理解模型

如果你選擇了基於機器學習的方法,你需要為每個可能的意圖提供示例語句,作為訓練數據。你提供的訓練數據越多,演算法就能更好地學習到同樣意圖的不同表達方式,訓練出來的模型就能夠更好地區分不同的意圖。需要注意的是,你需要為測試模型預留一些數據。

如果使用基於規則的方法,不同意圖下的示例語句將有不同的用途。這些句子將幫助你制定明確的規則,以判斷一句話屬於意圖 A 還是意圖 B。

9. 內測和優化

接下來,你可以使用到上面準備的示例語進行自動測試。除此之外,你還需要儘可能多的通過測試人員進行「真實用戶」測試。在測試過程中,不斷修改和優化自然語言理解模塊以及對話流程,直到模型達到可接受的準確率。由於人類語言的本質,每個問題或意圖都有無限多種可能表達方式,即使是對於人類來說100%的準確率也是無法達到的。因此,這個過程需要不斷迭代,每次迭代都會讓你離這個目標越來越近。

10. 部署和迭代

對話機器人已經準備好上線,但這並不意味著,部署完機器人後工作就結束了。部署完成後,你需要不斷優化機器人,比如把機器人的回複寫得更清楚一些。你還需要通過修改規則或通過提供更多示例句子的方式,調整意圖識別的邏輯。最後,如果設計的用例不能覆蓋大多數真實用戶請求,你可能需要添加新的用例。

為了確保對話機器人部署以後達到預期的效果,你需要持續迭代優化:收集數據、分析數據、將數據應用於對話機器人的設計和優化中,不斷重複這個過程。除此之外,保存對話機器人服務過程中產生的所有日誌,因為你可能需要用到這些數據。

本文翻譯自:venturebeat.com/2017/05

作者Tobias Goebel是新興技術總監,Bill Gay是自助服務和用戶體驗解決方案總監,Lisa Michaud是數據架構師,三人均就職於Aspect Software。


想加入我們,就瘋狂砸簡歷吧!我們的郵箱是:hr@laiye.com

HR小姐姐等你來撩~


推薦閱讀:

【兩分鐘論文】在這個AI眼裡,萬物皆可「遷移」
《機器智能的未來》系列二:Yoshua Bengio--會做夢的機器 | 將門推薦
機器人時代來臨的10大預測
阿爾法狗真的比人要聰明嗎?
藝術這盤棋,終究是和局

TAG:人工智慧 | 機器人 | 產品設計 |