论文地址:https://arxiv.org/pdf/1711.01731.pdf
论文翻译
论文大纲

一、两类问答系统

任务导向的对话系统

任务为导向的对话系统是帮助用户去完成特定任务,比如找商品,订住宿,订餐厅等。实现任务为导向的对话系统,主要有两类方式:

1) Pipeline method
通过4个步骤去完成对话任务

2)End-to-End method。
端到端地完成对话任务

非任务导向的对话系统

非任务导向的对话系统是与用户进行互动并提供回答,简单的说,就是在开放领域的闲聊。实现非任务导向对话系统也主要可分为两类:

1) generative method
生成式对话

2)retrived-based method
答案选择式对话

文章就以上两类对话系统,以及各自的实现方法进行详细综述与讲解。

二、任务导向的对话系统

Pipeline method

Pipeline method的步骤可以分为4个,分别是自然语言理解–>对话状态跟踪–>策略学习–>自然语言生成

下面对着四个步骤分别进行介绍:

自然语言理解 Natrual Language Understanding(NLU)

目标:将用户的输入语句转化为预先设定好的语义槽(semantic slot)

先来个例子:
在任务型对话系统中用户想要查酒店信息,于是说出一个句子:“show restaurant at New York tomorrow.”
理解这个句子需要两个步骤:
(1)意图识别:首先要判断用户是需要订酒店,而不是订机票,买东西,查快递,那么这属于一个分类问题,即识别用户意图类别
(2)语义槽填充:查酒店类别会有与之相对应的预先设定好语义槽(semantic slot),如New York是location的slot value.填充槽值的过程即在句中做词信息的抽取。

以上两步也可分别称作意图识别(intent detection)与槽填充(slot filling):

意图识别: 是分类问题,将用户发出的语句分类到预先设定好的意图类别中。简而言之,其实就是短文本的分类,最近一般都使用深度学习来做分类。

深度学习在意图识别中的应用:

  • “Use of kernel deep convex networks and end-to-end learning for spoken language understanding.(2012)”
  • “Towards deeper understanding: Deep convex networks for se- mantic utterance classification.(2012)”
  • “Zero- shot learning and clustering for semantic utterance classification using deep learning(2014)”
    其中,使用卷积神经网络来抽取查询语句的向量表征(vector representations):
    *“Query intent detection using convolutional neural networks(2016)”
    槽填充:是序列标注问题,为句子中的每个词打上语义标签。输入是由一组序列的词组成的句子,输出是该组序列的词及词对应的语义类别(slot/concept ID)。可以类比中文分词,词性标注等问题。因此传统的做法有HMM,CRF等。最近效果较好的是DBN,RNN去做序列标注

使用了deep belief networ(DBNs),取得优于CRF baseline的效果:
“Use of kernel deep convex networks and end-to-end learning for spoken language understanding.(2012)”
“Deep belief network based semantic taggers for spoken language understanding.(2013)”
[17]和[15]使用了deep belief networ(DBNs),

使用了RNN
“Investigation of recurrent-neural-network architectures and learning methods for spoken language understanding.(2013)”
“Recurrent neural networks for language understanding.(2013)”
*“Spoken language understanding using long short-term memory neural networks.(2014)”

Dialogue State Tracking

根据对话历史管理每一轮对话的输入,并且预测当前对话的状态。对话状态Ht表示到时间t为止对话的表征(也叫做slot或semantic frame)。对话状态的跟踪主要有3个方面:the user’s goal, the user’s action, the dialogue history.

传统的方式:是使用手工做的规则来选择最可能的结果。但是错误率高。

基于统计的方式:会对每轮对话都计算对每个state的概率分布。
“The hidden information state model: A practical framework for pomdp- based spoken dialogue management(2010)”
对每轮对话的每个slot都计算概率分布
“A belief tracking challenge task for spoken dialog systems.(2012)”
*“The dialog state tracking challenge.(2013)”

基于规则的方式:
*“A simple and generic belief tracking mechanism for the dialog state tracking chal- lenge: On the believability of observed information(2013)”

用CRF
“Recipe for building robust spoken dialog state trackers: Dialog state tracking challenge system description(2013)”
“Structured discriminative model for dialog state tracking(2013)”
“Dialog state tracking using conditional random fields(2013)”
用最大熵模型
“Multi-domain learning and generalization in dialog state tracking.(2013)”
用基于网络的排序
“Web-style ranking and slu combina- tion for dialog state tracking(2014)”
基于深度学习:深度学习在信念跟踪上的应用(可以跨领域应用)。
“Deep neu- ral network approach for the dialog state tracking challenge(2013)”
多领域RNN对话跟踪
“Multi-domain dialog state tracking using recurrent neural networks(2015)”
利用神经信念跟踪NBT检测每个slot pair
“Neural belief tracker: Data-driven dialogue state tracking.(2017)”

Policay learning

根据当前对话状态做出下一步的反应。举个例子,在线上购物的场景中,若上一步识别出来的对话状态是“Recommendation",那么这一步骤就会给出对应推荐的action,即从数据库中获取商品。

监督学习:
首先一个rule-based agent用来做热启动,然后监督学习会在根据rule生成的action上进行:
“Building task-oriented dialogue systems for on- line shopping”
强化学习:
“Strategic dialogue management via deep reinforcement learning.(2015)”

Natural language generation(NLG)

将Policy learning给出的反应转换成相应的自然语言形式的回答提供给用户。一个好的回答生成器应具备4个特点:adequacy, fluent,readability and variation[78].

传统的方法[90;79]:使用sentence planning,将输入的语义特征转换成中间形式(比如树状或模版形式),然后再通过surface realization将中间形式转换成最终的回答。
深度学习的方法:[94;95]介绍了NN于LSTM结合的结构,类似于RNNLM;[94]使用前向RNN生成器,以及CNN和backwards RNN的reranker,所有子模型进行联合优化;[95;83]新增一个control celll来gate the dialogue act;[96]将前者在multiple-domain上改进于应用;[123]使用encode-decode LSTM-based,并结合了attention machanism;[20]使用sequence-to-sequence 方法。

端到端方法实现任务型问答

特点:使用单个模型;可于外部的结构数据库进行交互

使用基于网络的端到端的可训练的对话系统。将对话系统的问题转换为学习一个映射(从历史对话–>回答)。但是,其需要大量训练数据并且缺少鲁棒性。

"A network-based end-to-end trainable task-oriented dialogue system(2017)”
“end-to-end goal-oriented dialog(2017)”

使用end-to-end 强化学习方法,联合训练对话跟踪于策略学习,但是也存在缺陷:不可微+无法获取语义不确定性。

“Towards end-to-end learn- ing for dialog state tracking and management us- ing deep reinforcement learning.(2016)”
基于memory network,使用RNN+可微分attention

“Key-value retrieval networks for task-oriented dialogue(2017)”

三、非任务型对话:闲聊系统

非任务型对话主流有两类:生成式对话和抽取式对话。

生成式闲聊系统构建:Neural generative models

Neural generative models主要是依赖于sequence to sequence的模型。但光建立一个序列模型还远远不够,一个好的对话系统还需要考虑:
(1)历史对话对当前对话的影响
(2)回答的多样性
(3)针对不同领域与用户个性提供不同的回答
(4)基于外部的知识库去做回答
(5)内部学习与评估(两个对话机器人互相对话作为训练)

Dialogue context

将历史对话的内容转换成词或短语向量的表征作为序列模型的特征
建立一个层级结构的attention机制去找出重要的历史语句
根据相关性去找出与问句最相关的context作为特征

Reponse Diversity

调整目标函数:使用maximum mutual information作为最优化目标
使用IDF去评估回答的多样性
调整beam search,使得输出多样回答
加入re-ranking步骤
增加输入信息的多样性
加入latent variable

Topic and personality

先用主题模型LDA去生成主题,将主题信息作为特征输入对话模型
将用户对话做领域的分类
加入emotional embedding到生成模型中
加入profile的信息
强化学习

Outside knowledge base

使用memory network使对话系统与知识库做交互
将知识库中的词语模型生成的词做结合

Evaluation

如何评价产生对话的好坏呢?

  • 基于字符重叠度的系列指标(word overlap metrics):BLEU,METEOR,ROUGE
  • 利用两个RNN来做评估
    将context,the true response and candidate response表征成向量计算向量之间的相似性来评估
  • 图灵测试
    adversarial evaluation model

基于检索的闲聊系统:Retrieval-based method

Retrieval-based method是从候选答案中选出一个答案作为回答。主要有两个应用领域:
(1)单轮对话
(2)多轮对话

混合式闲聊系统:Hybrid methods

将以上生成式对话和抽取式对话结合起来,先从通过抽取模型抽取出答案,再将答案放到RNN中去生成回答。

转载于:https://www.cnblogs.com/weiyinfu/p/10838761.html

2018年1月问答系统综述相关推荐

  1. 论文综述:问答系统综述

    PS:这是我的文献阅读大作业~ 文章目录 问答系统综述报告 1. 摘要 2. 引言 3. 基于文本的问答 3.1 数据集与评价指标 3.1.1 数据集 3.1.2 评价指标 3.2 基于文本的问答的主 ...

  2. 2018年12月精选文章目录一览

    ↑ 点击上方[计算机视觉联盟]关注我们 文章太多,想要浏览历史消息很痛苦,今天小编整理了2018年12月的精选文章,让盟友们不再困扰一个一个翻阅(再也翻不到头,总感觉后边还有干货,O(∩_∩)O哈哈~ ...

  3. pch在c语言中占内存字节数,2018年9月计算机二级C语言考试章节习题及答案(6).docx...

    2018年9月计算机二级C语言考试章节习题及答案(6) 第2章 C程序设计的初步知识 2.3 整型数据 1[单选题] 用8位无符号二进制数能表示的最大十进制数为( ) A.127 B.128 C.25 ...

  4. 2018年12月,华为HCNP大面积更新题目,军哥独家解题咯

    2018年12月,华为HCNP大面积更新题目,乾颐堂军哥独家解题咯 2018年是华为认证变动比较大的一年,华为认证走过这几年不得不说是有一定进步的,而且最近华为孟女侠确实让我也小小的骄傲了一把,所以当 ...

  5. 2018年8月以太坊DApp数据分析报告

    近日,链塔数据BlockData发布了<2018年8月以太坊DApp数据分析报告>,报告显示,以太坊上的DApp数量多达775个,形成了一个较为完善的开发生态圈,累计交易笔数多达3.003 ...

  6. 2018湖北计算机准考证打印,2018年3月湖北计算机等级考试准考证打印入口

    2018年3月计算机等级考试即将开始,小编在这里为考生们整理了2018年3月湖北计算机等级考试准考证打印入口,希望有所帮助,想了解更多资讯,请关注出国留学网的及时更新. 2018年3月湖北计算机等级考 ...

  7. 互联网大脑进化简史,华为云EI智能体加入-2018年7月新版

    要:华为云EI智能体是2018年以来产生的第八个类脑智能巨系统,在中国,目前除了小米.联想.今日头条,几乎所有的互联网巨头都提出了自己的"大脑"系统建设计划. 1969年互联网诞生 ...

  8. 2018年08月19日发烧诸事记

    2018年08月19日发烧诸事记 关于发烧给敲响的警钟 八月十六日,中午突然觉的有发烧症状,会宿舍喝了些水便回去了,下午上课时情况愈加严重,浑身发冷,无法正常训练,三点多时便去永康街上的社区医疗服务中 ...

  9. 将中文日期转换成自己想要的格式如:2018年09月29日转换成2018-09-29

    def date_conversion(self,date): '''将中文日期转换成自己想要的格式如:2018年09月29日转换成2018-09-29''' c = list(re.findall( ...

最新文章

  1. MP实战系列(二)之集成swagger
  2. redhat下网络的配置
  3. Unity设置AppIcon方法
  4. java 操作 mongodb_Java操作MongoDB数据库方法详解
  5. 感谢有你们,架构师修行之路!
  6. Python 匿名函数 lambda - Python零基础入门教程
  7. c#异步文件传输功能
  8. [js]promise学习2
  9. SPSS Sobel检验(图文+数据集)【SPSS 044期】
  10. Unity粒子特效系列-爆炸冲击波
  11. 初始单片机 ----自学笔记
  12. FSR402电阻式薄膜压力传感器
  13. 通过U盘安装windows简易教程
  14. 在日本做科研工作是怎样的体验?
  15. 奶制品生产与销售matlab,奶制品的生产与加工
  16. 部署keepalive+lvs多master节点高可用
  17. Golang源码探索----GC的实现原理(6)
  18. 实现复数类中的运算符重载(含有double类型)
  19. 网络购物有风险,某东PINKO自营也有假
  20. 基于差分进化算法(DE)改进的jDE2 处理约束优化问题

热门文章

  1. 连接Oracle时报错ORA-12541: TNS: 无监听程序
  2. 第十篇 JVM核心机制之JVM运行和类加载全过程(五)
  3. Bootstrap系列 -- 44. 分页导航
  4. 【慢慢学Android】:2.SharedPreferences对数据的存储
  5. dede站怎么在首页调用单页的内容?
  6. 【重识 HTML + CSS】定位
  7. 【嵌入式】非操作系统下GPIO口控制器及LED灯编程
  8. 【❤️万字长文总结❤️】一篇学会Redis高可用✔集群✔搭建详细教程
  9. 调研3家学校,分析10万数据,发现有了大数据再也不用“清考”
  10. 如何选型商业智能和分析平台,Gartner给了这些建议!