《联邦学习实战》杨强 读书笔记九——联邦个性化推荐案例

news/2024/5/19 14:23:54 标签: 机器学习, 边缘计算

目录

传统的集中式个性化推荐

矩阵分解

因子分解机

联邦个性化推荐

矩阵分解

联邦因子分解机


一般而言,收集的数据越多,对用户和推荐内容的了解就越全面和深入,推荐效果就越精准。

传统的集中式个性化推荐

矩阵分解

矩阵分解(MF),是最常用的推荐算法之一。我们将用户对物品的反馈用矩阵r表示,这个矩阵也被称为评分矩阵。将原始评分矩阵r分解为pq,使得:

r=p\times q.

其中,rm\times np(用户隐向量矩阵)的维度为m\times kq(物品隐向量矩阵)的维度为k\times nk是一个较小的数。

MF的优化函数如下:

\min_{p,q} \Sigma_{(i,j)}\left(r_{ij}- \langle p_i,q_j \rangle\right )+\lambda\|p\|^2_2+\mu\|q\|^2_2.

MF算法通过优化式(1)来填充和预测缺失的评分值,其中r_{ij}代表原始评分矩阵中用户i对物品j的非0评分,而p_i代表用户i的隐向量,q_j代表物品j的隐向量。该函数的优化目标是:使得用户i的隐向量p_i与物品j的隐向量q_j之间的点积值,与评分矩阵中用户i对物品j的实际评分值r_{ij}尽可能接近。

因子分解机

推荐系统的另一种常用算法是因子分解机(FM),它将推荐问题归结为回归问题。传统的线性模型只能捕捉到线性信息,不能捕获非线性信息,也就是特征与与特征之间的相互作用。

这种特征与与特征之间的相互作用,就是特征工程中常用的交叉特征(也称为组合特征)。FM模型如下式所示,

y=\omega_0+\sum_{i=1}^{n}\omega_ix_i+\sum_{0<i<j \leqslant n}\langle v_i,v_j \rangle x_ix_j.

联邦个性化推荐

矩阵分解

假设公司A是以书籍为内容进行推荐,而公司B是以电影为内容进行推荐。根据协同过滤的思想,具有相同观影兴趣的用户很可能有相同的阅读兴趣。

这个场景下,每一家公司分别有用户对物品的评分矩阵,但由于隐私保护的原因,公司不能共享这些评分数据。按照上面介绍的MF算法,它将评分矩阵分解为用户隐特征向量和物品隐特征向量。由于两家公司的用户群体相同,它们共享用户的隐向量信息p。接下来,这个算法的流程描述如下:

  • 步骤1:由可信第三方服务端初始化用户隐向量矩阵p,并使用公钥对其进行加密\left [ \left [ p \right ]\right ]。同时,各家参与公司分别初始化自己的物品隐向量矩阵q
  • 步骤2:服务端将加密的用户隐向量矩阵\left [ \left [ p \right ]\right ]分别发送给所有参与联合建模的公司。
  • 步骤3:各参与方利用私钥解密用户隐向量矩阵。先利用梯度下降更新自己的本地物品隐向量矩阵。同时,计算用户隐向量矩阵p的梯度,加密后发送给服务器。
  • 步骤4:服务器汇总接收到的加密用户隐向量梯度,更新矩阵p
  • 步骤5:重复步骤2~4,直到收敛。

个人理解这个方法的核心思想是:p的更新用到了联邦学习的优势,并且由于q是保密的,因此可以保护隐私安全。

联邦因子分解机

假设公司A是一家在线的书籍销售商,公司B是一家社交网络公司,公司B不直接销售商品,但是它有每个用户的画像数据。如果能够利用这部分数据,则对公司A的销售额同样有很好的提升。

假设现在公司A有用户的反馈分数和部分特征信息,设为\left ( X_1,Y \right ),而公司B拥有额外的特征数据,设为X_2,其FM模型可以表示为

\hat{y}=\omega_0^A+\sum_{i=1}^n \omega_i^Ax_i^A+\sum_{0<i<j \leqslant n}\langle v_i^A,v_j^A \rangle x_i^Ax_j^A+\omega_0^B+\sum_{i=1}^n \omega_i^Bx_i^B+\sum_{0<i<j \leqslant n}\langle v_i^B,v_j^B \rangle x_i^Bx_j^B+\sum_{0<i\leqslant n, 0<j\leqslant m}\langle v_i^A,v_j^B \rangle x_i^Ax_j^B

下面给出联邦学习因子分解机的详细算法流程:

  • 步骤1:公司A和公司B各自初始化本地模型,即对于公司A,初始化参数\omega_i^Av_i^A;对于公司B,初始化参数\omega_i^Bv_i^B
  • 步骤2:公司B将中间结果\omega_0^B+\Sigma_{j=1}^m \omega_i^Bx_i^Bv_i^Bx_i^B加密,传输给公司A。
  • 步骤3:公司A接收到公司B传输的加密中间结果,计算加密残差\left [ \left [ d \right ] \right ]=\left [ \left [ \hat{y}-y \right ] \right ],公司A将\left [ \left [ d \right ] \right ]\left [ \left [ v_i^Ax_i^A \right ] \right ]发送回公司B。
  • 步骤4:公司A和公司B分解求解加密梯度。
  • 步骤5:将这些加密的参数梯度上传到第三方服务端解密,结果分别重新返回公司A和公司B,利用梯度下降更新参数。
  • 重复步骤2~6,直到算法收敛

 本读书笔记系列针对2021年5月出版的《联邦学习实战》(见下图),后续部分将逐步更新

 


http://www.niftyadmin.cn/n/560821.html

相关文章

ms sql2008 数据库备份(收集)

posted on 2010-10-18 14:18 chinachen 阅读(18) 评论(0) 编辑 收藏 所属分类: sql server --完整备份 backup database northwindcsto diskg:\backup\northwindcs_full_20070908.bak--差异备份backup database northwindcsto diskg:\backup\northwindcs_diff_20070908.bakwith…

《联邦学习实战》杨强 读书笔记十七——联邦学习加速方法

目录 同步参数更新的加速方法 增加通信间隔 减少传输内容 非对称的推送和获取 计算和传输重叠 异步参数更新的加速方法 基于模型集成的加速方法 One-Shot联邦学习 基于有监督的集成学习方法 基于半监督及知识蒸馏的方法 基于学习的联邦模型集成 如何在保证模型性能不…

Winform开发框架之字典数据管理

好久没写博客了&#xff0c;除了是工作较忙的原因外&#xff0c;其实是也一直在想如何整合我所有的开发经验及技术积累&#xff0c;开发过很多Winform共享软件、Asp.net的WebForm项目&#xff0c;发现很多东西是相互关联很紧密的&#xff0c;但往往我们太忙太懒&#xff0c;要好…

《联邦学习实战》杨强 读书笔记十八——联邦学习与其他前沿技术

目录 联邦学习与Split Learning Split Learning设计模式 Split Learning与联邦学习的异同 联邦学习与边缘计算 边缘计算综述 联邦学习与边缘计算的异同点 联邦学习与Split Learning Split Learning的核心思想是将网络的结构进行拆分&#xff0c;每个设备只保留一部分网络…

用符号常量表示常数—《狂人C》习题解答3(习题2.6)

/* 求出整数123的各位数字相应的字符ASCII码编号并输出。 */#include <stdio.h> #include <stdlib.h>#define ZHENGSHU_3 123 //问题中的常数一般应该用符号常量表示 #define GE 1 #define SHI 10 #define BAI 100 #define QIAN 1000int main( void ) {printf(&qu…

《联邦学习实战》杨强 读书笔记十九——总结与展望

联邦学习进展总结 理论研究总结 提升通信性能&#xff0c;提高联邦学习训练效率&#xff0c;方案概括来说包括&#xff1a; 减少不必要的参数传输。对模型或梯度进行压缩。减少全局的训练次数。异步的更新机制。提升安全性&#xff0c;保障隐私数据安全。安全性威胁主要来自两…

javascript实现cookies的查询代码实例

javascript实现cookies的查询代码实例 <script language"javascript"> <!-- var cookies document.cookie; function readcookie(name) { var start cookies.<a href"http://www.3ppt.com/tags.php/indexof">…

6G移动通信总结

总结 由于持续增长的通信业务需求和更加复杂的网络结构&#xff0c;2030年以前&#xff0c;5G或许不能很好地满足人们的通信需求。本文主要从六个方面介绍了6G带来的总体通信改变。同时&#xff0c;本文分别从空中接口和传输技术和网络架构两方面介绍了6G的新颖技术。此外&…