DiffuRec: A Diffusion Model for Sequential Recommendation

news2025/4/23 0:50:45

DiffuRec: A Diffusion Model for Sequential Recommendation

Background

序列推荐(Sequential Recommendation, SR)领域,主流方法是将用户与物品表示为fixed embedding。然而,这种静态向量表达方式难以全面刻画用户多样化的兴趣及物品的潜在多维属性。此外,用户行为的不确定性也未被充分建模。

近年来扩散模型(Diffusion Models)在图像生成与自然语言处理中表现优异,其核心优势在于可以生成连续分布式表示。本文提出首次将扩散模型引入序列推荐任务,旨在增强推荐系统对用户兴趣与物品语义的建模能力,并引入合理的不确定性来提升推荐质量。

Introduction

DiffuRec 主要贡献如下:

1)多兴趣与多属性建模:将用户兴趣和物品属性建模为分布,而非固定向量,更真实地反映实际推荐场景中的多样性。2)目标物品guide机制:利用目标物品信息引导历史交互的representation学习,提高目标预测的准确性。3)不确定性注入:通过扩散过程引入噪声,增强模型鲁棒性。4)扩散与逆过程:训练阶段添加高斯噪声以生成中间表示,推理阶段逐步去噪恢复目标物品的表示。
论文认为,现有的如 VAE、GNN、Transformer 等方法难以统一有效建模上述特性,因此设计了融合扩散机制的统一模型 DiffuRec。

Method

在这里插入图片描述

preliminary

diffusion phase:
在这里插入图片描述
reverse phase:
在这里插入图片描述

approximator

在这里插入图片描述
在这里插入图片描述
其中 ⊙ \odot 是哈达玛积。x 是指导变量,在diffusion phase 是noised target item,reverse phase 是reversed target item representation。其中 λ i ∼ N ( δ , δ ) \lambda_i \sim \mathcal{N}(\delta, \delta) λiN(δ,δ) δ \delta δ是一个超参数,定义了该正态分布的均值和方差。
此处 x 引入了来自目标 item 的语义信息作为一种监督信号促进模型模型捕获用户当前意图。 λ \lambda λ额外引入扰动,更符号实际过程中用户交互行为存在不确定性的特点,也可以增强模型鲁棒性。


x 0 x_{0} x0是通过 Transformer 生成的,从建模角度(是用户当前兴趣的表达), 从预测角度(是目标 item 的分布式表示)

它本质上是用户兴趣(interest representation)在当前上下文下的外在表现,但从任务角度来说,它也扮演着“预测下一个 item”的角色。

a.diffusion

在这里插入图片描述

在这里插入图片描述
其中 a,b是超参数,控制噪声的范围,t是diffusion step 的最大值,s是从均匀分布中采样的变量,𝑠 =⌊𝑠′⌋, 𝑠′ ∼ 𝑈 (0, 𝑡).

在这里插入图片描述
其中x0是one step加噪的 e n + 1 e_{n+1} en+1

b.reverse

在这里插入图片描述

在这里插入图片描述

c.loss function and rounding

for diffusion phase:
loss func:
在这里插入图片描述
本文使用cross entropy loss,虽然 diffusion model 通常用 MSE loss,但在推荐任务里这么做不合理,因为:1)推荐中的 item embedding 是离散的、不连续的,因此优化欧式距离不合理,使用的话也会造成训练不稳定;2)推荐系统更常用点积来衡量item之间的相似性。

for inference phase
需要把模型去噪得到的x0 映射成一个物品index 空间中的index。具体做法:
用x0和所有候选item做内积,选择内积最大的。
在这里插入图片描述

Experiment

在这里插入图片描述
在这里插入图片描述
DiffuRec 模型在“diffusion 扩散阶段”和“reverse 逆过程”中引入的不确定性和扰动,不只是随便加点高斯噪声来增强模型的鲁棒性,而是在噪声的基础上引入了来自目标 item 的语义信息。这就像是让模型在“带着目标意图”的前提下进行训练,使得最后的预测更加准确。

五、Conclusion
DiffuRec 是第一个将扩散模型用于序列推荐任务的工作。它能有效建模物品的多潜在属性与用户的多兴趣,并通过引入噪声建模不确定性。实验表明,DiffuRec 在多个数据集上大幅超过现有 SOTA 方法。

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

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

相关文章

多模态大语言模型arxiv论文略读(三十三)

Jailbreaking Attack against Multimodal Large Language Model ➡️ 论文标题:Jailbreaking Attack against Multimodal Large Language Model ➡️ 论文作者:Zhenxing Niu, Haodong Ren, Xinbo Gao, Gang Hua, Rong Jin ➡️ 研究机构: Xidian Univer…

IntelliJ IDEA download JDK

IntelliJ IDEA download JDK 自动下载各个版本JDK,步骤 File - Project Structure (快捷键 Ctrl Shift Alt S) 如果下载失败,换个下载站点吧。一般选择Oracle版本,因为java被Oracle收购了 好了。 花里胡哨&#…

计算机网络——常见的网络攻击手段

什么是XSS攻击,如何避免? XSS 攻击,全称跨站脚本攻击(Cross-Site Scripting),这会与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,因此有人将跨站脚本攻击缩写为XSS。它指的是恶意攻击者往Web页面…

面向对象设计中的类的分类:实体类、控制类和边界类

目录 前言1. 实体类(Entity Class)1.1 定义和作用1.2 实体类的特点1.3 实体类的示例 2. 控制类(Control Class)2.1 定义和作用2.2 控制类的特点2.3 控制类的示例 3. 边界类(Boundary Class)3.1 定义和作用3…

鸿蒙ArkUI实战之TextArea组件、RichEditor组件、RichText组件、Search组件的使用

本文接上篇继续更新ArkUI中组件的使用,本文介绍的组件有TextArea组件、RichEditor组件、RichText组件、Search组件,这几个组件的使用对应特定场景,使用时更加需要注意根据需求去使用 TextArea组件 官方文档: TextArea-文本与输…

初创企业机器学习训练:云服务器配置对效率、成本与可扩展性的影响

在当今的初创企业中,机器学习模型训练已成为驱动创新和智能产品的核心环节。然而,深度学习模型的训练通常需要大量的计算资源,如何高效利用云服务器的基础配置成为初创团队关注的重点。云服务器的基础配置通常包括 vCPU(虚拟CPU&a…

【“星瑞” O6 评测】—NPU 部署 face parser 模型

前言 瑞莎星睿 O6 (Radxa Orion O6) 拥有高达 28.8TOPs NPU (Neural Processing Unit) 算力,支持 INT4 / INT8 / INT16 / FP16 / BF16 和 TF32 类型的加速。这里通过通过官方的工具链进行FaceParsingBiSeNet的部署 1. FaceParsingBiSeNet onnx 推理 首先从百度网盘…

56、如何快速让⼀个盒⼦⽔平垂直居中

在网页开发中&#xff0c;有多种方式能让一个盒子实现水平垂直居中。下面为你介绍几种常见且快速的方法。 1. 使用 Flexbox 布局 Flexbox 是一种非常便捷的布局模型&#xff0c;能够轻松实现元素的水平和垂直居中。 html <!DOCTYPE html> <html lang"en"&…

BDO分厂积极开展“五个一”安全活动

BDO分厂为规范化学习“五个一”活动主题&#xff0c;按照“上下联动、分头准备 、差异管理、资源共享”的原则&#xff0c;全面激活班组安全活动管理新模式&#xff0c;正在积极开展班组安全活动&#xff0c;以单元班组形式对每个班组每周组织一次“五个一”安全活动。 丁二醇单…

[Redis]1-高效的数据结构P2-Set

按照惯例&#xff0c;先丢一个官网文档链接。 上篇我们已经了解了高效的数据结构P1-String与Hash。 这篇&#xff0c;我们继续来了解Redis的 Set 与 Sorted set。 目录 有序集合 Sorted set底层实现 集合 Set总结资料引用 有序集合 Sorted set Redis 有序集合是一组唯一的字符…

用ffmpeg 实现拉取h265的flv视频转存成264的mp4 实现方案

参考文章 支持 flvh265 的ffmpeg编译安装_demuxer flvhevc异常-CSDN博客 windwos有别人编译好的 支持HEVC/H265 RTMP播放的FFMPEG/FFPLAY WINDOWS版本 但是linux没有所以得自己编译 1.需要对ffmpeg进行源码修改 这里使用 https://github.com/numberwolf/FFmpeg-QuQi-H265-…

Compose Multiplatform Android Logcat工具

一、通过adb发送指令&#xff0c;收集设备日志并保存 二、UI 三、代码 /*** 获取设备列表*/fun getDevices(): List<String> {val process ProcessBuilder("adb", "devices").redirectErrorStream(true).start()val output process.inputStream.…

[渗透测试]渗透测试靶场docker搭建 — —全集

[渗透测试]渗透测试靶场docker搭建 — —全集 对于初学者来说&#xff0c;仅仅了解漏洞原理是不够的&#xff0c;还需要进行实操。对于公网上的服务我们肯定不能轻易验证某些漏洞&#xff0c;否则可能触犯法律。这是就需要用到靶场。 本文主要给大家介绍几种常见漏洞对应的靶场…

人工智能-机器学习(线性回归,逻辑回归,聚类)

人工智能概述 人工智能分为:符号学习&#xff0c;机器学习。 机器学习是实现人工智能的一种方法&#xff0c;深度学习是实现机器学习的一种技术。 机器学习&#xff1a;使用算法来解析数据&#xff0c;从中学习&#xff0c;然后对真实世界中是事务进行决策和预测。如垃圾邮件检…

探寻Gson解析遇到不存在键值时引发的Kotlin的空指针异常的原因

文章目录 一、问题背景二、问题原因三、问题探析Kotlin空指针校验Gson.fromJson(String json, Class<T> classOfT)TypeTokenGson.fromJson(JsonReader reader, TypeToken<T> typeOfT)TypeAdapter 和 TypeAdapterFactoryReflectiveTypeAdapterFactoryRecordAdapter …

冰川流域提取分析——ArcGIS pro

一、河网提取和流域提取视频详细GIS小熊 || 6分钟学会水文分析—河网提取&#xff08;以宜宾市为例&#xff09;_哔哩哔哩_bilibili 首先你要生成研究区域DEM&#xff0c;然后依次是填洼→流向→流量→栅格计算器→河网分级→栅格河网矢量化&#xff08;得到河网.shp&#xff…

wordpress 垂直越权(CVE=2021-21389)漏洞复现详细教程

关于本地化搭建vulfocus靶场的师傅可以参考我置顶文章 KALI搭建log4j2靶场及漏洞复现全流程-CSDN博客https://blog.csdn.net/2301_78255681/article/details/147286844 描述: BuddyPress 是一个用于构建社区站点的开源 WordPress 插件。在 7.2.1 之前的 5.0.0 版本的 BuddyP…

MySQL 线上大表 DDL 如何避免锁表(pt-online-schema-change)

文章目录 1、锁表问题2、pt-online-schema-change 原理3、pt-online-schema-change 实战3.1、准备数据3.2、安装工具3.3、模拟锁表3.4、解决锁表 1、锁表问题 在系统研发过程中&#xff0c;随着业务需求千变万化&#xff0c;避免不了调整线上MySQL DDL数据表的操作&#xff0c…

剑指offer经典题目(五)

目录 栈相关 二叉树相关 栈相关 题目一&#xff1a;定义栈的数据结构&#xff0c;请在该类型中实现一个能够得到栈中所含最小元素的 min 函数&#xff0c;输入操作时保证 pop、top 和 min 函数操作时&#xff0c;栈中一定有元素。OJ地址 图示如下。 主要思想&#xff1a;我们…

3、排序算法1---按考研大纲做的

一、插入排序 1、直接插入排序 推荐先看这个视频 1.1、原理 第一步&#xff0c;索引0的位置是有序区&#xff08;有序区就是有序的部分&#xff0c;刚开始就只有第一个数据是有序的&#xff09;。第二步&#xff0c;将第2个位置到最后一个位置的元素&#xff0c;依次进行排…