【推荐算法】注意力机制与兴趣演化:推荐系统如何抓住用户的心?

注意力机制与兴趣演化:推荐系统如何抓住用户的心?

      • 一、算法背景知识:从静态推荐到动态感知
        • 1.1 传统推荐系统的局限性
        • 1.2 人类注意力机制的启示
      • 二、算法理论/结构:动态兴趣建模革命
        • 2.1 DIN(深度兴趣网络):注意力机制初探
        • 2.2 DIEN(深度兴趣演化网络):序列建模进阶
      • 三、模型评估:业务效果的飞跃
        • 3.1 离线实验(淘宝数据集)
        • 3.2 在线A/B测试(淘宝双十一)
      • 四、应用案例:电商推荐实战
        • 4.1 淘宝首页推荐
        • 4.2 短视频推荐
      • 五、面试题与论文资源
        • 5.1 高频面试题
        • 5.2 关键论文
      • 六、详细优缺点分析
        • 6.1 技术优势
        • 6.2 挑战与解决方案
      • 七、相关算法演进
        • 7.1 注意力机制家族
        • 7.2 兴趣建模技术对比
        • 7.3 工业演进路线
      • 总结:从"千人一面"到"千人千时"

一、算法背景知识:从静态推荐到动态感知

1.1 传统推荐系统的局限性

在2017年之前,主流推荐系统(如矩阵分解、DeepFM)存在两大根本缺陷:

  1. 静态兴趣假设:认为用户兴趣是固定不变的

    • 用户表征向量 u \mathbf{u} u一旦生成即固定
    • 无法反映"早上看新闻,晚上购物的"的时序变化
  2. 平等对待历史行为
    u = 1 T ∑ t = 1 T e t \mathbf{u} = \frac{1}{T}\sum_{t=1}^T \mathbf{e}_t u=T1t=1Tet
    所有历史行为 e t \mathbf{e}_t et被同等对待,忽略了:

    • 近期行为比早期更重要
    • 与当前场景相关的行为更关键
1.2 人类注意力机制的启示

心理学研究表明:

  • 选择性注意:人类只会关注视觉场中约4%的信息
  • 兴趣漂移:用户兴趣随时间呈指数衰减:
    I ( t ) = I 0 e − λ t I(t) = I_0 e^{-\lambda t} I(t)=I0eλt

💡 阿里团队发现:电商用户点击行为中,仅15%的历史行为与当前决策真正相关

在这里插入图片描述

二、算法理论/结构:动态兴趣建模革命

在这里插入图片描述

2.1 DIN(深度兴趣网络):注意力机制初探

阿里2017年提出首个注意力推荐模型:

用户行为序列
Embedding层
目标物品
注意力激活单元
加权行为表示
MLP预测层

注意力权重计算
α t = exp ⁡ ( v T ReLU ( W [ e t ; e a ] ) ) ∑ j = 1 T exp ⁡ ( v T ReLU ( W [ e j ; e a ] ) ) \alpha_t = \frac{\exp(\mathbf{v}^T \text{ReLU}(\mathbf{W}[\mathbf{e}_t;\mathbf{e}_a]))}{\sum_{j=1}^T \exp(\mathbf{v}^T \text{ReLU}(\mathbf{W}[\mathbf{e}_j;\mathbf{e}_a]))} αt=j=1Texp(vTReLU(W[ej;ea]))exp(vTReLU(W[et;ea]))

  • e t \mathbf{e}_t et:历史行为 t t t的嵌入
  • e a \mathbf{e}_a ea:目标广告的嵌入
  • W , v \mathbf{W}, \mathbf{v} W,v:可学习参数

用户表征生成
u = ∑ t = 1 T α t e t \mathbf{u} = \sum_{t=1}^T \alpha_t \mathbf{e}_t u=t=1Tαtet

2.2 DIEN(深度兴趣演化网络):序列建模进阶

阿里2018年引入时间序列建模:

行为序列
行为序列层
兴趣抽取层-GRU
兴趣进化层-AUGRU
MLP预测

关键创新

  1. 兴趣抽取层
    h t = GRU ( e t , h t − 1 ) \mathbf{h}_t = \text{GRU}(\mathbf{e}_t, \mathbf{h}_{t-1}) ht=GRU(et,ht1)
    提取每个时间步的即时兴趣

  2. 兴趣进化层(AUGRU)
    h ~ t = ( 1 − α t ) h t − 1 + α t h ~ t \tilde{\mathbf{h}}_t = (1-\alpha_t)\mathbf{h}_{t-1} + \alpha_t \tilde{\mathbf{h}}_t h~t=(1αt)ht1+αth~t
    其中 α t \alpha_t αt是注意力权重,实现兴趣的动态演化

三、模型评估:业务效果的飞跃

3.1 离线实验(淘宝数据集)
模型AUCGAUCRIG
Base模型0.6210.5990.0%
DIN0.683 (+10.0%)0.657 (+9.7%)16.2%
DIEN0.712 (+14.7%)0.689 (+15.0%)23.8%

RIG(Relative Information Gain):信息增益相对值

3.2 在线A/B测试(淘宝双十一)
指标Base模型DINDIEN
CTR2.15%2.58%2.83%
GMV/UV¥89.6¥105.2¥118.7
新用户转化率1.02%1.31%1.49%

四、应用案例:电商推荐实战

4.1 淘宝首页推荐
  • 特征工程
    用户特征
    基础画像/实时行为
    商品特征
    类目/价格/店铺
    DIEN模型
  • 序列建模
    • 行为序列长度:最长500个行为
    • 时间窗口:最近30天
  • 效果:双十一GMV增加37亿元
4.2 短视频推荐
  • 创新应用:多模态注意力
    α t = f ( 视频帧 t , 当前视频 ) \alpha_t = f(\text{视频帧}_t, \text{当前视频}) αt=f(视频帧t,当前视频)
  • 架构优化
    • 使用Transformer替代GRU
    • 在线兴趣更新延迟<200ms
  • 成效:观看时长提升41%

五、面试题与论文资源

5.1 高频面试题
  1. Q:DIN与DIEN的核心区别?
    A:DIN静态加权历史行为,DIEN用序列模型建模兴趣演化过程

  2. Q:注意力权重计算为何使用两层网络?
    A:增加非线性表达能力:
    α = σ ( v T tanh ⁡ ( W [ e t ; e a ] ) ) \alpha = \sigma(\mathbf{v}^T \tanh(\mathbf{W}[\mathbf{e}_t;\mathbf{e}_a])) α=σ(vTtanh(W[et;ea]))

  3. Q:AUGRU相比传统GRU的优势?
    A:通过注意力门控实现兴趣强度的动态调整:
    h ~ t = ( 1 − α t ) h t − 1 + α t h t \tilde{\mathbf{h}}_t = (1-\alpha_t)\mathbf{h}_{t-1} + \alpha_t \mathbf{h}_t h~t=(1αt)ht1+αtht

  4. Q:如何处理长序列训练效率?
    A:采用负采样+课程学习,逐步增加序列长度

5.2 关键论文
  1. DIN原论文:Deep Interest Network (KDD 2018)
  2. DIEN原论文:Deep Interest Evolution Network (AAAI 2019)
  3. 注意力机制:Attention Is All You Need
  4. 工业实践:Behavior Sequence Transformer

六、详细优缺点分析

6.1 技术优势
  1. 动态兴趣捕获

    • 用户兴趣随时间变化:
    运动鞋
    手机
    咖啡机
    婴儿奶粉
  2. 关键行为聚焦

    行为注意力权重
    浏览手机0.38
    购买耳机0.41
    浏览衣服0.05
    查看零食0.16
  3. 业务指标提升

    • 淘宝:点击率提升20-25%
    • 亚马逊:转化率提升18%
6.2 挑战与解决方案
  1. 计算复杂度高

    • 问题:序列建模使训练耗时增加3-5倍
    • 方案:使用CUDA优化的GRU算子
  2. 长尾兴趣捕捉

    • 问题:低频兴趣被高频行为淹没
    • 方案:逆频率加权损失函数
      L = − ∑ 1 p ( y i ) y i log ⁡ y ^ i \mathcal{L} = -\sum \frac{1}{p(y_i)} y_i \log \hat{y}_i L=p(yi)1yilogy^i
  3. 在线服务延迟

    • 问题:实时序列推理延迟>100ms
    • 方案:兴趣状态缓存+增量更新

七、相关算法演进

7.1 注意力机制家族
模型创新点应用场景提出年份
DIN基础注意力电商推荐2017
DIEN兴趣演化电商/视频2018
BSTTransformer行为序列2019
SIM长序列建模搜索推荐2020
7.2 兴趣建模技术对比
技术代表模型核心思想优势
静态池化DeepFM平均/最大池化计算高效
基础注意力DIN目标相关加权动态聚焦
序列建模DIEN时间演化建模捕捉趋势
多兴趣MIND兴趣解耦多样性
7.3 工业演进路线
DIN
DIEN
BST
SimDIN

总结:从"千人一面"到"千人千时"

注意力机制与兴趣演化模型的核心突破在于:

  1. 认知科学的工程化

    • 将人类注意力机制数学化为 α = f ( e t , e a ) \alpha = f(\mathbf{e}_t, \mathbf{e}_a) α=f(et,ea)
    • 兴趣漂移建模为 h t = AUGRU ( h t − 1 , e t ) \mathbf{h}_t = \text{AUGRU}(\mathbf{h}_{t-1}, \mathbf{e}_t) ht=AUGRU(ht1,et)
  2. 业务价值的飞跃

    • 淘宝:年GMV增长超百亿
    • YouTube:观看时长提升40%+
  3. 技术范式的变革

    静态表征
    动态兴趣
    实时演化
    元宇宙虚拟人

🌟 未来方向

  • 多模态兴趣建模:融合视觉/语音/文本信号
  • 因果兴趣推断:区分真实兴趣与曝光偏差
  • 联邦兴趣学习:隐私保护下的个性化

在这里插入图片描述

正如DIEN论文所述:“Modeling the evolutionary nature of user interests is the key to capturing the dynamic preference patterns” —— 理解用户兴趣的动态本质,正是推荐系统抓住人心的关键所在。

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

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

相关文章

快速入门:创建 Azure 数据资源管理器群集和数据库

前言 Azure 数据资源管理器是 Microsoft 提供的一项快速、完全托管的数据分析服务。 它允许用户分析来自应用程序、网站、物联网设备等的海量数据流,从而简化复杂的数据探索。 它能够处理数 PB 的数据,并支持快速检索数据以进行分析。 主要特点 高性能:ADX 针对快速数据提…

Redis集群模式之Redis Cluster(2)

上篇文章我们讲解了Redis Cluster中的主要模块和两种重定向方式&#xff0c;这篇文章我们来讲解一下Redis Cluster的状态监测和维护。 Redis Cluster状态监测及维护 要讲解Redis Cluster中节点的状态如何维护&#xff0c;我们要先知道Redis Cluster中的节点有哪些状态&#xf…

Step-Audio-AQAA 解读:迈向「纯语音」交互的端到端 LALM 新里程

引言:AI 从听到说 大型音频语言模型(Large Audio-Language Models, LALMs)正在彻底改变我们与机器交互的方式。我们不再满足于简单的文本问答,而是期望 AI 能够像人类一样,通过自然的语音进行交流,理解我们的意图,并以富有表现力的声音回应。然而,构建一个能够直接从语…

基于边缘计算的丝杆状态实时监测系统设计?

基于边缘计算的丝杆状态实时监测系统设计&#xff0c;可从系统架构、各层功能设计、关键技术应用等方面入手&#xff0c;以下为详细介绍&#xff1a; 系统架构设计 基于边缘计算的丝杆状态实时监测系统通常由感知层、边缘层和云端三部分组成。感知层负责数据采集&#xff0c;…

LeetCode 每日一题 2025/6/9-2025/6/15

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 6/9 440. 字典序的第K小数字6/10 3442. 奇偶频次间的最大差值 I6/11 3445. 奇偶频次间的最大差值 II6/12 3423. 循环数组中相邻元素的最大差值6/13 2616. 最小化数对的最大…

PyTorch张量操作中dim参数的核心原理与应用技巧:

今天在搭建神经网络模型中重写forward函数时&#xff0c;对输出结果在最后一个维度上应用 Softmax 函数&#xff0c;将输出转化为概率分布。但对于dim的概念不是很熟悉&#xff0c;经过查阅后整理了一下内容。 PyTorch张量操作精解&#xff1a;深入理解dim参数的维度规则与实践…

Day 31

1. 规范的文件命名 核心原则&#xff1a; 清晰明确&#xff1a;文件名应准确描述内容&#xff08;如data_preprocessing.py&#xff09; 风格统一&#xff1a; 推荐小写下划线&#xff08;Python惯例&#xff0c;如model_training.py&#xff09; 或使用驼峰式&#xff08…

学习Oracle------认识VARCHAR2

学习Oracle------认识VARCHAR2 VARCHAR2 是 Oracle 数据库中专门用于存储可变长度字符串的数据类型&#xff0c;它是 Oracle 对标准 SQL 数据类型 VARCHAR 的增强和替代。以下是全面解析&#xff1a; 核心概念 名字含义&#xff1a; VAR Variable&#xff08;可变&#xff09…

记录jackson解析出错

Jackson 属性名大小写 Bug 记录 问题描述 在前后端交互过程中&#xff0c;前端传递的 JSON 字段名为驼峰风格&#xff08;如 qTitle&#xff09;&#xff0c;后端 Java 实体类字段名也为驼峰&#xff08;如 private String qTitle;&#xff09;。 但在反序列化时&#xff0c;…

泰国数码电商系统定制|3C产品详情泰语化+售后管理,适配泰国数码零售

随着全球数字化的加速&#xff0c;电商行业正在迅速发展&#xff0c;尤其是以泰国为代表的东南亚市场。泰国不仅是一个拥有庞大消费者群体的市场&#xff0c;而且其日益增长的互联网使用率和手机普及率使得数码产品的销售潜力巨大。在这样的大背景下&#xff0c;针对泰国市场的…

59、定制化原理-SpringBoot定制化组件的几种方式

59、定制化原理-SpringBoot定制化组件的几种方式 在Spring Boot中&#xff0c;定制化组件的方式多样&#xff0c;以下是几种常见的方法及其原理&#xff1a; #### 修改配置文件 通过修改application.properties或application.yml文件&#xff0c;利用ConfigurationProperties注…

机器学习--分类

阳性&#xff08;Positive&#xff09;和阴性&#xff08;Negative&#xff09; 阳性&#xff08;Positive&#xff09; 正类&#xff1a;通常指的是我们关注的类别或事件&#xff1b;阴性&#xff08;Negative&#xff09; 负类&#xff1a; 指的是与阳性相反的类别或事件。…

三星MZQL2960HCJR-00BAL高性能固态硬盘控制器SSD云计算和高端存储专用 电子元器件解析

MZQL2960HCJR-00BAL 电子元器件解析 1. 基本类型与功能 MZQL2960HCJR-00BAL 是 三星&#xff08;Samsung&#xff09; 推出的一款 企业级NVMe SSD主控芯片&#xff0c;属于 高性能固态硬盘控制器&#xff0c;专为 数据中心、云计算和高端存储 设计。 关键特性&#xff1a; 接…

Blender——建构、粒子、灯光、动画

Blender是一款开源的三维建模和动画软件&#xff0c;可用于创建3D模型、动画、渲染图像和视频&#xff0c;还支持雕刻、纹理绘制、粒子系统等功能。 建构篇&#xff1a; 基本操作&#xff1a; 视角的控制&#xff1a; 控制观察视角: 鼠标中键 平移视图: Shift鼠标中键 缩放视…

节日快乐啊

<section data-role"paragraph" class"_135editor"> <p> <br/> </p> </section> <p> 玛哈特2025中国国际金属成形展览会邀请函 </p><style>* { margin: 0; …

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…

LeetCode - 387. 字符串中的第一个唯一字符

题目 387. 字符串中的第一个唯一字符 - 力扣&#xff08;LeetCode&#xff09; 思路 用哈希表统计每个字符出现的次数 创建一个 unordered_map<char, int>&#xff0c;遍历字符串&#xff0c;把每个字符出现的次数存进去。 再遍历字符串&#xff0c;找到第一个只出现…

python从环境变量和配置文件中获取配置参数

前言 从环境变量和配置文件中获取配置参数&#xff0c;相关库&#xff1a; python-dotenv&#xff1a;第三方库&#xff0c;需要使用pip安装configparser&#xff1a;标准库 代码 test.ini [mysql] host "192.168.0.10" port 3306 user "root" pas…

HarmonyOS5 运动健康app(一):健康饮食(附代码)

一、核心数据模型设计 代码通过两个接口构建了饮食管理的基础数据结构&#xff1a; interface footItem {name: string; // 营养名称&#xff08;蛋白质/碳水/脂肪&#xff09;weight: number; // 重量&#xff08;克&#xff09; }interface DietItem {name: string; // 食物…

MQ选型及RocketMQ架构总览

一、什么是MQ MQ&#xff08;MessageQueue&#xff09; Message(消息)&#xff1a;消息是在不同进程之间传递的数据&#xff0c;这些进程可以在同一台机器上&#xff0c;也可以在不同的机器上。 Queue&#xff08;队列&#xff09;&#xff1a;队列原意是指一种具有FIFO&#…