论文浅尝 | 基于常识知识图谱感知和图注意力机制的对话生成

OpenKG 祝各位读者中秋快乐!


640?wx_fmt=png

链接:http://coai.cs.tsinghua.edu.cn/hml/media/files/2018_commonsense_ZhouHao_3_TYVQ7Iq.pdf


动机

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

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

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


贡献

文章的贡献有:

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

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


方法

Encoder-Decoder 模型

经典的Encoder-Decoder模型是基于sequence-to-sequenceseq2seq)的。encoder模型将用户输入(user post)X 用隐状态 H 来表示,而decoder模型使用另一个GRU来循环生成每一个阶段的隐状态

640?wx_fmt=png其中 c_t 是上下文向量,通过注意力机制按步生成。最终,decoder模型根据概率分布生成了输出状态,并产生每一步的输出token

 

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

640?wx_fmt=png

1 CCM模型框架

如图1所示,基于n个词输入,会输出n个词作为回复,模型的目的就是预估这么一个概率分布:

640?wx_fmt=png

,即将图信息 G 加入到概率分布的计算中。在信息读取时,根据每个输入的词 x,找到常识知识图谱中对应的子图(若没有对应的子图,则会生成一个特殊的图Not_A_Fact),每个子图又包含若干三元组。在信息读取时,词向量与这个词对应的子图向量拼接,而子图向量是由采用静态图注意力机制生成的。当生成回复时,采用动态图注意力机制来引用图信息,即读取每个字对应的子图和子图中的实体,并且在生成当前回复时,通过概率计算应该是生成通用词还是这个子图中的相关实体。


知识编译模块:如图2所示,为如何利用图信息编译post的示意图。

640?wx_fmt=png

2 知识编译模块

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

对于静态图注意力机制,CCM是将子图中所有的三元组都考虑进来,而不是只计算一个三元组,这也是该模型的一个创新点。当得到子图时,且这个子图由三元组K表示, K(g_i)={k_1,k_2,…,k_(N_G)}。在计算时,就是将当前三元组的头实体与尾实体向量通过矩阵变换后相加,再经过正切激活函数后,与经过矩阵变换的关系进行点积,得到一个值。而将这个词向量与所有三元组进行计算后,再经过softmax,就得到了一个权重。把子图中所有头实体、尾实体按对相加,再基于权重计算加权和,就得到了图向量 g_i

 

知识生成模块

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

640?wx_fmt=png

3 知识生成模块

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

在进行decoder时,公式改为

640?wx_fmt=png

,而

640?wx_fmt=png

是指,将生成的词向量,以及这个词来自的三元组向量进行拼接(如果生成的是一个通用词,那么三元组就是Not_A_Fact)。在这里,可以看到GRU的输入多了两个向量 c_t^g(来自于表示图信息的向量)和 c_t^k(表示三元组信息的向量)。

对于动态图注意力机制,是一种层次型的计算,即CCM先根据post相关的所有知识图谱子图来计算一个向量 c_t^g,再根据子图中的三元组再计算一个向量 c_t^k。对于上个阶段的隐状态输出 s_t,最终的 c_t^g 是图向量 g_i 的加权和。

然后,对于每个子图中的三元组 k_jCCM又计算了一次注意力,最终的 c_t^k k_j 的加权和,权重为对应图 g_i 的注意力权重与三元组 k_j 的注意力权重之积。

最终,每一个step的输出,是根据 s_t 来选择一个通用词或者子图中的实体。

 

损失函数

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

640?wx_fmt=png

其中就是选择的概率,而就是一个Boolean值,表示在实际输出Y中是选择了通用词还是实体。


实验

. 实验相关细节

常识性知识图谱选用了ConceptNet,对话数据集选用了reddit的一千万条数据集,如果一个post-response不能以一个三元组表示(一个实体出现于post,另一个出现于response),就将这个数据去除。然后对剩下的对话数据,根据post的词的出现频数,分为四类。

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

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

 

. 实验结果

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

640?wx_fmt=png

4 CCM与基线系统对比结果

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

640?wx_fmt=png

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

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

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

总结

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

 

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



OpenKG.CN


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

640?wx_fmt=jpeg

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7款优秀Vim插件帮你打造完美IDE

本文转载自公众号“夕小瑶的卖萌屋”,专业带逛互联网算法圈的神操作 -----》我是传送门 关注后,回复以下口令: 回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读) 回复【入群】&#xf…

POJ 2259 team queue团队排队问题

题目链接: http://poj.org/problem?id2259 题目大意: 告诉你一堆人(m个人是一组的,n个人是一组的。。。。);然后一个人来排队了,先看下有自己组的熟人吗?有的话直接排在自己组的人…

中文句法分析、标记规范及其应用

一、 Why句法分析 句法分析是比词高一个层级的语言单位,单个词之间通过中文语法规则进行组织,形成一个具有连贯语义的词语序列。为了揭示这种组织结构和规则,揭示出词语以及词语的成分,往往需要对其进行句法分析。就中文而言&…

蚂蚁三面题目(java开发岗):Java锁机制+JVM+线程池+事务+中间件

一面 1、HashMap底层原理?HashTable和ConcurrentHashMap他们之间的相同点和不同点? 2、由上题提到锁的问题 3、MySQL的表锁&行锁&乐观锁&悲观锁,各自的使用场景 4、Java线程锁有哪些,各自的优劣势 5、事务四大特性 6、事务的…

论文浅尝 | 当知识图谱遇上零样本学习——零样本学习综述

随着监督学习在机器学习领域取得的巨大发展,如何减少人工在样本方面的处理工作,以及如何使模型快速适应层出不穷的新样本,成为亟待解决的问题。零样本学习(Zero-Shot Learning, ZSL)的提出,则有效地解决了此…

ACL20 | 让笨重的BERT问答匹配模型变快!

一只小狐狸带你解锁炼丹术&NLP秘籍作者:曹庆庆(Stony Brook University 在读PhD,关注Efficient NLP、QA方向,详见awk.ai)背景BERT、XLNet、RoBERTa等基于Transformer[1]的预训练模型推出后,自然语言理解…

POJ 1581 优先队列 priority_queue -- 比赛胜者求解

题目链接:http://poj.org/problem?id1581 题目大意: 给定选手姓名,及答题提交次数(提交正确前,错误一次罚20分),每题的做题时间罚分(未正确作答的不罚分),…

热点事件发现、演化及时间线Timeline、故事线Storyline自动生成

一、热点事件概述 热点事件具有不可预测性,这决定了热点事件往往是一个“事后诸葛亮”的产物,一个热点事件从刚开始出现之时并没有带有成为热点的性质,当然,重大事故或者突发事件(如总统被杀、日本地震、印尼海啸、巴黎圣母院火灾…

计算机网络安全知识汇总

一、计算机网络面临的安全性威胁计算机网络上的通信面临以下的四种威胁: 截获——从网络上窃听他人的通信内容。 中断——有意中断他人在网络上的通信。 篡改——故意篡改网络上传送的报文。 伪造——伪造信息在网络上传送。截获信息的攻击称为被动攻击&#xff0c…

天猫研发Java团队(4面全题目):并发压测+Mina+事务+集群+秒杀架构

天猫高级Java一面 常见集合类的区别和适用场景 并发容器了解哪些? 如何判断链表是否有环 concurrentHashMap如何实现 集群服务器 如何application 共享 JAVA网络编程中:BIO、NIO、AIO的区别和联系 jvm内存模型jmm 知道的全讲讲 JAVA的垃圾回收&am…

回顾经典,Netflix的推荐系统架构

这篇文章我们回顾一篇经典博客,Netflix官方博客介绍的推荐系统架构,虽然文章发布已有六年, 但是现在回看起来我自己还是蛮惊讶的,因为Netflix的推荐系统架构居然到现在依然是主流。当然,框架中的诸多技术在不断的迭代更…

CNCC 技术论坛 | 知识图谱赋能数字经济

2018中国计算机大会(CNCC2018)将于10月25-27日在杭州国际博览中心(G20会场)举行,大会主题为「大数据推动数字经济」(Big Data Drives the Digital Economy)。10月15日前报名可享优惠&#xff0c…

计算机网络:我把所有计算机网络的基础都汇总到这里了!

原文链接:https://cloud.tencent.com/developer/article/1388529 前言计算机网络基础 该是程序猿需掌握的知识,但往往会被忽略今天,我将献上一份详细 & 清晰的计算机网络基础 学习指南,涵盖 TCP / UDP协议、Http协议、Socket等…

算法--递归--走台阶问题(2种递归+递归改循环)

文章目录递归:注意事项:问题1思路1.递归代码(未考虑重复计算问题)2.循环代码3.递归代码(避免重复计算问题)测试运行时间问题2递归: 一个问题可以分解成若干子问题,且求解思路一样&a…

最新2019 蚂蚁金服4面(Java)面试题

蚂蚁金服Java一面 1 自我介绍和项目 2 Java的内存分区 3 Java对象的回收方式,回收算法。 4 CMS和G1了解么,CMS解决什么问题,说一下回收的过程。 5 CMS回收停顿了几次,为什么要停顿两次。 6 Java栈什么时候会发生内存溢出&…

论文浅尝 | 基于表示学习的大规模知识库规则挖掘

链接:www.ict.griffith.edu.au/zhe/pub/OmranWW18.pdf动机传统的规则挖掘算法因计算量过大等原因无法应用在大规模KG上。为了解决这个问题,本文提出了一种新的规则挖掘模型RLvLR(Rule Learning via LearningRepresentation),通过利用表示学习…

深度学习推荐系统中各类流行的Embedding方法

Embedding技术概览:对其它Embedding技术不熟悉,可以看我的上一篇文章:深度学习推荐系统中各类流行的Embedding方法(上)Graph Embedding简介Word2Vec和其衍生出的Item2Vec类模型是Embedding技术的基础性方法&#xff0c…

超强干货!7个腾讯最常用的用户研究方法

超强干货!7个腾讯最常用的用户研究方法调查知识2017-09-19每天都有互联网产品上市,人们电脑上、手机上的应用在短期之内就可能增增减减换了很多波,最终留下的、那些最经典的产品,都是以好的体验设计取胜。这些产品或许看似很“简单…

算法--递归--汉诺塔问题

文章目录1. 问题分析2. 面试题1. 问题分析 游戏规则:一次只能挪一片;小的只能在大的上面;把所有的从A柱挪到C柱。 递推公式: 上部 n - 1 个 A 到 B;最底下 1 个 A 到 C ;上部 n - 1 个 B 到 C;…

论文浅尝 | 面向跨语言实体对齐的知识图谱与实体描述协同嵌入方法

来源: IJCAI2018链接: https://www.ijcai.org/proceedings/2018/0556.pdf动机近年来,随着多语言知识图谱嵌入(Multilingual KG embedding)的研究,实体的潜在语义表示以及跨语言知识推理等任务均取得一定成效,因此也推动了许多知识驱动的跨语言…