作者 | 上杉翔二

悠闲会 · 信息检索

整理 | NewBeeNLP

今天整理一篇来自TOIS 21'的 First-stage Retrieval 第一阶段检索综述的文章。第一阶段检索即是国内一般成为召回的阶段recall stage,也有人称为ranking stage或者search stage,这篇综述文章内统一称为“第一阶段检索”。

  • paper:Semantic Models for the First-stage Retrieval: A Comprehensive Review

  • https://arxiv.org/pdf/2103.04831.pdf

  • code:https://github.com/caiyinqiong/Semantic-Retrieval-Models

现代的信息检索系统一般都采用「多阶段的搜索架构」来平衡系统对于效率和性能的需求,如下图1所示,文档库--第一阶段检索(召回)--多个重排(包括重排精排混排等)--呈现结果。这里的第一阶段检索的最核心的要求是快速从大规模文档库中返回尽可能少的相关候选文档,然后再交给重排精排来进行更复杂的排序。

由于交给重排阶段的文档相对来说数量少,所以模型可以做的很复杂,现在研究者们的主要精力也都放在如何提升重排精度,模型是做的越来越精巧,越来越大。而这种模型又无法被直接应用于召回去处理具有大量候选文档的高吞吐量查询。

相反在第一阶段检索这里的做法,长期以来一直由基于词项的传统模型所主导如BM25(术语匹配+TF-IDF权重)。然而这种基于词项的模型存在一些明显的缺陷:

  1. 由于词独立性假设,容易遭受Query和Document之间的词汇不匹配问题。特别是遇到短、泛的查询。

  2. 由于忽略词序信息,无法很好地捕捉文档的连续性语义。特别是多个连续单词表示的概念不能被正确描述,查询和文档之间匹配的连续或有序的更强相关性不能被很好地反映。

由于这些限制,基于词项的检索模型可能会成为整个排序系统的瓶颈,即一些相关文档从一开始就进入不了重排序,更不用说被展示了。为了解决这个问题,一些早期的语义检索模型就开始了改进和优化,主要有以下几种:

查询扩展

为了解决查询query和文档document之间的不匹配问题,查询扩展技术使用从外部资源来扩展原始查询,以丰富查询表示。通过这种扩展之后的查询,在检索过程中可以很自然的考虑到更多的文档,得到更好的召回效果。扩展的方法主要有:全局方法(同义词搜索)和局部方法(伪相关性反馈(PRF),即根据原始查询检索到的排名最高的文档来调整查询,缺点是比较容易出现漂移)。

文档扩展

以查询扩展的方法对语料库中的文档进行扩展(如使用原始文档作为对集合的查询,并选择10个最相关的文档作为原始文档的扩展文档),然后再像以前一样对这些丰富的文档进行倒排索引和多阶段搜索。缺点是每次扩展技术发生变化时,语料库都需要重新索引太麻烦。

词项依赖模型

依赖关系模型试图通过将词依赖关系合并到表示函数中来解决词序的问题。方法主要有如在倒排索引中扩展字典、用马尔可夫随机场(MRF)来构建词依赖关系。虽然这些方法能够捕获语法和语义,但它们的上下文“理解”能力仍然非常有限。

主题模型

关注单词之间的语义关系,通常将单词的共现关系建模,以发现文本中的潜在主题,并通过它们的主题表示来匹配查询和文档。主题建模分非概率主题模型(如LSI,NMF),和概率主题模型(LDA)。缺点是1主题是无监督难受控;2主题可能和文档是异质的(如语言语法不同);3主题模型将文档表示为紧凑的向量,在词级上失去更详细的匹配信号。

翻译模型

主要用来解决词汇表不匹配的问题,统计机器翻译(SMT)通过将查询视为一种语言的文本,学习从查询到相关相关文档的翻译概率来实现IR。此外统计翻译模型也可以被应用于查询扩展。但由于SMT模型的数据稀疏性,模型难以训练。

深度语义召回

以上的一些早期方法都可以在一定程度上改进传统的词袋表示,在符号空间中用高维稀疏向量表示文本,以便很容易地与倒排索引集成以支持有效的检索。但这些方法总是依赖手工提取的特征来构建表示函数,只能捕捉较浅的语法和语义信息。因此随着深度学习的火热,一些主要的语义召回技术先后出现,主要可以分为三类。

稀疏检索方法(sparse retrieval methods)

使用上下文语义重新评估词项权重或将文本映射到“隐词项”空间来改进传统的基于词项的方法。一般有两种方法,一是神经加权方案( Neural Weighting Schemes):仍然在符号空间中对查询和文档进行编码,但使用神经模型来改进词加权方案,比如基于局部或全局上下文embedding来直接预测项权重。另一种是稀疏表示学习(Sparse Representation Learning):直接学习查询和文档的潜在空间的稀疏表示,如计算n-gram再转到高维稀疏空间以压缩信息并学习数据的低维流形,代表方法如局部敏感哈希(LSH)。

稠密检索方法(dense retrieval methods)

稠密检索方法采用双编码器结构来独立地学习查询和文档的低维稠密向量表示,旨在捕获输入文本的全局语义。一般的架构如上图2,查询和文档的双编码器架构以学习嵌入,然后计算相似度得到相关性得分。所以重点一般集中在如何设计合理的网络架构,可分为词级(term-level representation learning) 和文档级( document-level representation learning)的做法。区别如下图。此处使用的模型从TF-IDF一直到Transformer,BERT多变体等等都可以。在支持在线检索服务的时候,这类方法通常需要借助近似最近邻算法对学习到的表示进行索引和检索。

混合检索方法(hybrid retrieval methods)

混合检索方法为查询和文档定义多个表示函数,同时获取它们的稀疏表示和稠密表示进行相关性计算。主要的考虑来自于:一方面,稀疏检索方法以单词或“潜在单词”为索引单位,通过每个单元之间的硬匹配计算分数,保持了很强的区分能力,因此它们可以识别出精确匹配的信号。另一方面,稠密的检索方法学习连续嵌入来编码更好的语义信息,但详细的低级特征一般不会考虑。因此结合两者的混合模型会比较适合,流程如下图,拿到两者的结果后进行merge再返回给用户。

然后对于神经语义检索模型学习的关键是定义一个好的:损失函数和负采样策略。损失函数一般使用negative log likelihood loss或者hinge loss,当然BPR loss或者InfoNCE在某些任务上也表现很好。而由于模型训练过程中,训练数据集一般只有正例,而负例没有明确的定义,所以负采样策略在检索技术中是十分重要的。一般来说负抽样策略可分为三类:

  • 随机负采样(Random Negative Sampling)。从整个语料库或batch中随机采样。缺点是随机的负样本通常太容易区分,因此挖掘hard样本是很重要的。

  • 静态难样本(Static Hard Negative Sampling)。从trained的检索模型结果中(如BM25)随机采样以获得hard负样本。缺点是这种方法并不是真正的负样本,因为在召回阶段的目标是找到更多的相关文档,如果只使用来自BM25的结果召回的文档会非常相似,测试时会出现严重的不匹配。

  • 动态难样本(Dynamic Hard Negative Sampling)。从检索模型本身预测的排名最高的不相关文档中随机采样。缺点是在大语料库中动态地对所有候选文档进行评分通常是不切实际的。

在实践中,以上几种随机采样方法并不冲突,而是会混合进行使用。

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)

END -

CIKM2021 知识图谱、推荐系统相关论文

2022-01-07

深度学习中 Batch Size 对训练过程的影响

2022-01-05

Facebook AI研究员田渊栋:2021年年终总结

2022-01-02

美团 大规模商品知识图谱的构建与应用

2021-12-31

检索召回 技术综述!相关推荐

  1. Semantic Models for the First-stage Retrieval(检索召回技术综述)

    Semantic Models for the First-stage Retrieval: A Comprehensive Review 今天整理一篇来自TOIS 21'的First-stage R ...

  2. 序列标注 | (5) 命名实体识别技术综述

    本文是对 <命名实体识别技术综述>的摘录和笔记. 论文链接 文章目录 1. 简介 2. 研究难点 3. 主要方法 4. 研究热点 5. 数据集和评价指标 6. 参考文献 1. 简介 命名实 ...

  3. 知识图谱 | (3) 知识图谱技术综述(下)

    原文地址 文章目录 3.3 知识融合 3.4 知识推理 4. 知识图谱的典型应用 4.1 智能搜索 4.2 深度问答 4.3 社交网络 4.4 垂直行业应用 5. 知识图谱的挑战 5.1 知识获取 5 ...

  4. 【技术综述】万字长文详解Faster RCNN源代码

    文章首发于微信公众号<有三AI> [技术综述]万字长文详解Faster RCNN源代码 作为深度学习算法工程师,如果你想提升C++水平,就去研究caffe源代码,如果你想提升python水 ...

  5. 【AI有识境】如何掌握好图像分割算法?值得你看的技术综述

    大家好,这是专栏<AI有识境>的第二篇文章,讲述如何掌握好图像分割算法. 进入到有识境界,可以大胆地说自己是一个非常合格的深度学习算法工程师了,能够敏锐地把握自己研究的领域,跟踪前沿和能落 ...

  6. 【技术综述】计算机审美,学的怎么样了?

    01 概述 究竟什么是图像美学质量呢?牛津高阶英语词典将美学定义为:"concerned with beauty and art and the understanding of beaut ...

  7. 【新功能】开放搜索多路召回技术解读

    简介:多路召回就是指采用不同的策略.特征或者简单模型,分别召回一部分候选集,然后再把这些候选集混合在一起后供后续排序模型使用的策略,本文将介绍开放搜索平台上的多路召回技术是如何深度提升搜索效果的~ 背 ...

  8. 基于小样本学习的图像分类技术综述

    基于小样本学习的图像分类技术综述 人工智能技术与咨询 昨天 本文来自<自动化学报>,作者李颖等 关注微信公众号:人工智能技术与咨询.了解更多咨询! 图像分类是一个经典的研究课题, 典型的图 ...

  9. 语义网技术综述(web3.0)

        欢迎关注微信公众号 语义网概念及技术综述 摘要:语义网是现有万维网的变革与延伸,是Web of documents向Web of data的转变.它的目标是让计算机可以像人脑一样理解信息的含义 ...

最新文章

  1. 转,帅气的表格隔行换色+鼠标经过变色、点击变色
  2. 步步为营 .NET 设计模式学习笔记 十三、Bridge (桥接模式)
  3. time函数python_Python连载6-time包函数简介
  4. 学Python可以用来干什么?就业情况究竟怎么样?
  5. 周口a货翡翠,泸州a货翡翠
  6. SAP License:FI中的表连接与应用
  7. github可以刷星吗_GitHub 没有 star,该写进简历里吗?
  8. 防火墙和防火墙安全区域概述
  9. 你还在因为数学对AI望而却步?看看这本秘籍吧
  10. macOS Big Sur无法安装 Big Sur为什么安装不了?
  11. android手机双卡的电话录音,苹果与android手机电话通话录音
  12. goahead文件下载
  13. 永洪BI配置测试及遇到的一些问题
  14. php木马导致服务器流出流量很高的排查及临时解决方法
  15. Winetricks最新版本安装
  16. 实验二:交换机基本配置
  17. openwrt ppoe 拨号设置
  18. XMOS软件开发入门(2) - 烧写、编译、调试开发板
  19. C++基础知识梳理(学习CPlusPlusThings)
  20. 计算机应用基础试题及答案地大,《计算机应用基础》模拟试卷习题四及答案.docx...

热门文章

  1. Axure高保真家政服务用户端app全局说明+家政服务员工移动端app+家政服务web端管理信息系统(订单管理+服务管理+报表统计+财务管理+营销管理+人员管理)
  2. RT-Thread Nano移植
  3. springmvc源码阅读3--dispatcherServlet reqeust的执行流程
  4. Mybatis返回类型和接收参数为Map类型
  5. hdu 6348 序列计数
  6. Google Protocol Buffer
  7. 面向对象的七种设计原则
  8. 读书笔记--Head First Programming 目录
  9. hdu 1059 Dividing(多重DP)
  10. oracle体系结构视频学习笔记