论文阅读总结:AAAI 2022 Knowledge Bridging for Empathetic Dialogue Generation

本文主要是介绍论文阅读总结:AAAI 2022 Knowledge Bridging for Empathetic Dialogue Generation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码:GitHub - qtli/KEMP: [AAAI 2022] Knowledge Bridging for Empathetic Dialogue Generation

论文:https://arxiv.org/abs/2009.09708

代码阅读:CSDN

个人总结:这篇论文主要的创新点是外部知识部分(ConceptNet和Nrc_Vad),建立了情感上下文图。首先根据对话,对每个非主体词从ConceptNet检索一组候选组,然后,通过置信度得分和移情反应创建子集,并根据Nrc_Vad排序(选前几个),最后通过临时边,情感边和全局边创建上下文图。

后续就是一个Transformer结构,包括encoder和decoder。在encoder部分的改动:首先加入了图的MHA,其次是将Nrc_Vad得到的情感强度值得分映射到了输出中。在decoder部分的改动:在输入部分首先使用过一个线性层将encoder的输出线性变换并与词嵌入结合,作为新的input;其次就是再次将情感信号Ce(由情感强度值和节点嵌入生成)与当前生成的嵌入拼接成情感上下文嵌入c(使用了两次情感值,即Nrc_Vad)。

1 摘要

外部知识的缺乏使得共情对话系统难以从有限的对话历史中感知隐含的情绪学习情绪交互。为了解决上述问题,我们提出利用外部知识,包括常识知识和情感词汇知识,在移情对话生成中明确地理解和表达情感。首先通过与外部知识的共同交互来丰富对话历史,并构建一个情感上下图。然后,我们从知识丰富的情感上下文图中学习情感上下文表示,提取情感信号,这是预测响应中表达的情感的先决条件。最后,为了产生移情反应,我们提出了一种情感交叉注意机制,从情感上下文图中学习情感依赖。


2 以往研究存在的问题

社会心理学研究表明,共情是实现更人性化对话系统的关键因素。尽管已经有很多研究通过明确分配情感标签或通过一般术语鼓励更高水平的情感来控制回应的情感内容,但仍然面临着在没有明确情感标签的情况下进行共情对话的挑战。

2.1如何从外部知识中更好地感知情感

人们通常依赖经验和外部知识来认知和表达隐含的情感。下图展示了共情对话的一个实例,如果使用发言者输入的非停用词作为查询,并通过外部知识获取知识,可以获得各种与情感相关的概念以及它们的情感强度值,这在情感理解中对于共情对话系统起着至关重要的作用(红色情绪值,蓝色情绪相关的概念)。外部知识对于获取有用的情感知识并改善共情对话生成性能至关重要。然而,从外部知识中感知和表示情感对于共情对话生成仍然存在问题。

2.2在对话中捕获情感依赖

共情对话中常常出现情感依赖和情感惯性。我们使用基于CNN的情感分类器对话语进行标记,并在下图可视化了从发言者到听众的情感转换。较深的对角线网格表示听众倾向于模仿对话方的情感以建立良好的关系。此外,除了对角方向之外,还存在一些复杂的情感转移模式(在红色框中)。因此,建模对话参与者之间的情感依赖关系至关重要。


3 贡献

设计了一个情感上下文编码器和一个情感依赖解码器,来学习对话历史和目标回应之间的情感依赖关系。其中情感上下文编码器使用图感知Transformer来学习图嵌入,并提出情感信号感知过程来感知引导响应生成的上下文情感。在启用了丰富知识的情感上下文图的条件下,情感依赖解码器特别模拟情感依赖关系以生成共情回应。


 4 方法

先介绍一下KEMP用到的两个外部知识

ConceptNet:是用自然语言描述一般人类知识的大规模知识图,在情感相关任务中发挥有效作用包括590万元组、310万概念和38个关系。作者将每个元组(头部概念、关系、尾部概念、置信度得分)表示为τ = (x,r,c,s),例如(birthday,RelatedTo,happy,0.19)

NRC_VAD:是针对20k个英语单词的具有3维(Va,Ar,Do)的VAD(Valence-arous dominance)向量的词典,例如,单词“nice”的V广告载体与文化无关,在心理学中被广泛采用(Mehrabian 1996)。表1给出了V AD载体的解释AD向量是:[0.93,0.442,0.65]。vad与文化无关,在心理学中被广泛采用(Mehrabian 1996)。下图给出了VAD的解释

 情感强度值计算方法:

使用NRC VAD来计算对话词和外部概念x的情感强度值,其中min-max()是最小-最大归一化如果x不在NRC VAD中,η(x)将被设置为0。将ConceptNet中情感强度值较高的概念注入KEMP,帮助模型情感感知和表达

4.1 问题定义:

输入,M个对话历史,每个对话历史由字序列构成。

 4.2 情感上下文图

通过与两种类型的外部知识交互来构建情感情境图G。作者将对话历史展平成一个长单词序列,并在标记句的开头插入一个标记,即X = [CLS,x1,.。。,xm】。对于每个非主题词xi ∈ X,首先从ConceptNet检索一组候选元组,然后,采用三个启发式步骤来提炼情绪相关知识:

(1)过滤与(移情反应(例如,“原因”)和足够的置信度得分(即ski > 0.1))相关的元组来提取子集ti⊂TiB。

(2)通过情感强度值(NCR_VAD){η(cki )}k=1对元组进行排序,对于每个单词xi,选择前K个元组作为情感知识子图

(3)应用3种类型的有向边来连接顶点:(I)两个连续单词之间的临时边;(二)单词与其情感之间的情感边;(iii)CLS和其他顶点之间的全局边。最后,对话历史被情感知识丰富并表示为情感语境图。

4.3情感上下文编码器

4.3.1情感上下文图编码

首先使用单词嵌入层和位置嵌入层将每个顶点vi ∈ G转换为向量Ew(vi) 词嵌入和Ep(vi) 位置嵌入,d是嵌入的维数。在多回合对话设置中,区分对话历史或外部知识中的顶点是有帮助的。因此,我们将顶点状态嵌入到顶点vi的Ev(vi)中。顶点vi的矢量表示是三种嵌入的组合:

之后应用多头图注意机制,用情感知识更新顶点表示。通过与邻居结点Ai进行注意力交互。

 第n个头的自注意机制公式如下,其中W为参数矩阵

 由于先前的操作仅针对局部上下文(邻居节点),所以接下来用全局上下文信息(所有其他顶点)来更新顶点表示,以对全局交互进行建模。具体来说,我们使用Transformer来获得全局信息

 LayerNorm是层归一化,MHAtt是由H个注意头组成的多头自注意层;FFN是一个以ReLU为隐激活函数的两层前馈网络。

4.3.2情绪信号感知

从情感情境图中学习情感信号,以指导移情反应的产生。情绪信号表示是基于情感强度的图顶点表示的加权和。

 然后,使用具有softmax操作的线性层将向量ce投影到情绪标签上的情绪类别分布Pe中,以识别移情反应的情绪信号:

其中We ∈ Rq×d,q是情感类别的数量

4.4 情感依赖解码器

从中间情感信号开始,提出了一种情感相关解码器来顺序生成目标词。为了从情感上下文图中获得情感依赖性控制移情表达,作者通过线性层:

ep线性转换为新嵌入e0p。在第j个解码步骤e0p与解码器输入词[y1,.。。,yj1]转换成新嵌入[y0,.。。,yj1],其中y0 = e0p:

为改善情感情境图和目标移情反应之间的情感依赖性,作者设计了两种情感策略融合情感特征强化情感注意损失

4.4.1 融合情感特征

为了从情感语境图中捕获对话上下文嵌入,作者计算最后一个预测词Yj和顶点Vi之间的注意力得分:

​其中H是注意力头的数量。为了提高响应的移情表达,将情境向量Gs与情感信号Ce拼接成情感上下文嵌入c,

然后,将y_{j-1}和向量c输入到一个前馈网络,生成y_{j}

 4.4.2 强化情感注意损失

由于人在谈话过程中会自然地额外注意情绪显著信息,因此实施了情绪注意力丢失,以关注那些具有较高情绪强度值的顶点:

 其中首先对每个结点的注意力分数按照注意力头的个数取平均,然后根据每个结点的情绪强度和注意力值将损失最小化。然后,产生第j个单词在词汇V上的分布:

接着通过使用外部概念,计算从顶点{Vi}i=1复制的概率Pgen,得出最终概率分布P (yj):

 

这篇关于论文阅读总结:AAAI 2022 Knowledge Bridging for Empathetic Dialogue Generation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/625383

相关文章

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000