应用了三种方法对矩阵分解实现差分隐私
(1)输入扰动
(2)SGD扰动
(3)具有输出扰动的ALS
global average GAvg(R) { average of all the ratings for all items }
item average IAvg(i) { average rating for item i }
user average UAvg(u) { average rating of user u }
算法1
βi { stabilization parameter }
ε1 { global average privacy parameter } 0.02
ε2 { item average privacy parameter } 0.14
算法2
βu { stabilization parameter }
ε2 { user average privacy parameter } 0.14
算法3 Differentially Private Input Perturbation
d { number of factors }
λ { regularization parameter } λ=20
B { clamping parameter } B=1
ε { privacy parameter }
算法4 Differentially Private SGD
d { number of factors }
λ { regularization parameter }
k { number of gradient descent iterations } k=5
emax { upper bound on per-rating error } emax=2
ε { privacy parameter }
算法5 Differentially Private ALS with Output Perturbation
d { number of factors }
λ { regularization parameter }
k { number of gradient descent iterations } k=5
ε { privacy parameter }
pmax { upper bound on ||pu||2 } pmax=0.4
qmax { upper bound on ||qi||2 } qmax=0.5
1 对输入预处理
(1)根据算法1,求出 IAvg(i)
(2)根据算法2,求出 UAvg(u)
(3)把原始的评分矩阵 R 中的评分 rui 钳定在范围 [-B,B] 中,B=1。
2 输入扰动
(1)在预处理矩阵中,对每个 rui 加 lap 噪声。
(2)将加了噪声的矩阵R’钳定在范围 [-B,B] 中。
(3)通过P,Q的最小目标函数,得到矩阵 P 和 Q。
3 SGD中差分隐私
(1)随机初始化矩阵P和Q
(2)for k 次迭代,做
for 每个rui,做
(3)输出矩阵P和Q
4 具有输出扰动的ALS
(1)随机初始化矩阵P和Q
(2)for k 次迭代,做
for 每个用户 u,给定Q,做
for 每个项目 i,给定P,做
(3)输出矩阵P和Q