×
嵌入式 > 技术百科 > 详情

阿里AI新一代人机对话模型已开源

发布时间:2024-05-17 发布时间:
|

近日,阿里 AI开源了新一代人机对话模型 Enhanced Sequential Inference Model(ESIM)。ESIM 是一种专为自然语言推断而生的加强版 LSTM,据阿里介绍,该算法模型自 2017 年被提出之后,已被谷歌、facebook 在内的国际学术界在论文中引用 200 多次,更曾在国际顶级对话系统评测大赛(DSTC7)上获得双料冠军,并将人机对话准确率的世界纪录提升至 94.1%。


ESIM 模型在智能客服、导航软件、智能音箱等场景均具有广泛的应用前景。阿里 AI 发布了相关论文介绍了该模型,雷锋网 AI 科技评论将其编译如下。

ESIM 引入背景

极具潜力和商业价值的人机对话系统正在受到越来越多的关注。随着近来深度学习模型的引入,我们在构建端到端的对话系统过程中有了更高的成功几率。然而这一对话系统的构建仍然充满了挑战,它要求系统记忆并理解多轮对话文本,而不是像单轮对话系统那样仅仅考虑当前的话语内容。

多轮对话系统建模可分为基于生成文本的方法和基于检索的方法。基于检索的方法将从多轮对话的候选池中选择最佳回复,该方法可视为对多轮回复文本选择任务的执行。选择回复文本的典型方法主要包括基于序列的方法和基于层级信息的方法。基于序列的方法通常将对话连接成一个长序列,而基于层级信息的方法通常会分别对每个对话文本进行建模,然后再对话语之间的交互进行建模。

最近,有研究工作称基于层级信息的方法与复杂神经网络结合可以实现比基于序列方法更显着的增益效果。但在本文中,我们依然选择研究基于序列的方法即增强序列推理模型(ESIM)的有效性,该模型最初是为了自然语言推理(NLI)任务而开发。

在 DSTC7 对话回复选择挑战赛中,我们的模型在两个数据集(即 Advising 和 Ubuntu 数据集)中都排名第一。除此之外,我们的模型在两个大型公共基准数据集(Lowe's Ubuntu)上都比以前所有模型的效果更好,其中也包括上面所提到的最先进的基于层级信息的模型。我们的开源代码可在 /zixunimg/eeworldimg/github.com/alibaba/ESIM 上获得。

基于层级信息的方法通常会使用额外的神经网络来对多轮对话之间的关系进行模拟,该方法需要将多轮对话中的文本进行分段截取,使其具有相同的长度并且短于最大长度。然而,每轮对话的长度通常在实际任务中会有很大的变化,当使用较大的最大长度值时,我们则需要在基于层级信息的方法中添加大量的 0 进行填充,这将极大地增加计算复杂性和内存成本;而当使用较小的最大长度时,我们则可能在多轮对话环境中丢失一些重要信息。

我们建议在多轮对话回复选择任务中使用基于序列的 ESIM 模型来有效地解决基于层级信息方法所遇到的上述问题。该方法将多轮对话内容连接成一个长序列,并将多轮对话回复选择任务转换为一个句子对的二进制分类(即下一个句子是否是当前对话的回复)任务。

与基于层级信息的方法相比,ESIM 有两个主要优点。首先,由于 ESIM 不需要使每个话语具有相同的长度,因此它具有较少的零填充,可以比基于层级信息的方法更具计算效率。其次,ESIM 以一种有效的方式隐式地模拟对话中话语之间的交互,而并没有使用额外复杂的网络结构,详情如下文中「模型说明」部分所述。

任务描述

对话系统技术挑战赛(DSTC7)划分了三个不同的赛道,而我们提出的方法则是针对「端到端的回复选择」主题的赛道。该赛道侧重于面向目标的多轮对话,着重于从一组对话候选文本中选择正确的回复。参与该赛道的比赛系统不能使用基于人工数据或基于规则的数据,而需要使用比赛方提供的 Ubuntu 和 Advising 这两个数据集,这些在「实验部分」我们会做详细的介绍。

「端到端的回复选择」赛道提供了一系列具有相似结构的子任务,但在输出部分和可用于对话部分的任务各不相同。在图 1 中,「√」表示在标记的数据集上评估任务,「×」表示未在该数据集上进行任务评估。

图 1 任务描述

模型说明

多轮回复选择任务是在给定多轮对话的情况下,从候选池中选择下一对话内容。我们将问题转换为二进制分类任务,即对于给定多轮对话和候选回复,我们的模型只需要确定候选回复是否正确。在本节中,我们将介绍这个起初专为自然语言推理开发的模型——增强顺序推理模型(ESIM)。该模型由三个主要组成部分组成,即输入编码(Input Encoding)、局部匹配(Local Matching)和匹配合成(Matching Composition),如图 2 所示。

图 2 基于注意力机制力的句子对分类方法

输入编码

输入编码部分则执行对对话信息进行编码,以及在对话含义中的做标记的任务。ESIM 和基于层级信息的方法不同,后者通过复杂的层级信息来编码对话信息,而 ESIM 则是像这样简单地编码对话信息——首先,将多轮对话内容连接为长序列,其被标记为 c =(c1 ;:::;cm);候选回复被标记为 r =(r1 ;:::;rn);然后使用预训练的字嵌入 E ∈ R de×|V|(其中 |V| 是词汇量大小,de 是词语嵌入的维度)将 c 和 r 转换为两个矢量序列 [E(c1);:::;E(cm)] 和 [E(r1);:::;E(rn)]。其中有许多类型的预训练词嵌入,在这里我们提出了一种利用多个嵌入的方法——给定 k 个预训字嵌入 E1 ;:::;Ek,我们连接单词 i 的所有嵌入,如:E(ci)= [E1(ci);:::;EK(CI)];然后再使用具有 ReLU 的前馈层将词语嵌入的维度从(de1 + + dek)减小到 dh。

为了在其对话含义中表示标记,我们将对话和回复输入 BiLSTM 编码器来获得依赖于对话隐藏状态的 cs 和 rs:

其中 i 和 j 分别表示对话中的第 i 个标记和回复中的第 j 个标记。

局部匹配

对话和回复之间的局部语义关系建模是确定回复是否正确的关键组件。因为正确的回复通常与文本中的一些关键字有关,它可以通过对局部语义关系建模来获得。我们并不是直接将对话和回复编码为两个密集向量,而是使用交叉注意力机制将标记与对话对齐并重新回复,然后计算标记层级的语义关系。注意力机制的权重计算如下:

软对齐用于获得对话与回复之间的局部相关性,其由上述等式中的注意力机制力矩阵 e ∈ R m×n 计算而得。然后,对于对话中第 i 个标记的隐藏状态,即 cis(已编码标记本身及其对话含义),候选回复中的相关语义被识别为向量 cid,在此称为双向量,它是所有回复状态的加权组合,公式如下所示:

其中α ∈ R m×n 和 β ∈ R m×n 是相对于轴 2 和轴 1 的归一化注意力机制权重矩阵。我们对回复中每个标记的隐藏状态 rjs,执行类似的计算,公式如下:

通过比较矢量对<>,我们可以模拟对齐标记对之间的标记层级语义关系。类似的计算也适用于矢量对<>。我们收集如下的局部匹配信息:

在这里,我们使用了一种启发式的差分匹配方法和基于元素的产物来分别获得对话和回复的局部匹配向量和。其中 F 是一个单层前馈神经网络,可以使用 RELU 减少维数。

匹配合成

匹配合成的实现如下:为了确定回复是否是当前对话的下一个话语,我们探索了一个集成层来集成所得的局部匹配向量(cl 和 rl):

我们再次使用 BiLSTM 作为集成图层的构建块,但 BiLSTMs 的作用与输入编码图层的作用完全不同。这里的 BiLSTM 读取局部匹配向量(cl 和 rl)并学习对关键局部匹配向量进行区分从而获得总体对话的层级关系。

BiLSTM2 的输出隐藏向量通过集成的操作转换为固定长度向量,并馈送到最终的分类器以确定整体关系;其中最大值和平均值将被使用并连接在一起,来获得一个固定长度的向量;最后一个矢量被送入有一个隐藏层、TANH 激活层和 SOFTMAX 输出层的多层感知器(MLP)分类器中;整个过程通过端到端的方式来最小化交叉熵损失,从而训练整个 ESIM 模型。

基于句子编码的方法

对于 Ubuntu 数据集中的子任务 2,我们需要从 120000 个句子的候选池中选择下一个回复话语;如果我们直接使用基于交叉注意力机制的 ESIM 模型,则计算成本是让人难以接受的。相反,我们先使用基于句子编码的方法从 120000 个句子中选择前 100 个候选话语,然后使用 ESIM 重新排列它们,这样的方式也是行之有效的。

基于句子编码的方法使用了图 3 所示的 Siamese 架构,它应用参数绑定神经网络来编码对话和回复;然后再使用神经网络分类器来确定两个句子之间的关系。在这里,我们使用具有多头自注意力机制池中的 BiLSTM 来对句子进行编码,以及用 MLP 进行分类。

图 3 基于句子编码的句子对分类方法

我们使用与 ESIM 相同的输入编码过程。为了将可变长度句子变换为固定长度矢量表示,我们使用所有 BiLSTM 隐藏向量(H)的加权求和:

是权重矩阵;是偏差; da 是关注网络的维度,dh 是 BiLSTM 的维度。是 BiLSTM 的隐藏向量,其中 T 表示序列的长度。是多头注意力机制权重矩阵,其中 dm 是需要使用保持集调整的头数的超参数。我们不是使用最大池或平均池,而是根据权重矩阵 A 对 BiLSTM 隐藏状态 H 求和,以得到输入句子的向量表示:


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil5(MDK5)在调试(debug)过程中遇到的问题