TuGraph Analytics 流图计算之行为路径归因

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 目前 TuGraph Analystics 已经在多类应用场景以及万亿级别的数据规模下提供了生产可用的计算服务,本文主要介绍在路径归因的场景下的实践。

作者:李洁峰
TuGraph Analytics(内部项目名 GeaFlow)是蚂蚁集团开源的分布式实时图计算引擎,即流式图计算。通过 SQL + GQL 融合分析语言对表模型和图模型进行统一处理,实现了流、批、图一体化计算,并支持了 Exactly Once 语义、高可用以及一站式图研发平台等生产化能力。
目前 TuGraph Analystics 已经在多类应用场景以及万亿级别的数据规模下提供了生产可用的计算服务,本文主要介绍在路径归因的场景下的实践。

业务背景

在数字化、信息化的大潮流中,互联网给消费者和商家都带来了极大的便利,对用户行为进行渠道归因和路径分析是流量分析领域中的不可缺少的一部分。通过计算用户的有效行为路径,构建出完整的转化路径,能够快速帮助业务看清楚产品的价值,帮助运营及时调整运营思路。
在成本可控的前提下,保证用户行为路径分析计算结果的准确性,是归因分析的前提条件;同时计算结果产出越及时,就能够更快的为业务运营决策提供更有价值的信息。
通过对业务场景的分析,我们发现这类应用很适合通过图来建模,并在此基础上进行路径归因的计算。接下来给大家分享一下 TuGraph Analytics 是如何保证计算结果准确性的同时也满足了近线实时的时效性,一种基于实时图计算引擎进行渠道归因和路径分析计算的新尝试。

技术方案

计算模型抽象

在深入解构了归因分析的细节之后,我们发现一个用户的行为可以通过用图的方式很自然的描述出来,将用户抽象成为一种类型的点,将产品上的埋点信息抽象成为另一种类型的点,而他们之间发生的行为事件信息就可以抽象成连接两种类型点的边。
这样,一个用户及其在产品上的所有行为就构建出了一张用户行为事实图,其中一个用户有多条指向埋点位置的边。其中一条边就是一次用户行为事件(页面访问、点击操作、浏览行为等等),这条边指向一个埋点位置,边上保存了后期分析需要的基础信息(埋点信息、时间信息等等)和扩展信息(活动信息、展位信息等等)。如此,用于描述用户的点、用于描述埋点位置的点以及连接用户和埋点位置之间的边,就形成了一个用户行为网络拓扑。整个拓扑图中包含所有用户及其相应的行为,而每个用户及其相关的行为是整个拓扑图中的一张子图,可以通过图算法对其进行分析。
1.png

接下来,基于这张用户行为事实拓扑图,我们可以在其上根据归因分析所要求的解析规则进行路径模式匹配,从而产出最终的用户行为路径,然后输出到下游存储系统供运营同学使用。

路径匹配规则

路径模式匹配的规则描述的是如何根据用户的原始行为数据得到最终转化路径的过程,该口径直接决定了需要应用于拓扑图数据上的匹配算法。这个口径一般由业务场景决定,不同的业务类型的规则由需求方提供。
用户行为日志中的交易数据是关键点,它们会触发相关用户的子图归因路径匹配计算,计算结果为最终的归因路径。这里的成交数据不仅仅指用户的交易行为,还可以泛化推及到一切需要归因分析的场景,例如签约、订阅、关注、点击等等,在所有关心转化的场景下都能够发挥作用,创造价值。
2.png

以上图中的 user1 为例,与其相关的行为埋点有 spm1、spm2、spm4、spm9,与其相关的交易埋点有 trade1 和 trade5,那么当系统接收到 trade1 这个埋点信息的时候,在 TuGraph Analytics 能够动态加载所有与 user1 相关的埋点信息,参与归因路径规则匹配计算。
需要说明的是,trade1 和 trade5 的计算是互不影响的,与 user1 相关的所有行为埋点信息都会分别参与两者的计算,得到各自的计算结果。

结合 TuGraph Analytics

那么如何在实时到来的用户数据上构建拓扑图并且产出归因路径呢?

  • 首先,需要计算引擎能够实时构建一张巨大的用户行为事实拓扑图,维持百亿级别的输入和状态存储。
  • 其次,在触发路径匹配计算交易数据实时到来之后,要能够立刻获取到与该交易行为相关的子拓扑图,其中包含了计算归因路径所需要的所有点边数据(用户节点、埋点位置节点以及两者之间的边),之后在这张子图上根据解析规则进行归因路径匹配,得到该交易的最终归因路径。
  • 再次,在大量的交易数据涌入之后能够同时对所有的交易进行归因路径计算,保证输出的时效性。

TuGraph Analytics 作为一个实时流图计算引擎,能够满足以上的所有需求。在动态数据到来的过程中触发计算,能够尽可能快的获取到用户的行为边参与路径分析。同时 TuGraph Analytics State 也能够很好的支持千亿甚至万亿级别的图状态存储,在归因分析的场景下绰绰有余。
3.png

计算流程

实时构图

通过 TuGraph Analytics 自有的 IO 插件,可以接入多种外部数据源(静态或者动态)的数据,将二维数据转化成描述拓扑图的点边数据。
在归因分析的场景下,我们通过 SLS 插件(阿里云 SLS 日志服务)接入用户访问行为日志、用户点击行为日志以及最终达成交易的订单日志,将用户构建成一个点,与其相关的每个行为构建成从该用户指向埋点位置的一条边,同时把涉及到的的埋点信息保存下来供后续升维分析使用。
4.png

路径计算

在构建的用户行为事实图上,我们会抽取新到来的交易数据,对于这些数据涉及到的用户,提取他们的行为子图,之后在每个人的子图上基于归因路径匹配的规则进行匹配计算,得出该成交行为相应用户的归因路径,并输出到下游系统。
5.png

业务效果

综上所述,基于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讨论群

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
Java API Spring
API管理工具Swagger介绍及Springfox原理分析
swagger是一个API框架,号称世界上最流行的API工具。它提供了API管理的全套解决方案,比如API在线编辑器,API UI展示界面,代码生成器等诸多功能。
11706 98
|
SQL 关系型数据库 MySQL
解码MySQL条件宝典:常用条件判断函数的完整指南
解码MySQL条件宝典:常用条件判断函数的完整指南
313 0
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
2282 14
MySQL事务日志-Redo Log工作原理分析
|
缓存 安全 前端开发
如何使用CMS模版来搭建网站?
内容管理系统(CMS)是用于创建和管理网站的专业工具。使用CMS模板可以提高网站的创建速度,同时还能提高网站的维护和管理。本文可给大家介绍一下如何使用CMS快速搭建一个网站?
252 5
|
安全 数据安全/隐私保护
超简单,让别人也能访问到你的Dash应用
超简单,让别人也能访问到你的Dash应用
478 2
|
API 数据处理 数据库
掌握 Kotlin Flow 的艺术:让无限数据流处理变得优雅且高效 —— 实战教程揭秘如何在数据洪流中保持代码的健壮与灵活
Kotlin Flow 是一个强大的协程 API,专为处理异步数据流设计。它适合处理网络请求数据、监听数据库变化等场景。本文通过示例代码展示如何使用 Kotlin Flow 管理无限流,如实时数据流。首先定义了一个生成无限整数的流 `infiniteNumbers()`,然后结合多种操作符(如 `buffer`、`onEach`、`scan`、`filter`、`takeWhile` 和 `collectLatest`),实现对无限流的优雅处理,例如计算随机数的平均值并在超过阈值时停止接收新数据。这展示了 Flow 在资源管理和逻辑清晰性方面的优势。
259 0
|
存储 监控 Linux
深入解析Linux命令:rootfs-expand
`rootfs-expand`是假设的Linux工具,用于扩展嵌入式设备或特定发行版的根文件系统。它检查当前大小,确定可扩展空间,并调整分区。命令参数包括 `-s` 设置扩展大小,`-f` 强制扩展,`-v` 显示详细信息和 `-h` 显示帮助。扩展前务必备份数据,谨慎使用强制选项,并确保有足够未分配空间。示例命令:`sudo rootfs-expand -s 4G [-v]`。虽然具体实现会有所不同,但这个概念可以帮助理解根文件系统扩展的一般流程。
|
安全 Java Spring
Spring Boot中的自定义过滤器
Spring Boot中的自定义过滤器
|
数据采集 存储 编解码
LabVIEW用高速数据流盘
LabVIEW用高速数据流盘
166 1
|
机器学习/深度学习 人工智能 机器人
「AIGC」DALL-E2详解
**DALL-E 2是OpenAI的文本到图像生成器,融合艺术与技术,通过文本编码、先验模块和图像解码创新性地将描述转化为视觉作品。它能理解抽象概念,生成多样化、高质量图像,应用于艺术、设计及媒体行业。然而,细节处理有限且涉及伦理挑战。**
833 0

热门文章

最新文章