news 2026/4/15 11:15:35

使用 dbt_set_similarity 测量跨产品采纳情况

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 dbt_set_similarity 测量跨产品采纳情况

原文:towardsdatascience.com/measuring-cross-product-adoption-using-dbt-set-similarity-fdf7c1f88bc2?source=collection_archive---------1-----------------------#2024-12-28

在 dbt 工作流中增强跨产品洞察

https://medium.com/@senick.matthew?source=post_page---byline--fdf7c1f88bc2--------------------------------https://towardsdatascience.com/?source=post_page---byline--fdf7c1f88bc2-------------------------------- Matthew Senick

·发布于 Towards Data Science ·5 分钟阅读·2024 年 12 月 28 日

介绍

对于多产品公司,一个关键的指标通常被称为“跨产品采纳”(即了解用户如何与产品组合中的多个产品互动)。

在流行书籍Hacking Growth[1] 中,建议使用一种衡量跨产品或跨特征使用情况的指标,即杰卡德指数。杰卡德指数传统上用于衡量两个集合之间的相似度,也可以作为评估产品采纳模式的强大工具。它通过量化产品之间用户的重叠,帮助识别跨产品协同效应和增长机会。

dbt 包dbt_set_similarity旨在简化在分析工作流中直接计算集合相似度指标的过程。该包提供了一种方法,可以在 SQL 转换层中计算杰卡德指数。

要将此包导入到您的 dbt 项目中,请将以下内容添加到packages.yml文件中。为了本文的示例,我们还需要 dbt_utils。请在项目中运行dbt deps命令来安装该包。

packages:-package:Matts52/dbt_set_similarity version:0.1.1-package:dbt-labs/dbt_utils version:1.3.0

杰卡德指数

杰卡德指数(Jaccard Index),也称为杰卡德相似度系数,是一种用于衡量两个集合相似度的指标。它的定义是两个集合交集的大小除以它们并集的大小。

从数学角度来看,它可以表示为:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/b852489e4adafbcf4e5142059b2563f2.png

杰卡德指数表示两个集合的“交集”与它们的“并集”的比值(图由作者提供)

其中:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a162cf1562e9ce0ccb3f78452c055ad4.png

(图像由作者提供)

Jaccard 指数在交叉产品采用的背景下特别有用,因为:

例如:

示例数据

我们将使用的示例数据集是一个虚构的 SaaS 公司,提供存储空间作为产品给消费者。该公司提供两种不同的存储产品:文档存储(doc_storage)和照片存储(photo_storage)。这些值要么为真,表示产品已被采用,要么为假,表示产品未被采用。

此外,该公司服务的用户群体(user_category)要么是科技爱好者,要么是房主。

为了这个示例,我们将在 dbt 项目中将此 CSV 文件作为名为seed_example的“种子”模型读取。

简单的交叉产品采用

现在,假设我们想要计算文档存储和照片存储产品之间的 Jaccard 指数(交叉采用)。首先,我们需要创建一个包含使用文档存储产品的用户的数组(列表),以及一个包含使用照片存储产品的用户的数组。在第二个 CTE 中,我们应用dbt_set_similarity包中的jaccard_coef函数,帮助我们轻松计算这两个用户 ID 数组之间的 Jaccard 系数。

withproduct_usersas(select array_agg(user_id)filter(where doc_storage=true)asdoc_storage_users,array_agg(user_id)filter(where photo_storage=true)asphoto_storage_usersfrom{{ref('seed_example')}})select doc_storage_users,photo_storage_users,{{dbt_set_similarity.jaccard_coef('doc_storage_users','photo_storage_users')}}ascross_product_jaccard_coeffromproduct_users

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/529e9b291bf1faf07a77a46845db4c94.png

来自上述 dbt 模型的输出(图像由作者提供)

如我们所见,似乎超过一半(60%)的采用了任何一个产品的用户,也采用了两个产品。我们可以通过将用户 ID 集合放入维恩图中来图形化验证我们的结果,在那里我们看到三位用户同时采用了这两个产品,在五位用户中占比为 3/5 = 0.6。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3c4bc717a8204033fd7e53e5b3fac24b.png

用户 ID 和产品采用的集合是什么样的,验证我们的结果(图像由作者提供)

分段交叉产品采用

使用dbt_set_similarity包,创建不同用户类别的分段 Jaccard 指数应该是非常自然的。我们将遵循之前的模式,然而,我们将仅仅在用户类别上对我们的聚合进行分组。

withproduct_usersas(select user_category,array_agg(user_id)filter(where doc_storage=true)asdoc_storage_users,array_agg(user_id)filter(where photo_storage=true)asphoto_storage_usersfrom{{ref('seed_example')}}group by user_category)select user_category,doc_storage_users,photo_storage_users,{{dbt_set_similarity.jaccard_coef('doc_storage_users','photo_storage_users')}}ascross_product_jaccard_coeffromproduct_users

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/17ee449e92cd117d800aa2f482a6bba5.png

来自上述 dbt 模型的输出(图像由作者提供)

从输出结果来看,考虑到杰卡德指数,房主的跨产品采用率较高。如上所示,所有已采用其中一种产品的房主都已经采用了两种产品。与此同时,只有三分之一的科技爱好者在采用一种产品后也采用了两种产品。因此,在我们这个非常小的数据集中,房主的跨产品采用率高于科技爱好者。

我们可以通过再次绘制韦恩图来图形化验证输出结果:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/19568107b9ad9d3a3154ca096d7158ff.png

按照两个细分市场划分的韦恩图(图片由作者提供)

结论

dbt_set_similarity提供了一种直接在 dbt 工作流中计算跨产品采用指标(例如杰卡德指数)的简单有效方法。通过应用此方法,多产品公司可以深入了解用户行为和产品组合中的采用模式。在我们的示例中,我们演示了整体跨产品采用率的计算,以及对不同用户类别的细分采用情况。

使用该包进行跨产品采用分析只是其中一种直接的应用。实际上,这种技术有无数其他潜在应用,例如:

此外,这种分析方式显然不仅限于 SaaS,几乎可以应用于任何行业。祝你使用杰卡德指数愉快!

参考文献

[1] Sean Ellis 和 Morgan Brown, Hacking Growth(2017 年)

资源

dbt 包中心

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 16:49:13

智能购物助手:Jd-Auto-Shopping技术测评与应用指南

智能购物助手:Jd-Auto-Shopping技术测评与应用指南 【免费下载链接】Jd-Auto-Shopping 京东商品补货监控及自动下单 项目地址: https://gitcode.com/gh_mirrors/jd/Jd-Auto-Shopping 在电商抢购场景中,手动操作往往难以应对商品的瞬间售罄。Jd-Au…

作者头像 李华
网站建设 2026/4/14 18:10:54

解锁低延迟游戏串流:打造无缝家庭游戏共享体验

解锁低延迟游戏串流:打造无缝家庭游戏共享体验 【免费下载链接】Sunshine Sunshine: Sunshine是一个自托管的游戏流媒体服务器,支持通过Moonlight在各种设备上进行低延迟的游戏串流。 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine …

作者头像 李华
网站建设 2026/4/11 0:00:44

Qwen-Ranker Pro应用场景:跨境电商多语言商品描述语义一致性校验

Qwen-Ranker Pro应用场景:跨境电商多语言商品描述语义一致性校验 1. 跨境电商面临的商品描述挑战 跨境电商平台经常面临一个棘手问题:同一商品在不同语言版本中的描述信息不一致。这种不一致可能导致: 消费者在不同语言站点看到的产品信息…

作者头像 李华
网站建设 2026/4/13 17:47:54

DeepSeek-R1-Distill-Qwen-7B一键部署指南:小白也能快速上手

DeepSeek-R1-Distill-Qwen-7B一键部署指南:小白也能快速上手 你是不是也遇到过这些情况:想试试最新的大模型,但被复杂的环境配置劝退;看到别人用AI写代码、解数学题很厉害,自己却连第一步都迈不出去;听说D…

作者头像 李华