作者:李洁峰
TuGraph Analytics(内部项目名 GeaFlow)是蚂蚁集团开源的分布式实时图计算引擎,即流式图计算。通过 SQL + GQL 融合分析语言对表模型和图模型进行统一处理,实现了流、批、图一体化计算,并支持了 Exactly Once 语义、高可用以及一站式图研发平台等生产化能力。
目前 TuGraph Analystics 已经在多类应用场景以及万亿级别的数据规模下提供了生产可用的计算服务,本文主要介绍在路径归因的场景下的实践。
业务背景
在数字化、信息化的大潮流中,互联网给消费者和商家都带来了极大的便利,对用户行为进行渠道归因和路径分析是流量分析领域中的不可缺少的一部分。通过计算用户的有效行为路径,构建出完整的转化路径,能够快速帮助业务看清楚产品的价值,帮助运营及时调整运营思路。
在成本可控的前提下,保证用户行为路径分析计算结果的准确性,是归因分析的前提条件;同时计算结果产出越及时,就能够更快的为业务运营决策提供更有价值的信息。
通过对业务场景的分析,我们发现这类应用很适合通过图来建模,并在此基础上进行路径归因的计算。接下来给大家分享一下 TuGraph Analytics 是如何保证计算结果准确性的同时也满足了近线实时的时效性,一种基于实时图计算引擎进行渠道归因和路径分析计算的新尝试。
技术方案
计算模型抽象
在深入解构了归因分析的细节之后,我们发现一个用户的行为可以通过用图的方式很自然的描述出来,将用户抽象成为一种类型的点,将产品上的埋点信息抽象成为另一种类型的点,而他们之间发生的行为事件信息就可以抽象成连接两种类型点的边。
这样,一个用户及其在产品上的所有行为就构建出了一张用户行为事实图,其中一个用户有多条指向埋点位置的边。其中一条边就是一次用户行为事件(页面访问、点击操作、浏览行为等等),这条边指向一个埋点位置,边上保存了后期分析需要的基础信息(埋点信息、时间信息等等)和扩展信息(活动信息、展位信息等等)。如此,用于描述用户的点、用于描述埋点位置的点以及连接用户和埋点位置之间的边,就形成了一个用户行为网络拓扑。整个拓扑图中包含所有用户及其相应的行为,而每个用户及其相关的行为是整个拓扑图中的一张子图,可以通过图算法对其进行分析。
接下来,基于这张用户行为事实拓扑图,我们可以在其上根据归因分析所要求的解析规则进行路径模式匹配,从而产出最终的用户行为路径,然后输出到下游存储系统供运营同学使用。
路径匹配规则
路径模式匹配的规则描述的是如何根据用户的原始行为数据得到最终转化路径的过程,该口径直接决定了需要应用于拓扑图数据上的匹配算法。这个口径一般由业务场景决定,不同的业务类型的规则由需求方提供。
用户行为日志中的交易数据是关键点,它们会触发相关用户的子图归因路径匹配计算,计算结果为最终的归因路径。这里的成交数据不仅仅指用户的交易行为,还可以泛化推及到一切需要归因分析的场景,例如签约、订阅、关注、点击等等,在所有关心转化的场景下都能够发挥作用,创造价值。
以上图中的 user1 为例,与其相关的行为埋点有 spm1、spm2、spm4、spm9,与其相关的交易埋点有 trade1 和 trade5,那么当系统接收到 trade1 这个埋点信息的时候,在 TuGraph Analytics 能够动态加载所有与 user1 相关的埋点信息,参与归因路径规则匹配计算。
需要说明的是,trade1 和 trade5 的计算是互不影响的,与 user1 相关的所有行为埋点信息都会分别参与两者的计算,得到各自的计算结果。
结合 TuGraph Analytics
那么如何在实时到来的用户数据上构建拓扑图并且产出归因路径呢?
- 首先,需要计算引擎能够实时构建一张巨大的用户行为事实拓扑图,维持百亿级别的输入和状态存储。
- 其次,在触发路径匹配计算交易数据实时到来之后,要能够立刻获取到与该交易行为相关的子拓扑图,其中包含了计算归因路径所需要的所有点边数据(用户节点、埋点位置节点以及两者之间的边),之后在这张子图上根据解析规则进行归因路径匹配,得到该交易的最终归因路径。
- 再次,在大量的交易数据涌入之后能够同时对所有的交易进行归因路径计算,保证输出的时效性。
TuGraph Analytics 作为一个实时流图计算引擎,能够满足以上的所有需求。在动态数据到来的过程中触发计算,能够尽可能快的获取到用户的行为边参与路径分析。同时 TuGraph Analytics State 也能够很好的支持千亿甚至万亿级别的图状态存储,在归因分析的场景下绰绰有余。
计算流程
实时构图
通过 TuGraph Analytics 自有的 IO 插件,可以接入多种外部数据源(静态或者动态)的数据,将二维数据转化成描述拓扑图的点边数据。
在归因分析的场景下,我们通过 SLS 插件(阿里云 SLS 日志服务)接入用户访问行为日志、用户点击行为日志以及最终达成交易的订单日志,将用户构建成一个点,与其相关的每个行为构建成从该用户指向埋点位置的一条边,同时把涉及到的的埋点信息保存下来供后续升维分析使用。
路径计算
在构建的用户行为事实图上,我们会抽取新到来的交易数据,对于这些数据涉及到的用户,提取他们的行为子图,之后在每个人的子图上基于归因路径匹配的规则进行匹配计算,得出该成交行为相应用户的归因路径,并输出到下游系统。
业务效果
综上所述,基于TuGraph Analytics的实时行为路径归因,大幅提升了数据产出的时效性,为业务提供了更及时的决策依据,整体归因准确率达到98%左右。其中误差主要来源于算法逻辑对用户行为日志有序性的依赖,如消息延迟和乱序等。
而计算过程中的海量数据由TuGraph Analytics State承接,并未对计算负载造成很大压力,实际生产活动中,作业能够7 * 24小时不间断稳定运行。
结束语
如果您对 TuGraph Analytics 项目比较感兴趣,欢迎动动手指直达GitHub仓库,为我们的项目加一颗Star。
项目地址:https://github.com/TuGraph-family/tugraph-analytics
如果您对该项目的发展有好的建议和意见,欢迎大家提交 Issue 到开源社区,或者通过以下方式与我们直接联系。
邮箱:tugraph@service.alipay.com
钉钉群:TuGraph Analytics讨论群