【聊天機器人】聊天機器人基礎模型和綜述

一、模型類型

1、基於檢索技術的模型:
基於檢索技術的模型較爲簡單,主要是根據用戶的輸入和上下文內容,使用了知識庫(存儲了事先定義好的回覆內容)和一些啓發式方法來得到一個合適的回覆。啓發式方法簡單的有基於規則的表達式匹配,複雜的有一些機器學習裏的分類器。通過分類識別出,用戶的意圖是屬於哪種類別,再到對應類別裏尋找答案。這些系統不能夠生成任何新的內容,只是從一個固定的數據集中找到合適的內容作爲回覆。
2、生成式模型:
基於生成的聊天機器人則更加複雜。它不依賴於預定義好的回覆內容,而是利用生成式的方法逐詞(字)生成新的回覆內容。生成式模型典型的有基於機器翻譯模型的,與傳統機器翻譯模型不同的是,生成式模型的任務不是將一句話翻譯成其他語言的一句話,而是將用戶的輸入[翻譯]爲一個回答(response)。
必讀paper:A Neural Conbersational Model(用神經網絡訓練2組對話。film dirlage\IT support。通過2段對話,可以驅動模型可以正常對話並加入某領域的專業對話)。自然對話+專家對話(電影對白+專業知識)
3、總結
以上兩種模型均有優缺點。對於基於檢索技術的模型,由於使用了知識庫且數據爲預先定義好的,因此進行回覆的內容語法上較爲通順,較少出現語法錯誤;但是基於檢索技術的模型中沒有會話概念,不能結合上下文給出更加[智能]的回覆。而生成式模型則更加[智能]一些,它能夠更加有效地利用上下文信息從而知道你在討論的東西是什麼;然而生成式模型比較難以訓練,並且輸出的內容經常存在一些語法錯誤(尤其對於長句子而言),以及模型訓練需要大規模的數據。
深度學習技術都能夠用於基於檢索技術的模型和生成式模型中,但是目前的研究熱點在生成式模型上。深度學習框架例如Sequence to Sequence非常適合用來生成文本,非常多的研究者希望能夠在這個領域取得成功。然而目前這一塊的研究還在初期階段,工業界的產品更多的還是使用基於檢索計算的模型。
4、入模型前的數據處理:
中文和英文的庫除了中文要分詞外,其他沒有區別。因爲對於計算機,輸入的都是數字。
中文分詞:jieba、hanLP
庫:ChatterBot(pip)

二、ChatBot-Generative的知識框架

1、Open Domain:
廣義對話,什麼都可以聊
2、Closed Domain:
專業對話。侷限在某個領域
3、Rules-Based:
通過人爲設定的東西,進行升級
4、Generative Based:
回答是靠數據驅動的,自己在數據裏學習如何對話。有些大廠通過谷歌的api,把所有問題通過Google API搜索出一個結果,再進行回覆答案。
siri在Open Domain和Generative Based之間。;
在這裏插入圖片描述

三、ChatBot玩法:LONG VS SHORT

文本長度、記憶範圍(輸入法提示)
Short:Y/N------可以基於Rules-Based
Long:小李說了啥?----基於人設、生成模型

四:學術界聊天機器人的挑戰

1、語境
(1)內容
語言語境:這句話在說什麼內容(語言屬於哪個分類模塊。涉及對語言的embed,比如word vector)
物理語境:這計劃在哪裏說的(涉及到物理環境,比如在哪裏,現在幾點)
(2)相關paper:
Building End-To-End Dialogue Systems Using Generative Hierarchical Neural Network Models(Lulian et al., 2015)
https://arxiv.org/abs/1507.04808
Attention with Intention for a Neural Network Conversation Model(Yao, 2015)
https://arxiv.org/abs/1510.08565
(3)自然語言比較重要的會:ACL
https://cloud.tencent.com/developer/article/1092557
2、統一的語言個性
(1)可能是很多人一起說的(高質量的數據–需要大量的人力清洗)
在這裏插入圖片描述
(2)相關paper:
A Persona-Based Neural Conversation Model (Li et al., 2016)
https://arxiv.org/abs/1603.06155
如何通過文本來歸類人物性格
IBM–>Alchemy軟件(基於BIG5)
3、模型驗證
(1)我們自己對模型的正誤判斷需要人類智慧的解讀
比如,你跟amazon的Alexa說,我要睡了,這時候,alexa幫你調整燈光。
(2)不存在完美定義的方案
比如,你說我餓了,機器人給你定了外賣。但定的並不是你想喫的。
(3)一般使用BLEU模型進行回覆的評價得分。但有的時候如問題(2),評分是高的但並不是用戶需要的。
相關paper:
How NOT To Evaluate Your Dialogue System: An Empirical Study of Unsupervised Evaluation Metrics for Dialogue Response Generation(Liu, 2016)
https://arxiv.org/abs/1603.08023
4、多樣性
在這裏插入圖片描述
相關paper
A Diversity-Promoting Objective Function for Neural Conversation Models(Li et al. 2015)
https://arxiv.org/abs/1510.03055

五:工業應用綜述

1、語音助手
蘋果siri:被動。基於搜索。需要按HOME鍵你問什麼,它答什麼
谷歌now:主動。全程follow你手機上的信息。幫提前部署好。比如你收到一封郵件,說今天要開會,他會在日誌裏記錄。比如你開車經過火車站,會自動給你推送該火車站的列車時刻表
2、餐飲
必勝客:基於FBM框架訂pizza,告訴你家住哪兒,他會直接把餐送過來
Fackbook 推出的FBM
3、旅遊、醫療(因爲涉及責任問題一般:前臺自動化+後臺人工對接)、新聞(類似一個播報員一直在與你聊天)、財經(meet cleo.財務顧問,用戶作爲後臺防錯本身。如,本月消費在哪幾個模塊,每個模塊多少錢。)、健身(安全隱患小,可以全自動化)
旅遊:https://viewfinder.expedia.com/features/introducing-expedia-bot-skype/
醫療:https://www.healthtap.com/
新聞:https://qzprod.files.wordpress.com/2016/02/quartz-app-featured-image.png?w=1600
4、工業上的近況
目前80%的企業還是在做更穩定的Rules-base機器人。僅幾年在不斷向基於數據的生成式轉型。產品上再由手機轉硬件。
微軟小冰:學習到一些髒話。後來對於關鍵詞、敏感詞加入黑名單,不進行學習。
在這裏插入圖片描述

六、應用:基於Rule-based

在這裏插入圖片描述

七、實戰案例

1、文字匹配
2、意識(關鍵字提取、語句相似性等)
3、知識圖譜
Python自己的graph數據結構、python版本的prolog:PyKE 構建一種複雜的邏輯網絡,方便提取信息
4、語音<——>文字轉化
不僅僅是語音前端,包括應用場景:微信,slack,Facebook Messager,等等 都可以把我們的ChatBot給integrate進去。

參考文獻:文本爲七月在線《自動聊天機器人項目班》學習筆記

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