用户留存建模实践

简介:在流量分析型产品的用户分析模块中,留存、互访、新老客构成等数据都是有效衡量用户粘性与促活召回的关键性指标;但是,我们发现在很多流量运营的业务场景中,留存分析建模都显著存在着设计和计算上的诸多问题。本文将针对用户留存建模实践进行讨论。

作者 | 王富森
来源 | 阿里开发者公众号

一 问题思考

在流量分析型产品的用户分析模块中,留存、互访、新老客构成等数据都是有效衡量用户粘性与促活召回的关键性指标;但是,我们发现在很多流量运营的业务场景中,留存分析建模都显著存在着设计和计算上的诸多问题,例如:各种历史库版本迭代的高额运维与存储成本、暴力计算、频繁计算、数据冷启动等问题。总结下来,有三个方面需要特别关注:

1、场景理解:在非常多的业务场景中,模型研发人员偏向于通过构建用户粒度的全量历史库,再去聚合用户的新老标签或历史累计次数,但关键问题是,在这些场景中基于历史行为计算的新老客标签和历史累计指标,并不适用于该业务场景下的精细化运营。比如,在用户增长领域的流失召回等场景策略中,长周期外仍然未有回访的用户显然不具备再运营的潜质(如180天等);那么,相比基于历史库圈选新用户,改为基于动态滑动窗口的圈选策略,更具有可运营的潜质和解释性;并且,这种计算模式还可以有效地规避历史库回刷与冷启动问题。

2、计算模式:在计算模型的设计和模式构建上,大多数同学普遍缺少模型抽象与精细化设计。就累计去重指标或周期留存指标的计算实现来讲,大致有4种建模范式(想知道第5种请继续看下去):

  1. 历史库方式:基于T+1全量和当日增量构建全量历史库,基于历史库再聚合
  2. 轻度聚合后再聚合:构建T+1的轻度聚合模型,多周期扫描再聚合
  3. 历史周期计拉链:以固定时间窗口方式构建用户标签表,计算时关联标签表再聚合
  4. 位图模式计算:以滑动时间窗口方式构建用户标签表,并以位图存储窗口周期信息

3、模型易用:以上模型的实现都存在一定的研发成本,需要有丰富的场景实践和经验积累。如果能够沉淀一套敏捷的标准化模型计算组件,让新人可以在分钟级就完成留存模型的智能研发,那么,就能以标准化的建模范式解决很多业务场景下的建模研发的效率问题。

此外,丰富的场景实践和持续的技术思考对于建模范式的演进都是非常重要的。在某个节点之前,我们曾认为位图设计已经是最优实践了,但是之后又在业务实践中发现很多场景中需要计算更长业务周期的用户新老标签或留存分析。这时候,由于基于二进制bigint存储的位图只能支持到64位,在180天等长周期留存计算时就会溢出,因此,就需要更加通用且高效的模型计算抽象。总之,能够高效支撑业务是最好的实践标准,驱动我们可以在建模范式上是不断超越和颠覆。

二 用户故事

蚂蚁版生意参谋是面向支付宝商家的重要对客产品,当时在20年12月份底,我们计划在2月份全量上线B站,留给研发的时间非常吃紧。而由于是对客产品,在架构设计、数据质量、产出时效等各个方面都有更高标准的要求。此外,我们也必须基于新的数据资产架构对蚂蚁生意参谋的产品数据体系进行全盘的重构与升级。其中,流量模块就涉及到了上文中提到的留存/互访/新老等关键指标的各类计算,我们需要在短时间内快速消化和解决存量的应用层链路中存在的很多问题。而最终我们通过用户留存的建模组件,以“重设计、快实现”的方式,在不到2天的时间内就高效完成了小程序、生活号和电子名片等整体数据链路的重构与升级,而且在模型设计、模型存储和模型治理等方面,也取得了很多核心改变。特别是,经过模型重构后,生意参谋的产品数据体系变得异常精简、收敛和高效。那么,我们是怎么做到的呢?接下来,我们就详细介绍留存建模组件的设计思路。

三 设计实现

目标抽象:用户留存模型的建模抽象与组件构建(支持超过64位图的1/7/30/180天等周期性PV-UV、留存、互访、新老客等指标的一站式计算);

解决问题:存在大量的暴力扫描、低效计算、高昂历史回刷成本、数据冷启动等问题,而高效的留存模型的设计和研发门槛高(位图计算方式等)、缺少标准化的模型沉淀;

解决方案:提炼窗口滑动计算的建模范式、沉淀留存建模组件,显著提升研发效率(0.5人日),支持留存/互访/新老客等一站式计算;

1 模型抽象

  • 维度抽象:用户留存模型是典型的轻度聚合模型DWS,显然要有聚合维度列。
  • 设计抽象:滑动窗口设计:首先需要记录时间窗口内的用户行为分布(UV或PV),并通过某种数据结构来保存(如bit的Long值存储或者是Array);其次要设计好窗口滑动的更新逻辑;
  • 信息抽象:关键聚合信息,如新客的判断(N+1的时间窗口内,第N天首次访问就是新用户);last_date的数值化信息保留(累计多少天未访问,有效减少存储);累计访问天数(支持访问天数分布的人群分析);

2 模型组件

建模组件的设计就是将模型抽象的结果参数化与模板化实现,具体实现细节不详述。

使用说明:你只需要配置基础信息,在作业中配置好【输入表】、【输出表】、【统计日期】和【时间窗口】4个参数,就可以自动实现你的用户留存模型,无需定义DDL、无需写留存模型的复杂代码。

Dataworks任务节点参考:

节点ID:发布后的ODPS任务节点号
节点名称:留存模型的表名(可自定义指定)
节点类型:ODPS SQL
节点任务配置:

jar -classpath 云端文件/res?id=xxx 类名.tools.OdpsCltWrapper 
"--class" <留存模型的jar包>
"--properties-file"  云端文件/res?id=xxx 
"--conf" < spark配置文件> 
"--conf" "spark.executor.extraJavaOptions=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8" 
"--conf" "spark.driver.extraJavaOptions=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
"--master" yarn-cluster 
云端文件/res?id=xxx "--rTable" <输入表的表名> "--wTable" <输出表的表名: 即构建的留存模型> "--stat_date" ${bizdate} "--window" 180;

3 下游使用

基于留存建模组件,基础的模型结构和计算范式都是标准且统一的,能够在一个参数化逻辑中一站式实现所有指标的计算,非常便捷;而下游相关的数据模型也变得异常精简、收敛和高效。

通过参数化视图统一封装指标的一体化计算逻辑,下游不需要关注计算中的复杂逻辑,直接面向消费,简洁易用,如:

--报表引用
insert overwrite table <留存矩阵_接口表> partition (dt='${bizdate}') 
select spm,date_row,date_col, retn_vst_uv_1d
from 留存矩阵分析_参数化视图(留存模型table_name,'20211208')
where spm = 'XXX'
;
--计算引用
insert overwrite table <留存概览_接口表> partition (dt='${bizdate}') 
select vst_uv_1d,vst_uv_7d,vst_uv_30d,fst_uv_1d,retn_vst_uv_matrix,...
from 基础留存分析_参数化视图(留存模型table_name,'20211208')
where spm = 'XXX'
;

四 简要总结

核心改变:基于模型组件,可高效构建用户留存模型(0.5人日降低至2分钟),且支持超过64位图的留存/互访/新老指标的标准化计算、避免下游多周期扫描与重复计算,尤其相比历史库表可减少4倍存储(前:62字节 vs 后后:16字节)。

  • 建标准:构建了基于滑动窗口实现的标准化留存模型,实现模型设计和数据计算上的改进,有效解决了历史库版本迭代的高额运维与存储成本、下游的多周期扫描、频繁计算和历史库冷启动等一系列问题。
  • 提效率:研发效率显著提升(分钟级实现用户流量模型的标准化构建),让我们在及实现。
  • 提效率:30min左右即可完成100亿的留存模型计算。
  • 降存储:相比历史库设计可有效降低4倍存储、且信息更完备。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ACK One 构建应用系统的两地三中心容灾方案

简介&#xff1a;本文侧重介绍了通过 ACK One 的多集群应用分发功能&#xff0c;可以帮助企业管理多集群环境&#xff0c;通过多集群主控示例提供的统一的应用下发入口&#xff0c;实现应用的多集群分发&#xff0c;差异化配置&#xff0c;工作流管理等分发策略。结合 GTM 全局…

英特尔On技术创新峰会:助力开发者解决当前和未来的挑战

第二届英特尔On技术创新峰会于2022年9月27日在美国加利福尼亚州圣何塞市开幕。在本届峰会上&#xff0c;英特尔向齐聚一堂的软硬件开发者们分享了在构建以开放、选择和信任为原则的生态系统方面的最新进展——从推动开放标准以使“芯片系统”&#xff08;systems of chips&…

你不知道的 HTTPS 压测

简介&#xff1a;随着互联网安全规范的普及&#xff0c;使用 HTTPS 技术进行通信加密&#xff0c;实现网站和 APP 的可信访问&#xff0c;已经成为公认的安全标准。本文将介绍针对 HTTPS 协议做压力测试的关注点&#xff0c;以及使用 PTS 做 HTTPS 压测的技术优势和最佳实践。 …

数据湖—Delta Lake

简介&#xff1a;Delta Lake 是 DataBricks 公司开源的、用于构建湖仓架构的存储框架。能够支持 Spark&#xff0c;Flink&#xff0c;Hive&#xff0c;PrestoDB&#xff0c;Trino 等查询/计算引擎。作为一个开放格式的存储层&#xff0c;它在提供了批流一体的同时&#xff0c;为…

2022杭州云栖大会定档11月3日至5日:技术产品发布+超4万平科技展

9月28日消息&#xff0c;记者从云栖大会组委会获悉&#xff0c;2022杭州云栖大会将于11月3日至5日在杭州云栖小镇举办。今年云栖大会以“计算进化未来”为主题&#xff0c;在3天内设置两场主论坛&#xff0c;70多场数字技术、产业和生态分论坛&#xff0c;以及4万平米智能科技全…

阿里云RemoteShuffleService 新功能:AQE 和流控

简介&#xff1a;阿里云EMR 自2020年推出 Remote Shuffle Service(RSS)以来&#xff0c;帮助了诸多客户解决 Spark 作业的性能、稳定性问题&#xff0c;并使得存算分离架构得以实施。为了更方便大家使用和扩展&#xff0c;RSS 在2022年初开源(https://github.com/alibaba/Remot…

如何使用Delta Lake构建批流一体数据仓库

简介&#xff1a;Delta Lake是一个开源存储层&#xff0c;它为数据湖带来了可靠性。Delta Lake提供了ACID事务、可扩展的元数据处理&#xff0c;并统一了流式处理和批处理数据处理。Delta-Lake运行在现有数据湖之上&#xff0c;并且与Apache Spark API完全兼容。希望本篇能让大…

中国峰会|下一代云基础架构,赋能企业云上发展

点击上方入口立即【自由构建 探索无限】一起共赴年度科技盛宴&#xff01;马上点击“阅读原文”了解更多亚马逊云科技中国峰会让我们共同见证亚马逊的一小步云计算的一大步扫码【立即报名】直通大咖云集的亚马逊云科技中国峰会&#xff01;

Delta Lake基础介绍(商业版)

简介&#xff1a;介绍 Lakehouse 搜索引擎的设计思想&#xff0c;探讨其如何使用缓存&#xff0c;辅助数据结构&#xff0c;存储格式&#xff0c;动态文件剪枝&#xff0c;以及 vectorized execution 达到优越的处理性能。 作者&#xff1a;李洁杏&#xff0c;Databrick资深软…

云原生数仓如何破解大规模集群的关联查询性能问题?

简介&#xff1a;AnalyticDB for PostgreSQL(以下简称ADB PG)是一款PB级的MPP架构云原生数据仓库。本文从ADB PG架构设计的角度出发&#xff0c;探讨Runtime Filter在ADB PG中的实现方案&#xff0c;并介绍了基于Bloom Filter的ADB PG Dynamic Join Filter功能技术细节。 作者 …

独家对话Python之父:人类大脑才是软件开发效率的天花板

【CSDN 编者按】十五年前&#xff0c;《程序员》杂志曾专访过 Python 之父 Guido van Rossum&#xff0c;一起探讨了 Python 3.0 的较为明显的新特性&#xff0c;即增加了对中文( Unicode )的支持。十五年过去&#xff0c;Python 的版本号只前进了一个数字&#xff0c;但是 Pyt…

淘系用户平台技术团队单元测试建设

简介&#xff1a;单元测试是工程交付前质量保障的第一环&#xff0c;也无疑是软件工程质量保障的重要基石&#xff0c;有效的单元测试能够提前发现90%以上的代码Bug问题&#xff0c;同时也能防止代码的腐化&#xff0c;在工程重构演进时起到至关重要的作用。 作者 | 问元 来源 …

阿里云弹性计算对视觉计算的思考与实践

简介&#xff1a;利用人类已有和将有的技术加之商业手段&#xff0c;实现对人类感官体验进行全方位升级。 4月21日&#xff0c;“2022英伟达数字孪生技术应用论坛”上&#xff0c;阿里云弹性计算产品专家张新涛为大家带来了题为《阿里云弹性计算在XR业务上的应用实践》的主题分…

游戏行业弹性计算最佳实践

简介&#xff1a;本篇主要介绍三大游戏场景&#xff1a;游戏服务、大数据运营、云游戏的架构特点&#xff0c;以及基于这些场景下的阿里云游戏行业计算基础设施选型与部署方案。 文丨寻野&#xff0c;阿里云弹性计算产品解决方案架构师 摘要&#xff1a;游戏一直以来是互联网…

三大特性,多个场景,Serverless 应用引擎 SAE 全面升级

简介&#xff1a;Serverless 应用引擎 SAE 凭借着天然技术优势&#xff0c;已经帮助成千上万家企业实现容器和微服务技术转型。近日&#xff0c;SAE不仅进一步提供了全套微服务能力&#xff0c;更为传统 Job 和 PHP 用户提供了全新的&#xff0c;更高效、更经济且可平滑迁移的解…

代码覆盖率在性能优化上的一种可行应用

简介&#xff1a;JavaScript 是前端应用主要语言&#xff0c;相较于其他平台编程语言&#xff0c;JS资源多数情况下要通过网络进行加载&#xff0c;那么代码的体积直接影响了页面加载执行时间。“无效的代码”的多寡直接影响到了我们的代码质量&#xff0c;所以度量代码的执行覆…

MaxCompute湖仓一体介绍

简介&#xff1a;本篇内容分享了MaxCompute湖仓一体介绍。 分享人&#xff1a;孟硕 阿里云 MaxCompute产品专家 视频链接&#xff1a;数据智能实战营-北京站 专题回顾 正文&#xff1a; 本篇内容将通过两个部分来介绍MaxCompute湖仓一体。 一、什么是 MaxCompute 湖仓一体…

云原生离线实时一体化数仓建设与实践

简介&#xff1a;本篇内容分享了云原生离线实时一体化数仓建设与实践。 分享人&#xff1a;刘一鸣 Hologres 产品经理 视频链接&#xff1a;数据智能实战营-北京站 专题回顾 正文&#xff1a; 本篇内容将通过五个部分来介绍云原生离线实时一体化数仓建设与实践。 一、离线实…

议题征集|Flink Forward Asia 2022 正式启动

在这数据量爆炸性增长的时代&#xff0c;开源软件如雨后春笋般出现在开发者的视野中&#xff0c;数据的价值被重新定义。同时&#xff0c;越来越多的企业开启实时化道路&#xff0c;数据的实时分析与计算需求与日俱增。作为主打流处理的计算引擎 Apache Flink 于 2014 年正式开…

龙蜥正式开源 SysOM:百万级实战经验打造,一站式运维管理平台 | 龙蜥技术

简介&#xff1a;SysOM集监控、告警、诊断、修复、安全能力于一体的操作系统运维平台。 文/系统运维 SIG 如果你被突如其来的 OOPS 和满屏奇怪的函数弄得满头问号&#xff1f;机器内存明明很大&#xff0c;却申请不出来内存&#xff1f;业务周期抖动&#xff0c;ping 命令偶尔…