智能分析最佳實踐——指標(biāo)邏輯樹
背景
所有業(yè)務(wù)都會面對“為什么漲、為什么降、原因是什么?”這種簡單粗暴又不易定位的業(yè)務(wù)問題。為了找出數(shù)據(jù)發(fā)生異動的原因,業(yè)務(wù)人員會通過使用多維查詢、dashboard等數(shù)據(jù)產(chǎn)品鎖定問題,再輔助人工分析查找問題原因,這個過程通常需要一天時間。幾乎每種業(yè)務(wù)角色的用戶都在做相似的分析,但在業(yè)務(wù)方分析人員發(fā)生工作變動時,分析方法難以得到較好傳承。因此我們需要一款自動給出分析結(jié)論的智能化數(shù)據(jù)產(chǎn)品來解決上面的問題,產(chǎn)品的基本功能如圖1所示。
圖1 產(chǎn)品架構(gòu)圖
由上圖可知,指標(biāo)邏輯樹就是我們抽象出來的智能異動分析數(shù)據(jù)產(chǎn)品的***實踐。它將固定的分析方法和業(yè)務(wù)場景抽象出來,套用靈活的數(shù)據(jù)源(包含Kylin、MySQL、Elasticsearch、Druid等),自動生成符合各類用戶的異動分析報告;它能夠直接給出分析結(jié)論進而快速落實業(yè)務(wù)行動,降低分析成本和決策周期。選定兩個時間周期,指定指標(biāo)順序,通過指標(biāo)邏輯樹就可找出導(dǎo)致核心指標(biāo)發(fā)生異動的關(guān)鍵指標(biāo),同時可對單一指標(biāo)進行細分維度拆分,鎖定細分維度對整體的影響。
挑戰(zhàn)
指標(biāo)邏輯樹作為一款支持酒旅各業(yè)務(wù)線的異動分析數(shù)據(jù)產(chǎn)品,面臨的挑戰(zhàn)如下:
- 基礎(chǔ)指標(biāo)多、維度多,且來自于不同的數(shù)據(jù)源。
- 支持多種異動分析算法。
- 自定義計算指標(biāo)。
針對上面的挑戰(zhàn),我們給出如下的解決方案。
解決方案:指標(biāo)邏輯樹
體系架構(gòu)
圖2 指標(biāo)邏輯樹體系架構(gòu)
如圖2所示:
- 指標(biāo)計算,用于解決基礎(chǔ)指標(biāo)多、維度多,且來自于不同數(shù)據(jù)源的問題以及自定義計算指標(biāo)的問題;
- 分析算法,用于支持多種異動分析算法;
- 計算服務(wù),采用master-work的方式解決查詢性能的問題。
具體方案
指標(biāo)計算
指標(biāo)計算包含指標(biāo)漏斗、基礎(chǔ)指標(biāo)序列、指標(biāo)分類,它們之間的關(guān)系如圖3所示。
圖3 指標(biāo)計算
如圖3所示,指標(biāo)漏斗為用戶自定義的有序指標(biāo)序列,包含基礎(chǔ)指標(biāo)和計算指標(biāo)(如,B=(L+H)*Y) ;基礎(chǔ)指標(biāo)序列,是將指標(biāo)漏斗中的計算指標(biāo)按照順序拆分之后的指標(biāo)序列;指標(biāo)分類采取大圣魔方(可以參考大圣魔方:https://tech.meituan.com/dsmf.html )配置的規(guī)則對基礎(chǔ)指標(biāo)進行分類。
分析算法
目前指標(biāo)邏輯樹支持兩種異動分析算法,后續(xù)可以根據(jù)需要進行擴展。
- 生成瀑布分析圖的連環(huán)迭代分析法。
- 根據(jù)指標(biāo)下鉆維度方案,生成單個指標(biāo)解釋度的基尼系數(shù)算法。
下面分別介紹這兩種算法在指標(biāo)邏輯樹中的運用。
連環(huán)迭代分析法
連環(huán)迭代分析法,用于從用戶自定義的有序指標(biāo)列表中找出導(dǎo)致核心指標(biāo)發(fā)生異動的關(guān)鍵指標(biāo),如圖4可知,本期結(jié)果指標(biāo)E產(chǎn)生的波動,主要由于A指標(biāo)的波動影響。
圖4 瀑布分析圖
圖5 指標(biāo)漏斗
如圖5所示,意向UV、訪購率、人均單量、連帶率、SKU單價等幾個指標(biāo)中的任意一個發(fā)生數(shù)據(jù)波動,都可能引起支付GMV的波動。采用連環(huán)迭代分析法,可以確定某個具體指標(biāo)在本期支付GMV的波動中產(chǎn)生的影響***。算法公式,支付GMV=意向UV*訪購率*人均單量*連帶率*SKU單價。
基尼系數(shù)
基尼系數(shù)A/(A+B),用于計算各下鉆維度方案對單個指標(biāo)波動的影響程度,橫軸用特征分組基期累計占比,縱軸用波動值累計占比(可以為負(fù)值),基尼系數(shù)越大說明該特征對波動的解釋效果越好。
圖6 基尼系數(shù)計算
如圖6所示,指標(biāo)計算,用于獲取層級下鉆維度中各個維度的基礎(chǔ)數(shù)據(jù),如各個城市等級的本期、基期值等信息;分析算法,根據(jù)維度基礎(chǔ)數(shù)據(jù)計算出排序因子,利用排序之后的排序因子計算各特征分組的基期累積占比及波動值累計占比,進而獲取到基尼系數(shù);最終選取基尼系數(shù)***的特征作為最終解釋。
計算服務(wù)
隨著業(yè)務(wù)分析需求的增加,分析用戶自行配置的指標(biāo)序列以及針對單個指標(biāo)的下鉆維度方案將會急劇增加,隨之帶來的影響就是單個請求需要支持大量的查詢?nèi)蝿?wù),因而提升并行計算能力是提升系統(tǒng)性能的一個關(guān)鍵因素。如圖7所示,計算服務(wù)包括任務(wù)拆分、并行計算和結(jié)果合并。
圖7 計算服務(wù)
任務(wù)拆分
任務(wù)拆分分為如下幾個步驟:
- 將指標(biāo)漏斗中的計算指標(biāo)拆分成基礎(chǔ)指標(biāo)。
- 填充基礎(chǔ)指標(biāo)的細化維度方案,記錄指標(biāo)的各個維度方案及各方案下的層級下鉆維度。
- 對基礎(chǔ)指標(biāo)按照數(shù)據(jù)模型和維度方案進行分類。
并行計算
并行計算提供分布式計算功能,主要處理的是任務(wù)拆分之后的細粒度查詢?nèi)蝿?wù)。
查詢?nèi)蝿?wù)主要有以下兩類:
- 按照數(shù)據(jù)模型分類之后的指標(biāo)序列查詢?nèi)蝿?wù),需要分別查詢本期和基期值,查詢量相對較少。
- 按照數(shù)據(jù)模型和維度方案分類之后的查詢?nèi)蝿?wù),需要分別查詢本期和基期值,涉及到細化維度,查詢量比較大。
結(jié)果合并
結(jié)果合并主要是針對計算指標(biāo)來說的,計算指標(biāo)是分析用戶自定義的針對基礎(chǔ)指標(biāo)的一組計算公式。并行查詢的結(jié)果是針對基礎(chǔ)指標(biāo)的,需要合并基礎(chǔ)指標(biāo)的查詢結(jié)果數(shù)據(jù),生成符合計算公式的指標(biāo)數(shù)據(jù)。結(jié)果合并模塊需要做兩部分的工作,一是解析計算公式,二是根據(jù)已有的數(shù)據(jù),按照計算公式生成新的數(shù)據(jù)。
系統(tǒng)中用到數(shù)據(jù)組裝的模塊主要有如下:
- 如圖8所示,根據(jù)拆分之后的基礎(chǔ)指標(biāo)數(shù)據(jù),生成滿足計算公式的計算指標(biāo)數(shù)據(jù)。
- 如圖9所示,根據(jù)拆分之后的下鉆維度基礎(chǔ)數(shù)據(jù),分別計算出各個維度的數(shù)據(jù),生成符合計算公式的下鉆維度數(shù)據(jù)。
圖8 計算指標(biāo)數(shù)據(jù)組裝
圖9 指標(biāo)下鉆維度數(shù)據(jù)組裝
總結(jié)
指標(biāo)邏輯樹在美團點評酒店旅游各業(yè)務(wù)線中已經(jīng)得到了一定的應(yīng)用,并收獲了大量好評。本文只是指標(biāo)邏輯樹的一個總綱,目前產(chǎn)品尚處于初級階段,后續(xù)還有很多功能需要完善。
【本文為51CTO專欄機構(gòu)“美團點評技術(shù)團隊”的原創(chuàng)稿件,轉(zhuǎn)載請通過微信公眾號聯(lián)系機構(gòu)獲取授權(quán)】




































