微信游戏推荐系统大揭秘

本文详细介绍了微信游戏推荐系统的设计与实施,包括离线机器学习平台、统一推荐管理平台、在线推荐引擎的架构,以及实时化方案。系统服务于微信游戏业务,涵盖了从数据处理、特征工程到模型训练的全过程,旨在帮助玩家找到合适的游戏并提升游戏体验。在应对数据量大、场景多变的挑战时,系统实现了配置化和低代码化,降低了开发成本并提高了效率。
摘要由CSDN通过智能技术生成

作者:boxianlai,腾讯 WXG 应用研究员

这篇文章整理于 2020 年 12 月 31 号在腾讯 WXG T 族开放技分享材料,分享内容是我们在搭建一套适合微信游戏业务特色推荐系统过程中的设计方案和实践经验。这套系统从 18 年底开始设计 19 年初开发完成,现在已经在业务上运行了一年多,当前部门所有的推荐业务都已经应用上这套能力,包括所有精品 app 游戏分发和游戏相关的内容推荐、几万款小游戏分发,服务着几亿微信游戏玩家。在实际业务应用中,它切实满足了很多业务对推荐的诉求,同时在业务核心指标上有了不错的提升,下面是最近一段时间三个不同类型应用场景:小游戏推荐、游戏精细化运营挖掘、定向分享收到的业务产品同学的反馈,没有商业互吹,都是真实对业务指标有提升。

我们在搭建过程中很多设计思想和实践经验相信也对其他 BG 的同学有借鉴价值,所以把此次分享内容整理成了一篇文章,希望对大家有一些帮助。

1、业务和项目背景介绍

微信增值业务部当前核心业务是游戏,也就是在微信场景下连接游戏玩家与游戏,同时给玩家提供丰富的游戏服务,比如攻略、战绩、视频、直播等内容,王者周报、和平周报、群排行榜、礼包等服务,另外还为玩家提供建连的渠道,玩家可以在游戏中心、游戏圈里面找到有共同兴趣,志同道合的小伙伴,一起玩更精彩;说了那么多,用一句话概括我们的游戏业务就是:在微信场景下,帮助游戏玩家找到感兴趣的好游戏,并且让玩家们游戏玩得更好,玩得更开心。

从上图列举的推荐场景可以看出,我们推荐系统也是围绕这个方向来落地应用的,在帮助玩家找到好游戏方面我们有精品 app 游戏分发、小游戏分发场景以及优化用户通过搜索找到目标游戏的场景;游戏服务方面我们有视频流、图文流、直播流等内容推荐场景;在玩家们建连方面我们有玩家关注推荐、游戏 kol 推荐、玩家广场等产品。在上述各种类型的推荐场景之下,每个场景又会有各种各样的业务目标,比如精品 app 游戏除了下载启动,还有新游上线前预约推广,即需要找到对游戏 ip 感兴趣的潜在用户,提升预约率;而小游戏除了启动注册目标之外,同时小游戏还有自己的商业化目标,需要预估商业价值和以流量 roi 为优化目标的场景。而对于游戏内容除了点击转换这个目标之外,还有视频完成度、下翻率、播放时长、人均 vv 等目标。

事实上,上面列举的场景只是我们众多推荐场景中的一部分,从我们推荐系统管理端来看,我们已经建立 100+场景模型(一个 taskgroup 对应一个场景接口)。但现实矛盾点是我们只有四个推荐算法同学对接业务,负责的后台也只有一个同学;针对这个矛盾点,我跟后台同学讨论一个理想的推荐场景的开发流程,希望把开发过程尽可能配置化,低代码化,如上图右边部分,算法同学只需要开发场景相关的样本和特征,并将特征表和样本表配置到推荐管理平台,在管理平台上选择合适的算法并配置参数,提交一个离线训练任务,完成后将模型文件和推荐池子相关 hdfs 路径配置到管理平台分发到现网机器上;然后在实验系统 xlab 上配置实验,将实验参数配置到统一推荐管理平台上对应的场景接口(taskgroup)参数中,打通场景接口和实验系统流量分配逻辑,最后把场景接口对应的 taskgroup 名字给到业务后台同学,业务后台同学根据这个名字调用统一的推荐接口,获取推荐打分接口,完成一个场景的推荐开发。为了达到上述的效果,我们设计了推荐系统的整体架构:

主要包括四个部分,离线机器学习平台、统一推荐管理平台、在线推荐引擎以及周边系统;

Ø 离线机器学习平台

模块的核心功能是负责离线数据处理,包括特征、画像开发、场景样本开发、特征工程等相关工作;也负责离线模型训练、离线与线上数据交互、批量打分等等。

Ø 统一推荐管理平台

推荐管理平台是推荐算法开发同学日常工作中使用最多的模块,配置算法、开发特征、配置模型、数据分发、定义推荐系统执行 DAG 图、接口 debug、线上推荐问题排查等等,可以说推荐系统涉及到的工作都在这个平台上完成。

Ø 在线推荐引擎

在线推荐系统负责提供实时接口服务,包括三个核心部分:用户特征模块、推荐执行引擎、共享内存模块;

用户特征模块: 存储用户画像和用户行为数据,起初我们使用 strkv 来存储,根据数据更新周期分为实时特征、小时级特征、天级特征、月级特征;但是月级和天级用户量非常大,上线需要十几个小时,今年统一切到了 featurekv。featurekv 写速度要远快于 strkv,但当时还不支持线上实时写入,所以实时特征我们还是用 strkv。

推荐执行引擎: 负责执行线上推荐逻辑调用,包括接收业务请求,拉去特征,拼接预测样本,调用算法模块,完成推荐打分;其中核心模块是 controller,它负责解析和执行算法同学定义的 DAG 执行图(我们把推荐的执行逻辑定义为一个 DAG 图);还有算法模块负责具体算法实现,每个算法实现是 controller 可调度执行的最小单元(除了机器学习算法实现之外,我们把一些常用的业务逻辑,比如混排、过滤逻辑等也封装成这样的执行单元,也就是后文提到的 stage)。

共享内存模块: 线上预测的时候,同一个接口不同用户请求推荐系统都会用到同一份 item 特征,模型文件,特征编码文件,推荐池子,这种类型数据常驻内存可以减少单次请求耗时,所以后台同学开发了管理这些数据的共享内存模块,结合架构部文件分发工具,算法同学可以指定文件 hdfs 路径,文件分发工具将文件分发到所有线上机器,共享内存模块检测到数据版本更新,将最新数据加载内存,完成线上数据更新。

Ø 周边系统

除了上述推荐系统运行相关的模块之外,还需要实验系统支持算法同学迭代场景模型和实时监控系统可以观测到算法上线之后的效果,线上问题的快速定位。

实验系统: 我们使用

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值