知识对话2021《Unsupervised Knowledge Selection for Dialogue Generation》论文解读

Unsupervised Knowledge Selection for Dialogue Generation

这篇论文是微信团队出的一篇,想解决的是没有最佳知识标签(无监督)情况下,对话模型怎么办?
具体的就是,1)怎么选出最佳知识2)选出最佳知识解码器怎么好好利用3)选出错误知识解码器怎么降低影响。
反思:核心技术点有distance supervision、知识蒸馏方面需要恶补一下。
知识对话2021《Unsupervised Knowledge Selection for Dialogue Generation》论文解读_第1张图片
模型架构图,画的有点…还是略过图看原文比较好

1.知识选择

Selection Query:将历史信息、历史知识、当前用户信息三者共同作为知识查询向量。每个部分都通过过gru编码得到。
在这里插入图片描述

Knowledge Selection:查询向量和每个候选知识做点乘计算相关度(和postKS一样)
在这里插入图片描述

损失函数就是交叉熵。

2.解码

知识对话2021《Unsupervised Knowledge Selection for Dialogue Generation》论文解读_第2张图片

就是在transformer-decoder基础上加了个copy机制。(多头注意力机制分配给copy部分权重的方法可以试试,以往都是点乘)

3.本文核心:无监督下的知识选择。

3.1远距离监督:

知识对话2021《Unsupervised Knowledge Selection for Dialogue Generation》论文解读_第3张图片

通过类似F1计算公式去确定黄金知识。就是以知识和标签回复的重叠字数衡量 黄金知识。
(个人认为这波无监督下选择黄金知识的方法有点工程了,虽然作者给了很多这么做原因)
候选知识们的概率分布就是点乘计算:以黄金知识为标签,并乘黄金知识的概率作为权重。(权重是为了降低万一黄金知识并非最佳知识的负面影响)
在这里插入图片描述

3.2知识蒸馏(这部分和postKS后验概率主要思想基本一致)

知识对话2021《Unsupervised Knowledge Selection for Dialogue Generation》论文解读_第4张图片

teacher、student下选择知识分布进行kidivloss不断拟合,即teacher相比student的知识查询向量多一个response(通俗讲,相当于把不知道答案的student的知识选择ability训练成和知道答案的teacher一样)
损失函数:kidivloss+加权后的老师做知识选择的损失(因为即使知道回复答案的teacher也不一定能做对知识选择)

3.3损失

在这里插入图片描述

整个损失函数构成就是 学生做选择的损失+老师做选择的损失+拟合他俩的损失。
吐槽一下:1.无监督下黄金知识的选择就是用F1来确定。2.知识的概率分布依旧是点乘操作

4.依旧是本文亮点:训练策略

现阶段知识驱动对话存在两个问题:第一是选不好知识,第二是选错知识的误差会影响解码器训练(就是无关知识和标签回复没有关系的话,训练会倾向于把选出来的知识当成噪声处理,从而让把解码器往无视知识的角度训练)。作者对解码器的期待1)是可以利用正确知识生成回复2)又可以识别一下错误知识少受它影响。所以作者提出了两阶段训练策略。

4.1.pretraining

在这里插入图片描述

无监督知识选择损失函数+生成的损失函数。其中生成训练是用黄金知识而非选出来的知识。

4.2.finetune

在这里插入图片描述

decoder的训练损失函数为nll乘(1+被选知识的F1权重)。换句话说,就是选出来的知识和回复标签重叠字越多(越接近黄金知识),就给更多的损失。反之越少程度训练decoder。
总结:预训练阶段训练的是知识选择能力+decoder利用正确知识生成能力。finetune阶段训练的是万一选错了知识,decoder能够减少无关知识影响生成的能力。

5.实验部分

实验佐证了作者的方法确实有一定效果就不贴了。无监督下的知识选择发展也是任重道远。

附:

2020年知识对话论文《SEQUENTIAL LATENT KNOWLEDGE SELECTION FOR KNOWLEDGE-GROUNDED DIALOGUE》,也是这篇论文参考的baseline之一,在这里做个总结,可以跟2021微信那篇进行对比。

详细解析:https://zhuanlan.zhihu.com/p/126293372
知识对话2021《Unsupervised Knowledge Selection for Dialogue Generation》论文解读_第5张图片

1)编码:

gru编码对话历史,知识流同
使用bert编码句子+知识,然后用gru多轮方式分别处理对话历史、知识流历史

2)知识选择

知识对话2021《Unsupervised Knowledge Selection for Dialogue Generation》论文解读_第6张图片

前验概率的查询向量由 [t-1轮历史信息,X,知识流]
后验概率的查询向量由[t轮历史信息(PS:gru(t-1历史信息+x+y)),知识流]
训练的时候去拟合他俩。

3)解码:

知识对话2021《Unsupervised Knowledge Selection for Dialogue Generation》论文解读_第7张图片

基于transformer加了copy,和上篇博客2021微信那篇论文的做法基本一样

4)损失

知识对话2021《Unsupervised Knowledge Selection for Dialogue Generation》论文解读_第8张图片

基于postks提出的知识选择损失就是多了一个知识选择loss(因为他的实验有知识标签…)
整体损失函数构成的其他两部分都是postks有的:生成loss和kldivloss。

你可能感兴趣的:(深度学习,人工智能,机器学习,nlp,算法)