《Modeling Multi-turn Conversation with Deep Utterance Aggregation》阅读笔记

论文原文:https://arxiv.org/pdf/1806.09102.pdf

刚看到小夕的这篇总结个人感觉讲的很好很容易理解,里面涉及了4篇论文串烧,按照时间讲了算法的发展,文风也蛮有趣(有点嗲,哈哈~)

上海交通大学等2018年发表的文章,主要涉及基于检索式的多伦问答模型,提出了一个深度对话整合模型(DUA),是针对多轮对话将过去会话直接拼接作为上下文信息存在噪声和冗余等问题,DUA从对话和回复中采用attention机制挖掘关键信息,凸显关键信息忽略冗余信息,最终获得utterances和response的匹配得分。本文还发布了一个电子商务对话语料库ECD,涉及到商品咨询、物流快递、推荐、谈判、聊天等,本文的数据集及代码。结构如下可分为5个模块:《Modeling Multi-turn Conversation with Deep Utterance Aggregation》阅读笔记_第1张图片

DUA的优点:

  • 最后一轮对话很好的与前面对话结合,其最主要信息可以更好的用语义相关的方法来解决

  • 每轮会话可以凸显关键信息,从一定程度上忽略冗余信息

  • 计算最终匹配得分的时候充分考虑各轮对话之间的关系

Utterance Representation

 采用GRU模型将每个utterance和候选response进行embedding。

Turns-aware Aggregation

Utterance Representation是将utterance同等看待没有考虑the last utterance和之前对话之间的关系,该模块主要是将最后一个utterance(the last utterance)与context中的其他utterance以及候选response进行融合,论文中是直接将utterances和response的embedding串联起来,得到表征F。
image.png
image.png

Matching Attention Flow

该模块是对上一模块turns-aware的表征信息F信息进行处理,采用一个self-matching attention mechanism将冗余信息进行过滤,挖掘utterances和response中的显著特征,即通过一个attention机制的GRU进一步做表征的交互与融合。
image.png
image.png

 [·,·] 是两个向量串联在一起 ,Ct是self-matching attention的输出
《Modeling Multi-turn Conversation with Deep Utterance Aggregation》阅读笔记_第2张图片

Response Matching

第四模块在单词和会话级别上对 response和each utterance进行匹配,经过CNN形成匹配向量。

这里从两个粒度进行匹配:

  • 词粒度:u和r都是相应utterance和response中的某一个词,通过下式可以得到这两个句子相应位置上的匹配度。最后这些各个位置上词粒度的匹配度可以形成一个shape为(utterance长度,response长度)的矩阵M1
    image.png
  • 句子粒度:P是上一个模块中得到的utterance和response中各个位置上的表征,同样可以得到一个shape为(utterance长度,response长度)的矩阵M2

尔后分别在这两个矩阵上进行CNN卷积操作,得到卷积之后的表征。
image.png

最后进行max-pooling和flatten之后concatenation。

image.png

Attentive Turns Aggregation

将匹配向量按上下文话语的时间顺序传递GRU,得到utterance和response的最终匹配得分,分为三步:

  • 第一步:先通过一个GRU;
    image.png
  • 第二步:attention机制;
    《Modeling Multi-turn Conversation with Deep Utterance Aggregation》阅读笔记_第3张图片
  • 第三步:加一个softmax,得到匹配度。

image.png

 

 

参考:

巷里野猫

https://www.paperweekly.site/papers/2352

https://zhuanlan.zhihu.com/p/44539292

你可能感兴趣的:(论文阅读笔记,检索式问答,多伦对话,注意力机制)