基于图注意力的常识对话生成

栏目: 数据库 · 发布时间: 5年前

内容简介:OpenKG 祝各位读者新春快乐,猪年吉祥!

OpenKG 祝各位读者新春快乐,猪年吉祥!

基于图注意力的常识对话生成

来源: IJCAI 2018.

论文下载地址: https://www.ijcai.org/proceedings/2018/0643.pdf

项目源码地址: https://github.com/tuxchow/ccm

动机

在以前的工作中,对话生成的信息源是文本与对话记录。但是这样一来,如果遇到 OOV 的词,模型往往难以生成合适的、有信息量的回复,而会产生一些低质量的、模棱两可的回复,这种回复往往质量不高。

为了解决这个问题,有一些利用常识知识图谱生成对话的模型被陆续提出。当使用常识性知识图谱时,由于具备背景知识,模型更加可能理解用户的输入,这样就能生成更加合适的回复。但是,这些结合了文本、对话记录、常识知识图谱的方法,往往只使用了单一三元组,而忽略了一个子图的整体语义,会导致得到的信息不够丰富。

为了解决这些问题,文章提出了一种基于常识知识图谱的对话模型( commonsense knowledge aware conversational model CCM )来理解对话,并且产生信息丰富且合适的回复。本文提出的方法,利用了大规模的常识性知识图谱。首先是理解用户请求,找到可能相关的知识图谱子图;再利用静态图注意力( static graphattention )机制,结合子图来理解用户请求;最后使用动态图注意力( dynamic graph attention )机制来读取子图,并产生合适的回复。

通过这样的方法,本文提出的模型可以生成合适的、有丰富信息的对话,提高对话系统的质量。

贡献

文章的贡献有:

1 )首次尝试使用大规模常识性知识图谱来处理对话生成问题;

2 )对知识图谱子图,提出了静态 / 动态图注意力机制来吸收常识知识,利于理解用户请求与生成对话;

3 )对比于其他系统,目前的模型生成的回复是最合适的、语法最正确的、信息最丰富的。

方法

Encoder-Decoder 模型

经典的 Encoder-Decoder 模型是基于 sequence-to-sequence seq2seq )的。 encoder 模型将用户输入( user post X=x_1 x_2…x_n 用隐状态 H=h_1 h_2…h_n 来表示。而 decoder 模型使用另一个 GRU 来循环生成每一个阶段的隐状态,即 基于图注意力的常识对话生成 。在解码过程中利用了注意力机制。

decoder 模型根据概率分布生成了输出状态后,可以由这个状态经过 softmax 操作得到最终的输出: 。可以看到,在这个经典的 encoder-decoder 模型中,并没有图的参与。

⒉模型框架

如下图 1 所示为本文提出的 CCM 模型框架。

基于图注意力的常识对话生成

1 CCM 模型框架

如图 1 所示,基于 n 个词输入,会输出 n 个词作为回复,模型的目的就是预估这么一个概率分布: ,即将图信息 G 加入到概率分布的计算中。在信息读取时,根据每个输入的词 x ,找到常识知识图谱中对应的子图(若没有对应的子图,则会生成一个特殊的图 Not_A_Fact ),每个子图又包含若干三元组。

⒊知识编译模块

如图 2 所示,为如何利用图信息编译 post 的示意图。

基于图注意力的常识对话生成

2 知识编译模块

如图所示,当编译到“ rays ”时,会把这个词在知识图谱中相关的子图得到(图 2 最上的黄色高两部分),并生成子图的向量。每一个子图都包含了 key entity (即这里的 rays ),以及这个“ rays ”的邻居实体和相连关系。对于词“ of ”,由于无法找到对应的子图,所以就采用特殊子图 Not_A_Fact 来编译。之后,采用基于静态注意力机制, CCM 会将子图映射为向量 ,然后把词向量 w(x_t) g_i 拼接为 基于图注意力的常识对话生成 ,并将这个 替换传统 encoder-decoder 中的 e(x_t) 进行 GRU 计算。

对于静态图注意力机制, CCM 是将子图中所有的三元组都考虑进来,而不是只计算一个三元组,这也是该模型的一个 创新点

⒋知识生成模块

如下图 3 所示,为如何利用图信息生成回复的示意图。

基于图注意力的常识对话生成

3 知识生成模块

在生成时,不同于静态图注意力机制,模型会读取所有相关的子图,而不是当前词对应的子图,而在读取时,读取注意力最大的就是图中粉色高亮的部分。生成时,会根据计算结果,来选择是生成通用字( generic word )还是子图中的实体。

⒌损失函数

损失函数为预期输出与实际输出的交叉熵,除此之外,为了监控选择通用词还是实体的概率,又增加了一个交叉熵。

实验

实验相关细节

常识性知识图谱选用了 ConceptNet ,对话数据集选用了 reddit 的一千万条数据集,如果一个 post-response 不能以一个三元组表示(一个实体出现于 post ,另一个出现于 response ),就将这个数据去除。然后对剩下的对话数据,分为四类,一类是高频词,即每一个 post 的每一个词,都是最高频的 25% 的词;一类是中频词,即 25%-75% 的词;一类是低频词,即 75%-100% 的词;最后一类是 OOV 词,每一个 post 包含了 OOV 的词。

而基线系统选择了如下三个:只从对话数据中生成 response seq2seq 模型、存储了以 TransE 形式表示知识图谱的 MemNet 模型、从三元组中 copy 一个词或生成通用词的 CopyNet 模型。

而选用 metric 的时候,采用了刻画回复内容是否语法正确且贴近主题的 perplexity ,以及有多少个知识图谱实体被生成的 entity score

实验结果

如下图 4 所示,为根据 perplexity entity score 进行的性能比较,可见 CCM perplexity 最低,且选取 entity 的数量最多。并且,在低频词时,选用的 entity 更多。这表示在训练时比较罕见的词(实体)会需要更多的背景知识来生成答复。

基于图注意力的常识对话生成

4 CCM 与基线系统对比结果

另外,作者还采用众包的方式,来人为审核 response 的质量,并采用了两种度量值 appropriateness (内容是否语法正确,是否与主题相关,是否有逻辑)与 informativeness (内容是否提供了 post 之外的新信息)。如下图 5 所示,为基于众包的性能比较结果。

基于图注意力的常识对话生成

5 CCM 与基线系统基于众包的对比结果

从图 5 中可见, CCM 对于三个基线系统来说,都有将近 60% 的回复是更优的。并且,在 OOV 的数据集上, CCM seq2seq 高出很多,这是由于 CCM 对于这些低频词或未登录词,可以用知识图谱去补全,而 seq2seq 没有这样的知识来源。

如下图 6 所示,当在 post 中遇到未登录词“ breakable ”时, seq2seq MemNet 都只能输出一些通用的、模棱两可的、毫无信息量的回复。 CopyNet 能够利用知识图谱输出一些东西,但是并不合适。而 CCM 却可以输出一个合理的回复。

基于图注意力的常识对话生成

6 case study

总结

本文提出了一种结合知识图谱信息的 encoder-decoder 方法,引入静态 / 动态图注意力机制有效地改善了对话系统中 response 的质量。通过自动的和基于众包的形式进行性能对比, CCM 模型都是优于基线系统的。

论文笔记整理:花云程,东南大学博士,研究方向为知识图谱问答、自然语言处理。

OpenKG.CN

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

基于图注意力的常识对话生成

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


以上所述就是小编给大家介绍的《基于图注意力的常识对话生成》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Programming Amazon Web Services

Programming Amazon Web Services

James Murty / O'Reilly Media / 2008-3-25 / USD 49.99

Building on the success of its storefront and fulfillment services, Amazon now allows businesses to "rent" computing power, data storage and bandwidth on its vast network platform. This book demonstra......一起来看看 《Programming Amazon Web Services》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码