文档检索任务的目标是在海量的文本库中检索出和给定查询语义近似的文本。在实际场景应用中,文档文档库的数量会非常庞大,为了提高检索效率,检索任务一般会分成两个阶段,即初筛和精排阶段。在初筛阶段中,模型通过一些检索效率高的方法筛选出一部分候选文档,作为后续精排阶段的输入。在精排阶段,模型使用高精度排序方法来对候选文档进行排序,得到最终的检索结果。

随着预训练模型的发展和应用,很多工作开始将查询和文档同时送入预训练进行编码,并输出匹配分数。然而,由于预训练模型的计算复杂度较高,对每个查询和文档都进行一次计算耗时较长,这种应用方式通常只能在精排阶段使用。为了加快检索速率,一些工作开始使用预训练模型单独编码文档和查询,在查询前提前将文档库中的文档编码成向量形式,在查询阶段,仅需利用查询编码和文档编码进行相似度计算,减少了时间消耗。由于这种方式会将文档和查询编码为稠密向量形式,因此这种检索也称作“稠密检索”(Dense Retrival)。

一个基本的稠密检索方法会将文档和查询编码成为一个向量。然而由于文档包含的信息较多,容易造成信息丢失。为了改进这一点,有些工作开始对查询和文档的向量表示进行改进,目前已有的改进方法大致可分为三种,如下图所示:

我们的工作从改进文档的编码入手来提高文档编码的语义表示能力。首先,我们认为稠密检索的主要瓶颈在于编码时,文档编码器并不知道文档中的哪部分信息可能会被查询,在编码过程中,很可能造成不同的信息互相影响,造成信息被改变或者丢失。因此,我们在编码文档的过程中,对每个文档构建了多个“伪查询向量”(Pseudo Query Embeddings),每个伪查询向量对应每个文档可能被提问的信息。

具体而言,我们通过聚类算法,将BERT编码的Token向量进行聚类,对每个文档保留Top-k个聚类向量,这些向量包含了多个文档Token向量中的显著语义。另外,由于我们对每个文档保留多个伪查询向量,在相似度计算时可能造成效率降低。我们使用Argmax操作代替Softmax,来提高相似度计算的效率。在多个大规模文档检索数据集的实验表明,我们的方法既可以提高效果也提高了检索效率。

成为VIP会员查看完整内容
6

相关内容

【SIGIR2021】基于嵌入的增量式时序知识图谱补全框架
专知会员服务
60+阅读 · 2021年4月21日
【AAAI2021】预训练用户表示提升推荐
专知会员服务
42+阅读 · 2021年2月8日
【知乎】超越Lexical:用于文本搜索引擎的语义检索框架
专知会员服务
21+阅读 · 2020年8月28日
【ACL2020】端到端语音翻译的课程预训练
专知会员服务
5+阅读 · 2020年7月2日
基于表示模型的文本匹配方法
AINLP
6+阅读 · 2020年5月8日
论文浅尝 | 基于复杂查询图编码的知识库问答
开放知识图谱
17+阅读 · 2019年7月22日
进一步改进GPT和BERT:使用Transformer的语言模型
机器之心
16+阅读 · 2019年5月1日
最新论文解读 | 基于预训练自然语言生成的文本摘要方法
微软研究院AI头条
57+阅读 · 2019年3月19日
全局语义语境能改善神经语言模型吗?
深度学习与NLP
3+阅读 · 2018年10月8日
干货 | 如何从编码器和解码器两方面改进生成式句子摘要?
微软研究院AI头条
8+阅读 · 2018年3月28日
Hyperbolic Graph Attention Network
Arxiv
6+阅读 · 2019年12月6日
Arxiv
6+阅读 · 2019年8月22日
S4Net: Single Stage Salient-Instance Segmentation
Arxiv
10+阅读 · 2019年4月10日
VIP会员
相关资讯
基于表示模型的文本匹配方法
AINLP
6+阅读 · 2020年5月8日
论文浅尝 | 基于复杂查询图编码的知识库问答
开放知识图谱
17+阅读 · 2019年7月22日
进一步改进GPT和BERT:使用Transformer的语言模型
机器之心
16+阅读 · 2019年5月1日
最新论文解读 | 基于预训练自然语言生成的文本摘要方法
微软研究院AI头条
57+阅读 · 2019年3月19日
全局语义语境能改善神经语言模型吗?
深度学习与NLP
3+阅读 · 2018年10月8日
干货 | 如何从编码器和解码器两方面改进生成式句子摘要?
微软研究院AI头条
8+阅读 · 2018年3月28日
微信扫码咨询专知VIP会员