分享嘉宾:谭奔 微众银行 高级研究员

编辑整理:王少华

内容来源:微众·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

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

本次分享的PPT已收录到小程序省时查报告中,大家可以到小程序中查看并下载,也希望大家把小程序分享给身边有需要的朋友们,分享一个好友可以获得2天的VIP哦~

「 更多干货,更多收获 」【干货】如何从0到1构建用户画像系统?自然语言处理技术在推荐系统中的应用和发展【报告分享】2020年中国知识图谱行业研究报告.pdf推荐系统工程师技能树
300余份数字化资料包免费下载
【电子书分享】美团机器学习实践.pdf【白岩松大学演讲】:为什么读书?强烈建议静下心来认真看完
关注我们

智能推荐

个性化推荐技术与产品社区

长按并识别关注

一个「在看」,一段时光????

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

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

    开发者(KaiFaX) 我们都是开发者专注于前端.后端.大数据.区块链.人工智能的知识社区 作者:谭奔 微众银行 高级研究员 来源:微众·AI,DataFunTalk 导读:现如今推荐系统已经得到了广 ...

  2. 【实践】微博推荐算法实践与机器学习平台演进.pdf(附PPT下载链接)

    大家好,今天给大家分享新浪微博申恩兆老师所做的分享<微博推荐算法实践与机器学习平台演进>,本次分享的PPT共38页,包含如下四大部分: 1.微博数据规模简介: 2.相关推荐场景描述: 3. ...

  3. 【推荐实践】微博在线机器学习和深度学习实践(文末附PPT下载链接)

    更多细节请关注公众号并回复"微博",获取下载链接. 「 更多干货,更多收获 」 推荐系统系列教程之十二:Facebook是怎么为十亿人互相推荐好友的? [干货]史上最全个性化推荐技 ...

  4. Embedding技术在房产推荐中的应用(文末附PPT下载链接)

    分享嘉宾:周彤 58同城 资深算法工程师 编辑整理:吴雪松 内容来源:58推荐系统技术沙龙 出品平台:DataFunTalk 导读:在深度学习的应用过程中,Embedding 这样一种将离散变量转变为 ...

  5. 【实践】推荐召回体系化建设与排序优化实践(附PPT下载链接)

    大家好,今天给大家带58同城TEG推荐技术负责人罗景在2021年全球机器学习大会上所做的分享<推荐召回体系化建设与排序优化实践>,本次分享的PPT共44页,包含如下四大部分: 1.业务背景 ...

  6. 【推荐实践】RALM:实时Look-alike算法在微信看一看中的应用(附PPT下载链接)...

    话不多说,直接上干货,文末附PPT及论文下载链接. 更多细节请关注公众号并回复"看一看",获取下载链接. 论文链接: Real-time Attention Based Look- ...

  7. 【实践】飞猪交通个性化搜索推荐技术的实践与创新(附PPT下载链接)

    今天给大家带来阿里巴巴飞猪导购算法(搜索&推荐 )部李阳先生所做的分享<飞猪交通个性化搜索推荐技术的实践与创新.pdf>,本分享共包含如下五大部分: 1.背景:交通业务介绍: 2. ...

  8. 电脑神器推荐 地表最强播放器 (文末附下载资源)

    文章目录 一款你值得拥有的播放器potplayer 推荐理由 个人常用功能 最后 安装包 一款你值得拥有的播放器potplayer 推荐理由 对于各类职业的你来说,它真的值得你拥有 兼容性强,可支持市 ...

  9. 分类算法python程序_分类算法——k最近邻算法(Python实现)(文末附工程源代码)...

    kNN算法原理 k最近邻(k-Nearest Neighbor)算法是比较简单的机器学习算法.它采用测量不同特征值之间的距离方法进行分类,思想很简单:如果一个样本在特征空间中的k个最近邻(最相似)的样 ...

最新文章

  1. linux 在硬盘中创建文件系统,linux mkfs命令创建Linux文件系统
  2. Python使用numpy包编写自定义函数计算平均绝对误差(MAE、Mean Absolute Error)、评估回归模型和时间序列模型、解读MAE
  3. 循环截取字符串添加换行
  4. Cloud for Customer手机应用上传图片禁止从本地相册选择图片的核心代码
  5. jquery实现无限滚动瀑布流实现原理
  6. 《剑指offer》面试题23——从上往下打印二叉树
  7. 从认知盈余说起,也谈分享精神
  8. 主成分分析(PCA)原理、步骤
  9. flush和evit
  10. 零基础可不可以学前端?我来告诉你
  11. 【测试源】【rtmp flv hls】拉流播放测试
  12. 牙医管家口腔管理软件DSD微笑设计3.8版本更新
  13. Centos7文本处理工具
  14. 怎么把html格式转换成数字,怎么把数字转变成文本格式
  15. 饥荒机器人雷击_饥荒机器人怎么被雷劈
  16. IOT物联网商业源码完整版下载附搭建教程
  17. 虚拟服务器巡检,服务器巡检方案
  18. python在线编程免费课程-少儿编程网-Scratch_Python_教程_免费儿童编程学习平台
  19. 微波射频学习笔记15-------了解1/4波长天线
  20. win8.1 错误0xc000021a 不断重启

热门文章

  1. SAP License:SAP IDES常用功能及测试环境
  2. 怎么做一张优雅的数据源监控报表
  3. 你模型的变量符合业务逻辑了吗
  4. 风控模型中的五大类聚类算法介绍
  5. 【重磅】App内可直接打开微信小程序,新增内容安全接口等
  6. bzoj4195 [Noi2015]程序自动分析
  7. nsis 固定到任务栏
  8. POJ 1948 Triangular Pastures (二维01背包)
  9. android手机连接PC后怎样切换为U 盘模式
  10. MOSS 2007 错误0x80040E14解决