1-概述
該篇論文主題是廣告系統(tǒng)中針對廣告收入異常波動根本原因分析解阅;
提出的Adtributor算法主要是基于指標(biāo)期望值和實際值的分布悲立,計算其js散度询兴,找到影響指標(biāo)最大的維度及其維值集合苗傅。
此外谣蠢,論文也針對衍生指標(biāo)的根因分析方法做了討論(這塊沒有深入看)
2-問題&引入
針對一組維度(每個維度多個維值)下指標(biāo)滑潘,如數(shù)據(jù)中心垢乙、廣告商、終端設(shè)備這三個維度下的廣告收入语卤,如果某天廣告收入劇降50%(期望100追逮,實際收入50)酪刀,那么需要定位到到底是哪個維度下哪些維值導(dǎo)致的廣告收入的劇降---簡單理解為找到對廣告收入波動影響最大的因素(維度->維值);
![](https://upload-images.jianshu.io/upload_images/15794255-a093bbdad0b3795b.png&contentType=2&isDownload=false&token=7cebc47e32*c421b88caf0807adce896&isNewContent=false&isViewPage=true?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如何找到引發(fā)廣告收入波動的主要因素钮孵,作者引入下面輔助概念/方法:
Boolean表達(dá)式
? ? ? 作者用一個boolean表達(dá)式量化表示出廣告收入的波動影響骂倘,針對上面三個分維度的廣告收入波動情況表中,可以表示為:
![](https://upload-images.jianshu.io/upload_images/15794255-5f6253de44347c2f.png&contentType=2&isDownload=false&token=7cebc47e32*c421b88caf0807adce896&isNewContent=false&isViewPage=true?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
稻草人方法(strawman approach)
? ? ? 根因分析如何找到最優(yōu)解: 作者提出了一個稻草人方法(strawman approach):找出維度和該維度下一組元素巴席,其收入下降至少是總收入下降的閾值分?jǐn)?shù)TEP历涝,并且最簡潔。
explanatory power (EP)-解釋力
? ? ? 作者定義explanatory power (EP)-解釋力量化為它解釋度量變化的分?jǐn)?shù)漾唉。 我們將一組元素的簡潔性(P)量化為表達(dá)式中元素的總數(shù)荧库。 因此,稻草人將找到具有至少TEP的解釋力的表達(dá)式毡证,并且使用最少數(shù)量的元素。
由上面三個定義蔫仙,如果使用Occam剃刀原則-簡單有效原理--只要在一定誤差范圍下料睛,最簡潔的就是最好的解釋。針對上面三個boolean表達(dá)式摇邦,設(shè)置TEP閾值為90%恤煞,那僅數(shù)據(jù)中心下維值X就可以解釋總下降的94%;但是這種方法在存在多個維度時具有導(dǎo)致根的缺陷施籍,雖然數(shù)據(jù)中心X的收入下降占總收入下降的94%居扒,但預(yù)測和實際收入在兩個數(shù)據(jù)中心X和Y之間平均分配。數(shù)據(jù)中心X提供了94%的預(yù)測收入(94美元中的 100美元)和94%實際收入(50美元中的47美元)丑慎。 數(shù)據(jù)中心Y在兩個價值中貢獻(xiàn)了6%喜喂。 相比之下,在設(shè)備類型維度中竿裂,設(shè)備類型PC占預(yù)測收入的50%(100美元中的50美元)玉吁,但實際收入的98%(50美元中的49美元)。 移動和平板電腦類型的貢獻(xiàn)也有很大差異腻异,從預(yù)測收入的25%到實際收入的0%进副。 貢獻(xiàn)因廣告尺寸而異,但不如設(shè)備類型尺寸那么多悔常。
作者提出影斑,針對廣告收入根因分析可以拆解三塊:
對于維度,找到至少解釋度量變化的閾值分?jǐn)?shù)TEP的所有元素集(具有高解釋力)机打。
在每個維度的所有此類集合中矫户,找到該維度中最簡潔的集合。
對于所有維度的所有此類集合残邀,找到在貢獻(xiàn)變化方面最令人驚訝的集合吏垮。
3-算法核心
3-1 基礎(chǔ)定義和核心概念:
符號定義
![](https://upload-images.jianshu.io/upload_images/15794255-db775eb7a5ff656a.png&contentType=2&isDownload=false&token=7cebc47e32*c421b88caf0807adce896&isNewContent=false&isViewPage=true?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
Explanatory power
? ? ? EP:該維度i的維值j的實際波動占總體波動貢獻(xiàn)
EPij = (Aij(m) ? Fij )/(A(m) ? F (m))
Surprise
? ? ? 先計算每個維度的元素預(yù)期指標(biāo)占比分布和實際指標(biāo)占比分布:
![](https://upload-images.jianshu.io/upload_images/15794255-8ab964ec220991ac.png&contentType=2&isDownload=false&token=7cebc47e32*c421b88caf0807adce896&isNewContent=false&isViewPage=true?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
獲取這兩個占比后障涯,一般是使用K-L散度來衡量兩個分布的差異,但是由于K-L散度非對稱且可能無界膳汪,所以使用JS散度來表示:
![](https://upload-images.jianshu.io/upload_images/15794255-556f6629fc2e5c37.png&contentType=2&isDownload=false&token=7cebc47e32*c421b88caf0807adce896&isNewContent=false&isViewPage=true?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
針對每個元素唯蝶,其surprise Sij這樣計算:
![](https://upload-images.jianshu.io/upload_images/15794255-f87544d74c8072a4.png&contentType=2&isDownload=false&token=7cebc47e32*c421b88caf0807adce896&isNewContent=false&isViewPage=true?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3-2 算法流程
其偽碼計算流程如圖:
![](https://upload-images.jianshu.io/upload_images/15794255-126dbe78b7e76e7b.png&contentType=2&isDownload=false&token=7cebc47e32*c421b88caf0807adce896&isNewContent=false&isViewPage=true?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
算法使用了以下貪婪的啟發(fā)式算法,而不是枚舉具有至少TEP解釋力的各種最小基數(shù)子集遗嗽。在每個維度中粘我,在計算所有元素的surprise(第1-5行)之后,它首先按照surprise的順序?qū)υ剡M(jìn)行排序(第8行)痹换。然后征字,只要該元素至少解釋了總異常變化的TEEP(第12-15行),它就會將每個元素添加到候選集中娇豫。參數(shù)TEEP有助于控制集合的基數(shù)(奧卡姆剃刀)匙姜。例如,如果TEEP為10%且TEP為67%冯痢,我們最多可以有7個元素來解釋異常變化氮昧。此外,通過將suprise倒序排列浦楣,貪婪地尋求最大化候選集的suprise袖肥。 該算法每個維度最多添加一個候選集(第16-19行),只要該集合能夠解釋異常變化(解釋力)的大多數(shù)(TEP)振劳。 最后椎组,該算法按照其驚喜值對各種候選集進(jìn)行排序,并將前三個最令人滿意的候選集作為潛在的根本原因候選者返回(第21-22行)历恐。
算法最終輸出是Suprise的top3的元素集合(每個維度有一個Suprise)