“漏斗分析(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