论文浅尝 | 具有图卷积网络和顺序注意力机制的应用于目标导向的对话系统

论文笔记整理:吴涵,天津大学硕士,研究方向:自然语言处理。



来源:2019 Association for Computational Linguistics
论文链接:https://www.mitpressjournals.org/doi/full/10.1162/tacl_a_00284
开放源码:https://github.com/sumanbanerjee1/GCN-SeA

概述

面向特定领域的面向目标的对话系统通常需要对三种类型的输入进行建模,即,(i)与该域相关联的知识库,(ii)对话的历史,这是一系列话语,以及(iii)需要为其生成响应的当前话语。本文提出了一种面向目标的对话的增强记忆GCN。该模型利用(i)知识库中的实体关系图和(ii)与话语关联的依存关系图来计算单词和实体的更丰富表示形式。此外,在某些情况下,例如当对话使用代码混合语言时,依赖解析器可能不可用。在这种情况下,我们从整个语料库构造了一个共现矩阵,并使用该矩阵将图结构强加于单词上。更具体地说,如果在句子中两个词经常同时出现,我们会在句子中的两个词之间添加一个边。我们的实验表明,这种简单的策略可以合理地替代依存关系分析树。

模型和方法

每个t轮的对话都可以看作是用户话语(U)和系统响应(S)的连续显示,并且可以表示为:(U1,S1,U2,S2,...,U t,S t)。除对话外,每个对话还伴随着与该对话相关的e个 KB(知识库)三元组,可以表示为:(k1,k2,k3,...,ke)。每个三元组都是这种形式:(entity1,relation,entity2)。在任何第i轮对话:给出:
(1)    dialogue history H =( U1, S1, U2, ..., S i−1),
(2)    the current user utterance as the query Q = Ui
(3)    the associated knowledge graph Gk
目标:生成Si。
利用知识库中的图结构和话语中的句法结构来生成适当的响应,提出以下模型:

1. Query Encoder

查询Q = Ui是对话中的第i个(当前)用户话语,包含| Q |个标记。我们将第i个标记在查询中的嵌入表示为qi。我们首先通过将这些标记传递给双向RNN来计算这些标记的上下文表示:

注:双向RNN假设当前t的输出不仅与之前序列有关,还与之后的序列有关。

现在,考虑由图G表示的查询语句的依存关系分析树,我们使用特定于查询的GCN对GQ进行操作。把 作为第一层GCN的输入

查询特定GCN的第k跳中的节点表示形式计算如下:

W、g:第k跳边缘指定方向的查询-GCN的权重和偏差。其中:

2. Dialogue History Encoder

对话的history H包含| H |个标记,我们用pi表示第i个标记在历史中的嵌入。再次,我们首先使用双向RNN计算这些标记的隐藏表示形式:

现在,我们为历史记录中的每个句子计算一个依存关系分析树,并将所有树共同表示为一个图G。此图将仅包含属于同一句子的单词之间的边,并且跨句子的单词之间没有边。然后,我们使用特定历史的GCN对这个图G进行操作,该操作将St作为第一层的输入。历史特定GCN的第k跳中的节点表示形式计算如下:

V、o: 特定于边缘方向的历史-第k跳中的GCN权重和偏差

3. KB Encoder

Gk是描述与对话相关的知识图中实体之间的关系的图。假设有m个这样的实体,我们将对应于第i个实体的节点的嵌入表示为ei。然后,我们运行特定于知识库的GCN。特定于KB的GCN的第k跳中的节点表示为:

与句法GCN的情况类似,我们还向EK添加了逆边缘,以便允许信息在知识图中的实体对的两个方向上都流动。

4. Sequential Attention

我们使用RNN解码器生成响应的标记,并将解码器的隐藏状态表示为:

其中:T是总共的解码器时间步长 

为了从查询GCN的最终层(k = f)获得节点向量的单个表示形式,我们使用下面的Attention机制:

其中:V、W1、W2都是参数。此外:在每一次解码循环中,我们会根据查询上下文向量 计算历史中每个节点/标记的注意力得分,从而从history-GCN的最后一层获取查询感知表示。其中:

其中:V2、W3、W4、W5是参数。最后,我们通过使用下面的计算KB-GCN的最后一层中所有节点的注意力得分来获得知识库的查询和历史记录表示

5. Decoder

a. 解码器的两个条件:
(1)包含history和KB的上下文
(2)对话中最后/前一个话语的查询
b. 我们使用一个聚合器来学习对历史和KB组件的整体关注。这些注意力得分:θHt和θKt取决于相应的上下文向量和先前的解码器状态dt-1。最终上下文向量的获取方式为:

在每个时间步,解码器都会使用以下公式计算词汇表上的概率分布:

其中:Wt: 第t时间步的解码器输入。V’和b’: 参数。Pvocab: 整个词表的概率分布 时间步t的损失:  ,其中Wt*是真实回答的第t个字。
总损失:每个时间步损失的平均值。

6. Contextual Graph Creation

于对话历史记录和查询编码器,我们使用依赖关系分析树来捕获编码中的结构信息。但是,如果对话以语言显示,则不存在依赖关系解析器,那么我们需要一种从话语中提取图形结构的替代方法。

在上下文语境是整个句子时,一个可行的简单方案是创建一个词共现矩阵。一旦有了这样的共现矩阵,对于给定的句子,如果两个单词的共现频率高于阈值,则可以在两个单词之间连接边。

词共现矩阵可以包含共现频率计数或正向PMI值(衡量两个事物的相关性)。

实验数据集

(1)经过修改的Bordes的DSTC2数据集。基于饭店餐桌预订的任务,并包含人类与机器人之间真实对话的文字记录。删除对话状态注释,并且仅存在原始话语-响应对以及每个对话的一组相关的KB三元组。
(2)由Banerjee最近发布的修改的DSTC2的代码混合版本,它通过以四种语言将修改后的DSTC2(En-DSTC2)的英语版本的语音代码混合在一起来收集此数据集:Hindi (Hi-DSTC2), Bengali (Be-DSTC2), Gujarati (Gu-DSTC2), and Tamil (Ta-DSTC2)。
(3)对两个目标导向的对话数据集进行了实验,这些数据集包含人类之间的对话,其中对话以Oz向导(WOZ)的方式收集。
(4)Cam676数据集(Wen等,2017),其中包含来自餐厅领域的676 KB-grounded对话以及MultiWOZ(Budzianowski等,2018)数据集,其中包含10438个对话。

实验结果

所有代码混合语言上,我们的模型均优于基准模型。从所有语言的结果中得出的一个普遍观察结果是,RNN + GCN-SeA的性能优于GCN-SeA。

BLEU和ROUGE得分表明,我们模型的响应更加流畅。它也根据对话目标产生正确的实体,但未能提供足够的可请求位置。

在MUL上,模型能够产生流畅的响应,但由于多个域的复杂性增加,因此难以提供正确的实体。但是,由成功率可以看出,模型仍然提供了大量正确的可请求插槽位。这是因为多个域(hotel, restaurant, attraction, hospital)具有相同的可请求插槽位(address,phone,postcode)。

所有语言在GCN-SeA + Random方面的性能下降。这表明依赖关系和上下文结构起着重要作用,不能被随机图代替。

RNN-Bahdanau的注意力机制要比GCN-Bahdanau的注意力机制要好。

在自发对话的嘈杂环境中,例如DSTC2数据集中显示的那些,我们的模型响应是有利的。但是,在用于人与人对话的WOZ环境中,对话的自发性较低。

总结

作者证明了具有结构意识的表示形式在面向目标的对话中很有用,并且得到的模型优于四个对话数据集上的现有方法。除使用GCN注入依赖关系图和上下文图的结构信息,以丰富对话上下文和KB的表示形式。还提出了一种顺序注意力机制来结合:
(1)当前查询 (2)会话历史 (3)KB

最后,作者凭经验表明,当依赖解析器不适用于某些语言(例如代码混合语言)时,则可以使用词频出现频率和PPMI值 提取上下文图并将其与GCN配合使用以提高性能。

 


 

OpenKG

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

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

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

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

相关文章

Docker的基本使用(部署python项目)+两个奇技淫巧,将 Docker 镜像体积减小 99%

两个奇技淫巧,将 Docker 镜像体积减小 99% 使用Docker运行程序 Docker的基本使用(部署python项目) 一、准备项目 我写的是一个爬取某ppt网站的代码,就一个ppt1.py是爬虫,然后,ppts是存放下载的ppt的 二、准备requirement.txt文件…

Pytorch与Tensorflow,哪个更适合你?

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

LeetCode 500. 键盘行

文章目录1. 题目2. 解题1. 题目 给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。 示例: 输入: ["Hello", "Alaska", "Dad", "Peace"] 输出: ["Alaska", &quo…

XGBoost缺失值引发的问题及其深度分析

1. 背景 XGBoost模型作为机器学习中的一大“杀器”,被广泛应用于数据科学竞赛和工业领域,XGBoost官方也提供了可运行于各种平台和环境的对应代码,如适用于Spark分布式训练的XGBoost on Spark。然而,在XGBoost on Spark的官方实现中…

Android官方开发文档Training系列课程中文版:添加ActionBar之添加Action按钮

原文地址 : http://android.xsoftlab.net/training/basics/actionbar/adding-buttons.html 添加Action按钮 ActionBar允许在当前的APP上下文内添加很多重要的功能按钮。这样便可以通过图标或者文字作为功能按钮直接展示在ActionBar上。功能按钮如果没有足够空间或无足轻重的按…

快手搜索技术部招聘NLP算法工程师!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术工作职责快手搜索技术部招聘,负责研发快手主APP搜索中的关键NLP模型/算法,包括但不限于:适合快手数据生态的NLP预训练语言模型,并推动预训练模型在query解析&am…

论文浅尝 | 解决知识图谱补全中的长尾关系和不常见实体问题

论文笔记整理:汪寒,浙江大学硕士。链接:https://www.aclweb.org/anthology/P19-1024.pdf动机KG的分布遵循长尾分布,大部分关系只有很少的三元组,且大体趋势是关系出现的频率和与之相关的不常见实体的比例呈反比关系。而…

LeetCode 944. 删列造序

1. 题目 题目链接 每个单词的位组成的列非降,最少删除几列。 示例 1:输入:["cba", "daf", "ghi"] 输出:1 解释: 当选择 D {1},删除后 A 的列为:["c&quo…

Android官方开发文档Training系列课程中文版:添加ActionBar之自定义ActionBar样式

原文地址 : http://android.xsoftlab.net/training/basics/actionbar/styling.html ActionBar的样式 ActionBar提供了为用户提供了常见的习惯性的用户界面以及按钮功能。但是这并不意味着必须要和其它APP看起来一模一样。如果需要设计更符合产品品牌样式风格的话,…

美团 iOS 工程 zsource 命令背后的那些事儿

zsource 命令是什么? 美团 App 在 2015 年就已经基于 CocoaPods 完成了组件化的工作。在组件化的改造过程中,为了能够加速整体工程的构建速度,我们对需要集成进美团 App 的组件进行了二进制化,同时提供一个叫做 cocoapods-binary …

互联网大厂CTR预估前沿进展

文 | Ruhjkg编 | 小鹿鹿lulu源 | 知乎前言CTR(click through rate)预估模型是广告推荐领域的核心问题。早期主要是使用LR(线性回归)人工特征工程的机器学习方法,但是存在人工组合特征工程成本较高,不同任务…

以史为鉴 | 为什么要将「知识图谱」追溯到1956年?

本文转载自公众号:AI科技评论。作者 | Claudio Gutierrez 编译 | MrBear编辑 | Tokai以史为鉴,可以知兴替。纵观近期包括 AAAI、NeurIPS、IJCAI 在内的AI顶级会议,对图结构模型的研究是一个绕不开的话题,大量学者涌入这个赛道&…

Android官方开发文档Training系列课程中文版:添加ActionBar之ActionBar浮层效果

原文地址 : http://android.xsoftlab.net/training/basics/actionbar/overlaying.html 浮层效果的ActionBar 默认情况下,ActionBar总是会出现在Activity窗口的顶部,这样会稍微的减少Activity布局的剩余空间。如果需要在用户使用的时候隐藏和显示Action…

美团大规模微服务通信框架及治理体系OCTO核心组件开源

微服务通信框架及治理平台OCTO作为美团基础架构设施的重要组成部分,目前已广泛应用于公司技术线,稳定承载上万应用、日均支撑千亿级的调用。业务基于OCTO提供的标准化技术方案,能够轻松实现服务注册/发现、负载均衡、容错处理、降级熔断、灰度…

领域应用 | 知识结构化在阿里小蜜中的应用

本文转载自公众号:DataFunTalk。分享嘉宾:李凤麟 阿里巴巴 算法专家文章整理:付一韬内容来源:2019知识图谱前沿技术论坛出品社区:DataFun导读:阿里小蜜是阿里巴巴服务领域的重要人工智能产品,是…

内卷的世界,我们是否可以换一种思维生活?

文 | Flood Sung源 | 知乎前言今年最热门的词汇之一当属内卷了。似乎很多行业都由于份额有限而陷入内卷当中。最火的或许是清华学生的这张图,“骑车写代码”:图片来自网络虽然后来知道是这位同学怕关了屏幕程序就断了,但这不禁让人思考&#…

LeetCode 513. 找树左下角的值(按层遍历 queue)

1. 题目 给定一个二叉树,在树的最后一行找到最左边的值。 2. 解题 利用队列按层次遍历顺序,根右左,要求最左边的一个,所以根右左,最后一个队列元素就是答案 class Solution { public:int findBottomLeftValue(TreeN…

Hadoop YARN:调度性能优化实践

背景 YARN作为Hadoop的资源管理系统,负责Hadoop集群上计算资源的管理和作业调度。 美团的YARN以社区2.7.1版本为基础构建分支。目前在YARN上支撑离线业务、实时业务以及机器学习业务。 离线业务主要运行的是Hive on MapReduce, Spark SQL为主的数据仓库作…

LeetCode 39. 组合总和(排列组合 回溯)

1. 题目 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包…

深度学习平台的未来:谁会赢得下半场?

今天这篇文章无意引战,只想从历史发展的角度来谈谈深度学习大背景下的开发工具变迁,以及对未来发展趋势的想象。TensorFlow:无力回天的深度学习里程碑不知道有多少小伙伴是2017年以前入坑深度学习的,那时候人工智能概念火热&#…