Press "Enter" to skip to content

Back-Training: A New Approach of Unsupervised Domain Adaptation

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

Source: Back-Training excels Self-Training at Unsupervised Domain Adaptation of Question Generation and Passage Retrieval

 

TL;DR: 本文提出了一种新的领域自适应方法:back-training,传统的self-training生成的训练数据的输入是真实的,而输出是生成的,back-training生成的训练数据的输入是生成的,而输出是真实的,作者通过实验证明了相比于self-training,back-training生成的训练数据可以在目标域上训练出性能更好的模型。

 

Introduction

 

构建高质量的垂直领域问答模型往往需要大量的人工标注数据,然而垂直领域的问答对的标注成本通常是非常高的,常常需要标注人员具有一定的领域知识,因此如何借助迁移学习(Transfer Learning)或领域自适应(Domain adaption)的方法来减少人工标注成本是一个受到了广泛关注的问题。

 

一种最常用的领域自适应方法是self-training,其基本思路很简单,就是先在标注数据丰富的源域(source domain)上训练可以为目标域(target domain)生成标注数据的模型,然后用该模型为目标域生成训练数据(synthetic data),最后在这些生成的训练数据上训练我们想要的模型。为了提升生成数据的质量,通常还会加上一致性检查(consistency check)和迭代优化(iterative refinement)的训练技巧。

 

Back-training

 

然而迁移学习的效果往往差强人意,self-training生成的数据并不一定能够在目标域上训练出足够优秀的模型,本文提出了一种新的领域自适应方法:back-training,该方法的思想和机器翻译中的back-translation很相似。

 

相比于self-training,back-training对目标域的无监督数据是有要求的,具体来说,假设我们希望在目标域上训练出一个问题生成模型 ,那幺self-training只要求目标域数据包含段落(paragraphs) 就行了,而back-training要求目标域数据不仅要有段落 ,还要有问题 ,但段落和问题并不需要对齐。这样的假设在实际应用中是很常见的,在一些垂直领域上,段落和问题都相对容易获得,但对齐的段落和问题却很难获得,如果想要人工标注对齐的话,通常需要很强的领域知识。

 

本文重点关注问题生成(question generation)和段落检索(passage retrieval)任务,设源域数据集为 ,目标域数据集为 ,注意 是没有对齐的,任务目标是学习出可以在目标域上表现良好的问题生成(QG)模型和段落检索(IR)模型的参数

 

以问题生成任务为例,self-training和back-training的训练过程分别是:

self-training: 首先在源域上训练一个问题生成模型 ,然后用该模型为目标域的段落 生成问题 ,最后用生成的 来微调 得到最终的问题生成模型
back-training: 首先在源域上训练一个段落检索模型 ,然后用该模型为目标域的问题 检索段落 ,最后用生成的 来微调 得到最终的问题生成模型

我们可以发现self-training生成的数据为 ,而back-training生成的数据为 ,也就是说self-training生成的输入是真实的,但输出是有噪声的,而back-training生成的输入是有噪声的,但输出是真实的。直观来看,输出的真实性比输入的真实性更为重要,因为输出直接影响着后续的评估指标。

 

下面的训练流程更清晰地展现了self-training和back-training的差异。

Experiment

 

接下来,作者通过一个具体的任务来验证了back-training相比于self-training的优越性。

 

Dataset

 

源域数据集采用的是通用领域的NaturalQuestions数据集,目标域数据集采用的是作者自制的MLQuestions数据集,该数据集包含35000条采自Google Search的机器学习领域的问题和50000个采自Wikipedia的机器学习领域的段落,数据采集过程可参考原文。

 

从下表我们可以看出,这两个数据集的分布是相当不同的,因此想用无监督的方法在目标域上训练QG或IR模型是具有一定的挑战性的。

Model

 

问题生成模型 采用BART,段落检索模型 采用DPR,这两个模型不用作过多介绍。

 

Result

 

Transfer from Source to Target Domain without Adaptation

 

如果直接将在NaturalQuestions数据集(IID)上训练的模型用到MLQuestions数据集(OOD)上,对应的评估指标通常会掉一大半。

No-adaptation vs self-training vs back-training

 

下表展示了三种不同的训练策略给出的模型表现,可以发现back-training比起self-training有明显的性能提升。

Qualitative analysis of self-training and back-training

 

下图展示了训练过程中模型从源域迁移至目标域时,在生成数据集和测试数据集上生成问题的困惑度变化曲线,对于back-training,模型在生成数据集和测试数据集上的困惑度是成正比的,即back-training生成的数据和目标域的真实分布更加接近,而self-training虽然在生成数据集上取得了较低的困惑度,但在测试数据集上的困惑度反而变高了,这说明self-training生成的数据集和真实分布不一样,生成数据的分布更偏向于源域,因此产生了过拟合。

下图展示了self-training和back-training生成数据的置信度分布,可以发现back-training生成的数据具有低均值,高方差的特点,这表明生成的数据更富有多样性,而self-training生成的数据则缺少多样性。

Consistency filters for Self-Training and Back-Training

 

在self-training中,人们通常会设置一个判别模型来过滤掉低置信度的生成样本。作者尝试了两种过滤策略:

Self-Consistency: 生成模型和判别模型是同一个模型,即过滤掉生成置信度较低的样本;
Cross-Consistency: 生成模型和判别模型不同,比如用额外的QA模型来判断QG模型生成的QA对是否一致,该策略其实就是两年前谷歌提出的roundtrip consistency。

由于问题生成和段落检索是对偶任务,因此这两种过滤策略其实可以结合起来,再加上常用的bootstrap迭代优化,就形成了下图所示的训练流程:

Are consistency filters useful?

 

加入一致性过滤能带来一定的效果提升,但目前实验结果还不完整。

Is iterative refinement useful?

 

迭代优化的训练过程对back-training是有用的,但是对self-training的作用不明显。

Human Evaluation Results

 

作者也采用了人工评估的方式来评估不同训练方法的效果,如下表所示,back-training在各个评估维度上都有所改进。

Analysis of Question Types

 

源域和目标域的问题类别分布是不一样的,从下图我们可以发现模型生成了很多Description类的问题,较少地生成了Explanation和Preference类问题,这和NaturalQuestions数据集和MLQuestions数据集的分布差异是强相关的。

Discussion

 

back-training利用到了问题生成任务和段落检索任务之间的对偶性质,这样的对偶任务其实并不少见,比如图像问题生成(Visual Question Generation)和图像检索( Retrieval)也适用于back-training,直观上来说,back-training相比于self-training引入了更多的信息,因此效果远比self-training好,不过这些结论依旧缺乏更严谨的理论分析。

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注