以毒攻毒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,一经查实,立即删除!

相关文章

Federated learning论文修改2021-11-14(X-Y Liang)

1、结论部分 (1)你做什么,得到什么结果。(5句话) (2)未来还要做什么样工作 2、每个section前面有一段引入文字 3、重要的符号,符号系统最重要的作用是保持后面的一致性。 4、Figu…

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

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

MNTD论文修改20211114(Y Zhou)

2 Preliminaries 2.1 Network traffic detection 2.2 Multi-instance learning 1、5-10句,一个句子15-25个单词。 2、 Results show that our algorithm is more efficient while maintains good accuracy. And, the influence of packet size and the ratio …

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 … &#…

python数字类型floatcomplexint_浅谈python 四种数值类型(int,long,float,complex)

Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下。数字数据类型存储数值。他们是不可改变的数据类型,这意味着改变数字数据…

NSA-LDL论文修改建议20211116(R-T Bai)

1、每一个部分应该有引入 This section first reviews the definition of the rating system. Second, we present the problem statement for collaborative filtering (CF). Finally, we analyze existing approaches for estimating MGBR. 2、the basic statistics of the 1…

python urllib发送post请求_python爬虫 urllib模块发起post请求过程解析

urllib模块发起的POST请求案例:爬取百度翻译的翻译结果1.通过浏览器捉包工具,找到POST请求的url针对ajax页面请求的所对应url获取,需要用到浏览器的捉包工具。查看百度翻译针对某个字条发送ajax请求,所对应的url点击clear按钮可以…

通过一个例子来理解二维码纠错机制

1 例子 假设:原始数据为8位,纠错码为6位,原始信息由原始数据纠错码。 在传输过程中,由于信息干扰等原因,导致原始信息被污染,被污染后有两位数据被修改。 说明编码原始信息001010011011100被污染后的信息…

two sum python_Python | Leetcode 之 Two Sum

说来惭愧,到现在才开始刷Leetcode,但迟到总比不到好。题目:Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution,…

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

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

python爬虫视频 下载 黑马_Python爬虫能爬视频么(python爬虫零基础视频教程)

Python爬虫能爬视频么他视频没有的,但是跑了之后你要处理这个视频,就是问题的?你只需要,得到视频的播放地址,还是要把视频完整的下载到本地的。如果只是爬那个视频的下载地址,很简单,如果要下载…

机器学习+深度学习相关课程地址总结

1 吴恩达老师 机器学习课程视频链接:https://www.bilibili.com/video/BV164411b7dx?fromsearch&seid8357728122787183773&spm_id_from333.337.0.0作业答案:https://github.com/Ayatans/Machine-Learning-homework深度学习课程:吴恩…

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

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

Membership Inference Attacks Against Recommender Systems论文解读

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

python分类预测降低准确率_十分钟掌握python机器学习特征选择

十分钟掌握python机器学习特征选择-1.jpg (33.2 KB, 下载次数: 0)2018-6-26 23:01 上传在机器学习中,特征选择是实践中的一步, 帮你在所有特征中选择对结果贡献最多的特征。 显然, 使用不相关数据会减少模型的精确性,尤其是线性算…

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​ 缺点:欧式距离是一种常用的距离度量,但它并不是尺度不变的,这意味着所计算…

python 分类变量回归_极简Python带你探索分类与回归的奥秘

为何使用人工智能和机器学习?地球的未来在于人工智能和机器学习。如果对这些技术一无所知,人们很快会发现自己落伍了。世界发展日新月异,每天都发生着不可思议的变化。在人工智能和机器学习中,有许多实现和技术能够解决实时问题。…

Fast Matrix Factorization for Online Recommendation with Implicit Feedback论文代码分析

1 数据结构 userCount&#xff1a;用户数 itemCount&#xff1a;项目数 user_ratings&#xff1a;ArrayList<ArrayList>&#xff0c; 问&#xff1a;此处为什么要用二维数组&#xff1f; 答&#xff1a;第1维是用户&#xff0c;第2维是用户对所有项目的评分。 testRatin…

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

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