本篇是專欄中介紹聊天機器人的第一篇,會大概介紹聊天機器人的歷史、特點、分類以及技術框架,讓大家對聊天機器人有一個大致的瞭解。
作者 | 小Dream哥
編輯 | 言有三
1 chatbot概述
關於對話機器人的研究,可以追溯到上個世紀50年代,Alan M. Turing提出了“機器可以思考嗎?”的圖靈測試問題來衡量人工智慧發展的程度。圖靈測試簡單來說,就是讓測試者分別與機器人和人進行對話,看測試者能否將機器人辨別出來。該領域接下來就變成了人工智慧領域中一個十分有趣又具有挑戰性的研究問題:如何設計及開發智慧聊天機器人。
從應用上來說, 智慧聊天機器人實際上是為了應對資訊爆炸的今天存在的資訊過載問題。早期,人們是把智慧聊天機器人當作搜尋引擎的終極形態來進行設計和開發的。具體來說,其需要解決的問題是,人們對於簡單的搜尋引擎僅僅返回一個網頁集合的不是特別滿意。通常,現有的搜尋引擎需要逐個瀏覽和仔細閱讀搜尋引擎返回的每個連結網址中的資訊,再剔除冗餘資訊後才能得到期望的答案。
更好的使用者體驗是,使用者在向智慧對話系統用自然語言提出一個問題之後,且智慧對話系統也能夠自然又通順地回答問題,且回答內容與問題緊湊相關又答案精準,為使用者節約了更多的時間。
到目前為止,智慧聊天機器人在產業界已經有了一些初步成功的應用,在智慧客服、個人助理等場景中,在電商、保險等行業中已經能夠替代大量的人工客服,進行簡單的業務處理和客戶支援。
基於聊天機器人的應用場景,聊天機器人主要分為3種型別,即問答系統(QA),對話系統,閒聊機器人,下面大致介紹三種型別的聊天機器人的特點。
2 問答系統(QA)
問答系統是基於使用者的問題,給定一個回答,不涉及到多輪對話。通常用於智慧搜尋,智慧家居中的家電控制等場景。問答系統往往不需要呼叫業務能力,只需要完成對使用者問題的匹配及回答。
下面介紹下問答系統中最常用的技術方案,如下圖所示:
抽象的看,問答系統的任務其實就是,對使用者的輸入進行 相似度或者相關性計算,然後在相應的FAQ的庫裡,尋找該使用者輸入對應的答案,並返回給使用者。
所以,通常來講,QA系統一般是針對某一個領域的,通常用於某一個領域的客戶支援和服務。
那麼,要構建一個QA系統,第一步就是要構建一個高質量的FAQ語料集。語料集中應包含大量高質量的問題-答案(Q-A)對。
模型的訓練過程,就是讓模型能夠學習到問題-答案(Q-A)對之間的聯絡,或者Query集的特徵。所以,目前QA系統的實現,只要以下三種方式:
1.計算使用者輸入Query和Question的相似度。透過計算使用者輸入Query與FAQ語料集中Question之間的相似度,選出相似度最高的Question,再透過Q-A map找到相應的答案返回給使用者。
2.計算使用者輸入Query和Answer之間的相關性。透過計算使用者輸入Query與FAQ語料集中Answer之間的相關度,選出相關度最高的Answer,返回給使用者。
3.結合使用者輸入Query和Answer之間的相關性以及使用者輸入Query和Question的相似度。透過結合相關性和相似度,選出最匹配的Answer,返回給使用者。
3 對話系統
對話系統(Dialogue System)通常是面向某一個任務,機器人需要同使用者互動,甚至互動多輪。最後,還需要呼叫業務資源,以完成某一項任務。例如,查天氣的機器人,根據使用者的輸入,判斷是否能夠查詢到某時某地的天氣,如果條件不足,需要主動向使用者問詢,最後再呼叫類似“中國天氣網”獲得天氣資料。
對話系統的應用場景很豐富,像 客服機器人,銷售機器人等都是對話系統的代表。
如下圖所示,展示了一個對話系統的技術架構圖:
通常,對話系統包含自然語言理解(NLU),對話管理(DM),自然語言生產(NLG)等部分。
NLU部分負責對使用者輸入進行理解,主要包括意圖識別和實體識別;DM部分是對整個使用者的對話狀態進行管理,包括槽位管理,行為決策,資料獲取等功能;NLG主要負責答案的生成。
4 閒聊式機器人
閒聊就是一種開放域的聊天場景,就像兩個朋友之間聊天,不限制主題和內容。閒聊式的機器人主要用於私人助理、娛樂等場景,典型的代表如微軟小冰、蘋果Siri等。
閒聊式的機器人,開發難度非常的大,需要巨量的資料集以及能兼顧靈活度和準確度的演算法模型。目前,閒聊式的機器人效果都差強人意,個人認為後續需要結合優質的知識圖譜網路以及強大的增強學習演算法。
這裡介紹一種比較流行的生成式的閒聊機器人的技術架構,讓大家熟悉下閒聊式機器人最基礎的實現方式。
如上圖所示,生成式的閒聊機器人通常基於seq2seq架構,利用模型自動生成答案,結合Attention等技術進行最佳化。目前,為了實現對使用者輸入更好的編碼,會引入Attention等技術;為了實現模型對使用者前後文輸入的理解能力,會引入使用者歷史記錄的編碼等。這種方式完全基於資料,優點是比較靈活,不需要做複雜的對話管理;缺點是可控性不強,生成的答案往往比較短,很多無意義的答案返回,需要大量的訓練資料。
總結
聊天機器人是目前NLP領域非常重要的一個應用場景,綜合了各種NLP技術,非常具有挑戰性。後面我們會深入各個型別機器人,做較為詳細的介紹,敬請關注。