几分钟做网站/怎么做网络营销推广

几分钟做网站,怎么做网络营销推广,阜宁做网站的价格,中国电力建设股份部官方网站论文地址:Contrastive Clustering Learning for Multi-Behavior Recommendation | ACM Transactions on Information Systems 摘要 近年来,多行为推荐模型取得了显著成功。然而,许多模型未充分考虑不同行为之间的共性与差异性,以…

论文地址:Contrastive Clustering Learning for Multi-Behavior Recommendation | ACM Transactions on Information Systems


摘要

近年来,多行为推荐模型取得了显著成功。然而,许多模型未充分考虑不同行为之间的共性与差异性,以及目标行为的数据稀疏性问题。本文提出了一种基于对比聚类学习的全新多行为推荐模型(MBRCC)。

具体而言,采用图卷积网络(GCN)分别获取用户和物品的嵌入表示。随后,设计了三种优化用户和物品嵌入的任务,包括行为级嵌入、实例级嵌入和聚类级嵌入。

在行为级嵌入中,设计了一种自适应参数学习策略,以分析辅助行为对目标行为的影响,并通过对用户在各行为上的嵌入进行加权,获得最终的用户嵌入表示。

在实例级嵌入中,利用对比学习对用户和物品实例进行分析,以缓解数据稀疏性问题。

在聚类级嵌入中,设计了一种新的聚类对比学习方法,以捕捉用户和物品群体之间的相似性。

最终,结合这三种任务,以提升用户和物品嵌入的质量。在三个真实世界数据集上的广泛实验表明,MBRCC 显著优于现有的多种推荐模型。

引言

推荐系统在在线广告、社交媒体和电子商务等多个领域发挥着至关重要的作用。它通过智能信息过滤和个性化推荐,帮助用户快速找到符合其兴趣和需求的内容。个性化推荐不仅提升了用户体验,还促进了商业交易的成功。

目前,大多数推荐模型主要关注用户与物品之间的单一行为关系。例如,Zheng 等人[57]提出了一种基于单一行为数据挖掘物品属性信息的推荐方法;Wang 等人[36]在单一行为数据上研究了用户-物品的高阶信息;Li 等人[24]利用元学习方法提升用户和物品的表示效果;Lan 等人[21]基于历史交互数据构建了用户和物品的双分支图来捕获信息。然而,在实际应用中,用户和物品的交互通常涉及多种行为类型。例如,如图 1 所示,在电子商务平台上,用户的行为通常包括浏览、点击和购买等。此外,与用户交互的物品数量不断增长,仅依赖单一行为难以准确推测用户的偏好,因此需要借助辅助行为进行推荐。

为了充分利用辅助行为信息,近年来涌现出越来越多的多行为推荐模型。例如,Gao 等人[9]提出了一种基于神经网络的多任务推荐框架,以级联方式关联各类行为,利用用户在购买前通常浏览相关感兴趣物品的现象来整合不同行为信息;Jin 等人[17]提出了一种多行为推荐模型,通过用户-物品交互的传播层捕捉行为强度,并通过物品-物品交互的传播层捕捉行为语义;Chen 等人[7]提出了一种基于多行为的推荐模型,在可控时间复杂度下高效捕捉不同行为信息,该模型采用基于用户、基于物品和交替优化的三种方法来挖掘不同行为间的复杂关系。此外,Chen 等人[5]考虑到用户和物品交互中的高阶协同信息,提出了一种基于协同过滤的异构图推荐模型,该模型采用关系感知传播层显式获取高阶信号;Wei 等人[39]提出了一种基于多种行为类型图的注意力多行为推荐模型,以捕捉用户-物品交互网络中的隐藏关系,该模型同时考虑了节点级特定行为的重要性和行为级不同行为的语义强度。此外,一些研究还结合了对比学习与多行为推荐。例如,Gu 等人[11]提出了一种基于自监督图卷积网络(GCN)的多行为推荐模型,以缓解监督信号稀疏问题,该模型采用星型对比学习策略来学习不同行为之间的共性;Wu 等人[42]提出了一种基于多视图的多行为对比学习推荐模型,以有效缓解冷启动问题,该模型整合了多行为、多视图和行为区分的对比学习。

尽管上述研究在提升推荐性能方面取得了显著进展,但仍然存在以下局限性:
(1) 一些多行为推荐的对比学习方法主要基于个体行为,缺乏从群体角度综合考虑不同行为,这通常导致用户和物品的嵌入表示无法全面覆盖行为信息;
(2) 由于相似用户的行为通常具有共性,而不同用户的行为往往存在差异,因此用户和物品的共性与差异可提供更丰富的语义信息。然而,部分模型未充分考虑用户或物品之间的共性与差异,可能导致群体偏差或信息过滤不足;
(3) 部分方法忽视了目标行为的数据稀疏性问题。例如,相较于点击、浏览和加入购物车等行为,购买行为的数据较为稀疏,这可能导致推荐偏差或冷启动问题,因为对比学习中难以构造足够数量和多样性的正负样本对。

针对现有多行为推荐模型的这些局限性,本文提出了一种基于对比聚类学习的全新多行为推荐模型(MBRCC)。具体而言,采用 GCN 获取用户和物品在不同行为上的嵌入表示,并围绕这些嵌入设计三类任务,以提升嵌入质量:
(a) 行为级嵌入:采用自适应参数学习策略计算用户在不同行为上的嵌入权重,并通过加权方法融合所有行为的用户嵌入;
(b) 实例级嵌入:基于用户和物品不同行为间的共性,采用对比学习优化用户和物品的嵌入表示,使正样本对之间的共性最大化,负样本对之间的共性最小化;
(c) 聚类级嵌入:多行为数据通常展现出类似的群体模式,因此采用对比聚类学习方法挖掘用户和物品嵌入的潜在信息,以促进实例级用户和物品之间的共性。

在三个真实世界数据集上对 MBRCC 进行了实验评估,结果表明,相较于其他基线模型,本文的方法在所有数据集上至少提升了 7% 的推荐性能。本文的主要贡献如下:

  • 提出了一种新型多行为推荐模型(MBRCC),包括行为级嵌入、实例级嵌入和聚类级嵌入,并首次在多行为推荐任务中应用对比聚类学习,以捕捉用户和物品的嵌入信息;
  • 在实例级嵌入中考虑了用户和物品之间的共性与差异,同时引入群体聚类级嵌入,最大化用户和物品之间的关联信息利用率,从而有效缓解数据稀疏性问题;
  • 在三个真实数据集上验证了 MBRCC 模型的有效性,实验结果表明,MBRCC 在推荐性能上显著优于现有模型。

模型

所提出的模型 (MBRCC) 如图 2 所示,主要包含四个部分。

嵌入表示部分,异构图 G 根据行为类别划分为 K 个子图。此外,为了获取完整的嵌入信息,设计了三种任务。在行为级别嵌入中,方法侧重于获取用户在每个子图上的嵌入权重。这些权重与相应子图的嵌入进行聚合,以更好地捕获用户行为在不同子图中的重要性。对于物品嵌入,采用简单的拼接操作,因为它们具有静态属性。在实例级别嵌入中,采用对比学习方法,将目标行为(即购买行为)的用户和物品嵌入与其他辅助行为进行比较,利用对比学习策略提取用户和物品之间的实例级共性信息,作为局部特征。在聚类级别嵌入中,针对每种辅助行为获取特征组,并将目标行为加入这些特征组中。然后,使用 softmax 方法在每个特征组中获取不同的特征簇,并在各特征簇之间进行对比学习。最终,这三种任务相结合,以优化用户和物品的嵌入。

4.1 嵌入表示

基于子图 Gk,采用 GCN 获取用户和物品的表示。零层的嵌入表示是矩阵 E(0)中行向量的随机初始化。在模型中,采用多层消息传播,通过收集连接邻居的信息来获取完整的节点信息。为了适应推荐任务,去除了通用 GCN 嵌入聚合中的特征变换矩阵和非线性激活函数,类似于 LightGCN。公式如下:

其中,Nu 和 Ni 分别表示用户 u和物品 i 的邻居数量,l表示当前图卷积层数,(e^k_u)^{(l+1)} 代表 k 类行为的第 l+1 层用户嵌入。在获取每层的嵌入信息后,需要聚合所有层的信息,以确保更好的节点嵌入表示:

其中,αl 代表第 l 层嵌入的权重,与 LightGCN 一致,其中 L为 GCN 的层数。物品嵌入的学习过程与用户嵌入类似。

4.2 行为级别嵌入

多行为数据可以提供更详细的信息,使用户和物品的嵌入表示更加完整。在行为级别嵌入中,设计了一种自适应参数学习方法,根据不同行为数据的分布,捕获每种行为的权重:

其中,αuk代表用户 u 在 k 类行为上的权重,wk 表示 kk 类行为的重要性。为了简化模型,假设 wk 对所有用户均具有相同影响。xuk 代表用户 u 在 k 类行为下的交互物品数量。最终的用户嵌入通过所有行为的加权求和得到:

其中,W 和 b 分别为权重和偏差,σ 代表非线性激活函数。最终的物品嵌入通过拼接所有行为的嵌入获得:

其中,Cat表示拼接操作,MLP 代表多层感知机(Multi-Layer Perceptron)。通过融合操作,得到最终的用户嵌入 eu 和物品嵌入 ei。为了确保相似节点具有更高的相似度,采用 BPR 损失进行优化:

其中,D 为训练数据集,(u,i+)和 (u,i−) 分别代表已观测的交互和未知交互。

4.3 实例级别嵌入

在实例级别嵌入中,采用对比学习方法来优化用户和物品的嵌入,目标是最大化正样本(用户或物品的同一行为嵌入)之间的相似性,同时最小化负样本(不同用户或物品的嵌入)之间的相似性。
对于第 k类辅助行为,计算其嵌入与目标行为嵌入之间的余弦相似度:

具体来说,将同一用户在不同行为上的嵌入视为正样本对,而来自不同用户的嵌入视为负样本对。假设有 N 个用户和 M 个物品,对于用户 u,其目标行为嵌入为 e^p_u,辅助行为嵌入为 e^k_u,则:

  • (e^p_u, e^k_u) 设为正样本对
  • 其余2N - 2 对设为负样本对

对于物品 i,目标行为嵌入为e^p_i,辅助行为嵌入为e^k_i,则:

  • (e^p_i, e^k_i) 设为正样本对
  • 其余2M - 2 对设为负样本对

为了优化对比学习中的样本相似度,目标行为 p 和辅助行为 k 需考虑用户损失:

其中,τ是温度参数。

与 Lpu和 Lpi 类似,用户和物品在第 k 个辅助行为下的损失函数定义如下:

目标是识别数据集中所有的正样本对。对于每个用户和物品,计算实例级损失,定义如下:

对于物品嵌入的实例级损失,采用与用户嵌入类似的方法。最终,通过汇总所有用户和物品的对比损失,得到实例级嵌入损失:

4.4 聚类级嵌入

聚类级嵌入遵循“物以类聚”的概念。用户嵌入和物品嵌入被映射到一个维度等于聚类数的空间,使用户和物品嵌入可以被解释为属于特定聚类的概率。然后,采用对比聚类学习方法来捕捉聚类特征。

对于目标行为及每个辅助行为,分别划分为 C 个聚类。其中,e^p_c 表示目标行为的第 c 个聚类,而 e^k_c 表示第 k 个辅助行为的第 c 个聚类。对于用户 u,使用 softmax 方法计算其在目标行为下被分配到第 c 个聚类的概率Y^p_{u,c}。

与实例级嵌入类似,通过选择目标行为和第 k 个辅助行为中相似的聚类得到正样本对 (e^p_c, e^k_c),而其余的 2C-2 个对则被视为负样本对。然后,采用余弦相似度计算这些聚类之间的相似性,定义如下:

其中 c,c′∈{1,2,...,C},k1,k2∈{p,k}。目标行为的损失函数 Lcp用于区分目标行为下的e^p_c 和所有不属于 e^k_c 的聚类,定义如下:

其中 τ0 是聚类级温度系数,控制损失的平滑度。同样,对于第 k 个辅助行为,聚类损失定义如下:

用户嵌入的聚类级损失通过遍历所有聚类得到,定义如下:

熵项 H(Y) 用于防止大多数样本被划分到同一聚类中。

对于物品嵌入的聚类级损失 ,采用与用户嵌入类似的方法。最终,将每组用户嵌入和物品嵌入的损失合并,得到聚类级嵌入损失:

4.5 联合优化

联合优化用于结合三种任务,定义如下:

其中,λ 控制实例级嵌入的权重,μ控制聚类级嵌入的权重,Θ 表示所有可训练参数,γ为正则化超参数。

4.6 算法描述

模型描述在算法 1 中。给定异构图 G、子图 Gk、聚类数 C、温度系数 τ 和 τ0,MBRCC 的目标是为每个用户生成一个 Top-N 推荐列表。算法 1 描述了 MBRCC 的训练过程,主要分为三个任务,每个任务分别包含一个损失函数。

实验


想看一下对比聚类怎么用到推荐算法中。。。

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

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

相关文章

蓝桥杯2023年第十四届省赛真题-子矩阵

题目来自DOTCPP: 暴力思路(两个测试点超时): 题目要求我们求出子矩阵的最大值和最小值的乘积,我们可以枚举矩阵中的所有点,以这个点为其子矩阵的左上顶点,然后判断一下能不能构成子矩阵。如果可…

centos 磁盘重新分割,将原来/home 下部分空间转移到 / 根目录下

上次重装系统时,不小心将一半磁盘放在了 /home 下面,运行一段时间后,发现/home 空间没有怎么用,反而是/ 目录报警说磁盘用完了,准备将 /home下的空间分一部分给主目录 / 先查看下 空间分布情况 df -lh 可以看到&…

【C#语言】C#同步与异步编程深度解析:让程序学会“一心多用“

文章目录 ⭐前言⭐一、同步编程:单线程的线性世界🌟1、寻找合适的对象✨1) 🌟7、设计应支持变化 ⭐二、异步编程:多任务的协奏曲⭐三、async/await工作原理揭秘⭐四、最佳实践与性能陷阱⭐五、异步编程适用场景⭐六、性能对比实测…

学习笔记 ASP.NET Core Web API 8.0部署到iis

一.修改配置文件 修改Program.cs配置文件将 if (app.Environment.IsDevelopment()) {app.UseSwagger();app.UseSwaggerUI(); }修改为 app.UseSwagger(); app.UseSwaggerUI(); 二.安装ASP.NET Core Runtime 8.0.14 文件位置https://dotnet.microsoft.com/en-us/download/do…

从零搭建微服务项目Pro(第6-1章——Spring Security+JWT实现用户鉴权访问与token刷新)

前言: 在现代的微服务架构中,用户鉴权和访问控制是非常重要的一部分。Spring Security 是 Spring 生态中用于处理安全性的强大框架,而 JWT(JSON Web Token)则是一种轻量级的、自包含的令牌机制,广泛用于分…

使用HAI来打通DeepSeek的任督二脉

一、什么是HAI HAI是一款专注于AI与科学计算领域的云服务产品,旨在为开发者、企业及科研人员提供高效、易用的算力支持与全栈解决方案。主要使用场景为: AI作画,AI对话/写作、AI开发/测试。 二、开通HAI 选择CPU算力 16核32GB,这…

LINUX网络编程API原型详细解析

1. 网络体系 1.1. 简介 网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。 每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供…

蓝桥杯 之 暴力回溯

文章目录 数字接龙小u的最大连续移动次数问题迷宫 在蓝桥杯中,十分喜欢考察对于网格的回溯的问题,对于这类的问题,常常会使用到这个DFS和BFS进行考察,不过无论怎么考察,都只是会在最基础的模本的基础上,根据…

微信小程序的业务域名配置(通过ingress网关的注解)

一、背景 微信小程序的业务域名配置(通过kong网关的pre-function配置)是依靠kong实现,本文将通过ingress网关实现。 而我们的服务是部署于阿里云K8S容器,当然内核与ingress无异。 找到k8s–>网络–>路由 二、ingress注解 …

Python数据可视化工具:六西格玛及其基础工具概览

在当今数据驱动的时代,数据分析和可视化工具成为了各行业优化流程、提升质量的关键手段。六西格玛(Six Sigma)作为一种以数据为基础、追求完美质量的管理理念,其实施依赖于一系列基础工具的灵活运用。而Python,凭借其强…

Spring MVC响应数据

handler方法分析 /*** TODO: 一个controller的方法是控制层的一个处理器,我们称为handler* TODO: handler需要使用RequestMapping/GetMapping系列,声明路径,在HandlerMapping中注册,供DS查找!* TODO: handler作用总结:* 1.接收请求参数(param,json,pathVariable,共享域等…

Python散点图(Scatter Plot):数据探索的“第一张图表”

在数据可视化领域,散点图是一种强大而灵活的工具,它能够帮助我们直观地理解和探索数据集中变量之间的关系。本文将深入探讨散点图的核心原理、应用场景以及如何使用Python进行高效绘制。 后续几篇将介绍高级技巧、复杂应用场景。 Python散点图(Scatter Plot):高阶分析、散点…

【redis】在 Spring中操作 Redis

文章目录 基础设置依赖StringRedisTemplate库的封装 运行StringList删库 SetHashZset 基础设置 依赖 需要选择这个依赖 StringRedisTemplate // 后续 redis 测试的各种方法,都通过这个 Controller 提供的 http 接口来触发 RestController public class MyC…

微服务》》Kubernetes (K8S) 集群 安装

关闭交换空间 # 切换 超级管理员身份 # 查看交换空间 free -h # 关闭交换空间 swapoff -a避免开启启动交换空间 # 注释swap开头的行 vim /etc/fstab关闭防火墙 # 关闭防火墙 # 因为K8S 是集群形式存在的 至少三台 一主二从 (一个master 两个node&#xff09…

MySQL 简记

MySQL 简记 mysql中的数据存储的结构是B树 其与B树的相同点是,B树一个节点也可以存放多条数据,并且从左到右依次增大;不同点是,B树的叶子结点之间也能相互连接。那么实际上是采取利用空间换区时间的策略。 那么B树的树结构like…

springboot使用163发送自定义html格式的邮件

springboot使用163发送html格式的邮件 效果: 下面直接开始教学 注册邮箱,生成授权码 获取163邮箱的授权码,可以按照以下步骤操作: 登录163邮箱 打开浏览器,访问 163邮箱登录页面。 使用你的邮箱账号和密码登录。进入邮箱设置 登…

【Kafka】深入了解Kafka

集群的成员关系 Kafka使用Zookeeper维护集群的成员信息。 每一个broker都有一个唯一的标识,这个标识可以在配置文件中指定,也可以自动生成。当broker在启动时通过创建Zookeeper的临时节点把自己的ID注册到Zookeeper中。broker、控制器和其他一些动态系…

Hugging Face预训练GPT微调ChatGPT(微调入门!新手友好!)

Hugging Face预训练GPT微调ChatGPT(微调入门!新手友好!) 在实战中,⼤多数情况下都不需要从0开始训练模型,⽽是使⽤“⼤⼚”或者其他研究者开源的已经训练好的⼤模型。 在各种⼤模型开源库中,最…

Redis BitMap 用户签到

Redis Bitmap Bitmap(位图)是 Redis 提供的一种用于处理二进制位(bit)的特殊数据结构,它基于 String 类型,每个 bit 代表一个布尔值(0 或 1),可以用于存储大规模的二值状…

Nodejs使用redis

框架:koa,通过koa-generator创建 redis: 本地搭建,使用默认帐号,安装说明地址以及默认启动设置:https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/ 中间件&#x…