流式图计算在蚂蚁大数据场景的应用
在大数据领域中,流式图计算(Streaming Graph Processing)作为一种用于处理实时数据流的计算模型和技术,结合了图计算和流式数据处理的概念,旨在处理数据流中的节点(vertices)和边(edges)之间的关系,以实时分析、处理和理解不断涌现的数据。蚂蚁集团对于流式图计算在实时数据处理与分析领域有较成熟的体系。今天主要介绍蚂蚁集团实时数据体系和关键技术、基于流式图计算的实时流量归因场景应用,以及基于流式图计算在支付宝营销场景实时 OLAP 和数金场景实时用户行为意图分析的探索。
一、蚂蚁实时数据整体介绍
首先介绍的是蚂蚁集团实时大数据能力框架图。
1、蚂蚁实时能力大图
总体分基础技术、实时核心能力、业务三个层次。基础技术包含计算、存储、消息队列等,今天重点分享的流式图计算引擎就在这里。实时核心能力自下向上依次是技术架构&研发范式、数据资产、数据解决方案。技术架构&研发范式包括“流批一体”、“湖仓一体”等架构,也包括针对不同业务情景的研发范式和架构约束。技术架构之上是资产层,类似离线数仓我们为实时也构建了一套资产管理和治理体系。最上面是领域解决方案,面向类似业务场景提供一套通用的实时领域解决方案,比如营销活动、实时风控等场景。基于这个能力大图,逐渐实现以需求驱动为主向数据驱动业务发展的整体战略目标转化。
2、蚂蚁流批一体架构:从“物理”到“逻辑”代码的数据研发
这里简要介绍实时能力大图中的“流批一体”。流批一体能力的应用指的是一种应用程序能够同时处理实时数据流和批量数据的能力。换句话说,该应用能够灵活地在实时情境下处理连续的数据流,也可以在一段时间内处理累积的数据批次。Apache Flink 和 Apache Spark 是两个流行的分布式计算框架。这两个框架都具有处理实时数据流和批处理数据的能力。
对于流批一体可以有两个层面的理解:
从引擎角度:unified 引擎,它指的是一种引擎,在底层能够统一处理流式数据和批处理数据。这意味着开发人员可以使用同一套引擎来处理不同类型的数据处理需求,而不需要切换或使用不同的引擎。
从业务研发角度:开发人员只需要编写一套代码,就能够处理实时数据流和批处理数据,这样可以减少开发工作量,提高开发效率,并且更容易维护代码。
蚂蚁的解决方案是在数据研发平台层实现开发一套逻辑代码实现流批一体,并在此基础上做了大量优化。比如代码里可以根据“__source_type__“这些系统级别的关键词(值为“bounded”和“unbounded”)进行不同位点和分区的流式和批式处理。
3、蚂蚁流式图计算(TuGraph-Analytics)系统架构
蚂蚁流式图计算系统的整体框架包含了容器资源、流图引擎与 API、数据应用,及计算控制后台几个层面,为实现高效的数据处理和分析提供了完整的架构。在该框架中,底层为强大的容器基础设施,涵盖了 Kubernetes(k8s)和Ray,为上层提供了可扩展性和资源管理。在此基础上构建了流图引擎,为数据流处理和分析提供核心支持,其中包括 GraphView API、Unified Graph Engine 和 Graph State。最上层则是流图数据应用,涵盖了转化归因、实时 OLAP、行为意图等多个领域,同时展望未来的发展,计划在广告场景中引入链路诊断,以进一步提升系统的功能和价值。整个框架在数据处理的各个层面提供了一体化的解决方案,为实时数据处理和分析应用提供了强有力的支持。
二、流式图计算在实时流量归因场景的应用
1、流量转化
左边是一个流量转化漏斗,指在数字营销和业务运营中,通过不同阶段的处理和转化,将大量的潜在用户或访问者逐步引导、筛选,最终实现特定目标的过程。包括了公域到商家私域/行业阵地的流量分发、私域交易转化、流量商业化变现几个环节。从平台视角,通过为商家进行流量引导、提升交易转化,最终实现流量的商业化价值。
以用户在支付宝的访问为例,可以详细介绍如何通过流量漏斗实现从公域流量到商家私域,再到交易转化,最终实现商业化:
商家私域/行业阵地的流量分发:典型的公域流量如在支付宝首页空格、腰封的曝光。如何在公域流量场将合适的私域或行业内容分发推荐给用户是个非常重要的课题。用户可以通过点击入支付宝首页的曝光内容跳转到相应的小程序或承接页面。在这个阶段,可以通过精准的内容定位、个性化推送等方式,将用户进一步引导到感兴趣的领域,从而提高用户的黏性和互动性。
私域交易转化:在商家的私域内,可以采取多种策略促使用户进行转化,例如订阅、入会等。这些操作可以进一步深化用户与商家之间的互动,建立用户画像,私域中的用户已经显示出一定的兴趣和亲近度,因此更容易进行交易转化。
流量商业化变现:一旦用户完成交易转化,平台就达到了流量变现的目标,即通过用户的付费行为实现商业化价值。
右边是一个对应的广告商业化的漏斗。从曝光到点击再到转化,可以通过广告中不同的 CPM(千次曝光)、CPC(点击)、CPA(动作)计费模式来实现流量的实时跟踪与变现。
2、流量转化归因模型
流量转化归因模型在数字营销等场景中具有关键作用,它可以帮助分析和理解用户在不同阶段的行为对最终转化(例如购买、注册等)的贡献,从而优化营销策略和资源分配。这有助于了解用户决策路径、优化转化率,以及对不同营销渠道和策略进行评估和优化。
用户路径建模:客户端上报的埋点数据将被用于构建用户路径模型,即用户在整个流程中的行为路径。这可以通过分析用户在页面之间的转换关系来实现,整个过程会形成一个动态的路径图。
该模型包含以下节点:
路径起点:转化事件发生前最后一次进入支付宝首页
裁剪点:从相同的页面跳出又跳入,两次跳入之间没有发现转化事件,中间日志对转化达成无效,可以剪裁
有效转化节点:转化主链路上的有效转化日志
无效转化节点:转化链路上的无效转化日志
路径终点:转化事件前的最后一条日志
经过裁剪的最终转化链路:A(1)->B(6)->F(7)->G(8)->H(9)
3、实时流量转化归因整体技术架构
这是实时流量转化归因的整体技术架构,其中数据部分比较核心的是基于业务中间层的转化事件定义(如交易支付、权益核销等)和转化数据模型的 Schema 归一化。通过对不同转化事件类型的 Schema 归一化可以屏蔽不同业务的差异,便于下游消费使用。在此基础上,通过逻辑视图可以实现对不同业务场景分类消费的支持,大大提升了数据消费的效率。最后是基于流图的转化归因计算,输入是流量和转化事件,输出是转化的归因结果。
4、基于流式图计算的的实时流量转化归因
目前,用户行为日志主要以“访问”和“点击”为主,“曝光”由于数据量大、上传延迟高暂没有使用。根据实时的用户访问行为日志和用户点击行为日志通过流式图计算引擎进行实时构图,当转化事件到达时进行归因路径计算,即根据流量转化归因模型从橙色节点(路径起点)到绿色节点(路径终点)的链路计算,最后将其结果输出到下游的 MQ 和 OLAP。
该系统从用户端到后端的数据采集时效已经达到五分钟90%以上,十分钟接近100%,已可以满足绝大多数业务需求。
5、实时流量转化归因数据链路
以上是实时生产过程中的实时转化链路,上游主要有两种数据源,一种是客户端埋点采集,一种是服务端数据采集(如服务端日志、数据库 binlog)。一般而言服务端数据采集实效性比较快,除了中间件的抖动,其上报速度在秒级。整个链路的主要延迟集中在流量上报环节和流图计算环节,其中流量上报环节由于客户端、网络等多种因素变量较大,而流图计算环节则是可控的人为设定的等待时间窗口,因为实际的流量、转化事件上传不是严格有序及时上传的,这个等待窗口大小的设定也要结合归因的时效性和准确性综合考虑权衡。最终这些数据会加工处理成 DWD 中间层供下游营销等应用场景使用。
三、流式图计算在实时 OLAP 场景的探索
1、后置计算
后置计算是流计算的一种研发模式。当前蚂蚁实时计算以“前置计算”为主,正逐步发展成为包括“后置计算”在内的支持不同业务场景的“多模式计算”研发模式。
前置预计算模式:在数据进入 OLAP 系统之前,提前对部分计算进行处理,从而减轻后续计算的负担,加速数据处理和分析过程。广泛应用于大数据量,数据时效和查询性能要求高的场景,如实时大屏。其优点为数据时效快,查询性能高。其缺点为数据容错性差,灵活性低。
前置打宽后置聚合:从 TP 到 AP 阶段进行数据打宽,在 AP 阶段进行聚合。其优点为灵活性适中,数据容错高。缺点为查询性能一般。因而适用于业务确定性比较高的场景,例如直播分析看板。
后置聚合:从 TP 到 AP 阶段进行实时同步,保存原始数据,其优点为灵活性较高,且数据容错率高,但是查询性能低。适用于业务不确定性比较高的场景,例如自助分析。
以实时特征研发为例,基于后置计算模式后,新增特征只需要在特征平台进行特征视图配置,无需为不同特征加工建设不同的 Flink 实时任务,实时特征研发效率得到极大提升。
2、后置计算:基于流式图计算在营销实时 OLAP 场景的探索
接下来介绍支付宝营销场景后置计算的一个案例,即流式图计算在实时 OLAP 场景的探索。采用流图进行后置计算后,在数据模型和研发模式上都发生了比较大的变化。
数据模型方面,过去在我们完成基础的 ODS、DWD 建设后,随着时间和复杂度的增加,ADM 应用层的数量会急剧上升(各种维度的指标报表),这给开发和运维工作都带来了极大压力。采用流图后,基于用户去做图建模,将权益和玩法等业务层面与用户本身建立关系,形成一个图关系网,再进行后置分析。
研发模式方面,经典的研发模式是指标需求驱动研发,先采集上游数据,形成维度等中间表,再根据不同的场景去计算对应需求的指标。这个模型的缺点是对于内部运营非常态化需求的指标数据而言,浪费了前置计算量。基于流图的后置计算可以有效的避免这个浪费,只有业务有需求需要查看数据时,才进行计算,即保证了数据时效性也避免了计算浪费。除此之外,模型的灵活性比较高,对于临时增加计算节点和指标等行为的代价比较小。总而言之,后置流图计算更符合如今高复杂度,高灵活性需求的应用场景。
流式计算引擎与传统基于 OLAP 的引擎内测对比发现,对于单表场景,流式计算引擎性能稍显逊色,但是多表关联场景,其性能明显优于基于 OLAP 的引擎。
四、流式图计算在实时用户行为意图分析场景的探索
另一个我们基于流式图计算的探索是在数字金融领域,在财富场景进行的用户行为意图分析。以前,我们对用户行为意图的分析主要是使用一维的用户行为特征或者二维的用户行为序列。类似上面提到的流量转化归因的例子,用户实际的行为是复杂多变的、噪音较多,传统的数据模型在意图识别准确度,尤其是大规模数据的精准意图识别上还存在比较大的挑战。
上图通过对用户行为意图的实时构图及对不同节点意图分的计算,得到用户最有可能感兴趣的产品。比如用户在进入支付宝理财 tab 页,可能在不同的页面(如引导、承接、交易)访问了不同的基金产品,这其中结合基金产品的 spm 和访问次数会计算一个意图分,并综合整个路径中不同意图分的情况得到一个用户最可能交易的意图节点。另一方面,基于这些用户偏好的产品节点,可以进一步推演出用户感兴趣的产品类目,基于这些数据可以实现更丰富的推广营销。
基于流图可以实现更加快速精准识别用户行为意图,与传统的推荐算法不同,作为一个实时数据方案,它具备高时效性、过程白盒化、可人工干预扩展节点、消除噪音意图识别更精准、后置计算效率更高等特点。
五、未来展望
展望未来主要包括以下这些:
基于流图的实时 OLAP 在营销场景的推广应用
基于流图的实时用户行为意图分析在数金、内容等场景的推广应用
基于流图的实时归因能力在广告链路诊断场景的应用探索
流图开源项目的贡献参与