通过Token实现多视角文档向量表征的构建

描述

写在前面

今天给大家带来一篇ACL2022论文MVR,「面向开放域检索的多视角文档表征」,主要解决同一个文档向量与多个语义差异较大问题向量语义不匹配的问题。通过「插入多个特殊Token」实现多视角文档向量表征的构建,并为了防止多种视角间向量的趋同,引入了「退火温度」的全局-局部损失,论文全称《Multi-View Document Representation Learning for Open-Domain Dense Retrieval》。

该篇论文与前两天分享的DCSR-面向开放域段落检索的句子感知的对比学习一文有异曲同工之妙,都是在检索排序不引入额外计算量的同时,通过插入特殊Token构建长文档的多语义向量表征,使得同一文档可以与多种不同问题的向量表征相似。

编码器

并且目前的检索召回模型均存在一些缺陷:

Cross-encoder类模型(BERT)由于计算量太大,无法在召回阶段使用;

Bi-encoder类模型(DPR)无法很好地表现长文档中的多主题要素;

Late Interaction类模型(ColBERT)由于使用sum操作,无法直接使用ANN进行排序;

Attention-based Aggregator类模型(PolyEncoder)增加了额外运算并且无法直接使用ANN进行排序。

编码器

模型

编码器

通常向量表征时,采用特殊字符[CLS]对应的向量表征作为文本的向量表征。为了获取文档中更细粒度的语义信息,MVR引入多个特殊字符[VIE]替代[CLS]。

对于文档来说,在文本前插入多个字符[],为了防止干扰原始文本的位置信息,我们将[]的所有位置信息设置为0,文档语句位置信息从1开始。

对于问题来说,由于问题较短且通常表示同一含义,因此仅使用一个特殊字符[VIE]。

模型采用双编码器作为骨干,分别对问题和文档进行编码,如下:

其中,表示链接符,[VIE]和[SEP]为BERT模型的特殊字符,和分别为问题编码器和文档编码器。

如上图所示,首先计算问题向量与每个视角的文档向量进行点积,获取每一个视角的得分,然后通过max-pooler操作,获取视角中分值最大的作为问题向量与文档向量的得分,如下:

为了防止多种视角间向量的趋同,引入了带有退火温度的Global-Local Loss,包括全局对比损失和局部均匀损失,如下:

其中,全局对比损失为传统的对比损失函数,给定一个问题、一个正例文档以及多个负例文档,损失函数如下:

为了提高多视角向量的均匀性,提出局部均匀性损失,强制将选择的查询向量与视角向量更紧密,原理其他其视角向量,如下:

为了进一步区分不同视角向量间的差异,采用了退火温度,逐步调整不同视角向量的softmax分布,如下:

其中,为控制退火速度的超参,为模型训练轮数,每训练一轮,温度更新一次。注意:在全局对比损失和局部均匀损失中,均使用了退火温度。

实验

如下表所示,MVR方法对比于其他模型,获取了更好的效果。

编码器

并且,通过实验发现,当视角个数选择8时,MVR模型效果最佳。

编码器

针对Global-Local Loss进行消融实验,发现当没有局部均匀损失和退火温度时,会使得效果下降;当两者都没有时,效果下降更加明显;并且一个合适退火速度,对训练较为重要。

编码器

相比于其他模型来说,在文档编码阶段和检索召回阶段的速度基本没有影响,但由于需要存储多个视角向量,因此造成存储空间变大。

编码器

并且,对比了简单的句子切割或者等片段截断方法获取一个文本的多个向量表征,发现其效果均不理想,与DCSR一文观点一致。

编码器

总结

该论文为了对长文档更好地进行向量表征,引入多个特殊字符,使其生成「多种不同视角的向量表征」,解决了同一个文档向量与多个语义差异较大问题向量语义不匹配的问题。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分