天天看點

如何搭建一個智能客服:從NLP到多輪對話與多流程設計

作者:人人都是産品經理
如今,智能客服在我們的日常生活中已随處可見,那麼它們是如何了解我們的意圖,回答我們的問題并提供幫助的呢?本文作者用通俗易懂的文字講解了智能客服對話流程的設計,推薦給對智能客服、對話式人工智能感興趣的小夥伴閱讀。
如何搭建一個智能客服:從NLP到多輪對話與多流程設計

對話式人工智能産品越來越常見,從Siri到電話客服,不知不覺中它們已在你身邊尋覓了一個位置。筆者的産品是一款去年上線的客服機器人,簡單聊聊從0到1的經驗。

從互動形式來劃分,智能客服包括純語音(如天貓精靈),純文字(如小冰),純可視化界面(如一些電商的客服,完全通過界面互動來完成對話),語音+可視化界面(如Siri等手機助手)。互動形式沒有好壞,這一點同非AI産品一樣,根據使用者使用場景選擇最合适的形式即可。

從産品定義出發,智能客服類産品,最根本的價值在于以低成本取代人工客服工作中大量重複性的部分,再基于這個前提,去挖掘更多商業變現的可能性。人工客服的工作大緻分為兩種,一種是咨詢類的,客服隻需回答問題;另一種是申請類的,客服要幫客戶完成一些業務辦理。

是以,從可實作的功能來劃分,智能客服可分為問答式和業務辦理式,再細分為單輪/多輪問答與單輪/多輪業務申請。首先什麼叫單輪對話呢?

“吃了嗎您呐?”

“吃了”

那麼多輪對話的概念呢?

“吃了嗎您呐?”

“吃了”

“吃了什麼呀”

“老北京炸醬面”

多輪對話的另一個名字,叫作基于上下文關系的對話。單輪與多輪申請也是同理,一句話就能解決的為單輪,需要反複幾次的是為多輪。

無論是問答還是申請業務,作為一個智能客服,它就離不開NLP,NLP就離不開語料。在如上的例子中,通常的工作方法是,我們定義一個使用者意圖叫“吃了嗎”,然後把相似的語料(吃了麼?吃飯了嗎?吃了沒?你有沒有吃飯?……)喂給機器人,之後寫一些用例來測試它識别的準确率,如果識别率較低,就繼續喂它語料,直到我們對識别率滿意為止。用同樣的方法,我們就可以讓機器人學會了解很多種使用者意圖了。

多說一嘴,其實這裡就是機器學習中樣本集與測試集的概念。樣本集用來學習,測試集用來測試學習的效果。另外由于機器學習的本質還是數學與統計,并沒有真正的了解,是以學習效果非常依賴語料的品質。

直覺的表現是,不同的意圖中,語料差異越大,識别的準确率越高。比如,“吃了嗎”和“吃了沒”是相似的,“吃了嗎”和“看星星看月亮從詩詞歌賦談到人生哲學”是不相似的,那麼後者作為兩種意圖去做識别,就是容易分開的,而前者兩個說法過于相近,可能會得到很差的識别結果。是以訓練師需要了解基本的機器學習原理,才能夠檢查和調整樣本集的品質。

現在我們的機器人已經能夠聽懂一些人話了,下一步隻要定義好回複的内容,比如給“吃了嗎”回複“吃了”,給“睡了嗎”回複“沒睡”,再把這些需求交給可愛的開發同學,一個支援單輪問答的機器人就完成了!(好的這是做一個PM最愉快的時刻了)

多輪對話設計的本質,是定義場景和将多個單輪對話進行組合。對于前面提到的例子來說,在“吃了”後面問“吃了什麼呀”是正常的結合語境的問法,而脫離語境問這一句的話,就會讓聽者感到困惑。是以這部分的需求是這樣寫:

  • 當使用者表達“吃了嗎”的意圖,機器人應回複“吃了”;
  • 當使用者上一個表達是“吃了嗎”and 機器人回複是“吃了”and 使用者這一個表達是“吃了什麼呀”,機器人應回複“老北京炸醬面”;
  • 當使用者上一個表達是“睡了嗎”and 機器人回複是“沒睡”and 使用者這一個表達是“吃了什麼呀”,機器人應回複“親您想問什麼呢?”

再次把需求交給開發,我們就得到了一個支援兩輪對話的機器人。如果需要增加輪次或新的場景,那麼在此基礎上添加相應的邏輯即可。

再說到業務辦理,本質是在問答的基礎上增加與使用者相關的資料互動,比如當使用者說“幫我訂個車去人民廣場”,那麼機器人應該回複“好的”的同時,拿使用者的手機号和“人民廣場”等資訊去完成訂車這一操作。

大部分時候,業務辦理和多輪對話是交叉的,比如訂車的場景下,機器人可能需要再問一下什麼時間出發,對車輛是否有要求,那麼這至少要用三輪對話來完成。

講完了基本架構,再說說落地。在實際的需求分析過程中,我們需要了解業務背景,了解業務規則下人工客服的工作内容。從其中歸納出最終使用者一般有哪些需求,他們會問什麼,怎麼問,抽取出使用者意圖,根據重複性高的對話流程做對應的輪次設計。

假設我們做的是信用卡客服機器人,那麼使用者意圖很可能有“手續費怎麼算”、“逾期了有什麼影響”,下一句使用者則可能會繼續問,“那我還上了還影響嗎”。這其中需要思考的點很多,原則包括但不限于:

  • 了解業務規則,了解最終使用者的需求;
  • 抽取意圖時注意差異化,意圖過于接近會給後期的識别結果帶來麻煩;
  • 從使用者記錄中提取語料時要注意篩選,高品質的語料是高識别率的前提;
  • 設計輪次時要跟意圖一起考慮,不能基于無法識别的意圖做設計。

以及有一個格外需要注意的地方是,對話式智能産品與其他産品的不同在于,使用者的表達是不受限的。它不像普通的産品,一個頁面上如果隻有一個按鈕,那麼使用者就不可能有第二個操作。而對話中,使用者可能會講任何東西,例如我的小機器人已經被問了若幹次“你的爸爸媽媽是誰呀”。

是以在設計流程時,需要考慮使用者不按正常流程走完的可能性,也要在設計回複時,盡可能引導使用者往自己想要的方向去做表達,根本原則是收斂而非發散。

作者:一個圓圈兒

本文由 @一個資料人的自留地 授權釋出于人人都是産品經理,未經作者許可,禁止轉載

題圖來自 Pixabay,基于 CC0 協定

該文觀點僅代表作者本人,人人都是産品經理平台僅提供資訊存儲空間服務。

繼續閱讀