RetroMAE+key word=RetroMAE-2

提纲

1 简介

2 RetroMAE-2

3 实验结论

4 总结

参考文献

1 简介

北邮跟华为的团队在22年提出了检索模型的预训练方法RetroMAE后,采用了该方法的语言模型BGE于近日成功夺得MTEB榜首位置,进一步调研后发现,该团队在23年该方案的进阶版RetroMAE-2,并将该方法发表于ACL2023会议上。  



目前大多数跟句子表征相关的工作都集中于如何提升语义表征能力,但是  **最近研究发现包括[CLS]在内的普通token可能携带更多额外信息,而这有助于提供一个更加高质量的句子表征。基于此,RetroMAE-2将句子表征生成从[CLS]扩展到全部token的嵌入向量,** 它包括两个互补的自动编码任务,其一利用[CLS]的向量重建原文本,其二利用其他token(后文称OT,意为ordinary token)的向量来预测原文本中的词袋信息(bag-of-word)。

picture.image

图1: RetroMAE-2总览

2 RetroMAE-2

RetroMAE-2,是一种针对检索的预训练方法,又称为DupMAE(Duplex Masked Auto-Encoder)。整体框架如下图所示,包括Encoding,[CLS] decoding, OT decoding几个部分。

picture.image

图2: RetroMAE-2框架 ‍ ‍ ‍ ‍ ‍ ‍ ‍

Encoding

这部分沿用RetroMAE的设计,为[CLS]跟其他普通token生成合适的向量表征。  **需要注意的是RetroMAE只关注[CLS]表征的质量,而RetroMAE-2对于其他普通token表征也有要求,因为后续的OT decoding会用到。** 

[CLS] decoding

这部分沿用RetroMAE里的Enhanced Decoding,利用[CLS]的向量表征重建原文本。

OT Decoding

设计OT decoding的训练任务时有两个考量,其一是要沿用[CLS] decoding的理念,使用极其简单的解码网络就可以实现,  **其二是训练目标要跟[CLS] decoding有所不同,从而使得[CLS]跟其他token两种不同类型的表征所提取的信息能够互补,提高整体表征的能力** 。


具体做法为在获得那些没有被mask掉的token的向量表征后,利用一个线性层,将每个token的隐层表示维度映射到语言模型词表数|V|,(可以理解为一个分类模块,预测原文本每个位置的表征属于词表中每个词概率),在利用一个max-pooling层聚合了所有token的隐层表示,最终的训练目标自然是希望能尽可能还原出原本中的词表信息。

picture.image

  **RetroMAE-2整体损失包括三部分,Encoding部分的MLM损失,[CLS] deocding部分的自重建损失以及OT decoding部分的预测损失。** 

句子表征

具体推理时,句向量应该如何得到的?  **RetroMAE-2的设计是让[CLS]跟其他token携带互补的信息,所以使用它来生成句向量也应该同时使用到这两者** ,具体操作就是首先利用一个线性层将[CLS]的表征映射到一个更低维度,然后第二步就是将OT embedding进行稀疏化,类似于关键词提取,保留最重要的K个普通token的表征。将这两部分信息拼接起来,作为原文本表征。在计算两个不同文本之间相似度时具体计算方式也有所差异。

picture.image

 **在finetune阶段,encoder会经历三个不同阶段的训练,第一阶段是利用同个batch里的数据作为负样本的对比学习,第一个阶段是利用ANN获得hard negative进行对比学习,第三个阶段是利用cross-encoder给数据打分来进行对比学习。后面实验中的stage指的就是这几个阶段。** 

3 实验结论‍‍‍‍‍‍‍‍‍

a) 在监督数据集跟zero-shot场景上,DupMAE效果超越其他方法,取得明显领先。

picture.image

图3: 监督场景性能对比

picture.image

图4: zero-shot场景性能对比

b)  **通过消融实验,发现[CLS] decoding跟OT decoding联合可以获得最佳效果,两者缺其一都会导致性能下降,同时发现CLS decoding only优于RetroMAE,说明引入OT embedding的DupMAE能提升模型整体的语义表征能力。** 

picture.image

图5: 消融实验

4 总结‍‍‍‍‍‍‍‍‍

  **总体感觉RetroMAE-2等同于RetroMAE+key word,原有的句子整体表征跟关键信息可以更好的代表句子的语义,从而提升模型在诸多场景下的性能。这个做法也很符合直观理解,为了更加凸显句子的关键信息,在推理时也有利用关键词抽取模块来对query做增强的做法,这跟RetroMAE-2也算异曲同工。** 

看完这个文章其实有个疑问,RetroMAE-2将OT embedding映射成类似key word(只保留top_K个)的稀疏表示是否有必要?直观上感觉直接使用OT embedding更加合理,文中这种额外的映射还会带来信息的损失,论文也没有相关的实验去验证这种稀疏表示的优势所在。

参考文献

RetroMAE-2: Duplex Masked Auto-Encoder For Pre-Training Retrieval-Oriented Language Models

https://aclanthology.org/2023.acl-long.148.pdf

0
0
0
0
评论
未登录
暂无评论