以毒攻毒Fight Fire with Fire: Towards Robust Recommender Systems via Adversarial Poisoning Training论文解读

1 摘要

最近的研究表明,推荐系统是脆弱的,攻击者很容易将精心设计的恶意配置文件注入系统,从而导致有偏见的推荐。我们不能否认这些数据的合理性,因此建立一个强大的推荐系统势在必行。对抗性训练已被广泛研究以获得可靠的建议。然而,传统的对抗训练给参数(输入)增加了小的扰动,这不符合推荐系统中的中毒机制。因此,对于非常擅长学习现有数据的实用模型,它的表现并不好。为了解决上述限制,我们提出了对抗性中毒训练(APT)。它通过注入虚假用户(ERM 用户)来模拟中毒过程,这些虚假用户致力于最小化经验风险以构建一个强大的系统。此外,为了生成 ERM 用户,我们探索了一种近似方法来估计每个假用户对经验风险的影响。尽管“以火取胜”的策略似乎违反直觉,但我们从理论上证明了所提出的 APT 可以提高中毒鲁棒性的上限。此外,我们提供了第一个理论证明,即对抗性训练对增强推荐稳健性具有积极影响。通过对四个真实世界数据集进行五次中毒攻击的广泛实验,结果表明 APT 的鲁棒性改进显着优于基线。值得一提的是,APT 在大多数情况下也提高了模型泛化能力。

2 预备知识

2.1 矩阵分解

在这里插入图片描述
问:矩阵分解为什么不能进行精确分解?也就是R=UVR = UVR=UV,而不是R≈UVR \approx UVRUV
答:从欠定方程、正定方程、超定方程角度考虑,由于评分矩阵上需要拟合的点比变量多,通过最小二乘法进行误差最小拟合。
问:为什么需要正则项?
答:为了防止过拟合。
问:为什么正则项必须是二范数?
答:一范数和二范数,还有其它的都可以作为正则项,推荐去看B站上的浙江大学胡浩基老师的《机器学习》的视频,里面有理论推导。

2.2 针对推荐系统的对抗训练

对抗训练向模型参数(或输入)添加扰动以迫使推荐系统适应这种噪声并学习扰动的非鲁棒性特征,从而增强面对对抗性攻击的鲁棒性。
在这里插入图片描述
Δ\DeltaΔ是专门用于破坏推荐的附加扰动,ϵ>0\epsilon > 0ϵ>0限制扰动的幅度,λadv\lambda_{adv}λadv控制扰动的影响,D\mathcal{D}DθR\theta_RθRL\mathcal{L}L分别是推荐系统的数据集、参数和训练损失。
简而言之,对抗训练在推荐者和攻击对手之间进行零和博弈,并在博弈中寻求鲁棒模型。

问:公式(2)里面为什么有min⁡\minmin,还有max⁡\maxmax?
答:这个公式很有意思,可以分为两个步骤来理解,第一步是在已经训练好的模型(即固定参数θR\theta_RθR),攻击者通过加入扰动Δ\DeltaΔ使得模型的误差最大,这样可以保证攻击的效果最佳;第二步是利用已经污染后的数据集进行重新训练模型,也就是改变θR\theta_RθR,如果是矩阵分解,就是重新计算新的子矩阵UUUVVV,使得损失最小。

2.3 威胁模型

攻击目标。根据攻击者的意图,他们可以设计各种攻击,包括提升攻击、降级攻击和可用性攻击[22]。提升攻击(降级攻击)通常旨在增加(降低)目标项目的受欢迎程度(例如,提高(降低)项目在基于排名的模型上的推荐排名 [24])。对于可用性攻击,攻击者希望最大化推荐误差以最终使模型无用。我们不能删除现有的评分,因此降级攻击可以通过增加非目标项目的受欢迎程度来实现,直到目标项目不在用户的推荐列表中[42],这在某种意义上相当于提升攻击。此外,可用性攻击本质上是提升攻击和降级攻击的混合体。为简单起见,我们主要专注于防御提升攻击。

攻击能力。理论上,只要注入的假配置文件足够大,任何模型都是脆弱的。显然,模型的鲁棒性和攻击能力不能解耦。另外,注入过多的假用户操作难度大,难免会产生与正常用户不同的签名,导致被检测到。鉴于上述考虑,我们限制攻击者最多注册 𝑛′ 恶意用户,每个用户的评分上限为 𝑚′。

攻击知识。 我们考虑白盒攻击下的研究; 也就是说,攻击者可以掌握推荐系统的一切,包括使用的算法、具体的参数设置,甚至用户的历史行为。 尽管获取知识的挑战使得这种理想的攻击不如黑盒攻击实用,但我们工作的重点是防御。 白盒攻击为防御提供了最差的假设,也是评估推荐稳健性的最严格的测试,超越了黑盒攻击。

3 对抗性中毒训练

假设D={r1,…,rn}\mathcal{D}=\{r_1, \dots, r_n\}D={r1,,rn}是可能被污染的数据集。D∗={r1∗,…,rn∗∗}\mathcal{D}^*=\{r_1^*, \dots, r_{n^*}^*\}D={r1,,rn}是一组致力于最小化经验风险的 n∗n^*n假用户,那么对抗性中毒训练的框架定义如下:在这里插入图片描述
与公式(2)中描述的传统对抗训练相比,APT 的内在目标是最小化操作,APT 中使用的扰动是中毒用户,我们称之为 ERM 用户或防御用户。

问:又如何来理解公式(3)呢?
答:这个公式也可以分为两个步骤来理解,第一步是一批假用户进行评分得到数据集D∗D^*D,这个假用户的评分不能破坏原有评分的分布,也就是在原有参数θR\theta_RθR不变的情况下,损失最小;第二步是利用原有数据+新构造的数据集,重新训练新的参数θR\theta_RθR

APT本质上模拟了对手的中毒过程,可以解决推荐中对抗训练的伪中毒问题。 当前的主要挑战是如何优化公式(3)的内在目标以产生ERM用户。 由于影响函数在决策预测中的应用 [19],我们通过估计每个用户对经验风险的影响来推导出一个近似求解器来生成 ERM 用户。
影响函数评估数据变化对决策的敏感性。 具体来说,对于训练集中的一个点zzz,我们对其添加一个小的扰动δ\deltaδ,使其成为z′=z+δz' = z + \deltaz=z+δ。那么这个修改对测试点ztestz_{test}ztest的影响定义为:
Ipert,loss(z,δ):=−1n∇θL(ztest,θ^)THθ^−1∇z∇θL(z,θ^)δ\mathcal{I}_{pert, loss}(z, \delta) := -\frac{1}{n} \nabla_\theta \mathcal{L}(z_{test}, \hat{\theta})^T H_{\hat{\theta}}^{-1} \nabla_z \nabla_\theta \mathcal{L}(z, \hat{\theta}) \deltaIpert,loss(z,δ):=n1θL(ztest,θ^)THθ^1zθL(z,θ^)δ
符号说明:nnn是用户数,L\mathcal{L}L是公式一中的训练损失(training loss),HθH_\thetaHθ是训练损失的Hessian矩阵,∇\nabla一般表示梯度,在这里文章没有说明到底是什么
在这里插入图片描述
影响向量I\mathcal{I}I为:
在这里插入图片描述

啃公式太吃力了,我们还是来看看算法流程吧:
在这里插入图片描述
看了算法流程之后,我对这篇文章的工作有了一个大致的理解,分为五个步骤:
(1)随机添加一些用户构成假用户集D∗\mathcal{D}^*D
(2)对原始数据集D\mathcal{D}D进行训练(矩阵分解);
(3)根据训练后的loss计算影响向量I\mathcal{I}I
(4)以概率exp(−tIi)∑j∈Φexp(−tIj)\frac{exp(-tI_i)}{\sum_{j \in \Phi} exp(-tI_j)}jΦexp(tIj)exp(tIi)从项目集Φ\PhiΦ中选择m∗m^*m个项目,让假用户对这些项目进行评分,评分服从(μi+r+,σi)(\mu_i + r^+, \sigma_i)(μi+r+,σi)
(5)新的数据集为:D′=D∪D∗\mathcal{D}^{'} = \mathcal{D} \cup \mathcal{D}^*D=DD,对新的数据集重新进行训练(矩阵分解)。
在这里插入图片描述

作者认为通过这种方式构建的新数据集可以有效的抵抗中毒攻击。

4 吐个槽,不对的地方请指正

看了这篇文章后,感觉有些关键的地方没有看懂:
(1)如何构建假用户集?
(2)选哪些项目来进行评分,也就是说具体的选择策略是什么?
(3)新的数据集为什么能抵抗中毒攻击?

个人觉得这篇文章有几个地方需要改进
(1)符号系统较为凌乱,比如D∗\mathcal{D}^*D,一会儿指代假用户集,一会儿指代假用户评分后构建的数据集,可否增加一个符号系统;
(2)缺乏一个running example,也就是一个例子,通过这个例子可以帮助读者理解作者的具体做法。

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

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

相关文章

redis延迟队列 实现_灵感来袭,基于Redis的分布式延迟队列

一、延迟队列延迟队列,也就是一定时间之后将消息体放入队列,然后消费者才能正常消费。比如1分钟之后发送短信,发送邮件,检测数据状态等。二、Redisson Delayed Queue如果你项目中使用了redisson,那么恭喜你&#xff0c…

opencv2 取二进制数据_百亿数据量下,掌握这些Redis技巧你就能Hold全场

程序猿DD一、Redis封装架构讲解实际上NewLife.Redis是一个完整的Redis协议功能的实现,但是Redis的核心功能并没有在这里面,而是在NewLife.Core里面。这里可以打开看一下,NewLife.Core里面有一个NewLife.Caching的命名空间,里面有一…

MV-LDL论文修改20211115(B-Y Rong)

1、摘要 8-10句,每句话15-25个单词 (1)我们的研究领域。。。 (2)已有的工作。。。 (3)有什么缺点。。。(motivation) (4)In this paper … &#…

Data Poisoning Attacks to Deep Learning Based Recommender Systems论文解读

1 摘要 在这项工作中,作者对基于深度学习的推荐系统的数据中毒攻击进行了首次系统研究。攻击者的目标是操纵推荐系统,以便向许多用户推荐攻击者选择的目标项目。为了实现这一目标,作者将精心设计的评分注入到推荐系统中的假用户。具体来说&a…

黑马商城项目源代码_Python学习路线图--Python框架与项目

Python学习路线图的Python框架部分主要有Django框架和Flask框架,学完这一部分就可以去找Web全栈工程师的工作了,独立开发前端和后端业务。Python学习路线图的Django框架部分需要掌握Web主流框架-Django的使用;可根据Web框架设计,开…

Membership Inference Attacks Against Recommender Systems论文解读

0 摘要 推荐系统通常针对高度敏感的用户数据进行训练,因此推荐系统潜在的数据泄露可能会导致严重的隐私问题。 本文首次尝试通过成员推理的角度来量化推荐系统的隐私泄漏。 与针对机器学习分类器的传统成员推理相比,本文的攻击面临两个主要差异。 首先&…

k近邻推荐用到的各种距离

1 kkk-近邻推荐原理 2 各种距离 2.1 欧几里得距离 d12(x1−x2)2(y1−y2)2d_{12} \sqrt{(x_{1} - x_{2})^2 (y_{1} - y_{2})^2}d12​(x1​−x2​)2(y1​−y2​)2​ 缺点:欧式距离是一种常用的距离度量,但它并不是尺度不变的,这意味着所计算…

stacking模型融合_【干货】比赛后期大招之stacking技术分享

各位同学大家好,我是本次参赛选手李博,比赛ID是深蓝(DeePBluE)。现在就读于北京邮电大学,是一名研一的在校生,研究方向是数据分析和机器学习。是的,我又来分(na)享&#…

多stream_基础之Lambda和Stream的邂逅

基础之Lambda和Stream的邂逅show me the code and take to me,做的出来更要说的明白GitHub项目JavaHouse同步收录喜欢就点个赞呗! 你的支持是我分享的动力!引入是否有遇到看不懂身边同事代码的情况,是否有被面试官问到 Java 新特性不懂的情况。我掐指一算…

注意力机制--转载自我的学生隆兴写的博客

原文链接为:https://a-egoist.com/posts/a44b8419/,学生自己搭建的博客,点赞! 1 Attention 1.1 什么是 Attention 灵长类动物的视觉系统中的视神经接受了大量的感官输入。在检查视觉场景时,我们的视觉神经系统大约每…

推荐系统--矩阵分解(1)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 1 引入 一个矩阵可以分解为两个小矩阵的乘积,以音乐为例,利用潜在特征向量来给用户和音乐打上标签&#xff…

Yolo家族算法分析

1 历史简介 2 YOLO算法思想 YOLO算法的基本思想: (1)将图片划分为SSS \times SSS个网格; (2)计算每个边界框和置信度; (3)计算每个网格属于某个类别的概率; &…

u8 附件上传后存放路径_织梦DedeCms附件按月份保存的修改方法

正常情况下,dedecms织梦系统的图片附件是按日保存的,一天一个文件夹, 时间长了, 这样在allimg中就会生成很多文件夹, 不方便管理.虽然,dedecms织梦的后台设置有”附件保存形式”的先项, 但功能太弱,如果是在后台上传和…

推荐系统--矩阵分解(2)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 3 BiasSVD:考虑偏置 有一些用户会给出偏高的评分,有一些物品也会收到偏高的评分,比如电影观众为…

tga文件怎么打开_教你win10系统怎么打开stp文件

stp文件怎么打开呢?近来有很多小伙伴反映有朋友发送了一个stp文件给它,搞了半天也没能打开。其实打开stp文件很简单,不过前提是需要有绘图软件。我给大家整理了打开stp文件的图文教程,赶紧来瞧瞧吧有些朋友在使用win10系统的过程中…

推荐系统--矩阵分解(4)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 7 基于情感分析的矩阵分解 7.1 引入 【摘要】推荐系统旨在基于丰富的信息预测用户的偏好,例如用户评分、人口统计和评论…

yarn 卸载包_0609-6.1.0-如何卸载CDH6.1

1.文档编写目的Fayson在两年前的文章中介绍过CDH的卸载,参考《如何卸载CDH(附一键卸载github源码)》。除非你是使用Cloudera官方提供的一键安装脚本安装的CDH,否则并没有现成的一键卸载的脚本供使用。为了更好的理解CDH的卸载,这里再次简单介…

xss跨站脚本攻击_网络安全xss跨站脚本攻击原理

以下在未经授权的网站操作均为违法行为XSS跨站脚本攻击xss的危害网络钓鱼,盗取各类账号密码我们先来看一下下面的案例:先来记住一下下面中的表我们来做一个转发上面页面显示已经登录,但是突然页面中提醒再此登录此时,我们并没有多…

推荐系统--联邦学习下的矩阵分解(6)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 9 应用于联邦学习的矩阵分解 这个部分主要参考以下两篇论文: 2008-Collaborative Filtering for Implicit Feedback Dat…

什么是联邦学习

联邦学习 1.1 联邦学习的概念 历史:联邦学习最早在 2016 年由谷歌提出,原本用于解决安卓手机终端用户在本地更新模型的问题; 本质:联邦学习本质上是一种分布式机器学习技术,或机器学习框架。 目标:联邦学…