【论文阅读】Multi-View Document Representation Learning for Open-Domain Dense Retrieval

论文阅读1:Multi-View Document Representation Learning for Open-Domain Dense Retrieval

论文来源:ACL2022
论文地址:https://arxiv.org/abs/2203.08372

领域:检索,密集检索(Dense Retrieval),初次检索,文档表示

做法简介:用多个embeddings表示一个文档;设置局部损失让embeddings避免坍缩成1个,以改善文档表示

阅读前的碎碎念

接下来详细解释一下论文的一些点,因为本人也是科研小白,所以可能有的东西不是很了解,说错的望各位海涵。

主要思路

这部分主要介绍作者考虑了哪些内容,包括如何输出文档表示、如何训练模型(当然包括数据集的简单介绍)和一些其他的小细节。

初次检索相关

1.检索体系结构

论文中列举了检索的几种模型体系
用于检索/重新排序的不同模型体系结构的对比
作者最后选择了Bi-encoder的形式做密集检索,这种方式可以由ANN(近似最近邻)支持,好处是查询很快

2.如何计算查询和文档的相关度

计算评分的方式则是采用相似度函数代替查询和文档的相关性
相似度度量函数
相似度函数可以取向量相似度、欧氏距离等等

本文考虑了多个评分(可以结合下图看)
全局-局部损失多视图表示学习的一般框架。灰色块表示不同层次的分数类别。
其中,个人分数由查询表示和文档每个句子的表示计算,用它们的内积表示;聚合分数取这些相似度中最大的那个作为表示(max-pooler)
聚合分数的计算

小小的总结

总之这部分主要说的是,我们是先用向量表示句子或者查询,然后再通过函数计算相似性的,这很自然。

模型相关

向量表示

1.采用模型输出的哪个部分作为向量表示?

毫无疑问采用了BERT。
但并不是采用[CLS]输出的向量或者mean_pooling,而是采用了全新的特殊标记[VIE],这些标记将添加在文本前,与文本一同输入模型。
这些标记将会随机初始化,为了不影响句子顺序,它们的位置编码将被统一设置成0
模型输入
最后使用特殊标记的last_hidden_state的输出的作为文本表示

2.查询向量表示

查询只需要用1个向量表示,作者给出的理由是:
1.查询相对文档比较短 2.查询的语义是比较单一的

3.文档向量表示

文档需要用多个向量表示,作者对确认K的数量进行了一些小的实验,分别实验了K=4,6,8,12是否会影响表示效果,最后发现K=8的时候效果最好,而K增大到12以上,表现有微小下降,猜测一个文档可能是没有那么多视图。

训练损失

训练损失是最近经常用的对比学习(请注意,这篇论文选的都是有监督数据集),主要分为全局损失和局部损失(可以看一下相关度那张图上的部分)

总损失

总体损失
λ,字面意义上来看,它“指导”模型更应该关注哪部分的损失。作者做了一个实验确定λ选多少比较好,最后发现λ=0.01表现比较好

在SQuAD上的实验

全局损失

全局损失表示
这个大概没啥好解释的,就是和“负文档”对比,τ是一个超参数,用于缩放温度,总之就是τ取合适的调优效果就会更好

局部损失

局部损失
上文说到了这个多向量表示的目的是让文档不同的部分匹配不同的查询,则局部损失是使得查询与现在的这个viewer(也就是其中一个文档表示向量)距离更近,viewer之间离得远一点。

数据集

一共采取了3个数据集,Natural Questions,TriviaQA,SQuAD Open
简略的介绍一下它们的情况。

NQ简介:https://paperswithcode.com/dataset/natural-questions

TQ简介:https://paperswithcode.com/dataset/triviaqa

SQuAD简介:https://paperswithcode.com/dataset/squad

(作者处理了一下数据集 Both NQ and TQA have about 60K training data after processing and SQuAd has 70k. )
以下是全部数据集的大小

NQTQSQuAD
数据集来源WikipediaWikipedia/WEBWikipedia
训练集大小307,373950K107,785(536 articles)
测试集大小7,842?-
验证集大小7,830--
效果

分别评估了TOP 5/TOP 20/TOP 100的准确率
实验效果
当然后面还有对比查询速度,以及不同实验参数取得的效果,就不赘述了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值