Press "Enter" to skip to content

三个模型之间的级联知识蒸馏!百度提出自动态蒸馏方法ERNIE-Search,将交叉编码器与双编码器桥接以…

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

关注公众号,发现CV技术之美

 

 

 

本篇分享论文 『ERNIE-Search: Bridging Cross-Encoder with Dual-Encoder via Self On-the-fly Distillation for Dense Passage Retrieval』 ,三个模型之间的级联知识蒸馏!百度提出自动态蒸馏方法ERNIE-Search,将交叉编码器与双编码器桥接以实现密集段落检索!在开放域 QA 任务上SOTA!

 

详细信息如下:

 

 

论文地址:https://arxiv.org/abs/2205.09153

 

       01       

 

摘要

 

基于预训练语言模型(PLM)的神经检索模型,如双编码器,在开放域问答(QA)任务中取得了良好的性能。通过整合跨架构的知识蒸馏,它们的有效性可以进一步达到新的水平。然而,现有的大多数研究只是直接应用传统的蒸馏方法。他们没有考虑到教师和学生结构不同的特殊情况。

 

在本文中,作者提出了一种新的蒸馏方法,该方法显着提高了双编码器的跨架构蒸馏。本文的方法1)引入了一种 自动态蒸馏方法 ,该方法可以有效地将后期交互(即ColBERT)蒸馏到vanilla双编码器,2)结合了 级联蒸馏 过程,以进一步提高交叉编码器教师的性能。作者进行了大量的实验,以验证本文提出的解决方案优于强baseline,并在开放域QA基准上建立了一个新的最先进水平。

 

       02       

 

Motivation

 

开放领域问答(QA)旨在通过大量语料库中的段落来回答因素类问题,而这项任务的实际解决方案通常采用先检索后重排(retrieve-then-rerank)的范式。近年来,预训练语言模型(PLM)在许多自然语言处理任务上取得了巨大成功。基于PLM的检索器和重排器还为开放域QA提供了一流的性能,双编码器和交叉编码器是最常见的检索器和重排器。

 

实证研究证明,更好的检索器可以转化为更好的端到端QA系统,而具有大量参数的双编码器的有效性在很大程度上依赖于大规模带注释的训练数据,而获取这些数据的成本很高。最近,知识提炼(KD)已成为解决这一问题的重要组成部分,其中广泛的研究旨在将更有能力的教师提炼成双编码器学生。这些方法也可以被视为是对教师产生的伪监督的数据补充。

 

更具体地说,交叉编码器和ColBERT是两种常用的教师模型。交叉编码器允许查询和段落之间的完全token级交叉交互,从而为双编码器学生提供更准确的监督。ColBERT 是双编码器的一种变体,它通过更具表现力的后期交互来推进双编码器的简单度量交互(例如,点积)。

 

它允许对批量负样本进行蒸馏,这对于训练双编码器至关重要。此外,也有少数研究采用了多教师蒸馏,即同时使用交叉编码器和 ColBERT 作为教师。值得注意的是,所有这些研究都验证了使用这种跨架构蒸馏设置改进双编码器是卓有成效的,其中教师比双编码器学生配备了更具表现力的查询-段落交互。

 

尽管取得了一定成功,但一个相当被忽视的问题是,跨架构蒸馏提供的知识是否可以完全由双编码器学习。这种担忧来自于交叉编码器中编码的底层语义和双编码器本质上是不同的。目前的跨架构提炼方法可能是次优的,因为它们只是简单地使用交叉编码器的预测(即硬标签或软标签)作为监督信号。更具体地说,具有表现力的交叉交互(即交叉编码器)所编码的知识是否能被具有简单度量交互(如点积)的双编码器有效地提炼出来是值得怀疑的。

 

受此启发,作者重新审视了交叉交互(例如,交叉编码器)、后期交互(例如,ColBERT)和度量交互(即,双编码器)之间的关系,在此基础上,作者提出了一种新的蒸馏范式,可以改进双编码器检索器的跨架构蒸馏(称为 ERNIE-Search)。

 

作者首先提出交互蒸馏,其中教师和学生共享相同的编码层,但具有不同的交互方案。这种方法可用于蒸馏后期交互(即 ColBERT)→度量交互(即双编码器),其中学习简单的度量交互以模仿更具表现力的后期交互。由于教师和学生被限制共享相同的转换器编码器,这种方法可以减轻两个模型具有不同表达知识方式的风险。因此,它更集中于不同交互方案的蒸馏。

 

接下来,进行级联蒸馏,执行交叉交互→后期交互→度量交互的蒸馏。直觉是,后期交互模型(例如,ColBERT)可以被认为是一个教师助理,它弥合了交叉编码器和双编码器之间的结构差距。更具体地说,作者利用 ColBERT 的后期交互来提炼交叉编码器的细粒度token级交互知识,最终的双编码器可以进一步提炼这些知识。

 

作者在两个大型 QA 数据集上评估了本文提出的方法:MS MARCO Passage Ranking和 Natural Question (NQ) ,本文的结果达到了与几个baseline相当或更好的性能。所提出的解决方案在开放域 QA 任务上建立了新的最先进的性能。

 

       03       

 

方法

 

本节描述了一种用于开放域 QA 的密集段落检索的新训练方法,即 ERNIE-Search。ERNIE-Search 的核心思想是自动态蒸馏,通过共享编码器和不同的交互方案共同训练教师和学生。

 

3.1 Preliminaries

 

Task Description

 

开放域 QA 的任务如下。给定一个事实问题,系统需要使用大量文档来回答它。假设集合包含 D 个文档,。首先将 D 个文档分成 M 个段落以获得语料库,其中每个段落有 k 个token。

 

Dual-encoder

 

对于密集段落检索器,最近的研究通常开发双编码器架构。它包含和,它们是密集编码器,分别将段落和查询映射到 d 维向量。查询 q 和候选段落 p 的语义相关性可以使用它们的向量的点积计算为:

 

 

具体来说,使用预训练语言模型 (PLM) 作为两个编码器,它们产生特殊token(即 [CLS])的表示作为输出。相关性分数是通过两个表示之间的简单度量交互(例如,点积)计算的。

 

Cross-encoder

 

研究人员开发了段落重排序模型(即重新排序器),以在检索候选段落后进一步改进端到端 QA。使用交叉编码器作为重新排序器通常可以获得卓越的性能。与双编码器不同,交叉编码器计算相关性分数,其中输入是 q 和 p 与特殊token [SEP] 的concat结果。随后,输出的 [CLS] 表示被输入线性函数以计算相关性分数。交叉编码器可以在每个Transformer层中实现 q 和 p 的交叉交互,因此有效但效率低下。

 

ColBERT

 

ColBERT 可以被视为具有后期交互的更具表现力的双编码器。对于问题 q 和文章 p,ColBERT 的相关性分数计算如下:

 

 

其中和分别表示每个查询和段落token的输出表示。

 

3.2 Interaction Distillation

 

作者首先提出交互蒸馏,它允许对后期交互(即 ColBERT)→度量交互(即双编码器)进行蒸馏。与传统的蒸馏范式不同,本文使用共享编码器和不同的交互方案联合训练教师(即ColBERT)和学生(即双编码器)。这将促使训练更加集中于将复杂的后期交互提炼为简单的度量交互。

 

给定查询中的查询 q 和候选段落列表,将每个 q, p 对输入查询和段落编码器,并输出token表示。基于最终表示,用度量交互(即,如在双编码器中)和后期交互(即,如在 ColBERT 中)计算两个相关性分数和。将候选段落的分数概率分布公式化如下:

 

 

交互蒸馏的目标是最小化更具表现力的交互(即)的评分分布和更简单的交互(即)的分布,其中损失可以通过KL散度测量为:

 

 

除了蒸馏损失,作者还使用token数据在开放域 QA 任务上训练两种交互方案,其中损失可以定义为:

 

 

其中 N 是负段落样本的数量。在每个输入三元组中,使用分别表示查询、正段落和第 j 个负段落。最终的损失函数是上面定义的三个损失的组合,即:

 

 

 

上图说明了交互蒸馏。作者使用两种不同的交互方案优化相同的编码器,其中简单的度量交互是从更复杂的交互中提炼出来的。在训练过程中,交互蒸馏有效地弥合了不同交互之间的差距,并最终确定了一个可用于提取更复杂交互的模型。此外,它是有效的,因为它只需要一个feed-forward步骤即可产生教师和学生的分数。

 

3.3 Cascade Distillation

 

在交互蒸馏之后,作者可以通过更强大的交叉编码器的蒸馏来进一步改进双编码器。然而,交叉编码器的交互方案比后期交互更复杂,其中交叉编码器捕获的token级交互对于双编码器学习来说是不可能学习的。为此,作者提出了级联蒸馏,旨在缓解交叉编码器和双编码器之间的差距。

 

级联蒸馏的基本直觉是将后期交互视为简化的token级交叉交互,以弥合上述差距。作者可以将交叉交互→度量交互的蒸馏过程分解为两个级联步骤,即交叉交互→后期交互→度量交互,逐渐将知识从交叉编码器转移到双编码器。

 

Cross-interaction → late interaction

 

为了将交叉编码器提取为替代 ColBERT 模型,首先类似于相关性分数的输出概率分布,其中损失可以定义为:

 

 

其中,

 

 

这里使用来表示交叉编码器教师产生的相关性分数。

 

除此之外,token级别的交互对于后期交互模型(即 ColBERT)的学习也是至关重要的。受此启发,作者进一步引入了一个提取token级注意力的损失函数,即:

 

 

其中,

 

 

这里,表示交叉编码器得到的最终级别的注意力图,表示由计算的 ColBERT 的后期交互值。下标i表示n个head中的第i个head,l、k分别是query和passage的长度。

 

Late interaction → metric interaction

 

为了进一步将 ColBERT 提炼成双编码器,作者应用了与交互蒸馏相同的过程。

 

Joint training

 

 

整个级联蒸馏过程如上图所示。值得注意的是,两个蒸馏过程是联合训练的,其中最终损失函数定义为:

 

 

这里,是交叉编码器在标记数据上的监督训练损失。此外,最终损失还包括交叉编码器到双编码器的蒸馏损失(表示为),即:

 

 

3.4 Dual Regularization

 

受先前研究的启发,作者还提出了一种用于训练双编码器的正则化方法,即双正则化。首先使用不同的 dropout seeds对给定的段落执行两次前馈,并获得两个段落表示。接下来,分别将查询表示与这两种表示进行交互以获得输出分布和。基于此,对偶正则化的目标是最小化两个分布之间的双向 KL 散度。两个输出分布是使用相同的查询表示计算的。

 

此外,作者还可以在交互蒸馏期间应用对偶正则化,即后期交互也会输出两个评分分布和。因此,对偶正则化的最终损失函数由两个双向 KL 散度损失组成。

 

       04       

 

实验

 

 

作者对两个流行的开放域 QA 基准进行了实验:MSMARCO Passage Ranking (MSMARCO)和 Natural Questions (NQ)。数据集的详细统计数据见上表。

 

 

作者提出了三个模型变体,模型的具体参数如上表所示。

 

 

MSMARCO 和 NQ 的检索性能比较如上表所示。

 

 

作者通过替换 Post-Train 策略中的优化形式来分析检索器的结果。上表显示了消融结果。此表中的所有实验都是没有级联蒸馏阶段的训练。

 

 

在本节中,作者通过逐步添加策略来分析交互蒸馏的结果。上表显示了相互作用蒸馏的所有消融实验结果。

 

 

上表显示了检索器对级联蒸馏的所有消融实验结果。我们可以看到,联合使用所有损失可以获得最佳性能。当消除这些损失中的一个或多个时,检索器的性能较差,这表明级联蒸馏从所有损失中受益。

 

       05       

 

总结

 

在本文中,作者提出了一种新颖的解决方案,可以促进开放域 QA 的跨架构蒸馏。具体来说,作者提出了两种蒸馏方法,即交互蒸馏和级联蒸馏,它们显着提高了双编码器作为检索器的有效性。作者对几个开放域 QA 基准进行了广泛的实验,并表明本文提出的解决方案实现了最先进的性能。

 

参考资料

 

[1]https://arxiv.org/abs/2205.09153

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。