Citation: XingC, Wu W, Wu Y, et al. Topic aware neural response generation[C]//Thirty-FirstAAAI Conference on Artificial Intelligence. 2017.

动机

人机对话在 AI NLP 领域是一项具有挑战性的工作。现存的对话系统包括任务导向的对话系统和非任务导向的聊天机器人。在聊天机器人里面构建对话引擎的方法就是利用大规模的社会对话数据,在机器翻译框架里学习一个回答生成模型。最近,基于方法的神经网络成为主流趋势,因为它们可以抓住输入文本和回答之间的语义和语法关系。但是,聊天机器人的回答生成算法不仅要生成自然流利的回答,还要生成具有信息量的,有趣的回答。但是现存的机器翻译模型比如带注意力机制的 Seq2Seq 倾向于生成一些无意义的回答,比如“Me too”“I see”等。这种回答十分无聊也不含有任何有用的信息,很容易结束人机对话。

因此,为了生成有趣的富含信息量的回答,使人们不觉得与机器对话无聊。作者提出了一个 topic aware sequence-to-sequence  (TA-Seq2Seq) 模型,利用话题信息作为作为先验知识,生成回答。给定一个输入信息,作者预测了可能会在回答中谈论到的话题,然后生成针对该话题的回应。这个想法是作者观察人们之间的交流而想到的。在人与人之间的交谈中,人们经常会将输入的信息与心中的话题相关概念联系起来。基于这些概念,人们组织内容并选取作为回答的单词。TA-Seq2Seq 是基于 sequence-to-sequence 框架构建的。在编码时,通过信息编码器将输入信息表示成隐向量,从预训练好的 Twitter LDA 模型得到输入信息的主题单词。使用对话数据之外的大规模社会数据集预先训练 Twitter LDA 模型。在解码阶段,通过联合注意机制,根据输入信息和话题,生成每个单词。联合注意机制,就是将输入信息的隐藏向量通过现有的 attention 机制表示成语境向量,然后将话题单词的 embeddings 通过话题注意机制合成为话题向量。与现存的注意不同,为了加强话题和输入信息的联系,话题注意会额外输入输入信息的最终状态,计算话题单词的权重。

贡献

文章的贡献有:

(1)提出使用主题信息作为先验知识,辅助生成回答。

(2)提出了TA-Seq2Seq模型,该模型将主题信息融入编码器解码器结构中。

(3)验证了TA-Seq2Seq模型的有效性。

方法

1)sequence-to-sequence 注意力模型

这是作者的baseline模型。在Seq2Seq 中,给定原文本(message)X=(x_1,x_2,…,x_T),和一个目标文本(response)Y=(y_1,y_2,…,y_T'),该模型最大化以X为条件的生成概率Y特别的,Seq2Seq 是一个 encoder-decoder 框架。encoder 一个单词一个单词的读入X,通过循环神经网络将它表示成一个语境向量c,然后decoder 以 c 作为输入,计算 Y 的生成概率。如下所示

编码器的循环神经网络通过以下公式计算文本向量c:

其中,h_t t 时间步的隐含状态。f 是一个非线性变化,要么是LSTM 单元,要么是GRU 单元。本篇文章中,作者使用了GRU 单元表示f,如下所示:

decoder 是一个标准的 RNN 语言模型。每个时间步 t 时,对候选单词的概率分布 P_t 的计算公式如下:

其中,s_t decoder RNN 在时间步t 的隐向量, y_(t-1) 是时间步 t-1 时生成的单词。

2)Attention 机制

标准的Seq2Seq 模型假定每个单词都是由同一个语境向量生成的。但是,实际上,Y 中不同的单词在语义上与X 中的不同部分相关。为了解决这个问题,人们就在 Seq2Seq 中加入了 attention 机制。在基于注意力的Seq2Seq 中,每个 y_i 都与一个语境向量 c_i 相关, c_i 是编码器所有隐藏向量的加权平均值。c_i 的常规定义如下:

其中,\eta 是激活函数,通常使用 tanh 表示。

3)TopicAware Seq2Seq 模型

这是作者提出基于上述模型改进得到的新模型,引入了输入信息X 的话题单词集K。作者的目标就是该模型能够根据输入信息X 和它的话题单词K,生成回答Y

获得话题单词

作者使用了Twitter LDA 模型从文本中得到话题单词。该模型就是假设每个message 只与一个话题相关,message 中的单词要么是背景单词,要么是话题单词。作者使用折叠的 Gibbs 采样算法估算了 Twitter LDA 的参数。之后,作者使用模型将主题 z 分配给 message X,在 z 下选择具有最高概率的前 n 个单词,并删除诸如“thank”和“you”之类的通用单词,得到message X 的主题词 K。在学习过程中,作者需要得到每个主题词的矢量表示。为此,我们首先通过等式计算主题词 w 的分布,其中 C_{wz} 是在训练中将 w 分配给主题 z 的次数。然后,我们将该分布作为主题词的向量表示。

作者在实验时,使用从新浪微博得到的大规模数据训练Twitter LDA 模型。除了用于训练回答生成模型的message-response对中的数据之外,该数据还提供了话题知识。这个过程类似于人们学会在对话中做出回应的过程:他们开始意识到可以从互联网上谈论什么,特别是从社交媒体,然后使用他们学到的东西作为话题,在对话中形成他们的回答。

模型

下图是作者的 TA-Seq2Seq 模型架构图。

1Topic aware sequence-to-sequence 模型架构图

基于上述 attention 机制和 sequence-to-sequence 模型的基础上,在编码阶段,作者额外加入了message X 的话题单词K。使用topic encoder 编码K 中单词的embedding。在解码阶段,在时间步imessage 向量被转换成一个语境向量 c_i,话题单词 embedding 通过 topic attention 被线性结合成话题向量。公式如下:

其中,s_{i-1} 是解码器中第 i-1 步的隐状态,h_T 是输入信息的最终隐状态,是多层感知机。与传统的 attention 相比,topic attention 利用了输入信息的最终状态来弱化与信息无关的话题对生成回答的影响,并强调了与信息相关的话题的重要性。message attention topic attention 形成了联合注意力机制,使得 c_i o_i 共同影响生成概率。共同注意力优点在于它不仅可以使生成的回答中的单词与输入 message 相关,还可以与 message 的话题相关。

作者定义生成概率,其中,  定义如下:

其中,V是回答的词汇表,fGRU单元。定义如下:

其中,tanhw 是单词 ω one-hot 指示向量,都是参数。用来归一化。

TA-Seq2Seq 的另一个优点就是在生成回答时,生成的第一个单词更正确。第一个单词很重要,因为它是整个句子的开头。以往的Seq2Seq 的第一个单词生成,仅仅依靠 c_0,因为当 i = 0 时,没有 s_{i-1},但是在TA-Seq2Seq中,不仅 c_0 决定了第一个单词的生成,而且 o_0(与话题信息相关)也贡献了一部分。这种方法提高了生成的第一个单词的正确性。

总结

这篇文章提出了一个Topic awaresequence-to-sequenceTA-Seq2Seq)模型,将话题信息融合到回答生成中。该模型通过联合注意机制和偏向生成概率来利用主题信息。实验证明,该模型能够生成含有有效信息的、风格多样的回答。


OpenKG

开放知识图谱(简称 OpenKG)旨在促进中文知识图谱数据的开放与互联,促进知识图谱和语义技术的普及和广泛应用。

点击阅读原文,进入 OpenKG 博客。

论文浅尝 | 主题感知的问答生成相关推荐

  1. 论文浅尝 - AAAI2020 | 通过知识库问答改善知识感知对话生成

    论文笔记整理:胡楠,东南大学博士. 来源:AAAI 2020 动机 现在的将外部知识整合到对话系统中的研究仍然存在一定缺陷.首先,先前的方法难以处理某些语句的主语和关系,比如当语句中的相关实体彼此相距 ...

  2. 论文浅尝 | 主题驱动的分子图表示对比学习

    笔记整理 | 方尹,浙江大学在读博士,研究方向:图表示学习. 论文地址:https://arxiv.org/abs/2012.12533 动机与贡献 现有的对比学习框架中可能存在以下几个弊端: 1.把 ...

  3. 论文浅尝 - AAAI2020 | 利用自然语言推断生成人称一致的对话

    链接: https://arxiv.org/pdf/1911.05889.pdf 动机 虽然最近几年通过利用社交网络上大量人人交互数据训练开放域对话模型取得了很大的成功,但是这些数据驱动的对话系统仍然 ...

  4. 论文浅尝 | 使用孪生BERT网络生成句子的嵌入表示

    论文笔记整理:吴杨,浙江大学计算机学院,知识图谱.NLP方向. https://www.ctolib.com/https://arxiv.org/abs/1908.10084 动机 谷歌的 BERT ...

  5. 论文浅尝 | 面向简单知识库问答的模式修正强化策略

    链接:http://aclweb.org/anthology/C18-1277 知识库问答研究旨在利用结构化事实回答自然语言问题,在网络中,简单问题占据了相当大的比例.本文提出在完成模式抽取和实体链接 ...

  6. 论文浅尝 | 基于Freebase的问答研究

    本文转载自公众号:PaperWeekly. 本期的论文笔记来自 PaperWeekly 社区用户 @britin.本文给出了一种 end-to-end 的系统来自动将 NL 问题转换成 SPARQL ...

  7. 孪生网络图像相似度_论文浅尝 | 使用孪生BERT网络生成句子的嵌入表示

    论文笔记整理:吴杨,浙江大学计算机学院,知识图谱.NLP方向. https://www.ctolib.com/https://arxiv.org/abs/1908.10084 动机 谷歌的 BERT ...

  8. 论文浅尝 | Tree-to-sequence 学习知识问答

    论文笔记整理:谭亦鸣,东南大学博士生,研究兴趣:知识图谱问答. 来源:Neurocomputing 372: 64-72 (2020) 链接:https://sciencedirect.xilesou ...

  9. 论文浅尝 | 问题多样性对于问答的帮助

    笔记整理 |  毕胜 东南大学在读博士,研究方向:自然语言处理 知识图谱 问题生成通过生成一些合成的问题作为训练语料有效提高了问答系统的效果,本文的研究点是:在QG中,生成问题的文本多样性是否对下游的 ...

最新文章

  1. CPU,GPU,Memory调度
  2. 无需3D运动数据训练,最新人体姿势估计方法达到SOTA | CVPR 2020
  3. 图片资源 php,php图片转为资源数据
  4. ppt式 html模板,html10使用模板统一页面风格.ppt
  5. Fidder监控请求响应时间(毫秒)和请求IP
  6. 博客之星活动,我在行动
  7. git stash命令的用法
  8. JavaScript 面向对象的程序设计1
  9. Mybatis源码分析之(五)mapper如何将数据库数据转换成java对象的
  10. 看CarbonData如何用四招助力Apache Spark
  11. 【计算机网络】复习荟萃(四)
  12. androidStudio导入库文件
  13. 强化学习的数学基础3---Q-Learning
  14. C++产生指定范围内的随机数/随机小数
  15. 使用grafana4的alert功能
  16. Spring Cloud Sleuth链路跟踪之使用RabbitMQ异步收集链路跟踪信息(学习总结)
  17. [数据结构] 左偏树
  18. poj_3987 Trie图
  19. 计算机远程桌面连接如何设置密码,远程桌面连接密码
  20. python变量、数据类型

热门文章

  1. 关于Python的应用发布技术
  2. map与unordered_map的区别
  3. 为什么需要超过48k的采样音频?
  4. vmware虚拟机中ubuntu上网问题
  5. VS2019调试查看变量_你很可能需要知道这个调试小技巧
  6. 【Pytorch神经网络理论篇】 13 深层卷积神经网络介绍+池化操作+深层卷积神经网络实战
  7. 电脑pro,拒绝等待!七彩虹全新设计师电脑ProMaster H1为创意加速
  8. JavaScript高级之构造函数和原型
  9. python 迭代器、生成器、yield、iter
  10. LeetCode 1655. 分配重复整数(回溯)