留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

满足差分隐私保护的矩阵分解推荐算法

王永 冉珣 尹恩民 王利

王永, 冉珣, 尹恩民, 王利. 满足差分隐私保护的矩阵分解推荐算法[J]. 电子科技大学学报, 2021, 50(3): 405-413. doi: 10.12178/1001-0548.2020359
引用本文: 王永, 冉珣, 尹恩民, 王利. 满足差分隐私保护的矩阵分解推荐算法[J]. 电子科技大学学报, 2021, 50(3): 405-413. doi: 10.12178/1001-0548.2020359
WANG Yong, RAN Xun, YIN En-ming, WANG Li. Matrix Factorization Recommendation Algorithm for Differential Privacy Protection[J]. Journal of University of Electronic Science and Technology of China, 2021, 50(3): 405-413. doi: 10.12178/1001-0548.2020359
Citation: WANG Yong, RAN Xun, YIN En-ming, WANG Li. Matrix Factorization Recommendation Algorithm for Differential Privacy Protection[J]. Journal of University of Electronic Science and Technology of China, 2021, 50(3): 405-413. doi: 10.12178/1001-0548.2020359

满足差分隐私保护的矩阵分解推荐算法

doi: 10.12178/1001-0548.2020359
基金项目: 国家自然科学基金(71901045);教育部人文社科规划(20YJAZH102);重庆市教委科技基金(KJQN201900649)
详细信息
    作者简介:

    王永(1977-),男,博士,教授,主要从事数据挖掘、隐私保护和信息安全等方面的研究. E-mail: wangyong1@cqupt.edu.cn

  • 中图分类号: TP309.2

Matrix Factorization Recommendation Algorithm for Differential Privacy Protection

  • 摘要: 协同过滤推荐算法在工作过程中需要分析和使用大量的用户数据,存在个人隐私泄露的安全隐患。现有的大多数在推荐系统中实施隐私保护的方法,容易引入过大噪声,导致推荐质量下降。针对此问题,该文提出一种满足差分隐私保护的矩阵分解推荐算法。该算法首先将矩阵分解问题转化为两个交替进行的用户隐因子和项目隐因子优化问题,然后采用遗传算法对这两个优化问题进行求解。将增强指数机制融入到遗传算法的个体选择中,并基于寻找重要隐因子的思想设计了遗传算法的变异过程。理论分析和实验结果显示,该算法可以为用户数据提供良好的差分隐私保护,同时有效保证了推荐的准确性,在推荐系统中具有良好的应用价值。
  • 图  1  Movielens100K数据集上的RMSE测试结果

    图  2  YahooMusic数据集上的RMSE测试结果

    表  1  实验数据集统计属性

    属性名Movielens100KYahooMusic
    用户数9438089
    电影数16821000
    密度/%6.31.8
    评分均值3.52992.6321
    评分方差1.26712.3821
    用户平均评分数10633
    项目平均受评数59.4270.1
    下载: 导出CSV

    表  2  实验算法汇总

    算法名称描述
    PGMF本文算法
    ALSBase[17]不考虑差分隐私保护,运用交替最小二乘法(alternating least squares, ALS)求解矩阵分解的算法
    DPSGD[14]应用随机梯度下降法(stochastic gradient descent, SGD)
    求解矩阵分解,对梯度进行扰动,实施隐私保护
    DPSGDInput[13]对原始评分进行扰动之后运用SGD求解矩阵分解的算法
    DPALS[14]对ALS求解的结果进行扰动,实施隐私保护的算法
    DPALSObj[19]对ALS的目标函数进行扰动,实施隐私保护的算法
    下载: 导出CSV
  • [1] KENTHAPADI K, MIRONOV I, THAKURTA A G. Privacy-preserving data mining in industry[C]//Proceedings of the 12th ACM International Conference on Web Search and Data Mining. [S.l.]: ACM, 2019: 840-841.
    [2] CALANDRINO J A, KILZER A, NARAYANAN A, et al. " You might also like: " Privacy risks of collaborative filtering[C]//2011 IEEE Symposium on Security and Privacy. [S.l.]: IEEE, 2011: 231-246.
    [3] FREDRIKSON M, JHA S, RISTENPART T. Model inversion attacks that exploit confidence information and basic countermeasures[C]//Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security. [S.l.]: ACM, 2015: 1322-1333.
    [4] WEINSBERG U, BHAGAT S, IOANNIDIS S, et al. BlurMe: Inferring and obfuscating user gender based on ratings[C]//Proceedings of the 6th ACM Conference on Recommender Systems. [S.l.]: ACM, 2012: 195-202.
    [5] NIKOLAENKO V, IOANNIDIS S, WEINSBERG U, et al. Privacy-preserving matrix factorization[C]//Proceedings of the 2013 ACM SIGSAC Conference on Computer & Communications Security. [S.l.]: ACM, 2013: 801-812.
    [6] DWORK C. Differential privacy[C]//Proceedings of the 33rd Int Colloquium on Automata, Languages and Programming. Binlin: Springer, 2006: 1-12.
    [7] MCSHERRY F, MIRONOV I. Differentially private recommender systems: Building privacy into the net[C]// Proceedings of the 2009 ACM SIGKDD Internationl Conference on Knowledge Discovery and Data Mining. New York: ACM, 2009: 627-636.
    [8] ZHU Tian-qing, REN Yong-li, ZHOU Wan-lei, et al. An effective privacy preserving algorithm for neighborhood-based collaborative filtering[J]. Future Generation Computer Systems, 2014, 36: 142-155. doi:  10.1016/j.future.2013.07.019
    [9] YANG Jing, LI Xiao-ye, SUN Zhen-long, et al. A differential privacy framework for collaborative filtering[J]. Mathematical Problems in Engineering, 2019, DOI:  10.1155/2019/1460234.
    [10] HUA Jing-yu, XIA Chang, ZHONG Sheng. Differential private matrix factorization[C]//Proceedings of the 24th International Conference on Artificial Intelligence. Palo Alto: AAAI Press, 2015: 1763-1770.
    [11] ZHANG Shun, LIU Lai-xiang, CHEN Zhi-li, et al. Probabilistic matrix factorization with personalized differential privacy[J]. Knowledge-Based Systems, 2019, 183: 104864. doi:  10.1016/j.knosys.2019.07.035
    [12] ZHANG F, LEE V E, CHOO K K R. Jo-DPMF: Differentially private matrix factorization learming through joint optimization[J]. Information Sciences, 2018, 467: 271-281. doi:  10.1016/j.ins.2018.07.070
    [13] FRIEDMAN A, BERKOVSKY S, KAAFAR M A. A differential privacy framework for matrix factorization recommender systems[J]. User Modeling and User-Adapted Interaction, 2016, 26(5): 1-34.
    [14] BERLIOZ A, FRIEDMAN A, KAAFAR M A, et al. Applying differential privacy to matrix factorization[C]// Proceedings of the 9th ACM Conference on Recommender Systems. [S.l.]: ACM, 2015: 107-114.
    [15] 鲜征征, 李启良, 黄晓宇, 等. 基于差分隐私和SVD++的协同过滤算法[J]. 控制与决策, 2019, 34(1): 43-54.

    XIAN Zheng-zheng, LI Qi-liang, HUANG Xiao-yu, et al. Collaborative filtering via SVD++ with differential privacy[J]. Control and Decision, 2019, 34(1): 43-54.
    [16] ZHANG Jun, XIAO Xiao-kui, YANG yin, et al. PrivGene: Differentially private model fitting using genetic algorithms[C]//Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data. [S.l.]: ACM, 2013: 665-676.
    [17] KOREN Y, BELL R, VOLINSKY C. Matrix factorization techniques for recommender systems[J]. Computer, 2009, 42(8): 30-37. doi:  10.1109/MC.2009.263
    [18] MCSHERRY F, TALWAR K. Mechanism design via differential privacy[C]//The 48th Annual IEEE Symposium on Foundations of Computer Science (FOCS'07). [S.l.]: IEEE, 2007: 94-103.
    [19] 鲜征征, 李启良, 李改, 等. 差分隐私在协同过滤算法中的应用研究[J]. 计算机科学, 2017(5): 81-88. doi:  10.11896/j.issn.1002-137X.2017.05.015

    XIAN Zheng-zheng, LI Qi-liang, LI Gai, et al. Research on application of differential privacy in collaborative filtering algorithms[J]. Computer Science, 2017(5): 81-88. doi:  10.11896/j.issn.1002-137X.2017.05.015
  • [1] 蒋伟, 秦志光.  耦合社会信任信息的矩阵分解协同过滤模型 . 电子科技大学学报, 2019, 48(3): 420-426. doi: 10.3969/j.issn.1001-0548.2019.03.018
    [2] 张海霞, 吕振, 张传亭, 袁东风.  一种引入加权异构信息的改进协同过滤推荐算法 . 电子科技大学学报, 2018, 47(1): 112-116, 152. doi: 10.3969/j.issn.1001-0548.2018.01.017
    [3] 张民, 贾海涛, 沈震.  基于遗传算法改进的粒子滤波重采样模型 . 电子科技大学学报, 2015, 44(3): 344-349. doi: 10.3969/j.issn.1001-0548.2015.03.005
    [4] 薛羽, 庄毅, 朱浩, 张友益礻禹.  求解协同干扰问题的高效免疫遗传算法 . 电子科技大学学报, 2013, 42(3): 452-458. doi: 10.3969/j.issn.1001-0548.2013.03.026
    [5] 郑世明, 高志年, 韦伟, 苗壮, 邵荣明.  基于云模型的网格任务调度遗传算法研究 . 电子科技大学学报, 2012, 41(6): 911-915. doi: 10.3969/j.issn.1001-0548.2012.06.018
    [6] 刘旭, 许宗泽.  应用Khatri-Rao积分解的DS-CDMA盲多用户检测 . 电子科技大学学报, 2011, 40(1): 20-25. doi: 10.3969/j.issn.1001-0548.2011.01.004
    [7] 王江安, 庄奕琪, 周清军.  遗传算法抑制BOC(1,1)信号多径研究 . 电子科技大学学报, 2010, 39(1): 45-49. doi: 10.3969/j.issn.1001-0548.2010.01.011
    [8] 王瑞平, 万柏坤, 高上凯.  使用遗传算法的乳腺微钙化点特征优化 . 电子科技大学学报, 2007, 36(1): 137-139,153.
    [9] 李向阳, 张亚非.  一种基于遗传算法的语义标注 . 电子科技大学学报, 2007, 36(1): 86-89.
    [10] 吴传信, 倪明放, 陈鸣.  路由选择的一种新遗传算法 . 电子科技大学学报, 2006, 35(5): 744-747.
    [11] 沈艳, 郭兵, 古天祥.  粒子群优化算法及其与遗传算法的比较 . 电子科技大学学报, 2005, 34(5): 696-699.
    [12] 王波, 黄迪明.  遗传神经网络在邮件过滤器中的应用 . 电子科技大学学报, 2005, 34(4): 505-508.
    [13] 黄羽, 黄迪明, 何险峰, 武明.  遗传算法在入侵检测中的应用 . 电子科技大学学报, 2003, 32(6): 679-682.
    [14] 王忠, 柴贺军, 刘浩吾.  关于进化遗传算法的几点改进 . 电子科技大学学报, 2002, 31(1): 76-79.
    [15] 王海枚, 游志胜.  基于遗传算法与模糊控制的建模方法 . 电子科技大学学报, 2002, 31(3): 266-269.
    [16] 张宇, 郭晶, 周激流.  动态变异遗传算法 . 电子科技大学学报, 2002, 31(3): 234-239.
    [17] 饶克谨, 苟益.  电路模拟吸收体的遗传算法设计 . 电子科技大学学报, 2000, 29(1): 54-60.
    [18] 王勇, 陈光.  面向时滞测试生成的改进遗传算法 . 电子科技大学学报, 1999, 28(2): 157-161.
    [19] 吴斌, 吴坚, 涂序彦.  快速遗传算法研究 . 电子科技大学学报, 1999, 28(1): 49-53.
    [20] 潘中良, 陈光.  测试图形生成的遗传算法研究 . 电子科技大学学报, 1997, 26(5): 511-514.
  • 加载中
图(2) / 表(2)
计量
  • 文章访问数:  4449
  • HTML全文浏览量:  1655
  • PDF下载量:  57
  • 被引次数: 0
出版历程
  • 收稿日期:  2020-09-23
  • 修回日期:  2021-03-21
  • 网络出版日期:  2021-05-28
  • 刊出日期:  2021-05-28

满足差分隐私保护的矩阵分解推荐算法

doi: 10.12178/1001-0548.2020359
    基金项目:  国家自然科学基金(71901045);教育部人文社科规划(20YJAZH102);重庆市教委科技基金(KJQN201900649)
    作者简介:

    王永(1977-),男,博士,教授,主要从事数据挖掘、隐私保护和信息安全等方面的研究. E-mail: wangyong1@cqupt.edu.cn

  • 中图分类号: TP309.2

摘要: 协同过滤推荐算法在工作过程中需要分析和使用大量的用户数据,存在个人隐私泄露的安全隐患。现有的大多数在推荐系统中实施隐私保护的方法,容易引入过大噪声,导致推荐质量下降。针对此问题,该文提出一种满足差分隐私保护的矩阵分解推荐算法。该算法首先将矩阵分解问题转化为两个交替进行的用户隐因子和项目隐因子优化问题,然后采用遗传算法对这两个优化问题进行求解。将增强指数机制融入到遗传算法的个体选择中,并基于寻找重要隐因子的思想设计了遗传算法的变异过程。理论分析和实验结果显示,该算法可以为用户数据提供良好的差分隐私保护,同时有效保证了推荐的准确性,在推荐系统中具有良好的应用价值。

English Abstract

王永, 冉珣, 尹恩民, 王利. 满足差分隐私保护的矩阵分解推荐算法[J]. 电子科技大学学报, 2021, 50(3): 405-413. doi: 10.12178/1001-0548.2020359
引用本文: 王永, 冉珣, 尹恩民, 王利. 满足差分隐私保护的矩阵分解推荐算法[J]. 电子科技大学学报, 2021, 50(3): 405-413. doi: 10.12178/1001-0548.2020359
WANG Yong, RAN Xun, YIN En-ming, WANG Li. Matrix Factorization Recommendation Algorithm for Differential Privacy Protection[J]. Journal of University of Electronic Science and Technology of China, 2021, 50(3): 405-413. doi: 10.12178/1001-0548.2020359
Citation: WANG Yong, RAN Xun, YIN En-ming, WANG Li. Matrix Factorization Recommendation Algorithm for Differential Privacy Protection[J]. Journal of University of Electronic Science and Technology of China, 2021, 50(3): 405-413. doi: 10.12178/1001-0548.2020359
  • 推荐系统是当前互联网商家为用户提供个性化信息服务的主要技术手段之一。协同过滤作为一类主流的推荐算法,它利用用户对项目的历史评价信息来预测用户对未知项目的好恶并据此进行推荐。协同过滤技术需要使用大量用户数据,存在用户个人隐私泄漏的风险[1]。在基于邻居的协同过滤技术中,攻击者可以通过追踪邻居用户的推荐列表变化,推测目标用户对项目的评分[2];在基于矩阵分解的协同过滤技术中,由于分解所得的隐因子矩阵携带数据信息,可能被攻击者利用,通过重构攻击等方式推断出用户的评分数据[3-4]。遭泄露的评分可能被进一步用于推测出用户的性别、年龄等信息,侵犯用户隐私[5]。如果用户出于安全考虑拒绝提供部分信息,则可能会导致推荐系统性能下降,甚至无法提供个性化服务。因此,非常有必要在推荐系统中考虑对用户信息进行隐私保护。

    文献[6]提出了差分隐私的定义,为在推荐系统中实施有效隐私保护提供了良好的理论基础。文献[7]将差分隐私保护引入协同过滤技术中,通过扰动项目协方差矩阵实现差分隐私保护。文献[8]将差分隐私应用到基于邻居的协同过滤推荐算法中,通过在邻居选择和相似性度量过程中加入噪音,实现隐私保护。文献[9]提出了两种分别对原始评分和用户相似性度量过程添加Laplace噪音的隐私保护方案。

    针对基于矩阵分解的推荐算法,文献[10]在考虑推荐系统不可信的情况下,扰动矩阵分解算法的目标函数,将实施了隐私保护的项目隐因子矩阵用于推荐任务。文献[11]假设用户有不同程度的隐私保护需求,基于概率矩阵分解提出一种个性化的差分隐私推荐算法。文献[12]通过对目标函数进行扰动,提出了基于联合优化的隐私矩阵分解方案。文献[13-14]将差分隐私保护应用到矩阵分解推荐算法中,设计了3种添加噪音的方式,即分别在输入信息中、训练过程中和输出信息中添加噪音。依据这种思想,文献[15]在SVD++模型上设计了3种差分隐私保护模型。目前的工作大多通过对矩阵分解过程的各种结果(如梯度、隐因子矩阵、目标函数)加入噪声项以实现差分隐私保护,这类方案存在如下问题:1) 噪声较大。较高的隐私保护需求或敏感度会使噪声分布的方差增大,导致加入过大的噪声;2)不具通用性。加噪方法可能导致最终解在有约束问题上不可行;3)没有考虑隐因子的重要程度,影响了算法求解效率。

    针对上述问题,本文将遗传算法引入矩阵分解任务,使得差分隐私保护可以通过扰动候选解的选择过程实现,而不依赖于上述加入噪声的方法[16]。此外,遗传算法中解的搜索将在可行域内进行,易于延伸到带约束的矩阵分解问题。然而,直接应用遗传算法存在如下困难:首先,矩阵分解属非凸问题且参数量大,求解难度高;其次,如何减小隐私保护机制引入的扰动也是重要挑战。为解决上述问题,本文改进了遗传算法的关键步骤,提出一种满足差分隐私保护的矩阵分解方案。本文的主要贡献为:1)将矩阵分解转化为两个交替进行的用户隐因子和项目隐因子优化问题,有效克服了求解过程中存在的解空间高维性和优化中的非凸性问题。2)考虑用户或项目对隐因子的不同偏重,重新设计了遗传算法的变异过程,提升解的搜索效率;在此基础上利用增强指数机制减轻了算法受扰动程度,更好地实现了隐私保护水平和算法效用之间的平衡。

    • 矩阵分解是隐语义推荐模型的典型算法,它将用户和项目均映射到相同的d维隐因子空间中[17]。将用户u对应的隐因子向量表示为${{{P}}_u} \in {\mathbb{R}^d}$,将由所有用户的隐因子向量构成的矩阵表示为${{P}}$;将项目i的隐因子向量表示为${{{Q}}_i} \in {\mathbb{R}^d}$,将所有项目的隐因子向量构成的矩阵表示为${{Q}}$;则矩阵分解算法就是求解满足式(1)的最佳${{P}}$${{Q}}$

      $$\min f\left( {{{{P}},{{Q}}}} \right) = \min \sum\limits_{\left( {u,i} \right) \in {\cal{K}}} {{{\left( {{r_{ui}} - {{P}}_u^{\rm{T}}{{{Q}}_i}} \right)}^2}} $$ (1)

      式中,rui为用户评分矩阵${{r}}$中用户u对项目i的评分;${\cal{K}}$为观测到的评分数据对应的用户−项目对$\left( {u,i} \right)$集合。假设${{r}}$中包含的用户数为m,项目数为n,则有${{r}} \in {\mathbb{R}^{m \times n}},{{Q}} \in {\mathbb{R}^{n \times d}},{{P}} \in {\mathbb{R}^{m \times d}}$,其中$d \ll m,n$

    • 差分隐私(differential privacy, DP)是一种新型隐私保护框架,通过添加可控的噪声到数据的统计结果中,保证隐私不被泄露且数据具有可用性。

      定义1 差分隐私(DP)[6]:对于任意的邻近数据集D$ D' $至多相差一条数据,且随机算法A所有可能的输出$O \subseteq {\rm{Range}}\left( A \right)$,当且仅当满足不等式(2)时,A满足ε-差分隐私:

      $${\rm{Pr}}\left[ {A\left( D \right) \in O} \right] \leqslant {{\rm{e}}^\varepsilon }\Pr \left[ {A\left( {D'} \right) \in O} \right]$$ (2)

      式中,ε为隐私预算,当ε值越小时,隐私保护的需求水平越高。

    • 指数机制[18]是一种实现差分隐私保护的技术手段,其定义如下。

      定义2 指数机制设随机算法M的输入为数据集D,输出为$\omega \in \varOmega $。函数$Q\left( {D,\omega } \right) \to \mathbb{R}$$\omega $的可用性函数。若算法M以正比于${\rm{exp}}\left( {\varepsilon Q\left( {D,\omega } \right)}/ \varDelta \right)$的概率从$\varOmega $中选择并输出$\omega $,则算法M提供ε-差分隐私保护,称算法M为指数机制。其中,$\varDelta $为可用性函数$Q\left( {D,\omega } \right)$的阻尼因子,也称$Q\left( {D,\omega } \right)$的敏感度,表示单个数据的差异对$Q\left( {D,\omega } \right)$造成的最大影响。假设$ D' $D为邻近数据集,$\varDelta $满足不等式:

      $$\varDelta \geqslant 2{\max _{\omega \in \varOmega ,D,D'}}Q(D,\omega ) - Q\left( {D',\omega } \right)$$ (3)
    • 文献[16]针对模型拟合问题设计了增强指数机制,与指数机制相比,增强指数机制的应用限于可用性函数,具有特定形式:

      $$f\left( {D,\omega } \right) = h\left( \omega \right) + \sum\limits_{t \in D} {q\left( {t,\omega } \right)} $$ (4)

      式中,D是包含了n个元组的数据集;${\cal{T}}$是任意元组t的取值范围;$q\left( {t,\omega } \right)$为元组拟合函数,表示模型对D中单个元组t的拟合程度;$h\left( \omega \right)$是独立于数据集D的函数。基于此可用性函数,增强指数机制的定义如下。

      定义3 增强指数机制(enhanced exponential mechanism, EEM):设随机算法M的输入为数据集D,输出为$\omega \in \varOmega $。算法M以正比于${\rm{exp}}\left( {\varepsilon f\left( {D,\omega } \right)}/ \varDelta \right)$的概率从$\varOmega $中选择并输出$\omega $,其中$f\left( {D,\omega } \right)$满足式(4)且$\varDelta $满足不等式:

      $$\varDelta \geqslant \min \left\{ \begin{array}{l} 2{\max\limits _{t,t' \in {\cal{T}},\omega \in \varOmega }}q(t,\omega ) - q\left( {t',\omega } \right), \\ 2{\max\limits _{t \in {\cal{T}},\omega ,\omega ' \in \varOmega }}q(t,\omega ) - q\left( {t,\omega '} \right) \end{array} \right\}$$ (5)

      那么算法M提供ε-差分隐私保护,称算法M为增强指数机制。

      从式(5)可知增强指数机制与标准指数机制之间的区别是前者的阻尼因子$\varDelta $考虑了$q(t,\omega )$$q\left( {t,\omega '} \right)$之间的最大差异,这比较适合候选解集合中解之间变化程度比较小的情况,原因是此时$\max\limits_{t \in {\cal{T}},\omega ,\omega ' \in \varOmega } q $$ (t,\omega ) - q\left( {t,\omega '} \right)$可能取得较小值。本文提出的隐私保护方案将利用这一特点改善算法效用。

    • 本文算法围绕推荐系统的评分矩阵分解展开,将隐因子矩阵${{P}}$${{Q}}$的求解过程转化为两个交替进行的优化过程。在优化过程中使用遗传算法求解,并在求解过程中引入增强指数机制,进而使矩阵分解过程满足差分隐私保护。本文算法的总体流程如下:

      1)为提高评分预测准确性,对用户评分矩阵r进行预处理,即设边界参数为B,将评分转化到$\left[ { - B,B} \right]$的范围,得到新的用户评分矩阵${{R}}$。然后,对矩阵${{R}}$进行隐因子分解,即:

      $${{{P}},{{Q}}} = \mathop {\arg \min }\limits_{{{{P}},{{Q}}}} {\sum\limits_{\left( {u,i} \right) \in {\cal{K}}} {\left( {{R_{ui}} - {{P}}_u^{\rm{T}}{{{Q}}_i}} \right)} ^2}$$ (6)

      式中,RuiR中用户u对项目i的真实评分。隐因子分解的目标是找到使预测评分与真实评分误差平方和最小的${{P}}$${{Q}}$矩阵。

      2) 将式(6)的目标问题转换成两类特征求解任务:1)求解用户的隐因子向量;2)求解项目的隐因子向量。即在求解${{{P}}_u}$时,将矩阵${{Q}}$看作常数,构建目标函数:

      $$f_{{Q}}^u\left( {{D_u},{{{P}}_u}} \right) = - \sum\limits_{i \in {I_u}} {{{\left( {{R_{ui}} - {{P}}_u^{\rm{T}}{{{Q}}_i}} \right)}^2} = } \sum\limits_{t \in {D_u}} {q\left( {t,{{{P}}_u}} \right)} $$ (7)

      式中,$q\left( {t,{{{P}}_u}} \right) = - {\left( {{R_{ui}} - {{P}}_u^{\rm{T}}{{{Q}}_i}} \right)^2}$是针对单个元组$t = $$ \left( {{{{Q}}_{{i}}},{R_{ui}}} \right)$的元组拟合函数,它表征在单个评分上的预测效果;${{{Q}}_i} = \left( {{Q_{i1}},{Q_{i2}}, \cdots ,{Q_{id}}} \right)$表示项目i的隐因子向量;${D_u} = \left\{ {\left( {{{{Q}}_i},{R_{ui}}} \right)|i \in {I_u}} \right\}$是关于用户u的二元组集合,Iu为用户u评价过的项目集合。为保障评分预测的准确性,对隐因子${{{Q}}_i}$设置上下界:$\left| {{Q_{ik}}} \right| \leqslant 1$$k \in \left\{ {1,2, \cdots ,d} \right\}$

      同理,在求解${{{Q}}_i}$时,保持${{P}}$矩阵不变,构建目标函数:

      $$f_{{P}}^i\left( {{{\rm{D}}_i},{{{Q}}_i}} \right) = - \sum\limits_{u \in {U_i}} {{{\left( {{R_{ui}} - {{P}}_u^{\rm{T}}{{{Q}}_i}} \right)}^2} = } \sum\limits_{t \in {D_i}} {q\left( {t,{{{Q}}_i}} \right)} $$ (8)

      式中,$q\left( {t,{{{Q}}_i}} \right) = - {\left( {{R_{ui}} - {{P}}_u^{\rm{T}}{{{Q}}_i}} \right)^2}$$t = \left( {{{{P}}_u},{R_{ui}}} \right)$${{{P}}_u} = $$ \left( {P_{u1}},{P_{u2}},\cdots ,{P_{ud}} \right)$为用户u的隐因子向量;${D_i} = $$ \left\{ {\left( {{{{P}}_u},{R_{ui}}} \right)|u \in {U_i}} \right\}$是关于项目i的二元组集合, ${U_i}$为评价过项目i的用户集合。对隐因子${{{P}}_u}$设置上下界:$\left| {{P_{uk}}} \right| \leqslant 1$$k \in \left\{ {1,2, \cdots \cdots ,d} \right\}$

      3)首先保持矩阵Q不变,使用2.2节设计的隐私遗传算法(APrivGene)为每个用户求解式(7)所示的优化问题,得到对应的用户隐因子,更新矩阵P。然后,保持矩阵P不变,同样使用2.2节设计的隐私遗传算法为每个项目求解式(8)所示的优化问题,得到对应的项目隐因子,更新矩阵Q。交替重复上述过程,持续优化PQ矩阵,直至达到最大迭代次数T

      上述隐私遗传矩阵分解算法的伪代码如算法1所示,其中改进的隐私遗传算法APriveGene将在2.2节中进行详细说明。

      算法1 隐私遗传矩阵分解算法(PGMF)

      输入:用户评分矩阵r,用户集合Users,项目集合Items,迭代次数T

      输出:P, Q

      r矩阵做预处理得同型矩阵R,建立优化问题如式(6);

      for t = 1 to T

        for u in Users

        构建目标函数$f_Q^u$

        ${D_u} = \left\{ {\left( {{{{Q}}_i},{R_{ui}}} \right)|i \in {I_u}} \right\}$ //获取用户二元组集;

        ${{{P}}_u} = {\rm{APrivGene}} \left( {{D_u},f_Q^u} \right)$ //求解用户隐因子;

        end for

        for i in Items

        构建子目标函数$f_{{P}}^i$

        ${D_i} = \left\{ {\left( {{{{P}}_u},{R_{ui}}} \right)|u \in {U_i}} \right\}$ //获取项目二元组集;

        ${{{Q}}_{{i}}} = {\rm{APrivGene}} \left( {{D_i},f_{{P}}^i} \right)$ //求解项目隐因子;

        end for

      end for

      return P, Q

    • 本算法对文献[16]中的隐私遗传算法进行了改良,提出调整的隐私遗传算法(adjusted private genetic algorithm, APrivGene)。使用APrivGene算法对式(7)和式(8)所示的优化问题进行求解,在选择阶段引入增强指数机制,实施对矩阵分解过程的隐私保护。按照执行顺序、从初始化、选择和变异3个方面介绍APrivGene算法。

      初始化阶段:设置包括ε在内的各个控制参数。然后,随机生成ld维的向量作为初始候选解集$\varOmega $,计算$\varOmega $中每个解的目标函数值$f\left( {D,{{\omega }}} \right)$作为遗传算法的适应度值。

      选择阶段:以$f\left( {D,{{\omega }}} \right)$为可用性函数,使用$\varepsilon /{\rm{2}}TG$作为选择操作的隐私预算,应用增强指数机制EEM以正比于${\rm{exp}}\left( {\varepsilon f\left( {D,{{\omega }}} \right)/{\rm{2}}TG\varDelta } \right)$的概率从$\varOmega $中挑选出${{\omega }}$。为了有效减轻选择阶段引入的扰动,只选出单个个体进行后续操作,之后将$\varOmega $置空,准备接纳新解。

      变异阶段:为避免交叉操作造成敏感度过大,只使用了变异操作。为了改善寻优效率,采用全局搜索效率较高的柯西变异算子生成变异扰动,即从标准柯西分布$C\left( {0,1} \right)$中生成随机扰动。然后,以寻找重要程度最高的隐因子为目的,让变异操作对各个隐因子进行变化,且每次只在一个维度k上搜索。由于用户或项目对某隐因子的偏好可分为正负两类,对单个隐因子的扰动对应地被设计为正负两个方向。对每个维度进行上述变异,每次变异生成两个新解,加入$\varOmega $,最后形成新的候选解集。

      生成新集合之后,为逐步减小搜索范围提高寻优效率,使用衰减因子$\beta $缩减变异步长$\eta $。然后,返回选择环节,进入下一轮循环。当达到最大迭代次数G时,使用EEM方式选出最终解${{{\omega }}^{*}}$

      上述改进的隐私遗传算法的伪代码如算法2所示。

      算法2 改进的隐私遗传算法(APrivGene)

      输入:$D$,即二元组集合${D_u}$${D_i}$$f$,即目标函数$f_Q^u$$f_P^i$

      输出:隐因子向量${{{\omega }}^{*}} = \left( {{\omega _1},{\omega _2}, \cdots ,{\omega _d}} \right)$

      初始化算法中的控制参数:设置隐因子个数d,隐私预算ε,变异步长$\eta $,衰减因子$\beta < 1$,最大迭代次数G,候选解集$\varOmega $的大小l

      随机生成初始候选解集$\varOmega $

      for g = 1 to G − 1 do

       对每个${{\omega }} \in \varOmega $,计算$f\left( {D,{{\omega }}} \right)$

       ${{\omega }} = {\rm{EEM}}_f^e\left( D \right)$ //使用增强指数机制选择个体;

       将$\varOmega $置空;

       for k = 1 to d do

        $x = C\left( {0,1} \right)$ //按标准柯西分布抽取随机噪声;

        ${{{v}}_1} = \left( {{\omega _1},{\omega _2}, \cdots ,{\omega _k} + \eta x, \cdots, {\omega _d}} \right)$//正方向变异;

        ${{{v}}_2} = \left( {{\omega _1},{\omega _2}, \cdots ,{\omega _k} - \eta x, \cdots, {\omega _d}} \right)$//负方向变异;

        $\varOmega = \varOmega \cup \left\{ {{{{v}}_1},{{{v}}_2}} \right\}$

       end for

      $\eta = \eta \beta$

      end for

      对每个${{\omega }} \in \varOmega $,计算$f\left( {D,{{\omega }}} \right)$

      ${{{\omega }}^{*}} = {\rm{EEM}}_f^e\left( D \right)$

      return ${{{\omega }}^{*}}$

      在算法2中,为了发挥增强指数机制的作用,在每次迭代中需要根据当前候选解,求解增强指数机制中的阻尼因子。求解过程如2.3节所示。

    • 在求解隐因子向量时,根据候选集合中个体的适应值$f\left( {D,\omega } \right)$和隐私预算ε,EEM将按照如下的概率输出用户隐因子向量和项目隐因子向量:

      $$ \begin{array}{l} {\rm{Pr}}\left[ {{\rm{EEM}}_f^\varepsilon \left( D \right) = {{{P}}_u}} \right] \propto {\rm{exp}}\left( {\varepsilon f_Q^u\left( {{D_u},{{{P}}_u}} \right)/2TG{\varDelta P_{u}}} \right)\\ {\rm{Pr}}\left[ {{\rm{EEM}}_f^\varepsilon \left( D \right) = {{{Q}}_i}} \right] \propto {\rm{exp}}\left( {\varepsilon f_P^i\left( {{D_i},{{{Q}}_i}} \right)/2TG{\varDelta _{Qi}}} \right) \end{array} $$

      数据集${D_u}$${D_i}$中的元组td+1个属性,其中预处理后的评分数据${R_{ui}}$$\left[ { - B,B} \right]$之间,$\left| {{P_{uk}}} \right| \leqslant 1$$\left| {{Q_{ik}}} \right| \leqslant 1$$k \in \left\{ {1,2, \cdots ,d} \right\}$,所以元组t的取值范围${\cal{T}} = \left[ { - B,B} \right] \times {\left[ { - 1,1} \right]^d}$。设${\varDelta _{{P_u}}}$为求解用户隐因子向量时的阻尼因子,${\varDelta _{{Q_i}}}$为求解项目隐因子向量时的阻尼因子,则根据增强指数机制的定义可得:

      $${\varDelta _{Pu}} \geqslant \min \left\{ \begin{array}{l} {\varDelta _1} = 2\mathop {\max }\limits_{t,t' \in {\cal{T}},\;{P_u} \in \varOmega } q\left( {t,{{{P}}_u}} \right) - q\left( {t',{{{P}}_u}} \right), \\ {\varDelta _2} = 2\mathop {\max }\limits_{t \in {\cal{T}},\;{P_u},{{P_u}^\prime} \in \varOmega } q\left( {t,{{{P}}_u}} \right) - q\left( {t,{{{P}_u}}^\prime} \right) \end{array} \right\}$$ (9)
      $${\varDelta _{Qi}} \geqslant \min \left\{ \begin{array}{l} {\varDelta _1} = 2\mathop {\max }\limits_{t,t' \in {\cal{T}},\;{Q_i} \in \varOmega } q\left( {t,{{{Q}}_i}} \right) - q\left( {t',{{{Q}}_i}} \right), \\ {\varDelta _2} = 2\mathop {\max }\limits_{t \in {\cal{T}},\;{Q_i},{{Q_i}^\prime} \in \varOmega } q\left( {t,{{{Q}}_i}} \right) - q\left( {t,{{{{Q}}_i}^\prime}} \right) \end{array} \right\}$$ (10)

      为了求解${\varDelta _{Pu}}$,需要分别求解${\varDelta _1}$${\varDelta _2}$。对于${\varDelta _1}$有:

      $$\begin{aligned} &\qquad\quad\; {\varDelta _1} = 2\mathop {\max }\limits_{t,t' \in {\cal{T}},{P_u} \in \varOmega } q\left( {t,{{{P}}_u}} \right) - q\left( {t',{{{P}}_u}} \right) = \\ &\qquad\quad\; 2\mathop {\max }\limits_{{P_u} \in \varOmega } \left( {\mathop {\max }\limits_{t \in {\cal{T}}} q\left( {t,{{{P}}_u}} \right) - \mathop {\min }\limits_{t \in {\cal{T}}} q\left( {t,{{{P}}_u}} \right)} \right) = \\ & 2\mathop {\max }\limits_{{P_u} \in \varOmega } \left( {\mathop {\max }\limits_{\left( {{R_{ui}},{Q_i}} \right) \in {\cal{T}}} {{\left( {{R_{ui}} - {{P}}_u^{\rm{T}}{{{Q}}_i}} \right)}^2} - \mathop {\min }\limits_{\left( {{R_{ui}},{Q_i}} \right) \in {\cal{T}}} {{\left( {{R_{ui}} - {{P}}_u^{\rm{T}}{{{Q}}_i}} \right)}^2}} \right) \end{aligned} $$

      由于$ \mathop {\min }\limits_{\left( {{R_{ui}},{Q_i}} \right) \in {\cal{T}}} {\left( {{R_{ui}} - {{P}}_u^{\rm{T}}{{{Q}}_i}} \right)^2} = 0$,所以:

      $$\begin{aligned} &{\varDelta _1} = 2\mathop {\max }\limits_{{P_u} \in \varOmega } \left( {\mathop {\max }\limits_{\left( {{R_{ui}},{Q_i}} \right) \in {\cal{T}}} {{\left| {{R_{ui}} - {{P}}_u^{\rm{T}}{{{Q}}_{{i}}}} \right|}^2}} \right) \leqslant \\ &\quad\quad\quad 2\mathop {\max }\limits_{{P_u} \in \varOmega } \left( {{B^2} + {{\left( {\sum\limits_{k = 1}^d {\left| {{P_{uk}}} \right|} } \right)}^2}} \right) \end{aligned} $$

      对于$ {\Delta _2}$有:

      $$\begin{aligned} &\quad\quad {\varDelta _2} = 2\mathop {\max }\limits_{t \in {\cal{T}},{P_u},{{P'}_u} \in \varOmega } q\left( {t,{{{P}}_u}} \right) - q\left( {t,{{{P}}_u}^\prime} \right) \leqslant \\ &2\mathop {\max }\limits_{{P_u},{P^{'}_u} \in \varOmega } \left( \begin{array}{l} \mathop {\max }\limits_{\left( {{R_{ui}},{Q_i}} \right) \in {\cal{T}}} {\rm{2}}{R_{ui}}\left( {{{{{P}}_u}^{\prime{\rm{T}}}}{{ }}{{{Q}}_i} - {{{P}}_u}^{\rm{T}}{{{Q}}_i}} \right) + \\ \mathop {\max }\limits_{\left( {{R_{ui}},{Q_i}} \right) \in {\cal{T}}} \left( {{{\left( {{{{P}}_u}^{\rm{T}}{{{Q}}_i}} \right)}^2} - {{\left( {{{{{P}}_u}^{\prime{\rm{T}}}}{{{Q}}_i}} \right)}^2}} \right) \end{array} \right) \end{aligned} $$

      因为

      $$\begin{aligned} &\qquad\quad \mathop {\max }\limits_{\left( {{R_{ui}},{Q_i}} \right) \in {\cal{T}}} \left( {{{\left( {{{{P}}_u}^{\rm{T}}{{{Q}}_i}} \right)}^2} - {{\left( {{{{P}_u}^{\prime{{\rm{T}}}}}{{{Q}}_i}} \right)}^2}} \right) \leqslant \\ &\mathop {\max }\limits_{\left( {{R_{ui}},{Q_i}} \right) \in {\cal{T}}} \left( {\sum\limits_{k = 1}^d {\sum\limits_{s = 1}^d {{Q_{ik}}{Q_{is}}\left( {{P_{uk}}{P_{us}} - {{P_{uk}}^\prime}{{P_{us}}^\prime}} \right)} } } \right) \leqslant \\ &\qquad\qquad\quad \left( {\sum\limits_{k = 1}^d {\sum\limits_{s = 1}^d {\left| {{P_{uk}}{P_{us}} - {{P_{uk}}^\prime}{{P_{us}}^\prime}} \right|} } } \right) \end{aligned} $$

      所以,

      $$ \begin{aligned} &\qquad\qquad\qquad{\varDelta _2} \leqslant 2\mathop {\max }\limits_{{P_u},{P^{'}_u} \in \varOmega } \\ &\left( {{\rm{2}}B\sum\limits_{k = 1}^d {\left| {{P_{uk}} - {{P_{uk}}^\prime}} \right|} + \sum\limits_{k = 1}^d {\sum\limits_{s = 1}^d {\left| {{{P_{uk}}^\prime}{P_{us}} - {{P_{uk}}^\prime}{{P_{us}}^\prime}} \right|} } } \right) \end{aligned}$$

      综合${\varDelta _1}$${\varDelta _2}$的上界,得到求解用户隐因子向量时,阻尼因子应满足的条件为:

      $${\varDelta _{{P_u}}} \geqslant \min \left\{ \begin{array}{l} 2\mathop {\max }\limits_{{P_u} \in \varOmega } \left( {{B^2} + {{\left( {\displaystyle\sum\limits_{k = 1}^d {\left| {{P_{uk}}} \right|} } \right)}^2}} \right), \\ 2\mathop {\max }\limits_{{P_u},{{P_{u}}^\prime} \in \varOmega } \left( \begin{array}{l} {\rm{2}}B\displaystyle\sum\limits_{k = 1}^d {\left| {{P_{uk}} - {{P_{uk}}^\prime}} \right|} \\ + \displaystyle\sum\limits_{k = 1}^d {\displaystyle\sum\limits_{s = 1}^d {\left| {{P_{uk}}{P_{us}} - {{P_{uk}}^\prime}{{P_{us}}^\prime}} \right|} } \end{array} \right) \end{array} \right\}$$ (11)

      同理可得求解项目隐因子向量时阻尼因子${\varDelta _{{Q_i}}}$应满足的条件为:

      $${\varDelta _{{Q_i}}} \geqslant \min \left\{ \begin{array}{l} 2\mathop {\max }\limits_{{Q_i} \in \varOmega } \left( {{B^2} + {{\left( {\displaystyle\sum\limits_{k = 1}^d {\left| {{Q_{ik}}} \right|} } \right)}^2}} \right), \\ 2\mathop {\max }\limits_{{Q_i},{Q_i}^\prime \in \varOmega } \left( \begin{array}{l} {\rm{2}}B\displaystyle\sum\limits_{k = 1}^d {\left| {{Q_{ik}} - {{Q_{ik}}^\prime}} \right|} \\ + \displaystyle\sum\limits_{k = 1}^d {\sum\limits_{s = 1}^d {\left| {{Q_{ik}}{Q_{is}} - {{Q_{ik}}^\prime}{{Q_{is}}^\prime}} \right|} } \end{array} \right) \end{array} \right\}$$ (12)

      观察${\varDelta _{{P_u}}}$${\varDelta _{{Q_i}}}$应满足的条件,可以发现${\varDelta _2}$衡量的是候选解集中各隐因子向量之间的差异。在多数情况下${\varDelta _{\rm{1}}} > {\varDelta _{\rm{2}}}$,这是因为随着APrivGene的迭代,$q\left( {t,{{{P}}_u}} \right) - q\left( {t,{{P_{u}}^\prime}} \right)$$q\left( {t,{{{Q}}_i}} \right) - q\left( {t,{{Q_{i}}^\prime}} \right)$的值会逐渐减小,但${\varDelta _1}$的值并不会受到APrivGene迭代的影响。所以,随着APrivGene迭代次数增加,阻尼因子会减小,增强指数机制可以选择出更精确的解,从而有效保证算法的效用。

    • 定理1 算法1满足ε-差分隐私。

      证明:令$D$为数据集${D_u}$${D_i}$$ D' $D为其邻近数据集,t$ t' $分别表示D$ D' $中相异的元组;令${{\omega }}$为隐因子向量${{{P}}_u}$${{{Q}}_i}$,在应用APrivGene求解${{\omega }}$时,设EEM的隐私预算$\varepsilon ' = \varepsilon /2TG$$T$表示算法1(PGMF)中外循环的次数,$G$表示算法2(APrivGene)中的最大迭代次数。令$\varDelta $为EEM的阻尼因子${\varDelta _{{P_u}}}$${\varDelta _{{Q_i}}}$,根据2.3节中式(9)和式(10),考虑以下两种情况:

      $ \varDelta \geqslant {\varDelta _1}$时:

      $$\begin{aligned} &\varDelta \geqslant 2{\max _{t,t' \in {\cal{T}},\;\omega \in \varOmega }}q(t,{{\omega }}) - q\left( {t',{{\omega }}} \right){\rm{ = }} \\ &\qquad{\rm{2}}{\max _{D,D'}}f(D,{{\omega }}) - f\left( {D',{{\omega }}} \right) \end{aligned} $$
      $$\begin{aligned} &\qquad\qquad\qquad\quad \dfrac{{{\rm{Pr}}\left[ {{\rm{EEM}}_f^{\varepsilon '}\left( D \right) = {{\omega }}} \right]}}{{{\rm{Pr}}\left[ {{\rm{EEM}}_f^{\varepsilon '}\left( {D'} \right) = {{\omega }}} \right]}} = \\ &\qquad \frac{{\exp \left( {\varepsilon 'f\left( {D,{{\omega }}} \right)/\varDelta } \right)}}{{\displaystyle\sum\limits_{\omega ' \in \varOmega } {\exp \left( {\varepsilon 'f\left( {D,{{\omega '}}} \right)/\varDelta } \right)} }}\Bigg/\frac{{\exp \left( {\varepsilon 'f\left( {D',{{\omega }}} \right)/\varDelta } \right)}}{{\displaystyle\sum\limits_{\omega ' \in \varOmega } {\exp \left( {\varepsilon 'f\left( {D',{{\omega '}}} \right)/\varDelta } \right)} }} = \\ &\qquad\qquad\qquad \exp \left( {\varepsilon '\left( {f\left( {D,{{\omega }}} \right) - f\left( {D',{{\omega }}} \right)} \right)/\varDelta } \right) \times \\ &\left(\! {\frac{{\displaystyle\sum\limits_{\omega ' \in \varOmega } \!\!{\exp \left(\! {\varepsilon '\left( {f\left( {D',{{\omega '}}} \right) \!-\! f\left( {D,{{\omega '}}} \!\right)} \!\right)\!/\varDelta }\! \right)} \exp \left( {\varepsilon 'f\left( {D,{{\omega '}}} \right)\!/\varDelta } \right)}}{{\displaystyle\sum\limits_{\omega ' \in \varOmega } {\exp \left( {\varepsilon 'f\left( {D,{{\omega '}}} \right)\!/\varDelta }\! \right)} }}}\! \right)\! \leqslant \\ &\exp \left( {\varepsilon '/2} \right)\exp \left( {\varepsilon '/2} \right)\left( {\frac{{\displaystyle\sum\limits_{\omega ' \in \varOmega } {\exp \left( {\varepsilon 'f\left( {D,{{\omega '}}} \right)/\varDelta } \right)} }}{{\displaystyle\sum\limits_{\omega ' \in \varOmega } {\exp \left( {\varepsilon 'f\left( {D,{{\omega '}}} \right)/\varDelta } \right)} }}} \right) = \exp \left( {\varepsilon '} \right) \end{aligned} $$

      $ \varDelta \geqslant {\varDelta _2}$时:

      $$\begin{aligned} &\qquad\qquad\quad \varDelta \geqslant 2\mathop {\max }\limits_{t \in {\cal{T}},\omega ,\omega ' \in \varOmega } q(t,{{\omega }}) - q\left( {t,{{\omega '}}} \right) \geqslant \\ &\mathop {\max }\limits_{t,t' \in {\cal{T}},\;\omega ,\omega ' \in \varOmega } \left( {q(t,{{\omega }}) - q\left( {t',{{\omega }}} \right)} \right) - \left( {q\left( {t,{{\omega '}}} \right) - q\left( {t',{{\omega '}}} \right)} \right) = \\ &\mathop {\max }\limits_{D,D',\omega ,\omega ' \in \varOmega } \left( {f(D,{{\omega }}) - f\left( {D',{{\omega }}} \right)} \right) - \left( {f\left( {D,{{\omega '}}} \right) - f\left( {D',{{\omega '}}} \right)} \right) \end{aligned} $$
      $$\begin{aligned} &\qquad\qquad\qquad \frac{{{\rm{Pr}}\left[ {{\rm{EEM}}_f^{\varepsilon '}\left( D \right) = {{\omega }}} \right]}}{{{\rm{Pr}}\left[ {{\rm{EEM}}_f^{\varepsilon '}\left( {D'} \right) = {{\omega }}} \right]}} = \\ &\quad\frac{{\exp \left( {\varepsilon 'f\left( {D,{{\omega }}} \right)/\varDelta } \right)}}{{\displaystyle\sum\limits_{\omega ' \in \varOmega } {\exp \left( {\varepsilon 'f\left( {D,{{\omega '}}} \right)/\varDelta } \right)} }}\Bigg/\frac{{\exp \left( {\varepsilon 'f\left( {D',{{\omega }}} \right)/\varDelta } \right)}}{{\displaystyle\sum\limits_{\omega ' \in \varOmega } {\exp \left( {\varepsilon 'f\left( {D',{{\omega '}}} \right)/\varDelta } \right)} }} \leqslant \\ &\qquad\quad \frac{{\exp \left( {\varepsilon '\left( {f(D,{{\omega }}) - f\left( {D',{{\omega }}} \right)} \right)/\varDelta } \right)}}{{\mathop {\min }\limits_{\omega ' \in \varOmega } \exp \left( {\varepsilon '\left( {f\left( {D,{{\omega '}}} \right) - f\left( {D',{{\omega '}}} \right)} \right)/\varDelta } \right)}} = \\ &\mathop {\max }\limits_{D,D',\omega ,\omega ' \in \varOmega } \exp \left( {\varepsilon '\left( \begin{array}{l} \left( {f(D,{{\omega }}) - f\left( {D',{{\omega }}} \right)} \right) \\ - \left( {f\left( {D,{{\omega '}}} \right) - f\left( {D',{{\omega '}}} \right)} \right) \end{array} \right)/\varDelta } \right) \leqslant \\ &\qquad\qquad\qquad\qquad\quad\exp \left( {\varepsilon '} \right) \end{aligned} $$

      综上,由于$ \varDelta \geqslant {\rm{min}}\left\{ {{\varDelta _1},{\varDelta _2}} \right\}$,总有:

      $$\frac{{{\rm{Pr}}\left[ {{\rm{EEM}}_f^{\varepsilon '}\left( D \right) = {{\omega }}} \right]}}{{{\rm{Pr}}\left[ {{\rm{EEM}}_f^{\varepsilon '}\left( {D'} \right) = {{\omega }}} \right]}} \leqslant \exp \left( {\varepsilon '} \right)$$

      故应用APrivGene算法求解隐因子向量时,其每一轮迭代均满足$\varepsilon /2TG$-差分隐私。由差分隐私保护的序列组合性质可得,更新每个用户或项目的隐因子向量时算法满足$\varepsilon /2T$-差分隐私,算法1满足$\varepsilon $-差分隐私。

    • 本文算法将矩阵分解的求解转换为对两个优化问题的求解,这样处理有两点优势:

      1)更好地体现个性化的思想。因为直接求解 式(6)可能忽视单个个体的推荐质量。转化为式(7)和式(8)所示的问题后,可以为每个用户或每个项目分别设计其专属的考虑隐私保护的隐因子值,更好地体现个性化的推荐思想,利于提升推荐精度。

      2)提升算法效率和效用。直接对原问题应用遗传算法求解,解的维度将是$d \times \left( {m + n} \right)$,而推荐系统中的用户数m和项目数n通常都很庞大。采用遗传算法在高维空间中寻优,将会导致效率非常低。同时,原问题关于PQ是非凸的,也会导致算法收敛速度慢。过慢的收敛速度,会导致迭代轮次增加。由于需要在每轮迭代中添加隐私保护的噪音,会导致噪声增大,从而使解的质量下降甚至不可用。本算法将原问题分解为两个优化问题,使得各个子问题都是凸问题,且解的维度是隐因子个数d,它远小于mn,极大地提高了求解的效率,也利于提高解的效用。

    • APrivGene算法是PrivGene算法的改进算法。PrivGene算法并没有对变异操作进行专门的设计,它所采用的随机变异方式,将导致解的搜索效率不高,影响最终解的质量。APrivGene算法在变异操作中,对选择的个体沿着解的各个维度,从正反两个方向使用标准柯西分布生成随机扰动进行变异,具有如下优势:

      1)有助于EEM选出更好的解。EEM的特点是,当候选解之间的变动程度不大时,其敏感度将取得较小值从而减轻选择过程的扰动。单维度变异所生成的新解之间只存在一个隐因子上的差异,此时式(9)和式(10)中对于${\varDelta _{Pu}}$${\varDelta _{Qi}}$通常有${\varDelta _{\rm{1}}} > {\varDelta _{\rm{2}}}$。随着算法逐渐收敛,${\varDelta _{\rm{2}}}$的取值将更小,增强指数机制的阻尼因子减小,使得选中优质解的概率提高。

      2)有助于提高解的搜素效率并减少扰动。矩阵分解中用户和项目共享相同的隐因子,但不同的用户或项目对不同的隐因子会有不同程度的关注,单维度变异将有利于快速找到相对重要的隐因子。用户或项目对隐因子只有正向或负向两类偏好,变异算子在隐因子的正负方向上同时进行搜索,而非随机搜索,符合实际情况。该做法有效提升了解的搜索效率,同时控制了候选解之间的变动程度,减轻选择过程受到的扰动。

      3)标准柯西分布${\rm{C}}\left( {0,1} \right)$由于有较高的两翼概率特性,具有较好的全局搜索能力,能帮助算法在迭代的初期保持一定程度的多样性。设置了衰减因子$\beta $在每次迭代时对步长$\eta $进行缩减,利于在迭代后期增强指数机制实现更优的选择。因为随着迭代进行,式(9)和式(10)中${\varDelta _{Pu}}$${\varDelta _{Qi}}$的值${\varDelta _{\rm{2}}}$会逐渐减小,但${\varDelta _1}$的值并不会受到影响,这样增强指数机制的阻尼因子会减小,使选择过程受到更少的扰动,做出更优的选择。

    • 采用两个常用数据集Movielens100K和YahooMusic进行实验,按8∶2的比例随机划分为训练集和测试集。两个数据集的统计属性如表1所示。

      表 1  实验数据集统计属性

      属性名Movielens100KYahooMusic
      用户数9438089
      电影数16821000
      密度/%6.31.8
      评分均值3.52992.6321
      评分方差1.26712.3821
      用户平均评分数10633
      项目平均受评数59.4270.1
    • 除本文算法外,还对其他一些类似算法进行了对比实验。实验中涉及到的算法及其描述如表2所示。

      表 2  实验算法汇总

      算法名称描述
      PGMF本文算法
      ALSBase[17]不考虑差分隐私保护,运用交替最小二乘法(alternating least squares, ALS)求解矩阵分解的算法
      DPSGD[14]应用随机梯度下降法(stochastic gradient descent, SGD)
      求解矩阵分解,对梯度进行扰动,实施隐私保护
      DPSGDInput[13]对原始评分进行扰动之后运用SGD求解矩阵分解的算法
      DPALS[14]对ALS求解的结果进行扰动,实施隐私保护的算法
      DPALSObj[19]对ALS的目标函数进行扰动,实施隐私保护的算法

      本文取10次实验的平均值作为最终结果。采用均方根误差(RMSE)度量算法的性能:

      $${\rm{RMSE}} = \frac{{\displaystyle\sum\limits_{i = 1}^T {{{({r_{ui}} - {{\hat r}_{ui}})}^2}} }}{T}$$

      式中,T为有效预测项目的个数;${r_{ui}}$为用户u对项目i的真实评分;${\hat r_{ui}}$为用户u对项目i的预测评分。RMSE越小则推荐精度越高。

    • 采用文献[14]中的预处理方式,将评分区间转换为[−1,1],设置隐因子变量域为[−1,1]。在APrivGene中,最大迭代轮次为23,候选集大小为85,柯西变异算子的步长为0.2,步长的衰减率为0.95。对比算法的参数设置均遵循相应文献中的最优参数设置。

      为了保证有效的隐私保护,实验中将隐私预算ε设置为较小范围,即$\varepsilon \in \left[ {{\rm{0}}{\rm{.1,1}}} \right]$图1图2分别给出了本算法与其他对比算法在Movielens100K和YahooMusic两个数据集上的RMSE测试结果。其中,将不考虑隐私保护的ALSBase算法的实验结果作为对比基线。从整体上看,随着ε的增大,各个算法的RMSE均逐渐减小,表明随着隐私保护水平的下降,推荐准确性增加。各算法在Movielens100K数据集上的推荐准确性均高于YahooMusic数据集,主要原因是YahooMusic数据集具有更高的稀疏性。

      图  1  Movielens100K数据集上的RMSE测试结果

      图  2  YahooMusic数据集上的RMSE测试结果

      图1中,随着ε的变化,PGMF在Movielens100K数据集上的RMSE为:$0.995 \leqslant $$ {\rm{RMSE}} \leqslant 1.308$,低于其他的隐私保护算法。同样的趋势也存在于YahooMusic数据集的测试中。在图2中,PGMF的RMSE总是低于其他对比算法,其RMSE值的范围为$1.290 \leqslant {\rm{RMSE}} \leqslant 1.670$,比其他隐私保护算法平均低0.2左右,显示出了更好的准确性。在两个数据集上,PGMF与不考虑任何隐私保护的ALSBase算法的RMSE差距是最小的,同样证明了PGMF具有更好的推荐准确性。

      在本实验中,DPALS算法的推荐准确性比DPSGD算法要高。因为在不考虑隐私保护的情况下,ALS的性能比SGD要好,这种优越性在考虑差分隐私的情形下同样存在。但是,这两种方法都是基于传统优化方式的算法,当隐私预算ε越小,DPSGD和DPALS所引入的噪声就越大,导致求解出的隐因子向量与最优解之间差距过大,推荐准确度降低。在图1中,$\varepsilon = 0.1$时,DPALS与DPSGD的RMSE都超过了2.1,而PGMF的RMSE只有1.3;在图2中,$\varepsilon = 0.1$时,DPALS与DPSGD的RMSE都超过了2.3,而PGMF的RMSE只有1.67。比较结果说明在隐私保护要求较高时,PGMF的优势更为明显。

      DPSGDInput算法是文献[13]中表现最优的算法,直接对评分数据添加噪音。它不需要在矩阵分解过程中分配隐私预算,在较低隐私保护需求下具有良好的推荐准确性。当ε=1时,其RMSE值在Movielens100K与YahooMusic数据集上分别为1.06和1.44,是除PGMF算法以外最低的。但是,这种直接对数据集加噪音的方式在高隐私保护需求下会引入过大的噪声。从图1图2中可以看出,在ε<0.5时,该算法的推荐RMSE值显著增加,其推荐准确性比DPALSObj算法和PGMF更差。

      DPALSObj算法通过对目标函数进行扰动而实现隐私保护。它的推荐精度在高隐私保护条件下,即$\varepsilon \in \left[ {0.1,0.5} \right]$时,优于除PGMF之外的其他隐私保护算法。这种方法对隐私预算的大小比较敏感,在高隐私保护需求下相对于PGMF仍然引入了过大的噪声,即便在其表现更为突出的YahooMusic数据集上,其RMSE仍然明显比PGMF高。

      PGMF的性能优于其他算法的主要原因是采用了独特的进化方式限制了候选解集的方差,又借助增强指数机制改善了解的选择过程。所以,即使在很小的隐私预算条件下,求解出的隐因子向量都不会偏离最优解太远,实现了更高的推荐准确度。

    • 本文针对推荐系统中的隐私问题提出了一种满足差分隐私保护的矩阵分解算法。该算法将矩阵分解问题转化为两个交替进行的优化问题。在遗传算法的选择操作中采用了增强指数机制使得整个矩阵因子分解的过程满足差分隐私保护。基于搜索重要隐因子的思想,设计了遗传算法的变异操作,从正反两个方向变异隐因子,不仅提高了算法的效率而且有效增强了解的性能。在两个标准数据集上的实验结果表明本文算法能更好地平衡隐私性和推荐的准确性,尤其在隐私保护需求较高的条件下,仍然可以取得良好的推荐效果,具有很好的应用潜力。

参考文献 (19)

目录

    /

    返回文章
    返回