Multi-Turn Dialogue Response Selection

A Sequential Matching Framework for Multi-turn Response Selection in Retrieval-based Chatbots

Multi-Turn Dialogue Response Selection_第1张图片

简介:针对多轮对话的response selection,关键在于如何选择上文相关信息进行建模。目前存在的模型大都单独对上文信息进行建模,忽略了response与context之间的交叉特征。作者提出了序列匹配模型(sequential matching framework (SMF)),计算context中每轮query与response的交互特征,然后通过时序模型RNN对交互特征进行建模,最后将时序模型的hidden state作为最终的特征用于计算模型匹配得分。实验结果证明,该模型取得了state of art的效果。

  • 将用户历史所有query通过表征函数进行编码,候选答案通过另一个表征函数进行编码
  • 用户多轮对话过程是一个时序过程,因此可以通过时序模型对历史query进行编码
  • 最后通过匹配函数融合时序模型输出和答案编码向量

Unified Framework Of Matching Model

匹配模型可以通过如下公式进行定义

Deep Learning To Respond (DL2R) Architecture

代表词向量矩阵,因此句子的表示可以通过如下公式获得

首先通过启发式的方法将context转换为

  • 启发式的方法

    • no context,
    • whole context,
    • add-one,
    • drop-out, ,表示从context中排出

    代表胶状向量,拼接向量为一个长向量

Multi-View匹配模型




其中,和分别表示词粒度的特征和句子粒度的特征
同理,可以通过如下公式计算



context特征可以通过如下公式计算

其中,词粒度的特征和句子粒度的特征可以通过如下公式计算


模型的完整计算公式如下


其中,M1和M2代表特征的线性变化

SMF
Multi-Turn Dialogue Response Selection_第2张图片

简介:SMF模型与之前模型的主要区别:1.在模型的底层计算context中query与response的交叉信息;2.采用query与response交互作用的特征进行时序建模,这两个区别克服了现有模型的缺点。

  • 将context中每一个query与answer做线性变换

  • 将线性变换之后的输出做为时序模型的输入

  • 最后通过匹配函数融合时序模型输出

    SMF模型可以通过如下公式进行总结

Utterance-Response Matching

SCN
Multi-Turn Dialogue Response Selection_第3张图片

计算query和answer之间的词级相似度矩阵

计算句子间的相似度矩阵。分别将context和response输入时序模型进行编码



然后,将和输入2D卷积神经网络



其中,在卷积神经网络之后,接一层max-pooling

最后,将max-pooling之后的特征进行拼接,并投影到低维特征空间

SAN
Multi-Turn Dialogue Response Selection_第4张图片

权重矩阵计算如下


其中,和是训练参数。代表context与response之间的相关程度。
和之间的交叉矩阵计算公式

其中,代表Hadamard product。
同理,可以对句子粒度的特征执行相似处理得到



在获得词粒度和句子粒度的特征之后,将这两类特征进行拼接输入时序模型


  • Matching Accumulation
    SCN和SAN模型都采用GRU作为时序模型对特征进行编码,通过标准时序模型的门函数加强重要特征的权值,减少不重要信息带来的影响。

  • Matching Prediction

    • Last State
      第一个方法就是直接取时序模型的最后一个状态做为匹配得分。该方式基于上下文的重要特征通过GRU门函数之后,被编码在向量

      其中,和为参数向量

    • Static Average
      第二个方法通过所有hidden states的位置进行加权,如下:

      是第个hidden state的权值,一旦确定,对于任何都是固定的,因此我们称之为static average。与第一种方式相比,static average可以利用更多的信息,避免信息的损失。

    • Dynamic Average
      与static average相似,我们同样采用所有hidden states来计算匹配得分。不同之处在于,由hidden state和query向量通过attention机制动态计算。不同的上下文,将会计算得到不同的权值,因此称之为dynamic average。


      其中,是训练中学习的虚拟上下文向量。

Multi-Turn Response Selection for Chatbots with Deep Attention Matching Network

Multi-Turn Dialogue Response Selection_第5张图片

简介:受Transformer的启发,作者从2个方面扩展了attention mechanism:1)通过叠加self-attention,作者构建了不同粒度的文本片段表示;2)通过context与response利用attention抽取真正匹配的文本片段。实验结果证明,该模型的效果远远优于目前的state-of-the-art模型。

  • Attentive Module


    Multi-Turn Dialogue Response Selection_第6张图片

Attentive Module有三个输入:query sentence、key sentence和value sentence。Attentive Module首先计算query sentence与key sentence的相似矩阵,然后将attention结果应用在value sentence中



其中,、和代表句子中词的个数,代表维的embedding向量,和相等。
融合了词之间的语义信息之后,将和相加,从而得到一个新的词表示。为了避免梯度消失和梯度爆炸的问题,模型接了一层layer normalization;然后,输入前馈神经网络FFN,激活函数为

参考residual network,将与相加(与维度相同)作为最终的特征。

  • Representation


    其中,。至此得到了不同粒度的表示和。

  • Utterance-Response Matching
    根据不同层之间的词粒度表示,通过如下公式计算context与response之间相关性

    cross-attention顾名思义,即是在attention计算阶段就计算context与response之间的相关性


  • Aggregation
    至此,我们得到了一个三维的特征表示

    其中,表示Attentive Modulue的深度,表示context中第i轮utterance词的个数,表示response词的个数。每一个pixel的定义如下

    其中,表示concatenation。接着,作者通过2层3D的CNN抽取文本的匹配的特征,然后flatten特征之后将其输入单层的多层感知机

    其中,代表sigmoid函数,表示该是否为正确的答案。

  • DAM模型的损失函数为负对数损失函数

A Context-aware Attention Network for Interactive Question Answering

Multi-Turn Dialogue Response Selection_第7张图片

简介:该论文对多轮问答的建模与其他工作稍有不同,网络结构分为三部分:Question Module、Input Module和Answer Module。Question Module负责对当前问题进行特征编码;Input Module负责对上文信息进行特征编码;Answer Module负责对答案进行编码。同时为了获得上文信息与当前问题的关联性,通过Question Module计算得到特征与Input Module计算相关矩阵,保留相关信息,忽略不相关信息。同时为了更好的回答用户的问题,对于不确定的问题,模型并不直接给出答案,而是通过反问的方式,让用户明确自己的问题,然后加入该用户反馈之后再进行回答。实验结果证明,该模型取得了比目前state-of-art更好的效果。

  • Question Module
    首先,对question采用时序模型GRU进行特征编码

    然后,通过self-attention对每个词的输出进行加权,获得最终的question表示。

  • Input Module
    对上文句子的每个词采用时序模型GRU进行特征编码

    为了添加上句特征,这里采用2层的FFN对上句特征输出和当前GRU状态进行投影

    在获得每个词的表示之后,通过question的特征对当前句子进行attention计算,统计句子每个词的相关度,然后通过加权求和的方式获得句子的特征表示。


    现在我们得到了上文每个句子的特征表示,接下来我们需要对所有上文句子表示进行处理。因为用户的问题都是具有时序关系的,因此这里采用时序模型GRU对上文所有句子进行编码,然后通过question进行attention计算,并加权求和得到最后的上文特征输出。


  • Answer Module
    答案生成模块分为两部分:Answer Generation和Interactive Mechanism。

    • Answer Generation:根据当前question的特征输出和上文特征输出直接生成答案;
    • Interactive Mechanism:则是在不确定Answer Generation能很好回答用户问题时,给出问题的补充问法,从而让用户说的更加完整。
  • Answer Generation
    答案生成模块相对比较简单,对和相加然后通过一个时序模型GRU进行decoder。

  • Interactive Mechanism
    对用户反馈的文本进行时序编码,然后直接求和(这里假设所有词具有同等重要权重)


    最后将计算获得的反馈表征用于生成答案。通过用户反馈我们可以判断上文不同句子的重要程度,因此可以通过该反馈表征更新上文权重。

Enhanced Sequential Representation Augmented with Utterance-level Attention for Response Selection

Multi-Turn Dialogue Response Selection_第8张图片

简介:基于检索的聊天机器人,针对多轮问答场景,充分利用句子粒度的表征和词粒度的表征是非常重要的。句子的特征表示包括:通过句子粒度attention获得的Sentence Embedding、位置信息表示和用户信息表示。接着通过sentence-level attention判断最相关的utterances。实验结果证明,该模型的效果优于baseline model。

  • Dual Encoder
    context的特征表示为,response的特征表示为。context与response共享时序模型,因此有


    其中,。然后对前后向的输出进行concat

  • Attention Layer
    在对词进行编码之后,通过dot attention计算context与response之间词的相似矩阵

    对重要的词赋于更高的权重,词权重的计算如下


    至此,我们获得了各自的词对齐特征,因此我们对词编码之后的特征进行增广


  • Aggregation Layer
    由于词之间包含了词上下文关系,因此这里采用了双向的GRU模型来对词粒度的上下文进行建模


  • Pooling Layer
    由于我们最终需要的是句子的表示,因此一个必然的操作就是pooling,这里选择了max-pooling和last hidden组成了pooling layer


Utterance-level Attention Layer
  • utterance embeddings


    Multi-Turn Dialogue Response Selection_第9张图片
    • Sentence Embedding
      句子表示由2部分组成:word embedding求平均和时序模型的句子编码

    • Position Embedding
      多轮对话中,utterances的位置信息是非常重要的特征。最近的utterances与response有更高的相关性,因此作者将Sentence Embedding和Position Embedding进行拼接来丰富句子的特征。

    • User Embedding
      针对2个用户的多轮对话,每个用户都有自己的角色和目的。因此作者对参与者的角色进行one-hot,然后与Sentence Embedding进行拼接。
      将utterance embedding输入时序模型(GRU)对句子进行编码获得多轮表示,然后通过bilinear attention对context与response进行匹配

  • Prediction Layer
    词粒度表示和句子粒度表示拼接到一个向量中,然后输入一层的前馈神经网络,激活函数为。

Sequential Attention-based Network for Noetic End-to-End Response Selection

Multi-Turn Dialogue Response Selection_第10张图片

简介:目前处理上下文的模型大部分都是hierarchy-based methods,因此不可避免的问题就是需要选择加入上文的轮数。如果轮数设置较大,上文相对较短的会话不可避免就会大量补零;同时如果设置太小,可能会因为上文信息不够,而导致语义不清。
针对上述问题,本文作者直接将上文信息拼接到一个段文本中,因此将上下文匹配的问题转化为单句匹配问题了。由于把所有的上文信息都拼接到了一段文本中,从而该段文本不可避免会引入大量的噪声,因此如果提取文本中的关键信息,然后与response进行匹配是本文的关键所在。

  • Input Encoding
    文章采用了各种不同的word embedding,然后对每个词的word embedding进行concatenate得到一个维度较高,信息量较大的词向量;最后通过一个前馈神经网络进行降维。
    将context向量拼接为一个长文本,response向量为。为了获得上下文信息,文章采用了双向的时序模型(BILSTM)对向量进行编码

  • Local Matching
    context与response的交叉特征是判断两者之间匹配度的重要因子,cross-attention计算公式如下

    首先,通过cross-attention可以得到soft alignment,对齐向量包含了context与response的局部相关性


    然后,通过可以获得增广特征


    其中,是一层的前馈神经网络,激活函数为。

  • Matching Composition
    通过时序模型组合匹配特征


    然后,通过max-pooling和mean-pooling抽取时序特征

    最后,将特征输入MLP计算匹配得分,MLP为一层的前馈神经网络,激活函数为tanh,最后对输出取softmax。

Sentence-encoding based methods

在处理大量候选response的任务时,直接使用ESIM模型耗时过高,因此作者采用了相对简单的孪生网络对response进行粗筛,之后再对粗筛的结果使用ESIM进行rerank。

Multi-Turn Dialogue Response Selection_第11张图片

采用ESIM模型相同的输入编码方式,然后对时序模型的输出进行加权求和

其中,,是权重矩阵,是一个可调的多头参数。
句子向量可以通过权重矩阵对时序模型输出加权求和计算得到

最后,通过concat、difference和 the element-wise products对特征进行增广

Multi-level Context Response Matching in Retrieval-Based Dialog Systems

Multi-Turn Dialogue Response Selection_第12张图片

简介:本文对比的基线是Dual Encoder和SMN模型,从word-level和sentence-level两个角度进行建模。该工作的出发点更多的是simplicity 和 efficiency,因此在结构上并未突出特别的创新点。

  • Sequence Encoding
    首先,将context concatenate到一个向量。然后,对context与response进行embedding稠密化,然后通过时序模型LSTM进行编码,这里取时序模型的last hidden作为最终输出,即和。

  • Sequence Level Similarity

    其中,代表向量叉积。代表和之间的相似度。

  • Word Level Similarity

    其中,代表dot product。至此,得到了一个相似矩阵,作者通过另一个时序模型将相似矩阵转换为向量(代表隐藏层的维度,代表last hidden)。

  • Response Score

    其中,代表concatenation。

Deep Hybrid Networks Based Response Selection Fro Multi-Turn Dialogue Systems

Multi-Turn Dialogue Response Selection_第13张图片

简介:作者提出了deep hybrid network (DHN)抽取上下文信息。首先,通过每个utterance与response计算相似矩阵;然后,将多个相似矩阵进行concatenation得到一个大mathing matrix。最后,通过若干层的深度卷积block抽取高维matching feature。本文的创新点更多的是将CliqueNet模型应用到multi-turn dialogue中,其他无太大创新点。

  • Multi-turn Context Representation
    首先,计算每个utterance与response的匹配矩阵

    其中,和。
    另外,通过时序模型RNN编码句子中词的上下文关系,然后再次计算utterance与response之间的匹配矩阵


    其中,。最终,多轮context的特征表示为

    其中,。

  • Context-aware Matching

    Multi-Turn Dialogue Response Selection_第14张图片

    本文Matching Module完全参考CliqueNet网络的设计结构,Matching Module包含若干卷积block,每个block分为2阶段。第一阶段,跟DenseNet就是相同的前馈结构,每一层都将合并来自前面所有层的输出。第二个阶段,每个卷积层需要合并的内容包含:比自己深的卷积层第一阶段的特征图,比自己浅的卷积层第二阶段的特征图。

    其中,是一个非线性变换函数,包含了,表示卷积,表示concatenation。
    作者这里叠加了三层block,每一层block包含了原始输入和第二阶段获得的特征。每个block第二部分的输出经过transition layer(,其中是一个average pooling层)处理之后作为下一个block的输入。将所有block输出特征池化之后,构成了最终的匹配向量。

  • Aggregation

    获得匹配向量之后,通过一层全连接层,然后softmax获得匹配概率。最后利用交叉墒作为模型的损失函数

Knowledge-incorporating ESIM models for Response Selection in Retrieval-based Dialog Systems

Multi-Turn Dialogue Response Selection_第15张图片

简介:论文参考ESIM模型结构,将多轮utterance拼接到一段文本中,然后做单轮匹配。本文另一个重要的点在于融合进外部信息来丰富匹配的特征,比如:Ubuntu手册页的命令描述。通过结合更多的外部信息来获得更有的结果。

  • Word Representation Layer
    word representation由两部分组成:word embedding和character-composed embedding。其中,word embedding包含了Glove word embedding和word2vec向量(在训练数据上预训练得到);另外,character-composed embedding通过拼接BiLSTM前向和后向的final state。

  • Context representation layer
    输入包含三部分:context、response和外部知识(ubuntu手册页的命令描述)。采用BiLSTM模型对文本进行编码,三部分输入共享模型参数

  • Attention matching layer

    • Attention Matching Layer同样分为三部分:
      • response与外部信息
      • context与外部信息
      • context与response

    对context与response编码向量计算attention,然后加权求和得到对齐表示


    其中,计算context与response之间的相似度。
    有了对齐向量之后,一个通用的做法就是通过concatenation、difference和element-wise product对特征进行增广


    最后,我们得到

  • Matching aggregation layer
    Aggregation Layer采用另一个BiLSTM模型对向量进行编码

  • Pooling layer
    池化层采用max-pooling和final state组合得到最终的向量,最后将输入全连接层得到最终的相似度


End-to-end Gated Self-attentive Memory Network for Dialog Response Selection

简介:作者提出了Gated Self-attentive Memory Network用于在模型训练中融合历史会话和外部领域知识,通过self-attention加强utterance与对话历史(或外部领域知识)的联系。论文的出发点在于通过end-to-end的方式,更好的融合外部的知识提升模型的效果;同时借鉴transformer的网络结构,利用self-attention加强utterance的表征能力。

  • Bi-RNN based Utterance Encoding


    Multi-Turn Dialogue Response Selection_第16张图片

特征编码层为BiRNN,并且对时序模型正向和反向的last hidden进行concatenate。

  • Memory Attention


    Multi-Turn Dialogue Response Selection_第17张图片

输入向量为,memory向量为,其中。输出向量为

其中,和是不同的。

  • Gated Memory Attention


    Multi-Turn Dialogue Response Selection_第18张图片

参考前人的工作,作者采用gating mechanism对输入和memory输出进行融合

其中,是激活函数为sigmoid的全连接神经网络层。

  • End-to-end GSMN


    Multi-Turn Dialogue Response Selection_第19张图片

论文设计了多个hop,并且每个hop参数独立。对多个utterance进行求和得到最后的向量

  • External Knowledge Encoding
    作者通过向量表示外部领域知识的key-value pair。例如: 代表key中的第个token,代表value中的第个token。最终的向量表示为word embedding求平均

  • Dialog History and Response Relevance
    获得context的特征和response的特征之后,通过双线性变化计算匹配度


    其中,是训练参数。在获得context与response的相似匹配向量之后,通过softmax转换为概率分布。

Interactive Matching Network for Multi-Turn Response Selection in Retrieval-Based Chatbots

Multi-Turn Dialogue Response Selection_第20张图片

简介:作者提出了一种新的神经网络框架:IMN(interactive matching network),用于多轮对话的答案选择。模型同时使用了字符向量和词向量用于解决问答系统常见的OOV(out-of-vocabulary)问题,参考ELMO模型作者设计了multi-layer RNNs,然后将context中所有query拼接为单句,并计算与response之间的交叉信息,以此丰富模型的特征,最后通过一个时序模型聚合文本特征。实验结果证明,该模型获得了state-of-the-art的效果。

  • Word Representation Layer
    参考前人经验,作者同时采用word-level embedding和character-level embedding(采用cnn模型对字符特征进行编码得到词粒度的特征)

  • Sentence Encoding Layer
    参考ELMO模型的设计,本文采用BILSTM作为block抽取句子特征,在L个block之后,对每个block的输出进行加权求和作为词的编码特征。




    其中,为attention权值,在模型训练过程中学习得到。

  • Matching Layer
    之前大量的论文已经证明,response与context之间的交叉特征是一个非常重要的特征。基于多轮对话的answer selection最重要的一个点就是如何选择相关信息,并且过滤不相关的噪声。
    首先,将历史所有会话按照词粒度特征进行拼接

    然后,计算response与context的相似矩阵

    获得相似矩阵之后,我们就可以分别计算response和context的对齐特征。

    最后,通过concat、differences 和 the element-wise products对特征进行增广。


    至此,交叉特征计算完成。下一步就是将context特征转换回单句格式。

  • Aggregation Layer
    聚合层常见的设计是在RNN之后接一个pooling层,文章这里稍作修改,采用max-pooling和last hidden的拼接特征作为输出。需要注意,这里context和response共享BILSTM模型。




    在获得各个句子的输出特征之后,通过一个时序模型抽取最终的聚合特征。


    最后,将context聚合特征和response特征拼接作为prediction layer的输入特征。

  • Prediction Layer
    这里采用multi-layer perceptron (MLP)作为最后一层,返回匹配得分。

  • Training Criteria
    最后通过计算交叉墒对模型进行迭代计算

总结

  • 目前多轮问答已经被广泛的研究并应用于生产。大体可以总结为如下几类
    • 多轮utterance拼接到一个utterance,将多轮问题转换为单轮匹配问题
    • 分层建模:先得到句子的表示,然后在通过时序模型对多轮进行建模
    • 将问题分为三部分:历史会话、当前会话和response
    • 加入外部信息丰富模型的特征
  • 模型结构可以总结为
    • Transformer替换Bi-LSTM或者Bi-GRU
    • 参考Residual-net和Dense-net,将模型的层数由单层扩展到多层

Future work

  • reinforcement learning
  • multi-task
  • deep network
  • adversarial learning

你可能感兴趣的:(Multi-Turn Dialogue Response Selection)