【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

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

  • 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 方进行推荐


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


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2019-12-19 08:262099

评论

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

45岁程序员发求职贴:精通各种技术体系,却连个面试机会都没有…

Java高级开发

Java 程序员 面试 职场

盲盒开发蛋趣芒趣一番赏源码搭建

盲盒开发盲盒小程序源码搭建app

CSS奇技淫巧之滤镜(二)drop-shadow

Augus

CSS 11月日更

盲盒开发盲盒系统开发定制

自定义View:ViewGroup与View的事件传递

Changing Lin

11月日更

为何飞书成了先进企业的标配?

ToB行业头条

ABAP 和 Java 的单元测试 Unit Test

Jerry Wang

Java abap 11月日更 JavaSAP

华为云GaussDB NoSQL云原生多模数据库的超融合实践

华为云数据库小助手

GaussDB 华为云数据库 GaussDB NoSQL

盲盒app开发盲盒小程序开发

盲盒一番赏APP开发源码搭建

使用 Node.js 消费SAP Cloud for Customer上的Web service

Jerry Wang

node.js SAP C4C 11月日更

解决文件存储难题 openGauss隆重推出段页式特性

openGauss

Ustore在openGauss闪亮登场,重构openGauss数据存储的灵魂

openGauss

盲盒app开发小程序源码定制

一网打尽!音乐高手都在使用的打谱软件不藏私推荐!

懒得勤快

从0到10彻底搞懂信息流【投放系统】

水泽山林

系统架构 推荐系统 智能投放 内容平台

关于openGauss账本数据库:你想知道的这里都有

openGauss

Hadoop实战篇-集群版(2)

进击的梦清

大数据 hadoop zookeeper

Android C++系列:Linux文件IO操作(二)

轻口味

c++ android jni 11月日更

“太白”团队加入OpenInfra Labs,联合社区成员共同完善多云管理技术

Python代码阅读(第59篇):根据value查询字典key值

Felix

Python 编程 阅读代码 字典 Python初学者

我就获取个时间,机器就down了

安第斯智能云

Linux 后端

盲盒app开发源码搭建小程序app

dart系列之:元世界pubspec.yaml文件详解

程序那些事

flutter dart 程序那些事 11月日更

如何用EasyRecovery恢复中毒U盘中丢失的文件

淋雨

EasyRecovery

这个无敌设计,可以解析并运算任意数学表达式

Tom弹架构

Java 架构 设计模式

987页的Java面试宝典,看完才发现,应届生求职也没那么难

热爱java的分享家

Java 架构 面试 程序人生 编程语言

AI界的革命!终于可以自动标注了!

百度开发者中心

AI 自动标注工具

SOLID原则之 单一职责原则

面向对象的猫

SOLID

盲盒开发盲盒源码搭建系统开发

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