在介绍完词预测方法后,我们来看时间复杂" />
您现在的位置:首页 > 教案模板 > 正文

缺点模板  论文解读:基于动态词表的对话生成研究(3)

2018-01-10 06:03 网络整理 教案网

时间复杂度

|论文解读:基于动态词表的对话生成研究" TITLE="干货|论文解读:基于动态词表的对话生成研究" />

在介绍完词预测方法后,我们来看时间复杂度的计算,即以什么样的速度进行 decoding。

首先将 Seq2Seq 和本文的 decoding 方法进行对比,可以发现二者在 GRU 和 Attention上花费的时间完全一致,但是本文方法在 Projection 上花的时间会少很多。

原因在于 Seq2Seq 的 vocabulary size 通常都很大,比如 3 万这种级别乘出来的数。而本文这个 T可能只有几千,并且我们无需为每个词建立一个表,而是为每一句话建立一个表。因此,我们构建词典的时间开销要远小于从全局字典里进行词预测。

经实验证明,这种方法相比 Seq2Seq 能节省约 40% 的时间。

模型训练​

|论文解读:基于动态词表的对话生成研究" TITLE="干货|论文解读:基于动态词表的对话生成研究" />

个人优点和缺点20个_缺点模板_个人缺点模板

|论文解读:基于动态词表的对话生成研究" TITLE="干货|论文解读:基于动态词表的对话生成研究" />

|论文解读:基于动态词表的对话生成研究" TITLE="干货|论文解读:基于动态词表的对话生成研究" />

为了解决这个问题,我们在训练时选择将动态词典作为一个隐变量来处理。针对公式的详细推导,大家可以参考论文。

由于是隐变量,假设动态词典 T 是完全变例,即一个词有选或者不选这两种可能。如果有 3 万个词,那么 T 就有 2的三万次方这么大,因此这种方法是不可行的。那我们应该怎么做呢?

|论文解读:基于动态词表的对话生成研究" TITLE="干货|论文解读:基于动态词表的对话生成研究" />

由于这个损失是通过采样得出,因此它会和 RL 一样存在 variance。因此我们加了一个 baseline BK用于梯度更新,从而使训练更为稳定。

实验

|论文解读:基于动态词表的对话生成研究" TITLE="干货|论文解读:基于动态词表的对话生成研究" />

​ 本文实验所用数据来自我们之前的一篇文章,这些词可以覆盖约 99% 的词。

本文使用的开源 baseline|论文解读:基于动态词表的对话生成研究" />

|论文解读:基于动态词表的对话生成研究" TITLE="干货|论文解读:基于动态词表的对话生成研究" />

现有的方法可分为四类:

第二类方法是计算 embedding的距离,这类方法分三种情况:直接相加求平均、先取绝对值再求平均和贪婪匹配。

第三类方法是衡量多样性,主要取决于 distinct-ngram 的数量和 entropy 值的大小。

|论文解读:基于动态词表的对话生成研究" TITLE="干货|论文解读:基于动态词表的对话生成研究" />

表 1 中的前四行是 baseline,DVS2S 是将词预测和 Seq2Seq 的损失串在一起计算,S-DVS2S则是对这两个 loss 分别进行计算。从结果可以看出,DVS2S 的效果均优于其他方法。

表 2 是人工标注结果,数值 0 和 2 分别代表最差效果和最优效果,Kappa 则指三者的一致性。人工标注得到的 Kappa值通常较低,也就是说,即使让真人来进行评测,也很难得到一致性的评价。

速度对比:本文模型可节省40%的时间|论文解读:基于动态词表的对话生成研究" />

案例效果对比|论文解读:基于动态词表的对话生成研究" />

总结