引言
现在的模型BERT、RoBERTa、T5存在的问题:句子级的表示能力并没有得到充分的发展,这限制了它们进行密集检索的潜力。
因此产生了开发专门针对检索任务的预训练模型的兴趣。
- 自对比学习:第一种策略是利用自对比学习方法,其中模型被训练以区分正样本和通过数据增强得到的样本。这种方法的一个关键优势是能够通过学习区分相似但不相同的样本来提高模型的区分能力。然而,这种方法的效果严重依赖于数据增强的质量;此外,它通常需要大量的负样本,这可能使得训练过程变得更加复杂和资源密集。
- 自编码:第二种策略依赖于自编码方法,这种方法不受数据增强和负采样限制的影响。自编码策略通过编码-解码工作流来实现,模型学习将输入编码成一个紧凑的表示,然后尝试从这个表示中恢复原始输入。当前的研究工作在于如何设计这一编码-解码流程,以便为面向检索的预训练开发更有效的自编码框架。
现有的方法采用了各种重构任务,如掩码语言模型(MLM)和自回归任务,这些方法在原始句子的恢复方式和训练损失的构建上有很大的区别。例如,自回归依赖于embedding和前缀进行重构,而MLM则利用embedding和掩码上下文。自回归从整个输入token中导出其训练损失,而传统的MLM只从掩码位置(占输入词元的15%)学习。理想情况下,我们期望解码操作足够具有挑战性,这将迫使编码器充分捕获输入的语义信息以确保重构质量。此外,我们也期望实现高数据效率,意味着输入数据可以被充分利用于预训练任务。
自对比学习方法受数据增强质量的限制,而自编码方法虽然克服了这一限制,但如何设计更有效的编码-解码框架仍是一个待解决的问题。
基于自编码的预训练对于两个因素至关重要:
1)重构任务必须对编码质量提出足够的要求;
2)需要充分利用预训练数据。
为了优化这两个方面,提出了RetroMAE模型,该模型通过特定的设计来满足这两个关键因素的要求。
- **创新的MAE工作流:**输入句子在编码器和解码器中通过不同的掩码(mask)被“污染”。sentence
embedding是由编码器处理掩码输入后生成的;然后,基于sentence
embedding和解码器的掩码输入通过MLM恢复原始句子。 - **不对称模型结构:**采用全尺寸BERT类似的transformer作为编码器,和一个单层transformer作为解码器。
- **不对称掩码比例:**编码器采用中等掩码比例(15∼30%),而解码器采用较高的掩码比例(50∼70%)。
RetroMAE模型的设计对于预训练是有益的,主要基于以下几个原因:
- 对编码质量的更高要求:RetroMAE通过对输入进行更激进的掩码处理(相比于传统的掩码语言模型(MLM),后者通常只掩码输入的15%),使得解码过程更加依赖于编码器生成的句子嵌入。在传统的自回归解码过程中,解码器可能会依赖于已经生成的前缀信息来预测下一个词,而RetroMAE通过大量掩码输入,迫使模型更多地依赖于编码器捕获的深层语义信息,从而提高编码的质量和深度。
- 确保训练信号完全来自输入句子:在传统的MLM风格的预训练方法中,训练信号可能只来自于被掩码的15%的输入词。而RetroMAE能够从大多数输入中提取训练信号,因为它对输入进行了更广泛的掩码处理。这意味着模型有更多机会从整个输入句子中学习,而不仅仅是一小部分。
- 增强的解码过程:考虑到解码器仅包含单层,RetroMAE采用了基于两流注意力(two-stream attention)和位置特定的注意力掩码(position-specific attention mask)的增强解码策略。这些技术帮助模型能够利用100%的token进行重构,并且每个token可以为其重构采样一个独特的上下文。这样的设计不仅提高了解码的效率,还增强了模型对于输入句子的理解能力。
两流注意力(Two-Stream Attention)
两流注意力是一种特殊的注意力机制,最初在XLNet中被提出,用于解决自回归语言模型的特定问题。它设计了两种不同的信息流——内容流和查询流:
内容流用于表示位置信息,即在给定上下文中每个词的位置。 查询流则专注于预测的目标词本身,不包含目标词的位置信息。
通过这种设计,两流注意力允许模型在预测下一个词时,同时考虑到上下文信息(通过内容流)和当前词本身(通过查询流),从而提高了模型对上下文的理解和预测能力。
方法
(A) Encoding: 少量masked(15∼30%)
应用了一个具有12层和768个隐藏维度、30522-token词汇表的像BERT一样的编码器,这有助于捕获句子的深度语义。按照通常的做法,我们选择[CLS]标记的最终隐藏状态作为sentence embedding。
(B) Decoding: 大量masked(50∼70%),和sentence embedding(绿)一起输入以重构token 。
解码器Φdec(单层transformer)通过优化以下目标来重构原句子X:
© Enhanced dncoding: 所有的输入token都是基于sentence embedding和每一行中的可见上下文。mask的主对角线用−∞ (灰)填充,可见上下文处用0(蓝)填充。
解码过程的一个限制是,训练信号(即交叉熵损失)只能从被掩码的词元中获得。此外,每个被掩码的词元总是基于相同的上下文进行重构,即 H X ~ d e c H_{\tilde{X}_{dec}} HX~dec。
两流注意力(two-stream attention):
H1:查询流
H2:内容流
位置特定的注意力掩码(position-specific attention mask):
应用以下规则生成特定位置的注意掩码矩阵M:
在重构
x
i
x_i
xi时,采样的token
s
(
X
≠
i
)
s(X \neq i)
s(X=i)和第一个位置(第一行除外)将会是可见的。对角线元素,即第i行的
x
i
x_i
xi,将始终被排除,这意味着它们将始终被掩码;因此,每个token在重构过程中不能参考自身。
实验
主要针对以下两个方面:
1)RetroMAE对零样本和有监督密集检索的影响,并将其与通用预训练模型以及面向检索的预训练模型进行了比较。
2)RetroMAE中4个因素的影响: 1解码方法,2解码器的大小,3解码器的掩蔽比,4编码器的掩蔽比。
实验设置
预训练:
数据集:
English Wikipedia
BookCorpus
MS MARCO
评估:
有监督的检索任务在下面两个数据集上测试:
MS MARCO和Natural Questions
zero-shot的检索任务在下面的数据集上测试:
BEIR benchmark的18个数据集
通用模型:
1)BERT
2)RoBERTa
3)DeBERTa
面向检索的模型:
基于对比学习的:
1)SimCSE
2)LaPraDoR
3)DiffCSE
基于自编码的:
4)Condenser
5)SEED
主要结果
利用DPR和ANCE对预训练后的模型进行了微调:
RetroMAE模型效果的两个主要方面:
-
提高预训练模型的迁移能力:RetroMAE显著增强了预训练模型在不同领域数据集上的零样本性能,即在没有特定领域训练数据的情况下,模型仍能展现出优越的性能。
-
为密集检索提供了强大的初始化:经过特定领域数据的微调后,RetroMAE能够显著提高有监督检索任务的性能,表明其为密集检索任务提供了有效的模型初始化。
除此之外,还有一些有趣的观察发现:
1、在通用领域中,先进的预训练方法并不一定能够提升密集检索的性能。比如RoBERTa、DeBERTa。这一观察进一步支持了开发面向检索的预训练模型的动机。
2、自编码式预训练方法(如SEED、Condenser、RetroMAE)在密集检索任务上表现更为出色。相比于基于通用和自对比学习的预训练模型,采用自编码式预训练的模型在zero-shot评估和有监督评估中都显示了其优势。
3、在特定微调条件下,为了提升模型性能,需要精心设计面向检索任务的预训练算法,而不是简单依赖自对比学习的预训练模型。因为基于自对比学习(self-contrastive learning)的预训练模型相较于通用预训练模型仅带来了非常有限的改进。
消融实验
上表分析了RetroMAE的监督性能(DPR微调),其中分析了以下因素: 1)解码方法,2)解码器的大小,3)解码器的掩蔽比,4)编码器的掩蔽比。
1)解码方法
使用增强解码明显优于基本解码。因为增强解码提高了数据效率。
2)解码器的大小
鉴于增强解码对于提高检索性能至关重要,但它必须在大型解码器(层数大于1)中被禁用,因此,单层解码器被证明是最佳选项。
3)解码器的掩蔽比
在使用增强解码的情况下(w.),最优性能在遮蔽比例为0.5时达到。
在不使用增强解码的情况下(w.o.),最优性能在遮蔽比例为0.7时达到。
这种细微的差异可能是因为,在使用增强解码的情况下,所有输入token都可以被重构,而在不使用增强解码的情况下,只有被遮蔽的token被重构。因此,后者可能需要更大的遮蔽比例来增加训练信号。
4)编码器的掩蔽比
将编码器的遮蔽比例从通常使用的0.15增加到0.3,可以改善经验性能。
相比之下,编码器的过高遮蔽比例(例如0.9)会严重损害检索性能。这是因为过大的遮蔽比例会导致丢弃过多有用信息,阻碍生成高质量的句子嵌入。
局限
更大的网络、更大的数据量