栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

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

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

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

我们的优化目标肯定是希望最大化target item的hit ratio:
max ⁡    H R t  subject to  ∥ y ( v ) ∥ 0 ≤ n + 1 , ∀ v ∈ { v 1 , v 2 , … , v m } y v i ∈ { 0 , 1 , … , r max ⁡ } begin{aligned} max & mathrm{HR}_{t} \ text { subject to } &left|mathbf{y}_{(v)}right|_{0} leq n+1, forall v inleft{v_{1}, v_{2}, ldots, v_{m}right} \ & y_{v i} inleft{0,1, ldots, r_{max }right} end{aligned} max subject to ​  HRt​∥∥​y(v)​∥∥​0​≤n+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:
l u = max ⁡ { min ⁡ i ∈ L u log ⁡ [ y ^ u i ] − log ⁡ [ y ^ u t ] , − κ } l_{u}=max left{min _{i in L_{u}} log left[widehat{y}_{u i}right]-log left[widehat{y}_{u t}right],-kapparight} lu​=max{i∈Lu​min​log[y ​ui​]−log[y ​ut​],−κ}
如果目标物品 t 已经出现在推荐列表 L u L_u Lu​中,那么不需要做优化;否则应该提高 t 的排名,使 y ^ u t widehat{y}_{u t} y ​ut​至少应该比 L u L_u Lu​中排名最低的 y ^ u i widehat{y}_{u i} y ​ui​高。其中$kappa 是 一 个 超 参 数 , 保 证 目 标 物 品 至 少 高 于 是一个超参数,保证目标物品至少高于 是一个超参数,保证目标物品至少高于L_u$中最后一个物品一段距离。

所有用户的loss function就是
l ′ = ∑ u ∈ S l u l^{prime}=sum_{u in S} l_{u} l′=u∈S∑​lu​
现在优化问题转换成了:
min ⁡ G [ y ( v ) ] = ∥ y ( v ) ∥ 2 2 + η ⋅ l ′  subject to  y v i ∈ [ 0 , r max ⁡ ] begin{aligned} min Gleft[mathbf{y}_{(v)}right] &=left|mathbf{y}_{(v)}right|_{2}^{2}+eta cdot l^{prime} \ text { subject to } & y_{v i} inleft[0, r_{max }right] end{aligned} minG[y(v)​] subject to ​=∥∥​y(v)​∥∥​22​+η⋅l′yvi​∈[0,rmax​]​
因为推荐系统里的标签是离散的,梯度在反向传播到输入层时会消失,所以直接用图片的攻击方法不行。一个自然的想法时把fake user的评分向量 y ( v ) y_(v) y(​v)作为自变量,定义如下投毒攻击:
min ⁡ y ( v ) G [ y ( v ) , w ∗ ]  subject to  w ∗ = arg ⁡ min ⁡ w L [ w , Y ∪ y ( v ) ] begin{aligned} min _{mathbf{y}_{(v)}} & Gleft[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)​min​ subject to ​G[y(v)​,w∗]w∗=wargmin​L[w,Y∪y(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 ^ u i − y ^ u t ) ) + ∥ y ( v ) ∥ 2 2 l=mathcal{L}+etaleft(sum_{u in S}left(hat{y}_{u i}-hat{y}_{u t}right)right)+|y(v)|_{2}^{2} l=L+η(u∈S∑​(y^​ui​−y^​ut​))+∥y(v)∥22​
文章里反复提了好几次,本文的方法最后得到的是:“本地模型最后会非常接近 目标模型实现了攻击目标的 理想状况”。 我的理解就是:这个时候本地模型收敛到了一个理想中被攻击的模型应该达到的状态,即模型的参数,既包含了有效的推荐系统,又包含了对target item的“偏爱”。

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/581091.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号