《A Knowledge-Grounded Neural Conversation Model》
abstract
现在的大多数模型都可以被应用在闲聊场景下,但是还没有证据表明他们可以应用在更有用的对话场景下。这篇论文提出了一个知识驱动的,带有背景知识的神经网络对话系统,目的是为了在对话中产生更有意义的回复。以seq2seq模型为基础(传统的seq2seq只能学习到句子的骨架而不包括有效的信息),用对话历史和外界的facts去规范回答。模型具有通用性,可以应用在open-domain。
introduction
这个模型不是像传统的对话系统有明确的任务目标,通过少量数据去训练在一定的回复骨架下的预定义好的槽值填充,也不是传统的没什么有用信息的闲聊,它的目标是和用户一同完成一个目标不是特别明确,但是有信息含量的对话(上述两种的综合),外部数据的连接来自于网络文本数据,不是数据库里的结构化数据,因此扩充外部数据更容易。
这是第一个大规模,完全数据驱动的充分高效利用外部知识的神经网络模型。
background
构建完全数据驱动的转换模型的主要挑战是,世界上大多数知识都没有在任何现有的会话数据集中完全表示。虽然得益于社交媒体的快速发展,这些数据集(Serban et al.2015)的规模已经大幅增长,但这些数据集仍然远远不能和维基百科,Foursquare,Goodreads,或IMDB相比。该问题极大地限制了现有数据驱动的会话模型的发展,因为它们必须如图1中那样回避或偏向地响应,尤其是对于在会话训练数据中表现不佳的那些实体。另一方面,即使包含大多数实体的会话数据可能存在,我们仍然会面临挑战,因为这样的大型数据集难以应用于模型培训,并且数据中展示的许多会话模式(例如,对于类似实体)将会冗余的。
论文的方法旨在避免冗余,并尝试更好地概括现有的会话数据,如图2所示。虽然图中的对话涉及特定的场所,产品和服务,但会话模式是一般的,同样适用于其他实体,这样的话对于以个新的场景,我们只需要去扩充我们的facts库,而不用重新训练整个模型。(传统对话系统会利用预定义好的槽值去填充对话骨架(图中的加粗文本))
学的是对话行为,变化的是facts
model
根据句子中的关键词在facts库中检索和本对话相关的facts。
模型的训练使用multi-task学习,分为两部分:
- 任务一:有外部信息的回复,encoder的输入是({f1,f2,...,S},R)
- 任务二:hi的回复:how are you之类无有效信息的闲聊回复,encoder的输入时(S,R)
分为两部分做有三个好处:
- 当只基于对话历史的encoder,decoder训练完之后,再进行包括facts的encoder,decoder的训练时,就可以进行warm start training,
- 不同数据集灵活应变
- 如果将任务一的回复替换为某一fact(R= fi),这就使得任务一相似于一个自编码器,进而使得产生的回复更加有效。more informative
dialog encoder and decoder
encoder和decoder都使用RNN,cell is GRU
facts encoder
由memory-network-model以及end-to-end memery networks演化而来(一个实体在对话中被提到了--之后基于用户输入和对话历史对facts进行检索,进而生成答案)
datasets
- twitter:conversational
(no facts:key to learning the conversational structure or backbone.) - foursquare :non-conversational
(tip date:comments left by customers about restaurants and other, usually commercial, establishments.) 1M grounded dataset
tip为foursquare中的词,handles为twitter上的对话中对应的多个tip的“slot”,例如在twitter中的某句话,@handle 很便宜,物美价廉。这里的handle可以对应的tip有很多,tip = ‘衣服’ or tip = ‘食品’。
轮数为两轮的对话,依据foursquare中的tipdata,在twitter中找到相关的handles和其相关的包含foursquare中实体的对话。另外,这个对话中的第一轮包括一个商户名字的句柄(用@表示)或者和句柄匹配的哈希标签。因为对话目的是模拟真实用户之间的对话,所以把那些包含,由用户使用在foursquare中的句柄生成的回复,的对话删掉(也就是说这句话是用户通过一些词在软件中让软件生成的,而不是他自己嘴里说出来的)。
- grounded conversation dataset:
对于每个handle,有两种打分function: - 基于所有包含这个handle的tips训练的1-gram LM的困惑度
- 卡方分数,用来测量每个token包含的handle相关的内容有多少
通过这两个分数和人工选择,最后选出4k的对话数据作为有效的数据集用来做validation dataset和测试集,这些对话需要从训练数据中抽离。
15k(way1)+15k(way2)+15k(random)->10k(sampled)->4k(human-judge reranking)
实验
- 多任务训练:
- FACTStask:We expose the full model to ({f1,...,fn,S},R)training examples.
- NOFACTStask: We expose the model without fact en-coder to (S,R) examples.
- AUTOENCODERtask: This is similar to the FACTStask,except that we replace the response with each of the facts,i.e., this model is trained on({f1,...,fn,S},fi)exam-ples. There arentimes many samples for this task thanfor the FACTStask.4
- decoding and reranking
验证集:
This yields the following reranking score:
logP(R|S,F) +λlogP(S|R) +γ|R|
- the log-likelihoodlogP(R|S,F)according to the decoder;
- word count;
- the log-likelihoodlogP(S|R)of the source giventhe response.
λ and γ are free parameters, which we tune on our development N-best lists using MERT (Och 2003) by optimizing BLEU.
- evaluation matrics
BLEU automatic evaluation,perplexity,lexiel diversity
Automatic evaluation is augmented with human judgments of appropriateness and informativeness
results
- ==SEQ2SEQ==: Trained on task NOFACTS with the 23M gen-eral conversation dataset. Since there is only one task, it is not per sea multi-task setting.
- ==SEQ2SEQ-S==: SEQ2SEQ model that is trained on the NOFACTS task with 1M grounded dataset (without the facts)
- ==MTASK==: Trained on two instances of the NOFACTS task, respectively with the 23M general dataset and 1M grounded dataset (but without the facts). While not an in-teresting system in itself, we include it to assess the effect of multi-task learning separately from facts.
- ==MTASK-R==: Trained on the NOFACTS task with the 23M dataset, and the FACTS task with the 1M groundeddataset.
- ==MTASK-F==: Trained on the NOFACTS task with the 23Mdataset, and the AUTOENCODERtask with the 1M dataset.
- ==MTASK-RF==: Blends MTASK-F and MTASK-R, as it incorporates 3 tasks: NOFACTS with the 23M generaldataset, FACTSwith the 1M grounded dataset, and AU-TOENCODER again with the 1M dataset.
《A Knowledge-Grounded Neural Conversation Model》的更多相关文章
- 和S5933比较起来,开发PLX9054比较不幸,可能是第一次开发PCI的缘故吧。因为,很多PCI的例子都是对S5933,就连微软出版的《Programming the Microsoft Windows Driver Model》都提供了一个完整的S5933的例子。 在这篇有关DDK的开发论文里。
和S5933比较起来,开发PLX9054比较不幸,可能是第一次开发PCI的缘故吧.因为,很多PCI的例子都是对S5933,就连微软出版的<Programming the Microsoft Wi ...
- 《Graph-Based Reasoning over Heterogeneous External Knowledge for Commonsense Question Answering》论文整理
融合异构知识进行常识问答 论文标题 -- <Graph-Based Reasoning over Heterogeneous External Knowledge for Commonsense ...
- 大数据理论篇 - 通俗易懂,揭秘谷歌《The Dataflow Model》的核心思想(一)
目录 前言 目标 核心的设计原则 通用的数据处理流程 切合实际的解决方案 总结 延伸阅读 最后 作者:justmine 头条号:大数据达摩院 创作不易,未经授权,禁止转载,否则保留追究法律责任的权利. ...
- 《An Attentive Survey of Attention Models》阅读笔记
本文是对文献 <An Attentive Survey of Attention Models> 的总结,详细内容请参照原文. 引言 注意力模型现在已经成为神经网络中的一个重要概念,并已经 ...
- 《ASP.NET MVC 5框架揭秘》样章发布
今天算是新作<ASP.NET MVC 5框架揭秘>正式上架销售的日子(目前本书在互动网已经到货),为了让更多适合的朋友们能够阅读此书,同时也避免让不适合的读者误买此书,特将此书的样章发布出 ...
- 新作《ASP.NET MVC 5框架揭秘》正式出版
ASP.NET MVC是一个建立在ASP.NET平台上基于MVC模式的Web开发框架,它提供了一种与Web Form完全不同的开发方式.ASP.NET Web Form借鉴了Windows Form基 ...
- 《zw版·Halcon-delphi系列原创教程》 酸奶自动分类脚本(机器学习、人工智能)
<zw版·Halcon-delphi系列原创教程>酸奶自动分类脚本(机器学习.人工智能) Halcon强大的图像处理能力,令人往往会忽视其内核,是更加彪悍的机器学习.人工智能. ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数013,shape模型
<zw版·Halcon-delphi系列原创教程> Halcon分类函数013,shape模型 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替换:“pr ...
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数009,Measure,测量函数
<zw版·Halcon-delphi系列原创教程> Halcon分类函数009,Measure,测量函数 为方便阅读,在不影响说明的前提下,笔者对函数进行了简化: :: 用符号“**”,替 ...
随机推荐
- layui
给大家推荐个比较好用的前端ui框架layui,遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,拿来即用,而且layui除了ie6/7不兼容其他都兼容,而且还是响应式布局 1,获得layui后 ...
- 环境准备—之—linux下安装svn--开机自启--及format权限问题
借鉴自 http://www.cnblogs.com/liuxianan/p/linux_install_svn_server.html 这个很详细,但不是我的风格 https://blog.csdn ...
- oracle 存储过程(分析理解)
我的理解 比较简单(仅供参考) 存储过程就相当于java里面的方法 简单讲就是一串代码能够实现某个特定的功能,想要使用这个方法直接调用方法名就能够使用他的功能,这就是方法 oracle 存储过程也 ...
- python下基于sokcet的tcp通信——入门篇
环境 python版本:2.7 IDE:pycharm TCP/UDP协议均为传输层的协议,绝大部分应用程序之间的通信都是使用TCP或UDP,故而在网络通信中及其重要,想详细了解他们之间的差异,可参考 ...
- dedecms织梦文章微信分享带缩略图与简介
dedecms V5.7二次开发 php5.6 mysql5.1 问题:dedecms文章分享到微信,带缩略图与简介.如下图: 1.准备工作 PHP 5.3+ 并且 curl扩展已经开启 微信服务号一 ...
- php(二)使用thinkphp搭建项目
1.创建项目根目录,配置虚拟主机 1.1.创建项目根目录phpDemo01,将thinkphp_3.2.3_full.zip压缩包中ThinkPHP文件夹复制到项目根目录phpDemo01中. 1.2 ...
- 利用python解析地址经纬度和利用经纬度定位地址
解析地址经纬度 from geopy.geocoders import Nominatim try: geolocator = Nominatim() location = geolocator.ge ...
- javascript高级程序设计第3版——第3章 基本概念
- [luogu P3960] [noip2017 d2t3] 队列
[luogu P3960] [noip2017 d2t3] 队列 题目描述 Sylvia 是一个热爱学习的女♂孩子. 前段时间,Sylvia 参加了学校的军训.众所周知,军训的时候需要站方阵. Syl ...
- EAP-MD5计算方法
一.说明 领导要求确认设备进行802.1X认证时,是否直接将用户名密码明文传给交换机.配好端口镜像.搭好Radius环境后进行了抓包分析. 二.计算 2.1 802.1X认证过程 完整流程如下: 客户 ...