第38卷第5期   计算机应用与软件
Vol 38No.52021年5月 
ComputerApplicationsandSoftware
May2021
推荐系统中的隐私保护矩阵分解算法研究
崔炜荣1 徐龙华1 杜承烈2 李 宝1
(安康学院电子与信息工程学院 陕西安康725000)
(西北工业大学计算机学院 陕西西安710072)
收稿日期:
2019-07-19。国家自然科学基金项目(61801005);陕西省教育厅科学研究计划项目(18JK0015)。崔炜荣,讲师,主研领域:网络与信息安全。徐龙华,副教授。杜承烈,教授。李宝,讲师。
摘 要  针对协同过滤推荐系统中的用户数据和模型保护问题,提出一种隐私保护矩阵分解算法。该算法基于分布式架构,其梯度下降优化过程由服务器和各个用户相互协作完成。每轮迭代中,服务器仅从客户端得到物品隐藏因子向量梯度更新信息,从而有效保护了用户评分和推荐模型。基于多方安全求和的原理,在梯度更新过程中加入混淆机制,实现了对用户评分“存在性”的保护。开发系统原型并与现有方法进行实验对比,结果表明,该方法在保护用户隐私的同时能够提供更好的推荐准确度。关键词  推荐系统 协同过滤 隐私保护 矩阵分解
中图分类号 TP391    文献标志码 A    DOI:10.3969/j.issn.1000 386x.2021.05.051
PRIVACY PRESERVINGMATRIXFACTORIZATIONALGORITHM
INRECOMMENDERSYSTEM
CuiWeirong1 XuLonghua1 DuChenglie2 LiBao
(CollegeofElectronicandInformationEngineering,AnkangUniversity,Ankang725000,Shaanxi,China)
(SchoolofComputerScience,NorthwesternPolytechnicalUniversity,Xi’an710072,Shaanxi,China)
Abstract  Thispaperproposesaprivacy preservingmatrixfactorizationalgorithmforuserdataandmodelprotectionincollaborativefilteringrecommendersystem.Thealgorithmwasbasedonadistributedarchitecture,andthegradientdescentoptimizationprocesswascompletedbytheserverandvarioususersco
llaboratively.Ineachiteration,theserveronlyobtainedtheupdateinformationofthegradientofthehiddenfactorvectorforitemsfromtheclient,therebyeffectivelyprotectingtheuserscoreandtherecommendermodel.Basedontheprincipleofmulti partysecuritysummation,themethodaddedaconfusionmechanismintheprocessofgradientupdate,whichrealizedtheprotectionofthe“existence”ofuserscore.Thesystemprototypesweredevelopedandcomparedwithexistingmethods.Theresultsshowthatthismethodcanprovidebetterrecommendationaccuracywhileprotectinguserprivacy.Keywords  Recommendersystem Collaborativefiltering Privacyprotection Matrixfactorization
0 引 言
当今社会,互联网中的各类信息都在以难以预知的速率爆炸式地增长,人类社会也随之从“信息匮乏”状
态步入到“信息过载”状态。越来越多的用户在超过其处理能力的大量信息面前显得无所适从,很容易迷失在信息的海洋中。为了解决“信息过载”这一问题,使得用户可以在海量的数据中快速、准确地得到有
用的信息,推荐系统应运而生。推荐系统能够根据用
户的历史行为构建模型,预测用户对特定物品的态度并根据其预测向用户进行推荐。在推荐算法不断成熟和推荐系统被广泛应用的同时,其面临的隐私安全问
题也日益凸显[1]
。本质上,为了获得满意的推荐服务,
用户需要向推荐系统提供个人信息。因此,相比其他网络信息服务,推荐系统更加具有天然的隐私不友好性。推荐系统面临的隐私安全风险主要在于:(1)服务提供商可以直接利用用户所提交的数据获得用户的
第5期   崔炜荣,等:推荐系统中的隐私保护矩阵分解算法研究317
个人信息,从而确认用户的身份、兴趣爱好等敏感信息;(2)由于推荐系统所收集的数据的稀疏特性,利用推荐系统发布的聚合数据,攻击者可以有效推测出用户的敏感信息[1-2]。在如今人们越
来越关心个人隐私安全的大背景下,如何在保证可用性的前提下引入合理的隐私保护机制也成为了有关推荐系统研究的热点问题。
当前,基于矩阵分解的协同过滤(MatrixFactoriza tionCollaborativeFiltering,MFCF)[3]是最为主流的推荐算法,该类算法从用户 物品评分矩阵中挖掘出潜在的用户特征向量及物品特征向量,并通过向量相似度预测用户对物品的评价。相比其他方法,MFCF方法能够提供更高的预测准确度、更快的计算效率,以及更高的可扩展性。
本文针对MFCF推荐系统中的隐私保护问题展开研究,提出一种基于分布式计算架构和梯度混淆的隐私矩阵分解算法,称之为DGCMF(DistributedGradientConfusionMatrixFactorzation)。与现有的隐私保护MFCF方法相比,DGCMF不仅可以防止用户评分和模型泄露,还可以防止用户“评价行为”是否存在这一信息的泄露,从而为用户隐私提供更强有力的保障。
1 相关工作
在先前的研究中,在推荐系统中增强隐私保护的方式主要分为以下三类:
1)混淆和扰动。该方式通过在用户数据中增加伪造值以达到隐藏真实用户数据的目的。文献[4-5
]中所提出的隐私保护推荐算法均基于该方式构建,使得用户可以对数据在本地进行加扰,从而对服务器隐藏真实的数据。但上述方法主要的问题在于:从安全性角度,上述加扰效果并未得到严格证明;从可用性角度上,上述方法在增强隐私保护的同时较大地牺牲了系统的推荐准确度。
2)差分隐私。差分隐私保护的本质也是通过在计算过程中引入特定分布的噪声以达到保护原始数据的效果。但与简单的混淆和扰动不同,差分隐私保护可以提供能被度量和证明的隐私保障。文献[6]首次将差分隐私保护的概念引入了推荐系统,随后多项研究在其基础上展开[7-11]。
3)同态加密。同态加密技术可以使得用户在不必解密的情况下对密文内容进行计算,被广泛应用于各类隐私保护场景中。文献[11-13]所设计的推荐系统均基于同态加密技术方案实现了隐私保护。使用同态加密最大的障碍在于其相对较高的计算开销。特别是当数据量较大时,效率和能耗成为限制其可用性的关键因素。
上述文献中的方法主要针对用户评分和推荐模型的保护。然而,它们共同缺乏的是对“存在性”的保护。也就是说,即便是无法得知用户的具体评分,服务器也依然可以在与用户的交互计算过程中知道用户对哪些物品进行了评价。利用这些信息,服务器仍然可以推测出用户的偏好、个人特征等隐私信息。与上述方法相比,本文方法除了能够实现对用户数据以及模型的保护外,也能够实现对用户评分“存在性”的保护。
与本文最为相似的工作来自文献[14],作者提出了名为SDMF的隐私保护矩阵分解方法。SDMF通过在梯度更新过程中引入随机响应机制实现对用户评分、模型、存在性的保护。然而,这种方法在梯度下降优化过程中造成梯度更新损失,降低了所生成模型的预测准确性。与之相比,DGCMF中的梯度混淆是无损的,因此既能够有效保护用户隐私,也能够保证系统的推荐准确性。
2 系统模型与问题描述
2.1 系统模型与假设
本文的系统模型如图1
所示。令用户集合为={u
,u
,…,u
},物品集合为V={v
,v
,…,v
}。每位用户都对V中的部分物品进行了评分。整个推荐系统根据用户们的不完全评分计算推荐模型,并为每一个用户对V中全部物品的评分生成预测值。基于此模型,假设:1)用户评分保存在客户端,且每一个用户只知道自己的评分;2)用户之间可以通过额外的安全信
道进行点对点匿名通信。
图1 系统模型
2.2 隐私保护需求
本文算法应满足如下隐私保护需求:
1)模型保护:
令为推荐系统生成的预测模型,
则任意用户和服务器都无法获知完整的,也无法通
过所持有的部分信息推断出的完整内容。
2)评分保护:在模型的计算过程中,服务器无法获知每个用户的历史评分。
318   
计算机应用与软件
2021年
3)存在性保护:在模型的计算过程中,服务器无法获知用户是否对某个物品作出评分。
3 算法设计
3.1 总体设计
本文算法实现了分布式架构下的贝叶斯概率矩阵分解。算法架构如图2所示,主要符号及其含义见表1
图2 算法框图表1 主要符号及含义
符号含义
用户集合与物品集合
W:||×k,wi用户隐藏因子矩阵,wi为W的第i行H:||×k,hj
物品隐藏因子矩阵,hj为H的第j
行R:||×||评分矩阵,rij为用户ui对物品vj的评分值
=(W,H)为求解的目标预测模型,wi
∈W为用户ui的隐藏因子向量,hj∈H为物品vj的隐藏因子向量。与一般的MF算法不同,本文算法的W和H分别由客户端和服务器端保存,并且每一个wi∈W都由其对应的用户ui保存。也就是说,参与模型运算的服务器和各个用户都只知道模型的一部分,且无法通过该部分推测出整个模型,从而实现了模型保护。
计算过程由初始化和迭代优化两部分组成。客户端和服务器端分别对W和H完成初始化后便进入迭代优化环节。本文算法采用了SGLD(StochasticGradi entLangevinDynamics)优化算法。SGLD所增加的高斯噪声为系统引入了差分隐私保障,能够有效防止模型泄露。
在迭代优化环节的每一轮迭代过程中,每一个用
户ui首先从服务器端下载更新后的H,之后根据自己的评分数据ri计算和w
i每一个hj(rij≠ )的更新梯度grad(wi)和grad(hj)。接着,ui利用grad(wi)对wi进行更新。对grad(hj)进行梯度混淆后将其发送至服务器端。服务器收到每一个用户发来的梯度更新信息后,将其聚合并最终更新H。
由于每轮迭代中,服务器只收到用户发来的物品隐藏因子向量梯度信息,从而防止了用户评分泄露。梯度混淆的加入进一步隐藏了梯度信息中用户和被评分物品的联系,实现了“存在性”保护。
3.2 梯度更新算法
对于所求的模型
=(W,H),若观察到的用户
评分数据为R,则矩阵分解问题可以转变为求解参数W、H的最大后验概率分布问题,即:
p(W,H|R,λr,Λw,Λh
)∝  p(R|W,H,λr)p(W|Λw)p(H|Λh
(1)式中:λr为全局正则化参数,Λw和Λh是基于Gamma分布生成的对角矩阵,用于隐藏因子向量wi和hj的正则化处理。采用正态分布假设,则式(
1)的对数形式为:
F(W,H)=lnp(R,λr,Λw,Λh
)=  lnp(R|W,H,λr)+lnp(W|Λw)+  lnp(H|Λh
)+C=  lnN(R|WHT,λ-1r)+lnN(W|0,Λ-1
w)+  lnN(H|0,Λ-1h)+C
(2)
式中:
C为常数;N表示正态分布。为了求得W和H的最大后验估计,本文采用SGLD优化算法进行迭代求解。具体而言,在第t
次迭代中: ^
wiF(wi,hj)=-eijwi+hjΛw(3) ^hi
F(wi,hj)=-eijhj+hjΛh(4)ηt=
η0
r(5)wi=wi+ηt ^
wiF(wi,hj)+(0,ηt,I)(6)hj=hj+ηt ^hj
F(wi,hj)+(0,ηt,I)(7)
式中:η0为初始学习速率;
t为迭代次数;γ为衰减因子;I为单位矩阵;eij=rij-wihTj。令gradui
(hj)表示由用户ui根据wi所计算出的hj的加扰梯度更新信息,则:
gradui(hj)=ηt ^wiF(wi,hj)+(0,ηt,I)(8)用户ui发送gradui
(hj)至服务器。由于服务器仅
第5期   
崔炜荣,等:推荐系统中的隐私保护矩阵分解算法研究
319
 得知梯度信息,因此防止了用户隐藏因子向量的泄露。
3.3 梯度混淆算法
采用上述架构,虽然在迭代优化过程中服务器仅能从客户端得到H的加扰梯度更新信息且无法从中推断出用户的隐藏因子向量,然而服务器依然可以根据这些信息获知用户对哪些物品进行了评价。例如当服务器收到来自用户ui的梯度更新信息gradui(hj)时,根据hj和物品vj的对应关系,可知用户ui一定对vj进行了评价。为了避免这种“存在性”用户信息泄露,本文基于安全求和思想设计了梯度混淆过程。
在梯度混淆的过程中,对于每一个计算出的梯度更新信息gradu(hj),用户u以一定概率选择将其值发送给随机选取的另一用户,并随后将其置零。收到gradu(hj)的用户u′将其与自身的gradu′(hj)相加。举例而言,假设用户u计算出的梯度值分别为gradu(hj1),gradu(hj2),…,gradu(hjq),SG为空集,则u依据算法1实施混淆。
算法1 梯度混淆
fort=j1tojq
据概率f选取gradu(ht)ifgradu(ht
)被选中then  SG←SG∪{gradu(ht)}  gradu(ht)←0endifend
for
经过上述的梯度混淆处理后,u将筛选出来的梯度更新值集合SG发送给随机选取的用户u′。收到SG后,对于每一个gradu(hj)∈SG,u′将其与自身的对应梯度更新值进行合并,即计算混淆梯度:
槇gradu′(hj)=gradu′(hj)+gradu(hj
)(9)
图3描述了这一个过程。其中行向量表示用户在第t
正则化一个五行五列的随机矩阵
次迭代过程中所计算并分解的梯度更新信息。值为0表示用户并未对hj进行过单类评价。曲线箭头表示以一定的概率选取并发送。以u2为例,在该轮迭代中,其根据概率fu2选取了梯度更新值gradu2(h1),并将其发送至随机选取的用户u1。同时,u1根据概率fu1选取了梯度更新值gradu1(h3),将其发送给u2。u3根据概率fu3选取了梯度更新值gradu3(h2),也将其发送给了u2。最终,u2生成混淆梯度(0,gradu3(h2),gradu2(h2)+gradu1(h3),0)。每轮迭代完成后,u2将混淆后的梯
度更新值发送至服务器。
图3 梯度混淆过程
在每轮迭代末,服务器对所收到的来自各个用户端的混淆梯度更新值进行求和平均,并更新对应的hj。以图3为例,假设针对物品隐藏因子向量h3,服务器收到分别来自u1、u2、u3的混淆梯度槇gradu1(h3)、槇gradu2(h3)、槇gradu3(h3),则服务器经过以下计算进行梯度聚合和参数更新:
槇grad(h3)=13∑3
i=1
槇gradui
(h3)(10)h3=h3+grad(h3
)(11)
由于13∑3
i=1槇gradui(h3)=13∑3
i=1
gradui
(h3),所以用户端的梯度混淆过程汇总没有增加额外的噪声,也没有减少应有的信息量,所以称之为无损的。
3.4 算法流程
基于分布式架构,本文算法由客户端算法client(u,t)和服务器端算法server两部分组成,流程分别如算法2和算法3所示。
算法2 client(u,t)
输入:Ri,η0,r,Λw,Λh。
输出:混淆后的梯度更新值GRAD。1. ift=0then初始化wi2. ift>0then3.  从服务器下载H4.  w-
←0
5.  count u←0//count u用来对值不为0的Rij进行计数6.  GRAD←0,SG←07.  ηt=
η0
r8.  forj=1to||:9.    ifR≠0then
10.     w-i=w-i+ηt ^
wiF(wi,hj)+(0,ηt,I)11.     count u←count u+
112.  GRAD[j]=GRAD[j]+ηt ^
hj
F(wi,hj)+(0,ηt,I)
320   
计算机应用与软件
2021年
13.    endif14.  endfor
15.  wi=wi+w-
count u
16.  生成概率参数f∈[0,1]17.  forj=1to||:18.    ifGRAD[j]≠0then
19.      根据概率f选取GRAD[j]20.      ifGRAD[j]被选中t
hen21.        SG[j]←GRAD[j],GRAD[j]←022.      endif23.    endif24.  endfor
25.  随机选取一个用户,向其发送(u,SG)26.  for每一个收到的来自其他用户的SG:27.    forj=1to||
:28.        GRAD[j]←GRAD[j]+SG[j]29.      endfor30.    endfor
31.  发送(u,GRAD)至服务器32. endif
算法2中,用户首先更新了学习速率(第7行);接着根据评分向量Rij、wi和H计算出wi的更新梯度和被评分物品对应的hj的更新梯度(第8至14行);之后更新wi(第15行)并进行梯度混淆(第16至29行);最后将经过混淆的梯度值发送给服务器(第31行)。
算法3 server
输入:
用户集合
及物品集合。输出:物品隐藏因子矩阵H。1.初始化H2.t←0
3.fori=1:
||4.  远程调用client(ui,t)5.endfor6.t←1
7.while没有收敛do:8.  H-←09.  C-
←0
//C-
用于对收到的用户梯度更新值进行计数
10.  fori=1:
||11.    远程调用client(ui,t)12.  endfor13.  whileTuredo:
14.    等待直到接收到(u,GRAD)15.    forj=1to||
:16.      H-[j]=H-[j]+GRAD[j]17.      C-
[j]←C-
[j]+1
18.    endfor
19.    if收到所有用户发来的(u,GRAD)then20.        break21.    endif21.  endwhile22.  forj=1to||
23.    H-[j]←H-[j]/C-
[j]
24.  endfor25.  H←H+H-
26.  t←t+127.endwhile
算法3中,服务器在初始化H之后,远程启动每个客户端的初始化过程(第1至5行)。之后进入迭代优化环节。在每轮迭代中,首先下发H并调用客户端的梯度更新方法(第10至12行)。待全部用户完成更新计算并回传物品隐藏因子向量梯度更新值后,对其进行聚合并完成H的更新(第13至25行)。
4 安全性分析
根据2.2节所述,本文算法应当满足模型、评分和存在性三方面的隐私保护需求。
4.1 模型保护
本文算法采用了分布式架构,W中的每一个用户隐藏因子向量都保存在对应的客户端。在模型的训练过程中,服务器在每轮迭代中仅能从客户端接收到槇gradu(h)。此外,根据文献[15]的证明,SGLD优化算法中的加扰机制使其能够提供差分隐私保障。因此,服务器无法从槇gradu(
h)中推导出其对应的用户隐藏因子向量w。对于每个用户而言,虽然其能够获得H的完整内容,但由于其无法获知保存在其他客户端的w,因此无法推导出W的完整内容。根据以上分析,
令为推荐系统生成的预测模型,则任意用户和服务器都
无法获知完整的,也无法通过所持有的部分信息推
断出
的完整内容。
4.2 评分保护
与采用集中式架构的MF算法不同,在本文中,作为最为重要的隐私数据的用户历史评分并没有被服务器所收集,而是分别被保存在各个客户端。在迭代计算过程中,用户ui的历史评分ri只参与了预测误差eij的计算,且服务器无法从接收到的混淆梯度更新信息中推导出ri
。根据以上分析,在模型的计算过程中,服

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。