Low-Resource Knowledge-Grounded Dialogue Generatio

论文:https://arxiv.org/abs/2002.10348

任务

以知识为基础的对话,作为反应生成模型的训练数据,很难获得。本文在有限的训练数据下,进行以知识为基础的对话生成。

在这项工作中,专注于以文档为基础的对话生成,但所提出的方法实际上为低资源知识为基础的对话生成提供了一个通用的解决方案,其中的知识可以是结构化的知识库、图像或视频。要做到这一点,只需要修改知识编码器和知识处理器,使其与特定类型的知识兼容,并预先训练知识编码器。

方法(模型)

在低资源环境下,设计了一个分解反应解码器(disentangled response decoder),以便从整个生成模型中分离出依赖于knowledge-grounded的对话的参数。通过这种方式,模型的主要部分可以从大量无基础的对话和非结构化文档中学习,而剩余的小参数则可以用有限的训练实例很好地拟合。

贡献:

  • 在低资源环境下探索以知识为基础的对话生成
  • 提出了用无基础的对话和文档对以知识为基础的对话生成模型进行预训练的建议
  • 在两个基准上对该模型的有效性进行了实证验证

dataset $D_S$:

$D^S_i$:文档

$U^S_i$:上下文

$r^S_i$:关于$U^S_i , D^S_i$的response

学习目标:生成式模型$P(r|U, D; θ)$

给定文档D和与之关联的对话上下文U,通过$P(r|U, D; θ)$生成响应r。

反应的形成可以分解为三个不相关的行为:

  • 根据已经产生的内容选择一个词,使句子在语言上有效(对应于语言模型)
  • 根据上下文选择一个词,使对话连贯(对应于上下文处理器)
  • 根据额外的知识选择一个词,使对话有基础(对应于知识处理器)

模型结构:*

image-20210715213320064

组成:context encoder, knowledge encoder, decoder, decoding manager

解码器分解为语言模型、语境处理器和知识处理器。这三个部分的隐藏状态是独立的,由Manager协调。

ENCODERS

dialogue context使用GRU编码,将单词序列转化为隐藏层向量序列:

$e^u 1$是$w^u 1$使用GloVe初始化的embedding。

document使用BiGRU编码:

$e^d_{i,j}$是第j个单词使用GloVe初始化的embedding。

编码阶段没有进行knowledge selection,这可以消除上下文编码和知识编码之间的依赖性。

DISENTANGLED DECODER

解码器维护隐藏的序列${st}^{l_r}{t=1}$表示t-1步的单词预测embedding,$s_t$定义为:

DECODING MANAGER

三个decoder组件由解码管理器控制,在响应预测的每一步都有一个组件被拾起。

使用了一个Gumbel trick $π_t$,定义为:

数据集

  • Wizard of Wikipedia (Wizard)
  • CMU Document Grounded Conversations(CMU DoG)

性能水平

  • Wizard respectively

image-20210717113229400

image-20210717113305198

  • CMU DoG

image-20210717113348840

即使数据集缩小,Test Unseen性能相比于Test seen依然稳定,与基线模型相比Test Unseen性能提升更加显著。

ITDD在Test Seen和CMU DoG上都取得了较低的PPL,这可能是由于two_pass解码器的过度拟合。

结论

本文研究了在低资源环境下以知识为基础的对话生成。为了克服训练数据不足带来的挑战,将响应解码器分解为独立的组件,其中大部分参数不再依赖训练数据,可以从大规模的无基础对话和非结构化文档中估计出来。对两个基准的评估结果表明,模型在只有1/8的训练数据的情况下达到了最先进的性能,并且对领域外的知识表现出良好的泛化能力。