写点什么

联邦学习针对推荐场景化的技术原理解析

  • 2019-12-19
  • 本文字数:2871 字

    阅读完需:约 9 分钟

联邦学习针对推荐场景化的技术原理解析

2019 年 12 月 8 日至 12 月 14 日,微众银行首席人工智能官杨强教授受邀参加于加拿大温哥华举办的人工智能和机器学习领域的国际顶级会议:神经信息处理系统大会(Conference and Workshop on Neural Information Processing Systems,简称 NeurIPS)。在微众银行联合谷歌、卡内基梅隆大学举办的联邦学习国际研讨会上,杨强教授以《Federated Recommendation》为主题,分享了微众银行首创的联邦推荐技术的最新研究成果和应用落地。



图:微众银行首席人工智能官杨强教授发表演讲


推荐系统应用广泛,已经渗透到人们生活各个方面,例如新闻推荐、视频推荐、商品推荐等。为了实现精准的推荐效果,推荐系统会收集海量用户和所推荐内容的数据,一般而言,收集的数据越多,对用户和推荐内容的了解就越全面和深入,推荐效果越精准。在现实场景中,随着用户数据安全和隐私保护相关政策相继出台和日益完善,这些数据通常为保护用户数据隐私而以“数据孤岛”的形式分散在不同的机构。因此在“数据孤岛”与“隐私保护”的现实问题中,在合理合法的前提下使用数据持续优化效果提供优质服务,是当前推荐系统所面的巨大挑战和首要任务。

FATE:首个支持联邦学习架构体系的工业级联邦学习开源框架

微众银行提出的联邦学习解决方案能够让多个机构同时协作,通过交换加密的模型参数进行综合训练持续优化模型,以合理合法的方式跨越数据鸿沟,解决“数据孤岛”的问题。微众银行开发的工业级的联邦学习开源框架–FATE(Federated AI Technology Enabler,https://www.fedai.org),作为联邦学习全球首个工业级开源框架,支持联邦学习架构体系,为机器学习、深度学习、迁移学习提供了高性能联邦学习机制,FATE 本身还支持多种多方安全计算协议,如同态加密、秘密共享、哈希散列等,具有友好的跨域交互信息管理方案。

联邦推荐

推荐系统中算法的目标是挖掘用户和内容、商品之间的联系,根据问题的特点,微众银行将联邦推荐算法总结成三类,如下图所示,包括横向联邦推荐算法(也可称为基于商品的联邦推荐)、纵向联邦推荐算法(也可称为基于用户的联邦推荐)和迁移联邦推荐。




图:联邦推荐算法分类


纵向联邦推荐(即基于用户的联邦推荐)主要解决参与方(机构)拥有大量相同的用户但是不同的商品或用户特征时如何协作构建推荐系统的问题,例如新闻推荐服务商和视频推荐服务商的联邦,或者推荐服务商和用户数据提供商的联邦。横向联邦推荐(即基于商品的联邦推荐)主要解决在参与方拥有大量相同的商品但是不同用户群体时如何协作构建推荐系统的问题,例如不同地区相同推荐服务之间的联邦。迁移联邦推荐主要解决参与方在相同用户和商品都不多的情况,如何协作分享经验构建推荐系统的问题。


针对不同的分类,基于当前推荐系统最常用的矩阵分解(matrix factorization)和因子分解机(factorization machine)算法,微众银行提出联邦矩阵分解、联邦因子分解机等算法。这些联邦推荐算法基于 FATE 框架开发,使用统一的优化流程。以纵向联邦推荐的两个场景为例子,给大家介绍纵向联邦矩阵分解和纵向联邦因子分解机的思路和优化方法。

联邦推荐场景一:参与机构为大量相同用户分别提供书籍和电影推荐服务

具有相同观影兴趣的用户很可能有相同的阅读兴趣。因此双方的联邦是非常有必要的,结合双方数据构建的推荐系统在性能上会优于仅仅使用一方数据构建的系统。



图:纵向联邦推荐场景一,多个参与机构为大量相同用户提供不同推荐服务


在这个场景下,以常用的矩阵分解为例子,给出纵向联邦推荐的一个解决方案,我们让两个参与方在机构内部分别进行矩阵分解,将用户在商品上的评分矩阵分解成 user profile 和 item profit 的乘积,如下图中的公式所示:



图:纵向联邦矩阵分解示意图


其中 user profile 由双方共享,为此我们引入一个可信的第三方 server 来维护共享的 user profile,并帮助各方推荐算法的构建 (在这里需要说明的是,在最新的 FATE 技术中,可信的第三方可以去除,基于加密技术以及多次通讯,双方在安全可靠的方式下进行参数共享)。算法的优化流程如下图所示:



图:纵向联邦矩阵分解优化流程


  • 首先由 server 初始化 user profile 并加密,参与方分别初始化自己的 item profiles

  • Server 将加密的 user profile 发送给参与方

  • 参与方解密 user profile 并更新自己的 item profile;同时计算 user profile 的梯度,加密后发送给 server

  • Server 汇总接收到 user profile 梯度,在密文状态下更新 user profile。

  • 重复步骤 2-4,直到收敛


从更新过程,我们可以看出,参与方的数据完全保持在本地,双方仅交换 user profile 参数,同时 server 也是在密文环境下操作双方计算出来的 user profile 梯度,对内容不知情,不存在隐私泄漏风险。最后,双方都有了自己的模型,而且模型是结合双方的数据优势后共同构建。

联邦推荐场景二:参与机构为推荐服务提供方和用户数据提供方

以书籍推荐服务商和用户兴趣数据提供商的联邦为例,书籍推荐服务商对用户了解越深入推荐越精准。数据服务提供商在合理合法的前提下,进一步扩大数据的应用价值。



图:纵向联邦场景二示意图


在有用户特征的场景下,交叉特征对推荐系统效果的提升帮助非常大,例如交叉地区特征和运动兴趣特征,可以给不同地区有不同运动兴趣的用户推荐合适的明星传记。因子分解机(factorization machine)是推荐领域处理特征交叉的较常用算法。在联邦推荐场景下,我们提出联邦因子分解机,如下图所示,在数据不出本地的情况下,同时完成参与方内部的特征交叉和参与方相互之间的特征交叉。



图:纵向联邦因子分解机示意图


联邦因子分解机的优化过程如下图所示,


  • 首先参与方初始化自己的模型

  • 参与方分别计算部分预估结果,部分损失值,部分特征的梯度等中间结果,加密后传送给对方

  • 双方将加密并加入掩码的梯度发送给 server

  • Server 解密带掩码的梯度汇总后发送给参与方

  • 参与方去除掩码并更新模型

  • 重复步骤 2-5,直到模型收敛



图:纵向联邦因子分解机优化流程


经过联合建模,参与方分别得到部分训练好的联邦 FM 模型,当对新样本进行预测时,需要两方一起完成预测任务


第一步,A、B 双方各自完成本身中间结果的计算,加密并传到服务器


第二步,服务器聚合双方中间结果,解密得到预测值


第三步,服务器将预测值发回给 A 方进行推荐


推荐系统是数据驱动的,数据对效果的提升有很大帮助。在使用数据的过程中,如何有效的保护隐私和安全是急需解决的问题。微众银行在该方向上做了初步的探索和应用,同时,也在积极推进关于联邦学习国家和国际标准的建立。


2019-12-19 08:262712

评论

发布
暂无评论
发现更多内容

如何在渲染之前等待 Axios 数据?

吴脑的键客

大前端 React axios

【性能优化实战】Android架构组件Room功能详解

欢喜学安卓

android 程序员 面试 移动开发

手撸二叉树之二叉搜索树的最近公共祖先

HelloWorld杰少

数据结构与算法 8月日更

springcloud 微服务日志写入kafka

Rubble

kafka Spring Cloud 8月日更

ToastUtil实用封装

Changing Lin

8月日更

【吐血整理】大牛耗时一年最佳总结,让你的app体验更丝滑

欢喜学安卓

android 程序员 面试 移动开发

JVM

ltc

JVM

经验之谈:程序员应该如何学好大数据技术

博文视点Broadview

体验有奖 | 1 分钟 Serverless 部署掌上游戏机,“一行命令”找回小时候的乐趣!

Serverless Devs

【Git技术专题】如何使用git中的tag进行版本开发控制?

码界西柚

git 8月日更

手把手教你怎么导入Go语言第三方库「让我们一起Golang」

Regan Yue

后端 Go 语言 8月日更

态势感知一屏可视:数治安全,智理未来

一只数据鲸鱼

网络安全 数据可视化 数据监测 数字孪生

我两年的坚持,值了!

程序员鱼皮

Java JavaScript 腾讯 职场 大前端

分布式拒绝服务 (DDoS) 攻击对企业运维造成的影响分析

九河云安全

华为云UGO:醒醒!你的异构数据库迁移难题有救了

华为云开发者联盟

数据库 迁移 华为云 异构数据库 UGO

架构实战营毕业设计

eoeoeo

架构实战营

混合基础设施下,服务网格(Service Mesh)如何对应用进行统一管理

韩陆

LeetCode题解:173. 二叉搜索树迭代器,栈,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

软件架构模式之微服务架构

架构精进之路

架构 微服务 8月日更

SLB 负载均衡实践

若尘

负载均衡 阿里云 弹性负载均衡 8月日更

这些智能合约漏洞,可能会影响你的账户安全!

华为云开发者联盟

区块链 智能合约 安全 形式化验证 华为区块链服务

【秋招面试专题解析】成功入职头条月薪35K

欢喜学安卓

android 程序员 面试 移动开发

面试官:展开说说,Spring中Bean对象是如何通过注解注入的?

小傅哥

spring 小傅哥 注解注入

用微服务架构方式交付云服务产品

用友BIP

容器 微服务 专属云

Java代码中,如何监控Mysql的binlog?

码农参上

Binlog 实战

如何用EasyRecovery恢复U盘内损坏的数据

淋雨

文件恢复 硬盘数据恢复 Easyrecivery

CodeDay#8:支付宝都在用的容器技术了解一下

蚂蚁集团移动开发平台 mPaaS

小程序 支付宝小程序 支付宝 移动开发 mPaaS

积极重夺制造霸主地位,英特尔不玩“纳米游戏”了

E科讯

24岁,月薪35k!全靠这份阿里P5-P9知识核心手册+10W字面试题总结

Java架构追梦

Java 阿里巴巴 架构 面试

「跨链网关的模块化进程」插件机制演化

趣链科技

联邦学习针对推荐场景化的技术原理解析_开源_Geek_684d95_InfoQ精选文章