CIKM23|基于会话推荐的因果关系引导图学习

news2024/11/30 9:49:58

论文链接:https://www.researchgate.net/profile/Dianer-Yu/publication/373143453_Causality-guided_Graph_Learning_for_Session-based_Recommendation/links/652b3fe006bdd619c48fdd00/Causality-guided-Graph-Learning-for-Session-based-Recommendation.pdf

这篇论文读完还是有点疑惑,是针对4.1.1节,使用GRU 提取时序信息 和 MLP 生成软掩码生成了因果图和快捷图的部分。 那么后续的包括后门调整都是在基于这两个图上进行的,没有直接捕捉到因果关系(文章用的是相似度计算),而是更多地依赖于物品的交互模式和历史数据。

1 动机

当前的会话推荐系统(在捕捉用户的时序偏好时,主要依赖图形模型来分析用户的交互数据,然而:

1:当前的图方法容易受到快捷路径的影响,从而影响了对用户真实偏好的准确估计。快捷路径:在图结构中,两个项目之间存在直接的连接,但这种连接并没有考虑到项目之间的顺序依赖关系中间交互(用户可能通过商品C(作为中介)而交互了A和B,意味着A和B的关系并不是直接的

2:忽视潜在的因果关系,因果推理可以识别哪些路径是真正反映用户偏好的“因果路径”,从而避免依赖那些仅仅是偶然发生的快捷路径。

上图显示了会话图包含的快捷路径,用户可以在其中快速地从初始项导航到最终项,而无需使用中间项。


2 贡献

提出CGSR从因果关系的角度有效地阻止了快捷路径对会话图的影响,从而提高了推荐性能和可解释性:

1:通过因果推理中的后门调整机制,生成一个只包含项目间因果关系的蒸馏会话图,以阻止快捷路径的影响,保留了反映用户真实偏好的因果关系。

2:在聚合方面,通过对提取的会话图进行不同边缘类型的高阶聚合来估计会话偏好,从而探索丰富的语义来学习用户的真实意图。


3 因果图

因果图用于表示变量之间因果关系的工具。因果图通过节点和有向边(表示因果关系,箭头从原因指向结果)来描述变量之间的因果关系,上图为CGSR的因果图:

  • 图表示 A:会话图的表示,通常是通过图神经网络得到的图结构。
  • 快捷路径 B:表示会话图中那些因数据偏见或偶然因素导致的非真实因果关系的边(即快捷路径)。
  • 因果特征 C:表示用户的真实偏好与物品之间的因果关系。
  • 图数据 D:会话图中的数据,描述了物品交互的顺序和模式。
  • 预测 Y:最终的推荐结果,即预测用户下一个可能交互的物品。

因果图中,快捷路径(B)作为干扰因子存在,它连接了因果特征(C)和推荐结果(Y),并可能产生虚假的相关性。因此使用后门调整,对中间变量的条件作用阻止了对因果关系的准确推断的虚假关联:

后门调整的目的是通过控制混杂变量 B,来消除它对 C 和 Y之间因果关系的干扰。通过控制 B,可以模拟直接干预 C的效果。因此,为了探究如果干预变量 C,会对结果变量 Y 产生什么影响,需要在控制混杂变量 B 的条件下,观察 C 和 Y之间的因果关系。给定 C,需要考虑混杂变量 B的分布 ,从而推断 C 对 Y 的因果效应。


 4 模型

给定从所有会话生成的预训练初始会话图,CGSR包括两个组件。对于蒸馏,使用后门调整来阻止初始会话图中的捷径路径,从而得到包含项目之间因果关系的蒸馏会话图。对于聚合,在提炼的会话图上通过高阶聚合生成高质量的会话首选项表示,从高阶连接中捕获丰富的语义。

4.1因果蒸馏

​分别构建了因果图和快捷图来捕捉因果特征和快捷特征。通过对这些图的表示进行后门调整,有效地阻断快捷路径。

4.1.1因果图和快捷图

首先使用GRU提取项目的时序信息,得到每个item节点的特征表示:

 使用了多层感知器分别从节点(项目)和边(连接)的角度测量注意力得分:

接下来就是原文部分:基于两个得分生成soft masks Ma和Mx

 因此,生成了因果图和快捷图原文:总而言之,因果图捕获了用户偏好的因果关系,而琐碎图表示了快捷关系

4.1.2 图表示的分解

从原始的会话图中分离出因果特征快捷特征。因果图:捕捉会话中物品之间的因果关系快捷图 :捕捉会话图中由数据噪声共现引起的快捷路径。使用GAT:

因果图损失函数SUP是训练数据上的交叉熵损失:是实际的用户偏好(交互),通过最小化真实分布 和预测分布之间的差异,。快捷图的损失函数UNI使用KL散度将预测均匀地推到所有项目上的统一分类损失,减少由噪声或共现引起的快捷路径的影响:是均匀分布:

4.1.3 因果干预​

 在上面两个生成的图上实现后门调整。消除会话图中快捷路径的影响。将目标因果图与快捷图的每个分层配对以创建干预图,在表征层面进行隐式干预:

通过逐元素相乘,模拟因果干预。并映射函数生成调整后的图表示。并且损失函数指导干预,D为训练数据集,T为快捷图的分层集,y为真实标签。最终的损失函数:

 通过优化损失函数,可以成功地阻止捷径路径的影响,并生成一个蒸馏的会话图,该图专门捕获了项目之间的因果关系。这个经过提炼的图可以用来执行下一项预测任务。

 4.2 基于蒸馏会话图的聚合

通过在提炼的会话图上执行来自不同边缘类型的高阶聚合来预测用户的偏好。不同边缘类型包括Rout外向邻居(与项目 i 有连接关系的其他项目),Rin入向邻居(所有指向项目 i 的边的集合)以及用户的邻居集合Ru

4.2.1 生成会话表示

​首先计算相邻项目之间的相似度分数并归一化:

其次,基于归一化相似度使用gnn来聚合来自每个特定边缘类型的邻居的消息,为会话偏好生成高质量的项目表示:

取所有消息平均值更新项目表示,以捕捉不同类型的交互对用户会话偏好的总体影响:

 相同的操作应用于用户端:

 在每一层聚合的项目和用户表示组合起来,以创建最终的全局级项目和用户表示:

U𝑢和 I𝒊 分别表示最终的全局级用户和项目表示,由于U𝑢和 I𝒊 的贡献可能不同,采用一种控制机制𝑔来限制从用户和项目传播的信息,以形成最终的会话首选项表示Su:

 4.2.2 推荐

下图是论文的流程图:

 5 模型可解释性

为了验证模型在阻断快捷路径和提高模型可解释性方面的有效性,对Diginetica进行了一个案例研究,如下图所示。图中的边用实线或虚线表示,其中实线对应因果图中的边,虚线对应平凡图中的边。这两个图是基于初始会话图的软掩码和节点特征构建的,可以更深入地理解图的结构。每条边的标准化相似度分数表示两个连续项目之间的相似度。

用户25与项目1189的交互被作为推荐系统的起点,接下来模型根据项目1189的相似性推荐其他项目。分析过程中,项目1189的边被分成了三类:橙色的𝑟𝑛,黑色的𝑟𝑜𝑢𝑡,蓝色的𝑟𝑟。然后,推荐人根据边缘相似度分数寻找与项目1189最相似的项目。在这个过程中,项目65407和57539之间的边缘得到了异常高的分数,导致模型过度强调它们之间的关系,推荐项目7492(快捷路径)。

通过对会话图进行整体因果检查,发现项目49272具有最高的总分,表明它与其他项目之间存在较强的因果关系。通过这种因果图的整体检查,能够发现项目49272比项目65407和57539更符合推荐的真实因果关系。

那么按照该论文的方法:通过逐元素相乘来模拟因果干预,通过调整快捷图中的路径权重,减少捷径路径的影响。 并依此生成新的图表示 ,通过损失函数,有效去除捷径路径的影响。

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

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

相关文章

Milvus 2.5:全文检索上线,标量过滤提速,易用性再突破!

01. 概览 我们很高兴为大家带来 Milvus 2.5 最新版本的介绍。 在 Milvus 2.5 里,最重要的一个更新是我们带来了“全新”的全文检索能力,之所以说“全新”主要是基于以下两点: 第一,对于全文检索基于的 BM25 算法,我们采…

【机器学习】机器学习的基本分类-监督学习-逻辑回归-Sigmoid 函数

Sigmoid 函数是一种常用的激活函数,尤其在神经网络和逻辑回归中扮演重要角色。它将输入的实数映射到区间 (0, 1),形状类似于字母 "S"。 1. 定义与公式 Sigmoid 函数的公式为: 特点 输出范围:(0, 1),适合用…

C++游戏开发入门:如何从零开始实现自己的游戏项目?

成长路上不孤单😊😊😊😊😊😊 【14后😊///C爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于C游戏开发的相关内容! 关于【…

HTTP(网络)

目录 1.Http的基本代码 1.1 HttpServer.hpp 1.2 简单测试一下 1.3 用telnet测试一下 1.4 用浏览器访问 1.5 返回相应的过程(网页版本)​编辑 1.5.1 再次用浏览器访问 1.6 返回相应的过程(文件版本) 1.6.1网页 1.6.2 测试 …

docker服务容器化

docker服务容器化 1 引言2 多个容器间网络联通2.1 单独创建关联2.2 创建时关联 3 服务搭建3.1 镜像清单3.2 容器创建 4 联合实战4.2 flink_sql之kafka到starrocks4.2 flink_sql之mysql到starrocks 5 文献借鉴 1 引言 ​ 利用docker可以很效率地搭建服务,本文在win1…

Linux系统之iotop命令的基本使用

Linux系统之iotop命令的基本使用 一、iotop命令介绍二、iotop命令的使用帮助2.1 安装iotop2.2 iotop命令help帮助信息2.3 iotop命令选项解释 三、 iotop命令的基本使用四、iotop使用注意事项 一、iotop命令介绍 iotop 是一个类似于 top 的命令行工具,但它专注于显示…

opencv 区域提取三种算法

opencv 区域提取三种算法 1.轮廓查找 findContours()函数&#xff0c;得到轮廓的点集集合 cv::vector<cv::vector<Point>> contours;threshold(roiMat,binImg,m_pPara.m_nMinGray,m_pPara.m_nMaxGray,THRESH_BINARY);//膨胀处理Mat dilaElement getStructuringE…

【深度学习】—CNN卷积神经网络 从原理到实现

卷积神经网络&#xff08;CNN&#xff09;从原理到实现 什么是卷积神经网络&#xff08;CNN&#xff09;&#xff1f; 卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;是一种深度学习模型&#xff0c;主要应用于图像分类、目标检测和自然语言处理等领…

A-star算法

算法简介 A*&#xff08;A-star&#xff09;算法是一种用于图形搜索和路径规划的启发式搜索算法&#xff0c;它结合了最佳优先搜索&#xff08;Best-First Search&#xff09;和Dijkstra算法的思想&#xff0c;能够有效地寻找从起点到目标点的最短路径。A*算法广泛应用于导航、…

【数据集划分】训练集train/验证集val/测试集test是如何划分的?

&#x1f680;在跑代码时常常将数据集简单的划分为训练集train和测试集test(二划分)&#xff0c;其实更为全面完整的划分应该是划分为训练集train、验证集val、测试集test(三划分)。那么具体如何划分呢&#xff1f;各个部分起着什么作用呢&#xff1f; 如下图所示&#xff0c;…

Gentoo Linux部署LNMP

一、安装nginx 1.gentoo-chxf ~ # emerge -av nginx 提示配置文件需更新 2.gentoo-chxf ~ # etc-update 3.gentoo-chxf ~ # emerge -av nginx 4.查看并启动nginx gentoo-chxf ~ # systemctl status nginx gentoo-chxf ~ # systemctl start nginx gentoo-chxf ~ # syst…

Ubantu系统非root用户安装docker教程

非root用户没有超级权限&#xff0c;根据docker安装教程安装完毕会发现无法拉取镜像&#xff0c;或者每次运行docker都需要加上sudo&#xff0c;输入密码验证。 解决办法如下&#xff1a; 1、创建docker用户组 sudo groupadd docker2、将非root用户&#xff08;当前用户&am…

python可视化高纬度特征

可视化网络的特征层&#xff0c;假如resnet网络输出的特征维度是(batch_size,512). 如果要可视化测试集的每个图片的512高维度特征分布呢&#xff1f; embeds resnet18(x)&#xff0c;embeds是(batch_size,512)高维度特征。如下可视化。 import torch import matplotlib.pyp…

OceanBase 大数据量导入(obloader)

现需要将源数据库&#xff08;Oracle|MySQL等&#xff09;一些表的海量数据迁移到目标数据库 OceanBase 中&#xff0c;基于常规 jdbc 驱动编码的方式涉及开发工作&#xff0c;性能效率也要看编码的处理机制。 OceanBase 官方提供了的 OceanBase Migration Service (OMS) 数据…

Mac启动服务慢问题解决,InetAddress.getLocalHost().getHostAddress()慢问题。

项目启动5分钟&#xff0c;很明显有问题。像网上其他的提高jvm参数就不说了&#xff0c;应该不是这个问题&#xff0c;也就快一点。 首先找到自己的电脑名称&#xff08;用命令行也行&#xff0c;只要能找到自己电脑名称就行&#xff0c;这里直接在共享里看&#xff09;。 复制…

Ubuntu交叉编译 opencv for QNX

前言 在高通板子上开发一些程序的时候,会用到opencv帮助处理一下图像数据,高通车载板子sa8155和sm8295都有QNX os,需要交叉编译opencv的库,(这个交叉编译真是搞得我太恶心了,所以进行一个记录和分享) 搜了很多资料,有些太过于复杂,有些也存在错误导致最后没有编译成…

.NET 9 AOT的突破 - 支持老旧Win7与XP环境

引言 随着技术的不断进步&#xff0c;微软的.NET 框架在每次迭代中都带来了令人惊喜的新特性。在.NET 9 版本中&#xff0c;一个特别引人注目的亮点是 AOT&#xff08; Ahead-of-Time&#xff09;支持&#xff0c;它允许开发人员将应用程序在编译阶段就优化为能够在老旧的 Win…

Mac 环境下类Xshell 的客户端介绍

在 Mac 环境下&#xff0c;类似于 Windows 环境中 Xshell 用于访问 Linux 服务器的工具主要有以下几种&#xff1a; SecureCRT&#xff1a; 官网地址&#xff1a;https://www.vandyke.com/products/securecrt/介绍&#xff1a;支持多种协议&#xff0c;如 SSH1、SSH2、Telnet 等…

Cookie跨域

跨域&#xff1a;跨域名&#xff08;IP&#xff09; 跨域的目的是共享Cookie。 session操作http协议&#xff0c;每次既要request&#xff0c;也要response&#xff0c;cookie在创建的时候会产生一个字符串然后随着response返回。 全网站的各个页面都会带着登陆的时候的cookie …

虚拟机CentOS系统通过Docker部署RSSHub并映射到主机

公告 &#x1f4cc;更新公告 20241124-该文章已同步更新到作者的个人博客&#xff08;链接&#xff1a;虚拟机CentOS系统通过Docker部署RSSHub并映射到主机&#xff09; 一、编辑 YUM 配置文件 1、打开 CentOS 系统中的 YUM 软件仓库配置文件 vim /etc/yum.repos.d/CentOS-Ba…