本文的内容是基于对英文文章的理解,如有异议,欢迎讨论。
文章链接:
公众号文章获取
英文文章获取
文章预览:
1、简介
2、模型描述
1、简介
近年来,虽然深度学习取得了巨大的进步,但是,创建一个端到端的多轮对话系统还是具有一定的难度,因为创建对话系统需要记忆和理解多回合对话而不是仅仅考虑当前状态下的对话。
多轮对话模型方法可以分为基于生成的方法和基于检索的方法。
基于检索的方法关注于答案的选择(select the best response from a candidate pool for the multi-turn contex),在答案选择方面,比较经典的方法包括基于序列的方法(sequence-based——将上下文语境连接成一个长序列)和基于层次的方法(hierarchy-based——对每个语境进行独立的建模然后对语境关系进行建模)。
2017年的一篇文章中指出:对于复杂系统,基于层次的方法优于基于序列的方法。
基于层次的方法具有以下特征:
1、运用神经网络对语境关系进行建模。
2、对多轮对话中的语境进行剪切,使语境具有相同的长度,且小于最大长度。当我们使用最大长度的时候,对于某些向量需要对其进行补零操作,此时具有较大的运算量。当使用较小长度的时候,不免会丢失许多信息。
针对该问题,本文提出了一种基于序列的方法——ESIM模型。该方法首先将连接多轮的上下文为一个长序列,并将多轮答案转化为二分类,即:下一个句子是否为当前上下文的答案。
从以上分析可以看出,ESIM具有以下的优点:
1、由于不需要将每一个语境具有相同的长度,不需要进行补零操作,具有较高的效率。
2、ESIM不需要外部复杂的神经网络对关系进行建模。
该方法的提出为目标为导向的多回合对话系统,并且目标是从一堆的待选答案中选出正确的答案。
2、模型描述
多回合响应的任务就是在给定上下文的条件下,从一个响应池中选择一个最为合适的答案。我们把这个任务转化为一个二分类的任务。
在模型描述部分又分为:输入编码、局部匹配、合成向量
a. 输入编码
在ESIM中,输入编码是先把上下文信息连接成一个句子。
输入编码的大致过程如下图所示:
预训练词向量有多种类型(many kinds),例如:Glove、fast Text等。
对此部分我们采用的是词向量的多重嵌入法。 具体处理过程如下图所示:
得到了E(c)和E(r)之后,将其输入至BILSTM中:
综上所述:在该部分我们实现了从句子到状态的转换。
b、局部匹配(local matching)
该部分中,我们对语义关系进行建模。
该部分中,引入注意力权重,通过注意力权重得到双向量。再用启发式匹配法,对双向量进行信息的整合,用前馈网络对其进行降维。
c. 合成向量
To determine whether the response is the next utterance for the current context。
我们利用一个合成层来组成一个局部的合成向量。
通过该部分的处理,我们得到了一个合成向量y。