【论文笔记】Knowledge Bridging for Empathetic Dialogue Generation

2024-01-20 08:30

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

Knowledge Bridging for Empathetic Dialogue Generation

文章目录

  • Knowledge Bridging for Empathetic Dialogue Generation
    • 1. Motivation
    • 2. Main idea
    • 3. Model
      • 3.1 Emotional Context Graph
      • 3.2 Emotional Context Encoder
      • 3.3 Emotion-dependency Decoder
      • 3.4 KEMP-DialoGPT

会议:AAAI 2022

任务:共情对话生成

代码:项目地址

原文:论文地址

1. Motivation

人类通常依靠经验和外部知识来认知隐式情绪,人们需要更多的外部知识来做出共情回应。在对话过程中,说话人的请求和另一方的回复往往存在一定不对称的 Gap,回复中有时会出现一些请求中未涉及的新信息。我们需要将知识作为桥梁,从而对信息之间的关联建模。

另外,在共情对话中,情绪依赖(听者回复的情绪和说者表达的情绪一致) 和情绪惯性通常与外部知识一起出现。

2. Main idea

提出了融合常识知识情感词汇知识的共情对话生成模型KEMP。首先通过与外部知识进行交互来丰富对话历史,构建情绪上下文图。然后从知识丰富的情绪上下文图中学习情感上下文表征,提取情感信号。最后,本文提出了一个情感交叉注意力机制来学习从情绪上下文图中得到的情感依赖

  • 常识知识使用ConceptNet,每个知识元组定义为:(head concept, relation, tail concept, confidence score)

  • 情感词汇知识使用NRC_VAD,包含20K个英文单词,每个单词都包含一个三维向量( V a , A r , D o V_a,A_r,D_o Va,Ar,Do)。定义情感强度值为:

在这里插入图片描述

3. Model

image-20230604163648394

3.1 Emotional Context Graph

  • 检索外部知识、构建情绪上下文图

    给定对话历史,拼接成一个长文本序列,对于每个非停用词,首先到ConceptNet中检索一系列候选三元组。然后通过三个启发式策略重定义情感相关的知识:

    • 抽取具有情绪相关关系(如"Causes")的边并具有足够置信度的三元组;
    • 对于检索到的概念实体,使用VAD中的情感强度值对它们进行排序,选择top-K个三元组作为情感知识子图;
    • 建立三种边:时序边(连接两个连续的单词)、情绪边(连接一个单词及其情绪实体)、全局边(连接开始符CLS和其他结点)

3.2 Emotional Context Encoder

  • Emotional Context Graph Encoding

    • 嵌入

      使用三种Embedding对情绪上下文图进行编码,分别是词嵌入、位置嵌入以及新增加的结点状态嵌入,结点状态嵌入用于表示一个单词是对话历史中的单词还是外部知识中的单词。

    • 多头图注意力机制

      使用多头图注意力机制更新结点表征。每个结点进行上下文化,具体而言,通过与其直接相邻的邻接结点进行局部的注意力交互。

      经过嵌入和多头图注意力交互后的特征,会进入常规的Transformer模块中,进行全局交互。

      最终得到每个结点的编码后的表示

  • Emotional Signal Perception

    • 情绪信号表征定义为顶点表征和情绪强度值得加权求和;
    • 然后通过一个线性层和Softmax将情绪信号向量投影到情绪类别分布中,其中,经过线性层学习后的表征为情绪信号

3.3 Emotion-dependency Decoder

为了从情绪上下文图中获取情绪依赖并控制共情回复表达,通过将情绪信号经过线性层映射为一个新的向量,然后在每个时间步将其与解码器的输入词嵌入进行拼接。

为了提高情绪上下文图和目标共情回复之间的情绪以来,本文设计了两个情绪策略:融合情绪特征和强制情绪注意力损失。

  • Incorporating Emotional Features

    在Decoder的多头交叉注意力层,计算上一个输出词和Encoder输出的情绪上下文图的每个结点表示之间的注意力,得到了对话上下文向量

    为了对话回复中的共情表达能力,将对话上下文向量情绪信号表征进行拼接,得到情绪上下文向量。然后输入后续的Transformer Decoder模块中。

  • Enforcing Emotional Attention Loss

    • 在对话中,人们自然地会将注意力放在具有显著情绪信息的表达中。因为,本文设计了强制情绪注意力损失,使得模型更关注于具有高情绪强度的结点,具体如下:

    image-20230612185255547

    ​ 该公式首先对每个结点的注意力头取平均,然后最小化每个结点情绪强度及其注意力值之间的均 方误差(MSE),这样设计使得情绪强度值高的结点注意力权重更大。

    • 此外,为了计算从输入的图中复制一个实体概念结点的概率,这里借鉴了文本摘要中指针生成网络PGN的方法:

      image-20230612193116611

    最终的损失是多任务学习形式,同时优化情绪标签预测、文本生成、情绪注意力三个损失的加权和。

3.4 KEMP-DialoGPT

通过把情绪上下文编码器的图注意力层和情绪依赖解码器的交叉注意力层融合到DialoGPT中,把KEMP整合到了预训练语言模型中。

这篇关于【论文笔记】Knowledge Bridging for Empathetic Dialogue Generation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

AI hospital 论文Idea

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

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi