输入编码部分则执行对对话信息进行编码,以及在对话含义中的做标记的任务。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 减少维数。