MS MARCO Document Ranking Leaderboard —— UniRetriever

EBR (Embedding Based Retireval)已广泛应用于许多应用,例如网络搜索、问答、在线广告和推荐系统。通用 EBR 系统专为同质目标而设计,例如,用户可能在推荐系统中点击的项目,或者在网络搜索中包含真实答案的网页。然而,赞助搜索(sponsored search)中的 EBR 由于需要服务于多个检索目的而更加复杂:一方面,检索到的广告必须在语义上接近用户指定的查询。另一方面,检索到的广告预计会被用户以高概率点击。以前的工作意识到了这样的问题,但对于具有高点击率和高相关性的广告检索的统一模型仍然缺乏系统的研究。

典型的 EBR 系统由两个基本组件组成:表示模型和 ANN(approximate nearest neighbour) 检索。近年来,预训练语言模型 (PLM) 被广泛用作表示模型的主干,此外,人们还为 EBR 预训练了特定的 PLM。除了主干模型,训练算法也是一个关键因素。大多数表示模型是使用对比学习进行训练的,其性能受负采样策略的影响:一方面,人们发现可以通过增加负样本的数量来提高表示质量,例如批量负采样(in-batch negative sample)和动量编码器。另一方面,表示质量也可能受益于hard negative sample(困难负样本)。

ANN 检索是 EBR 的另一个基本组件,通过它可以有效地从整个语料库中检索出最佳答案。然而,现有方法在应用于大规模(数十亿级别) EBR 时受到时间成本、内存使用或检索质量的限制。最新的研究例如 DiskANN、SPANN,建议联合利用向量量化和基于图形的索引来实现时间和内存可扩展的ANN。

  • 知识蒸馏:检索高相关性广告。交互式BERT作为教师模型,双塔共享BERT作为学生模型。教师模型首先为查询 q 和广告 a 生成相关性分数,学生模型用 q 与 a 的点积分数去拟合教师的相关性分数,损失函数使用MAE。
  • 对比学习:检索高点击率广告。论文指出,对比学习的表现受两个因素的影响很大:1)负样本的规模,以及 2)负样本的硬度。
    [En]

    Comparative learning: retrieve high-click-through ads. The paper points out that the performance of contrastive learning is greatly affected by two factors: 1) the size of negative samples, and 2) the hardness of negative samples.*

    负样本规模使用分布式训练的方式扩大,需要额外广播embedding到其他GPU。对比学习一般采用In-batch negative sample的方式进行负采样,即使用同一batch内其他query的广告作为负样本,除此之外,还需要为每条query挑选足够硬(困难)的负样本,论文中给出了几种挑选方法,并做了对比实验,实验结果放在下面。

  • Uni-Retriever的大体结构如下:
    MS MARCO Document Ranking Leaderboard —— UniRetriever
  • 实验结果:
    MS MARCO Document Ranking Leaderboard —— UniRetriever
    Baseline:仅使用对比学习方法训练双塔模型,负样本在广告库里随机采用10个;
  • Multi-obj:在Baseline基础上加入蒸馏任务;
  • Disentangle:蒸馏任务和对比学习任务分别使用不同的输出向量(使用任务特定的头对双塔模型输出向量进行变换)
  • In-batch:采用 in-batch negative sample;
  • Cross-device:使用分布式训练,并将每个GPU的样本都广播到其他GPU上,以扩大Batch规模;
  • ANN negative:在 in-batch negative sample 的基础上增加一个由ANN检索回来的负样本(从Top-200结果中随机抽取)
  • Score filter:从Top-200中相关性分数低于0.5的样本中挑选负样本;
  • Rank filter:使用相关性教师模型对ANN的Top-200结果进行重排序,从低相关性样本中(101~200)中挑选负样本。
  • 实验结果表明:
    通过为两个目标生成分离嵌入(+ Disentangled),相对于基本的多目标学习方法,可以进一步提高表示质量。使用”+ Score filter”和”+ Rank filter”可以实现额外的改进,因为可以有效地排除高相关性广告被选为负样本。

fasis等检索工具可以轻松应对数百万规模的检索场景,但是当面临数十亿规模的向量检索时就捉襟见肘了。因此,论文采用了MoPQ(一种向量量化方法,针对检索场景设计)和vamana图(基于图的ANN检索算法,淘宝提出的NSG的变体)相结合的策略,执行粗粒度与细粒度相结合的两阶段检索。同时,鉴于广告embedding及其图连接太大而无法放入内存,采用了以下分层存储架构:

  • 第一层存储:对广告embedding进行量化,将量化后的embedding保存在内存。量化压缩后的embedding可以比原始密集embedding轻一到两个数量级;因此,十亿规模的广告可以托管在具有数十GB RAM 使用量的主内存中。
  • 第二层存储:在SSD硬盘中存储广告embedding的posting list,包括每条广告的ID、原始密集embedding、以及 Vamana 图上相邻广告的 ID 列表。

ANN检索则通过两个连续步骤执行:粗粒度搜索和细粒度后验证。

  • 对于粗粒度搜索,输入查询在 Vamana 图上进行路由以获取其近似最近邻。从入口图节点(随机或选定)开始,探索与目标点最近但未访问过的入口节点的邻居,并将最近的候选者添加到固定大小的优先级队列中。检索过程中使用压缩embedding计算距离。一旦访问了图节点,其邻居的 ID 将被加载到 RAM 以供将来探索,访问节点的全精度密集embedding也将加载到 RAM 中。(拓展:13 种高维向量检索算法全解析!
  • 细粒度后验证。一旦探索完成,就会执行后验证,使用原始密集embedding对优先级队列中的候选者进行细化。优先级队列最终确定后,使用重排序函数进行重排序,综合考虑查询与广告的相关性,广告的点击率和出价三个因素,Top-K 的广告将作为最终结果返回。

此外,论文指出,原始的密集embedding学习以从整个语料库中检索高相关性和高点击率广告,对于一个高相关性(点击率)的广告和一个低相关性(点击率)的广告来说,它可以很好区分,但对于两个高相关性(点击率)的广告来说,判断他们谁的相关性更高就有些困难,这种功能需要特定的排序函数来实现,直接使用原始密集embedding对优先级队列中的候选者进行细化可能取不到很好的效果。为了缓解这个问题,作者通过从重新排序函数中提取知识,进一步调整 Uni-Retriever 以获得更好的后验证。

Original: https://blog.csdn.net/qq_43183860/article/details/124108760
Author: 北在哪
Title: MS MARCO Document Ranking Leaderboard —— UniRetriever

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/80133/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Oracle数据库之日期查询

    近期项目需求,需要查询不同情况下的时间点,整理了些,希望能对大家有所帮助 1、系统自带日期; 2、参考类型日期; 3、统一格式为字符串,可根据需求自由延伸; –当前se…

    大数据 2023年2月15日
    010
  • eureka原理

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

    大数据 2023年3月1日
    07
  • zookeeper-3.6.3+dubbo-admin

    1.搭建好dubbo-admin 有一些是直接打成jar启动 我是通过idea先看一下目录结构,直接去官网下载的导入idea配置好mavn启动就行,直接拉取下来也可以github链…

    大数据 2023年3月4日
    06
  • java sqlite储存图片_使用SQLite存取图片资源

    这几天刚好在整数据库的相关问题,把android的图标存储到数据库当中。 涉及到intent和bitmap对象的存储,首先说下intent。 存储intent: 在intent中有…

    大数据 2023年2月23日
    010
  • hive和hadoop

    mr程序的执行过程 MapReduce程序的主体思想是分而治之。构建抽象模型:Map和Reduce MapReduce中定义了如下的Map和Reduce两个抽象的编程接口,由用户去…

    大数据 2023年2月21日
    010
  • SQL developer连接Oracle:The Network Adapter could not establish the connection

    在连接Oracle数据库(我的版本是11)之前,得确保这俩服务是启动的: OracleOraDb11g_home1TNSListenerOracleServiceORCL SQL …

    大数据 2023年2月24日
    09
  • ASP.Net Core 发布到 Centos Docker

    1.VS2019 创建一个netcore3.0项目 选中Docker 选中Docker后会自动创建DockerFile #See https://aka.ms/containerf…

    大数据 2022年9月19日
    079
  • 怎样提高报表呈现的性能

    报告的表现非常重要,这是一个总是被谈论的问题。慢报告的用户体验很差,让人难以忍受。解决这些性能慢的问题也成了让项目方和工程师头疼的问题。一旦出了问题,就要安排技术好、能力强的工程师…

    大数据 2023年2月15日
    08
  • Zookeeper集群部署3.5.5

    前提:关闭防火墙 1、解压 注:记得看好路径 2、创建数据文件和目录文件 在zookeeper的跟目录下创建两个文件夹data和log 切换路径:cd /opt/module/ap…

    大数据 2023年3月3日
    011
  • 大数据分析——Hive数据处理

    一、简介 canal [kə’næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库&a…

    大数据 2023年2月8日
    013
  • QT使用SQLite

    安装SQlite 官网下载地址:https://www.sqlite.org/download.html 如果是64位电脑的,就如下图所示: 如果是32位电脑的,则选择win32进…

    大数据 2023年2月6日
    0346
  • hive-分析、窗口函数的使用

    5-1:sum,avg,min,max窗口内聚合分析 over (partition by col1 order by col2 rows between unbounded[n]…

    大数据 2023年2月11日
    012
  • SpringCloud项目使用Nacos进行服务的注册

    本篇介绍Spring cloud项目使用 Nacos作为注册中心来进行服务注册及服务发现,并进行简单的测试来验证。 一、简介 nacos是一个集 服&…

    大数据 2023年3月2日
    08
  • 不是技术也能看懂云计算,大数据,人工智能

    今天我要讲这三个话题,一个是云计算,一个是大数据,一个是人工智能。我为什么要谈论这三件事呢?因为这三样东西现在很流行,所以它们似乎是相互关联的。一般来说,在谈到云计算时会提到大数据…

    大数据 2022年8月18日
    0150
  • DataGrip之一个赏心悦目的SQL格式化模板,快用起来吧

    前段时间做需求,同事吐槽我的代码难以阅读,非让我用vs code,从最开始使用的notepad++到sublime,再到datagrip,发现最后一个功能更全一点,所以还是决定坚持…

    大数据 2023年2月25日
    013
  • hive-7(常用函数)

    常用函数 数据准备 first_value last_value 正则函数 * regexp regexp_extract regexp_replace URL解析函数 GET_J…

    大数据 2023年2月12日
    015
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总