美团王庆:当老板对指标进行灵魂拷问时,该如何诊断分析?
分享嘉賓:王慶 美團(tuán)?數(shù)據(jù)分析專家
編輯整理:劉學(xué) 字節(jié)跳動(dòng)
出品平臺(tái):DataFunTalk
導(dǎo)讀:指標(biāo)為什么升?為什么降?為什么不升也不降?相信這是數(shù)據(jù)從業(yè)者經(jīng)常面對(duì)的靈魂三問!在競(jìng)爭(zhēng)激烈的市場(chǎng)環(huán)境下,如何快速準(zhǔn)確定位問題原因變得越來越重要。本文將結(jié)合在外賣業(yè)務(wù)中的診斷分析實(shí)踐,與大家分享數(shù)據(jù)科學(xué)在業(yè)務(wù)診斷分析中的一些應(yīng)用經(jīng)驗(yàn)。
主要從四個(gè)方面進(jìn)行展開:
為什么要做診斷分析?
如何做診斷分析?
智能診斷案例解析
Tips:診斷分析中易犯的錯(cuò)誤
01
為什么要做診斷分析
為什么要做診斷分析呢?可以從兩個(gè)方向理解:診斷分析是有價(jià)值的,并且與每個(gè)人息息相關(guān)。
診斷分析的價(jià)值,至少有兩類:
價(jià)值1:找病根,確認(rèn)問題出現(xiàn)的原因,為策略制定和問題解決提供方向。
比如,2020年12月份,谷歌宕機(jī)了45分鐘,損失了大概170萬美金,事后需要對(duì)宕機(jī)的原因進(jìn)行分析;再比如,今年抖音發(fā)生一次事故,很多用戶登錄不上影響用戶體驗(yàn)并且影響了廣告收入,那為什么崩了,也需要引入診斷分析。
諸如此類的問題,在互聯(lián)網(wǎng)公司經(jīng)常出現(xiàn),那就需要及時(shí)發(fā)現(xiàn)問題、分析原因、制定策略、解決問題,以避免發(fā)生類似問題。
當(dāng)然,并不是所有的問題都能找到原因或者是需要找原因的。比如上班途中車胎扎了,因?yàn)閷儆谂及l(fā)性因素,不需要找原因;再比如,通過數(shù)據(jù)分析發(fā)現(xiàn)了一批特別喜歡吃辣的用戶,則未必能找到吃辣的原因,而且哪怕找到原因,也未必有價(jià)值。反而不如先把這個(gè)發(fā)現(xiàn)利用起來。
價(jià)值2:找亮點(diǎn),然后推廣亮點(diǎn)。
找亮點(diǎn),找到亮點(diǎn)后,推廣亮點(diǎn)。當(dāng)前,多數(shù)公司的推薦系統(tǒng),就是在利用找亮點(diǎn),基本上把亮點(diǎn)做到了極致。
本次分享主要是論述價(jià)值1:找病根。
02
為什么要做診斷分析
1. 什么是診斷分析
Gartner對(duì)診斷分析有一個(gè)定義:Diagnostic analytics is a form of advanced analytics that examines data or content to answer the question, “Why?did it happen?”
上述概念比較抽象,結(jié)合工作中的實(shí)踐,我認(rèn)為,診斷分析就是通過數(shù)據(jù)分析對(duì)問題進(jìn)行拆解,并通過對(duì)比找到問題發(fā)生的原因。這種定義方式,比較容易利用數(shù)據(jù)化的語言進(jìn)行表達(dá),并且可在工作中進(jìn)行充分利用。?
2. 什么是問題
診斷分析的關(guān)鍵是就是對(duì)問題的拆解。那什么是問題呢?在日常數(shù)據(jù)分析工作中,又會(huì)遇到哪些問題?
① 問題的定義
看幾個(gè)常見的問題例子:
在工作中,我們經(jīng)常會(huì)遇到的問題是中間3類。
問題的定義是現(xiàn)狀與期望的差距。
② 常見的問題類型
常見的問題有三類:
第一類是發(fā)生型問題。昨天相比訂單量為什么下降10%?現(xiàn)狀就是今天的訂單量,期望是昨天的大量問題。
第二類是潛在型問題。天氣變冷,客服人力是否夠用,現(xiàn)狀是當(dāng)前的供需關(guān)系,期望是按這個(gè)趨勢(shì)走下去,供需關(guān)系會(huì)怎樣?是否存在差距,過剩還是不足?
第三類為理想型的問題,比如如何完成Q3的OKR,當(dāng)前的訪購(gòu)率是10%,期望下個(gè)季度的訪購(gòu)率是12%,差距就是2pp。?
本次分享,主要圍繞發(fā)生型問題和潛在型問題展開。
3.?如何做診斷分析
一種相對(duì)普適性的方法就是“邏輯樹+假設(shè)驅(qū)動(dòng)”。?因?yàn)檫壿嫎淠軌驇椭覀兇_定分析問題的框架,而假設(shè)驅(qū)動(dòng)可以確定分析問題的視角。這里,邏輯樹是表達(dá)指標(biāo)(問題)內(nèi)部結(jié)構(gòu)的最佳方法,適用于外賣業(yè)務(wù)多數(shù)指標(biāo)的問題診斷。
結(jié)合上圖,再來看一下診斷分析的過程:首先是明確問題差距;有了問題后對(duì)問題拆解(注意:是對(duì)問題拆解而不是指標(biāo))。這里,需要進(jìn)行兩類拆解:一類是按照構(gòu)成的期望占比拆解,一類是按實(shí)際占比拆解,最后對(duì)比兩棵邏輯樹的差異并給出原因。
通過一個(gè)交易額波動(dòng)的例子,來看一下怎么用邏輯樹+假設(shè)驅(qū)動(dòng)解決診斷分析問題。
訂單量周同比下降了10%,在這個(gè)例子中是60單,這就是問題。那問題為什么會(huì)發(fā)生?那就需要利用假設(shè)驅(qū)動(dòng),確定分析視角。比如可以從城市(假設(shè))的維度進(jìn)行拆解,發(fā)現(xiàn)其他城市的單量變化不大,而北京同比下降了,貢獻(xiàn)其中的50單。那繼續(xù)進(jìn)行,為什么北京下降那么多?繼續(xù)拆解后,發(fā)現(xiàn)是朝陽區(qū)貢獻(xiàn)40單。再繼續(xù)拆解,發(fā)現(xiàn)是上周下雨、本周晴天導(dǎo)致單量下降了42單,此時(shí)得出訂單量下降的主要原因是天氣變化。
在整個(gè)過程中,我們不斷地問為什么,不斷地對(duì)問題進(jìn)行拆解,最終定位到問題發(fā)生的原因。
03
智能診斷分析案例解析
在上面的例子中,我們發(fā)現(xiàn),哪怕知道了如何做診斷分析,還是需要投入大量的人力進(jìn)行人工分析,數(shù)據(jù)獲取的成本比較高,耗時(shí)耗力。所以需要通過一些算法和數(shù)據(jù)建模的方法,對(duì)診斷分析進(jìn)行智能化、自動(dòng)化,提升診斷分析的效率。
下面將通過美團(tuán)外賣的兩個(gè)項(xiàng)目,介紹怎么進(jìn)行診斷分析:
項(xiàng)目1:天氣指數(shù)
1. 背景與目標(biāo)
①?項(xiàng)目背景
外賣作為O2O項(xiàng)目,分析和經(jīng)營(yíng)決策非常依賴線下場(chǎng)景信息。而其中一個(gè)重要的信息就是天氣,而業(yè)務(wù)希望利用更準(zhǔn)確的天氣信息提升決策質(zhì)量。
天氣對(duì)于外賣的影響還是比較大的,比如下雨對(duì)DAU有正向促進(jìn)作用,用戶更可能登錄APP點(diǎn)外賣;而春天比較舒適的日子,則會(huì)有抑制作用。
還是回到之前的例子。訂單量下降,發(fā)現(xiàn)是DAU下降。那DAU下降,天氣的影響又有多少。
② 項(xiàng)目目標(biāo)
構(gòu)建天氣對(duì)外賣DAU波動(dòng)(分城市)影響程度的指數(shù)模型,輔助DAU波動(dòng)分析。
當(dāng)然,影響DAU的因素有很多,這里主要對(duì)天氣進(jìn)行建模。
業(yè)務(wù)上,需要指數(shù)在時(shí)間、空間上具有可比性。這里的可比性,是指所構(gòu)建的指數(shù),在不同的天氣以及不同的地域上,表達(dá)的含義是一致的。比如,如果下雨對(duì)北京的DAU影響是20%,高溫對(duì)上海的影響是20%。這兩個(gè)20%應(yīng)該表達(dá)同樣的意思,才方便業(yè)務(wù)使用。
2. 方案制定
① 問題分析——將波動(dòng)分析問題轉(zhuǎn)化為構(gòu)成分析問題
問題本身是要回答,業(yè)務(wù)下降的部分有多少是由天氣帶來的。為了解決這個(gè)問題,我們將DAU拆解成三個(gè)部分,分別是天氣因素帶來的DAU、其他因素帶來的DAU以及自然增長(zhǎng)帶來的DAU。這里的自然增長(zhǎng),是指在沒有天氣和其他因素影響的前提下,DAU的正常值是多少。這里,如果我們把天氣因素帶來的DAU計(jì)算出來,問題就解決了。
② 相關(guān)要素及關(guān)系梳理——DAU構(gòu)成及影響要素
這三個(gè)部分,又分別受到不同因素的影響:天氣帶來的影響,會(huì)受到溫度、濕度、天氣現(xiàn)象、次生災(zāi)害的影響,其他因素帶來的DAU會(huì)受到業(yè)務(wù)策略、節(jié)假日等影響。
而項(xiàng)目目標(biāo)是構(gòu)建天氣對(duì)外賣DAU影響程度的指數(shù)模型,輔助DAU波動(dòng)分析。就是刻畫圖中黃色框所表達(dá)的關(guān)系。
③ 方案框架圖
如下給出天氣指數(shù)建設(shè)的整體方案:
整個(gè)方案其實(shí)包括五部分,分別是數(shù)據(jù)獲取、數(shù)據(jù)預(yù)處理、目標(biāo)值構(gòu)建、指數(shù)建模以及指數(shù)匯總。前兩部分主要是為模型準(zhǔn)備數(shù)據(jù),后面是建立模型,并計(jì)算出天氣指數(shù)。下面主要介紹第三、四部分。
3. 方案實(shí)施
定義:
如上圖所示,如果DAU為540萬,其中三部分分別為100萬、50萬、390萬,則目標(biāo)值為100 /?(390 + 50) * 100% = 22.7%。
因此,我們只要分別求出如上三個(gè)因素,就可以求解出目標(biāo)值了。
a. 計(jì)算自然增長(zhǎng)帶來的DAU
這里借用時(shí)間序列分析中的思想,對(duì)DAU做一個(gè)擬合,并將DAU分解出趨勢(shì)項(xiàng)和周期項(xiàng)。定義:自然增長(zhǎng)帶來的 DAU=趨勢(shì)項(xiàng)+周期項(xiàng)。
b. 計(jì)算其他因素帶來的DAU
這個(gè)問題一般的反應(yīng)是,先依次找出其他因素是什么,然后分別計(jì)算其影響。但這里會(huì)有三個(gè)困難:影響因素?zé)o法窮盡;影響無明顯規(guī)律,比如五一具體影響多少,很難獲得;影響會(huì)相互疊加,逐一剔除的技術(shù)難度極大。
這里,引入概率思想,認(rèn)為其他因素之間相互疊加后,對(duì)DAU的影響為零。為什么可以忽略呢?一是其他因素,如活動(dòng)、節(jié)假日,影響是隨機(jī)出現(xiàn)的,模型一定程度上可以抵消這種影響;二是惡劣天氣的影響遠(yuǎn)大于其他因素。因?yàn)檫@里是想通過算法學(xué)習(xí)天氣對(duì)DAU影響的規(guī)律,不需要被太多因素去干擾。
c. 計(jì)算目標(biāo)值
通過上述操作,將整個(gè)問題轉(zhuǎn)化為一個(gè)回歸問題。
整體有如下四個(gè)步驟:
這里,第一步是特征工程,第二、三步依據(jù)氣侯特點(diǎn),將城市進(jìn)行分區(qū)并分別建模,第四步是將細(xì)粒度的指數(shù)匯總,得到空間上更大顆粒度、時(shí)間上支持天、周、月、季等天氣指數(shù)。
為什么要將全國(guó)城市分區(qū)建模?全國(guó)統(tǒng)一建模,面臨天氣在不同城市的影響不同;而每個(gè)城市分別建模,樣本少,尤其是一些特殊天氣較少。比如2018年和2019年的北京,就下了一兩場(chǎng)雪,不可能找到什么規(guī)律。解決這類問題,想到兩種方案:一個(gè)是采購(gòu)更多的天氣數(shù)據(jù),增加樣本量;第二個(gè)是通過聚類方法橫向增加樣本量,將天氣、氣候類型相似的天氣放在一起建模。這里,我們采用了第二個(gè)方案:城市分區(qū)建模,充分利用已有數(shù)據(jù)。
最后,目標(biāo)有了,天氣有了,引入XGBOOST模型建立關(guān)系。從模型效果上看,完全可以滿足業(yè)務(wù)要求。具體的數(shù)據(jù),這里就不展示了。
項(xiàng)目2:智能化診斷分析系統(tǒng)的建設(shè)
1.?背景與目標(biāo)
① 項(xiàng)目背景
為什么要開發(fā)這套智能化診斷分析系統(tǒng)?三個(gè)方面:
一個(gè)是剛需,業(yè)務(wù)側(cè)希望通過對(duì)指標(biāo)的監(jiān)控,發(fā)現(xiàn)業(yè)務(wù)問題、機(jī)會(huì)和潛在的風(fēng)險(xiǎn),以及定位背后的原因,用于輔助經(jīng)營(yíng)決策;
第二個(gè)是痛點(diǎn),外賣側(cè)的指標(biāo)和維度非常多,靠人工分析和診斷的成本很高,對(duì)分析師的業(yè)務(wù)能力和專業(yè)素質(zhì)要求也比較高,而現(xiàn)在的系統(tǒng)又無法做到有效的診斷分析;
最后是高頻,業(yè)務(wù)側(cè)的經(jīng)營(yíng)決策以及日常用數(shù),都會(huì)遇到指標(biāo)的波動(dòng),并期望知道波動(dòng)的原因。
② 項(xiàng)目目標(biāo)
構(gòu)建一套幫助用戶發(fā)現(xiàn)指標(biāo)是否有異常并定位指標(biāo)異常原因的智能化異動(dòng)分析系統(tǒng),提升異常分析效率,從而提升決策的效率和質(zhì)量。
整個(gè)系統(tǒng)會(huì)包括兩部分:異常識(shí)別和異常診斷。
比如上面兩個(gè)例子,交易額的異常上升,通過縱向拆解,可以定位到DAU;點(diǎn)擊率的異常上升,定位到Android曝光次數(shù)的下降。
2. 方案制定
方案制定主要包括5個(gè)模塊,數(shù)據(jù)獲取、數(shù)據(jù)預(yù)處理、異常識(shí)別、異常診斷和數(shù)據(jù)服務(wù)。這里主要介紹算法部分的實(shí)現(xiàn)思路。異常識(shí)別主要是自動(dòng)化判斷是否異常,做到“知其然”,而異常診斷模塊,要回答異常波動(dòng)的原因,做到“知其所以然”。下面分別進(jìn)行介紹。
3.?方案實(shí)施
① 異常識(shí)別
比如看如下一種場(chǎng)景,一天早上,老板說我發(fā)現(xiàn)最近單量下降了,幫我看一下原因。這里,有幾個(gè)問題:單量下降是和誰比下降了,環(huán)比、同比還是去年同期;下降了,下降了多少,是1%還是10%。所以這個(gè)模塊,需要解決三個(gè)問題:第一個(gè)是比什么,就是比較什么樣的業(yè)務(wù)指標(biāo);第二個(gè)是和誰比,是不同對(duì)象的橫向?qū)Ρ?#xff0c;比如北京與上海,還是同一對(duì)象在縱向比;第三個(gè)是怎么比,是絕對(duì)比較(現(xiàn)狀和期望的絕對(duì)差),還是相對(duì)比較(現(xiàn)狀和期望的比值、TOPN、或者概率分布等),注意,很多距離類的函數(shù)都可以用到這邊。
② 異常診斷
異常診斷包括定性與定量?jī)刹糠帧F渲?#xff0c;定量部分又包括貢獻(xiàn)分析和構(gòu)成分析,貢獻(xiàn)分析是指當(dāng)指標(biāo)異常時(shí)進(jìn)行公式拆解,包括指標(biāo)拆解,還有維度拆解,然后量化相關(guān)指標(biāo)對(duì)指標(biāo)異常的貢獻(xiàn)度,接下來主要介紹加和形式的診斷分析;構(gòu)成分析,就是用來判斷指標(biāo)結(jié)構(gòu)是否有異常。很多時(shí)候,業(yè)務(wù)指標(biāo)沒有問題,但他的內(nèi)部結(jié)構(gòu)有問題。比如埋點(diǎn)錯(cuò)誤,將安卓下面的埋在了其他之中,雖然整體上沒有問題。而定性部分包括兩個(gè)方法,相關(guān)分析和事件分析。相關(guān)分析,是指對(duì)不具有公式關(guān)系的指標(biāo)進(jìn)行簡(jiǎn)單分析,比如一個(gè)交易上升,定位到某個(gè)具體的活動(dòng)上線;而事件分析,與相關(guān)分析有些類似,主要包括一些相關(guān)事件,如天氣、節(jié)假日、活動(dòng)等。后期會(huì)嘗試量化事件對(duì)于業(yè)務(wù)指標(biāo)的影響。
下面,以加和形式的異常診斷為例,介紹一下如何智能化的實(shí)現(xiàn)異常診斷。
還是采用第二部分介紹的“邏輯樹+假設(shè)驅(qū)動(dòng)”。系統(tǒng)主要是提供構(gòu)建邏輯樹的功能,當(dāng)然,還需要提供用戶分析視角,就是假設(shè)驅(qū)動(dòng)。而診斷效果的好壞,往往非常依賴于用戶提供的分析視角。診斷效果不僅取決于模型設(shè)計(jì),且依賴于使用系統(tǒng)的人,如果沒有找到好的分析視角,也不會(huì)得到很好的結(jié)果。
比如外賣DAU異常了,從城市維度看,是不是城市有異常;從訂單維度看,是不是線下做了活動(dòng)。這些都需要用戶提前告知系統(tǒng)。當(dāng)然,從系統(tǒng)建設(shè)角度看,也有義務(wù)去收集分析的維度。
那算法是怎么定位異常的呢?
所謂異常,就是異常節(jié)點(diǎn)對(duì)指標(biāo)異常的實(shí)際(本期)貢獻(xiàn)比期望(基期)貢獻(xiàn)大。這與問題的定義是一致的。當(dāng)然,異常診斷的算法有很多,但原理大同小異,一般包括兩個(gè)部分:第一個(gè)是識(shí)別異常維度,該系統(tǒng)采用的方法類似于基尼系數(shù);第二部分是識(shí)別異常維值,依然從問題的定義出發(fā),選出對(duì)異常貢獻(xiàn)最大的維值。這里不介紹算法的細(xì)節(jié),近期會(huì)公開相關(guān)文章。
04
失敗的邏輯——診斷分析中易犯的錯(cuò)誤
為什么診斷會(huì)失敗呢?
能夠順利解決問題的一個(gè)很重要的原因是診斷分析結(jié)果的好壞,即是否找到真正的原因。這里,將導(dǎo)致診斷效果不理解的原因概括為兩個(gè)方面:一個(gè)是問題界定不清楚,一個(gè)是停留在舒適地帶。
原因1:問題界定不清楚
回到問題的定義,是指現(xiàn)狀與期望的差距。這里有三個(gè)關(guān)鍵詞,一是現(xiàn)狀。有時(shí)候我們無法正確描繪問題,主要原因就是對(duì)現(xiàn)狀的認(rèn)識(shí)不清。比如想診斷外賣的供需關(guān)系是否正常,就需要定義清楚當(dāng)前的供需關(guān)系;二是期望,選擇是否合理。比如每次節(jié)假日回來的那周,都會(huì)收到業(yè)務(wù)側(cè)的反饋,比如國(guó)慶回來,為什么10月9號(hào)環(huán)比10月2號(hào)訂單量異常下降了?這里就是選擇的對(duì)比對(duì)象的問題,如果沒有意識(shí)到這個(gè)問題,而是直接進(jìn)行拆解,效果未必好;三是差距,即問題的定義。比如小城市的訂單量波動(dòng)10%,可能是正常的,但北京的就不正常。
原因2:舒適地帶偏見
就是在分析的時(shí)候停留在舒適區(qū),在有限的時(shí)間、有限的維度內(nèi)進(jìn)行診斷,只尋找局部最優(yōu)解,很容易導(dǎo)致漏診和誤診。當(dāng)然,局部與全局是相對(duì)的,當(dāng)前場(chǎng)景的全局最優(yōu),可能是更大場(chǎng)景的局部。所以要不斷擴(kuò)大認(rèn)知邊界,提供找到全局最優(yōu)的可能性。舉一個(gè)實(shí)際的例子,有一天,美團(tuán)搜索入口的單量異常,業(yè)務(wù)方和算法排查了幾天時(shí)間,搜索鏈路的各個(gè)環(huán)節(jié)經(jīng)排查后都正常。最后經(jīng)分析發(fā)現(xiàn),有一個(gè)入口在做活動(dòng),把流量吸走了。而之前的分析,只是限制在了搜索這樣一個(gè)場(chǎng)景下,走了很多彎路。
總結(jié)一下,如果想要順利地解決問題,還是要在每個(gè)環(huán)節(jié)有邏輯地做事,增加成功的概率。
今天的分享就到這里,謝謝大家。
↘好文推薦:
Notion:后office時(shí)代的新生產(chǎn)力平臺(tái)
超全!體驗(yàn)度量理論2021版
干貨!最全需求評(píng)審指南,讓你不再怕被懟點(diǎn)個(gè)“在看”吧
總結(jié)
以上是生活随笔為你收集整理的美团王庆:当老板对指标进行灵魂拷问时,该如何诊断分析?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 帐号体系:后端信息结构设计
- 下一篇: 鹅厂分享:AB实验只是开始?如何归因和解