聊天機器人系統框架圖
今天看到了一篇關于聊天機器人的一個不錯的資源匯總:
https://www.52ml.net/20510.html
進去看看先大概了解了一下都有哪些主要的概念:
理想的 chatbot 什么樣 現在的 bot 什么樣
|處理任務 |聊天-搞笑
[涉及到下面三個主要問題 & 解決方案 ]
1、response generation(selection)--對話生成是最后一個步驟,是輸出的部分
四種solutions
solution 1 直接根據context來生成對話
|seq2seq+attention
solution 2 一個next utterance selection的問題
solution 3 rule-based或者說template-based,response的最終形式其實是填充了一個模板而成的
solution 4 query-based或者說example-based,response是來自于一個叫做知識庫的數據庫
2、dialog state tracking(DST)--是bot的核心,它的作用在于理解或者捕捉user intention或者goal
會給定一個state的范圍,通過context來predict用戶屬于哪個state
3、user modeling--更重要的是用戶的history conversations
[模型訓練環節]
語料
一般都是來自社交網站
模型
細分的方向非常的多
seq2seq+attention
user modeling模型
將user identity(比如背景信息、用戶畫像,年齡等信息)考慮到model中,構建出一個個性化的seq2seq模型,為不同的user,以及同一個user對不同的請將中生成不同風格的response
reinforcement learning模型
deepmind公司將增強學習重新帶回了舞臺上面,結合著深度學習來解決一些更難的問題
task-oriented seq2seq模型
是嘗試在bot的個別部件上采用深度學習的技術來做,并且給出了切實可行的方案
Knowledge Sources based模型
針對具體的任務,在seq2seq的基礎上增加一個相關的knowledge sources會讓效果好很多
將bot任務定義為next utterance classification,有一點像question answering任務
knowledge graph
rnn encoder
context sensitive模型
history information的建模
思考
1、要不要做bot?
雖然不容易,但卻非常有意義
2、open domain還是task-oriented?
task-oriented更加具體,更加實用
3、task-oriented bot為什么難,該朝哪個方向來發力?
將end-to-end應用在局部,而非整體上,配合上Information Extraction和Knowledge Graph等技術,實現一個高可用的框架體系,這個應該是task-oriented bot的發展方向
4、response的生成應該與哪些因素有關呢?
(1)user query,用戶的提問
(2)user modeling,對用戶進行建模
(3)knowledge,外部知識源
原文:聊天機器人技術的研究進展
聊天機器人在各種場景下的功能和產品
系統框架
自然語言理解
聊天機器人系統中的自然語言理解功能包括用戶意圖識別、用戶情感識別、指代消解、省略恢復、回復確認及拒識判斷等技術。
對話管理
對話管理功能中涉及到的關鍵技術主要有對話行為識別、對話狀態識別、對話策略學習及對話獎勵等
自然語言生成
在聊天機器人系統上的對話生成主要涉及檢索式和生成式兩類技術
挑戰
1)對話上下文建模
2)對話過程中的知識表示
3)對話策略學習
4)聊天機器人智能程度的評價
展望
1)端到端
2)從特定域到開放域
3)更加關注“情商”
來源:http://www.shareditor.com/
原文:自己動手做聊天機器人教程
覺得這個教程還是比較系統化的,打算先跟著入門一下。
我是 不會停的蝸牛 Alice
85后全職主婦
喜歡人工智能,行動派
創造力,思考力,學習力提升修煉進行中
歡迎您的喜歡,關注和評論!