作者 | 伊璉
一、前言
唯一不變的是變化,在擁抱它前,請(qǐng)事先探知、歸因、并充分準(zhǔn)備。
在相對(duì)完善的指標(biāo)體系建設(shè)背景下,我們需要通過指標(biāo)以及指標(biāo)波動(dòng)的解讀來描述、追蹤、推動(dòng)業(yè)務(wù)。當(dāng)一個(gè)指標(biāo)波動(dòng)時(shí),我們首先需要從業(yè)務(wù)視角判斷其波動(dòng)是否異常,即異動(dòng)檢測,其次判斷異常背后的原因是什么,即異動(dòng)歸因。
歸因的方法有多種,這篇文章的重點(diǎn)是指標(biāo)拆解,也是我們做業(yè)務(wù)分析時(shí)最常用到的方法。我們的目的是解放人力,將指標(biāo)拆解實(shí)現(xiàn)自動(dòng)化,一方面可以加快業(yè)務(wù)迭代速度,快速定位問題;另一方面可以對(duì)可能產(chǎn)生異動(dòng)的維度進(jìn)行全局量化,增強(qiáng)可比性,明確下一步的業(yè)務(wù)行動(dòng)點(diǎn)的優(yōu)先級(jí)。自動(dòng)化異變歸因的目的是為了盡快判斷并抓住機(jī)遇,尋求以數(shù)據(jù)驅(qū)動(dòng)作為燈塔指引業(yè)務(wù)航向。
二、目的
將目標(biāo)指標(biāo)定義為, 波動(dòng)為
,其中
是當(dāng)月的數(shù)據(jù),
為上個(gè)月(同比/環(huán)比)的數(shù)據(jù)。
文章目的是為了研究組成的集合
對(duì)于
的貢獻(xiàn):
其中,
表示指標(biāo)(或維度)
對(duì)于
的貢獻(xiàn)度(contribution)。
另外,貢獻(xiàn)的拆解算法是根據(jù)組合方式不同決定,集合組成
的方式包括:
加法(例,各渠道uv加和)。
乘法(例,已知rpm=cpc*ctr下,算出cpc、ctr分別對(duì)rpm的貢獻(xiàn))。
比率型指標(biāo)(例,各廣告計(jì)劃的cpf, 或者各個(gè)渠道的cpuv等)。
三、貢獻(xiàn)率的拆解方法
1. 加法拆解
已知目標(biāo)波動(dòng)
貢獻(xiàn)等于
,證明見附錄。
舉例針對(duì)絕對(duì)值指標(biāo)的維度拆解都是加法拆解。絕對(duì)量指標(biāo)的同比/環(huán)比變化,就是各個(gè)分指標(biāo)變化的加權(quán)求和,例如訪問uv總和等于各渠道uv加總, 那么總uv的變化下鉆貢獻(xiàn)率等于各渠道分別的變化除以上個(gè)月的總uv數(shù)。
2. 乘法拆解
已知目標(biāo)波動(dòng)
貢獻(xiàn)等于
證明見附錄。
其中是當(dāng)月的數(shù)據(jù)
,為上個(gè)月(同比/環(huán)比)的數(shù)據(jù),
為平均對(duì)數(shù)權(quán)重:
舉例 漏斗模型,借助用戶動(dòng)線,拆解指標(biāo)。
以全站商品詳情頁的瀏覽量(ipv)為例,其變動(dòng)涉及流量、承接頁到商品詳情頁的轉(zhuǎn)化(uv-d轉(zhuǎn)化)、商品詳情頁用戶人均瀏覽量(人均pv),分別對(duì)應(yīng)了用戶增長、搜推場景承接以及私域用戶活躍度等業(yè)務(wù)域或用戶行為指標(biāo)。借此對(duì)全站ipv的構(gòu)成鏈路進(jìn)行靜態(tài)乘法拆解:
同時(shí),我們可以計(jì)算各乘積因子對(duì)目標(biāo)指標(biāo)變化的貢獻(xiàn)率,衡量3個(gè)指標(biāo)的重要性:
是平均對(duì)數(shù)權(quán)重,
3. 比率型指標(biāo)拆解
已知,
,
,
當(dāng)分析比率指標(biāo)進(jìn)行維度下鉆,分項(xiàng)對(duì)整體的貢獻(xiàn),受兩個(gè)因素影響。
分項(xiàng)的相對(duì)數(shù)指標(biāo)波動(dòng)貢獻(xiàn) ,即當(dāng)期與基期的分項(xiàng)規(guī)模一致時(shí),分項(xiàng)指標(biāo)帶來的變化:分項(xiàng)的指標(biāo)波動(dòng)貢獻(xiàn)= 指標(biāo)同比變化值 * 上期基數(shù)占比。
分項(xiàng)的結(jié)構(gòu)變化 ,即當(dāng)期與基期分項(xiàng)規(guī)模變化部分的指標(biāo)變化:分項(xiàng)的結(jié)構(gòu)變化
= 占比同比變化值 * (分項(xiàng)本期指標(biāo) - 整體上期指標(biāo) )。
, 其中
是當(dāng)月的數(shù)據(jù),
為上個(gè)月(同比/環(huán)比)的數(shù)據(jù)。
, 證明見附錄。
舉例 以承接頁到商品詳情頁的轉(zhuǎn)化率(uv-d轉(zhuǎn)化率rate)為例,,流量渠道可分為付費(fèi)、免費(fèi)、自然、其他,每種渠道的uv-d轉(zhuǎn)化率為
,各渠道的商詳頁訪問人數(shù)(duv)占比用
表示,各渠道人數(shù)(uv)占比用
,如果uv-d轉(zhuǎn)化率同比下跌,我們想定位出哪個(gè)渠道出現(xiàn)了問題;各渠道的貢獻(xiàn)
是怎么樣計(jì)算為:
4. 實(shí)例應(yīng)用
根據(jù)上文提到的不同指標(biāo)的計(jì)算方法,支持全類型指標(biāo)下鉆求貢獻(xiàn)的場景, 可根據(jù)先驗(yàn)業(yè)務(wù)輸入搭建多層的歸因邏輯模型, 層層下鉆,最終將指標(biāo)波動(dòng)定位。
圖二:計(jì)算貢獻(xiàn)率之后的數(shù)據(jù)結(jié)果樣式
以2011年某日ipv同比下跌的異動(dòng)分析為例:
第一層拆解,借助用戶動(dòng)線,將存在異動(dòng)變化的指標(biāo)ipv構(gòu)成鏈路進(jìn)行乘法拆解,如下:
這里幫助我們定位到可能導(dǎo)致指標(biāo)異動(dòng)的關(guān)鍵節(jié)點(diǎn),這有助于我們將問題定位到具體業(yè)務(wù)域,例如是uv的問題,轉(zhuǎn)化的問題,還是人均ipv的問題?
第二層拆解,對(duì)關(guān)鍵節(jié)點(diǎn)處的多個(gè)維度進(jìn)行下鉆,將問題定位到某些維度的某些水平上,同時(shí)避免陷入辛普森悖論等陷阱,這有助于我們形成具體業(yè)務(wù)域有所行動(dòng), 例如如果是轉(zhuǎn)化的問題,究竟是哪個(gè)渠道的轉(zhuǎn)化減少了?
下圖“異動(dòng)分析拆解流程圖”是根據(jù)先驗(yàn)的業(yè)務(wù)輸入搭建的歸因模型,根據(jù)其框架得以進(jìn)行貢獻(xiàn)率拆解與問題定位:
圖三:指標(biāo)拆解逐層歸因
紅色表示的鏈路指標(biāo)或維度代表對(duì)總值下跌貢獻(xiàn)率較大,經(jīng)過一層一層的拆解定位到app端自然流量中轉(zhuǎn)化的降低導(dǎo)致總轉(zhuǎn)化下降。
基于流量跨端調(diào)控以及流量預(yù)算減投的業(yè)務(wù)背景,我們現(xiàn)將對(duì)ipv貢獻(xiàn)最大的uv/duv根據(jù)端型、流量渠道類型、流量渠道、國家四個(gè)維度進(jìn)行貢獻(xiàn)率拆解。
在本實(shí)例中,通過本文對(duì)貢獻(xiàn)率拆解方法與業(yè)務(wù)人工看數(shù)得到的問題定位基本一致,該方法可以實(shí)現(xiàn)異動(dòng)貢獻(xiàn)率量化與提效的目的,具體核心結(jié)論如下:
結(jié)論一 (第一層拆解)ipv下降主要影響因素是uv-d轉(zhuǎn)化率的波動(dòng)。
結(jié)論二 (第二層拆解)uv-d比率的波動(dòng)主要由APP端與WAP端導(dǎo)致,兩種端型貢獻(xiàn)持平。
結(jié)論三 (第三/四層拆解)APP端的自然流量和wap端的付費(fèi)流量是uv-d總比率波動(dòng)的主要貢獻(xiàn)維度。
結(jié)論四 (第五層拆解)APP端self-visit中美國對(duì)uv-d比率的波動(dòng)貢獻(xiàn)較大。
通過建立多層歸因下鉆維度模型, 用自動(dòng)化的方式層層剝析,從而能盡求完善且正確的歸因到某個(gè)維度,從而節(jié)省人力,提高準(zhǔn)確和科學(xué)性。
四、多層下鉆歸因方案—決策樹
本節(jié)重點(diǎn)在拆解求出貢獻(xiàn)率之后,如何探查異動(dòng)。我們已經(jīng)把不同維度下,每個(gè)維值的貢獻(xiàn)率求出, 下一步的目的是求出貢獻(xiàn)最大(有異動(dòng)的)的維度維值組合,測三種拆解方案,包括逐層下鉆(同上文3.4的下鉆方式)、多層同步下鉆、 決策樹模型,發(fā)現(xiàn)決策樹模型效果最好。這里決策樹輸入為不同的維值組合,輸出為貢獻(xiàn)率,做的是回歸預(yù)測。
主要做法是求貢獻(xiàn)率的熵,找到信息增益最高切割方法。這里自然而然想到?jīng)Q策樹模型,通過貪心算法,切割數(shù)據(jù)空間, 找到貢獻(xiàn)率絕對(duì)值最高的維度組合空間。圖四長方形整體表示數(shù)據(jù)空間,表示兩個(gè)維度,其下角標(biāo)表示維度下的維值。下圖具象的看出通過不同維值的組合,把數(shù)據(jù)空間切割成不同塊,用不同的顏色代表。
圖四:決策樹對(duì)數(shù)據(jù)空間的切割可視化
1. 剪枝
決策樹存在過擬合的問題, 為了解決這個(gè)問題,我們決定了剪枝的方法,采用后剪枝(Post-pruning)。后剪枝就是先把整顆決策樹構(gòu)造完畢,然后自底向上的對(duì)非葉結(jié)點(diǎn)進(jìn)行考察,若將該結(jié)點(diǎn)對(duì)應(yīng)的子樹換為葉結(jié)點(diǎn)能夠帶來泛華性能的提升,則把該子樹替換為葉結(jié)點(diǎn)。
后剪枝的方法包括:REP-錯(cuò)誤率降低剪枝, PEP-悲觀剪枝, CCP-代價(jià)復(fù)雜度剪枝, MEP-最小錯(cuò)誤剪枝。
我們借鑒了CCP—代價(jià)復(fù)雜度的方法。選擇節(jié)點(diǎn)表面誤差率增益值大的層級(jí)的非葉子節(jié)點(diǎn),刪除該非葉子節(jié)點(diǎn)的左右子節(jié)點(diǎn),若有多個(gè)非葉子節(jié)點(diǎn)的表面誤差率增益值相同小,則選擇非葉子節(jié)點(diǎn)中子節(jié)點(diǎn)數(shù)最多的非葉子節(jié)點(diǎn)進(jìn)行剪枝。這個(gè)算法的參數(shù)為
, 表示算法的復(fù)雜度:
其中,表示的是結(jié)點(diǎn)
的方差(近似加權(quán)熵的概念:impurity,下文都泛稱為熵,計(jì)算公式),
是結(jié)點(diǎn)
的子樹
的熵的總和,
為決策樹結(jié)點(diǎn)個(gè)數(shù) 。
高,表示結(jié)點(diǎn)
往下分的信息增益高。圖五表示異動(dòng)維數(shù)的個(gè)數(shù)與決策樹層結(jié)點(diǎn)熵的平均數(shù)的關(guān)系:以黃線為例,
當(dāng)異動(dòng)的維數(shù)為2時(shí),決策樹在第二層的熵最高,從第二層往后,再往下分熵越小,信息增益少,過擬合明顯。從折線明顯看到,熵的拐點(diǎn)在第二層,決策樹最大深度等于2。
圖五:異動(dòng)維數(shù)的個(gè)數(shù)與結(jié)點(diǎn)方差(熵)的關(guān)系
我們從圖五的事例啟發(fā),按照CPP的方法, 找躍層增益較大的“拐點(diǎn)”,找到合適的
進(jìn)行剪枝。
五、模型表現(xiàn)
1. 模擬數(shù)據(jù)
我們模擬的維度和維值如下,共4個(gè)維度(兩兩獨(dú)立), 涉及維值共40個(gè),4個(gè)維度維值組合(笛卡爾積 31*2*3*4=744)共744個(gè)。模擬的時(shí)間對(duì)比為月環(huán)比,模擬指標(biāo)為廣告消耗。
維度字段 | country_cn_name | is_free | terminal_type_cd | imps_cnt_bins |
維度 | 國家 | 渠道 | 端型 | 曝光檔位 |
維值數(shù) | 31 | 2 | 3 | 4 |
舉例 | 馬來西亞 | 免費(fèi) | WAP | (-1.0, 0.0] |
無異動(dòng)數(shù)據(jù):用白噪音模擬無異動(dòng)的維度組合的時(shí)間序列,見圖六:
圖六:無異動(dòng)的時(shí)間序列
有異動(dòng)數(shù)據(jù):用隨機(jī)游走的累積和來模擬異動(dòng),公式如下,見圖七:
圖七(a):有異動(dòng)的時(shí)間序列1
2. 模型評(píng)估
在上圖四個(gè)維度(國家、渠道、端型、曝光檔位),指定特定的維度和維值在3月有異動(dòng),通過決策樹模型,測試是否找到正確異動(dòng)點(diǎn)。模擬case考慮的主要是可能存在異動(dòng)的真實(shí)情況:
- 某個(gè)PID數(shù)據(jù)錄入異常,會(huì)影響單維度的異動(dòng)(僅那個(gè)PID的數(shù)據(jù))。
- 某個(gè)渠道且某個(gè)端型的減投,會(huì)影響多個(gè)維度組合的異動(dòng)。由于指標(biāo)異動(dòng)涉及的業(yè)務(wù)繁雜,不同團(tuán)隊(duì)在不同方向的優(yōu)化,影響到不同的維值組合。
例一:異動(dòng)維度在兩處
異動(dòng)維值組合:
a. 國家=伊拉克, 渠道=免費(fèi), 端型='WAP', 曝光檔位=[5:100]
b. 國家=法國, 渠道=免費(fèi), 端型='PC', 曝光檔位=[0:5]
將貢獻(xiàn)度算出,數(shù)據(jù)輸入決策樹模型, 結(jié)果見圖八,可以看出決策樹精確的找到異動(dòng)的數(shù)據(jù)(共精確找到7個(gè)維值,共8個(gè)), 且這兩組標(biāo)紅數(shù)據(jù)對(duì)于異動(dòng)的貢獻(xiàn)絕對(duì)值最大。我們自定義樹結(jié)構(gòu)找父節(jié)點(diǎn)的方法,自動(dòng)剪掉冗余分支,只截取重點(diǎn)枝干呈現(xiàn)。
圖八:決策樹結(jié)果呈現(xiàn)
特征重要性也符合預(yù)期:
例二:異動(dòng)維度在一處,只異動(dòng)一個(gè)維度在付費(fèi)上
異動(dòng)維值組合:a. 渠道=付費(fèi)
通過剪枝,模型成功找到一維信息,避免提供太多噪音令用戶混淆。
更多
表一包含更多維值組合案例, 以及模型表現(xiàn),包括F1-score,模型輸出的結(jié)果,和特征重要性。已探索11個(gè)案例,平均F1-score達(dá)到91.9%。
下面的數(shù)量是異動(dòng)的維值個(gè)數(shù):
| Positive Prediction | Negative PredictionPositive Class | True Positive (TP) 34 | False Negative (FN) 6Negative Class | False Positive (FP) 0 | True Negative (TN) 0
最后結(jié)果:
Precision = 34 / (34 + 0) = 100%Recall = 34 / (34 + 6) = 85% F-1 Score Overall = 91.9%
異動(dòng)維值組合(label/y_true) | F1-Score | 模型結(jié)果1:模型輸出(結(jié)果可視化展現(xiàn),自動(dòng)剪掉冗余分支,只截取貢獻(xiàn)高的枝干呈現(xiàn)) | 模型結(jié)果2:特征重要性 | |
1 | APP | 100% | APP ->貢獻(xiàn)率為 0.58 | APP: 0.790 |
2 | 法國 | 100% | 法國 ->貢獻(xiàn)率為 0.84 | 法國 : 0.542; |
3 | 付費(fèi) | 100% | 付費(fèi) ->貢獻(xiàn)率為 0.43 | 付費(fèi) : 0.570; |
4 | 法國&付費(fèi) | 100% | 法國 -> 付費(fèi) -> 貢獻(xiàn)率為 0.81 | 法國 : 1.988; 付費(fèi) : 1.019; |
5 | 法國&APP | 100% | 法國 -> APP -> 貢獻(xiàn)率為 0.84 | 法國 : 1.895;APP: 1.360 |
6 | APP&付費(fèi) | 100% | APP -> 付費(fèi) -> 貢獻(xiàn)率為 0.41 | APP: 1.591付費(fèi) : 1.203; |
7 | APP&付費(fèi)&法國 | 100% | 法國 -> APP -> 付費(fèi) ->貢獻(xiàn)率為 0.88 | 法國 : 1.944;APP: 1.374;付費(fèi) : 1.047; |
8 | APP&付費(fèi)&法國&(5.0, 100.0] | 100% | 法國 -> (5.0, 100.0] -> APP -> 付費(fèi) ->貢獻(xiàn)率為 0.90 | 法國 : 1.836;APP: 1.469;(5.0, 100.0]: 1.369;付費(fèi) : 1.302; |
9 | APP&付費(fèi)&法國&(5.0, 100.0]orPC&免費(fèi)&伊拉克 | 83% | 非伊拉克 -> 法國 -> (5.0, 100.0] ->貢獻(xiàn)率為 0.14 伊拉克 -> PC -> 非付費(fèi) ->貢獻(xiàn)率為 0.87 | 伊拉克: 1.610;PC : 1.027;付費(fèi) : 0.772;法國 : 0.062;(5.0, 100.0]: 0.052; |
10 | APP&付費(fèi)&法國orPC&免費(fèi)&伊拉克&(5.0, 100.0] | 83% | 非法國 -> 伊拉克 -> (5.0, 100.0] ->貢獻(xiàn)率為 0.14 法國 -> APP -> 非免費(fèi) ->貢獻(xiàn)率為 0.87 | 法國 : 1.559;APP: 1.101;免費(fèi) : 0.839;伊拉克: 0.064;(5.0, 100.0]: 0.058;PC : 0.000 |
11 | APP&付費(fèi)&法國orPC&免費(fèi)&伊拉克&(5.0, 100.0]or美國&免費(fèi)&APP | 88% | 非美國-> 非法國-> 伊拉克-> (5.0, 100.0]->貢獻(xiàn)率為 0.14 非美國-> 法國-> APP-> 付費(fèi)->貢獻(xiàn)率為 0.84 美國-> APP-> 非付費(fèi)->貢獻(xiàn)率為 0.84 | APP : 1.218 美國 : 0.936 付費(fèi) : 0.907 法國 : 0.863 伊拉克 : 0.035 (5.0, 100.0]: 0.033 土耳其 : 0.000 |
六、局限
但此方法論還是有其局限性的,主要在于歸因變量(下鉆維度)有限,大多數(shù)情況下是按照業(yè)務(wù)的理解和先驗(yàn)的經(jīng)驗(yàn)來判斷。本方法只能識(shí)別業(yè)務(wù)已經(jīng)認(rèn)可的拆解維度和鏈路定位,拆解到的指標(biāo)或維度都是已知業(yè)務(wù)系統(tǒng)內(nèi)的指標(biāo),諸如工程問題、宏觀政策等因素難以識(shí)別,需要輔以定性分析。具體來說,我們看到pv下降,下意識(shí)要去從渠道下鉆,主要原因是我們因?yàn)榍雷鳛樽兞?,是和pv數(shù)有正向(或者因果)關(guān)系的。舉個(gè)極端的例子,有可能是服務(wù)器的故障,導(dǎo)致全平臺(tái)的pv下跌。這樣的潛在變量,如果和常用下鉆變量彼此相互獨(dú)立的條件下,是無法通過此方法論探查得到的。我們后續(xù)的工作將重點(diǎn)放在對(duì)相互獨(dú)立的指標(biāo)和相關(guān)事件的角度做進(jìn)一步更全面的因果推斷算法研究。
七、技術(shù)產(chǎn)品化
我們工作中月報(bào)和周報(bào)中通常分析的方法與此類似,不同的是,因?yàn)槿肆τ邢?,?shù)據(jù)龐雜,往往下鉆維度和層數(shù)局限,比率類型指標(biāo)不知道如何下鉆等等,導(dǎo)致科學(xué)性和嚴(yán)謹(jǐn)性很難保持。這套方法實(shí)現(xiàn)了自動(dòng)化,保證計(jì)算的準(zhǔn)確性,節(jié)省人日。我們將此技術(shù)沉淀在內(nèi)部數(shù)據(jù)產(chǎn)品“象數(shù)”上。象數(shù)中心是ICBU數(shù)據(jù)驅(qū)動(dòng)的基石產(chǎn)品,是集數(shù)據(jù)資產(chǎn)定義與管理、A/B實(shí)驗(yàn)、洞察分析于一體的數(shù)據(jù)平臺(tái)。它提供的核心價(jià)值在于好找、敢用、持續(xù)保鮮的數(shù)據(jù)資產(chǎn),大規(guī)模、可信的端到端實(shí)驗(yàn)?zāi)芰Γ约耙蚬?、異?dòng)等智能化的分析工具。
八、附錄
證明 加法貢獻(xiàn)算法
已知貢獻(xiàn)等于
,
證明 乘法貢獻(xiàn)算法
已知,
貢獻(xiàn)等于,目標(biāo)波動(dòng)
證明 比率貢獻(xiàn)算法
已知
, 其中
是當(dāng)月的數(shù)據(jù),
為上個(gè)月(同比/環(huán)比)的數(shù)據(jù)。
貢獻(xiàn)等于
算法得到的貢獻(xiàn)率依舊相互獨(dú)立,符合MECE原則,且通過分別觀測和
有助于我們避開辛普森悖論帶來的陷阱。
備注:符合mece原則證明:相互獨(dú)立:
和
的計(jì)算公式中不涉及其他分項(xiàng)的完全窮盡。
參考
Ang, Beng W., F. Q. Zhang, and Ki-Hong Choi. "Factorizing changes in energy and environmental indicators through decomposition." Energy 23.6 (1998): 489-495.
Ang B W . The LMDI approach to decomposition analysis: a practical guide[J]. Energy Policy, 2005, 33(7):867-871.
《波動(dòng)解讀—指標(biāo)拆解的加減乘除雙因素》https://zhuanlan.zhihu.com/p/412117828