当前位置: 首页 > news >正文

WSDM24-因果推荐|因果去偏的可解释推荐系统

 

1 动机

可解释推荐系统(ERS)通过提供透明的推荐解释,提高用户信任度和系统的说服力,如下图所示,然而:

1:现有工作主要关注推荐算法的去偏(流行度偏差),但未显式建模模型生成的解释如何影响推荐结果(解释偏差),导致推荐系统仍可能在解释层面继承流行度偏差,使得推荐解释偏向热门物品的共性特征,放大推荐系统中的偏差,而非用户的真实兴趣。

2:忽略了模型生成的解释本身可能存在的偏差,例如,热门物品往往具有更丰富的用户交互数据,因此其解释更容易被模型学到,而冷门物品的解释则可能受限,导致推荐系统的解释不够个性化,甚至进一步放大推荐结果的偏差。


2 贡献

从因果推理的视角,提出了一种因果可解释推荐系统(Causal Explainable Recommendation System, CERS)

1:提出了基于因果推理的可解释推荐系统框架,通过因果图建模用户-物品交互与推荐解释之间的关系,明确解释变量在推荐过程中的影响,揭示推荐系统中的解释偏差来源。

2:引入因果干预消除解释偏差,采用前门调整,利用模型生成的解释作为中介变量,有效去除推荐和解释中的流行度偏差,使推荐更加个性化。

3:结合用户反馈优化推荐与解释,CERS设计了一种交互机制,允许用户对推荐解释进行点击反馈,使得系统能够自适应地调整推荐逻辑,提高推荐结果的个性化程度和用户满意度。


3 问题定义

结合了可解释推荐系统的特点,引入模型生成的解释作为中介变量,为后续的前门调整提供基础。

这段就不说了,用户项目集合以及交互:

 

预测函数用于估计用户对物品的偏好,然而在可解释推荐系统(ERS)中,不仅要生成推荐,还要提供解释:首先是候选解释集合 ,包含所有可能的解释维度(例如电影推荐系统中的“剧情”“演员”等)以及解释向量 ,表示推荐物品 i 时,生成的解释概率分布。

ERS流程:1 基于用户和物品计算匹配表示m;2基于m使用解释生成模型生成解释;3基于 m和解释计算最终推荐分数


 4 因果图

CERS目的是同时去除推荐结果和和生成解释的偏差: 

 

U:用户特征;I:物品特征;M:用户-物品匹配嵌入;E:模型生成的解释;Y:推荐分数

传统推荐系统的因果关系表示为图 2a,目标是学习用户和物品的匹配函数,通过 M计算最终推荐分数 Y,  但由于历史数据中热门物品更容易被曝光和交互,导致 M 存在偏差,从而影响最终的推荐结果 Y。

在可解释推荐系统中,模型生成的解释E起到了中介变量的作用,解释 E 由匹配嵌入 M 生成,并影响最终的推荐结果 Y。如果E存在解释偏差,会进一步放大推荐系统的流行度偏差。因此使用因果干预的前门调整来减少 E的偏差。

前门调整

通过将解释 E作为中介变量,避免推荐系统直接受到匹配嵌入 M的流行度偏差影响。前门调整通过分解路径 M→E→Y来去除偏差。根据因果推理中的前门调整定理,通过公式计算因果效应:

 P(Y∣do(M)):表示在去除了偏差后,M 对 Y 的真实因果效应;​P(E∣M):解释 E 由匹配嵌入 M生成的概率;P(Y∣M′,E)P(M′):通过解释 E 来计算调整后的推荐分数(通过调整 M的分布,使得 M 的影响仅通过 E传播到 Y,避免直接受流行度偏差的影响。)


5 CERS

流程:首先从历史数据中提取用户和项目嵌入。 同时,从用户评论中获得候选解释集(E)。 这些预处理方法在整个数据提取过程中保持一致。 给定𝑢和item,通过基于神经网络的表示提取模块(如多层感知器(MLP)生成M。 解释生成模型处理用户-项目匹配并产生一个表示解释可能性的向量(Eu)。 最后,项目排名模块使用多层感知器算法计算用户项目对的分数。

5.1 匹配嵌入M计算

​首先计算用户 u和物品 i之间的匹配嵌入 mui,通过基于神经网络的表示提取模块。

5.2 生成解释嵌入

首先生成候选集,并利用神经网络计算每个候选item与用户和物品的匹配表示M的得分,并生成

5.3前门调整

eui,j​ 表示用户 u对物品 i的解释向量中第 j个解释项的概率;y(m′,eui,j​) 表示在解释 影响下,用户 u对物品 i进行的交互评分;M′ 是用户-物品匹配集合的一个随机子集。首先计算用户-物品匹配 m′及其对应的推荐评分,其次计算该推荐评分在所有可能的解释下的均值,从而去除模型生成解释的偏差。

5.4 用户模拟器

CERS 希望优化推荐结果和生成的解释,但是现实世界的数据集很少包含显式用户反馈关于模型生成的解释。大多数数据集只有用户点击某个物品的记录,但没有用户是否认可推荐解释的记录。因此使用用户模拟器提供了一种方法,可以自动生成用户的模拟反馈,以评估解释质量并提供监督信号,训练解释生成模型。

首先基于用户的历史交互,通过短语级情感分析提取属性特征向量(剧情质量,视觉效果),表示表示物品 i在某个解释 j上的评分,如果用户过去的交互记录中某个解释的评分较高,则用户更有可能接受该解释。

t 是用户交互过的物品数量,δ 是预设的阈值。如果用户历史交互的物品在某个解释维度 j上的平均得分超过 δ,那么用户更可能接受该解释,并生成模拟点击反馈,从而提供监督信号,用于计算解释损失

推荐分数衡量用户是否点击了推荐物品,解释损失衡量推荐解释的质量


6 实验分析

6.1 评价指标

为了评估推荐的准确性,论文使用了NDCG衡量推荐列表的排名质量;

为了衡量推荐系统去偏差的能力,使用了以下两个去偏指标:

Concentration Ratio (C-Ratio)集中度比率,用于衡量推荐系统是否存在马太效应,即是否过度偏向热门物品。

Pu​ 表示用户u的前 K 个推荐物品集合,Ihot​ 表示数据集中最流行的前 15% 物品集合,较低的 C-Ratio说明模型减少了对热门物品的依赖,推荐更加多样化。

Average Recommendation Popularity(ARP)平均推荐流行度,衡量模型在推荐时偏向流行物品的程度。

 ϕ(i) 表示物品在数据集中被交互的次数,Pu​ 表示用户u的前 K 个推荐物品集合,较低的 ARP说明模型更倾向于推荐长尾物品,提升推荐的公平性和多样性。

6.2 去偏能力

为了评估去偏差能力,首先根据项目受欢迎程度分为七组进行了实验分析。

此外,通过对不同受欢迎程度的项目进行不同的评估,评估缓解流行度偏差的能力。 将数据集分为“热门项目”(推荐频率前15%)和“长尾”项目。


 7 总结

前门调整的实现:1 基于匹配嵌入M生成候选解释 E;2 用户模拟器提供解释反馈 eui;3通过前门调整计算去偏推荐分数。而用户模拟器解释E真实反映用户兴趣,而非流行度偏差,前门调整通过用户模拟器提供的解释反馈来去偏。​

 

相关文章:

WSDM24-因果推荐|因果去偏的可解释推荐系统

1 动机 可解释推荐系统(ERS)通过提供透明的推荐解释,提高用户信任度和系统的说服力,如下图所示,然而: 1:现有工作主要关注推荐算法的去偏(流行度偏差),但未显…...

VScode在Windows11中配置MSVC

因为MSVC编译器在vs当中,所以我们首先要安装vs的一部分组件。如果只是需要MSVC的话,工作负荷一个都不需要勾选,在单个组件里面搜索MSVC和windows11 SDK,其中一个是编译器,一个是头文件然后右下角安装即可。搜索Develop…...

数据库基础二(数据库安装配置)

打开MySQL官网进行安装包的下载 https://www.mysql.com/ 接着找到适用于windows的版本 下载版本 直接点击下载即可 接下来对应的内容分别是: 1:安装所有 MySQL 数据库需要的产品; 2:仅使用 MySQL 数据库的服务器; 3&a…...

cuda-12.4.0 devel docker 中源码安装 OpenAI triton

1,准备 docker 容器 下载docker image: $ sudo docker pull nvidia/cuda:12.6.2-devel-ubuntu20.04 创建容器: sudo docker run --gpus all -it --name cuda_LHL_01 -v /home/hongleili/ex_triton/tmp1:/root/ex_triton/tmp1 nvidia/cuda:12.6…...

doris: Hive Catalog

通过连接 Hive Metastore,或者兼容 Hive Metatore 的元数据服务,Doris 可以自动获取 Hive 的库表信息,并进行数据查询。 除了 Hive 外,很多其他系统也会使用 Hive Metastore 存储元数据。所以通过 Hive Catalog,我们不…...

【LeetCode】131.分割回文串

目录 题目描述输入输出示例及数据范围思路C 实现 题目描述 这道题目来自 LeetCode 131. 分割回文串。 题目描述如下: 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 输入输出示例及数据…...

JeeWMS graphReportController.do SQL注入漏洞复现(CVE-2025-0392)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…...

基于Python+django+mysql旅游数据爬虫采集可视化分析推荐系统

2024旅游推荐系统爬虫可视化(协同过滤算法) 基于Pythondjangomysql旅游数据爬虫采集可视化分析推荐系统 有文档说明 部署文档 视频讲解 ✅️基于用户的协同过滤推荐算法 卖价就是标价~ 项目技术栈 Python语言、Django框架、MySQL数据库、requests网络爬虫…...

我的工作经历

主要说一下毕业工作大半年了一些心得与想法。 首先是因为本科不好的原因,单2硕士找了一个国企(其实应该说是央企)。也幸好找的是央企,后续工作基本上没有强度,不然后期神经衰弱抑郁症家里乱七八糟催婚的事情能把人逼疯…...

筑牢安全防线:工商业场所燃气泄漏防护新方案

燃气安全是企业经营不可逾越的生命线。在餐饮后厨、化工车间、酒店锅炉房等场所,可燃气体一旦泄漏,极易引发严重事故。如何实现精准监测、快速响应,成为工业及商业领域安全管理的核心诉求。旭华智能深耕安全监测领域,推出的工业及…...

基于STM32的智能停车场管理系统

1. 引言 传统停车场管理存在车位利用率低、停车体验差等问题,难以满足现代城市停车需求。本文设计了一款基于STM32的智能停车场管理系统,通过车位状态实时监测、智能导航与无感支付技术,实现停车资源的高效利用与用户服务的全面升级。 2. 系…...

MacBook 终端中使用 vim命令

在 MacBook 终端中使用 vim 编辑器时,以下是一些常用命令和操作指南: 1. 基本操作 启动 vim vim 文件名 # 打开或创建文件退出 vim 保存并退出: 按 Esc,然后输入 :wq,按 Enter。 不保存退出: 按 Esc&am…...

VoIP之SBC(会话边界控制器)

‌  SBC(Session Border Controller,会话边界控制器)‌是一种在VoIP通信网络中的重要设备,用于连接处理会话边界,核心功能包含信令代理/媒体代理、网络NAT穿越、防火墙、QoS等。 经典案例 关键说明 用于客户端和核心业务服务器的互联互通支持IP接入控…...

threejs:document.createElement创建标签后css设置失效

vue3threejs,做一个给模型批量CSS2D标签的案例,在导入模型的js文件里,跟着课程写的代码如下: import * as THREE from three; // 引入gltf模型加载库GLTFLoader.js import { GLTFLoader } from three/addons/loaders/GLTFLoader.…...

安装2018版本的petalinux曲折经历

具体操作步骤 1.安装VMware Workstation15.5的虚拟机2.安装Ubuntu16.04.43.配置Ubuntu的环境1.可以复制粘贴的指令2.安装vim 4.准备安装petalinux1.先配置petalinux的安装环境2.替换镜像源1.备份原始的软件源2.从以下镜像点找到合适自己系统版本的源3.执行替换镜像源1.打开源文…...

return和print

目录 1.print的用法 2.return的用法 3. print 和 return 的区别 4.总结 1.print的用法 print 是一个函数,用于将信息输出到控制台(终端)。它主要用于显示程序运行的结果,方便用户查看。print 的作用是输出内容,而不…...

springboot411-基于Java的自助客房服务系统(源码+数据库+纯前后端分离+部署讲解等)

💕💕作者: 爱笑学姐 💕💕个人简介:十年Java,Python美女程序员一枚,精通计算机专业前后端各类框架。 💕💕各类成品Java毕设 。javaweb,ssm&#xf…...

跨平台文件互传工具

一款高效便捷的文件互传工具,支持在线快速传输各种文件格式,无需注册,直接分享文件。适用于个人和团队间的文件共享,跨平台支持,轻松解决文件传输问题。免费的文件传输服务,让你的工作更高效。 gotool...

final 关键字在不同上下文中的用法及其名称

1. final 变量 名称:final 变量(常量)。 作用:一旦赋值后,值不能被修改。 分类: final 实例变量:必须在声明时或构造函数中初始化。 final 静态变量:必须在声明时或静态代码块中初…...

Elasticsearch:使用阿里云 AI 服务进行嵌入和重新排名

作者:来自 Elastic Toms Mura 将阿里云 AI 服务功能与 Elastic 结合使用。 更多阅读,请参阅 “Elasticsearch:使用阿里 infererence API 及 semantic text 进行向量搜索”。 在本文中,我们将介绍如何将阿里云 AI 功能与 Elastics…...

如何为服务器生成TLS证书

TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

C++ 设计模式 《小明的奶茶加料风波》

👨‍🎓 模式名称:装饰器模式(Decorator Pattern) 👦 小明最近上线了校园奶茶配送功能,业务火爆,大家都在加料: 有的同学要加波霸 🟤,有的要加椰果…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...

图解JavaScript原型:原型链及其分析 | JavaScript图解

​​ 忽略该图的细节(如内存地址值没有用二进制) 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么:保存在堆中一块区域,同时在栈中有一块区域保存其在堆中的地址(也就是我们通常说的该变量指向谁&…...

OCR MLLM Evaluation

为什么需要评测体系?——背景与矛盾 ​​ 能干的事:​​ 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。​​干不了的事:​​ 碰到复杂表格(合并单元…...

基于开源AI智能名片链动2 + 1模式S2B2C商城小程序的沉浸式体验营销研究

摘要:在消费市场竞争日益激烈的当下,传统体验营销方式存在诸多局限。本文聚焦开源AI智能名片链动2 1模式S2B2C商城小程序,探讨其在沉浸式体验营销中的应用。通过对比传统品鉴、工厂参观等初级体验方式,分析沉浸式体验的优势与价值…...