贡献
第一个以成员推理视角量化了推荐系统的隐私风险
背景知识
推荐系统的矩阵分解
对于给定的用户-项目评分矩阵(评分值为1-5),利用矩阵分解可将用户和项目投影至共享的潜在空间。即将一个pxq的用户-项目评分矩阵M(f)(p和q分别表示用户数目和项目数目),分解成两个低维矩阵M(user) ∈ R(pxl)(潜在用户偏好特征矩阵,l为潜在特征空间的维数,每一行为一个用户的偏好特征向量)和M(item)∈ R(qxl)(潜在项目特征矩阵,l为潜在特征空间的维数,每一行为一个项目的特征向量)。本文在攻击模型训练数据生成阶段需要用到所有项目的特征向量,因此利用了上述矩阵分解思路提取了所有项目的特征向量,分解目标如下图所示,最小化LMF。M(user)和M(item)分别表示被预测的用户偏好矩阵和项目特征矩阵。(在本文工作中仅利用了M(item),分解同时得到的M(user)不使用)
威胁模型 (敌手能观察到的知识)
方法论
攻击方法
核心思想
推荐系统给成员用户推荐的项目与交互项目更相关
步骤
1.标记数据生成(供攻击模型训练使用)
2.攻击模型建立(采用多层感知层MLP建立攻击模型)
3.参数优化(即对攻击模型进行训练优化)
4.对目标用户进行推测
攻击方法步骤详细介绍
标记数据生成
1.训练模仿目标推荐系统的影子推荐系统。
2.从数据集中获取各个用户的交互列表(例如,若User1对第1、5、8项目均有评分,则其交互列表为{1,5,8})。
3.从影子推荐系统中获取各个用户的推荐列表(例如,若系统对User1推荐的项目有第1、6、9项目,则其推荐列表为{1,6,9})。
4.对用户-项目矩阵进行矩阵分解得到各个项目的特征向量。
5、将各个用户的交互、推荐列表中的项目用项目的特征向量替代,得到各个用户向量化后的交互与推荐列表。(例如,第1、5、6、8、9项目对应的特征向量为v1、v5、v6、v8、v9,则User1向量化后的交互和推荐列表分别为{v1、v5、v8}、{v1、v6、v9}。
6.求出各个用户向量化后的交互和推荐列表分别的中心向量,如下所示 (i表示第i个用户,j为向量化后用户交互(或推荐)列表的第j个向量,N表示向量个数)
7.对每个用户的交互和推荐中心向量作差,将其记为代表用户的特征向量。如下图所示。
8.对每个成员zi加以标签1,对每个非成员zi加以标签0,从而得到攻击模型的训练数据。
攻击模型建立
对于第i个用户,成员推理攻击预测可以被形式化如下,下图为攻击模型MLP架构:(yi为一个二维向量,分别表示zi对应的用户属于成员/非成员的概率)
参数优化
采用随机梯度下架更新参数,旨在最小化交叉熵损失函数LMLP(Ntrain为训练样本数目,yi’为第i个用户被预测属于成员的概率,yi*为第i个用户的真实标签)
对目标用户进行推测
对目标用户的交互和推荐进行和标记数据生成一致的处理(但不需要添加标签),从而得到目标用户的特征ztarget,将其输入攻击模型中得到预测
针对推荐系统成员推理框架图
防御方法(流行度随机化)
核心思想
推荐系统主要对非成员用户实施流行度算法,即推荐最流行的一些项目,这导致了非成员的特征向量极其相似,容易和成员区分开来。因此,本文提出了一种名为流行度随机化的防御方法,通过丰富非成员推荐项目的随机性降低成员推理攻击的性能。
具体方案
1.将要推荐的项目按照流行度进行降序排序,形式化如下
2.按照预定义的候选推荐项目个数Ncand,从排好序的推荐列表Ssorted中选取前Ncand个项目作为候选推荐项目Scand,形式化如下
3.推荐系统按照预定义的Nrec,随机从Scand中选择Nrec个项目推荐给某个非成员用户