聊天机器人系统框架图
今天看到了一篇关于聊天机器人的一个不错的资源汇总:
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)更加关注“情商”