推荐算法:序列召回

news2025/1/10 20:58:14

目录

 序列召回(一)

 序列召回(二)

 序列召回(三)

序列召回(四)

 序列召回(一)

源自论文:http://arxiv.org/abs/1511.06939

 基于GRU的序列召回中通过GRU得到用户的embedding,与所有item的embedding做内积。两个向量内积就是用户-item的相似度。

一个用户和所有item的内积,相当于获得了所有item的得分。

 序列召回(二)

 召回:输入一个用户的(点击)序列,通过某种方法(序列建模的方法),把用户输入的序列变为向量,用用户向量,在所有的item的向量进行快速检索,依次达到序列召回的效果。

核心:对一个序列进行建模。(怎么把用户的行为序列变为一个用户的向量)

论文链接:https://arxiv.org/abs/1811.00855

手把手教你读推荐论文-SR-GNN (baidu.com)

用GNN对序列进行建模。

记录了节点的出边信息和入边信息。

 把和第i个节点相连的item的embedding加权求和的效果。(消息聚合)

 

 全连接层的操作。

n:序列里面item的个数

d:序列embedding的维度

 

 matmul   矩阵乘法

表示第t层GNN向量特征提取的中间变量。

把算出的结果进行综合,第t层GNN新得到的特征。

 通过z 来控制保留多少前一层的信息和多少这一层更新出来的信息。

由此,到这里已经完成从vt-1到vt的一次GNN操作。每一个item的embdding里面有更多的图结构的信息。

输入的行为序列是一个用户的。(每一个session)

 序列召回(三)

多兴趣召回:把用户的行为序列,从行为序列里面提取出多个这个用户的行为表征。

MIND

论文链接:https://arxiv.org/pdf/1904.08030

飞桨AI Studio - 人工智能学习与实训社区 (baidu.com)

输入:序列的embdedding

输出:用户的多兴趣表征

从用户行为序列第i个embedding ei到第j个兴趣向量 uj之间的权重。按照高斯分布进行初始化。

动态路由 需要循环k次,本论文里k=3。

1.先给bij做一个softmax。意味着每一个兴趣向量都是可以由原始输入序列进行加权求和得到,并且权重做了归一化。对i这个维度做的softmax。

2.用户的embedding向量通过S矩阵进行映射到一个新空间。S矩阵 d×d的维度。

得到每一个兴趣向量的前身Zj

3.对Zj做个激活函数就可。获得真正的输出Uj

对向量进行单位向量(单位化)

4.胶囊网络不做梯度更新。bij用公式进行更新,不用反向传递。

循环三遍后,输出最终的兴趣向量。

怎么根据用户的多兴趣表征来进行loss训练

Vu^T :用户的多兴趣表征,4个兴趣向量。维度为4×32(4×64)

:让item的embedding和用户所有兴趣向量都做一个内积。是四维向量。

每一个维度表示:用户的每一个兴趣向量和item的embedding的内积。(内积可以代表两个向量的相似度)

 做完内积做指数的操作。对内积的结果做一个p次幂。

如何通过用户的多兴趣向量完成一次序列召回

每个兴趣向量分别召回五十个商品。对200个相似度进行排序,之后取相似度的前五十。

序列召回(四)

Comirec:Controllable Multi-Interest Framework for Recommendation 

论文链接:https://arxiv.org/abs/2005.09347

 Comirec-DR

 Comirec-SA

输入:用户序列

输出:用户多个兴趣表征

归一化之后的attention score

 :对序列里面所有item的embedding做了一个映射,映射到新的向量空间,维度从d变为da,da是四倍的d。da×n  。n是序列的长度。

要用tanh,因为值域是-1~1,换其他的激活函数效果可能不太好。

结果n的向量。就是注意力的分数,就是对序列每一个item进行打分。

多样性控制

 f(u,i) 推荐出的所有item的embedding和user的embedding做内积,得到用户对所有item的得分的求和。(推荐准确性的指标)

贪心算法:

从200个选出50个item,这五十个Q(u,S)最大。

涉及到的博客:

飞桨AI Studio - 人工智能学习与实训社区 (baidu.com)

(8条消息) 什么是推荐系统?推荐系统类型、用例和应用_Jericho2022的博客-CSDN博客_推荐系统

推荐系统2--隐语义模型(LFM)和矩阵分解(MF)_Evey_zhang的博客-CSDN博客_隐语义空间

【技术分享】交换最小二乘 - 知乎 (zhihu.com)

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

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

相关文章

青训营项目实战1

项目实战 实现掘金青训营报名页码的后端部分 需求描述 展示话题(标题、文字描述)和回帖列表 不考虑前端页面实现,仅实现一个本地web服务 话题和回帖数据用文件存储 附加要求: 支持发布帖子 本地id生成要保证不重复 append文件 更…

【ONE·C || 指针】

总言 C语言:指针的使用介绍。 文章目录总言1、指针初阶1.1、是什么1.2、指针和指针类型1.2.1、指针类型介绍1.2.2、作用一:指针解引用1.2.3、作用二:指针整数1.3、野指针1.3.1、野指针是什么1.3.2、为什么存在野指针1.3.3、如何避免野指针1.4…

ReentrantLock从入门到踢门

1. ReentrantLock是什么Lock提供了比synchronized方法和语句更广泛的锁定操作。 更灵活的结构化,并且支持多个相关联的对象Condition。它实现了Lock、Serializable序列化接口。图1 ReentrantLock实现接口图1.1 Lock1.1.1 lock// 获取锁 void lock();1.1.2 lockInter…

SpringMVC -->ant风格的路径 -->占位符 -->获取请求参数 -->@RequestParam

文章目录SpringMVC支持ant风格的路径SpringMVC支持路径中的占位符SpringMVC获取请求参数通过servletAPI获取通过控制器方法的形参获取请求参数RequestParam注解处理请求参数和控制器方法的形参的映射关系代码样例SpringMVC支持ant风格的路径 ?:表示任意的…

爆火微信公众号自定义早安推送,爱她就给她推送

为女朋友打造专属早安推送先上截图电脑端看的效果手机端看的效果一、申请微信公众号测试号二、让他/她扫码关注测试公众号三、新增模板消息四、天气API五、使用 leancloud 部署云函数六、源代码先上截图 电脑端看的效果 手机端看的效果 一、申请微信公众号测试号 https://mp.w…

Kettle(7):插入/更新组件

1 组件介绍 插入/更新组件能够将Kettle抽取的数据,与某个表的数据进行对比,如果数据存在就更新,不存在就插入。 2 需求 修改 t_user中的张三这一行数据,修改age为80 同时,我们想要使用Kettle将 t_user1 中的张三这一…

【编程入门】N种编程语言做个记事本

背景 前面已输出多个系列: 《十余种编程语言做个计算器》 《十余种编程语言写2048小游戏》 《17种编程语言10种排序算法》 《十余种编程语言写博客系统》 《十余种编程语言写云笔记》 本系列对比云笔记,将更为简化,去掉了网络调用&#xff0…

量化选股——基于多因子模型的量化策略(第1部分—因子测算策略构建)

文章目录1.多因子模型概述2.因子挖掘3.多因子策略4.多因子策略构建基于多因子的策略通用流程Fama-French三因子因子效果测算方法因子测算结论&量化策略构建东西有点多,拆开成多个文章,边写边整合~,应该会分成2部分: 第1部分—…

【每日一道智力题】之坤坤猜生日(面试高频)

🚀write in front🚀 📜所属专栏:每日一题 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对我最…

文本特征工程——下篇

文本特征下篇 针对梯度提升树模型对文本特征进行特征工程,我们需要充分挖掘LabelLabelLabel编码丢失信息,例如上面的名字特征。内部存在非常强的规律,Mr等信息。这些信息反映了性别相关的信息。如果直接进行Label编码就会丢失此类信息&#…

高通平台开发系列讲解(GPS篇)NMEA数据包解析

文章目录 一、通用NMEA语句类型二、 NMEA语句格式2.1、GSV语句2.2、RMC语句2.3、GSA语句2.4、VTG语句2.5、DTM语句2.6、GNS语句2.7、GGA语句2.8、GLL语句2.9、GST语句2.10、ZDA语句沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 NMEA-0183是美国国家海洋电子协会为海…

【读论文】Going deeper in spiking neural networks Vgg and residual architecture

frontiers in Neuroscience 2019 摘要 本文提出一种新的方法来构建深度SNN,并在复杂视觉识别问题上证明其有效性(如CIFAR10和ImageNet);该方法应用于VGG和残差网络结构,并获得最优精度;最后给出稀疏事件驱…

力扣刷题| 20. 有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

文章标题LeetCode 20. 有效的括号题目链接🔗思路代码实现LeetCode 1047. 删除字符串中的所有相邻重复项题目链接🔗思路代码实现LeetCode 150. 逆波兰表达式求值题目链接🔗思路代码实现LeetCode 20. 有效的括号 题目链接🔗 LeetC…

运动基元(一):Dubin‘s曲线【part2】

三、六种Dubin’s轨迹的实现——开始摆盘啦 3.1 LSL LSL的第一段圆弧的曲率 k 1 = k m a x > 0 → s i g n ( k 1 ) = 1 k_1=k_{max}>0\rightarrow

118、【回溯算法】leetcode ——40. 组合总和 II:回溯法+剪枝优化(C++版本)

题目描述 原题链接:40. 组合总和 II 解题思路 本题的特点是,一个允许结果中出现相同数字,但每个元素仅能被选取一次。结果与结果之间不允许有重复,需要去重。 与 77. 组合(回溯法剪枝优化) 的相同之处在于…

【JavaSE专栏9】Java 注释知多少

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云…

斐波那契数列的--------5种算法(又称“兔子数列”)

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:…

决策树-剪枝处理

前言:理解《机器学习》P79-83中的决策树剪枝示例。 决策树生成 原始数据集如下所示,前10行为训练集,后7行为验证集,由此数据集可生成如下所示的决策树。 下面解释未进行剪枝操作的决策树为何如上图所示。 不对解释每个结点和分支…

WPF-3D图形

WPF-3D图形 WPF的3D功能可以在不编写任何c#代码的情况下进行绘制,只需要使用xaml即可完成3D图形的渲染。本文主要讲述了WPF-3D中的关键概念, 以及常用到的命中测试、2d控件如何在3D对象中进行渲染,除此之外,还演示了如何导入外部…

InstanceNorm LayerNorm

InstanceNorm && LayerNorm author: SUFEHeisenberg date: 2023/01/26 先说结论: 将Transformer类比于RNN:一个token就是一层layer,对一整句不如token有意义原生Bert代码或huggingface中用的都是InstanceNorm instead of LayerNorm&#xff…