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

14 評論 14035 瀏覽 73 收藏 8 分鐘

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

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

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

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

——“吃了嗎您吶?”

——“吃了”

那么多輪對話的概念呢?

——“吃了嗎您吶?”

——“吃了”

——“吃了什么呀”

——“老北京炸醬面”

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

無論是問答還是申請業務,作為一個智能客服,它就離不開NLP,NLP就離不開語料。

在如上的例子中,通常的工作方法是,我們定義一個用戶意圖叫“吃了嗎”,然后把相似的語料(吃了么?吃飯了嗎?吃了沒?你有沒有吃飯?……)喂給機器人,之后寫一些用例來測試它識別的準確率,如果識別率較低,就繼續喂它語料,直到我們對識別率滿意為止。用同樣的方法,我們就可以讓機器人學會理解很多種用戶意圖了。

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

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

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

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

當用戶表達“吃了嗎”的意圖,機器人應回復“吃了”;

當用戶上一個表達是“吃了嗎”and機器人回復是“吃了”and用戶這一個表達是“吃了什么呀”,機器人應回復“老北京炸醬面”;

當用戶上一個表達是“睡了嗎”and機器人回復是“沒睡”and用戶這一個表達是“吃了什么呀”,機器人應回復“親您想問什么呢?”

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

再說到業務辦理,本質是在問答的基礎上增加與用戶相關的數據交互,比如當用戶說“幫我訂個車去人民廣場”。那么機器人應該回復“好的”的同時,拿用戶的手機號和“人民廣場”等信息去完成訂車這一操作。

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

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

假設我們做的是信用卡客服機器人,那么用戶意圖很可能有“手續費怎么算”“逾期了有什么影響”,下一句用戶則可能會繼續問,“那我還上了還影響嗎”。

這其中需要思考的點很多,原則包括但不限于:

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

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

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

 

本文由 @一個圓圈兒 原創發布于人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 沒有接觸過,看完您的分享,有了點成型的理解。想問下按照上述說法:無論是問答式還是業務處理式,場景需求以及語料都需要盡可能高質量多的輸入,NLP處理后才能提高它的識別率和業務處理的專業度??梢赃@樣理解嗎

    來自江蘇 回復
    1. 是的~

      來自美國 回復
  2. 親,可以像你學習下么

    來自四川 回復
  3. 感覺自己每天還是很迷茫 沒有活干

    來自浙江 回復
  4. 可能是因為我接觸的這個產品已經比較成熟 學不到實際東西又一直沒有新項目

    來自浙江 回復
  5. 最近找了份產品助理實習 參與一款已有的智能客服產品的優化

    來自浙江 回復
  6. AI產品平時都做什么呢?對這個有些好奇,是不是各種算法應用得熟悉,什么K-mens、貝葉斯、CNN啥的?

    來自北京 回復
    1. 這是另一個巨大的topic了,我可以擇日再寫一個:AI產品經理究竟是做什么的?哈哈哈哈

      來自上海 回復
    2. 感謝回復,看了你的文章,個人膚淺的理解就是功能型AI產品經理(相對于算法型AI產品經理來說的,自己瞎份的類也不知道對不對)考慮的就是如何把AI技術應用在日常生活中,并且讓它的體驗更好。

      來自北京 回復
  7. 我讓這個-1變成了0.

    來自江蘇 回復
    1. 感恩您

      來自美國 回復
  8. 哈哈哈哈可以艾特這里的PM去提個bug了

    來自美國 回復
  9. 沒做過智能機器人這方面的產品和運營~~
    這篇文章里最受益的是思考框架、結合業務需求的核心思路、最后引導用戶發散!! ?

    來自浙江 回復
    1. 有幫助就好~

      來自美國 回復