当前位置: 首页 > backend >正文

【王树森推荐系统】行为序列02:DIN模型(注意力机制)

简单平均的用户行为序列建模

  • 系统记录 last-n,也就是最近交互过的 n 个物品
  • 把 n 个物品ID做 embedding,然后对所有 embedding 取平均得到一个向量作为对用户行为的表征
  • 取平均是最简单的,但是效果不是最好的

在这里插入图片描述

DIN模型

  • DIN 用加权平均代替平均,即注意力机制
  • 权重:候选物品与用户 LastN 物品的相似度,那个物品与候选物品更相似,它的权重就越高
  • 红色的向量是用户交互过的 LastN 物品的向量表征,蓝色向量 q 是候选物品的向量表征
  • 候选物品的含义:比如粗排选出了 500 个物品,它们就是精排的候选物品,精排模型要给每个候选物品打分,分数表示用户对候选物品的兴趣,最后根据分数高低对这 500 个候选物品做排序,保留分数最高的几十个展示给用户
  • 需要注意区分 last-n 物品和候选物品

在这里插入图片描述

  • 计算向量 x1x_1x1 与候选物品向量 qqq 的相似度记作 α1\alpha_1α1,它是个实数
  • 计算相似度的方法有很多,比如内积,余弦相似度,也可以用更复杂的方法
    在这里插入图片描述
  • 同样的方法计算 x2x_2x2qqq 的相似度,记作 α2\alpha_2α2,以此类推得到 n 个相似度,每个 α\alphaα 对应一个 xxx 向量
  • 在这里插入图片描述
  • α\alphaα 和对应的向量相乘,然后把结果相加得到紫色的向量,紫色向量就是 last-n 向量的加权和,权重是相似度 α\alphaα

在这里插入图片描述

DIN模型总结

  • 对于某候选物品,计算它与用户 last-n 物品的相似度
  • 以相似度作为权重,求用户 last-n 物品向量的加权和,结果是一个向量
  • 把得到的向量作为一种用户特征,输入排序模型,预估(用户,候选物品)的点击率,点赞率等指标
  • 本质是注意力机制

DIN的本质是注意力机制

  • 我们把红色向量 x1x_1x1xnx_nxn 作为 key 和 value
  • 右边蓝色向量作为 query
  • 输入单头注意力层
    在这里插入图片描述
  • query 只有一个向量,所以注意力层的输出也是一个向量
    在这里插入图片描述

简单平均 vs 注意力机制

  • 简单平均和注意力机制都适用于精排模型
  • 简单平均适用于双塔模型,三塔模型
    • 简单平均只需要用到 last-n,属于用户自身的特征,与候选物品无关
    • 把 last-n 向量的平均作为用户塔的输入
  • 注意力机制不适用于双塔模型,三塔模型
    • 注意力机制需要用到 last-n + 候选物品
    • 用户塔看不到候选物品,不能把注意力机制用在用户塔。比如在召回的时候,一共有上亿个候选物品,用户只能看到用户特征而看不到候选物品特征,但是 DIN 需要知道候选物品的特征
http://www.xdnf.cn/news/15271.html

相关文章:

  • 【LeetCode453.最小操作次数使数组元素相等】
  • 深入解析C#接口实现的两种核心技术:派生继承 vs 显式实现
  • 论文阅读:HybridTrack: A Hybrid Approach for Robust Multi-Object Tracking
  • 前端开发中的资源缓存详解
  • 面试现场:奇哥扮猪吃老虎,RocketMQ高级原理吊打面试官
  • Spring Ai Alibaba Gateway 实现存量应用转 MCP 工具
  • AI领域的黄埔军校:OpenAI是新一代的PayPal Mafia,门生故吏遍天下
  • 浅谈 Python 中的 yield——生成器对象与函数调用的区别
  • 力扣 hot100 Day42
  • 若依前后端分离Vue3版本接入阿里云OSS
  • 20250712-1-Kubernetes 监控与日志管理-K8s日志管理与维护_笔记
  • Softmax回归(多类逻辑回归)原理及完整代码示例实现
  • 一个基于数据库的分布式锁:乐观与悲观实现
  • 贪心算法题解——跳跃游戏【LeetCode】
  • Windows 用户账户控制(UAC)绕过漏洞
  • python学习笔记【1】对字符串的处理
  • 《Java Web程序设计》实验报告六 JSP+JDBC+MySQL实现登录注册
  • [vroom] 启发式算法(路径评估) | 局部搜索优化引擎 | 解决方案输出解析
  • 自助KTV选址指南与优化策略
  • 系统分析师-计算机系统-输入输出系统
  • 十三、K8s自定义资源Operator
  • 仅27M参数!SamOutVX轻量级语言模型刷新认知,小身材也有大智慧
  • 2025.7.12总结
  • Vue 项目打包部署还存在问题?你知道怎么做吧?
  • JVM回收
  • 内部类 示例
  • 【java安全】springBoot配置文件属性名自定义及属性值加密
  • 【6.1.0 漫画数据库技术选型】
  • 建造者模式(Builder)
  • 【Datawhale AI 夏令营】 用AI做带货视频评论分析(二)