【论文阅读】Modeling Multi-turn Conversation with Deep Utterance Aggregation

本文主要是介绍【论文阅读】Modeling Multi-turn Conversation with Deep Utterance Aggregation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一、简介
  • 二、方法
    • 1.任务
    • 2. 模型架构
      • Utterance Representation
      • Turns-aware Aggregation
      • Matching Attention Flow
      • Response Matching
      • Attentive Turns Aggregation
  • 三、实验
    • 1. 数据集
    • 2. 评价指标
    • 3. 实验设置
    • 4. 实验结果
  • 四、结果分析
    • 1. 实验结果分析
    • 2. 注意力可视化
    • 3. 消融实验.
    • 4. 错误分析


在这里插入图片描述
DUA模型: 使用深度话语聚合建模多轮对话

paper地址:https://arxiv.org/pdf/1806.09102v2.pdf

代码地址:https://github.com/cooelf/DeepUtteranceAggregation


一、简介

基于检索的多轮对话回复选择的相关工作只是简单地将对话话语串联起来,忽略了先前话语之间的交互作用。

本文使用提出的DUA深度话语聚合模型将先前的话语转化为上下文,以形成细粒度的上下文表示,然后引入自匹配注意来传递每句话中的重要信息,对每个精细化的话语进行匹配,通过注意转向聚合得到最终的匹配分数。

实验结果表明,在三个多回合对话基准上,包括一个新引入的电子商务对话语料库,本模型优于当时现有的方法。


二、方法

1.任务

多轮对话回复检索任务中的每个会话可以描述为一个< C, R, Y >的三元组。 C = U 1 , … , U t C = {U_1,…, U_t} C=U1Ut是会话上下文,{Uk}表示第k个话语。R是会话的回复,Y属于{0,1},其中 Y i = 1 Y_i= 1 Yi=1表示回复是适当的,否则 Y i = 0 Y_i= 0 Yi=0

目标:在< C, R, Y >上建立一个鉴别器 F ( ⋅ , ⋅ ) F(·, ·) F(,)。对于每个上下文回复对{C, R},$ F(C, R)$度量对的匹配分数。

2. 模型架构

在这里插入图片描述
DUA中有五个模块:

  1. Utterance Representation,每一个话语或回复被输入到第一个模块,形成一个话语或回复嵌入。
  2. Turns-aware Aggregation,第二模块将最后一句话和前面的一句话结合起来。
  3. Matching Attention Flow,第三个模块过滤冗余信息,挖掘话语和回复中的显著特征。
  4. Response Matching,第四个模块在单词和话语两级匹配回复和每个话语,为卷积神经网络(CNN)编码成匹配向量。
  5. Attentive Turns Aggregation,在最后一个模块中,将匹配向量按照上下文中的话语的时间顺序传递给GRU,得到最终的匹配得分{U, R}。

优势:

  1. 在对话中最重要的最后一句话在前一句话中被特别融合,从而使最后一句话中的关键指导信息在语义上更加切题。
  2. 在每句话语中,突出的信息都能被突出,而冗余的部分在一定程度上被忽略,这两者都能有效地指导后续的回复匹配。
  3. 第三,经过细心的转向聚合后,再次对会话中的连接进行累积,计算匹配分数。

Utterance Representation

给定上下文回复对{C, R},其上下文被分割为话语,C = {U1,…, Ut},一个查找表用于将每个单词映射到一个低维向量。 n u n_u nu n r n_r nr表示第k个话语和回复的长度, U k U_k Uk R R R可以表示为 U k = [ u 1 , … , u n u ] Uk= [u_1,…,u_{n_u}] Uk=[u1,,unu], R = [ r 1 , … , r n r ] R = [r1,…,r_{n_r}] R=[r1,,rnr],其中ui, ri是话语和回复中的第i个单词。

用GRU沿着单词序列 U k U_k Uk R R R传递信息,对每个话语和回复进行编码,令 H k = [ h 1 , … , h n ] H_k= [h_1,…, h_n] Hk=[h1hn]为输入序列的隐藏状态
在这里插入图片描述

Turns-aware Aggregation

以上述方式对话语序列和回复进行编码的缺点是,会话中的所有话语都得到了公平的处理,未能挖掘出最后一句话语与前一句话语之间的联系。为此,提出了一种第一阶段的回合感知聚合机制。

S = [ S 1 , … , S t , S r ] S = [S_1,…, S_t, S_r] S=[S1St,Sr]表示话语和回复的表征。假设 F = [ F 1 , … , F t , F r ] F = [F_1,…, F_t, F_r] F=[F1Ft,Fr]是每个 S j ∈ S S_j∈S SjS与最后一个话语 S t S_t St的融合,对于每 个 ∀ j ∈ 1 , … , r 个∀j∈{1,…, r} j1r F j ∈ F F_j∈F FjF
在这里插入图片描述
这里采用了一个简单的连接策略(串联),通过聚合得到了回合感知的表示F。

Matching Attention Flow

经过 turns-aware aggregation后,前一个话语和回复的表征由最后一个话语进行细化。然而,这些序列相当长且冗余,这使得提取关键信息变得困难。为了解决这个问题,本文采用了一种自匹配的注意机制,直接将融合的表征与自身进行匹配,动态地从输入序列中收集信息,并过滤冗余信息。输入 ˆ F = [ f 1 , … , f n ] ∈ F ˆF = [f_1,…, f_n]∈F ˆF=[f1fn]F,输出 P = [ p 1 , … p n ] P = [p_1,…p_n] P=[p1pn]
在这里插入图片描述

ct就是自匹配注意力的结果在这里插入图片描述

其中 v T v^T vT是随机初始化并联合训练的上下文矩阵

自匹配注意通过融合前一段和后一段话语,根据当前词和整个话语表征,从话语中定位重要部分

Response Matching

使用词语级和话语级表示构建两个匹配矩阵,并使用CNN从矩阵中获取显著匹配信息。假设我们在单词级和话语级对每个话语-回复对有匹配矩阵m1和m2。然后∀k, Uk∈U,∀(i, j)分别定义m1和m2的第(i, j)个元素:
在这里插入图片描述
其中 p u i p_{u_i} pui p r j p_{r_j} prj分别表示匹配注意流后的话语输出和回复输出。 A ∈ R c × c A∈R^{c×c} ARc×c是一个线性变换矩阵。

对于每一个表述,首先对M1和M2进行卷积运算,然后进行最大池化运算。卷积层用于提取和组合相邻单词的局部特征,接下来的最大池化层形成当前单词的表示。对于卷积运算,利用了一组可变大小l∗l和偏置b的滤波器矩阵K。该滤波器将单词矩阵M1和M2转换为另外两个矩阵 M 1 c M_{1c} M1c M 2 c M_{2c} M2c。∀i, k∈(1,2),变换矩阵 M k c M_{kc} Mkc定义为:
在这里插入图片描述
其中I和j分别指向第i行第j列的元素。接下来,采用最大池化操作,将池化后的两个矩阵扁平化并连接,得到会话中第p个话语的表示mp:
在这里插入图片描述
其中flatten()为扁平化运算,⊕为级联运算。

Attentive Turns Aggregation

为了对最后阶段的attentive turns 注意转向匹配信息进行聚合,CNN的输出M = [m1,…, mn],给GRU得到Hm= [hm1,…]定义为:
在这里插入图片描述
v f = L ( H m ) v_f= L(H_m) vf=L(Hm)为注意操作
在这里插入图片描述

在这里插入图片描述
在训练阶段,根据交叉熵损失更新模型参数。

需要注意的是,Turns-aware Aggregation 回合意识聚合和Attentive Turns Aggregation注意回合聚合可以被视为话语互动的两个阶段(我们将这两个过程称为“语境融合”)。.前者是在话语表征后对更丰富的轮觉信息的简单组合,后者是在注意学习后对每个话语本身和回复的匹配状态进行聚合


三、实验

1. 数据集

  • Ubuntu Dialogue Corpus

  • Douban Conversation Corpus

  • E-commerce Dialogue Corpus

2. 评价指标

  • Rn@k,n个候选项中k处的查全率

  • MAP ,Mean Average Precision,平均准确率。

例如,假设有两个对话,对话1有4个相关回复,对话2有5个相关回复。某系统对于对话1检索出4个相关回复,其rank分别为1, 2, 4, 7;对于对话2检索出3个相关回复,其rank分别为1,3,5。对于对话1,平均准确率为(1/1+2/2+3/4+4/7)/4=0.83。对于对话2,平均准确率为(1/1+2/3+3/5+0+0)/5=0.45。则MAP= (0.83+0.45)/2=0.64。

  • MRR ,Mean Reciprocal Rank,把标准答案在被评价系统给出结果中的排序取倒数作为它的准确度,再对所有的问题取平均。

  • P@1,Precision-at-one

3. 实验设置

  • 将最多的话语数限定为10个,每个话语最多包含50个单词。在必要时应用截断和零填充。

  • 对训练数据进行word embedding 预训练,维数为200

  • 模型是使用Theano实现的,使用ADAM进行优化

  • batch size为200,初始学习率为0.001。卷积和池化的窗口大小为(3,3),GRU的隐藏单位数设置为200。

  • 所有的模型都运行在单个GPU (GeForce GTX 1080ti)上

  • 运行所有的模型直到5个epoch,并选择在验证中获得最佳结果的模型

4. 实验结果

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


四、结果分析

1. 实验结果分析

  • 以前连接话语的单个匹配模型,表现得比DUA差得多,显示话语关系的重要性和简单地将话语连接在一起并不是多轮对话建模的合适解决方案。

  • DUA与当前最先进的多轮回复匹配模型SMN相比取得了很大的进步(ECD 语料库上的 R10@1 为 4.8%),SMN匹配每个话语和回复,无需轮流感知聚合和匹配注意力流,这些比较表明本文的上下文组合方法的有效性,DUA可以很好地模仿向客户服务的真实对话,而不仅仅是擅长闲聊

  • 将ECD测试集分为5类:咨询、物流、推荐、谈判、闲聊。表4显示了统计数据和模型结果。闲聊和物流的类型往往很容易处理。建议、咨询和谈判往往涉及到不同的话题(如相关商品)和意图,相对来说更难回复,这使得本文的语料库比以往的聊天或问答语料库更具挑战性

2. 注意力可视化

在这里插入图片描述

从ECD数据的验证集来看,图3分别显示了一个重要话语(在回复匹配组件中权重很高)和回复的词权值。我们看到模型可以准确的从话语中提炼出关键,{下次消费,再发,一包杏仁,送你,一些坚果,回款},并从回复{之前订单太多,真的很抱歉,别生气,你的礼物}。当用户抱怨缺少礼物、传递速度慢时,我们的模型能够在自匹配后区分用户的意图,并根据所呈现话语的症结本质上寻找合适的回应。这说明我们的模型在匹配注意流后的关键点选择上是有效的,可以引导回复匹配层收集更多的相关片段。

3. 消融实验.

加粗样式

  • 删除Matching Attention Flow匹配注意流时,观察到最大的下降(6.9% R10@1),这表明绘制每个话语的关键很重要

  • 删除Context Fusion 上下文融合,包括第一回合感知聚合(第一阶段聚合)和替换最后一阶段聚合(最后阶段聚合),用多层感知器进行匹配积累时,性能也会显著下降(4.8% R10@1),这表明话语关系很重要

  • 在没有Context Fusion 上下文融合与Matching Attention Flow匹配注意流机制的情况下,该模型的表现最差,验证了该机制确实从根本上改善了上下文表示

4. 错误分析

  • Multiple intentions多意图,在电子商务会话中,用户极有可能在单个消息中表达不同的意图,这是除了不同商品之间的会话类型不同之外,有别于以往的多轮会话语料库的另一大区别。例如:{用户:那护肤产品的包装呢?顺便问一下,请问是哪个快递公司负责发货,我能收到货物的时间是多久?} 这将严重混淆模型,即给定的响应可能优先于某个方面或另一个方面。

  • Topic errors话题错误,模型根据与上下文的语义相似度检索响应,没有特别注意会话主题,如当前讨论的商品。当对话涉及到几种商品时,例如:{用户:坚果怎么样?机器人:坚果不错。用户:好吧,那粽子呢?},模型可能会给出与上下文更相关的坚果的响应,而不是粽子。

  • Multiple suitable responses多个正确回复,由于精确匹配的严格限制,有多个正确回复时某些正确回复可能会在评估是判定为错误


参考:IR的评价指标-MAP,NDCG和MRR


有帮助的话可以点个赞喔~
在这里插入图片描述

这篇关于【论文阅读】Modeling Multi-turn Conversation with Deep Utterance Aggregation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

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

AI hospital 论文Idea

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

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

论文翻译: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

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

OmniGlue论文详解(特征匹配)

OmniGlue论文详解(特征匹配) 摘要1. 引言2. 相关工作2.1. 广义局部特征匹配2.2. 稀疏可学习匹配2.3. 半稠密可学习匹配2.4. 与其他图像表示匹配 3. OmniGlue3.1. 模型概述3.2. OmniGlue 细节3.2.1. 特征提取3.2.2. 利用DINOv2构建图形。3.2.3. 信息传播与新的指导3.2.4. 匹配层和损失函数3.2.5. 与Super

软件架构模式:5 分钟阅读

原文: https://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2 软件架构模式:5 分钟阅读 当有人潜入软件工程世界时,有一天他需要学习软件架构模式的基础知识。当我刚接触编码时,我不知道从哪里获得简要介绍现有架构模式的资源,这样它就不会太详细和混乱,而是非常抽象和易