写点什么

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

  • 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:262256

评论

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

用Apipost进行Websocket调试教程

不想敲代码

微服务 websocket 接口调试

JVM参数:带你认识-X和-XX参数

华为云开发者联盟

开发 华为云 企业号 2 月 PK 榜 华为云开发者联盟

【IntelliJ IDEA】idea中的插件之一:Free Mybatis plugin跳转插件的使用(方便在Dao接口和Mappper XML文件之间进行切换)

No8g攻城狮

插件 IntelliJ IDEA

简单好上手!1分钟带你体验Apipost

叶小柒

ITSM | Atlassian被Gartner评为IT服务管理平台魔力象限的领导者

龙智—DevSecOps解决方案

Atlassian ITSM Gartner

婚庆LED显示屏打造梦幻婚礼

Dylan

LED显示屏 led显示屏厂家 户内led显示屏

助力芯片产业蓬勃发展,诚翔滤器推出光刻机过滤器

电子信息发烧客

版本控制 | 如何利用虚幻引擎进行虚拟制作,为电影制作带来更多可能

龙智—DevSecOps解决方案

游戏引擎 虚幻引擎 虚幻引擎5 虚拟制作

DiffusionDet 用扩散模型解决目标检测

Zilliz

落地DevOps的路线图

老张

DevOps 软件工程

SAP的良好业绩,能否敲响国内厂商的警钟?

ToB行业头条

前端leetcde算法面试套路之树

js2030code

JavaScript LeetCode

前端leetcde算法面试套路之堆

js2030code

JavaScript LeetCode

简单了解下linux与windows两者的区别-行云管家

行云管家

Linux

KCL 与其他 Kubernetes 配置管理工具的异同 - Helm 篇 - Helm 篇 [一个自研编程语言能做什么?(系列 3)]

Peefy

Kubernetes DevOps 编程语言 #开源

架构作为6

梁山伯

共赴元宇宙新纪元,华为云VR开发应用大赛总决赛倒计时7天!

华为云开发者联盟

人工智能 华为云 VR开发应用 企业号 2 月 PK 榜 华为云开发者联盟

“堆外内存”这玩意是真不错,我要写进简历了。

why技术

Java 程序员 面试

备战金三银四:1200道Java面试真题合集,助你搞定面试官

架构师之道

Java 编程 程序员 java面试

对比开源丨Prometheus 服务多场景存储压测全解析

阿里巴巴中间件

阿里云 云原生 Prometheus

堡垒机真的安全吗可靠吗?大家喜欢哪款?

行云管家

等保 堡垒机 等级保护 堡垒机品牌

技术交错革新,移动开发平台机会和挑战并存

FinFish

移动开发 移动开发平台 移动应用开发

【IntelliJ IDEA】idea常用快捷键汇总

No8g攻城狮

IDEA intellij IntelliJ IDEA

一文详解TensorFlow模型迁移及模型训练实操步骤

华为云开发者联盟

人工智能 华为云 昇腾AI 企业号 2 月 PK 榜 华为云开发者联盟

开源工具系列3:Prowler

HummerCloud

云安全

工赋开发者社区 | 达摩院开源半监督学习框架Dash,刷新多项SOTA

工赋开发者社区

2023计算机领域顶会(A类)以及ACL 2023自然语言处理(NLP)研究子方向领域汇总

汀丶人工智能

人工智能 自然语言处理 2月日更 计算语言学协

chatgpt背后的人工和智能

刘旭东

ChatGPT

用 AI 取代人工?或许 LLMs 可以给你答案

鼎道智联

#人工智能

用javascript分类刷leetcode21.树(图文视频讲解)

js2030code

JavaScript LeetCode

drools规则动态化实践

京东科技开发者

Java 规则引擎 业务逻辑 企业号 2 月 PK 榜 drl

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