硬核!搜广推程序员必学!Google大模型Tiger技术解析,AI生成式检索让传统检索技术“凉凉“!

大纲:

  • 为什么我们常说"搜广推是一家"
  • 传统基于『多层漏斗』范式下的经典检索技术
  • 入门生成式检索–重点介绍 Google的Tiger模型,工业界生成式检索技术的开山之作!

1. 背景

伴随大模型技术的发展,为传统基于"多层漏斗"(召回-粗排-精排等)范式的检索技术带来了新的探索路径,各类基于生成式模型的检索技术,开始在业界的多种业务场景中逐步落地,生成式检索这种新的检索范式逐渐成为未来检索技术发展的新方向之一。

1.1. 什么是检索

检索任务本质是就一种匹配,我们熟知的**搜广推任务,**不管是业务、还是技术上,**本质上都是一种检索任务,这也是为什么大家常说:**搜广推是一家。

1.1.1. 从业务上

* 搜索是『有query』的推荐 * 推荐是『query=用户信息』的搜索 * 广告与推荐的主要差异,是推荐的主体以及业务目标

1.1.2. 从技术上

经典检索技术的整体框架,搜广推也基本一致:

插句题外话:当前业界大部分搜广推类产品,都在探索如何通过内容生产+推荐+检索等多环节协同联动,持续提升用户体验,提升产品竞争力。

  • 搜推协同,定向生产

2. 传统检索技术

2.1. 召回模块

召回:从整个候选内容集合中,初步检索出可能相关的内容候选,追求低耗时、多样性等。

  • **第一代:**倒排索引-召回

原始文档:

构建索引:

键值(索引) - 倒排链(链内排序+截断)

**例如:**长短期兴趣召回、热度召回、冷启动召回

**优势:**技术方案简单(ES、KV数据库就能满足

  • **第二代:向量召回->两段式->**图向量召回

原始文档:

核心步骤:

  • **Step1:**基于用户行为序列构图(同构图、异构图…)
  • **Step2:**生成Item/Uesr向量
  • 随机游走方式:①深度:Deepwalk算法;②深度+广度:Node2vec算法;
  • 采样的方式:GCN(基于谱域的图卷积神经网络)、GraphSage(基于空间域,采样邻居)、PinSage(投票选取邻居)等;

**主要问题:**图模型的增量训练成本高,难以在线学习(时效性差),导致实际业务中落地门槛高(当前主流推荐场景基本都需要实时在线推荐)

  • **第二代:向量召回->两段式->**双塔模型类召回

主要步骤:

(1)离线训练索引模型

  • 直接使用词向量类模型:word2vec/Bert等
  • 基于业务数据训练向量模型:矩阵分解(协同过滤)、DSSM等

(2)建立向量库:在线通过计算内积的方式检索Top k

代表:各类的双塔模型

两段式召回的问题:

  1. 建模与在线检索目标不一致(训练输出层中使用sigmoid/softmax,并在推理时转向使用ANN计算内积)
  2. 计算点积的方式,限制了模型表达能力
  • 第二代:向量召回->一段式-向量召,交替优化索引模型与索引结构,联合建模…

**经典:**阿里的TDM(Tree-based Deep Model ,2018)

TDM基于树结构,提出了一套对用户兴趣度量进行层次化建模与检索的方法论。

基本原理是使用树结构对全库item进行索引,然后训练深度模型以支持树上的逐层检索,从而将大规模推荐中全库检索的时间复杂度由O(n)下降至O(log n)【n为全库物品数量】。

**①叶子结点:代表所有的物品;②上层节点:**聚类虚拟出来的

检索任务转换成了如何从树中检索一系列叶节点,作为用户最感兴趣的物品返回。

其它业界方案:字节的DR模型(Deep Retrieval,2020年)

2.2. 排序模块

排序:在召回的候选集合中,使用更复杂策略选出更相关的内容(多目标、相关性等)

如何选择适合的CTR模型?
特征 模型化轻特征,重模型: 阿里派,使用简单的特征,使用复杂的模型,例如 DIE模型:在模型内引入自注意力等模型结构,完成各种特征交叉…
模型 特征化重特征,轻模型【推理阶段更轻】 百度派,离线构造很多大量、高级特征,在线使用轻量化模型。 例如:百度大搜的上层排序还在大量使用GBrank类树模型,基本是这个思路(目前逐步被端到端的深度排序模型取代 )
  1. 生成式检索技术(GR,Generative Retrieval)
    ===================================

大模型技术的发展初期,主要是以离线构建高级特征的方式嵌入到各个子模块中,但这种方式限制了大模型能力。

当前基于大模型技术的生成式检索,通过引入端到端的生成模型(如基于Transformer的自回归生成模型等),输入用户的历史行为序列作,模型直接生成待推荐商品ID,模型的参数充当了全库商品的索引,充分释放大模型的能力。

传统检索范式 VS 生成式检索新范式

  • 传统检索-多级漏斗的范式

**(1)召回阶段:**基于简单、高效的方法(基于规则/策略的粗粒度匹配)来减少候选物料的数量(数亿->数千)

**(2)粗精排阶段:**在召回候选集合上,应用较复杂的排序算法,选择Top k个物料进行推荐。

  • 多级漏斗范式的问题

(1)存在多级漏斗,且每级都有固定配额限制,降低检索效率

(2)各级漏斗模型的优化目标不完全一致,容易出现漏斗折损

(3)工业界经过多年的迭代(卷),多级漏斗范式下的效果优化逐渐遇到瓶颈

  • 生成式检索范式的优势:

(1)简化了多层漏斗结构,实现从全量数据上检索最优Top k结果
(2)引入了大模型包含的先验知识+理解+推理等能力,针对冷启动(新用户/物品)更友好

3.1. 基础:如何基于LLM 构建检索系统

生成式检索的技术的本质:模型即索引,生成即检索。

基于自回归的LLM模型:

  • 简版实现思路(直接套用NLP领域LLM的方案):
  • 基于LLM模型基本思路,将商品ID当做文本分词后的Token,扩充词表后,直接训练基于商品ID序列生成下一个商品ID的能力,从而获得生成式检索模型。
  • 直接使用商品ID作为Token存在的问题**:**
  • 推荐中候选商品ID数量非常大(数亿+),因此直接基于原始的物品 ID训练LLM将导致词汇表非常大,并且推理效率低。
  • 只适用商品ID,没有利用上商品的文本、图像等信息,且冷启商品无法被推荐。

因此,如何实现商品ID化表示,是实现基于LLM的生成式检索第一个挑战,也是核心步骤,下面我们以谷歌的Tiger模型为案例学习一下他们是怎么解决这个问题的。

3.1.1. 实现生成式检索的核心步骤

主要参考2023.11谷歌发表的**TIGER****(Transformer Index for Generative Recommenders)**模型。

检索系统中的每个物品,除了本身有一个数字序号ID外,还包含一系列其它维度的特征,例如:标题(文本)、配图(图像)、配乐(音频)等。

如何表征一个物品作为索引,大致有3种方案:

汇总上述各种方案利弊:

3.1.2. 如何获得语义ID - 基于RQ-VAE的量化编码

3.2. 基于 Tiger 模型的生成式召回方案

3.2.1. 如何获取物品语义 ID ?

原始编码向量 --> RQ-VAE量化编码 --> 物品的语义ID

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

模型包含以下部分:

  • 编码器:通过各种预训练后的编码器模型,将物品的特征(文本、图像…)编码为一个稠密的连续向量。
  • 残差量化:(RQ-VAE):多级向量量化器,通过残差矢量从粗到细递归量化,以生成一组码字 (使用最近邻查找,将潜在向量映射到codebook中离散的嵌入向量,并返回向量下标,作为码字)
  • coodbook:量化使用了4个级别的残差量化,对于每个量化的阶段,都维护一个基数为 256 的码簿,码簿中的每个向量的维度为 32
  • **解码器:**输入离散的语义ID(对应向量求和) ,重构输入数据。

3.2.2. RQ-VAE模型自监督训练

训练过程以及损失:

  • 损失函数:同时训练编码器、量化器(语义ID)、解码器

论文中,h级码本(h=4个codebook),每个码本有K个码字,K=256。

使用长度为4的语义ID,即每个item由带有层次结构的语义ID四元组(L1, L2, L3,L4)表示。其中每个代码字具有256的基数(即,每个级别的码本大小= 256),可表征物品ID数量= 256^4。

【RQ-VAE损失】

  • 左侧(向量损失):用于学习语义ID向量空间(codebook),让被选择离散嵌入向量****e尽可能靠近编码器输出r。
  • 右侧(承诺损失):用于学习编码器的输出r,为了让编码器输出r尽可能靠近所选择的离散嵌入向量e 。

3.2.3 语义ID的最主要的特性:

例如:语义ID1= (10,21,22),与语义ID2 = (10,21,25)、语义ID3= (10,11,35)相比,与语义ID1与语义ID2更相似。

  • C1位置:捕捉商品信息中高级别类别特征,例如:当c1=3时,含有大量与"头发"相关的产品;多数c1=1的内容是"化妆"和"皮肤"等产品。
  • C2位置:固定C1位置的值,第二编码词c2能更精细地捕捉高阶语义信息

论文中:作者比较其他几种量化的替代方案,例如局部敏感哈希(LSH)、k均值聚类、VQ-VAE,都不能很好保留语义ID分层的性质。

3.2.4 语义ID存在的问题:

3.2.5. Tiger模型的训练

生成式模型的训练,即给定特定 <输入,输出> 下任务的prompt模板,对模型进行训练(自回归方式、GLM方式等),目标是最大化给定输入预测输出的条件似然。

**以生成式推荐任务为例(参考谷歌的****TIGER模型):**即输入是用户有行为的商品语义ID序列,输出是下一个商品语义ID。

  • ****第一部分:****Semantic ID generator模块
  1. 基于商品的信息(标题、配图…),经过对应的预训练编码器,生成商品词向量表征(稠密的、连续的)。
  2. 对词向量通过量化操作转换为为一组语义编码词的元组,将此元组称为item的语义ID(等价于VQ-VAE中的codebook)
  • 第二部分:训练端到端的自回归生成模型:
  1. 模型词汇表改造,新增商品的语义ID

  2. 模型输入信息:

    (1) 商品侧:用户交互过的商品序列,并用语义ID表征,例如Sem ID=(5,23,55)表征商品Item233。

    (2) 用户侧:论文中对用户ID也进行了表征为用户语义ID。

  3. 模型输出信息:模型直接生成语义ID,通过已有的语义ID->商品的映射关系,完成商品的检索。

3.2.6. 模型推理

推理阶段,给定用户输入表示,生成式检索模型通过自回归的方式生成下一个商品语义ID,直到生成一个完整的句子或序列。

案例:在生成式广告的关键词定向任务中推理阶段的主要难题

LLM生成的关键词,可能不是广告主购买过的广告词(为无效关键词,原始方案中生成的关键词70%都是无效的),可控性需要提升。

因此,在模型的推理阶段引入**基于Trie树的限制性解码方案****(**提升解码的效率+解码的准确性)。

  1. 总结
    =====

生成式检索技术发展与逐步落地,为未来检索技术带来了新的发展方向:

  1. 传统基于『多层漏斗的级联』的检索架构,逐步被端到端的生成式模型替代,有效的解决『多阶段目标不一致&漏斗层层折损』的难题,检索&研发效率进一步提升。
  2. 传统检索系统中,以『代码开发』为基础的分治研发,逐步转向以『数据采样与标注』为基础的研发,实现数据驱动(没有什么难题是标注几条数据解决不了的)。
  3. 生成式模型技术正在从召回(谷歌Tiger)、排序(Meta的HSTU)到端到端(快手的OneRec),逐步重塑整个检索技术范式,真正属于检索领域的Scaling Law时代正在到来,让子弹再飞一会 ~

本篇主要介绍了以Tiger为代表的生成式技术在召回部分的工作,也是整个生成式技术的基础,下一期将会介绍近期生成式排序相关的业界工作(快手的OneRec 1/2等)。

针对 实际业务场景中落地生成式方案的痛点与收益 ~ 期待大家一起在评论区中分享与探讨!

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值