检索式多轮对话系统论文:Multi-Turn Response Selection for Chatbots with Deep Attention Matching Network 阅读笔记

此篇文献是百度发表于ACL2018

对话系统中,由于在context和response中有两种匹配对:(1)表面文本相关(2)潜在依赖,即在语义和功能上相关。之前论文多关注表面相关,对潜在依赖关注较少,所以本文努力解决这个问题。且对话系统中多采用RNN结构,但用RNN捕捉多粒度的语义表示花费代价较大,所以文本全部采用基于注意力机制的结构。

模型结构如上图所示。看起来很复杂,拆开来一点点看。模型框架为表示-匹配-聚集。

首先就是很基本的word embedding层,将输入的utterance(u1,u2,...un)和response(r)转变为向量。

 

接下来是表示层:表示层的作用是构建不同粒度的语义表示。表示层有L层,每层都是self-attention,第l层的输入为第l-1层的输出,进而可以将输入的语义向量组合成更复杂的表示。

具体实现是基于Attentive Model,如下图:

原理和Transformer接近,输入为query句子、key句子、value句子,生成attention的原理是Scaled Dot-Product Attention。

Scaled Dot-Product Attention的结构如下图所示:

输入经过线性变换,得到Q、K、V,这三者的区别只是线性变换的矩阵的权值不相同。接着Q和K做点乘,得到输入词与词之间的依赖关系,再经过尺度变换、掩码以及softmax,得到权重矩阵,此矩阵再和value相乘。尺度变换是防止输入值过大导致训练不稳定,掩码是保证时间的先后关系。(具体细节不清楚,还需要继续看文献:Attention is all you need)。

再回到Attentive Model中

之后再将Vatt[i]和Q[i]加起来,得到的表示能包含联合意义。再接一个Layer Nomalization层(具体原理再查),可以阻止梯度消失和梯度爆炸。在normalization结构上应用一个带有RELU激活函数的前馈神经网络FFN,可以进一步进行融合嵌入。

FFN公式为:

再将FFN(x)残差地加入到x上,并将结果进行标准化。

论文认为Attentive Model可以捕获query句子和key句子之间的依赖关系,并进一步使用依赖关系信息将key语句中的元素和value句合成为组合表示。 我们利用了Attentive的这个属性用于构造多粒度语义表示以及与依赖性信息匹配的模块。

表示层的下一层是匹配层。

匹配层使用了self-attention-match和cross-attention-match。

self-attention-match原理如下图:

cross-attention-match原理如下图:

 

匹配层的下一层是聚集层

Q再经过一个带有最大池化层的两层3D卷积,得到fmatch(c,r)

再经过一个单层感知机

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值