论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot

https://arxiv.org/pdf/1909.10666.pdf

基于检索的聊天机器人的多轮响应选择的三重注意力网络

Github:https://github.com/wtma/TripleNet

论文贡献:

  • 使用triple attention来建模三元输入<context、query、response>,而不是传统的<context、response>。
  • 提出了一种层次表征模型,实现从字符级到上下文级的完整会话建模。

基于检索的方法从庞大的存储库中检索多个候选结果,并选择最佳的一个作为答案;基于生成的方法使用编码器解码框架来生成响应,这与机器翻译类似。

定义任务:给定上下文C、当前查询Q、候选答案R,建模预测候选答案是正确答案的概率 score = g(C, Q, R) 

四个层次:context、utterances、words、characters。令C = (u1, u2, ..., ui, ..., un),其中ui代表上下文C中第i个话语utterance,n是话语的总数,最后一个话语是查询:Q = Un;每个话语ui = (w1, ..., wj , .., wm),其中wj代表表达i中第j个单词,m是单词的总数;每个单词wj = (ch1, ..., chk , .., chl),其中chk代表单词j中第k个字母,l是字母的总数。

模型结构

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot

TripleNet自底向上为字符级直到上下文级,每层首先使用层次表征模块构造Q、R和Q的表征,然后用三重注意机制来更新表征,最后在关注R的同时将它们进行匹配,并融合结果做出预测。

Hierarchical Representation

(1)Char-level Representation 

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot

令xt:t+sj−1为embedding (xt, …, xt+sj−1)的concat,sj是第j个filter的size,使用CNN和池化得到每个单词的字符级嵌入矩阵ch。

(2)Word-level Representation 

使用预训练好的词向量对词x进行嵌入,并引入词匹配特征MF,如果一个词同时出现在R和C或者Q中,MF设为1,否则设为0,使得模型对这种concurrent词更加敏感。令We为预训练的词向量,ch(x)为字符向量函数,得到词嵌入表征e(x):

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot

使用共享的双向LSTM得到每个单词的单词级嵌入矩阵h(x)。

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot

 

(3)Utterance-level Representation 

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot

使用自注意力得到第k个话语的表征uk。

 

(4)Context-level Representation 

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot

将每个话语级表征输入另一个双向LSTM层中,得到第k个话语在上下文级的表征ck。

Triple Attention

BAF:双向注意力函数,计算两个序列之间的注意力并输出它们的新表征。为了建立<C, Q, R>关系的模型,将BAF应用于三者中的每一对,并为每个元素获得两个新表征,然后将它们相加作为最终表征。
对三者之间的潜在关系进行建模,将其两两输入到BAF中:

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot

令Attpq、Attqp 为P和Q之间双向注意力,BAF对两个序列 (P, Q) 生成新的双向表征P`、Q` (Seo et al. 2016):

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot


Triple Matching

使用三重注意力机制产生的表征,对每一层<C, Q, R>的余弦距离进行匹配。这时主要关注R,因为它是我们的目标。在字符级,令ch` 为三重注意力更新过的表征,得到字符级的匹配结果M1;单词级同理--得到M2;话语级和上下文级需要去掉最大池化步骤--得到M3、M4。

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot

将4个结果拼接,输入层次RNN(bi-LSTM)并池化,将匹配结果编码为单个特征向量v,其中m∈M 为R中一个单词的匹配结果:

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot

Final Prediction

可以将预测C、Q和R之间的匹配分数看作是一个二分类任务,最小化预测和真实值之间的交叉熵损失。

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot


实验

多轮对话语料库:Ubuntu Corpus (Xu et al., 2017)

预训练词向量使用GloVe,字符级卷积核为尺寸为3、个数为200。所有biLSTM层的隐藏大小为200。使用Adamax优化器、初始学习率为0.002。对于集成模型,使用不同的随机种子为每个语料库生成6个模型,并通过投票合并结果。

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot

消融实验表明层次表征和三重注意力对性能的提升都是有所贡献的。

注意力可视化(单词级别)

论文阅读TripleNet: Triple Attention Network for Multi-Turn Response Selection in Retrieval-based Chatbot

结论:

最后3个语句比其他9个语句更重要,而Query比其他任何话语都重要,因此对其单独建模要比以相同的方式处理所有12个语句的效果要好;更多地关注Query附近的话语,因为它们的重要性更高。