INTRODUCTION
尽管基于神经网络的模型取得了进步,但是在非任务导向的情况下,自动评估对话响应质量仍然是一个具有挑战性和未被研究的问题。现在使用的最多的方法是BELU,这种方法最初是用于检测机器翻译中的字重叠。然而,BELU和其他字重叠评估方法已经被认为存在偏差和与人的响应质量的判断的相关性较差。因此,需要有一种准备的模型可以自动评估对话的响应质量。
为了实现这个目标,我们首先在各种对话响应中收集认为评分的数据集,并利用这些数据集来训练自动对话评估模型,这个模型我们称为 ADEM(Automatic Dialogue Evaluation Model),该模型使用半监督的方式训练,使用分层的循环神经网络(RNN)来预测人为的评分。
A DATASET FOR DIALOGUE RESPONSE EAVLUATION
这部分介绍的是如何生成训练数据集(笔记略)。
TECHNICAL BACKGROUND
RECURRENT NEURAL NETWORK
这部分简略的介绍了RNN,论文中使用的是LSTM。
字重叠的评估方法
现在最常用的字重叠评估方法是使用在机器翻译中的BELU和METEOR评分,和使用在自动摘要中的ROUGE评分。
BELU:分析了在参考响应中,n-gram在实例中的共同出现。它计算整个数据集的n-gram准确度,然后乘以简单的惩罚项来惩罚短的翻译句子。
缺点:字重叠评估方法的一个主要的缺点是当没有共同的词语的时候,它不能捕获模型和参考响应之间的语义相似度。再者,字重叠方法直接计算模型和参考响应,这样就没有考虑到了对话的上下文。
AN AUTOMATIC DIALOGUE EAVLUATION MODEL(ADEM)
为了克服字重叠评估方法中存在的缺点,我们的目标是构建一个对话评估模型可以实现以下两点:
- 越过字重叠统计,捕获语义的相似度。
- 利用会话的上下文和参考响应来计算模型响应的分数。
,参考响应 $\mathcal{r}$,和模型响应 $\hat{r}$。ADEM首先用RNN解码器将相应的 $\mathbf{c}$,$\mathbf{r}$,$\hat{r}$解码为向量的形式。然后,ADEM使用线性变换空间中的 $\mathcal{c}$,$\mathcal{r}$,$\hat{r}$ 的向量之间的点积来计算得分分数:$$\mathcal{score(c,r,\hat{r})} = (\mathbf{c}^{T}M\hat{r} + \mathbf{r}^TN\hat{r} - \alpha) / \beta$$
$M, N \in \mathbb{R}^{n}$ 是需要学习的矩阵参数,一般初始化为单位矩阵,$\alpha, \beta$ 是标量常数,范围在 $[0, 5]$ 之间,是初始化模型的预测。
矩阵 $M, N$ 可以解释为一个投射矩阵将模型响应 $\hat{r}$ 映射到相对应的上下文和参考响应的空间中。这个模型是端到端可微分的:所有参数都可以通过反向传播学习。参数 $\theta = {M, N}$ 是通过最小化模型预测和人为评分之间的平方误差训练可得:
$$\mathcal{L} = \sum_{i=1:K}[\mathcal{score(c,r,\hat{r})} - human_score_{i}]^{2} + \gamma||\theta||_{1}$$
$\gamma$ 是标量常数。
我们模型中的分层的RNN由两层的RNN组成。低层的RNN,话语层的解码器,将对话中的词语作为输入,在每一个话语的末端生成一个向量结果;上下文级别的解码器,将每个话语的表示作为输入,并输出上下文的向量表示。
Pre-training with VHRED:因此,我们采用半监督学习,并使用预训练模型来学习编码器的参数。我们把解码器作为神经语言模型的一部分,我们使用另外一个RNN解码器将编码器的输出当作输入,来训练给定条件的上下文来预测下一回复话语。
我们用于预训练的对话模型是潜变量分层的RNN编码器-解码器模型。VHRED模型是具有转向级(turn-level不大懂是什么)随机潜变量,是的原始HRED模型的扩展。分层的解码器将对话的上下文解码为一个向量,VHRED然后采样高斯变量,用于调节解码器。VHRED模型训练完后,我们使用最后一个隐藏状态的上下文级别的编码器,将 $c,r,\hat{r}$ 作为模型的输入。
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {inlineMath: [['$','$'], ['\(','\)']]}
});
</script>
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
网友评论