AAMAS2023|三思而后行:一个类人的用于情感对话生成的两阶段对话代理

本文主要是介绍AAMAS2023|三思而后行:一个类人的用于情感对话生成的两阶段对话代理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

175800be0ae34e3041167d1ab4ca7b32.png

来自:社媒派SMP

进NLP群—>加入NLP交流群

2b64a33032c4e3d328268bcda1966aa7.png

题目:Think Twice: A Human-like Two-stage Conversational Agent for Emotional Response Generation

作者:钱宇珊(天津大学)、王博(天津大学)、马尚朝(天津大学)、吴斌(起硕智能)、张硕(起硕智能)、赵东明(中国移动)、黄堃(中国移动)、侯越先(天津大学)

会议:The 22nd International Conference on Autonomous Agents and Multiagent Systems. (AAMAS 2023)

论文链接:http://arxiv.org/abs/2301.04907

c0a2a6b27cc2ab0d42687c971c0e87bc.png

ed78500a0ff21e4fd85f57789a9c021c.gif

背景

7383297ca5dda7c52c88cb4316637ccc.gif

ce8eb1a8e43c48a5dbcac82326d70846.gif

在开放域对话场景中,融入一些特定因素(如个性、知识、情感等)可以有效提升对话质量。情感对话旨在人机对话中生成能够感知和表达适当情感的回复,大量研究表明包含情感的对话在人机对话系统中可以显著提升用户的满意程度。当前的情感对话方法主要基于神经网络模型,通过端到端的方式,在对话回复中共同建模语义和情感。然而,目前的端到端情感对话模型依旧面临几个挑战:首先,高质量大规模的情感标注对话语料很难获得,人工标注的成本很高。其次,端到端的模型,在解码过程中由于情感向量的约束,会影响回复生成的语义和范围,加剧了安全回复问题。最后,不少模型生成的回复存在相应情感状态表达不明显或者实际情感状态不符合预期的问题,输入的情感信号往往在复杂的学习过程中被削弱,概括地说,是对情感的可控性不强。

bc09209d4afb2fe14db1fecd0ac06940.png

为了解决上述问题,本文参考人类真实对话行为,提出了一种生成情感回复的策略。当人类在对话中进行回复时,同时处理情感和语义不一定能确保满意的结果,产生合适的情感回复的方法之一是在确定回复的语义后,再去单独考虑情感的选择,即,对情感的“三思”。如上图所示,每个回复首先有一个适当的语义来回应上文语境。然后,通过对上文语境的再次确认,从情感层面调整回复。调整回复时考虑采用“Rewrite(改写)”和“Add(增写)”两种方式,对同伴的情感状态做出回应。具体来说,首先在没有情感标注的对话语料上训练生成符合上文语义的原型回复。然后,在第二阶段利用一个具有共情假设的可控情感精炼器修改原型回复。在DailyDialog和EmpatheticDialogues数据集上的实验结果表明,本文所提出的对话模型在情感生成方面优于基线模型,并在自动和人工评估中显示出保持语义性能的能力。本文所提出的对话模型的架构如下图所示。

21312301bdba63f574104ed1b70f0f43.png

524effaa5248d110246b07af9723ac29.gif

对话模型总体框架

1d28d4ebc1268c114185de5b856c89b8.gif

5cff675552b61047c11de0c2f8480070.gif

对话模型由三个模块构成:1)原型语句生成器。该模块将上文语境作为输入,生成一个原型回复。2)对话情感检测器。该模块对上文语境作为输入进行情感分析,得到情感状态集,用来指导最终回复的情感。3)可控情感精炼器。该模块根据情感状态集对原型回复进行精炼,生成一定程度上兼具语义和情感的最终回复。

原型语句生成器 该模块使用具有大规模参数量、可微调的预训练模型作为原型语句生成器,以此来生成内容相关,表达丰富,与上文语境一致的回复。具体而言,本文选择了12-to-48层DialoGPT作为原型语句生成器的基础模型,将上文中的所有语句以“<|endoftext|>”拼接成一个长句子作为整体输入,目标原型语句的条件分布是一系列条件概率的乘积:

对话情感检测器 作为共情的一个直观假设,倾听者倾向于以一种承认说话者感受的方式做出回应,通过呼应说话者的情感,达到一定程度上的共情。对话情感检测器的目标是识别对话上文语境的情感状态,利用上述提到的日常对话中常见的共情原则,根据识别出的上文语境中的情感状态分布将期待的情感传给可控情感精炼器:

 , 

其中,  是每个对话上文语境的情感状态集。  表示情感状态集中每类情感属于积极情感状态的个数,  表示情感状态集中每类情感属于消极情感状态的个数。

对话情感检测器识别对话上文情感的部分主要基于DialogueGCN,将对话中每个语句作为图网络的结点,语句结点与语句结点之间通过有向边连接,边的方向根据语句的序列先后决定。这些有向边用于建模说话者以前说过的话和他人说过的话对说话者自己的情感影响。模型利用Glove编码和CNN抽取语句的特征,得到每个语句  的编码,也就是每个结点的向量。每个语句之前有b句话,之后有a句话,代表每句话的结点和a+b+1个结点(包括自身)有边,每条边的权重  由结点之间的关系程度得到:

最后,将来自序列编码器sq和说话者编码器sp的编码拼接起来,结合基于相似性的注意力机制获得语句结点的最终编码。然后用全连接网络进行多个情感类别(happy, sad, neutral, angry, surprise, disgust, and fear)的分类:

关于该模块的更多细节请参考论文。

可控情感精炼器 该模块将原型回复和期待的情感作为输入,生成最终回复。需要学习的目标可定义为:

可控情感精炼器由两个模块组成,“改写”模块和“增写”模块。“改写”模块通过将句子中的原始情感符号替换为表示目标情感的符号来转换原型回复的情感属性。“增写”模块通过添加额外的句子来调整情感状态。

具体来说,“改写”模块由两个部分组成。第一个部分是删除部分,它用来确定输入中的每个token是否为情感属性词,学习输入中的情感部分和非情感部分,并删除情感部分。采用Transformer的注意力机制提取注意力得分作为每个token的权重:

第二部分是生成部分,生成部分的输入是原型回复和目标情感。输出的是一个符合目标情感的句子。生成部分采用Transformer结构,在不需要并行语料的情况下,生成部分的训练目标是最小化下列重构损失:

“增写”模块在PPLM的工作基础上构建,通过添加具有指定情感的额外句子来改变原始句子的情感极性。借助贝叶斯规则,可以使用模型  和模型  来表示模型  :

选择器用于确定是来自“改写”模块还是“增写”模块的回复作为最终输出。选择器使用GLEU与原型回复进行比较作为判断回复总体效果的依据。选择器会选择GLEU分数较高的回复作为最终回复。

关于该模块的更多细节请参考论文。

0c96153e41b1de4989855d160f345fc3.gif

实验结果

feb981266137d63308ac861206b85811.gif

94d6297487dba56b031ceb79c7824707.gif

本文使用DailyDialog和EmpatheticDialogues数据集进行实验。在评价指标方面,自动评价采用了BLEU、Diversity和Emotion Accuracy(Acc),人工评价采用了Content(Con)、Emotion(Emo)、Emotion-intensity(Int)和Fluency(Flu),具体指标定义请参考原论文。

基线模型选用了通用模型、情感对话模型和共情对话模型。DailyDialog和EmpatheticDialogues数据集的实验结果分别显示在表3和表4中。可以观察到,在情感生成的性能方面,本文所提出的对话模型在两个数据集中的自动评估指标Acc和人类评估指标Emo方面都优于所比较的基线模型,表明在情感生成方面的性能表现优异。此外,本文提出的对话模型在DailyDialog和EmpatheticDialogues数据集的Int指标上分别取得了最优和次优结果,也证明了在表达情感强度方面的优势。在语义生成性能方面,对话模型在BLEU-4和Con指标上达到了最高水平,在Dist-1和Dist-2指标上得分也适中。这些结果证实了本文提出的对话模型在显著改善情感表达的同时保持了适当语义。

8b93fce2ca239ac8550df8194d5d7d75.png

98d31c42d79b98a1db46f7d65e44540b.png

本文也展示了消融研究的实验结果,如表5所示,可以观察到删除Add模块或Rewrite模块都会导致大部分指标下降。这表明,结合“改写”和“增写”策略符合人类语言显式和隐式的表达特点,有助于产生合适的回复。此外,对话情感检测器在情感回复生成中也发挥着重要作用,它优于将上文连接成长句或仅识别单个语句。

da3f03fe6748e2344f186ca20a93d113.png

此外,对于抽样的100个人类评估样本,本文还比较了原型回复的情感和精炼后的回复的情感在所提出的对话模型中的正确性和显著性。如下图所示,左栏和右栏分别表示原型回复和精炼后的回复。红色和蓝色列分别表示正确(即与上文情感分布一致)和错误的情感。列的长度表明了情感的重要性。结果表明,精炼后的回复提高了原型回复中情感的正确性和显著性。

7d6ff8e26bb947aa7e4cc104fc44eb24.png

本文同时也给出了实验的样例分析,如下表所示,展示了从所有七个模型中抽取的一些生成回复的案例,相应的上文没有出现在训练集中。从中可以观察到,其他基线模型生成的回复具有情感表达,但语义层面上并不具有特异性。相比之下,本文提出的对话模型生成的回复不仅继承了上文语境的语义,同时也包含了丰富而恰当的情感。如EmpatheticDialogues数据集上的案例1,对话模型生成的回复既表达了对将问题报告给经理的方法的不确定的语义,同时也以委婉的方式表达了合适的情感。具体的实验分析和相关细节可参考论文。

2a66a9267c7f35e7635f5264a1ecde65.png


发布招聘信息or进NLP群—>加入NLP交流群

这篇关于AAMAS2023|三思而后行:一个类人的用于情感对话生成的两阶段对话代理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

nginx生成自签名SSL证书配置HTTPS的实现

《nginx生成自签名SSL证书配置HTTPS的实现》本文主要介绍在Nginx中生成自签名SSL证书并配置HTTPS,包括安装Nginx、创建证书、配置证书以及测试访问,具有一定的参考价值,感兴趣的可... 目录一、安装nginx二、创建证书三、配置证书并验证四、测试一、安装nginxnginx必须有"-

Java实战之利用POI生成Excel图表

《Java实战之利用POI生成Excel图表》ApachePOI是Java生态中处理Office文档的核心工具,这篇文章主要为大家详细介绍了如何在Excel中创建折线图,柱状图,饼图等常见图表,需要的... 目录一、环境配置与依赖管理二、数据源准备与工作表构建三、图表生成核心步骤1. 折线图(Line Ch

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log