如何搭建一個智慧客服(一):從NLP到多輪對話與多流程設計
對話式人工智慧產品越來越常見,從Siri到電話客服,不知不覺中它們已在你身邊尋覓了一個位置。筆者的產品是一款去年上線的客服機器人,簡單聊聊從0到1的經驗。
從互動形式來劃分,智慧客服包括純語音(如天貓精靈),純文字(如小冰),純視覺化介面(如一些電商的客服,完全透過介面互動來完成對話),語音+視覺化介面(如Siri等手機助手)。互動形式沒有好壞,這一點同非AI產品一樣,根據使用者使用場景選擇最合適的形式即可。
從產品定義出發,智慧客服類產品,最根本的價值在於以低成本取代人工客服工作中大量重複性的部分,再基於這個前提,去挖掘更多商業變現的可能性。人工客服的工作大致分為兩種,一種是諮詢類的,客服只需回答問題;另一種是申請類的,客服要幫客戶完成一些業務辦理。
因此,從可實現的功能來劃分,智慧客服可分為問答式和業務辦理式,再細分為單輪/多輪問答與單輪/多輪業務申請。首先什麼叫單輪對話呢?
“吃了嗎您吶?” “吃了”
那麼多輪對話的概念呢?
“吃了嗎您吶?” “吃了” “吃了什麼呀” “老北京炸醬麵”
多輪對話的另一個名字,叫作基於上下文關係的對話。單輪與多輪申請也是同理,一句話就能解決的為單輪,需要反覆幾次的是為多輪。
無論是問答還是申請業務,作為一個智慧客服,它就離不開NLP,NLP就離不開語料。在如上的例子中,通常的工作方法是,我們定義一個使用者意圖叫“吃了嗎”,然後把相似的語料(吃了麼?吃飯了嗎?吃了沒?你有沒有吃飯?……)餵給機器人,之後寫一些用例來測試它識別的準確率,如果識別率較低,就繼續餵它語料,直到我們對識別率滿意為止。用同樣的方法,我們就可以讓機器人學會理解很多種使用者意圖了。
多說一嘴,其實這裡就是機器學習中樣本集與測試集的概念。樣本集用來學習,測試集用來測試學習的效果。另外由於機器學習的本質還是數學與統計,並沒有真正的理解,所以學習效果非常依賴語料的質量。直觀的表現是,不同的意圖中,語料差異越大,識別的準確率越高。比如,“吃了嗎”和“吃了沒”是相似的,“吃了嗎”和“看星星看月亮從詩詞歌賦談到人生哲學”是不相似的,那麼後者作為兩種意圖去做識別,就是容易分開的,而前者兩個說法過於相近,可能會得到很差的識別結果。所以訓練師需要了解基本的機器學習原理,才能夠檢查和調整樣本集的質量。
現在我們的機器人已經能夠聽懂一些人話了,下一步只要定義好回覆的內容,比如給“吃了嗎”回覆“吃了”,給“睡了嗎”回覆“沒睡”,再把這些需求交給可愛的開發同學,一個支援單輪問答的機器人就完成了!(好的這是做一個PM最愉快的時刻了)
多輪對話設計的本質,是定義場景和將多個單輪對話進行組合。對於前面提到的例子來說,在“吃了”後面問“吃了什麼呀”是正常的結合語境的問法,而脫離語境問這一句的話,就會讓聽者感到困惑。所以這部分的需求是這樣寫:
當使用者表達“吃了嗎”的意圖,機器人應回覆“吃了”; 當使用者上一個表達是“吃了嗎”and機器人回覆是“吃了”and使用者這一個表達是“吃了什麼呀”,機器人應回覆“老北京炸醬麵”; 當使用者上一個表達是“睡了嗎”and機器人回覆是“沒睡”and使用者這一個表達是“吃了什麼呀”,機器人應回覆“親您想問什麼呢?”
再次把需求交給開發,我們就得到了一個支援兩輪對話的機器人。如果需要增加輪次或新的場景,那麼在此基礎上新增相應的邏輯即可。
再說到業務辦理,本質是在問答的基礎上增加與使用者相關的資料互動,比如當使用者說“幫我訂個車去人民廣場”,那麼機器人應該回復“好的”的同時,拿使用者的手機號和“人民廣場”等資訊去完成訂車這一操作。大部分時候,業務辦理和多輪對話是交叉的,比如訂車的場景下,機器人可能需要再問一下什麼時間出發,對車輛是否有要求,那麼這至少要用三輪對話來完成。
講完了基本框架,再說說落地。在實際的需求分析過程中,我們需要了解業務背景,瞭解業務規則下人工客服的工作內容。從其中歸納出終端使用者一般有哪些需求,他們會問什麼,怎麼問,抽取出使用者意圖,根據重複性高的對話流程做對應的輪次設計。假設我們做的是信用卡客服機器人,那麼使用者意圖很可能有“手續費怎麼算”“逾期了有什麼影響”,下一句使用者則可能會繼續問,“那我還上了還影響嗎”。這其中需要思考的點很多,原則包括但不限於:
瞭解業務規則,瞭解終端使用者的需求;
抽取意圖時注意差異化,意圖過於接近會給後期的識別結果帶來麻煩;
從使用者記錄中提取語料時要注意篩選,高質量的語料是高識別率的前提;
設計輪次時要跟意圖一起考慮,不能基於無法識別的意圖做設計;
以及有一個格外需要注意的地方是,對話式智慧產品與其他產品的不同在於,使用者的表達是不受限的。它不像普通的產品,一個頁面上如果只有一個按鈕,那麼使用者就不可能有第二個操作。而對話中,使用者可能會講任何東西,例如我的小機器人已經被問了若干次,“你的爸爸媽媽是誰呀”。所以在設計流程時,需要考慮使用者不按正常流程走完的可能性,也要在設計回覆時,儘可能引導使用者往自己想要的方向去做表達,根本原則是收斂而非發散。
以上,感謝閱讀。
作者介紹:@一個圓圈兒,SaaS公司產品經理;擅長AI、搜尋、資料分析、商業化;智慧客服系列文章作者;“資料人創作者聯盟”成員。
來自 “ 一個資料人的自留地 ”, 原文作者:資料人創作者聯盟;原文連結:https://mp.weixin.qq.com/s/qCNoZ5bi3s9sNdpuPHTEPg,如有侵權,請聯絡管理員刪除。
相關文章
- 如何搭建一個智慧客服(二):結合業務場景撰寫多輪對話PRD
- 如何搭建一個智慧客服(三):NLP裡實體資訊的抓取與應用
- 請教設計一個流程多變的模式模式
- 構建從智慧質檢到對話分析的一體化智慧對話分析平臺 ,杭州銀行客服中心打造智慧運營新名片
- 如何設計財務對賬系統 —— 從零到一搭建對賬中心實戰
- MyBatis表關聯 一對多 多對一 多對多MyBatis
- JPA(3) 表關聯關係(多對一、一對多、多對多、一對一)
- Mybatis【一對多、多對一、多對多】知識要點MyBatis
- gorm 關係一對一,一對多,多對多查詢GoORM
- [增刪改查] 最簡單的 JPA 一對多/多對一 CRUD 設計
- hibernate一對多、多對多的實體設計和配置檔案配置
- 從零搭建一個IdentityServer——會話管理與登出IDEServer會話
- 我的一個主表和一個從表是一對多關係,但是從表又與其他表有一對多等關係,
- mysql 5.7 多主一從的多源複製搭建MySql
- NLP與深度學習(一)NLP任務流程深度學習
- Mybatis一對多、多對一處理MyBatis
- mybatis一對多&&多對一處理MyBatis
- MyBatis07-(多對一、一對多)MyBatis
- Mybatis09_一對一、一對多、多對多、延遲載入MyBatis
- 智慧對話機器人如何設計產品主流程框架?機器人框架
- Spring Data JPA 之 一對一,一對多,多對多 關係對映Spring
- webpack從零開始搭建多頁面(一):webpack起步到執行一個簡單的demoWeb
- spring data jpa關聯查詢(一對一、一對多、多對多)Spring
- 【Mysql】Mariadb多主一從的搭建MySql
- mybatis的一對多,多對一,以及多對對的配置和使用MyBatis
- mybatis入門基礎(六)----高階對映(一對一,一對多,多對多)MyBatis
- AI 客服對話類模型,該如何設計測試用例???AI模型
- JPA中對映關係詳細說明(一對多,多對一,一對一、多對多)、@JoinColumn、mappedBy說明APP
- 同一會話中的多個 WebRequest會話Web
- 從0到1開發搭建智慧線上客服系統
- 如何設計一個安全的登入流程
- 如何實現一個前端對話前端
- Rails 一對多AI
- 如何對錶手工擴充套件一個extent或多個extent套件
- Git操作 :從一個分支cherry-pick多個commit到其他分支GitMIT
- 多個專案多個 Gradle,如何一手管理Gradle
- 如何從0到1設計一個類Dubbo的RPC框架RPC框架
- 會議室無線投屏模式:一對多投屏與多對一投屏模式