Data Poisoning Attacks to Deep Learning Based Recommender Systems NDSS’21

首个在基于深度学习的推荐系统中进行投毒攻击的研究。文章总结的攻击深度学习推荐系统的难点,概括的来说就是:

  • user-item 的数据是离散变量(和loss function建立不起联系)
  • 神经网络的训练过程耗时(重新训练embedding至收敛)

本文方法

image-20210701143256410

近似 Hit Ratio

我们的优化目标肯定是希望最大化target item的hit ratio:
max⁡HRtsubject to ∥y(v)∥0≤n+1,∀v∈{v1,v2,…,vm}yvi∈{0,1,…,rmax⁡}\begin{aligned} \max & \ \ \mathrm{HR}_{t} \\ \text { subject to } &\left\|\mathbf{y}_{(v)}\right\|_{0} \leq n+1, \forall v \in\left\{v_{1}, v_{2}, \ldots, v_{m}\right\} \\ & y_{v i} \in\left\{0,1, \ldots, r_{\max }\right\} \end{aligned} maxsubject toHRty(v)0n+1,v{v1,v2,,vm}yvi{0,1,,rmax}
直接优化这个函数行不通,采取多种方法:

Relaxing Rating Scores to Obtain Continuous Variables

把整数评分都转换成0.0~1.0的连续值,最后生成打分时再离散成整数。

Approximating the Hit Ratio

因为Hit Ratio是非线性不可微的。对于一个用户u定义一个loss function:
lu=max⁡{min⁡i∈Lulog⁡[y^ui]−log⁡[y^ut],−κ}l_{u}=\max \left\{\min _{i \in L_{u}} \log \left[\widehat{y}_{u i}\right]-\log \left[\widehat{y}_{u t}\right],-\kappa\right\} lu=max{iLuminlog[y

ui]log[y

ut
]
,κ}
如果目标物品 t 已经出现在推荐列表LuL_uLu中,那么不需要做优化;否则应该提高 t 的排名,使y^ut\widehat{y}_{u t}y

ut
至少应该比LuL_uLu中排名最低的y^ui\widehat{y}_{u i}y

ui
高。其中$\kappa 是一个超参数,保证目标物品至少高于是一个超参数,保证目标物品至少高于L_u$中最后一个物品一段距离。

所有用户的loss function就是
l′=∑u∈Slul^{\prime}=\sum_{u \in S} l_{u} l=uSlu
现在优化问题转换成了:
min⁡G[y(v)]=∥y(v)∥22+η⋅l′subject to yvi∈[0,rmax⁡]\begin{aligned} \min G\left[\mathbf{y}_{(v)}\right] &=\left\|\mathbf{y}_{(v)}\right\|_{2}^{2}+\eta \cdot l^{\prime} \\ \text { subject to } & y_{v i} \in\left[0, r_{\max }\right] \end{aligned} minG[y(v)]subject to=y(v)22+ηlyvi[0,rmax]
因为推荐系统里的标签是离散的,梯度在反向传播到输入层时会消失,所以直接用图片的攻击方法不行。一个自然的想法时把fake user的评分向量y(v)y_(v)y(v)作为自变量,定义如下投毒攻击:
min⁡y(v)G[y(v),w∗]subject to w∗=arg⁡min⁡wL[w,Y∪y(v)]\begin{aligned} \min _{\mathbf{y}_{(v)}} & G\left[\mathbf{y}_{(v)}, \mathbf{w}^{*}\right] \\ \text { subject to } & \mathbf{w}^{*}=\underset{\mathbf{w}}{\arg \min } \mathcal{L}\left[\mathbf{w}, \mathbf{Y} \cup \mathbf{y}_{(v)}\right] \end{aligned} y(v)minsubject toG[y(v),w]w=wargminL[w,Yy(v)]
其中w∗w^*w表示模型参数,L\mathcal{L}L是目标推荐系统的原损失函数。所以这是一个两阶段优化问题,目标推荐系统的参数w∗w^*w也需要依赖y(u)y_{(u)}y(u)

麻烦就麻烦在这,这个y(u)y_{(u)}y(u)一变,这个w∗w^*w还得重新训练至收敛。这在现实中不可能实现优化。

所以需要一个本地代理模型

构建代理模型

本地构建一个代理模型,首先在训练数据集上训练一个有效的推荐系统模型,然后再进行投毒训练:
l=L+λ⋅G[y^(v)]l=\mathcal{L}+\lambda \cdot G[\widehat{\mathbf{y}}(v)] l=L+λG[y

(v)]
The poison model in this stage will use Eq. (6) as loss function and be trained repeatedly w.r.t all model parameters inside it with the back-propagation method.

模型的所有参数都训练。

上式可以带入、展开、省略掉和求导无关的项,即:
l=L+η(∑u∈S(y^ui−y^ut))+∥y(v)∥22l=\mathcal{L}+\eta\left(\sum_{u \in S}\left(\hat{y}_{u i}-\hat{y}_{u t}\right)\right)+\|y(v)\|_{2}^{2} l=L+η(uS(y^uiy^ut))+y(v)22
文章里反复提了好几次,本文的方法最后得到的是:“本地模型最后会非常接近 目标模型实现了攻击目标的 理想状况”。 我的理解就是:这个时候本地模型收敛到了一个理想中被攻击的模型应该达到的状态,即模型的参数,既包含了有效的推荐系统,又包含了对target item的“偏爱”。

换句话说作者把本地模型当作目标模型进行白盒攻击,攻击完之后,本地模型就是攻击者最想要的模型,即能用又可以获利。然后从本地模型里采样一些数据样本(fake user:filler items + target item),希望目标模型可以迁移训练一下,向本地模型靠拢。

那就把这个时候fake user的评分高的物品作为filler item。从这个名字就能看出,fake user的rating并不能很好的优化到目标模型。

image-20210701180724856

【RS-Attack】Data Poisoning Attacks to Deep Learning Based Recommender Systems NDSS‘21相关推荐

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

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

  2. [阅读笔记1]Data Poisoning Attacks to Deep Learning BasedRecommender Systems

    个人总结:本文主要通过构造一个毒药模型--用于预测假用户的评分项目,从而构造m个假用户,将假用户注入到推荐系统中,达到影响推荐系统对普通用户的推荐项目(让一个项目能尽可能多的出现在普通用户的推荐列表中 ...

  3. 【推荐算法】深度学习推荐算法综述 Deep Learning based Recommender System: A Survey and New Perspectives

    一.MLP based Recommender System 1. Deep Crossing模型 Deep Crossing模型完整的解决了从特征工程.稀疏向量稠密化.多层神经网络进行优化目标拟合等 ...

  4. 【COPOD】Suppressing Poisoning Attacks on Federated Learning for Medical Imaging

    Suppressing Poisoning Attacks on Federated Learning for Medical Imaging 抑制针对医学影像联邦学习的毒化攻击 论文 Abstrac ...

  5. 【全文翻译】Membership Inference Attacks Against Machine Learning Models

    针对机器学习模型的成员推理攻击 I. INTRODUCTION II. MACHINE LEARNING BACKGROUND (机器学习背景) III. PRIVACY IN MACHINE LEA ...

  6. 论文笔记 【Wide Deep Learning for Recommender Systems】

    标题 * 表示未完成 论文原文传送门 文章提出了 m e m o r i z a t i o n a n d g e n e r a l i z a t i o n memorization\ and ...

  7. 【论文阅读】3D点云 -- PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

    前言 本博客详解遵从论文讲述的顺序.但我们要明确该论文的要点,以更好的阅读论文:针对点云的3个特性,pointnet设计的应对方法,以及设计理念. 点云的无序性:网络使用了对称函数 (maxpooli ...

  8. Wide Deep Learning for Recommender Systems【论文记录】

    特点在于联合学习,将线性模型和神经网络联合在一起共同学习 线性模型作用于所给的特征,直接记忆专家给的有效特征 神经网络作用于所有特征,挖掘新特征,进行泛化 也就是结合 人为发现的规则和机器探索的联系 ...

  9. 【文献翻译】Epileptic Seizures Detection Using Deep Learning Techniques: A Review

    利用深度学习技术检测癫痫发作:综述 文章目录 摘要 1 - 引言 2 - 基于深度学习技术的癫痫发作检测 A. 癫痫数据集 B. 预处理 C. 深度学习技术回顾 1) 卷积神经网络(CNN) 2D卷积 ...

最新文章

  1. 《我也能做CTO之.程序员职业规划》新书出版推举
  2. web3.js(三)查询智能合约币数量(erc20)
  3. C#数据结构与算法揭秘17
  4. 神经网络 Stanford UFLDL
  5. 二进制、八进制、十六进制和十进制的相互转换,原码反码补码计算以及Java中数字的存储
  6. 八、深入JavaScript的条件语句和循环语句(四)
  7. 数据库02_字段类型
  8. Python符号计算入门及隐函数图像绘制
  9. java播放mp3背景音乐_Java如何实现MP3播放!!
  10. open cv+C++错误及经验总结(十二)
  11. android开发常用的组件,Android开发常用控件与属性
  12. Retrofit + RxJava + OkHttp 让网络请求变的简单-基础篇
  13. 在 COMSOL 中模拟地震波的传播
  14. Endnote--在参考文献列表中添加DOI
  15. 微博图片设计模板素材推荐 精品 小众
  16. SAP MM库存盘点流程
  17. openstack RPC通信
  18. linux springboot开机启动,SpringBoot 部署到Linux开机自启动和运行
  19. Excel函数完整列表(Excel Function Full List)
  20. pdf文档转化为doc文档 (转载)

热门文章

  1. python自动生成ppt报告_把时间还给洞察,且看PPT调研报告自动生成攻略
  2. 电脑怎么调整图片分辨率?如何让图片清晰度变高?
  3. Hive创建外部表详细步骤
  4. 第十三课:树莓派搭建客户端
  5. EMC——青青子衿,居易安信
  6. 仿苹果菜单的图片放大特效实现
  7. Windows游戏开发感想一个完整的Windows窗口程序
  8. AI Studio 精品项目 | 基于Few-shot Learning实现中文科学文献学科分类
  9. 干货!网络推断与数据驱动的影响力最大化问题
  10. 电流互感器的一些计算