开发者(KaiFaX)

我们都是开发者
专注于前端、后端、大数据、区块链、人工智能的知识社区

作者:谭奔 微众银行 高级研究员

来源:微众·AI,DataFunTalk

导读:现如今推荐系统已经得到了广泛的应用,其性能通常是随着数据量的增加而提高。但现实中,数据往往分散在各个提供方手上,且随着数据监管政策趋严,以及数据隐私保护问题越来越受到重视,导致目前集中式的推荐系统难以进一步提高。因此,联邦推荐算法得以兴起。联邦推荐可以在数据不出本地的情况下,在加密的环境中实现和传统推荐算法一致的性能。其中,微众银行的开源平台FATE在这方面落地了多种算法,得到了越来越多的应用。今天将为大家带来微众银行在联邦推荐算法上的探索及应用。

主要内容包括:

  • 推荐系统简介

  • 联邦推荐系统

  • 联邦推荐算法原理及实现

  • 联邦推荐云服务和应用

01

推荐系统简介

1. 推荐系统应用广泛

推荐系统在互联网中的应用非常广泛,包括:电商、社交、信息流、在线视频、在线广告等场景。

2. 推荐系统极大提高效率

同时,推荐系统也是AI在商业领域成功应用的典型代表。推荐系统大大提高了用户获取信息的效率,帮助用户在海量信息中快速找到匹配的信息;另外,推荐系统还可以帮助企业找到合适的用户群,从而降低获客成本,提高投资回报率。比如,在应用推荐系统后,Youtube视频点播率提高了60%;Netflix电影的播放量提高了80%,亚马逊的用户浏览量提高了30%,这都是很大,很可观的提升。

3. 推荐系统的原理

在数学上,推荐系统是一个矩阵填充的问题。其中,矩阵的行表示用户,列表示内容/商品,矩阵中的值表示用户的行为。根据场景的不同,值可以是点击,购买,评分。以评分为例,1-5表示对应的评分,空白表示用户在这个商品上还没有评分。我们的目的是根据已有的行为记录来预测空白的值,然后根据预测的值进行推荐。为了更精准的进行推荐,还会用到很多其它的信息:包括用户信息 ( 如用户的性别、年龄、职业等维度 ) 和商品信息 ( 如商品的类别、描述文字以及推荐的环境数据(如推荐发生的时间点 ) )。

推荐系统通常会与多个数据方进行合作,从而收集更多的信息,以此提升推荐的效果。因为数据越多,对用户了解越深入,覆盖面越广,效果的提升就越大。图中相关研究也表明:随着额外数据的增加,性能随之提高。

4. 推荐系统面临的问题

① 数据孤岛问题

推荐系统是大数据驱动的应用。在理想情况下,大家可能认为数据质量很好,标签数据很充足,数据也是可以集中收集,并且触手可得的。但现实是,数据通常是分散隔离的,存储在不同的企业,即所谓的数据孤岛问题。

② 数据监管问题

例如欧盟的GDPR和国内监管政策的严格,隐私保护是推荐系统必不可少的一个环节。随着数据监管体系不断完善,各个企业都在不断的加强对用户隐私的保护。

5. 差分隐私解决方法

在这种情况下,比如差分隐私是一种比较常用的隐私保护方法。它是在数据中加入一些差分隐私来保护用户的隐私。它可以用于建模的各个环节,比如在用户数据收集的过程中加入,也可以在建模的过程中,比如梯度计算,模型参数中加入差分隐私噪声,还可以在预估结果中加入噪声。

但是,现在的方法,包括差分隐私并不能完全满足我们的需求。随着差分隐私噪声的增加,确实可以保护隐私,但性能是下降的。如上图,在增加差分隐私噪声的情况下,性能下降非常快。我们希望,有一种新的技术可以在保护隐私的情况下做到性能无损。另外一个问题是,加入噪声的数据还是有可能被集中收集,所以其并没有从根本上解决数据安全的问题。我们希望新的技术可以做到数据不出本地,从而保障数据安全和用户隐私。

02

联邦推荐系统

1. 联邦学习的优点

  • 性能无损,A fed B在保护隐私的前提下,性能和直接收集A和B数据的效果是一样的

  • 原始数据不出本地

  • 在加密条件下交换模型的参数来构建模型

2. 联邦推荐系统的分类

推荐系统中的核心数据为用户和物品的交互行为数据。根据物品和用户的共享情况,可以将推荐系统分为:

  • 纵向联邦推荐:有大量相同的用户,但是item不同,因此也叫user-based联邦推荐系统。

  • 横向联邦推荐:有大量相同的物品,但是用户不同,也叫item-based联邦推荐系统。

03

联邦推荐算法原理及实现

1. 纵向联邦推荐

纵向联邦推荐介绍:

在这个场景中,书籍和电影这两个推荐系统有共同的user,但是item不同。根据一些研究指出:将这两个推荐系统进行联合,可以提高推荐效果,因为这两个推荐系统的用户偏好是一样的。

纵向联邦矩阵分解:

以矩阵分解为例,在数据不出本地的情况下,如何构建推荐系统?

在单方的情况下,用户的评分矩阵可以分解为两个低维矩阵的乘积,即user profile p和item profile q。这两个矩阵乘积可以很好的拟合历史数据,同时可以填充矩阵中的空白值,并利用这些值进行推荐。

在多方的情况下,可以把两者的矩阵分解合并在一起,即图中的公式:第一项为A方的矩阵分解,第二项为B方的矩阵分解,第三项是正则项。其中,两方的user profile是共享的,item profile是各自独有的。为了让两方可以及时的获得最新的user profile,通过引入第三方服务器,由它来维护p,并实时分发给A方和B方。

纵向联邦矩阵分解的训练过程:

① 服务器初始化并加密user profile,参与两方各自初始化item profile

② 服务器分发加密的user profile给A和B方

③ AB两方解密user profile并基于本地数据计算loss,更新各自的item profile,然后两方分别计算user profile的梯度,并加密传输给服务器

④ 服务器汇集user profile梯度并更新user profile矩阵

⑤ 如此迭代,直到模型收敛

纵向联邦矩阵分解在FATE中的实现:

计算更新的公式如下:

纵向联邦矩阵分解在FATE中的使用:

首先是准备好数据,数据是以三元组形式保存的,包括有user ID,item ID和用户的评分。再配置好FATE job的文件,最后submit job,就可以看到模型训练的结果。

2. 纵向联邦推荐案例

在这个案例中,参与各方是有相同用户,但用户特征不一样。这个场景也是很常见的,一个推荐系统和另外一个数据提供方进行合作来提高推荐效果。

在这个场景中,需要做特征交叉。其中因子分解机是处理交叉特征的常用算法。比如将性别和电影类型进行交叉,可以挖掘出男性在战争电影、男性在爱情电影、女性在战争电影和爱情电影的不同偏好程度。对于图中例子的特征交叉,可以知道不同地区的人对不同体育项目的偏好。

联邦因子分解机:

在数据可以自由传输的情况下,是很容易处理的。但是联邦场景下,如何进行交叉呢。联邦因子分解机的目标函数经优化后,由三部分组成:在party A和party B各自内部进行特征交叉,以及在A和B之间的特征交叉。我们分别在A方和B方做一部分计算,然后在合并起来,数据不出本地。同样的,通过引入第三方服务器,在加密的状态下在A方和B方之间传递模型参数和特征交叉求和的中间结果。

联邦因子分解机训练过程:

① Party A和Party B分别初始化各自的模型

② Party B基于自己的特征计算部分预估值和部分loss,并加密发送给A

③ A方接收到以后,基于自己的特征计算部分预估值,并结合B方的预估值,计算最终的损失函数和梯度,然后将B需要的梯度和损失函数发送回B

④ A和B在完成梯度计算以后,分别将梯度进行加密并掩码,发送给第三方服务器

⑤ 第三方服务器解密并汇总梯度并发给A和B

⑥ A和B去除自己的掩码并更新自有模型

不断循环,直至收敛,最终得到自己那部分的模型。

联邦因子分解机推理过程:

在推理过程中,对于新样本,需要A方和B方共同参与,才能完成模型的预估。

① A和B首先基于自己的模型和自己的特征计算自己的特征交叉结果以及跨合作方的特征交叉结果,并加密发送给第三方服务器

② 第三方服务器汇集的中间结果

③ 第三方服务器将汇总结果发送给A方,解密后即可使用

联邦因子分解机在FATE中的实现:

联邦因子分解机的预测函数和损失函数如下图所示。特别的,将AB两方共同完成的交叉项分解为各自需要完成的计算过程。

其核心逻辑有四个:

  • 首先是实现预测函数;

  • 然后计算loss和梯度;

  • 发送给第三方服务器以及汇总,并更新;

  • 分别发送给ab方,不断进行迭代。

联邦因子分解机在FATE中的使用:

① 参与方准备数据,数据是以矩阵的形式进行存储的,包括用户ID,样本ID,样本标签,每个特征的特征值。

② 定义好配置文件

③ Guest提交训练任务,获得jobid

④ 在fate board中查看中间结果,收敛情况,预估结果,预估准确率,并根据结果调整参数

3. 横向联邦推荐

横向联邦推荐是有大量相同的物品,但各方有不同的用户。比如不同地区的电影推荐系统中,内容是一样的,但用户群体不一样。每个参与方都是一个单独的用户,但推荐的电影是一样的。

那么用户数据不出本地,如何构建推荐系统呢。

横向联邦矩阵分解:

类似于纵向联邦矩阵分解,横向联邦矩阵分解是item profile 共享。

横向联邦矩阵分解的训练过程:

① 服务器初始化并加密item profile

② 服务器将加密的item profile 发送给各参与方

③ 参与方解密item profile并基于本地数据计算loss,更新各自的user profile,并将item profile的梯度加密传输给服务器

④ 服务器汇总item profile的梯度并更新item profiles

⑤ 完成以后,每个参与方都会有各自的user profile和item profile,然后利用矩阵分解进行推荐

4. 联邦矩阵分解与传统矩阵分解的效果对比

以movielens数据集为例,将联邦矩阵分解和明文中心化的传统矩阵分解算法进行比较。从下图中可以看出training loss的变化趋势基本是一致的,因此可以说联邦矩阵分解是无损的,是可以保护用户隐私的。

04

联邦推荐云服务和应用

1. 目前腾讯云上提供两种接入方式

客户可以将自己的数据上传到腾讯云FDN,在加密的环境下,和数据提供方进行联邦推荐模型训练,并最终保存到云服务上。然后就可以调用训练好的模型。优点是轻量级,快速接入测试,

另外一种是本地部署FDN,优点是数据不出本地,安全可控。将应用数据上传到本地FDN中,FDN以加密的形式,与云服务和数据提供方进行联邦建模,最后将训练好的模型发送回本地FDN上,进行调用。

2. 联合建模预测示意图

数据提供方和推荐系统分别处理自己的数据,然后进行特征加工,抽样到FDN系统中,FDN会加密id匹配,并输出id交集或并集,进行模型训练。参与方和数据提供方会得到自己部分的模型,然后进行离线预测,评估效果或在线预测,不断的收集数据,不断的迭代和重复这个过程,优化模型。

3. 联邦推荐的应用

通过新闻推荐引擎和第三方数据提供方进行联邦学习,可以看到各种推荐指标都大幅提升。

联合第三方数据,在保证各方数据安全和用户隐私的情况下,可以做到更精确的用户分层。根据用户的数据,优化用户画像,判断是否对利润有不同的偏好,从而制定个性化的推送策略。最终提高了30%的性能。

05

总结

推荐系统是数据驱动的应用,数据对效果的提升显著。在现实中,数据孤岛、隐私保护和数据安全是亟需解决的问题。微众银行首创联邦推荐,并将其应用于多个实际场景中取得了良好的效果。

分享嘉宾:

谭奔,微众银行人工智能部高级研究员。博士毕业于香港科技大学,主要研究方向为迁移学习、推荐系统、机器学习等,目前在微众银行人工智能部门负责推荐算法研发工作,曾就职于腾讯,负责广告转化率预估、商品推荐等工作。在 KDD、AAAI、SDM、TIST 等国际学术期刊会议上发表论文 10 余篇,多次在国际数据挖掘大赛中名列前茅。

联邦推荐算法 Github 地址:

https://github.com/FederatedAI/FATE/tree/master/federatedrec

今天的分享就到这里,谢谢大家。


1. 回复“m”可以查看历史记录;

2. 回复“h”或者“帮助”,查看帮助;

开发者已开通多个技术群交流学习,请加若飞微信:1321113940 进开发群学习交流

说明:我们都是开发者。视频或文章来源于网络,如涉及版权或有误,请您与若飞(1321113940)联系,将在第一时间删除或者修改,谢谢!

开发者:KaiFaX

我们都是开发者

专注于前后端、大数据、区块链、人工智能的知识社区

微众银行在联邦推荐算法上的探索及应用相关推荐

  1. 微众银行在联邦推荐算法上的探索及应用(文末附PPT下载链接)

    分享嘉宾:谭奔 微众银行 高级研究员 编辑整理:王少华 内容来源:微众·AI 出品平台:DataFunTalk 导读:现如今推荐系统已经得到了广泛的应用,其性能通常是随着数据量的增加而提高.但现实中, ...

  2. 微众银行 算法工程师 校招 一面面经

    作者:chatPPT 内容来源:SSP面试笔记 在 SSP试笔记 看了很多面经,感谢前辈的分享,今天我也分享下面试题目: 自我介绍 对数据可视化的了解? 介绍一个熟悉的机器学习模型 聚类算法与分类算法 ...

  3. 蚂蚁金服、微众银行、度小满都来了,智能金融将何去何从?(文末福利)

    (大会官网 https://t.csdnimg.cn/U1wA) 金融业是一个数据堆砌起来的行业,有客户信息.风险控制数据.交易数据等等,如果这些数据没有被有效的管理和分析,会增加企业的经营风险和降低 ...

  4. 可信区块链推进计划互操作项目组成立,微众银行担任副组长单位

    上层应用与底层链对接切换难.不同区块链系统间互操作难.链上链下交互难等问题如何解决?中国信息通信研究院牵头启动的可信区块链推进计划给出了参考思路.7月8日,可信区块链推进计划正式成立互操作项目组,并发 ...

  5. 微众银行首席AI官杨强:联邦学习理论基础、四大应用场景与微众的AI全布局

    本文作者:周蕾 2020-06-14 09:44 导语:HKSAIR<AI金融>系列线上讲座第一课. 近日,香港人工智能与机器人学会(HKSAIR)创会理事长.微众银行首席AI官.香港科技 ...

  6. 腾讯天衍实验室联合微众银行研发医疗联邦学习 AI利器让脑卒中预测准确率达80%

    近几年,医疗行业正在经历一场数字化转型,这场基于大数据和AI技术的变革几乎改变了整个行业的方方面面,将"信息就是力量"这句箴言体现的淋漓尽致,人们对人工智能寄以厚望,希望它能真正深 ...

  7. 微众银行AI团队开源联邦学习框架,并发布《联邦学习白皮书1.0》

    (图片由AI科技大本营付费下载自视觉中国) 编辑 | Jane 来源 | <联邦学习白皮书1.0> 出品 | AI科技大本营(ID:rgznai100) [导语]2019年,联邦学习成为业 ...

  8. “联邦对抗技术大赛”9月开战 微众银行呼唤开发者共同“AI创新”

    "联邦对抗技术大赛"9月开战  微众银行呼唤开发者共同"AI创新"   从<第五元素>中的智能系统到<超体>中的信息操控,在科幻电影中人 ...

  9. 对话微众银行马智涛:数据可携带权对金融意味着什么

     关注ITValue,看企业级最新鲜.最价值报道! 图片来源@视觉中国 2021年8月20日,全国人大第十三届常务委员会第三十次会议表决通过<中华人民共和国个人信息保护法>(以下简称&qu ...

最新文章

  1. php判据的例子,科学网—Hartle-Srednicki判据 - 李淼的博文
  2. android textwatcher 延时,Java-防止两次在android的textwatcher中运行
  3. Python工程师学习笔记
  4. Vimdiff---VIM的比较和合并工具
  5. 我们都有冲动了的飞鸽传书2011
  6. HDU 3652 B-number (数位DP)
  7. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (11) - 乱序引擎/重命名器调度器
  8. 产品设计中不可忽视的意见反馈功能
  9. The summary of Interview
  10. Docker跨主机容器互传数据问题及解决方法
  11. PES实况足球2018 中文版下载解说 中超德甲亚冠世界杯夏季转会 全dlc
  12. 1260.shift-2d-grid
  13. Junit实现抽象类测试(一)
  14. 台式机配置网站服务器,台式机搭建服务器的配置
  15. 薛兆丰经济学课 1-1 人性与稀缺:经济学视角
  16. 212.样本量和测序深度的Alpha多样性稀释曲线
  17. 利用漏洞溢出掉360安全卫士逆向分析
  18. 计算机网络安全期末考试华南理工,华南理工软件学院2015期末考试-计算机网络B卷.doc...
  19. 修复duilib库UISlider控件的4个bug
  20. 使用Java实现建造者模式

热门文章

  1. 数据挖掘(pandasxgboost)
  2. 索尼前CEO平井一夫今日正式退休 结束35年索尼生涯
  3. 新商用密码产品认证梳理——认证流程篇
  4. 计算机文档软件,电脑文档软件
  5. 记录一次nodejs爬取《17吉他》所有吉他谱
  6. Kotlin1.5 新特性之 Sealed Interface(密封接口)
  7. Unable to open debugger port (127.0.0.1:51816): java.net.BindException “Address already in use: NET_
  8. 火山引擎、阿里云、腾讯云联合发布“超低延时“直播技术标准
  9. Windows注入与拦截(3) -- 使用钩子方式完成DLL注入
  10. 0.45秒!以太坊平均网络传输时间又双叒叕缩短了;以太坊全球节点分布覆盖英国、法国及德国...