【电商搜索】现代工业级电商搜索技术-中科院计算机研究所-生成型检索与多级相关性相结合

news2024/10/6 17:41:15

【电商搜索】现代工业级电商搜索技术-中科院计算机研究所-生成型检索与多级相关性相结合


目录

文章目录

  • 【电商搜索】现代工业级电商搜索技术-中科院计算机研究所-生成型检索与多级相关性相结合
    • 目录
    • 0. 论文信息
    • 1. 摘要
    • 2. 研究背景
    • 3. 主要挑战
    • 4. 创新点
    • 5. 算法模型
      • 1. **标识符设计(Docid Design)**
      • 2. **多级约束对比训练(Multi-graded Constrained Contrastive Training)**
      • 3. **学习场景的探索**
      • 4. **优化过程**
    • 6. 实验效果
    • 7. 推荐阅读指数:
      • 推荐理由
    • 后记


0. 论文信息

@article{tang2024generative,
  title={Generative Retrieval Meets Multi-Graded Relevance},
  author={Tang, Yubao and Zhang, Ruqing and Guo, Jiafeng and de Rijke, Maarten and Chen, Wei and Cheng, Xueqi},
  journal={arXiv preprint arXiv:2409.18409},
  year={2024}
}

在这里插入图片描述
https://arxiv.org/pdf/2409.18409
生成型检索与多级相关性相结合

1. 摘要

本文提出了一种新颖的信息检索方法——生成型检索(Generative Retrieval, GR),它使用编码器-解码器架构直接为查询生成相关的文档标识符(docids)。现有的方法主要限于具有二元相关性数据的场景,忽略了文档可能具有多级相关性的可能性。为了解决这一问题,我们提出了一个名为GRaded Generative Retrieval(GR2)的框架,它关注两个关键部分:确保相关且独特的标识符,以及实施多级约束对比训练。我们通过组合docid生成和自编码器模型来共同优化docid的相关性和独立性。此外,我们利用关于相关性等级之间关系的信息来指导训练过程。通过一种约束对比训练策略,根据它们各自的相关性等级,将查询的表示和它们相关文档的标识符拉近。实验表明,GR2在具有多级和二元相关性的多个数据集上都表现出色。

2. 研究背景

这篇论文基于信息检索(Information Retrieval, IR)领域中存在的挑战和需求,具体来说:

  • 传统信息检索的局限性:传统的信息检索系统通常依赖于关键词匹配和统计方法(如TF-IDF和BM25)来检索文档。这些方法虽然在某些情况下效果不错,但它们往往缺乏对文档深层语义的理解。

  • 二元相关性假设的不足:在许多现有的研究中,文档与查询之间的相关性通常被简化为二元分类(即相关或不相关)。然而,在现实世界中,文档与查询之间的相关性往往是多级和细粒度的。

  • 深度学习在IR中的应用:随着深度学习技术的发展,研究人员开始探索使用神经网络模型来改进信息检索系统。这些模型能够学习文档和查询的深层语义表示,从而提高检索的准确性。

  • 生成型检索(Generative Retrieval)的兴起:生成型检索是一种新兴的范式,它使用序列到序列(Seq2Seq)的模型直接预测与查询相关的文档标识符(docids)。这种方法有潜力提供端到端的优化,并在推理时提高检索效率。

  • 多级相关性数据的可用性:随着多级相关性标注数据集的出现,研究人员有机会开发能够处理细粒度相关性信息的检索模型。这些数据集提供了比传统二元相关性数据更丰富的信息。

  • 挑战和需求:尽管生成型检索具有潜力,但现有的方法主要关注二元相关性场景,并且在处理多级相关性时面临挑战,包括如何合理地为不同长度的docid分配概率,以及如何处理具有相同标识符的多个相关文档。

3. 主要挑战

这篇论文面临的挑战主要包括:

  1. 多级相关性建模:传统的信息检索系统和一些现有的生成型检索模型大多处理二元相关性(即文档与查询完全相关或完全不相关)。将检索系统扩展到可以处理具有多个相关性级别的数据,需要新的方法来建模和利用这种细粒度的相关性信息。

  2. 标识符的生成:为每个文档生成一个既能够体现文档语义,又能在数据库中保持唯一性的标识符是一项挑战。特别是,需要确保相关文档的标识符在语义上是相关的,同时在实际应用中又要足够不同,以避免冲突。

  3. 训练策略的设计:如何设计有效的训练策略,以便模型能够理解和区分不同相关性级别的文档,是另一个挑战。这需要新类型的损失函数和训练技巧,以确保模型可以根据相关性级别对文档进行适当的排序。

  4. 处理标识符长度的变化:文档标识符的长度可能会变化,这可能会影响模型学习到的表示。长的标识符可能由于模型训练过程中的likelihood-based方法而获得较低的分数。

  5. 优化目标的复杂性:现有的基于Seq2Seq的生成型检索模型通常侧重于生成与查询最相关的单个docid。然而,在多级相关性场景中,需要优化目标来同时考虑多个具有不同相关性级别的docids。

  6. 效率和可扩展性:生成型检索模型需要在推理时快速生成docids,同时保持低内存占用和高吞吐量。设计一个既高效又可扩展的模型,能够处理大规模数据集,是实现实用化的一大挑战。

  7. 数据集的局限性:虽然存在一些具有多级相关性标注的数据集,但这些数据集的规模和多样性可能有限。如何利用有限的数据有效地训练模型,以及如何使模型泛化到未见过的文档和查询上,是研究中需要考虑的问题。

  8. 实际应用中的挑战:将研究成果转化为实际应用需要考虑模型的鲁棒性、可解释性以及与现有系统的兼容性。这些因素可能会影响模型在现实世界中的部署和效果。

论文通过提出GR2框架来应对这些挑战,该框架专注于生成相关且独特的标识符,并实施多级约束对比训练,以提高模型处理多级相关性的能力。

4. 创新点

  1. 多级相关性支持:GR2框架能够处理具有多级相关性的文档,而不仅仅是二元相关性。
  2. 相关且独特的标识符生成:通过结合docid生成和自编码器模型,确保生成的docid既相关又足够独特。
  3. 多级约束对比训练:引入了一种新的损失函数MGCC,用于捕获具有不同相关性等级的标签之间的关系。

5. 算法模型

GR2框架是这篇论文的核心贡献,它是为了解决多级相关性信息检索问题而设计的。具体来说,GR2框架包括以下几个关键步骤:

1. 标识符设计(Docid Design)

  • 目标:生成既与文档语义相关,又具有足够区分度的标识符(docids)。
  • 方法:采用正则化融合方法,结合了文档生成(docid generation)模块和自编码器(autoencoder)模块。
  • 实现
    • 文档生成模块:基于原始文档生成伪查询作为docids。
    • 自编码器模块:从对应的表示中重构目标docids。
    • 联合优化:通过docid生成和自编码器模型的组合,确保docid表示既接近其对应文档的表示,又远离其他docid的表示。

2. 多级约束对比训练(Multi-graded Constrained Contrastive Training)

  • 目标:通过考虑不同相关性等级之间的关系来指导训练过程。
  • 方法:使用约束对比训练策略,根据它们各自的相关性等级,拉近查询和其相关文档标识符的表示。
  • 实现
    • MGCC损失(Multi-graded Constrained Contrastive Loss):核心思想是将给定查询的表示在嵌入空间中向其相关docids的表示拉近,同时将其推离批次中不相关docids的表示。
    • 等级惩罚和约束:提出更具体的等级惩罚和约束来调节查询表示和不同等级docid表示之间的相对距离。

3. 学习场景的探索

  • 监督学习:直接使用MGCC损失来监督GR模型。
  • 预训练:使用大规模构造的多级相关性数据进行预训练,然后对下游检索任务进行微调。

4. 优化过程

  • 目标:通过最小化损失函数来优化模型参数,损失函数包括MGCC损失、查询-文档对的MLE损失以及文档-标识符对的MLE损失。
  • 实现
    • 监督学习版本(GR2S):直接在标注数据上使用MGCC损失进行训练。
    • 预训练版本(GR2P):先在构造的多级相关性数据上进行预训练,然后在具体任务上进行微调。
      在这里插入图片描述

6. 实验效果

  • 数据集:使用了包括Gov2、ClueWeb09-B、Robust04等具有多级相关性的中等规模数据集,以及MS MARCO Document Ranking和Natural Questions等二元相关性数据集。
  • 评估指标:多级相关性数据集上使用了nDCG、ERR和P@20等指标;二元相关性数据集上使用了MRR和Hits@{}指标。
  • 结果
    • 在Gov 500K数据集上,GR2P和GR2S在P@20指标上分别比当前最佳基线RIPOR高出约11%和14%。
    • 在MS 500K数据集上,GR2P在Hits@1指标上比RIPOR高出11.7%,GR2S在Hits@10指标上高出4.3%。
  • 结论:GR2在处理具有多级和二元相关性的检索任务时,均显示出优越的性能。

在这里插入图片描述
在这里插入图片描述

7. 推荐阅读指数:

★★★★☆

推荐理由

  • 创新性:提出了一种新的生成型检索框架,能够处理多级相关性,这是信息检索领域的一个重要进步。
  • 实用性:通过实验验证了GR2框架在不同类型数据集上的有效性,表明该方法具有很好的泛化能力。
  • 潜在影响:该研究可能推动信息检索领域向更细粒度的相关性评价发展,对搜索引擎和文档检索系统的设计有重要启示。

这篇论文在信息检索领域提出了一个创新的方法,能够有效处理多级相关性问题,对于研究人员和实践者来说都具有较高的参考价值。


后记

如果您对我的博客内容感兴趣,欢迎三连击(点赞,关注和评论),我将持续为您带来计算机人工智能前沿技术(尤其是AI相关的大语言模型,深度学习,计算机视觉相关方向)最新学术论文及工程实践方面的内容分享,助力您更快更准更系统地了解 AI前沿技术

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2192499.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

还在“卷”长度?长文本模型真的基于上下文进行回复吗?

近年来,随着长文本模型(Long-context Model, LCM)技术的突飞猛进,处理长上下文的能力已成为各大语言模型(Large Language Model, LLM)的核心竞争力,也是各大技术厂商争夺的焦点。截至2023年12月…

SystemC学习(1)— SystemC安装与HelloWorld

SystemC学习(1)— SystemC安装与HelloWorld 一、前言 参考文档: 1、ubuntu系统安装systemc-2.3.4流程 2、SystemC语言学习笔记 3、SystemC资料2.ppt 4、SystemC入门笔记 二、安装包下载与安装 我们可以直接从官网下载SystemC的库安装包&a…

多字节字符集CString转换string

实现函数如下&#xff1a; std::string CStringToUTF8(const CString& str) {// Step 1: 将 MBCS (GBK) CString 转换为宽字符&#xff08;WCHAR&#xff09;int wideLen MultiByteToWideChar(CP_ACP, 0, str.GetString(), -1, NULL, 0);if (wideLen < 0)return "…

组件中$router/$route的由来(vue-router源码分析)

1.vue-router源码下载 我们可以到github上找到对应版本的vue-router 版本号可以到项目中的node_modules/vue-router/dist/vue-router.js查看嘴上面的许可证说明(package.json只提供了版本的大致范围 ^表示2.2.x 而~表示2.x.x 都为>的含义) 在github上的vue-router我们要选择…

一个月学会Java 第2天 认识类与对象

Day2 认识类与对象 第一章 初识类 经过一个程序的编写&#xff0c;应该对程序的结构有点好奇了吧&#xff0c;如果你有基础&#xff0c;接下来的肯定非常的易懂&#xff0c;如果你没有基础也没有关系&#xff0c;反复琢磨一下也就懂了&#x1f606; 我们来重复一下第一个程序 …

Vivado - JTAG to AXI Master (DDR4)

目录 1. 简介 2. JTAG 直接操作 DDR4 2.1 Block Design 2.2 AXI SmartConnect 2.3 DDR4 MIG 2.3.1 时钟和复位 2.3.2 AXI Slave 接口 2.4 XDC 约束 2.5 TCL 代码 2.5.1 写入 DDR4 2.5.2 读取 DDR4 3. HLS IP 操作 DDR4 3.1 Block Design 3.2 HLS IP 3.2.1 HLS 代…

TypeScript面向对象 01

使用class关键字来定义一个类。对象中主要包含了两个部分&#xff1a;属性和方法。 class Person {// 定义实例属性name:string glm;age:number 1234; } const a new Person(); console.log(a.name);在属性前使用static关键字可以定义类属性&#xff08;静态属性&#xff0…

Sebastian Raschka 最新博客:从头开始用 Llama 2 构建 Llama 3.2

最近已有不少大厂都在秋招宣讲了&#xff0c;也有一些在 Offer 发放阶段。 节前&#xff0c;我们邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对新手如何入门算法岗、该如何准备面试攻略、面试常考点、大模型技术趋势、算法项目落地经验分享等热门话题进行了…

自动驾驶-问题笔记-待解决

参考线的平滑方法 参考线平滑算法主要有三种&#xff1a; 离散点平滑&#xff1b;螺旋曲线平滑&#xff1b;多项式平滑&#xff1b; 参考链接&#xff1a;参考线平滑 对于平滑方法&#xff0c;一直不太理解平滑、拟合以及滤波三者的作用与区别&#xff1b; 规划的起点&#x…

代码随想录一刷完结

非常偶然的机会让我看到这个算法训练营的存在&#xff0c;虽然我也没有多大的动力&#xff0c;但当时就觉得没什么事情&#xff0c;想着刷刷题&#xff0c;为以后找工作打打基础。 收获 提示&#xff1a;在刷题过程中的收获 第一次使用CSDN记录&#xff0c;每次有别人点赞和收…

【React】事件机制

事件机制 react 基于浏览器的事件机制自身实现了一套事件机制&#xff0c;称为合成事件。比如&#xff1a;onclick -> onClick 获取原生事件&#xff1a;e.nativeEvent onClick 并不会将事件代理函数绑定到真实的 DOM节点上&#xff0c;而是将所有的事件绑定到结构的最外层…

【LeetCode: 134. 加油站 | 贪心算法】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

AI模型部署初认识

AI部署这个词儿大家肯定不陌生&#xff0c;可能有些小伙伴还不是很清楚这个是干嘛的&#xff0c;但总归是耳熟能详了。 近些年来&#xff0c;在深度学习算法已经足够卷卷卷之后&#xff0c;深度学习的另一个偏向于工程的方向–部署工业落地&#xff0c;才开始被谈论的多了起来…

C语言 | Leetcode C语言题解之第456题132模式

题目&#xff1a; 题解&#xff1a; int upper_bound(int* vec, int vecSize, int target) {int low 0, high vecSize - 1;if (vec[high] > target) {return -1;}while (low < high) {int mid (high - low) / 2 low;int num vec[mid];if (num > target) {low m…

IDEA基础开发配置以及和git的联动

1.1方向一&#xff1a;工具介绍 我今天要介绍的就是学习Java大部分情况下都会选择的一款工具-----IDEA&#xff0c;这个和我们熟悉的这个pycharm一样&#xff0c;都是属于这个Jetbrains公司的&#xff0c;虽然我对于这个并不是很了解&#xff0c;但是确实知道一点&#xff0c;…

静止坐标系和旋转坐标系变换的线性化,锁相环线性化通用推导

将笛卡尔坐标系的电压 [ U x , U y ] [U_x, U_y] [Ux​,Uy​] 通过旋转变换(由锁相环角度 θ P L L \theta_{PLL} θPLL​ 控制)转换为 dq 坐标系下的电压 [ U d , U q ] [U_d, U_q] [Ud​,Uq​]。这个公式是非线性的,因为它涉及到正弦和余弦函数。 图片中的推导过程主要…

一款基于 Java 的可视化 HTTP API 接口快速开发框架,干掉 CRUD,效率爆炸(带私活源码)

平常我们经常需要编写 API&#xff0c;但其实常常只是一些简单的增删改查&#xff0c;写这些代码非常枯燥无趣。 今天给大家带来的是一款基于 Java 的可视化 HTTP API 接口快速开发框架&#xff0c;通过 UI 界面编写接口&#xff0c;无需定义 Controller、Service、Dao 等 Jav…

使用 Python 进行大规模数据处理

在 Python 中&#xff0c;处理大量数据时&#xff0c;效率是非常重要的。当你有一个包含 100 万个元素的列表&#xff0c;每个元素都是一个字典&#xff0c;并且需要将它们转换为 DataFrame 时&#xff0c;Pandas 是一个很好的工具。Pandas 是 Python 数据处理和分析的强大库&a…

一键生成PPT的AI工具-Kimi!

一键生成PPT的AI工具-Kimi&#xff01; 前言介绍Kimi为什么选择Kimi如何使用Kimi在线编辑PPT下载生成的PPT自己编辑 结语 &#x1f600;大家好&#xff01;我是向阳&#x1f31e;&#xff0c;一个想成为优秀全栈开发工程师的有志青年&#xff01; &#x1f4d4;今天不来讨论前后…

yolov5-7.0模型DNN加载函数及参数详解(重要)

yolov5-7.0模型DNN加载函数及参数详解&#xff08;重要&#xff09; 引言yolov5&#xff08;v7.0&#xff09;1&#xff0c;yolov5.h(加载对应模型里面的相关参数要更改)2&#xff0c;main主程序&#xff08;1&#xff09;加载网络&#xff08;2&#xff09;检测推理&#xff0…