SIM——引入双阶段搜索机制在用户行为序列的同时关注动态兴趣

article/2025/8/2 23:58:28

文章目录

  • 1. 背景
  • 2. 方法
    • 2.1 GSU
      • 2.1.1 Hard Search
      • 2.1.2 Soft Search
    • 2.2 ESU

这里来回顾一篇经典的文章 SIM(Search-based Interest Model),也是自己学习一下,虽然挺久了,但是业界都在使用这个,说明含金量还在提高!很多其他的模型比如 TWIN、MARM 也都是在此基础上做了改进,所以主要是抱着学习的心态来看一下,并不是最新的文章,只是比较经典,这篇文章是阿里提出来的。主要思路是不在试图用一个同一的结构编码所有行为,而是像搜索引擎一样,在海量行为中筛选出来与当前商品相关的那一小部分,进行建模。

论文地址:https://arxiv.org/pdf/2006.05639

1. 背景

用户行为数据(浏览、点击、购买)在 CTR 预测中极其重要,在推荐系统和广告系统这种工业级应用中,可以极大提高预测的精准性,所以很多研究都尝试建模长序列的用户行为数据。用户兴趣是多样且动态的,不同候选商品会触发用户不同的兴趣。就像我们在淘宝浏览商品一样,看电子产品时可能关注性能,看衣服时又会关注款式,DIN(Deep Interst Network)就是基于这个思想:不要一次性表示“整体兴趣”,而是根据当前商品,动态从历史行为中挑出相关的兴趣。但是 DIN 在面对“超长行为序列时”计算和存储代价太高,无法在真实的大规模系统中高效使用。

MIMN 是阿里提出的一个当时业界领先方案,可处理最多约1000条用户行为,通过将所有行为编码进一个固定大小的记忆矩阵来表达用户兴趣。但也存在问题就是,当序列行为更长(比如1万条以上,淘宝有23%用户,在过去5个月点击超过1000个商品)时,MIMN无法准确刻画用户当前对某个商品的兴趣,主要原因是:“固定大小的记忆矩阵引入大量噪声”,无法精准匹配候选商品相关的行为,并且计算和存储开销也顶不住。

所以本位提出 SIM,通过双阶段搜索机制GSU(General Search Unit)通用搜索单元、ESU(Exact Search Unit)精准搜索单元。在精度和可扩展性之间取得平衡。

  • GSU:通过简单有效的策略(类别匹配、内积搜索),从长序列中提取出 Top-K 条与候选商品相关的行为序列SBS,Sub Behavior Sequence)将输入长度从几万减少到几百条。
  • ESU:针对 SBS 序列和候选商品,用注意力机制建模其之间的精细关系,类似于 DIN、DIEN 的方式,用更复杂的模型去精确刻画兴趣。

SIM 借鉴了 DIN 的思想,设计了“先筛选后建模”的双阶段搜索框架,在精准建模用户兴趣的同时,还能高效处理几十倍甚至上百倍的数据量。

2. 方法

在这里插入图片描述

从左到右分别是 GSU(通用搜索单元,从长达上万条用户行为中,快速找出与当前候选商品最相关的前 K 条行为),ESU(精确搜索单元,建模 Top-K 和 当前候选商品之间的精确兴趣匹配关系)

2.1 GSU

并不是每一条历史行为都对当前候选商品有用,需要一个模块来筛选出与当前商品最相关的行为子序列,这是 GSU 的职责。

2.1.1 Hard Search

✅最终选择 Hard Search 模型部署在线系统中,达成更优的性能与可扩展性平衡

  • 非参数化方法:不依赖学习参数;

  • 策略非常简单:

    • 如果某条历史行为 b i b_i bi 所属类别 C i C_i Ci 与目标商品 C a C_a Ca 一致,那么它就被选入;

    • 相关性分数计算公式是:
      r i = Sign ( C i = C a ) r_i = \text{Sign}(C_i = C_a) ri=Sign(Ci=Ca)

  • 优点:

    • 快速、简单;
    • 非常适合实际部署(如线上推荐系统);
  • 缺点:

    • 精度可能不如软搜索,因为它只考虑类别,而不考虑行为的具体语义相似度。

为了实现高效的 Hard Search,系统构建了一个两层索引结构,称为:

用户行为树(UBT),基于 Key-Key-Value 结构:

  • 第一层 key:用户 ID;
  • 第二层 key:行为所属类别(category ID);
  • value:具体的行为序列;

实现形式是一个分布式系统,最大支持 22TB,具备高吞吐查询能力;查询时只需要知道候选商品的类别,即可查出与之同类的历史行为。

📌 UBT 的作用:

  • 把超长行为序列从上万条压缩到数百条;
  • 降低了线上系统对“长期行为存储和实时访问”的压力。

UBT 索引是 预先构建好的(offline pre-built);查询过程无需重新计算 embedding 或打分,只查类别索引即可;相比于 Soft Search 中的向量内积搜索,Hard Search 响应更快;同时,其他用户特征的计算也可与索引查询并行完成,进一步压缩延迟。

2.1.2 Soft Search

这是一个更复杂、基于神经网络参数的搜索方式,用于更精细地筛选行为。

操作流程如下

  1. 每条行为 b i b_i bi 被编码成 embedding 向量 e i e_i ei

  2. 目标商品也被编码成向量 e a e_a ea

  3. 然后用如下公式计算每个行为对目标商品的相关性分数 r i r_i ri
    r i = ( W b e i ) ⊙ ( W a e a ) T r_i = (W_b e_i) \odot (W_a e_a)^T ri=(Wbei)(Waea)T

    • 其中 W b , W a W_b, W_a Wb,Wa 是可训练的权重矩阵;
    • ⊙ \odot 表示向量的点积。
  4. 用最大内积搜索(MIPS)策略选出 Top-K 的行为

    • 使用加速算法如 ALSH 进行快速检索;
    • 将十几万条历史行为降到几百条;

Soft Search的行为表示聚合

  • 把选出的行为向量 e i e_i ei 和它们的权重 r i r_i ri 做加权和:
    U r = ∑ i = 1 T r i e i U_r = \sum_{i=1}^{T} r_i e_i Ur=i=1Triei

  • 得到一个统一的兴趣表示向量 U r U_r Ur,代表用户对当前商品的综合兴趣。

2.2 ESU

在 SIM 模型的第二阶段,Exact Search Unit(ESU)接收第一阶段 General Search Unit(GSU)筛选出的 Top-K 用户历史行为序列 B ∗ \mathbf{B}^* B,并对其进行精细建模,以捕捉用户在当前候选商品上的长期兴趣。由于这些行为可能跨越较长时间范围,不同行为对用户兴趣的贡献并不相同,因此 ESU 引入了时间间隔建模:每条被选中的行为与当前候选商品之间的时间差被表示为向量序列 D = [ Δ 1 , Δ 2 , . . . , Δ K ] \mathbf{D} = [\Delta_1, \Delta_2, ..., \Delta_K] D=[Δ1,Δ2,...,ΔK],并编码为时间嵌入向量 E t \mathbf{E}_t Et。最终,每条行为由两个向量拼接而成:行为内容 embedding e j ∗ e_j^* ej 与时间 embedding e j t e_j^t ejt,形成 z j = concat ( e j ∗ , e j t ) z_j = \text{concat}(e_j^*, e_j^t) zj=concat(ej,ejt)

随后,ESU 采用多头注意力机制(Multi-head Attention)对这些拼接后的行为表示进行加权建模。每个注意力头分别计算候选商品 embedding e a e_a ea 与每条行为表示 z j z_j zj 的注意力分数,再加权得到各自的兴趣表示 head i \text{head}_i headi。所有注意力头的输出被拼接,形成最终的长期兴趣表示向量 U l t U_{lt} Ult

该向量随后与候选商品等特征一起输入到 MLP 层,用于完成最终的 CTR 预测任务。值得注意的是,SIM 模型的训练过程采用联合优化机制,GSU 和 ESU 同时在交叉熵损失下联合训练,其中 GSU 若使用 soft-search 会通过一个辅助的 CTR 预测任务(以 U r U_r Ur 为输入)来学习打分函数和 embedding;此时主损失和辅助损失分别加权控制。若 GSU 使用的是 hard-search(无参数),则辅助损失项权重 α 被设为 0,仅训练 ESU。通过这样的两阶段结构,SIM 有效结合了高效检索与深度建模的优势,提升了对用户兴趣的建模能力与CTR预测准确率。


http://www.hkcw.cn/article/kGHPhjIPuu.shtml

相关文章

LeRobot ACT——LeRobot对ALOHA ACT策略的封装:含源码解析与真机部署(效果比肩ACT原论文)

前言 本文一开始是此文的第一部分,后随着我司各大具身团队对各个动作策略的实践、深入,觉得可以挖掘且分享的细节越来越多,比如LeRobot ACT,其效果也不错 ALOHA ACT的复现与应用:双臂下的智能分拣场景 故把其中的「Le…

【Linux网络编程】网络层IP协议

目录 IP协议的协议头格式 网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公网IP地址 路由 IP协议的协议头格式 4位版本号 :指定IP协议的版本,对于IPv4,版本号就是4。 4位首部长度:表名IP协议报头的长度,单…

微调大模型:什么时候该做,什么时候不该做?

目录 一、什么是“微调”?你真的需要它吗? 二、什么时候不该微调? 🚫 不该微调的 5 个典型场景: 1. 通用问答、闲聊、常识类内容 2. 企业内部问答 / 文档助手 3. 想要通过微调“学会格式” 4. 没有大量高质量标…

[AD] CrownJewel-1 Logon 4799+vss-ShadowCopy+NTDS.dit/SYSTEM+$MFT

QA QA攻擊者可以濫用 vssadmin 實用程式來建立卷影快照,然後提取 NTDS.dit 等敏感檔案來繞過安全機制。確定卷影複製服務進入運作狀態的時間。2024-05-14 03:42:16建立卷影快照時,磁碟區複製服務會使用機器帳戶驗證權限並列舉使用者群組。找到卷影複製過…

系统思考:整体观和心智模式

如果你是小区管委会的主委,面对住户抱怨“电梯太慢,每次都要花很久等电梯”,是不是第一反应就是——换马达、更新软件,甚至换整台电梯?这其实是典型的“线性思维”陷阱——把问题看成孤立的零件故障。 从系统思考的角…

常见相机的ISP算法

常见的ISP算法 3A算法 去雾算法 图像增强算法 图像宽动态算法 图像的电子缩放算法,无极电子缩放 图像降噪算法 相机常见问题 1.相机启动速度问题,启动速度较慢 2.相机扛不住高低温问题 3.相机散热问题问题 4.相机高低温芯片保护掉电 5.相机的成像效果或者…

黑马Java面试笔记之框架篇(Spring、SpringMvc、Springboot)

一. 单例bean Spring框架中的单例bean是线程安全的吗? Spring框架中的bean是单例的,可以在注解Scope()进行设置 singleton:bean在每一个Spring IOC容器中只有一个实例。prototype:一个bean的定义可以有多个实例 总结 二. AOP AOP称…

【Go】2、Go语言实战

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 前置知识 本篇将涉及到一些在命令行的输入输出操作,之前我们已经学习了fmt包用于输出内容,下面将介绍bufio包用于读入数据。 bufio包简介 bufio 是 Go 标准库…

基于Python与本地Ollama的智能语音唤醒助手实现

项目简介 本项目是一个基于 Python 的智能语音助手,集成了语音录制、语音识别、AI对话和语音合成功能。用户可以通过语音与本地部署的 Ollama 大模型进行自然对话。 技术架构 核心功能模块 语音录制 - 使用 sounddevice 录制用户语音语音识别 - 使用 faster-whi…

Vue框架2(vue搭建方式2:利用脚手架,ElementUI)

一.引入vue第二种搭建方式 在以前的前端项目中,一个项目需要多个html文件实现页面之前的切换,如果页面中需要依赖js或者css文件,那么我们就需要在多个html文件中都需要导入vue.js文件,太过繁琐. 现在前端开发都采用单页面结果,一个项目中只有一个html文件 其他不同的内容都写…

维斯塔潘谈和拉塞尔碰撞 意外相撞引发讨论

在F1西班牙大奖赛正赛中,维斯塔潘因与拉塞尔相撞被罚时10秒,最终排名第十。赛后采访中,记者问及那次碰撞。维斯塔潘表示两人开车时确实撞到了一起。当记者指出他本可以避免这种情况时,维斯塔潘承认了这一点。至于为什么会发生这样的情况,他表示自己也不清楚。责任编辑:zx…

乌称摧毁俄大量轰炸机 俄媒称系谣言 谎言蛛网

俄罗斯“与假新闻作战”网站发布文章称,通过分析乌克兰方面发布的视频可以确认,乌总统泽连斯基所谓“已摧毁34%俄罗斯远程机队”的说法并不属实。俄方认为,乌方的行动更像是编织了一张“谎言蛛网”。俄方分析指出,乌克兰实际上可能仅摧毁了两架图-95战略轰炸机及一架安-12运…

IntelliJ IDEA 接入 Ollama 本地模型 Qwen-coder

一:下载ollama 官网下载https://ollama.com/ 二:安装 一键自动安装,且安装的是C盘 如果C盘紧张,想装在其他盘符,在安装包目录下打开cmd命令行, 在你想安装的盘下创建一个文件夹,例如在D盘创建…

C++学习-入门到精通【12】文件处理

C学习-入门到精通【12】文件处理 目录 C学习-入门到精通【12】文件处理一、文件和流二、创建顺序文件三、从顺序文件读取数据文件定位指针对之前的程序进行修改:贷款查询程序 四、更新顺序文件五、随机存取文件1.创建随机存取文件2.修改程序:贷款处理程序…

生成式AI模型的重要评估指标——FID

1、引言 随着深度学习的发展迅速,生成式模型如生成对抗网络(GAN)、变分自编码器(VAE)等取得了显著的进展。看似逼真的图像数据,仍旧会有结构缺陷等情况发生,那么如何客观、准确的评估这些生成式…

第十:如何在Pycharm中安装AI插件(Proxy AI)

一.安装插件 1.通过官网安装:https://plugins.jetbrains.com/plugin/21056-proxy-ai2.通过设置安装:设置->插件->搜索:Proxy AI->点击安装3.安装后重启二.配置插件 1.配置路径:设置 -> 工具 -> CodeGPT或者Proxy…

在Visual Studio开发平台使用通义灵码:AI代码助手的深度实践指南

引言:当经典IDE遇见AI代码革命 Visual Studio(以下简称VS)作为微软推出的旗舰级集成开发环境,长期占据企业级开发工具的核心地位。然而,在智能化浪潮下,传统IDE的代码编写效率瓶颈日益显现。阿里云推出的通…

为什么你必须降AI?——写给每一位学生与科研人

📉 为什么要降 AI 检测率?一篇文章带你看清真相! 随着AI大模型的发展,越来越多的人开始使用人工智能辅助写作,无论是撰写论文、文案,还是职称申请材料,都大大提升了效率。然而,随之…

万字长文带你深度探索 MCP:AI 连接的未来之光​,MCP如何让AI产生“心灵感应“

文章目录 一、引言:开启 MCP 的神秘大门​二、MCP 的基本概念解析​2.1 MCP 的定义与内涵​2.2 与传统协议的区别与优势​ 三、MCP 的技术原理深度剖析​3.1 核心技术架构​3.2 数据格式与通信协议​ 四、MCP 的应用案例全景展示​4.1 WhatsApp MCP:AI 助…

【人工智能】人工智能的10大算法详解(优缺点+实际案例)

人工智能(AI)是现代科技的重要领域,其中的算法是实现智能的核心。本文将介绍10种常见的人工智能算法,包括它们的原理、训练方法、优缺点及适用场景。 1. 线性回归(Linear Regression) 模型原理 线性回归…