因果推荐CIKM24 | 通过偏好感知因果干预和反事实数据增强来提升序列推荐

论文来源:CIKM 24

论文链接:PACIFIC: Enhancing Sequential Recommendation via Preference-aware Causal Intervention and Counterfactual Data Augmentation | Proceedings of the 33rd ACM International Conference on Information and Knowledge Management

核心:前门调整(用户的三种偏好)加反事实数据增强 

1 动机

序列推荐系统通过建模用户的历史交互行为来捕捉用户偏好的动态变化,从而提高推荐算法的准确性和鲁棒性,然而:

1:序列推荐SR经常受到混杂因素的影响,导致模型学习不正确的相关性,并导致不准确地捕获用户的真实偏好。作者使用因果图来理解混杂因素如何影响SR过程:

 𝑈:用户,𝐻:用户历史交互序列,𝑀:用户偏好,𝐼:目标项目,𝑌:交互。

上图b显示了混杂因素干扰下的SR,其中C表示可观察混杂因素和不可观察混杂因素的集合。C可以同时影响用户历史交互序列和交互。在网上购物场景中,商品价格可能是一个混杂因素。作者分析了互动商品在亚马逊美妆和体育数据集上的分布,发现价格低于平均水平的商品分别占72.06%和78.61%:

即使对于没有低价格偏好的用户,他们的交互历史也可能包括许多这样的项目。此外,在其他因素相同的情况下,大多数消费者由于从众倾向于选择价格较低的商品,从而建立了因果关系。

2:现实世界中的用户行为数据往往非常稀疏,且有限的交互数据使得模型难以从中准确学习用户的真实偏好。导致模型错误地将混杂因素归为用户偏好的一部分,从而加剧了混杂因素的影响。


2 贡献

1:提出了偏好感知因果干预和反事实数据增强框架(PACIFIC),通过因果图精细地建模用户的偏好,并将用户偏好分为全球长期偏好、本地长期偏好和短期偏好。

2:使用前门调整消除混杂因素对推荐结果的干扰,将用户偏好𝑀指定为中间节点,并设计不同的自注意力来估计三条因果路径的因果效应。

3:提出了包括随机替换与反事实扰动策略的反事实数据增强模块,生成潜在的用户行为序列,增强了训练数据的多样性,从而提升了模型的泛化能力。


3 因果图

因果图(Causal Graph)是用于表示变量之间因果关系的工具。因果图通过节点(每个节点代表一个变量,通常表示用户的交互行为(如点击、浏览、购买)、用户特征、物品特征等。)和有向边(表示因果关系,箭头从原因指向结果)来描述变量之间的因果关系。

节点:𝑈表示用户;𝐻表示用户的历史交互序列。𝑀𝐺𝐿表示用户的全局长期偏好,反映他们对特定类型、主题或项目内容的总体偏好;𝑀𝐿𝐿表示用户的本地长期偏好,表示用户在特定时间窗口内的持续偏好趋势。这些偏好在一段时间内保持稳定,但可能在不同时期发生变化;𝑀𝑆表示用户的短期偏好,表示用户最近的偏好趋势。𝐼表示目标项。𝑌表示用户和目标项之间的交互;C为混杂因素该变量表示可观察和不可观察混杂因素的集合,如项目受欢迎程度(可观察)和当前趋势(不可观察)。

边,𝑈→𝐻表示用户影响并决定了历史交互顺序。𝐻→{𝑀𝐺𝐿,𝑀𝐿𝐿,𝑀𝑆}表示从用户的历史交互序列中捕获三种类型的用户首选项。{𝑀𝐺𝐿,𝑀𝐿𝐿,𝑀𝑆,𝐼}→𝑌表示交互的发生是由三种类型的偏好和目标项目共同决定的。𝐻←C→𝑌表明混杂因素不仅影响历史交互顺序,而且影响当前交互,从而对推荐模型造成干扰。


 4 模型

首先进行反事实数据增强以获得扩展的数据样本(第4.1节)。然后,根据因果干预结果,将序列输入不同的偏好提取模块,分别学习三种类型的偏好(4.2节)。最后,对三个模块的输出进行汇总,得到预测结果(4.3节)

4.1 反事实数据增强

结合了两种策略:随机替换和反事实扰动。随机替换将原序列中的某个项目𝑗随机替换为另一个项目k:

反事实扰动策略包括定义一个可学习的反事实摄动向量Δ。将Δ添加到原始序列中随机选择的项e𝑗中生成一个新的序列:

通过反事实损失来控制扰动的大小,确保扰动向量 Δ不会过大: 

由于训练初期生成的标签可能不够准确,直接使用这些标签会导致模型训练不稳定,可能会陷入局部最优解。因此,引入了标签保留概率 φ,用于控制是否保留原始标签。 

作者在这里引用了一篇论文 ,Δ是按照下面论文的方式生成的,SIGIR21的论文:

初始扰动向量 Δ 是随机初始化的,然后通过优化目标函数来逐步调整,以最小化扰动的大小。并在优化过程中通过最小化与原始项嵌入的差异,并确保生成的反事实序列与目标项之间的关系合理。

4.2 偏好感知因果干预

相对于对(𝐻,𝑌),用户偏好𝑀完全满足前门标准X→M→Y。因此使用前门调整来识别目标因果效应:

​P(y∣u,do(h),i) 表示在用户 u选择历史序列 h并进行干预(即“do(h)”)后,产生的推荐结果产生推荐结果 y的概率;P(m∣u,do(h)) 表示用户 u在进行历史序列 h干预后的潜在偏好 m的概率 h → m;P(y∣u,do(m),i) 是给定用户偏好 m 后,产生推荐结果 y的概率 m → y。h'表示H中的任意历史相互作用序列。

通过前门准则将因果干预拆解为多个子问题,利用历史数据和用户偏好估算目标推荐结果的概率。假设H中没有两个序列是完全相同,将上述公式重写:

4.2.1全局长期偏好

显式用户嵌入在顺序推荐性能上的改善非常有限。因此,估计条件概率 P(m_{GL} \mid u, h)被视为从历史交互序列 h中捕获用户的全局长期偏好。首先,给序列嵌入 E添加一个可学习的位置嵌入 P,得到新的位置序列嵌入 \hat{E},然后,使用自注意力来提取序列中项之间的相关性,捕捉用户的全局长期偏好m_{GL}

使用前馈网络来增强非线性表示:

P(y \mid u, m_{GL}, h_u, i)估算在给定用户的全局长期偏好、用户的历史交互序列和推荐上下文的情况下,目标推荐结果 y的发生概率。通过映射函数 f_{GL}来捕获用户的全局长期偏好 m_{GL} 与目标项目之间的关系:

 CE_{GL}表示用户全局长期偏好对交互的因果效应,设计了一个因果感知网络来估算因果效应:

 最后计算全局长期偏好的因果效应 H → MGL → Y:

4.2.2 局部长期偏好

大致流程和全局长期偏好一样,不一样的就是局部长期偏好侧重于用户在特定时间窗口内的偏好,即用户在较短时间内对某些物品的偏好变化。因此使用滑动窗口自注意力机制(使用一个掩码矩阵实现该滑动窗口)

为了防止学习到过多的重叠偏好,为全局长期偏好和局部长期偏好的学习添加了一个相似度约束: 

局部长期偏好的因果效应P(y \mid u, m_{LL}, h_u, i)也通过因果感知网络计算,捕捉局部长期偏好m_{LL}对推荐结果 y的影响:

 计算因果效应:

​4.2.3 局部短期偏好

与全局长期偏好和局部长期偏好不同,短期偏好是指用户近期的兴趣和偏好,往往受到最近交互的强烈影响,用户倾向于与当前兴趣相关的内容进行互动。因此直接对用户序列中最后 N个交互项的嵌入进行求和,代表用户的短期偏好:

 4.3 预测模块

结合了来自全局长期偏好、局部长期偏好和短期偏好的结果。推荐得分 P(y \mid u, do(h), \text{target})是通过三条因果路径的结果结合得到的:

通过将这三个偏好表示加权求和,然后与目标项目的嵌入向量 e_{\text{target}}进行点积,得到一个得分 。论文采用了成对排序损失来优化模型参数:

模型的最终目标是通过结合多个损失函数来优化模型。除了推荐任务的损失函数之外,还包括反事实损失和相似度损失。 

 5 案例分析

5.1 偏好预测

为了评估偏好捕获的有效性,将Beauty数据集中用户的历史交互序列输入到训练好的模型中,并将全局长期偏好和本地长期偏好的注意力权重可视化。全局长期偏好的注意权重分散在不同的序列位置上。相反,本地长期偏好的关注权重被限制在与每个位置相邻的固定窗口中,在特定时间间隔内精确定位对查询项影响最大的键。偏好感知模块能够以详细的方式熟练地捕捉用户的全球和本地长期偏好,从而促进更全面和个性化的推荐。

5.2 去混杂因素

为了验证提出的方法是否能够有效地减轻混杂因素的影响,选取了可观察的混杂因素流行度作为例子,分别计算了SASRec、Pacific和DCR-MoE获得的推荐结果的平均流行度。流行度的计算方法是将某项出现的频率除以交互的总次数。结果如下所示,与SASRec方法相比,其他方法的结果都有明显的下降,并且在很大程度上减小了流行偏差。虽然我们提出的Pacific在减少流行度偏差方面不如DCR-MoE方法有效,但我们总体上取得了更好的推荐性能。这表明我们的方法可以在一定程度上消除混杂因素的影响,并推荐符合用户真实偏好的物品。

6 总结

通过引入因果感知网络来估算用户不同偏好类型(全局长期、局部长期、短期偏好)对推荐结果的因果效应。通过反事实数据增强(如随机替换和反事实扰动),提升了模型的泛化能力,同时利用因果干预精确控制偏好的影响,从而提供更个性化且鲁棒的推荐。 

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

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

相关文章

如何在 Odoo18 视图中添加关联数据看板按钮 | 免费开源ERP实施诀窍

文 / 开源智造 Odoo亚太金牌服务 引言 关联数据看板按钮乃是 Odoo 当中的一项强效功能,它容许用户顺遂地访问相关记录,或者直接从模型的表单视图施行特定操作。它们为用户给予了对重要信息的疾速访问途径,并简化了工作流程,由此…

提升网站流量的关键:AI在SEO关键词优化中的应用

内容概要 在当今数字时代,提升网站流量已成为每个网站管理员的首要任务。而人工智能的技术进步,为搜索引擎优化(SEO)提供了强有力的支持,尤其是在关键词优化方面。关键词是连接用户需求与网站内容的桥梁,其…

腾讯图标/百并发

腾讯新图标,识别速度7毫秒, 百并发无压力

python和C++中的逻辑与/或、位与/或

在 Python 和 C 中,“与”和“或”的实现逻辑相似,但符号和使用方式有区别。 1.Python 中的与、或 与(AND):and或(OR):or 1.1 逻辑与、或: 用于布尔值(Tr…

PR基本操作

将剪辑添加到序列 1.在项目面板中选择素材,右击插入或覆盖选项,添加的素材依指针所在位置为起点。 上图画框位置会影响素材插入的轨道。 2.直接拖动素材到对应的时间轴轨道即可 3.拖动素材到节目监视器 在此项前插入:在V1轨道当前指针所…

如何配置Github并在本地提交代码

前提: 可以流畅访问github, 需要一些上网技巧, 这就自行处理了 申请一个github账号 Github官网地址 首先就是邮箱注册啦, github没有对邮箱的限制, 只要是能收邮件的就ok, qq邮箱, 163等都可以使用. 然后和普通注册账号一样, 一路填写需要的信息, 验证邮箱即可. 如何新增代…

nacos服务注册流程

一、客户端自动注册实例流程 1.首先客户端需要引入服务发现包 <groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.6.RELEASE</version>2. NacosServiceRegistryA…

qemu安装arm64架构银河麒麟

qemu虚拟化软件&#xff0c;可以在一个平台上模拟另一个硬件平台&#xff0c;可以支持多种处理器架构。 一、安装 安装教程&#xff1a;https://blog.csdn.net/qq_36035382/article/details/125308044 下载链接&#xff1a;https://qemu.weilnetz.de/w64/2024/ 我下载的是 …

小程序维护外包流程和费用

由于某些原因很多老板想要跟换掉小程序原来合作的开发公司&#xff0c;重新把小程序系统维护外包新的公司。小程序系统外包维护是一个涉及多个方面的过程&#xff0c;需要从需求明确、选择团队到持续优化等多个环节进行细致管理。以下就是小程序系统外包维护主要包括几个关键步…

C—指针初阶(2)

如果看完阁下满意的话&#xff0c;能否一键三连呢&#xff0c;我的动力就是大家的支持与肯定&#xff0c;冲&#xff01; 二级指针 我们先看概念以及作用&#xff1a;用来存放一级指针的地址的指针 先看例子&#xff0c;我们逐一分析 我们先分析上面那个“1” 标注那里&#x…

x64dbg 安装使用教程

x64dbg的安装与配置 x64dbg官网地址&#xff1a;https://x64dbg.com/#start x64dbg界面介绍 1.反汇编窗口 这个位置显示的是需要分析的程序的反汇编代码。在第一个区域的最左侧例如“7712EAA3”这一列就是内存地址区域&#xff0c;接着“E8 07”就是汇编指令的opcode&#xff…

视频推拉流EasyDSS无人机直播技术巡查焚烧、烟火情况

焚烧作为一种常见的废弃物处理方式&#xff0c;往往会对环境造成严重污染。因此&#xff0c;减少焚烧、推广绿色能源和循环经济成为重要措施。通过加强森林防灭火队伍能力建设与长效机制建立&#xff0c;各地努力减少因焚烧引发的森林火灾&#xff0c;保护生态环境。 巡察烟火…

禾赛激光雷达AT_128_P_A02激光时间同步配置

sudo apt update sudo apt-get install linuxptp ethtool sudo ethtool -T 网卡名字(ifconfig可以查看)网卡名即连接激光雷达之后配置的ip所对应的网卡名称 一般来说看到如下提示信息才正常&#xff1a; lzslzs-Precision-3591:~$ ethtool -T enp0s31f6 Time stamping paramet…

java项目部署相关记录

部署 简单部署(Windows) redis我使用小皮面板开的 mysql也是 maven打包 先打包,打包成功,找到对应jar包 在文件夹打开,然后再次目录上开cmd java -jar jplan-0.0.1-SNAPSHOT.jar需要注意的是,windows的java环境要和idea项目里边的java是一致的 运行成功! 属性配置方式…

v-for遍历多个el-popover;el-popover通过visible控制显隐;点击其他隐藏el-popover

场景:el-popover通过visible控制显隐;同时el-popover是遍历生成的多个。 原文档的使用visible后就不能点击其他地方使其隐藏;同时解决实现点击其他区域隐藏 <template><div><template v-for="(item,index) in arr" :key="index"><…

【Ubuntu】清理、压缩VirtualBox磁盘空间大小

1、说明 本人为虚拟机创建了两个硬盘:root.vdi 和 hoom.vdi,在创建虚拟机时,分别挂载在/root目录和/home目录下。 下面演示分别清理、压缩两个磁盘的空间。 2、清理空间 1)清理 root.vid sudo dd if=/dev/zero of=/EMPTY bs=1M;sudo rm -f /EMPTY输出信息中会提示,如…

微信小程序跳转其他小程序以及跳转网站

一、跳转其他小程序 1.1 知道appid和页面路径 wx.navigateToMiniProgram({appId: appid, // 替换为目标小程序 AppIDpath: pathWithParams, // 小程序路径envVersion: release, // 开发版、体验版或正式版success(res) {console.log("跳转到其他小程序成功&#xff01;&q…

在ensp中ACL路由控制实验

一、实验目的 掌握ACL路由控制管理 二、实验要求 要求&#xff1a; 配置路由策略&#xff0c;左右两边不公开区域对方不可达&#xff0c;其他区域可以互相ping通 设备&#xff1a; 1、三台路由器 2、四台交换机 3、四台电脑 4、四台服务器 使用ensp搭建实验环境,如图所…

NIFI使用

1 从Kafka接收消息&#xff0c;存储到数据库中。 &#xff08;1&#xff09; ConsumerKafka processor &#xff08;2&#xff09;Execute Scripts Processor 我这里是使用JS脚本进行处理。 还有很多其他语言的脚本。 var flowFile session.get(); if (flowFile ! null) {v…

【leetcode】替换后的最长重复字符、将字符串翻转到单调递增

1.替换后的最长重复字符 示例如下&#xff1a; 下面我们来分析一下一个例子&#xff0c;其中K 2 暴力枚举 这里的字符串s是仅由大写字母组成&#xff0c;首先我们尝试用暴力解法的思路来想一下这道题&#xff0c;通过从第一个字符开始进行枚举&#xff0c;如果出现了条件判断…