在“精准推荐者得民心”的今天,推荐系统已成为各大互联网公司的标配。但由于现实中很多数据是非欧氏空间生成的(例如,社交网络、信息网络等),一些复杂场景下的业务需求很难通过协同过滤等基于历史行为挖掘用户或产品相似性的传统算法来满足。图神经网络作为一种约束性较少、极其灵活的数据表征方式,在深度学习各主要领域中崭露头角,一系列图学习模型涌现并得到越来越多的应用。

网易云音乐在推荐领域的探索

作为国民级的音乐App,网易云音乐很久之前就将定位从传统的音乐工具软件转移到音乐内容社区,致力于联结泛音乐产品与用户,打造最懂用户的音乐 App。在音乐内容社区中,直播可以说是用户参与度极高的场景了,云音乐内部投入了大量的人力物力以求将匹配度更高的主播推荐给用户,但仍然面临多重严峻的挑战。

如何破解历史行为稀少的用户冷启动问题

众所周知,推荐系统的整体框架主要包括召回、粗排和精排3个部分。其中,最底层的召回模型具有举足轻重的作用,而成功的召回推理需要依赖充足的历史数据。但在云音乐的业务场景中,通过站内广告看到直播推荐的用户很大比例是直播功能的新用户,即没有产生过观看直播行为数据的用户。如何向这类数据稀疏的用户推荐合适的内容成了亟待解决的难题,这类问题也通常被称为冷启动。

大规模图模型如何训练?

云音乐现有计算资源已全面实现容器化部署,对于各个业务团队来说,计算资源都是有限的,需要以最高效合理的方式利用有限的资源。如何在有限的分布式资源调控策略下低本高效地完成大规模图神经网络的模型训练,成为必须攻克的难题。

PGL图神经网络助力推荐场景落地

为了解决以上问题,网易云音乐的研发团队调研了大量开源方案,最终选择了对大规模图训练更加友好的百度飞桨分布式图学习框架PGL,作为云音乐的基础框架。

基于PGL的行为域知识迁移解决冷启动问题

云音乐直播场景的新用户中,有很多在音乐、歌单、Mlog 等业务中产生过较丰富的历史行为,能否通过将这部分历史行为知识映射到直播领域,来解决“行为”数据不足的问题呢?

带着疑问,云音乐引入了图模型结构,以多种不同类型的实体(如歌曲、DJ、Query、RadioID 等)为节点,通过用户与主播、用户与歌曲、Query与主播等历史行为关系,构建了一张统一的图关系网络。

然后,基于飞桨图学习框架 PGL对图模型进行训练。先采用 DeepWalk、Metapath2Vec、GraphSage等模型学习出足够强大的Graph Embedding表示来建模实体ID;再通过向量召回,将用户在歌曲、Query等处的行为迁移到主播领域,达到召回合适主播的目的。

基于PGL通用的分布式能力进行训练 

云音乐的数据规模非常庞大,数据关系即使经过裁剪也高达亿级别以上。在常用的硬件资源配备情况下,此等量级规模的数据早已成为某些开源的图神经网络框架的瓶颈,需要使用极其昂贵的计算资源才能解决。对于数据规模必将持续增大的云音乐来说,相较于使用什么类型的模型,能否在这种数据规模下训练出模型才是优先要考虑的关键问题,也是网易云音乐与PGL成功牵手的关键因素!

百度飞桨深度学习平台PaddlePaddle 2019年开源的分布式图学习框架PGL,原生支持图学习中较为独特的分布式图存储(Distributed Graph Storage)和分布式采样(Distributed Sampling),可以方便地通过上层Python接口,将 图的特征(如Side Feature等)存储在不同的Server上,也支持通用的分布式采样接口,将不同子图的采样分布式处理,并基于PaddlePaddle Fleet API来完成分布式训练(Distributed Training),实现在分布式的“瘦计算节点”上加速计算。这些能力对云音乐内容社区直播推荐遇到的训练问题来说,极具魅力!

实验对比显示,在主播推荐场景采用图计算带来有效观看大幅提升,尤其在新用户和新主播冷启动上引入其它域数据后有了明显提升。

想了解更多落地细节和实战经验?

3月16日,网易云音乐机器学习平台与框架负责人段石石,将在飞桨B站直播间分享深度学习实战进阶课程《图神经网络在云音乐业务落地》。除了上面提到的数据稀疏性、冷启动召回和大规模分布式训练等业务难题的解决方案,段老师还将分享云音乐如何应对训练数据质量、瘦计算节点等技术挑战。

3月17日,百度高级研发工程师苏炜跃将分享《飞桨分布式图学习框架PGL及其推荐应用》,重点介绍图学习算法的理论基础、图学习框架PGL的特点和优势;同时将通过演示经典大规模推荐场景的图学习训练过程,帮助大家快速学习和实现产业级的图模型实践。

扫描下方二维码

加入技术交流群

想了解更多落地细节和实战经验,3月16、17日20:10-21:30锁定AI快车道x网易云音乐直播课,我们不见不散!

飞桨图学习框架PGL

PGL是业界首个提出通用消息并行传递机制,支持百亿规模巨图的工业级图学习框架。PGL基于飞桨动态图全新升级,极大提升了易用性,原生支持异构图,覆盖30+图学习模型,包括图语义理解模型ERNIESage等,历经大量真实工业应用验证。另外,基于飞桨深度学习框架的分布式Fleet API,建立分布式图存储及分布式学习算法,实现灵活、高效地搭建前沿的大规模图学习算法。

更多资料请关注

PGL图学习框架Github代码仓库:https://github.com/PaddlePaddle/PGL

飞桨推荐系统:https://github.com/PaddlePaddle/paddlerec

飞桨分布式:https://github.com/PaddlePaddle/fleetx

飞桨深度学习框架Github代码仓库:https://github.com/PaddlePaddle/Paddle

对于想要了解图神经网络及其分布式应用的小伙伴,可以围观PGL团队倾力开发的图神经网络课程,带你七天高效入门:https://github.com/PaddlePaddle/PGL/tree/main/course

如感觉不错,欢迎“Star”;如需交流,欢迎“Issue”,我们将及时反馈;如您有基于飞桨的产业落地案例,欢迎发送至邮件paddle-up@baidu.com。

网易云音乐:基于分布式图学习的推荐系统优化之路相关推荐

  1. 网易云音乐基于 Flink + Kafka 的实时数仓建设实践

    简介:本文由网易云音乐实时计算平台研发工程师岳猛分享,主要从以下四个部分将为大家介绍 Flink + Kafka 在网易云音乐的应用实战: 背景.Flink + Kafka 平台化设计.Kafka 在 ...

  2. flink 写kafka_网易云音乐基于 Flink + Kafka 的实时数仓建设实践

    简介:本文由网易云音乐实时计算平台研发工程师岳猛分享,主要从以下四个部分将为大家介绍 Flink + Kafka 在网易云音乐的应用实战: 背景 Flink + Kafka 平台化设计 Kafka 在 ...

  3. flink source 同步_网易云音乐基于 Flink + Kafka 的实时数仓建设实践

    简介:本文由网易云音乐实时计算平台研发工程师岳猛分享,主要从以下四个部分将为大家介绍 Flink + Kafka 在网易云音乐的应用实战: 背景.Flink + Kafka 平台化设计.Kafka 在 ...

  4. 仿造网易云音乐轮播图

    这几天忙着毕业设计,其中一个页面需放上轮播图,遂听着音乐在网上寻(chao)找(xi)灵(an)感(li),猛地发现原来网易云音乐客户端的轮播图就非常好看,所以就尝试着模仿了一个,虽然十分简陋,但好在 ...

  5. 网易云音乐:基于分布式图学习PGL的推荐系统优化之路

    在"精准推荐者得民心"的今天,推荐系统已成为各大互联网公司的标配.但由于现实中很多数据是非欧氏空间生成的(例如,社交网络.信息网络等),一些复杂场景下的业务需求很难通过协同过滤等基 ...

  6. linux树莓派网易云音乐,基于树莓派的红外遥控版网易云音乐播放器

    基于树莓派的红外遥控版网易云音乐播放器.下面是遥控键盘示意图: CH- CH CH+ << >> || - + EQ 0 100+ 200+ 1 2 3 4 5 6 7 8 9 ...

  7. 细数网易云音乐上那些适合学习和工作时听的歌单。

    单独开了一个专栏,希望与大家一起分享音乐.在此之前抓取了网易云音乐的曲库,接下来将对曲库中的歌曲按照类别进行整理并且推荐给大家. 已整理分享歌单如下(点击前往): 日语歌单 放松歌单 ACG歌单 轻音 ...

  8. python网易云音乐下载_GUI图形化界面

    效果展示 1,打包exe文件,window直接可以运行 2,输入歌曲名字可以直接下载 3,下载后的歌曲保存在netease.exe文件所在的同一个文件夹中,music_netease文件夹是程序自动创 ...

  9. 网易云音乐工程师,亲自揭晓消息队列改造之路! | 技术头条

    作者 | 林德智 责编 | 胡巍巍 十年文案老司机,不如网易评论区. 网易云音乐自2013年上线后,业务保持了高速增长.本文整理自网易云音乐消息队列负责人林德智在近期 Apache Flink& ...

最新文章

  1. maven项目中如何直接访问某一个页面_整一个自己的docker镜像
  2. vim 插件_你不得不知道的适用于程序员的VIM插件
  3. Java中的finally中的return
  4. 我们都笑了freeeim
  5. git 历史操作日志_Git - 查看提交历史
  6. OpenGL中投影矩阵(Projection Matrix)详解
  7. ajax跨域,这应该是最全的解决方案了 1
  8. springboot项目搭建(mybatis + thymeleaf)
  9. 资源---2020考研---英语网站---资料3(考研英语,英语学习。宣言:自从用了这个英语网站,七大姑八大姨开始担心他家孩子比不过我了~~~~~~~~~FT中文网)
  10. python创意小作品代码-超全代码详解 Python 制作精美炫酷图表教程
  11. 马化腾惊现Leetcode每天刷题?为啥大佬都这么努力!
  12. vue动态创建三级导航
  13. python能干什么知乎-python能做什么知乎
  14. qt html转pdf 怎么取消页码,更改或删除QPrintPreviewWidg中的页码
  15. python tqdm的用法_【转】Python进度条tqdm的使用
  16. Chrome快捷键与Vimium
  17. 【进阶指南】玉米田【状压DP】
  18. C语言给小学生出题(随机1~99进行四则运算)
  19. TCL练习6:通过递归方法搜索文件夹并返回指定后缀文件(包含子目录)
  20. linux-patch用法

热门文章

  1. [WPF疑难]ErrorTemplate显示与隐藏问题
  2. 自定义MyBatis
  3. idea java 注释模板配置
  4. Java时间处理类SimpleDateFormat的parse和format方法的正确使用
  5. javascript 模块化编程----模块的写法
  6. BZOJ3160:万径人踪灭
  7. python中join的用法
  8. 如何判断一个点是否在三角形内部
  9. 自噬相关数据库Human Autophagy Database使用指南
  10. 2021年常用中药相关数据库介绍