【四】情感对话 Improving Multi-turn Emotional Support Dialogue Generation with Lookahead Strategy Planning

【四】情感支撑对话论文最近进展 Emotion Support Conversation

今天给大家分享一篇在EMNLP 2022的关于情感对话的论文。主要思想是从策略安排的角度来有效地提供情感支撑,并且通过理解用户的状态达到更好的生成效果。

相关情感支撑论文综述整理指路 -> 点这里

MultiESC:

Improving Multi-turn Emotional Support Dialogue Generation with Lookahead Strategy Planning

分以下四部分介绍:

  • Motivation
  • Challenges & Contributations
  • Model
  • Experiment
  • Discussion

Motivation

一个更合理的策略安排可以有效地提供情感支撑,并且理解用户的状态也可以更好地帮助回复。

1、Challenges & Contributations

Challenges

  • how to conduct support strategy planning that could lead to the best supporting effects
  • how to dynamically model the user’s state.

Contributations

  • Propose MultiESC which conducts support strategy planning with foresight of the user feedback and dynamically tracks the user’s state by capturing the subtle emotional expressions
  • adopts A∗-like lookahead heuristics to achieve dialogue strategy selection on a long planning
  • Experiments show that MultiESC significantly outperforms a set of state-of-the-art models

2、Model

2.1 overview

在这里插入图片描述
整个模型包含4个部分,左边是编码部分,右边是策略的预测以及解码部分。

在编码部分,第1部分就是对话历史上下文的建模,第2部分是对用户的状态进行建模。核心部分是在于如何进行一个好的策略预测,最后是回复生成部分。

对话历史建模就不详细说了,和之前的建模方式一样。

2.2 用户状态建模

在这里插入图片描述

主要是两部分,第1部分是输入的构造,第2部分是情感向量的构造。

2.2.1 输入的构造

在输入部分,作者首先用当前轮的上下文(x,y),并且根据用户的句子通过一个情感模型来得到反应当前的一个情感状态的句子(万一没有怎么办),如图中划线部分。并且用一个特殊的标志[EC]来将它跟上下文串联在一起(我的理解就是对上下文中情感信息做了一个增强),如图所示。此时输入的token embedding构造完毕。

2.2.2 情感向量构造:

作者借助 NRC VAD 字典来识别上下文当中的每一个词属于哪一个子空间(三个维度,V,A,D),这样每个词就会有一个向量状态,表示对于没有情感的词统一用一个额外的向量进行表示。

关于VAD的详细介绍如下:
在这里插入图片描述
最后通过一个transformer的编码器,把这些向量去进行编码。

2.3 策略打分&反馈计算

总的来说就是如何找到下面这样的一个打分函数,作者考虑用到A*搜索的启发策略。
在这里插入图片描述
该函数有两部分打分组成,第1部分打分表示的是根据过去的信息来得到当前的一个策略,第2部分的打分是如何考虑未来的信息评估用户的反馈(肯定要选择反馈好的策略)。

在这里插入图片描述
那第1部分的计算就很简单了,主要是根据对话的历史和用户状态计算策略的概率分布:
在这里插入图片描述

关于第2部分的计算,作者把未来的信息计算成——未来用户反馈得分的数学期望。

其中P表示的是策略的概率分布,f表示的是使用这个策略用户的情感打分。

因此就存在两个问题,P和f如何去进行计算?

因为要使用未来的信息,所以在这个地方最直接和最暴力的一种方法就是直接枚举所有未来可能的策略,但是这样的方法计算复杂度太大,因此作者在这里做了两个简化。

第1个是限定未来固定长度,只考虑一定的窗口。

第2个是说只考虑未来的Top-k,并不是所有的。

在这里插入图片描述
因此公式简化如下:

在这里插入图片描述

2.3.1 策略打分计算

关于未来策略得分的计算,肯定是每一时刻的策略得分乘起来,所以:

在这里插入图片描述

这个地方作者构造了一个策略序列生成器,简单来说就是如何根据对话历史H,用户的状态U和策略序列P来计算策略概率。

直接多头注意力即可:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

训练的时候直接用真实标签的NLL loss进行优化。

2.3.2 用户的反馈计算

关于用户的反馈计算作者是使用了一个注意力机制。那么query和key分别是什么呢?

首先定义策略向量矩阵,可以把这个理解为词向量。通过下面的公式来计算策略序列的信息。
在这里插入图片描述
Suppose the encoded hidden state corresponding to the [CLS] token is q s q_s qs.

因此,query即策略信息 q s q_s qs

然后将用户的状态信息U当做key,进行attention,加权求和得到 u f u_f uf:

在这里插入图片描述

最后再通过一个全连接层来计算打分,把这个打分当做用户的反馈。

损失函数直接用均方差损失来计算模型输出的打分和真实打分之间的差距。

2.4 解码部分

直接通过解码器融入最开始定义的策略进行回复生成,下图

在这里插入图片描述

3、Experiment

实验部分主要的是两个实验,第1个是回复生成的实验,第2个是策略预测的实验,那么这个也是给了这些相关的实验来证明模型的有效性。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
case study:

在这里插入图片描述

4、Discussion

这篇文章主要考虑的是做一个未来策略的安排,在其中用到了A*搜索算法,分别计算了基于历史,对当前作出的判断以及对未来的一个规划实验效果,充分的说明了模型的有效性。

比较想知道的一个点就是在进行多步未来探索的过程当中,因为作者是限制了未来的窗口以及top-k的一个效果,这些超参数对实验的影响程度以及复杂程度有多大。另外在对反馈计算的过程当中,作者是利用用户的状态信息策略的表示去进行attention的计算,这一个过程真正思考下来其实不是特别容易想明白。但是通过实验的指标可以提现出来,模型确实有了一个很大的提升,回头可以等代码放出来之后好好学习一下。

在这里插入图片描述

相关论文整理指路 -> 点这里

更多有趣MRC文章见:利用逆向思维的机器阅读理解。
相关文献
Bi-directional Cognitive Thinking Network for Machine Reading Comprehension 论文阅读
证据推理网络。
Hybrid Curriculum Learning for Emotion Recognition in Conversation
BERT用于文本分类方法

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

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

相关文章

【一】情感对话 Towards Emotional Support Dialog Systems 论文阅读

【一】情感支撑对话论文最近进展 Emotion Support Conversation 今天给大家介绍一下Towards Emotional Support Dialog Systems这篇由黄老师团队发表在2021 ACL的数据集。 相关论文综述整理指路 -> 点这里 主要分成以下几个部分进行介绍: 研究背景实例介绍ES…

ChatGPT接口返回代码高亮显示的实现逻辑

官方API:POST https://api.openai.com/v1/chat/completions 我们在使用openai提供的接口时,返回的数据如果包含代码,会发现代码是没有样式的,它们一般是用包含的一段文本。 如图: 怎么样才能做到和官方一样的美观呢&…

还在crud?快来学习架构设计啦---微服务下的依赖管理(maven篇)

文章目录 一、前言二、实战2.1 创建父工程统一依赖的版本管理2.2 创建公共使用的 common工程2.3 创建子工程并引入父工程的依赖以及公共工程2.4 搭建启动环境2.5 启动程序开始验证 三、总结 一、前言 2023年口罩放开的第一年,大多数人都是想着重新开始,…

ChatGPT 4.0 —— Code Interpreter

📎产品销售数据集.csv 选取以上的数据集作为输入,对Code Interpreter 进行测试 1.输入指定数据集,要求给出该数据集的概貌 2.请分析销售的总金额和其他变量的关系 Python Script: # Import required libraries import matplotlib.pyplot a…

500行JavaScript代码在前端根据数据生成CAD工程剖面图

前言 ​ 用数据生成CAD图,一般采用的ObjectArx对CAD二次开发完成。ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C为基础的面向对象的开发环境及应用程序接口,能访问和创建AutoCAD图形数据库。而由…

SolidWorks+thonny esp32 电磁控制,程序算法搞起来了,我的结构-仿真-电磁-控制-算法的学习之路

来个自我介绍,本科是微电子制造专业,隶属于机电工程学院,所以机械,电子,控制,流体,材料,结构这些基础都有,而且水平不低。工作了13年,主要干机械,…

有趣的技术探索分享小合集

Chatgpt 现世仅两个月,已经达到了 1 亿月活跃用户,不但影响了世界范围内的知识工作者,还在各行各业掀起了科技创新的热潮。在信息大爆炸、新科技不断涌出的现阶段,拥有面向未来的科技趋势的重要的洞察力,并由此改变所处…

chatgpt赋能python:Python画圆柱体教程:从入门到实践

Python画圆柱体教程:从入门到实践 如果你正在寻找一种简单有效的Python绘图方法,那么画圆柱体是一个不错的选择。本文将介绍如何使用Python绘制圆柱体的过程,包括使用的库、代码示例以及最终结果。 介绍 圆柱体是一种很常见的几何形状&…

Altium Designer导入AutoCAD图纸

简介:本文主要介绍的是将Altium Designer导入AutoCAD图纸的操作方法。 一直采用Altium Designer绘制PCB边框,可是如果PCB的尺寸边框十分复杂,或者遇到Altium Designer无法设计的图形,比如椭圆的时候,我们不得不借助第三…

谷歌一雪前耻,全新PaLM 2反超GPT-4,办公全家桶炸裂升级,Bard史诗进化

【新智元导读】新版PaLM 2超强进化,办公全家桶Workspace全面升级,Bard全面增强、所有人可用……可以看出,这届I/O大会,谷歌是真的憋出不少大招。 谷歌I/O 2023大会,仿佛又给谷歌的支持者们打了一针强心剂。 此前&…

阿里巴巴取消 CTO 一职;近半数微软员工担心被 AI 抢饭碗;Flutter 3.10 发布|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

Apple I 设计完成 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 4 月 11 日,在 1953 年的今天,安德鲁怀尔斯诞生。大约在 1637 年左右,法国学者费马提出了一个数学代数相关的定理&#xff0…

不跟风 ChatGPT,Google AI 2022 年都在忙什么?

作者 | Marian Croak 翻译&整理 | Carol 出品 | AI科技大本营 谷歌发布了2022年在AI领域取得的巨大突破,主要包括大语言模型 (LLM) 和文本生图两个领域。 相较多年前提出的“不作恶”口号,谷歌将今后发展人工智能的理念进一步提升至“负责任”…

Python基础语法 常见面试问题 技巧汇总

Python基础语法 & 常见面试问题 & 技巧汇总 文章目录 Python基础语法 & 常见面试问题 & 技巧汇总一、注释二、变量与常量三、输出1、格式化输出1)"~{}".format(a)2)%s,%.1f 2、转义字符 四、运算符1、幂运算 五、基本数据类型…

LeetCode刷题——贪心法(C/C++)

这里写目录标题 [中等]买卖股票的最佳时机 II[中等]移掉k位数字[中等]跳跃游戏[中等]跳跃游戏 II[中等]加油站[中等]划分字母区间[中等]去除重复字母[中等]无重叠区间[中等]用最少数量的箭引爆气球 [中等]买卖股票的最佳时机 II 原题链接题解 最简单的思路,效率不高…

云炬VB开发笔记 2可视化编程基础

源码下载(提取码:6666) 目录 1模拟小车行驶—— 控件基本属性和窗体​ 2-2简易文本编辑器—— 标签、 命令按钮、文本框​​​ 2-3模拟热气球 升空—— 图片和图像框​ 1模拟小车行驶—— 控件基本属性和窗体 2-2简易文本编辑器—— 标签、 命令按钮…

如何为现有IntelliJ IDEA项目创建GitHub存储库和本地Git存储库

IntelliJ IDEA是Java语言开发的集成环境,IntelliJ在业界被公认为优秀的Java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、 创新的GUI设计等方面的功能可以说是超常的。 点击下载IntelliJ IDEA最新试…

代码创造的欢乐世界-通用人工智能让儿童熟练应用编程

想要复杂的参考这一篇,使用云平台即可完成: 美美的圣诞树画出来-CoCube- 把圣诞树换成六一儿童节主题的就可以啦。 这一篇是使用chatgpt类应用,给出关键提示词,代码自动生成哦。 神十六发射成功,科技工作者博士学位…

统计检验分析 (本文在chatGPT辅助下完成)

1. 正态分布检验 2. 统计检验 t-test: 适用于样本数量较小(通常小于 30)的正态分布数据,用于比较两个样本的均值是否有显著差异。 Paired t-test: 确定某个总体的成对测量值之间的差异是否为 0 Two-sample t-test (independent t-test): 确…

sql 性能优化基于explain调优

文章目录 Explain分析?问题描述解决方案 Explain分析? 关于Explain具体可以干什么,有哪些优缺点,本博主的文章有写到,这是链接地址: 点击这里查看. 下面来说下Explain在项目实战中,如何去进行优化。 问题…