Secure Federated Matrix Factorization学习总结

2023-11-10

Secure Federated Matrix Factorization学习总结

背景

传统的矩阵分解推荐系统,会泄漏用户的评分信息、特征向量,可能大家会觉得泄漏这两种信息不重要,但是通过这两种信息,恶意攻击者可以进行inference attack,也就是从这两种信息推断用户的性别、年龄、住址,而后面的这些信息都属于非常隐私的数据。
目前有解决方案:Obfuscation-based和Full-Homomorphic encryption-based。前者主要采用的方法是通过将用户的原始偏好数据进行混淆后,再发送到中央服务器,以实现某种程度上的隐私保护。显而易见的是,这种方法会导致预测精度的损失。为了保证预测精度,Full-Homomorphic encryption-based方法引入了一个第三方的私密服务提供商,然而这种方法会增大系统实现难度,同时这类私密服务提供商的可靠性难以保障,一旦他们与推荐服务节点存在不正当合作关系,那对用户来说,任何信息都毫无隐私可言。
先说两个
Horizontal Federated Learning:用户的特征空间相同,然而用户群体不同。这类问题下,我们一般规定,用户是诚实的,系统的目标是保护用户的隐私,免于受到诚实但好奇的服务器的侵犯。

Homomorphic Encryption:一种仅享有数据处理权,但不具备数据访问权的方法。换句话说,这种方法允许任何第三方对已经加密过的数据进行运算,而不可以在运算前对数据进行解密。

在这里插入图片描述
在矩阵分解推荐系统中,我们通常会拿到一个稀缺的用户评分矩阵 X,而我们的任务是通过计算出user profile 矩阵U和item profile矩阵V,来将X中的空缺信息补全。一般来说,SGD(Stochastic Gradient Descent,随机梯度下降)是用来解决矩阵分解的主流方法。具体loss function和updating formula的定义如图所示。

分布式矩阵求解

在这里插入图片描述
显而易见的,想要保护用户的隐私,就是将服务器与用户的数据进行隔离,避免服务器对用户数据的直接访问,所以我们希望用户可以把自己的数据保留在本地。

基于此,我们设计了一个分布式的矩阵分解系统,在这个系统中,所有的评分数据都掌握在用户手中。一个全局的item profile矩阵为所有用户提供一个本地的update,同时用户将会把gradient传回给服务器,用来更新item profile。总结来说,服务器只会收到用户的gradient,不会收到用户的任何评分信息。

这样看来,我们的任务目标就实现了,但是让我们再思考一个问题,传输gradient就真的能保障用户隐私了吗?
在这里插入图片描述
如果已知任意2个连续step的gradients,已知user profile的更新公式,我们可以求得一个多元高阶方程组7、8、9。求解这个方程组的过程比较复杂,我们在这里不对求解过程做过多描述,仅仅把结果展示在途中。在等式24中,u是唯一的未知量,并且我们已知u一定存在一个实数解。我们可以利用一些迭代方法(比如牛顿法)来求得一个数值解。当我们算出u,评分信息r就可以利用等式25求解出来。

总结来说,我们刚刚证明了在矩阵分解场景下,gradient会泄漏用户的信息。那么我们又该怎么解决这个问题呢?

联邦矩阵求解

在这里插入图片描述
我们的解决方案是对系统中加入homomorphic encryption,也就是联邦矩阵分解系统。假设用户和服务器已经实现了对密钥的生成和分发,其中服务器拥有公钥,用户拥有彼此相同的私钥,那么整个系统就可以分为4个步骤:

第一步,对参数进行初始化,参数包括item profile矩阵和user profile矩阵,与此同时服务器对item profile使用公钥进行加密;
第二步,服务器提供加密后的item profile矩阵,供所有的用户来进行下载;

第三步,用户进行本地的update,这一步中可以拆分成若干个环节:用户首先下载加密后的item profile矩阵,并将其解密成一个plaintext V,然后用户会进行本地的update并计算gradient,最后用户会对gradient进行加密并且将ciphertext发给服务器;

接下来让我们回到整体的架构,在第四步,服务器在接收到加密后的gradient之后,会根据附加的homomorphic encryption对item profile矩阵进行更新,请注意,服务器会提供给用户最新一次加密后的item profile用作下载,此时我们就需要再一次回到第二步。

整个系统通过重复第二、三、四步,会实现整个训练过程。一般来说,用户的评价信息由一个系数矩阵组成,这也就意味着一个用户的评价其实是非常有限的。因此,两个不同的设置在我们的系统中是implemented。这两个设置会遵循系统的各个环节然而会在用户的上传环节由些许的不同。其中一种设置叫做fulltext,在这种设置中,用户会对所有的item都会上传gradient,当用户对某一个item不做出评价时,gradient为0;另外一种设置叫做parttext,用户只会将评价后的item的gradient进行上传。

这两种方式有利有弊,parttext会泄漏哪些item是用户打过分的,同时在计算效率上表现更好,而fulltext不会泄漏用户的信息,但是会需要更多的计算耗时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Secure Federated Matrix Factorization学习总结 的相关文章

  • Linux/Mac go版本升级

    文章目录 背景 卸载当前版本 安装最新版本 解压下载的文件 验证生效 背景 Mac上go版本为1 10 在1 11以后加入了go mod等特性 所以要更新到最新的go版本 此方法适用于Mac Linux 卸载当前版本 只需要删除 usr l
  • STM32F103C8T6使用备忘录

    1 STM32端口配置寄存器 CRH寄存器 用于高位I O口 即GPIOX8 GPIOX15 X可以是A B C D E等 每个IO口有两个寄存器 分别是CNFxx 1 0 和MODExx 1 0 共占四位二进制or一位十六进制 1 CNF
  • Nginx下开启php-fpm的错误提示

    Nginx下开启php fpm的错误提示 1 php fpm的作用 nginx本身不能处理PHP 它只是个web服务器 当接收到请求后 如果是php请求 则发给php解释器处理 并把结果返回给客户端 nginx一般是把请求发fastcgi管
  • hausdorff matlab,matlab练习程序(Hausdorff距离)

    Hausdorff距离是根据Hausdorff 1868 1942 命名的 Hausdorff距离是指某一集合中离另一集合最近点的所有距离的最大值 通常用如下公式表示 需要注意的是h A B 和h B A 通常不相等 所以可以定义更一般的H

随机推荐

  • React Context源码是怎么实现的呢

    目前来看 Context 是一个非常强大但是很多时候不会直接使用的 api 大多数项目不会直接使用 createContext 然后向下面传递数据 而是采用第三方库 react redux 想想项目中是不是经常会用到 connect Com
  • 什么是数据湖技术数据湖和数据仓库的区别(好文转载)

    原文链接 什么是数据湖技术 xuzhujack 博客园 什么是数据湖 有什么用 终于有人讲明白了 大数据 CSDN博客 数据湖 Data Lake 是Pentaho公司创始人及CTO James Dixon于2010年10月在2010年10
  • Verilog文件的读取(fscanf)和写入(fwrite)方法

    在写testbench时 经常会用到文件的读取 下面示例了文件读取和写入的方法 文件读取 图中第一行定义一个文件句柄 由于打开的文件中一行中有两个10bit的十进制数据 所以定义了2个reg变量 第6行到12行就是文件的读取过程 使用的系统
  • 一个恋爱小故事告诉你什么是gRPC?!

    RPC 对RPC不了解的人 或许会纠结其与TCP HTTP等的关系 后者是网络传输中的协议 而RPC是一种设计 实现框架 通讯协议只是其中一部分 RPC不仅要解决协议通讯的问题 还有序列化与反序列化 以及消息通知 一个完整的RPC架构里面包
  • 力扣332. 重新安排行程 Java dfs回溯

    给你一份航线列表 tickets 其中 tickets i fromi toi 表示飞机出发和降落的机场地点 请你对该行程进行重新规划排序 所有这些机票都属于一个从 JFK 肯尼迪国际机场 出发的先生 所以该行程必须从 JFK 开始 如果存
  • 【简单入门】ChatGPT prompt engineering (中文版)笔记

    目录 思维导图 一 资料 二 指南 环境配置 两个基本原则 最重要 原则一 编写清晰 具体的指令 策略一 使用分隔符清晰地表示输入的不同部分 分隔符可以是 lt gt
  • MySQL 高级篇 -- 性能分析

    文章目录 一 基础知识 1 1 数据库服务器的优化步骤 1 2 查看系统性能参数 1 3 统计 SQL 查询成本 1 4 查看 SQL 执行成本 二 mysqldumpslow 慢日志分析 2 1 相关变量 2 2 案例准备 2 3 测试
  • Mac下Fiddler的安装、配置与使用

    环境安装 Mono安装 首先 Mac下需要使用 Net编译后的程序 需要用到跨平台的方案Mono 现阶段微软已推出跨平台的方案 Net Core 不过暂时只支持控制台程序 安装程 可以从 http www mono project com
  • 第二十四课、二十五课,高级光照(blinn),Gamma矫正

    高级光照 blinn 这里主要是矫正了 视口方向和反射方向夹角太小造成的阴影轮廓现象 但是在我的项目中 只要给blinn光照的shiness乘4 基本与冯氏光照没有区别 if light blinn vec3 halfwayDir norm
  • 从零开始的Spring Security Oauth2(一)

    使用配置 1 简易的分为三个步骤 配置资源服务器 配置认证服务器 配置spring security 2 oauth2根据使用场景不同 分成了4种模式 授权码模式 authorization code 简化模式 implicit 密码模式
  • Unity的画面高质量传输( FMETP STREAM 实时画面传输案例)

    Unity中实现画面传输首先要保证在同一个局域网下 其次 用到的FMETP STREAM插件进行画面传输的时候不分Server端和Client端 下面我们看一个案例 用大屏和小屏举例 我们要实时把小屏内容传输到大屏上 首先建两个空物体Ser
  • 矩阵分析L6矩阵函数

    一 范数 1 范数与内积 内积 对两个空间进行内积运算可以得到一个实数集 范数 对一个空间可以直接进行向量 大小 的衡量 得到实数集 2 向量范数 正定性 范数为0 则每个向量必为0 3 例题 向量范数判断 4 p级范数 注意 范数 Y 若
  • 老猿学5G扫盲贴:R15/R16中计费架构和计费原则涉及的规范文档

    专栏 Python基础教程目录 专栏 使用PyQt开发图形界面Python应用 专栏 PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一 概述 在R16的32 240文档对应规范为3GPP TS 32 240 V16 1 0
  • [Java Web开发]Servlet学习

    目录 一 什么是Servlet 二 Servlet生命周期 三 Servlet工作过程 四 Servlet项目实战 一 什么是Servlet Servlet是SUN公司提供的一门用于开发动态web资源的技术 它是Java Web三大组件 之
  • Linux 内核蓝牙驱动移植

    实验原理 FS MP1A开发板蓝牙采用 AP6236 AP6212 WIFI蓝牙二合一芯片 蓝牙部分通过 usart3与 SoC 进行数据交互 注意 此部分内容为 AP6236 AP6212 移植过程 如果 WIFI 蓝牙是 USB 模块可
  • 技术部岗位职责——技术部经理

    一 制定工作计划 根据企业新产品开发 工艺技术改进计划制定技术部的年度 季度工作目标和工作计划 经批准后组织实施 根据产品研发与工艺技术发展需要 制定工艺试验研究计划 并组织实施 二 技术研发管理 编制本部门各项管理程序 新产品工艺技术标准
  • OpenWrt Makefile 整体分析

    分析版本 svn svn openwrt org cn openwrt branches backfire OpenWrt基本结构 target Linux 目录里面是各平台 arch 的相关代码 target linux config 文
  • oracle中存储过程 查询出多条数据的处理方法

    oracle中存储过程 查询出多条数据的处理方法 用游标处理 定义游标 cursor a is select begin open a loop fetch a into 自己定义的变量 开始操作 end loop close a end
  • Charles下载ssl证书-app端

    1 点击help 选择SSL Proxying 选择安装app端ssl证书 2 这里可以看到我们的IP 以及端口号 3 在手机端更改WiFi的代理 切换为手动代理 IP端口更改为提示的信息 注意电脑端跟移动端必须保持在同一网络下 4 这里电
  • Secure Federated Matrix Factorization学习总结

    Secure Federated Matrix Factorization学习总结 背景 传统的矩阵分解推荐系统 会泄漏用户的评分信息 特征向量 可能大家会觉得泄漏这两种信息不重要 但是通过这两种信息 恶意攻击者可以进行inference