算法&大数据如何赋能?OPPO推荐领域降本增效指南
导读 本文将分享 OPPO 在分发领域对算法和大数据的应用,并着眼于成本与效率方面,希望以 OPPO 的实践与思考为大家的提供参考。
文章主要包括以下五大部分:
-
应用分发业务场景介绍
-
应用分发数据体系建设
-
智能算力系统
-
全场景统一建模
-
未来规划与展望
分享嘉宾|赖洪科 OPPO OPPO互联网应用研发平台总经理
编辑整理|王露露
内容校对|李瑶
出品社区|DataFun
01 应用分发业务场景介绍
首先来分享几组数据。
目前 OPPO 的操作系统全球活跃用户数已经超过 6 亿,国内月活用户超过了 2.6 亿,国内软件商店的 MAU 超过了 2.5 亿,国内应用商店内的月下载量超过了 180 亿。我们拥有海量的数据,等待着挖掘。
简要解释一下什么是分发业务。当您打开手机并想下载一款应用时,提供的下载服务就是所说的分发服务。这个服务是与用户的每一个动作或场景相契合的,不仅仅局限于软件商店。其中重要的挑战和难点如下:
首先,软件商店作为主阵地具有显著的工具特性,即低频。用户只有在想下载时才会打开软件商店,因此推荐准确度挑战很高。
其次,游戏领域普遍存在大 R 用户,所以实验波动性非常强。以上两点为实验和观测效果带来了非常大的挑战。
从链路上来看,OPPO 从 19 年开始,就在分发方面开始从点击下载到后面的付费链路进行转换。所谓的转换就是不希望用户只是下载,还希望用户打开之后能在里面产生交易付费。所以后链路的转换其实是非常有难度的一个事情,对推荐系统里的预估也是非常大的挑战。
02应用分发数据体系建设
OPPO 数据量级已超过 40P,数据记录超过 5 万亿条,离线任务 4000+,实时任务200+。这样的数据规模为规范管理带来了很大的挑战。
OPPO 应用分发体系的数仓采用分层结构,自底向上分别是接入层、基础层、模型层和应用层。
数仓面对的主要挑战为:
- 如何保证按规范开发;
- 如何管理繁杂的元数据;
- 如何构建一个简洁的 ETL 架构。
在搭建应用数仓时,我们始终遵循三个原则:优雅的数据模型、健全的数据应用以及高效的数据治理。
针对前面提到的三大挑战,OPPO 的解决方案为:
- 数据规范管理(约束)。提供了超过 150 条规则,通过自动化检查来保证规范性。虽然这一点看起来很简单,但真正实施起来并不容易,因为每个人都有不同的开发习惯。只有当系统能够收集这些规范,并落实到具体的工作中,比如约束开发人员的代码、约束数仓架构、约束每一张表等等,才能真正实现规范,并在成本和效率上获得收益。
- 元数据管理(全面)。完善的埋点事件/字段/枚举、数据字典、HDFS、任务、应用层表等元数据,能够高效指导数据仓库的开发。
- 极致分区表(创新)。快速简洁地提供 ETL 相关的性能。
在数据建模方面,我们采用了 Kimball 建模方式,构建了全局一致性与一致性事实的星型表,并采用了一个创新的分区表来承载这个模型。将事件按不同的类型归到不同的分区里面去,带来性能的提升。如果按表去存放数据,在应用层经常会产生大量的 union all 事件,任务超过 200 条、4000 条的时候,数据的管理就会走向混乱。
在数据应用方面,OPPO 有非常健全的报表,提供了所有数据的多维度报表,基本上能够解决 80% 的产运诉求。
在系统中,通过拖拽即可快速提取所需要的各种维度的指标数据,提高了工作效率,也更好地发挥了数据的价值。
在算法评估报表里面,提供了全场景、全维度、指标齐全的算法效果评估体系,来加速算法效果评估,从而实现快速放量,提升整体业务效率。
数据治理的整体思想是始终坚持以健康分为指导。所谓的健康分是通过多维度,例如研发质量、安全存储和计算等维度,考核每个任务、每个表以及数据的情况,衡量其是否健康、是否适合当前系统。通过多维度的评估,持续发现缺陷并进行修改,不断提高健康分,从而实现提升效率、降低成本。
03智能算力系统
近年来,大数据应用和模型不断迭代升级,对算力的要求越来越高。因此,许多企业会面临如下问题:如果硬件成本上升,能否通过优化架构来提高收入?如何在有限的算力下,调整架构以支持更多的资源和服务,这就是 OPPO 智能算力系统的由来。
在智能算力系统中,有两个关键条件:一是硬件设施基本保持不变;二是提供更多优质服务。
业界有一些常用方案,但并不十分有效。例如,为了接收所有请求,进行富裕型部署,通过硬件来支持。然而在低峰时这样做会导致资源无法回收造成浪费。另一种情况是,由于硬件有限可能无法接受所有请求而将其丢弃。第三种是弹性扩缩容,也不适用于 OPPO 的情况。
下面来介绍 OPPO 智能算力系统的演进之路。
最初的解决方案是设置一个固定的限流阈值,超过该阈值则丢弃或拒绝流量,这是一种简单而快速的解决办法。
然而,随着对问题的深入思考,我们发现阈值应该是动态的,因为同一台服务器上可能运行着不同的服务,它们的负载和变化可能都是不同的。因此,在智能算力 V1.0 中,考虑了动态限流阀值的设计,以使其更加贴近硬件的实际承载量。在此基础上,进一步地思考如何识别高价值流量,并为 VIP 用户提供更好的服务,通过丢弃一些低价值流量,提高整体价值。基于这两点改进,在同等资源情况下,流量支撑提高了15%,并带来了营收增长。
在智能算力 V2.0 的研发中,我们考虑当硬件无法左右时,可以调整架构、方案和想法,通过在价值流量中进行个性化价值预估,以更准确地识别 VIP 用户。同时,提供降级服务,尽量不丢弃流量。通过这种方式,系统在相同的资源支持下,流量支撑提高了 20%,并带来了进一步的营收增长。
现在,我们的智能算力系统已经进入 3.0,通过观察整体请求量和流量分布情况,发现它们大体上符合二八原则,即 20% 的流量承载了 80% 的整体价值。因此,我们希望提升 VIP 用户的高质量服务。
接下来具体介绍一些关键技术点。
在智能算力系统 V1.0 中,主要关注两个关键点:负载评估和流量承载决策。为了进行负载评估,尝试了多种方法,最终发现压测搜集是一种实用且有效的方式,动态地进行压测和搜集数据。通过对 QPS、超时率、CPU 负载以及 PCT 99 等指标的观察和测试,寻找硬件的最大支撑点。流量价值预测采用了一种统计值的方式。当两个关键因素进入系统后,会将它们导入流量承载决策系统中,以决定流量应该被丢弃还是服务。通过这些关键技术的实现,能够更好地利用硬件资源,提高系统的稳定性和性能。
在 V2.0 中,采取了更精准识别 VIP 用户的方法。主要使用了 ATL 的截断方式,并结合 DSSM 的双塔计算,准确计算 VIP 用户。通过采用了双引擎技术,除了精准识别用户外,还为降级服务提供了一个降级预估,以尽可能回收所有流量。这是 2.0 系统中的两个关键点,即不丢弃流量,更精准地识别和回收。
在 V3.0 中,开始关注 VIP 用户的优质服务。思考点是通过给高价值用户增配算力来提高服务质量。整体资源没有增加,所以需要从其他地方调配资源来实现这一目标。在分配算力时,关键路径是将以前离线的数据转换为流式计算方式,进一步提升流量价值。目前,3.0 系统仍在实验阶段,后续将逐步与大家分享相关效果和进展。
04全场景统一建模
OPPO 的分发场景不仅限于软件商店,可以在任何地方进行分发。每个场景之间的数据是割裂的,其中一个比较大的问题是,一些场景的流量非常小,导致它们的特征非常稀疏,这使得很难准确估计这些特征。
以 OPPO 软件商店和游戏中心这两个场景为例,可以看到它们的数据特点和用户行为存在显著的差异。其中软件商店是下载的主阵地,用户量大,同时用户行为较为广泛,目的性强但分类特性不强。然而在游戏中心场景中,由于它是垂类场景,重点是为游戏用户服务,用户的游戏下载特性强,且分类特性也强。在这种情况下,游戏上面的特征远远高于软件商店上面的一些表征。
我们希望通过软件商店的一些数据去缓解游戏中心推荐里面的一些数据稀疏问题,同时也希望游戏中心里面的一些比较垂类的数据能够助力软件商店推荐效果提升。
在实施全场景建模的过程中,主要面临的挑战是,OPPO 应用分发有超过 20 个流量渠道和 200 多个场景,如果采用传统的单场景加单目标方法,每个场景需要构建 20+ 个模型。此外,场景间的数据相对孤立,形成了数据孤岛。
为了解决这些问题,提出了基于全局数据的统一建模方法。通过数据标准化建设,实现了全局特征共享和全局样本融合,构建了统一的数据底座。这一数据底座为上层推荐算法的应用提供了坚实的基础。
在打通所有场景后,我们实现了全局特征共享和样本融合。数据底座的扩展使得全局特征共享的存储容量从 2T 扩展到 30T,特征规模也从 1 亿扩展到 100 多亿。样本融合使得多场景的数据能够互融互通,增强了各种场景的泛化能力。
在统一建模方面,我们不仅关注数据增强,还注重场景增强。通过对算法模型结构的精心设计,构建了全场景统一建模。在模型设计中,采用了全局网络来体现共性,同时融入个性化网络来体现个性。通过多任务建模,实现了在共享特征的基础上表征任务间的相关性和差异性。
最后还引入了个性化场景的偏置网络结构,以实现多场景的联合建模。这一技术主要应用于多场景多目标建模、统一强化场景和目标的偏置特征表征。
通过最终效果可看到,应用分发多场景的变现效率显著提高,带来了可观的经济效益。此外,新场景和新目标接入的算法效率也得到了显著提升,可配置化支持所有流量的场景接入,这一改进极大地提高了工作效率。更重要的是,算法迭代效率的提升让算法团队能更加专注于模型优化,从而避免了各种繁琐的数据处理工作。
从另一个角度来看,全场景统一建模也实现了人力的高效利用。在某些场景下,以前需要十个人来支撑的工作,现在只需要两到三个人就可以完成。这种改变极大地提高了工作效率,同时也节省了大量的人力和资源。此外,还通过统一的资源管理,极大地减少了特征和样本的沉淀,从而大幅缩减了存储成本。这一改变在团队内部越来越受到认可和欢迎。
最后,我们认为算法模型的透明度也是非常重要的一点。我们正在不断努力提高模型和算法的透明度,以便更好地与业界进行交流和合作。同时,也在积极探索如何将模型、算法工程和数据更好地结合与协调,以追求更高的应用效率和效果。
05未来规划与展望
OPPO 未来的规划主要有以下三方面:
一是端云协同,在数据驱动的现代应用中,端云协同发挥着至关重要的作用。随着用户安全意识的提高和数据使用法规的日益完善,终端数据在回传方面的限制日益增多。然而,后端模型需要大量数据来进行训练和优化,否则其性能和效果将大打折扣。近期,得益于硬件技术的飞速发展,轻量型模型在智能手机上的部署和运行已经成为可能,并且已经在实际场景中得到了广泛应用。在终端侧,这些轻量型模型可以充分利用端侧产生的真实、及时的数据,有效提升模型的训练效果和性能。
在这种背景下,端云协同愈发凸显出其重要性。通过在端云之间建立有效的数据交互和打通机制,可以实现 1+1>2 的效果。具体来说,端侧数据具有真实性和及时性的特点,可以用于优化模型的训练和推理过程,而云端的数据则可以为端侧提供更为丰富和全面的信息,进一步优化用户体验。
二是大模型,这也是现在的潮流。以 OPPO 为例,小布助手应用已经取得了长足的进步,能够更好地理解用户意图,与用户进行有趣的聊天对话。同时,AI 技术在音乐、图像等领域的应用也取得了显著的进展,为手机系统提供了更多的智能化功能。
三是用户画像方面,OPPO 正在尝试更加立体的用户画像构建方法。传统的用户画像往往只关注用户的一个或几个方面,无法全面反映用户的真实需求和行为。为了解决这个问题,OPPO 正在从多个维度收集和分析用户数据,包括设备信息、行为数据、消费习惯等等,以构建更为完整和准确的用户画像。通过这种方式,OPPO 可以更好地理解用户需求、优化产品设计和提升服务质量。
以上就是本次分享的内容,谢谢大家。