58同城對話機器人應用實踐:本地生活服務場景中的商家智能助手

【導讀】

對話機器人是過去幾年國內外互聯網巨頭最青睞的方向之一,很多公司都對此做出了明確佈局。深度學習在機器視覺獲得巨大成功後,在 NLP 和對話機器人方向也被研究界寄予厚望。

伴隨着工業界和研究界的關注,對話機器人穩步向前發展,越來越多的企業在把對話機器人應用到產品中。那麼,目前業界如何構建這些對話機器人?主要使用什麼技術?深度學習和 NLP 在這過程中起到了什麼作用?如何讓對話機器人成爲人工智能,而不是“人工智障”?

本次分享以《58同城對話機器人應用實踐——本地生活服務場景中的商家智能助手》爲主題,重點介紹在本地服務(黃頁)業務場景下,如何利用對話機器人爲商家提高效率和收益。

在正式內容開始之前,首先做一下簡單的自我介紹。我叫韓偉,2011年碩士研究生畢業於中國科學院大學,畢業後先後在阿里巴巴和獵戶星空從事NLP相關的研發工作,19年加入58同城AI Lab,目前負責智能問答部相關工作,主要的產品有58同城智能客服系統(幫幫)和58智能客服商家版(微聊管家)。

今天的分享將從以下幾個方面展開:58的業務背景、58對話機器人的總體技術架構、核心能力、總結和展望。我們想通過這次分享使大家瞭解到58對話機器人系統中的技術全貌,希望對大家有所啓發。

一、業務背景

首先介紹58同城的業務背景,58同城是一個生活服務平臺,平臺連接着大量B端商戶和C端用戶,B端商戶在平臺發佈帖子信息,平臺將這些帖子信息分發給C端用戶供其瀏覽。在58同城App或網站上,用戶可以通過搜索和推薦的方式獲取帖子信息,例如用戶可以通過搜索框搜索信息、進入列表頁篩選和瀏覽信息。58同城提供租房、二手房、找工作、二手車、黃頁、二手車等信息,平臺上有大量商家和用戶,平臺的目標是提高雙端連接的效率。

讓我們先從生活中的一個實際場景開始,讓大家直觀感受58是如何服務我們平常生活的。

我們經常需要保潔打掃服務,首先打開58同城App,選擇家政服務大類頁,然後選擇自己滿意的服務商家,這時候我們可以看到“微聊”入口,通過它可以連接起C端用戶和B端商家。

二、58對話機器人

基於58平臺大量的商家和用戶,我們構建了58同城對話機器人。從功能上講:58同城對話機器人提供了智能問答、多輪對話、商機挖掘、智能輔助、在線客服等幾大核心功能,目前已經落地在幫幫智能客服系統和智能客服商家版中,智能客服商家版已經在58集團各個業務線落地,比如:針對本地服務的商家助手,針對房產的經紀人助手,針對招聘的企業助手以及針對車的車商助手。

接下來,我們介紹一下58智能客服商家版的整體架構,爲了提升B端商家和C端用戶的有效連接,我們打造了智能客服商家版。

在全AI模式下,所有的諮詢都會優先轉接給自動問答機器人,當遇到機器人無法回答的問題時,則根據用戶配置轉接人工。支持設置開啓時間段,應對商家在不同時間段的接待需求。

智能輔助模式-人機協作共同服務:

人工接待中,用戶的提問如果命中知識庫的問題,機器人向人工坐席推薦答案,由人工參考回覆用戶。

這裏是智能客服商家版的後臺界面,2020年Q2季度我們總共公開通了近百萬商家,累計服務了近千萬的C端用戶。

智能客服商家版在生活服務品類落地場景是這樣的,在生活服務品類中,我們同時有人工坐席和AI對話機器人,根據不同的類目和工作時間段,C端用戶會和AI對話機器人或者人工坐席進行溝通,人工坐席和AI對話機器人的目的都是解決用戶的問題,同時獲取用戶的電話商機。在取得用戶的電話商機後,平臺會把商機通過商機中心推送給B端商家。最終C端用戶和B端商家通過挖掘出的電話商機進行溝通,最終成單。

三、核心能力

QABot

基於上述,我們提供了滿足業務諮詢的QABot能力,提供商機引導的TaskBot和商機催留能力,以及提高人效的商機挖掘和智能輔助能力。

首先,QAbot解決的是用戶的問題諮詢場景,實際業務過程中,我們核心要解決的問題是:(1)機器人能回答哪些用戶提問;(2)如何回答更多的問題並準確回答

我們先看第一個問題,也就是怎麼才能知道用戶可能的提問有哪些。我們藉助機器與人工挖掘結合的方式,先用KMeans等聚類方法獲取一些種子問題,再由編輯標註,得到業務線知識庫,該知識庫包含標準問題和擴展問法。

有了業務線知識庫之後,我們可以在這個基礎上訓練問答模型。該模型輸入用戶query,輸出對應的標準問題編號。

識別出了用戶問題,如何回答也很重要。我們使用結構化的答案庫,通過查詢帖子結構化數據+文本填充相結合的方式,動態生成答案。

大家可以看到,問答模型的效果對用戶體驗非常重要。爲提升問答模型效果,達到F1值大於0.8的目標,我們結合線上數據進行了多次模型迭代。

在項目初期,我們使用FastText作爲基準,快速得到問答模型。選擇FastText這個淺層神經網絡,一方面是考慮網絡的訓練和預測速度快,可以快速驗證數據是否存在異常;另一方面是NGram能夠快速捕捉關鍵詞特徵,在一些關鍵詞比較明顯的類別上能取得不錯的效果。

DSSM作爲一個文本匹配模型,其優勢在於對樣本少的類別也有較好的匹配效果。句子的表示方法對DSSM模型的效果有顯著影響。這裏我們先試用了LSTM模型對句子進行表示。相對於NGram而言,LSTM更能夠提取出句中的長程特徵,提升了樣本中長句子的識別效果。其次我們也對LSTM+NGram特徵的結合進行了嘗試,使得模型在有效處理長句的同時,也能不遺漏關鍵詞特徵。

58微聊場景下積累了大量的無監督數據,在預訓練模型出現後,我們得以進一步挖掘這些數據的潛力。實踐中,BERT模型作爲此類半監督模型的代表,在分類任務中取得了良好的效果。BERT 的主要特點是預訓練掩碼語言模型+微調兩個步驟的結合,同時爲了配合Transformer encoder的使用,使用了位置編碼機制。

SPTMs這個輕量級的預訓練模型實現比較早,BERT在18年10月底發佈,這個模型是 19年4月實現的。這裏當時看主要創新點是去掉BERT的NSP任務,另外替換成Bi-LSTM也是做一種嘗試(實際也可以用一層的 Transformer),在機器資源有限情況下讓預訓練變得容易。如果直接用BERT去預訓練,耗時很久,而SPTM的推理耗時較低,可以在CPU上直接跑,十幾到幾十毫秒。

SPTM將每個單句作爲一個樣本,句子中不超過15%的字參與預測;參與預測的字中80%進行mask,10%隨機替換成詞典中一個其他的字,10%不替換。在預訓練階段,SPTM使用softmax值與單字one-hot相乘作爲損失度量;在微調階段則計算各類別的交叉熵損失。

SPTM經調整後能達到F1>0.8的目標,同時其推理耗時也在控制範圍內。目前LSTM+DSSM/SPTM模型已在github開源,大家可以參考我們之前分享的文章《開源|qa_match:一款基於深度學習的層級問答匹配工具》(鏈接:https://mp.weixin.qq.com/s/2NahwBgAnptiK5pv6vTLNQ)進行詳細瞭解。

TaskBot

TaskBot是一類幫助用戶完成特定任務的聊天機器人。借鑑通用的Frame數據結構,我們採用意圖+詞槽的組合對用戶query進行知識表示。在58場景下,我們將用戶提供的特定詞槽值稱作商機,TaskBot的目標即是引導用戶提供商機。

58作爲提供本地生活服務的頭部平臺之一,同時服務於C端用戶與B端商家。爲提高平臺效能,促進增收,我們基於TaskBot開發了商機引導功能,由機器人代替人工,引導用戶透露商機,目標是轉化商機、促成交易。

在58服務尋求場景下的會話中,用戶需求的複雜性給商機引導帶來了諸多挑戰(如圖中實際的用戶對話)。實踐中我們發現,20%的用戶在問了一輪後就退出會話,而餘下的80%用戶中,有45%在被問到電話時,表示拒絕或不願透露。

通過學習人工客服的會話,我們發現人工客服回覆存在固定的模式,一般人工客服會先回答用戶的提問,再根據需要問的信息對用戶進行反問。在這個基礎上,我們選用了結合一問一答的QABot和商機引導多輪Taskbot的方案,實現類似人工客服回答模式的商機引導過程,目前已在房產等多個業務線落地。

舉個例子,在實際會話中,用戶的第一個問題命中某標準問題,此時我們先查詢答案庫,獲取到一問一答(QABot)的答案,同時,我們根據TaskBot的觸發條件判斷,如果觸發TaskBot,則繼續回覆TaskBot的反問。

在觸發TaskBot後,用戶在TaskBot的依次引導下,逐步透露商機,此時QABot不會命中標準問題,TaskBot引導用戶直到對話結束。

通用的TaskBot包含NLU、DM與NLG模塊。我們將DM和NLG模塊集成在統一的對話管理服務中,加上NLU模塊單獨對應一個服務,共兩個SCF服務。

基準版的對話管理服務,以一個可以從靜態配置信息中初始化的狀態機作爲核心。狀態機的每個節點對應於一組槽位的組合,每條邊對應於意圖與一組槽位的組合。當前的狀態存放在58存儲服務WRedis內。用戶輸入被解析爲意圖和詞槽的組合後,對話管理服務根據狀態機狀態選擇出一個回覆策略,這個策略由動作與參數組成。查詢得到參數值後,根據動作類型選擇合適的回覆模板,便得到了最終的回覆。

隨着TaskBot接入業務的增加,業務側對其靈活性和通用性都提出了更高的要求。這裏我們借鑑業界經驗,對原有的狀態機進行進一步抽象,定義出觸發、填槽、函數與回覆這4種節點類型,每種類型應用特定的配置,使狀態機配置大幅簡化,複用成本大大降低。

與Frame將知識區分爲Procedure和Data相似,TaskBot區分了標準問題和詞槽。標準問題直接複用自QABot的結果,用於判斷是否需要觸發TaskBot進入商機引導流程,詞槽則對應於具體的商機信息。

智能商機催留

我們分析線上用戶數據發現,未提供商機的用戶中,48%的用戶在AI機器人詢問電話之後就退出了對話,用戶不再與機器人進行溝通,這樣這部分用戶的商機就流失掉了。

同樣我們分析了人工客服的對話記錄,發現用戶同樣存在退出會話的問題,但是人工客服會主動與C端用戶進行溝通,一般在用戶不回覆後約30秒的時候,人工坐席就開始進行主動會話催留,經統計發現,針對3次催留的用戶,其中有80%的用戶留了電話商機。

所以,我們構建起基於對話管理器中對話狀態+智能主動發問的能力,賦予AI對話機器人主動對話的能力,與用戶展開主動聊天,智能催促用戶留下電話商機。

這個地方,我們使用多輪對話用戶的商機狀態,結合微聊消息隊列的定時器,通過模擬人工坐席的催留節奏和話術,達到智能商機催留的目的。

在本地服務品類,智能商機催留功能上線後,我們的商機轉化率絕對提升14%,效果顯著。

商機挖掘

在智能客服商家版中,存在對話機器人和人工坐席,目前支持的人機協作模式有以下三種:

①機器人接待用戶,機器人回答不了轉人工客服

②機器人和人工客服各自接待一部分用戶

③機器人全部接待,無人工客服參與

這張圖展示的是人工坐席的後臺工作界面,一個人工坐席會同時與多個店鋪的多個用戶進行在線溝通,所以,提升人工坐席的工作效率是非常重要的。

我們提供了商機自動挖掘的能力,在人工和用戶溝通過程中,AI會自動挖掘C端用戶的商機並且自動填寫到商機管理中,同時針對C端用戶的問題,我們會提供智能輔助的能力,給人工坐席提示可能的候選答案,供人工坐席採納以提高回覆效率。

我們利用了IDCNN提取上下文語義特徵能力,以提升遠距離建模的能力,CRF建模狀態轉義的能力。CRF層引入序列的轉移概率,避免標籤偏移,最終計算出loss反饋回網絡。AI提供了多種商機的挖掘能力,包括核心商機:電話,地點,時間,業務商機屬性。

無論是機器人引導的商機還是人工坐席產生的商機,最終都會流入商機管理系統,商機挖掘後,我們會實時推送給商機中心,商家與用戶進行及時的溝通最終促成交易,從而達成了整個服務的閉環。

目前,從商機轉化率上,我們對話機器人達到了人工坐席大約95%的水平,部分類目對話機器人甚至高於人工客服的電話商機轉化率。同時,商機挖掘的準確率和召回率也都超過了90%,提高了坐席的人效。

四、總結展望

未來我們會加速算法創新和業務落地,從強化學習、預訓練等技術進行深入研究,提高對話機器人的效果。

58AI Lab實驗室介紹

最後介紹一下我們的58AI Lab,AI Lab隸屬於58同城TEG技術工程平臺羣,旨在推動AI技術在58生活服務行業的落地,打造AI中臺能力,以提高前臺業務的人效和用戶體驗。AI Lab目前負責的產品包括:智能客服、語音機器人、智能寫稿、語音分析平臺、AI算法平臺、語音識別引擎、智能營銷系統等,未來將持續加速創新,拓展AI應用。

AILab大力推進開源社區,目前我們基於開源了58智能問答匹配算法開源項目和58通用深度學習推理服務開源項目,歡迎大家star/fork。

歡迎關注58AILab公衆號

58同城AI算法大賽開放報名啦!關注上面的公衆號快快進行報名吧!

我們還在大力招人,後端工程師和算法工程師,歡迎發送簡歷到我的郵箱[email protected]

感謝大家的聆聽。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章