心动是一家全球游戏开发和发行商,从 2009 年以来提供多款网页游戏和手游。截至 2022 年中,心动运营 38 款免费和付费游戏,目前在全世界拥有 5,000 万月活跃用户,主要分布在大中华地区、东南亚、北美和南美。2016 年,心动推出手机游戏社区和应用商店 TapTap,截至2021财年在全球有 4,400 万月活跃用户。
借助 TapTap ,玩家可以通过官方渠道免费下载手机游戏,或付费购买手机游戏与服务。玩家亦可评价、讨论游戏,在社区中与其他玩家交流。TapTap 也为开发者提供了一套游戏发行服务,并免费提供了一套软件开发工具包,称为「TapSDK」。开发者可以通过 TapSDK 将 TapTap 的好友功能、成就功能等服务集成到自己的游戏中。
不同于传统应用商店的「分成」商业模式,TapTap 自创立开始至今即坚持「零分成」——不会向 TapTap 上架的游戏,收取充值流水的分成。这个模式让游戏厂商可以获得 100% 的流水收入,更有利于行业良性发展,同时也对 TapTap 的商业化提出了更高的要求。在此背景下,TapTap 的商业化目前主要由广告收入驱动。
1. 业务痛点:业务增长缓慢,急需大数据技术反哺
我所在的 TapTap IEM 组全称 Intelligence Engine & Monetization,负责整个 TapTap 的流量资源分配和商业化相关的工作,是先进技术驱动的业务型团队。 TapTap 作为社区型游戏商店,属于典型的多边平台经济模型,涉及到用户、商家以及创作者三方需求的满足,平台的增长很大程度上依赖于这三者的连接效率。
IEM在其中扮演核心角色:以机器学习算法为基础,对 TapTap 各个业务场景进行精细化的建模和优化,驱动业务增长,包括但不仅限于首页的游戏推荐、首页的原生广告、动态内容 feeds 、搜索、内容 C2M 增长、对外广告投放以及 Push 推荐等,核心是以广告变现为主要的盈利模式。
随着新兴的游戏公司崛起,以及公司游戏业务老产品成熟度趋于成熟,APP上游戏的下载量开始下滑,月活用户数也较去年同期有较大幅度下降,最直接的影响就是商业化的营收和利润下滑。为了进一步提升广告营收促进业务增长,于是从2021年开始,公司围绕广告、搜索、推荐等业务引入阿里云大数据和机器学习技术(Hologres+MaxCompute+DataWorks+PAI),成立大数据+AI数据中台,打通TapTap、心动游戏和开发者平台数据,通过大数据技术提升数据的智能化、精细化运营,从而反哺业务高速增长。
在下文中,我将会详细介绍如何通过阿里云大数据技术赋能TapTaP实时推荐等多个场景,助力业务精细化增长。
2. 解决方案:大数据技术架构升级,促进业务实时化、数智化
2.1 推荐业务需求:高吞吐的在线实时查询
TapTap 的核心业务场景主要包括 App 首页实时个性化推荐、在线搜索、广告精准投放等。其中首页实时推荐增长乏力,因此我们本次大数据的建设核心主要以推荐业务为主。
点击率预估对于搜索、广告、推荐等业务而言,都是最核心的技术之一,可以准确地预估用户在不同场景下对于不同的「商品」的点击、下载以及各种转化概率,对于进一步提高各个业务的转化率、产品的DUA,以及各个场景的渗透率都有很大意义。
在业务一开始,我们团队就定位于打造业界最先进的深度学习模型预估体系,实现技术驱动商业,让用户发现好游戏的愿景。为了达成业务目标,在在产品选型阶段,我们从技术角度分析了目前推荐业务的需求:
2.1.1 高效的向量召回服务
向量召回是模型预估系统的第一个阶段,将样本数据通过机器学习训练模型后,根据用户和产品的特点,快速检索出少量用户可能感兴趣的物品,然后进行粗排/精排,这个过程就叫向量召回。这部分要处理的数据量非常大,要求速度快,以及使用的所有策略、模型、特征都不能太复杂。
2.1.2 高吞吐的毫秒级实时模型特征查询
我们需要对用户的特征进行快速的查询然后对接推荐引擎,作为线上实时推荐。特征服务需要对接线上系统,流量会非常高,因此一般要求低延迟,上线时间基本在10ms左右。同时对 TapTap 而言,上亿的用户量有着非常大量级的特征,因此系统还需要满足大容量(数亿行,数百列的大表)的存储需求。
2.1.3 模型高精度和自动化部署
模型的精确度计算,决定了最终推荐的效果,因此我们需要一款能有着高精度的模型训练框架。同时因为策略不同,我们也会不断修改模型的训练框架和验证效果,以验证出最佳的训练结果,期间需要涉及大量的模型训练,我们也需要模型能够自动化部署,这样能节约很多的开发成本。
基于上诉诉求,在选型阶段我们进行了多方调研,从性能、功能及运维成本多维度对比后,我们选择了阿里云云原生大数据AI一体化解决方案(Hologres+MaxCompute+DataWorks+Flink+PAI),帮助我们业务实现快速增长及商业化。
3. 通过阿里云大数据建设的推荐业务
下面是推荐业务的整体架构:
在最初的阶段,我们把所有数据都存放在EMR集群上,同时出于模型开发需要, 我们也引入PAI-TF,PAI-EAS等AI基础设施,借助MaxCompute湖仓一体方案打破数据湖与数据仓库割裂的体系,将绝大部分数据都整体迁移到MaxCompute,使得模型可以直接基MaxCompute中的数据进行大规模分布式深度学习训练。 而Hologres又在特征存储和召回阶段的多个场景中起到了关键作用。其中:
- MaxCompute主要是离线特征数据以及离线指标存储和处理
- Flink实时计算实时特征数据
- 机器学习PAI主要用于模型训练和模型部署
- Hologres作为统一存储引擎,加速MaxCompute离线数据,以及存储Flink实时写入的数据。并提供OLAP报表分析以及在线推荐查询。
- DataWorks作为一站式开发平台,所有的周期性调度,数据建模等任务都在DataWorks上进行,并提供数据治理、数据地图等功能,满足日常开发管控需求。
通过阿里云云原生大数据AI一体化解决方案,目前支持了 TapTap 推荐业务的多个业务场景,主要包括:
3.1 用户召回
通过Hologres的向量计算功能,以一些trigger如用户id,商品id,或者搜索词等, 召回PAI中训练的样本数据,并对接线上系统,以此来完成用户可能感兴趣商品的召回。
3.2 App首页实时推荐
MaxCompute 中存储离线 MaxCompute 存储离线特征数据,并对接 PAI 进行离线模型训练,训练后的模型数据通过 Hologres 加速查询。Flink 实时计算实时特征数据比如用户最近点击过的N个游戏、该游戏最近N分钟内的平均打分等特征数据,并关联实时生成样本数据写入 Hologres 中存储,以在线服务查询的方式提供给 App 推荐系统,以此完成在线实时推荐。
3.3 实时报表查询
在 TapTap 多个业务场景中,我们需要观察极为大量的业务指标和线上数据。对于支撑报表的数据服务MaxCompute 来说压力还是比较大的,我们需要查询数据量更大、响应更快的报表加速能力。因此通过 Hologres加速查询 MaxCompute 的数据,对接 QuickBI 报表,以此来满足内部运营对数据快速探索的能力,辅助下一步运营决策。
4. 高可用部署保障在线服务读写分离
因为推荐业务对系统的时效性有着非常强的需求,而我们之前将Hologres作为服务的中心,既承担数据存储,又有在线推荐的场景,同时又有报表查询场景的周期性导入以及大 query 查询的场景,当有偶发性大量写入或者大query消耗资源较多时,就会导致线上推荐服务会受到一点的影响,从而影响推荐效果。因此我们采用了 Hologres 的多子实例部署方案。主实例和子实例会共享一份存储,主实例主要用于离线数据导入,实时数据写入以及报表查询,子实例主要用于在线推荐。
通过多子实例的部署,解决了读写相互竞争资源,从而引发在线推荐业务超时的问题,真正的隔离了资源,提高了系统的可用性。
调整前:
调整后:
5. 业务价值:推荐业务成为TapTap游戏分发最大来源
通过Hologres+PAI+Flink+MaxCompute+DataWorks大数据技术加持后, TapTap 多个应用场景包括搜索,推荐,广告等数据变更更加智能化,实时化,其中主要的业务价值有:
5.1 实时个性化推荐
- 通过大数据+AI 的加持,App首页的流量从搜索为主转变为推荐为主,提升玩家使用体验,助力客户真正发现好游戏,显著提高了业务营收。
- 构建了完整的用户画像,通过数据运营的方式,帮助内部开发了解真实用户需求,从而对游戏进行快速迭代以及推陈出新等,实现了正向闭环。
- 数据写入和查询的效率变得更快,能够实时写入实时查询,加快对数据探索的效率,同时高流量的推荐业务查询毫秒级响应,快速助力业务实时个性化推荐。
5.2 低成本
- 在阿里云大数据体系下的深度整合,可以做到用极低的开发成本,机器成本将数据同步到线上直接使用,极大的提高的算法工程人员的开发效率,也减少了大量不必要的开发.
- 相比我们最早期的特征服务方案,将大规模特征序列化存储Redis, 改用 Hologres 之后,为我们团队带来了极大的效率提升,算法同学基本可以通过一键生成的脚本,快速把数据推到 Hologres ,大幅缩短了上线流程和时间。
- 自从使用 Hologres 之后,就再没有出现过特征爆存储的问题,这为我们后续迈向更高的DAU,更高的用户量级,都打下来了坚实的技术基础.。
5.3 在线服务高可用
通过 Hologres 主从实例的部署的方式,让业务实现了写入和线上服务查询隔离,即使是高并发查询也依旧可以保持较低的延迟,为搜索广告在线推荐提供了稳定服务。
了解Hologres