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

qing_yun發表於2023-04-13

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

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

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

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

“吃了嗎您吶?”
 “吃了”

那麼多輪對話的概念呢?

 “吃了嗎您吶?”
 “吃了”
 “吃了什麼呀”
 “老北京炸醬麵”

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

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

多說一嘴,其實這裡就是機器學習中樣本集與測試集的概念。樣本集用來學習,測試集用來測試學習的效果。另外由於機器學習的本質還是數學與統計,並沒有真正的理解,所以學習效果非常依賴語料的質量。直觀的表現是,不同的意圖中,語料差異越大,識別的準確率越高。比如,“吃了嗎”和“吃了沒”是相似的,“吃了嗎”和“看星星看月亮從詩詞歌賦談到人生哲學”是不相似的,那麼後者作為兩種意圖去做識別,就是容易分開的,而前者兩個說法過於相近,可能會得到很差的識別結果。所以訓練師需要了解基本的機器學習原理,才能夠檢查和調整樣本集的質量。

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

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

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

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

再說到業務辦理,本質是在問答的基礎上增加與使用者相關的資料互動,比如當使用者說“幫我訂個車去人民廣場”,那麼機器人應該回復“好的”的同時,拿使用者的手機號和“人民廣場”等資訊去完成訂車這一操作。大部分時候,業務辦理和多輪對話是交叉的,比如訂車的場景下,機器人可能需要再問一下什麼時間出發,對車輛是否有要求,那麼這至少要用三輪對話來完成。

講完了基本框架,再說說落地。在實際的需求分析過程中,我們需要了解業務背景,瞭解業務規則下人工客服的工作內容。從其中歸納出終端使用者一般有哪些需求,他們會問什麼,怎麼問,抽取出使用者意圖,根據重複性高的對話流程做對應的輪次設計。假設我們做的是信用卡客服機器人,那麼使用者意圖很可能有“手續費怎麼算”“逾期了有什麼影響”,下一句使用者則可能會繼續問,“那我還上了還影響嗎”。這其中需要思考的點很多,原則包括但不限於:

瞭解業務規則,瞭解終端使用者的需求;

抽取意圖時注意差異化,意圖過於接近會給後期的識別結果帶來麻煩;

從使用者記錄中提取語料時要注意篩選,高質量的語料是高識別率的前提;

設計輪次時要跟意圖一起考慮,不能基於無法識別的意圖做設計;

以及有一個格外需要注意的地方是,對話式智慧產品與其他產品的不同在於,使用者的表達是不受限的。它不像普通的產品,一個頁面上如果只有一個按鈕,那麼使用者就不可能有第二個操作。而對話中,使用者可能會講任何東西,例如我的小機器人已經被問了若干次,“你的爸爸媽媽是誰呀”。所以在設計流程時,需要考慮使用者不按正常流程走完的可能性,也要在設計回覆時,儘可能引導使用者往自己想要的方向去做表達,根本原則是收斂而非發散。

以上,感謝閱讀。

作者介紹:@一個圓圈兒,SaaS公司產品經理;擅長AI、搜尋、資料分析、商業化;智慧客服系列文章作者;“資料人創作者聯盟”成員。

來自 “ 一個資料人的自留地 ”, 原文作者:資料人創作者聯盟;原文連結:https://mp.weixin.qq.com/s/qCNoZ5bi3s9sNdpuPHTEPg,如有侵權,請聯絡管理員刪除。

相關文章