智慧問答機器人

簡達發表於2016-12-01

    智慧問答機器人目前已經在自動化客服領域得到了廣泛的應用,取得不錯的效果。這種技術可以比較好地使用在各種諮詢類的場景中,如售前的導購、售後的服務、醫院的導診、甚至醫療的輔助診斷等等。機器人可以迅速地響應使用者的請求,提升服務的體驗。也可以同時服務大量的使用者,極大降低企業提供服務的成本。智慧問答機器人一般採用一問一答的方式,高階一些的會採用多輪對話和主動對話的方式,主動澄清使用者的問題,以提供精準的回答。總的來說,它是一種自動化的能力,將知識或資訊,通過自然語言互動的方式準確地提供給需要的使用者。

智慧問答機器人能幹什麼

    2011年IBM研製的Watson深度問答系統(DeepQA)在美國最受歡迎的知識搶答競賽節目《危險邊緣》中戰勝了人類頂尖知識問答高手。展現了問答技術在大資料和深度學習的支援下所能具備的潛在能力。

    在智慧問答機器人的使用場景中,機器人根據使用者的自然語言問題描述,進行精準的語義分析,定位使用者問題或意圖,提取使用者問題或意圖相關的資訊,組織生成針對使用者特定問題的解答。如下圖對話所示,左側是機器人,右側是使用者,講述的是這樣一個場景:使用者購買了一箱水果和一雙鞋子,收到貨物後發現水果爛了,鞋子小了,內心滿滿的都是情緒。使用者向商家的7×24小時線上客服機器人反映問題,詢問解決辦法。客服機器人立即響應,給出詳細的解答和售後處理方法,使用者問題得到及時處理,情緒得到安撫。

 

智慧問答系統結構

    在一個典型的問答過程中,使用者的問題通過訊息工具傳送到機器人,機器人呼叫問答服務(QAS)對使用者的問題進行語義分析,從知識庫中定位相關資訊或知識,然後生成問題的回答,最後將回答通過訊息工具發給使用者。其中,有兩個主要因素決定了問答系統的使用者體驗:一個是知識庫的質量,包括知識的覆蓋面,知識的準確性;另一個是問答演算法的準確性,包括語義分析、知識提取和回答生成。

知識庫是智慧問答機器人的核心。知識庫可以是結構化的知識圖譜,也可以是資料庫表,可以是<問,答>對,也可以是非結構化的文件。不同的知識庫結構,決定了上面執行的問答演算法。我們的智慧問答機器人目前主要使用基於<問,答>對的知識庫,格式如下:

[

  {

    “id”: 1,

    “domain”: “health”,

    “question”: “吃了不乾淨的東西導致拉肚子怎麼辦“,

    “answer”: “這個考慮是食物變質引起,建議你多喝水,適當運動鍛鍊,多吃蔬菜水果

  },

  {

    “id”: 2,

    “domain”: “computer”,

    “question”: “如何重灌Windows 7″,

    “answer”: “612個月就重灌Windows 7。和從不重灌系統相比,能讓你的計算機保持最佳狀態。方法是插入Windows 7 CD。確保你的計算機設定為從光碟啟動。在計算機啟動後進入BIOS設定即可。

  }

]

以知識庫為中心,我們的智慧問答系統可以劃分為兩個大部分:離線的知識挖掘部分和線上的智慧問答機器人部分,如下圖所示。

    

    離線的知識挖掘部分是降低知識庫構建成本的關鍵,尤其是在冷啟動構建某個業務的知識庫時,需要從企業已有文件、記錄、資料庫等等資料來源收集、挖掘、整理,以獲得足夠的業務知識覆蓋。

    線上的智慧問答機器人部分,除了提供問答服務外,還圍繞著知識庫,構建了兩個閉環系統:使用者閉環和小二閉環。在機器人的服務過程中,這兩個閉環中的資訊會不斷流動,使用者的反饋和小二的反饋會被用來持續改善知識庫質量,使得整個智慧問答系統具備持續演化和學習的能力。
    

使用者閉環:使用者在使用機器人的過程中,可以通過反饋滿意/不滿意,幫助評估機器人的回答是否解決使用者問題。對於使用者經常反饋不滿意的知識點,系統通過知識庫工作臺(ODC)推給企業小二,由小二來決定是否需要對知識點進行修正。

小二閉環:知識庫工作臺(ODC)週期性的檢查使用者訪問日誌和知識庫,對於使用者經常問但沒有回答的問題、很少被訪問到的知識點、檢查有潛在衝突的知識點進行篩選,將最可能有價值的部分推給企業小二,由小二來評估、補充和修改,不斷改進知識庫。

 

智慧問答系統演算法

     我們的智慧問答系統目前主要採用<問,答>對知識庫,相應的演算法部分主要包括兩塊:一是關鍵詞提取,用於從倒排索引的知識庫中召回可能的候選答案;一是語義相似度計算,用於判斷使用者問題和知識庫中的問題是否是同一個語義。整個演算法和模型的技術體系如下圖,語義相似度計算綜合了由業務知識庫訓練出來的定製模型,以及業務無關的通用模型。

   

語義相似度計算過程中同時也考慮業務上的同義詞和上下位關係詞。以下列同義詞和上下位詞為例,可以精準地解決像“褲子破了”和“物品損壞”的語義匹配問題。

[

  {

    “name”: “商品”,

    “synonyms”: [“寶貝”,”貨物”,”貨”,”物品”,”東西”,”貨品”],  /* 同義詞 */

    “specifics”: [“特殊商品”,”衣物”,”玩具”]                 /* 下位詞 */

  },

  {

    “name”: “特殊商品”,

    “specifics”: [“貼身衣物”,”生鮮水果”]

  },

  {

    “name”: “貼身衣物”,

    “specifics”: [“內衣”,”內褲”,”文胸”]

  },

  {

    “name”: “衣物”,

    “specifics”: [“衣服”,”鞋子”,”襪子”,”褲子”,”裙子”]

  }

]

 

智慧問答系統接入

在實際應用中,智慧問答機器人往往需要和語音識別(ASR)、語音合成(TTS)搭配使用,以提供智慧語音的互動能力。我們的問答服務還可以和對話引擎(DM)、預定義領域對話服務(NLU/NLG)等等其它對話元件無縫結合,根據租戶的需要組合使用,提供一些通用的能力,如隨機閒聊、查天氣、查快遞、查地圖等等。問答服務和其它對話元件一起,採用統一的NLS API介面,作為一個整體對外提供服務。

 

 

總結和展望

我們的智慧問答技術目前能比較好的解決一些重複的、相對比較簡單的問題的自動解答。未來我們將進一步在以下幾個方面推進:

  • 降低知識庫的獲取和維護成本,運用更多的資料探勘的手段從大量資料中挖掘知識,減少人工的參與。
  • 支援多種知識庫形式,文件、表格、本體、資料庫等,充分利用企業已有的知識內容。
  • 更精準的語義分析技術,理解複雜問題,解決簡單的推理問題。


相關文章