“ 漏斗分析 (Funnel analysis)”用于分析事件序列,帮助网站或移动应用提升用户参与度。为了提升Twitter用户的参与度, Twitter 的数据科学团队借助这个概念了解用户在注册或发推过程中如何同用户界面交互。他们用它分析用户交互日志,以确保他们交付的产品特性对用户有用且有吸引力。
Krist Wongsuphasawat是Twitter的职业数据科学家,他最近写了一篇有关他们的试验性可视化分析方法的 文章 。该方法用于特定的事件序列计数,此外,为了提供更广阔的视角,该方法还会聚合并可视化序列中各步骤之间的信息。
日志分析可以像单事件计数那么简单,例如,点击Tweet按钮。但是,该事件只是打开了Tweet编辑器,并不一定意味着用户成功发推。漏斗分析或“漏斗计数(counting funnels)”可以提供更宏观的画面,便于查看用户在开始编辑之后中途放弃Tweet的次数。这会引出更具探究性的问题,但是,Twitter的数据规模对数据分析提出了挑战。这些数据涉及1万多种事件类型和数以亿计的用户。Twitter团队已经构建了一个 统一的日志基础设施 ,用于捕获所有客户端的用户活动,使得这些日志成为组织内最大的数据集之一。
团队设计了一个试验性可视化漏斗分析工具Flying Sessions,用于支持漏斗探究,减少工作量,并提供比简单计数更多的信息。该工具帮助数据科学家理解日志数据。用户可以通过选择部分会话来指定分析粒度。然后,该工具会为用户提供聚合结果,用户可以在可视化界面上交互地探究这些结果。
该方案的数据管道包含三个部分:“会话生成(sessionzation)”、分段和聚合。可视化分析工具用到的技术包括 Hadoop 、 Scalding 、 D3 和 d3Kit 。Scalding用于对Hadoop中大量的原始日志事件进行过滤,并汇总成较小的JSON文件,后者可以通过使用D3和d3Kit开发的Web用户界面可视化。
会话生成阶段会为每个用户创建一个会话,并添加连续事件(按时间戳排序)。
分段阶段会从会话中提取与分析师指定的“对齐点(alignment point)”相关的事件子序列,并根据它们包含的对齐点将子序列分组成段。该阶段包括识别会话片段,然后提取对齐点之间的事件序列并分组。
最后,聚合阶段会通过管道将上个阶段生成的段并行发给各种聚合器,以便生成可以在前端可视化的汇总信息(比如事件平均次数)。这种设计允许在需要额外的汇总类型时添加新的聚合器。
此外,Twitter团队还设想了几种设计改进,以便将来增加使用模式挖掘或更复杂算法的新聚合类型。
查看英文原文: Funnel Analysis at Twitter for Improving User Engagement