聊天机器人系统框架图
今天看到了一篇关于聊天机器人的一个不错的资源汇总:
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后全职主妇
喜欢人工智能,行动派
创造力,思考力,学习力提升修炼进行中
欢迎您的喜欢,关注和评论!