前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SFFAI 分享 | 多轮对话中的上下文信息建模 【附PPT与视频资料】

SFFAI 分享 | 多轮对话中的上下文信息建模 【附PPT与视频资料】

作者头像
马上科普尚尚
发布2020-05-13 17:31:06
2.3K0
发布2020-05-13 17:31:06
举报

作者简介

申磊,中国科学院计算技术研究所智能信息处理重点实验室17级直博生。目前研究兴趣为自然语言处理和对话系统。参与发表EMNLP论文一篇,以第一作者身份发表ACL2019论文。

导读


开放域对话系统主要包括单轮对话和多轮对话这两种设定。相较于单轮对话,多轮对话更加符合实际应用场景,即需要对历史信息进行建模,利用其中的相关内容,从而生成有效的回复。对话历史信息有如下的特点:1)词到句,句到片段的层次性结构;2)很多冗余内容与当前回复无关;3)词或句存在远距离依赖关系;4)内容的变换或语义关系的转移。基于以上特点,近期不少的研究工作相继展开。本次分享将带大家梳理和回顾在多轮对话历史信息建模和回复生成方面的主要工作。

正文


在开放域对话系统的研究中,主要有单轮(single-turn)对话和多轮(multi-turn)对话这两种设定。对于生成回复的任务而言,单轮对话的输入是一条query,而多轮对话的输入是context/history以及query。目前,多轮对话的研究收获了更高的关注度,一方面是因为现实生活中的对话通常是多轮的,例如聊天或者客服咨询等;另一方面是多轮对话中包括了更多的信息,同时需要我们考虑更多的约束条件和情况,所以更具有研究挑战性。

一般而言,context/history是具有层次化结构的文本:一个context由不同的会话语句(utterance)组成,一个会话语句又由不同的词组成。不同的句子和词语在context建模中具有不同的重要性,图1展示了一个相关的例子。

图1 context/history的层次化结构以及不同词语和句子重要程度的表示(左侧的红色代表句子的重要程度,右侧的蓝色代表词语的重要程度,颜色越深越重要)

并且,在多数情况下,许多context句子的内容是和当前回复无关的,而那些相关的句子或者词语和回复之间可能存在远距离依赖的关系,如图2所示。

图2 回复和其相关context信息(句子级别)的依赖关系(红色为相关的部分,黑色为冗余的部分)

基于以上特点,不少研究者展开了一系列的工作。最早被提出的也是现在被广泛应用的一个模型是Hierarchical Recurrent Encoder-Decoder (HRED) 。这个模型中有两种encoder,分别是utterance encoder和context encoder。前者得到每个utterance对应的表示,后者将目前为止得到的句子表示再进行编码,用来建模inter-utterance的关系,然后送入decoder中。

图3 HRED模型图

为了能生成内容更丰富且和context更一致的回复,Serban等人将不确定性 (uncertainty or variance)注入到了句子间,提出了Variational HRED (VHRED)模型。在context encoder层引入了隐变量

,用来表示句子间不确定性的来源,例如主题,说话人的目标和说话人的风格等。这个模型将HRED和VAE的思想结合了起来。

图4 VHRED模型图

不论是HRED还是VHRED,在inter-utterance关系建模的时候,选择的是RNN模型,即把utterance encoder得到的句子表示送入context encoder中,利用RNN得到context的表示。为了能显式地找到跟当前回复相关的内容,Zhang等人提出了利用Static Attention和Dynamic Attention机制的模型。在利用Static Attention机制时,假设回复和query是最相关的,于是在context包含的句子中寻找和query最相似的句子,通过attention机制对句子表示进行加权;在利用Dynamic Attention机制时,将传统attention机制中的memory内容换成了句子的表示,从而在每个解码步的时候动态地去对句子的表示加权。

图5 Context-Sensitive Generation Model with Static/Dynamic Attention

上边的方法在建模context时仅考虑了句子级别的内容,为了能够考虑到句子和词语这两种层次化信息在context中的不同重要性,Xing等人提出了Hierarchical Recurrent Attention Network (HRAN)。先通过双向RNN和词级别的attention机制得到句子的表示,之后利用反向的RNN和句子级别的attention机制得到context的表示。在每个解码步的时候同时考虑词级别attention和句子级别attention的结果。

图6 HRAN模型图

接下来提到的两个模型是在VHRED上进行的改进。为了考虑当前回复和相关context信息的远距离依赖关系,Chen等人提出了Hierarchical Variational Memory Network (HVMN),将memory networks引入到了VHRED中。Memory cells中存储的信息利用

进行读取,同时也会随着context encoder的向前推进而不断更新。通过将隐变量和memory networks结合起来,实现了对相关context信息的随意访问。

图7 HVMN模型图

由于VHRED是将VAE和自回归的模型(HRED)结合了起来,使得VHRED面临了隐变量退化(degeneration)的问题。也就是说,VHRED中的隐变量很有可能将不会发挥应有的作用,从而使得VHRED退化成一个普通的HRED模型。为了缓解这个问题,Park等人提出了Variational Hierarchical Conversation RNN (VHCR)模型。该模型使用了两层隐变量:在之前句级别的隐变量之上引入了对话级别的隐变量,避免在训练过程中由于回复的稀疏性而导致的过拟合问题。同时使用了utterance drop的方式去削弱模型的自回归性,使得隐变量可以更好地发挥作用。

图8 VHCR的图模型结构

HVMN通过引入memory networks来建模回复和相关context信息的长距离依赖关系。ReCoSa利用Self-Attention机制来实现这个目标。首先通过RNN得到句向量,接着将Transformer Encoder中的K,Q,V从词向量换成句向量,利用Context Self-Attention得到了context的表示,即经过Self-Attention机制后得到的句向量矩阵。

图9 ReCoSa模型图

除了以上提到的特点外,多轮对话中往往还有一个特点:内容的变化或语义关系的转移,即在多轮对话中存在复杂的语义依赖关系,这种关系并不表现在句子之间的词对齐上,而是在更高的语义层面上的匹配。在图10的例子中,说话者A和B围绕着B的现状展开了对话。起初,他们讨论的是B的位置,在最后两句话中,他们在考虑让B回来的方式。A提到了“雨伞”(让B打伞返回),而B则希望A“接他/她回去”。在query和response中,没有任何词级别的对齐关系。

图10 一个多轮对话中语义依赖关系的例子

这个例子体现了我们日常可以观察到的语言学现象:一个对话是在一个背景下发生的,在对话的进行过程中会存在话题的转换。在这一系列句子中,query和response经常是最相关的,它们在话题上保持了一致,同时在表达的语义内容上具有差异。为了建模这样的一种关系,我们提出了Conversational Semantic Relationship RNN (CSRR)模型。该模型将HRED和层次化的隐变量结合起来,用于显式地建模多轮对话中的语义依赖关系。

图11 CSRR的图模型结构

其中,

用于控制整个对话的背景,

表示query和response之间话题上的一致性,

则分别代表query和response各自在语义内容上的差异性。

首先是context的表示:

隐变量

的先后验分别是(训练的时候,

后验中的条件是

,在预测阶段,其条件是

):

其次是query-response关系的建模,相应的先后验分别是:

训练目标如下:

该训练目标包括了两个部分,分别是重构误差(期望部分)和KL散度,其中KL散度又由三部分组成,分别是

应的先后验分布之间的KL散度。

我们的实验在Ubuntu Dialogue Corpus和Cornell Movie Dialogue Corpus上进行的,在自动指标和人工指标上都取得了最好的结果,证明了我们的模型可以有效地建模多轮对话的语义关系,不仅可以提高一致性,也可以增加回复的多样性。

自动指标和人工指标的结果如下:

表格的左侧是自动指标,分别是embedding-based的三个指标:Average, Extrema和Greedy,可以很大程度上反映生成的结果和ground truth之间的语义相似度,以及Distinct1/2,通过用不重复的uni/bigram所占的比例来衡量生成结果的多样性。表格的右侧是人工指标,分别用来表示生成的结果和context是否连贯/一致,生成的结果是否流畅,以及生成的结果是否内容丰富。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人工智能前沿讲习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯智能对话平台
腾讯智能对话平台(Tencent Bot Platform,TBP)专注于“对话即服务”的愿景,全面开放腾讯对话系统核心技术,为大型企业客户、开发者和生态合作伙伴提供开发平台和机器人中间件能力,实现便捷、低成本构建人机对话体验和高效、多样化赋能行业。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档