桑基图与序列,远比你想象的更有用
2019年,我接手了一个电商SaaS平台的用户增长项目。当时团队花了大量精力优化“首页-搜索-商品详情-加购-支付”这条标准路径,转化率却纹丝不动。直到我拉出所有用户的完整行为序列,才发现一个反直觉的事实:大部分流失用户根本没有走“搜索”这个节点,而是从“首页”直接跳到了“商品详情”,然后重复浏览了3-5次才离开。他们不是不想要,而是找不到搜索入口。这个发现让我彻底改变了做用户路径分析的方式,桑基图告诉我们“流量去哪儿了”,序列分析告诉我们“用户为什么那样走”。
两者结合,才是真正的用户行为路径分析。
这篇文章,我会先讲清楚桑基图和序列分析的核心结论,再拆解它们的真实使用场景和常见误区,然后给出专业判断逻辑、具体案例和数据观察,以及不同情况下的行动建议和取舍。你会发现,用户行为路径分析的价值不在于“画出一张漂亮的图”,而在于“发现那些图表之外的故事”。
很多人在第一次看到桑基图时,会误以为图中每一条“流”代表一个用户的完整路径。这是最常见的误解。桑基图的核心是聚合所有用户在每个节点之间的流转次数,形成流量宽度的对比。它展示的是“从A到B有多少次事件”,而不是“张三从A到B再到C的完整路径”。
举个例子:如果100个用户从“首页”进入,其中60个去了“搜索”,30个去了“分类”,10个直接去了“购物车”。桑基图会把这三条线的宽度按60:30:10的比例画出来。但其中某个用户可能先去了“搜索”,又回到“首页”,再去“购物车”。桑基图会把这个过程拆成“首页-搜索”、“搜索-首页”、“首页-购物车”三条独立的流量线,而不是一个完整的用户故事。
桑基图的价值在于宏观诊断:它能快速告诉你哪个环节的流量最集中、哪个环节的流失最明显。但如果你想理解“为什么用户会那样走”,就必须借助序列分析。
序列分析的核心任务是把每个用户的事件日志,按照时间顺序串联成一条完整的“行为路径”。它保留了用户行为的前后顺序、重复次数、循环模式等信息。这些细节是桑基图无法直接呈现的。
比如,同样是“浏览-加购-支付”三个节点,用户A的序列是“浏览→加购→支付”,用户B的序列是“浏览→加购→浏览→加购→支付”。桑基图显示这两个用户都完成了“浏览→加购→支付”的流量,但序列分析揭示出用户B经历了两次“浏览-加购”循环,这可能意味着他做了价格对比或犹豫不决。这个区别对产品优化来说至关重要:用户A的路径是“干净”的,用户B的路径有“阻力”,需要去排查是什么让用户犹豫了。
我的实践结论是:先用桑基图做“扫描”,定位问题区域;再用序列分析做“深挖”,还原问题背后的用户行为模式。桑基图是“宏观地图”,告诉我们哪里可能有“拥堵”或“断流”;序列分析是“微观导航”,告诉我们每个用户具体是怎么走的。两者缺一不可。

2020年,我帮一家教育类APP做用户行为分析。他们的运营团队已经用桑基图做过一轮分析,发现一个“问题”:用户从“课程详情页”到“下单页”的转化率很低,只有15%。他们据此判断,问题出在“课程详情页”的内容不够吸引人,于是投入大量资源优化了详情页的文案和视频。一个月后,转化率从15%提升到了18%。看起来有效,但团队忽略了一个关键:桑基图告诉他们“很多用户没去下单页”,但没告诉他们“那些用户到底去了哪里”。
我接手后,用序列分析重新跑了一遍数据。发现那些从“课程详情页”流失的用户,有超过40%的人去了“课程评价页”或“用户问答区”。他们不是不想买,而是在做购买决策前需要更多的“信任证据”。这个发现改变了我们的优化方向:不再只优化详情页,而是把评价区和问答区的内容前置到详情页,并增加了“看过这门课的人也买了”的社交证明模块。接下来一个月,转化率从18%跃升到了35%。
这个案例说明:只看桑基图,你会把“流失”归因于“页面内容差”;结合序列分析,你才能发现“流失”背后是“用户需要更多信息才能做决策”。
原因有三点:
在一个服务零售客户的团队,他们建立了“双轨分析”机制:每周一用桑基图做全量数据扫描,标注出所有“异常流量节点”(比如某条线的宽度突然变大或变小、或者出现了非预期的“回环”路径)。然后,在周二到周四,针对每个异常节点,用序列分析抽取该节点前后各3步的用户行为序列,进行聚类和模式识别,找出“异常背后的故事”。
这个流程让团队的决策效率提升了至少3倍。以前一个优化方向需要1-2周才能验证,现在3-4天就能完成从“发现问题”到“提出假设”再到“验证调整”的闭环。

这是最普遍也是最危险的误区。很多团队以“我们已经有桑基图了,没必要再做序列分析”为由,放弃了更深入的洞察。但正如我之前所述,桑基图展示的是“流量”,序列分析展示的是“用户”。流量可以告诉你“拥挤程度”,但用户告诉你“为什么会拥挤”。
选择建议:如果只需要了解“从哪个页面到哪个页面流量最大”,用桑基图就够;但如果需要理解“用户为什么会这样走”,必须用序列分析。多数情况下,两者都需要。
很多人在做序列分析时,喜欢把用户的所有行为都串联起来,生成一个“超长序列”,以为这样能代表“完整用户旅程”。但事实上,过长的序列会带来两个问题:一是噪声增加,过多无关行为会淹没关键信号;二是分析难度剧增,很难从海量长序列中归纳出有效模式。
以电商场景为例,一个用户可能一天内浏览了20个商品、切换了3个品类、搜索了5次。如果全序列是“首页→搜索→商品A→搜索→商品B→分类→商品C→搜索→商品D→加购→商品E→支付……”,这个序列信息量很大,但很难直接用于优化。更好的做法是按“会话”或“任务”切分序列,比如“一次搜索到支付”为一个序列,或者“一次浏览到离开”为一个序列。这样每个序列都有明确的业务语义,分析起来更有针对性。
很多人认为,用户行为路径分析只适合电商、教育、金融等有明确“转化目标”的场景。但我在实践中发现,它在内容社区、工具类产品、甚至B2B SaaS产品中同样有价值。比如,在内容社区中,用序列分析可以发现“用户从浏览→点赞→收藏→分享”的路径模式,找出“高价值内容”的特征;在工具类产品中,可以分析“用户从注册→创建第一个项目→完成第一个任务”的路径,发现“新手引导”的优化点。
选择建议:只要你的产品有用户行为序列,就值得做路径分析。不一定要有“转化”,但一定需要有“行为”。
桑基图和序列分析的第一个关键判断是“用什么粒度的节点”。节点粒度太粗,会丢失细节;节点粒度太细,图会变得混乱,难以解读。
我的经验规则是:按“用户意图”粒度定义节点,而不是按“页面URL”或“事件名称”粒度。比如,电商APP中,“搜索”是一个节点,“搜索-连衣裙”和“搜索-牛仔裤”是更细粒度的节点。如果分析目标是“优化搜索体验”,用细粒度节点更合适;如果分析目标是“整体转化漏斗”,用粗粒度节点更清晰。
一个实用的判断标准:节点的数量控制在10-15个以内,对桑基图来说这比较合适;序列分析可以稍多,但也不建议超过30个。节点过多时,可以考虑对同类型节点做聚合,比如把所有“商品详情页”合并为一个节点。
序列分析中,另一个关键判断是“序列应该多长”。太短,会丢失关键上下文;太长,会引入噪声。
我常用的方法是:按“业务自然边界”截断。比如,电商场景中,一次“购买”发生就是一个自然边界,可以截断当前序列,开始新的序列。或者,用户离开APP超过30分钟,也可以视为一个会话结束,截断当前序列。这样生成的序列,每个都有明确的业务含义,分析起来更有针对性。
如果用户的行为模式比较复杂,可以考虑对序列长度做“分布分析”。比如,统计所有序列的长度分布,取80%分位作为截断长度,这样可以保留大部分有效序列,同时过滤掉“超级长”的异常序列。
我之前提到过“非典型路径”的概念,但需要明确:不是所有非主流路径都是“异常”,只有那些“偏离预期目标”的路径才值得关注。比如,在电商场景中,目标路径是“首页→搜索→商品→加购→支付”。如果一个用户走了“首页→搜索→商品→分享→支付”,这不算异常,因为他最终还是完成了支付。但如果一个用户走了“首页→搜索→商品→首页→搜索→商品→首页→搜索→商品”,来回“逛”了3次,这就是异常,说明他可能在比较价格或犹豫不决。
判断“异常路径”的实操方法:设定一个“预期路径”,然后计算每个用户序列与预期路径的“编辑距离”(编辑距离是指把用户序列转换成预期路径所需的操作次数,包括插入、删除、替换)。编辑距离大于某个阈值的序列,视为“异常路径”,需要进一步分析。

某电商平台发现,用户从“加购”到“支付”的转化率只有45%,远低于行业平均水平。团队用桑基图分析,发现“加购”节点后,大部分流量去了“支付”节点,但还有一部分流向了“收藏夹”和“商品详情页”。他们初步判断,是“支付流程”有问题,导致用户流失。
我用序列分析重新审视这个问题。先抽取了所有“加购后未支付”的用户序列,按最后一步行为分成了三类:
关键发现是:“加购后流失”的用户中,只有不到20%是真的“流失”了,其余80%的用户只是暂时离开,最终还会回来完成支付,或者支付了其他商品。真正的“流失”定义应该是“加购后,在一定时间内(比如30分钟)没有完成支付,也没有再回到该商品的行为”。
优化建议:不是去优化支付流程,而是去优化“加购后的引导”。比如,在加购成功后,弹出一个“您可能还需要”的推荐模块,引导用户继续浏览,而不是让用户“空手离开”。同时,设置“加购后未支付”的提醒机制,比如在用户离开APP后,发送一条推送通知“您购物车里的商品还在哦”。
这个案例中,序列分析揭示了一个关键洞察:用户的“加购”行为,很多时候不是“购买决策”的终点,而是“比较决策”过程中的一个“书签”。这个洞察直接改变了优化方向,最终让“加购后支付”转化率从45%提升到了62%。
在使用一个内容社区APP时,团队发现一个有趣的现象:用户平均阅读时长很长,但“点赞、评论、分享”等互动行为非常少。传统的桑基图分析显示,用户从“阅读”节点到“互动”节点的转化率只有5%。团队认为“内容质量不行,用户不愿意互动”。
我用序列分析做了一个更细致的分析:先按“阅读时长”对用户分组,分为“浅阅读”(<30秒)、“中等阅读”(30秒-2分钟)、“深度阅读”(>2分钟)三组。然后,对每组用户抽取“阅读后的行为序列”。
数据出乎意料:“深度阅读”用户中,只有不到10%的人会直接去“点赞”或“评论”,但超过40%的人会去“搜索”与当前内容相关的其他内容,或者“关注”作者。也就是说,这些“深度阅读”用户不是不互动,而是他们的互动方式是“继续探索”和“建立连接”,而不是“点赞”和“评论”。
优化建议:不要把“点赞、评论”作为唯一的“互动指标”。可以增加“搜索相关”、“关注作者”、“收藏内容”等行为作为“深度互动”的指标。同时,优化“深度阅读”后的引导,比如在文章底部增加“相关推荐”模块,或者在用户阅读完成后,自动弹出“关注作者”的提示。
这个案例告诉我:序列分析的价值在于,它能帮你发现“用户真正的互动方式”,而不是被“预设的互动指标”所限制。
对于日活10万以下的产品:可以用全量数据分析,不采样。SQL可以处理,序列分析可以直接在数据库层面完成。建议优先做“全量分析”,避免抽样带来的偏差。
对于日活10万-100万的产品:建议采用“分层抽样+全量验证”的策略。先用全量数据做桑基图,定位问题区域;然后,只在问题区域对应的用户群体中,做全量的序列分析,而不是对所有用户都做序列分析。这样可以平衡分析精度和计算成本。
对于日活100万以上的产品:必须采用“分布式计算+预聚合”的策略。桑基图的数据可以通过预聚合的方式快速生成(比如按小时、按天预计算每个节点对之间的流量)。序列分析则需要借助Spark或Flink等分布式计算框架,对用户行为日志做“按用户分组、按时间排序”的聚合处理。同时,建议只对“高价值用户”或“异常用户”做全量序列分析,对其他用户按比例抽样。
如果目标是“优化转化漏斗”:优先用桑基图,快速定位流失节点。然后,对流失节点前后的用户做序列分析,理解流失原因。不建议直接跳过桑基图,从序列分析开始,因为“不知道问题在哪里”时,序列分析的信息量太大,容易迷失方向。
如果目标是“发现用户行为模式”:优先用序列分析,做聚类和模式识别。比如,把所有用户序列按“编辑距离”做聚类,找出“典型路径”和“非典型路径”的集合。然后,用桑基图可视化这些典型路径,让团队更容易理解。不建议先做桑基图,因为桑基图会“平均化”所有路径,掩盖了“非典型路径”的独特性。
如果目标是“监控异常变化”:桑基图和序列分析要同时用,建立“双轨监控”机制。桑基图监控“流量变化”,序列分析监控“模式变化”。比如,如果某天桑基图显示“商品详情页→支付”的流量突然下降,对应的序列分析应该能发现“用户从商品详情页去了哪里”,是去了“首页”、“搜索”还是“其他商品”?这能帮助快速判断异常原因。
如果只能做一种分析:选择序列分析。因为序列分析可以“向下兼容”桑基图的部分功能(比如,从序列中聚合出桑基图的数据),但桑基图无法“向上兼容”序列分析。如果你只有时间做一种,序列分析给你的信息更丰富。
如果只能做定量分析,不做定性分析:优先用桑基图。因为桑基图的结果是“可量化”的,可以直接说明“有多少流量在哪个节点流转”。序列分析的结果更偏向“定性”,需要结合业务理解才能解读。如果团队没有深入理解业务的分析师,先用桑基图可能更稳妥。
如果团队技术能力有限:优先用桑基图,配合“分段式”的序列分析。比如,每次只分析“从A到B”这一段路径上的用户行为,而不是全量序列。这样可以在不依赖复杂技术栈的情况下,获得部分序列分析的洞察。很多BI工具都支持“事件流分析”或“路径分析”功能,可以替代部分序列分析的工作。

用户行为路径分析不是“画一张图”那么简单。桑基图和序列分析是两种互补的工具,分别解决“宏观流量”和“微观模式”的问题。真正有效的分析,是先用桑基图做扫描,定位问题区域;再用序列分析做深挖,还原问题背后的用户行为模式。两者的组合,能帮你发现“用户在数据表里看起来合理,但在实际行为中却出乎意料”的洞察。
下一步,你可以尝试做以下三件事:
用户行为路径分析不是一次性的工作,而是需要持续迭代的“诊断工具”。每一次分析,都像是给产品做一次“体检”,发现一个“隐藏的问题”,然后优化它,再分析,再优化。只有这样,才能真正让数据告诉你“用户需要什么”,而不是“你认为用户需要什么”。
我刚接触用户行为路径分析,看到桑基图和序列分析两个概念,感觉都是看用户路径,但不知道具体区别。比如我有一份用户点击日志,应该用桑基图还是序列分析?能不能用一个实际案例说明它们分别解决什么问题?
从我的实战经验出发,桑基图是宏观的流量流转图,展示“从A到B到C”的流量宽度,适合看整体漏斗和主要路径;序列分析是微观的个体行为顺序,适合发现异常路径和用户个性化模式。我踩过的坑是:一开始只画桑基图,发现某个节点流失严重但不知道为什么,后来用序列分析发现用户从支付页跳回首页是因为优惠券弹窗干扰。
所以建议先用桑基图定位问题区域,再用序列分析深挖原因。
我用工具(比如Python的Plotly)画桑基图,但是用户行为路径有几十个页面节点,画出来密密麻麻根本看不清。有没有办法精简节点?或者有没有其他可视化方式?我试过只保留前10个节点,但丢失了很多信息。
这是常见问题。我的经验是:节点粒度需要根据分析目标调整。如果看整体转化漏斗,只保留核心页面(首页、搜索、商品详情、加购、支付、完成);如果看页面内交互,可以用事件标签(点击按钮、滑动等)作为节点。另外,可以先用序列分析找出高频路径,只展示那些流量占比超过1%的路径。
我做过一个电商案例,原始节点80多个,按此方法精简到12个,桑基图清晰展示出“浏览-加购-支付”的主路径和“浏览-收藏-加购”的次路径。
我想分析用户从注册到首次购买的行为路径,但时间跨度可能一个月,每个用户的行为序列有几百个事件。如果直接分析整个序列,很难找到规律。有没有办法分段或降维?另外,如何定义“一次会话”还是“整个生命周期”?
我通常的做法是:先定义分析目标。如果是分析单次购买转化,只取注册后7天内的行为,并且按会话切分(30分钟无操作算新会话)。然后对每个会话内的行为序列进行聚合,比如把“浏览商品A、B、C”合并为“浏览商品页”。我踩过坑:之前直接分析一个月序列,结果发现大部分序列都是“登录-浏览-退出”重复,毫无意义。
后来改为按“关键事件”划分,比如“注册-首次加购-首次支付”之间的行为,序列长度大幅缩短且更有价值。
我画桑基图时,每个节点的流量宽度是用户数还是事件数?比如从首页到搜索的流量是1000,这表示1000个用户还是1000次搜索事件?我同时用序列分析统计用户数,发现对不上,很困惑。
这是一个核心误区。桑基图的流量宽度通常是事件数(或会话数),而不是独立用户数。因为一个用户可能多次从首页到搜索,所以事件数会大于用户数。我刚开始也犯过这个错误,以为宽度代表用户数,结果发现转化率计算错误。正确做法:如果需要看用户数,可以先用序列分析去重,只取每个用户的首次路径或最常路径,再画桑基图。
我在一个项目中,用户行为日志有10万用户,但事件数有50万,桑基图宽度显示事件数,导致看起来流量很大但实际用户数少。后来我按用户去重后,宽度缩小了5倍,才得到准确的用户流转图。


读者评论
桑基图加序列分析的方法确实点出了很多团队的盲区。我们之前也只看漏斗,结果优化了半天转化率没变,后来用序列分析才发现用户根本不是按我们设想的路径走的,比如很多人在详情页和评价页之间来回跳转,说明信任才是卡点。文章里说的'双轨分析'机制很实用,先宏观扫描再微观深挖,效率确实高很多。建议团队都试试。
作为一个数据分析师,深有同感。桑基图容易画,但容易误导人,以为流量宽就是好,其实忽略了用户背后的意图。序列分析虽然技术门槛高,但能还原真实行为模式。文中的'编辑距离'判断异常路径的方法很新颖,准备在我们的用户日志里实践一下。另外,关于序列截断按80%分位取,这个经验值很有参考价值。
文章案例很真实,特别是那个教育APP的案例,优化详情页只涨了3%,加上评价和社交证明后涨了17%。这说明数据洞察不能只停留在表面流量,要追问用户为什么流失。不过文中提到'双轨分析'需要写SQL或Python,对很多运营团队来说还是太难了。如果能有更自动化的工具降低门槛,可能更多团队能受益。
内容很干货,但有些地方感觉可以再深入。比如节点粒度选择,作者建议按用户意图分,但实际操作中怎么定义'意图'?不同产品差异很大。另外,序列长度截断按80%分位是否太机械?有些长序列可能反而是关键发现。不过总体思路很好,先桑基图定位问题,再序列分析找原因,这个框架值得推广。