论文名称:Co-GAT: A Co-Interactive Graph Attention Network for Dialog Act Recognition and Sentiment Classification

论文作者:覃立波、黎州扬、车万翔、倪旻恒、刘挺

原创作者:黎州扬

论文链接:https://arxiv.org/pdf/2010.00190.pdf

代码链接:https://github.com/RaleLee/Co-GAT

出处:哈工大SCIR

1. 简介

1.1 研究背景与任务定义

在对话系统中,对话行为识别和情感分类是两个相关任务,能够帮助进行识别说话者的意图。其中,对话行为能够展示说话者显式的意图,而情感能展现说话者隐式的意图[1]。

更具体的来说,对话行为识别和对话情感分类都可以看作是分类任务,目标是将对话中的每条语句标注上对应的DA标签和SC标签。

图1 任务示例

1.2 研究动机

直观上,有两个关键因素有助于对话行为识别和情感预测。一个是跨任务的相互交互信息mutual interaction information,另一个是对话中的上下文信息context information。

图2 信息交互示例

如图2所示,在预测 User B 的情感标签 Negative 的过程中,相互交互信息 User B 的对话行为标签 Agreement ,对话历史信息 User A 的情感标签 Negative ,对成功预测起到很大帮助。在预测过程中, User BAgreement 标签表明其认同 User A 的上一句话,因此 User B 的情感标签更倾向于与 UserA 的上一句话的情感标签 Negative 相同。

所以,将两种信息同时考虑是很有必要的

图3 前人工作示意

如图3所示,前人的联合建模工作中,Cerisara等人[1]专注于相互交互信息(图3左),Kim等人[2]专注于对话历史信息(图3右)。最近,Qin等人[3]提出DCR-Net模型,虽然取得了较好效果,但是该模型却是以一种pipeline的方式来获取两种信息:在Encoder端获取对话历史信息,在relation layer端获取交互信息。但是我们认为,该类流水线式的模型存在一个问题:两种信息是单独建模的。

所以接下来的问题是:我们是否可以在一个统一的框架中同时对相互交互信息和上下文信息建模,来将它们完全整合呢?

为了解决此问题,我们提出了Co-Interactive Graph Attention Network(Co-GAT)模型来联合建模两个任务。核心模块是一个协同交互图层,在协同交互图中,我们使用了一个双重连接的交互模式,包含有跨语句连接和跨任务连接,并且能够相互迭代更新。更具体的来说,跨语句连接中,一个句子会和这段对话中其余的语句相连来获取对话中的上下文信息;跨任务连接中,一个句子会和另外一个任务中的这段对话中的所有句子连接来获取任务间的相互交互信息;同时这两种连接在一个统一的图网络中同时更新。

从而给出了之前提出问题的回答:每个话语节点可以与上下文信息和相互交互信息同时更新。

图4 Co-GAT示意

2. 模型

2.1 整体框架

图5 Co-GAT整体框架

如图所示,这是模型的整体框架。由三部分组成,第一部分为分层对话者感知编码器;第二部分为核心模块——协同图交互层;第三部分为解码器部分。将在以下部分中作详细介绍。

2.2 Vanilla Graph Attention Network

对于单层图注意力网络[4],它接受一个图中所有节点的表示作为输入,输出更新后的这些节点的表示。

首先,由公式1计算出hi邻接节点hj的重要性,然后通过公式2获取attention分数,最后使用求和的方式得到节点更新后的表示。这里我们还引入了多头注意力机制。

2.3 Hierarchical Speaker-Aware Encoder

我们使用Bi-LSTM来对句子进行编码。

之后,为了更好的揭示对话者自我的逻辑,我们引入了Speaker-Aware graph。在该图中,节点是对话中的每句话;如果节点i和节点j同属于一个对话者,那么就将其连接。

2.4 Co-Interactive Graph Layer

在协同交互图中,假设一段对话中有N个句子。

  • 顶点:一共有2N个顶点,每个顶点对应一个句子表示。

    • N个顶点为情感分类任务的句子表示

    • N个顶点为对话行为识别任务的句子表示

  • 边:一共有两种连接

    • 跨语句连接。节点i连接上其同属一个任务的节点来获取上下文信息

    • 跨任务连接。节点i连接上另一个任务的所有节点来获取相互交互信息

2.5 Decoder and Joint Training

我们使用两个单独的Decoder来获取分类的结果:

我们将loss联合起来更新:

3. 实验

3.1 数据集

我们在两个公开数据集Dailydialog和Mastodon上进行了实验,我们保持了两个数据集原分割不变。

  • Dailydialog中, 训练集11,118个对话, 验证集1,000个对话,测试集1,000个对话

  • Mastodon中,训练集239个对话,测试集266个对话

3.2 主实验结果

表1 主实验结果

如表所示,baseline结果分为三块,分别为单独的Dialogue Act Recognition模型、单独的Sentiment Classification模型和联合模型。从结果可以看出:

  • 我们的实验结果在所有指标上超过了现有DAR和SC的单独建模的模型,这表明了我们联合建模中提取mutual interaction information的有效性。

  • 我们的实验结果在所有指标上超过了现有的联合建模模型,这表明了将context information和mutual interaction information同时建模的有效性。

3.3 消融实验结果

表2 消融实验结果

上表是消融实验的结果,从中可以看出:

  • without cross-tasks connection设置中,我们将cross-tasks connection去掉,来验证mutual interaction information的有效性。

  • without cross-utterances connection设置中,我们将cross-utterances connection去掉,来验证context information的有效性

  • separate modeling设置中,我们将co-interactive interaction layer去掉,使用两个单独的GAT建模两个任务,然后将两个模型的结果求和来表示交互,这表明了我们的co-interactive interaction layer能更好的同时获取两种信息。

  • co-attention mechanism设置中,我们用DCR-Net中的co-attention mechanism来替换我们的co-interactive interaction layer,表明了pipeline方法的劣势。

  • without speaker information设置中,我们去掉了hierarchical speaker-aware encoder中的speaker-aware graph,验证了合理的建模speaker的信息流可以帮助提高模型的效果。值得注意的是,在去掉该信息后,我们模型的结果依旧高于SOTA模型DCR-Net。

3.4 预训练模型探索实验

我们在Mastodon数据集上探索了预训练模型的效果。我们直接将预训练模型替换hierarchical speaker-aware encoder作为Encoder,来观察我们提出的co-interactive graph layer的效果。

图6 BERT模型探索结果

图6是对于BERT模型的探索结果,我们的模型超过了baseline DCR-Net+BERT的效果

表3 RoBERTa和XLNet探索结果

表3是对于RoBERTa和XLNet预训练模型的探索结果。其中

  • RoBERTa/XLNet+Linear是将RoBERTa/XLNet作为共享encoder,然后使用两个单独的线性层作为decoder获得预测结果。

  • Co-GAT+RoBERTa/XLNet是将RoBERTa/XLNet替换hierarchical speaker-aware encoder作为Encoder,保持我们的model剩余部分不变。

实验结果表明,Co-GAT和RoBERTa/XLNet的结合可以进一步提升模型效果,证明了我们的贡献与预训练模型是互补的。

4.结论

在这篇文章中,我们的贡献如下:

  • 我们首次尝试同时结合上下文信息和相互交互信息来进行联合对话行为识别和情感分类。

  • 我们提出了一个协同交互的图注意力网络,该网络构造了交叉任务连接和交叉话语连接,并相互进行迭代更新,从而实现了同时结合上下文信息和交互信息的建模。

  • 在两个公开数据集上进行的实验表明,我们的模型取得了实质性的改进,并实现了最佳的性能。此外,我们框架的贡献与预训练模型(BERT,Roberta,XLNet)是互补的。

参考文献

[1] Cerisara, C.; Jafaritazehjani, S.; Oluokun, A.; and Le, H. T. Multi-task dialog act and sentiment recognition on mastodon. In Proc. of COLING 2018.

[2] Kim, M.; and Kim, H. Integrated neural network model for identifying speech acts, predicators, and sentiments of dialogue utterances. Pattern Recognition Letters 2018.

[3] Libo Qin, Wanxiang Che, Yangming Li, Mingheng Ni, Ting Liu. DCR-Net: A Deep Co-Interactive Relation Network for Joint Dialog Act Recognition and Sentiment Classification. AAAI 2020.

[4] Veličković P, Cucurull G, Casanova A, et al. Graph attention networks. ICLR 2018.

本期责任编辑:丁 效

本期编辑:彭 湃

说个正事哈

由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

推荐两个专辑给大家:

专辑 | 李宏毅人类语言处理2020笔记

专辑 | NLP论文解读

专辑 | 情感分析


整理不易,还望给个在看!

【AAAI2021】纠结于联合学习中的建模方法?快来看看图网络显式建模!相关推荐

  1. 论文浅尝 - ACL2020 | 利用常识知识图对会话流进行显式建模

    笔记整理 | 韩振峰,天津大学硕士 链接:https://arxiv.org/pdf/1911.02707.pdf 动机 人类对话自然地围绕相关概念发展,并分散到多跳概念.本文提出了一种新的会话生成模 ...

  2. 深度学习中的优化方法总结

    转载自:https://blog.csdn.net/u012151283/article/details/78154917 梯度下降沿着整个训练集的梯度方向下降.可以使用随机梯度下降很大程度地加速,沿 ...

  3. 深度学习中的归一化方法简介(BN、LN、IN、GN)

    文章目录 1. 协方差偏移 1.1 协方差偏移的概念 1.2 协方差偏移的影响 2. 归一化的通用框架与基本思想 3. 常见的归一化方法 3.1 Batch Nomalization 3.1.1 什么 ...

  4. 深度学习中的归一化方法总结(BN、LN、IN、GN、SN、PN、BGN、CBN、FRN、SaBN)

    目录 概要 Batch Normalization(BN) (1)提出BN的原因 (2)BN的原理 (3)BN优点 (4)BN缺点 Instance Normalization(IN) (1)提出IN ...

  5. 周明教授《多语言及多模态任务中的预训练模型》Mari 教授《基于显式上下文表征的语言处理》

    AI:2020年6月22日北京智源大会演讲分享之09:40-10:10Mari 教授<基于显式上下文表征的语言处理>. 10:10-10:40周明教授<多语言及多模态任务中的预训练模 ...

  6. java多线程中 锁 的概念的理解,java 并发多线程显式锁概念简介 什么是显式锁 多线程下篇(一)...

    目前对于同步,仅仅介绍了一个关键字synchronized,可以用于保证线程同步的原子性.可见性.有序性 对于synchronized关键字,对于静态方法默认是以该类的class对象作为锁,对于实例方 ...

  7. 深度学习中的正则化方法

    引入正则化 在深度学习背景下,大多数正则化策略都会对估计进行正则化.估计的正则化以偏差的增加换取方差的减少.一个有效的正则化是有利的权衡,也就是能显著减少方差而不过度增加偏差. 参数范数惩罚 许多正则 ...

  8. 深度学习中的归一化方法BN,LN,IN,GN

    文章目录 前言 一.BN 二.LN 三.IN 四.GN 前言 归一化层,目前主要有这几个方法, 1.Batch Normalization(2015) 2.Layer Normalization(20 ...

  9. 深度学习中的优化方法-AdaGrad

    码字不易,转载请注明出处~ tags: optimizer;AdaGrad 本文来源于下面博客: https://medium.com/konvergen/an-introduction-to-ada ...

  10. introduction to deep learning--week1简单线性回归、梯度下降、模型正则化、和深度学习中的优化方法

    进阶课程需要一些基础知识: 1.机器学习基础知识 2.概率论知识 3.线性代数和微积分 4.python编程 我们需要知道的机器学习基础知识: 1.线性回归:均方误差(MSE).解析解 2.逻辑回归: ...

最新文章

  1. 轻松掌握ISO8583报文协议
  2. printf/scanf格式控制符的完整格式
  3. Nginx使用Expires增加浏览器缓存加速(转)
  4. Python网络编程之TCP服务器客户端(二)
  5. 繁忙的都市(信息学奥赛一本通-T1392)
  6. HDU 6178 Monkeys
  7. python基础学习笔记——异常处理
  8. I.MX6 mfgtool2-android-mx6q-sabresd-emmc.vbs hacking
  9. 软件界面布局调整推荐
  10. Flash MX 认证考试(样题)
  11. The summary of Java
  12. 比较无线局域网和无线广域网的特征
  13. 学术论文投稿第五弹——如何写Discussion
  14. Android中检测应用是否安装
  15. ZeroMemory、memset 和 “={0}” 三者区别
  16. 2022年全球市场车载麦克风总体规模、主要生产商、主要地区、产品和应用细分研究报告
  17. MQ响应码是2059该如何解决
  18. SQL Server 查询分解
  19. 0626第一篇博客CSDN我就是那个学编程的女神。。经病!
  20. 中加携手 促进无线互联网发展

热门文章

  1. Tensorflow 报错:tensorflow.python.framework.errors_impl.InternalError: Failed to create session....
  2. libfaac个个参数说明
  3. SQL中 UNION 和 UNION ALL 操作符小结
  4. 关于mysql的wait_timeout参数 设置不生效的问题【转】
  5. AS数据库自动备份的DOS语句
  6. Flash Memory(一)
  7. c语言编写的操作系统不会用到类,因为当时c++还没出现
  8. Dubbox服务的消费方配置
  9. Python 将中文、字母转成数字
  10. Jmeter打开url时提示“请在微信客户端打开链接问题”