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

相关文章

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

python如何生成指定文件大小

《python如何生成指定文件大小》:本文主要介绍python如何生成指定文件大小的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python生成指定文件大小方法一(速度最快)方法二(中等速度)方法三(生成可读文本文件–较慢)方法四(使用内存映射高效生成

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

MybatisX快速生成增删改查的方法示例

《MybatisX快速生成增删改查的方法示例》MybatisX是基于IDEA的MyBatis/MyBatis-Plus开发插件,本文主要介绍了MybatisX快速生成增删改查的方法示例,文中通过示例代... 目录1 安装2 基本功能2.1 XML跳转2.2 代码生成2.2.1 生成.xml中的sql语句头2

使用Python自动化生成PPT并结合LLM生成内容的代码解析

《使用Python自动化生成PPT并结合LLM生成内容的代码解析》PowerPoint是常用的文档工具,但手动设计和排版耗时耗力,本文将展示如何通过Python自动化提取PPT样式并生成新PPT,同时... 目录核心代码解析1. 提取 PPT 样式到 jsON关键步骤:代码片段:2. 应用 JSON 样式到

SpringBoot实现二维码生成的详细步骤与完整代码

《SpringBoot实现二维码生成的详细步骤与完整代码》如今,二维码的应用场景非常广泛,从支付到信息分享,二维码都扮演着重要角色,SpringBoot是一个非常流行的Java基于Spring框架的微... 目录一、环境搭建二、创建 Spring Boot 项目三、引入二维码生成依赖四、编写二维码生成代码五

MySQL中的两阶段提交详解(2PC)

《MySQL中的两阶段提交详解(2PC)》:本文主要介绍MySQL中的两阶段提交(2PC),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录引言两阶段提交过程sync_binlog配置innodb_flush_log_at_trx_commit配置总结引言在Inn

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

PyQt5+Python-docx实现一键生成测试报告

《PyQt5+Python-docx实现一键生成测试报告》作为一名测试工程师,你是否经历过手动填写测试报告的痛苦,本文将用Python的PyQt5和python-docx库,打造一款测试报告一键生成工... 目录引言工具功能亮点工具设计思路1. 界面设计:PyQt5实现数据输入2. 文档生成:python-

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注