歡迎光臨
每天分享高質量文章

【應用】從業務資料分析到機器學習應用的一次經歷

筆者邀請您,先思考:

1 您怎麼做業務資料分析?

2 您應用機器學習解決什麼問題?


本文通過一次完整的專案經歷,從業務資料的分析開始,到產品優化建議,再到通過機器學習進行進一步的處理進行了比較完成的提煉。 騰訊電腦管家作為一款目前最流行的pc端軟體之一,如何提升市場份額同時提升用戶體驗是我們一直在探索和考慮的問題。業務資料分析方面主要是考慮產品優化的建議;機器學習方面,特征構造、模型選型、ABtest等都有比較充分的描述和說明。希望能夠對大家在資料分析的工作能有一定的啟發,如有不足之處還望大家多指教。

騰訊電腦管家作為一款安全軟體,目前在市場上擁有數量非常巨大的用戶,並且承載著很多很多與用戶日常使用功能關係都非常密切的功能。如何提升電腦管家的市場份額,是電腦管家的一個終極標的。為了提升管家的市場份額。我們做了很多事情,比如:提高用戶留存,增加安裝量,提升渠道質量等等。除了這些,我們也一直在探索新的方法。

在我們的思考和嘗試中發現目前的方法大多數是從流入這個角度去考慮的,如果在流失和卸載的角度,能最大程度的減少卸載,也是提升市場份額的一條路。於是我從最直接的卸載反饋入手進行分析,看看是否能找到減少卸載的辦法。

說明一點:因為部分資料相對敏感,因此在本文中,一些具體的資料已經略去或者粗化,主要想介紹的是從業務資料分析到機器學習協助提升業務想過的思想和框架。大家閱讀的過程中可以暫且忽略資料具體值,如影響閱讀,還請原諒。

從電腦管家的卸載反饋出發,可以通過一個資料漏斗,比較直觀的展示一下整個分析的過程。


第一步是過濾掉無用的反饋,其實近80%的反饋都是沒有分析價值的,原因是由於大多數用戶包括正在瀏覽這篇文章的你,可能在卸載一個軟體的時候,都不會太有耐心去填寫甚至是點擊一下卸載的原因。篩選後大約剩下20%的有用反饋內容。

通過cnn分詞和語意分類(jieba分詞,然後通過cnn分類,後續另起一篇文章講述這邊通過深度學習對文本進行金丹分類的過程),我將反饋分為兩個大類,第一類是安裝推薦類,大約占57%,第二類為用戶反感。約占43%首先來看安裝推薦,大多數是在吐槽重覆安裝或者安裝方式不明,以及頻繁的提醒或者和競品不兼容等問題。這些問題我梳理後,反饋到對應的產品組,由他們具體處理;

其次,用戶反感中,第一類是運營活動的問題,很多是吐槽獎勵未兌現,這些很多是由於運營活動規則的歧義,梳理後也反饋到運營組的同學那邊,由他們進一步分析;其次,功能類中,關於鎖定主頁,修改主頁等的反饋占比是最高的,涉及的功能是預設策略鎖定主頁。為什麼這個功能的吐槽和反饋會這麼多呢?我覺得非常值得進一步分析。


首先,我找到預設策略鎖定主頁的業務流程,大致為:每天管家會在後臺掃用戶的機器,如果發現用戶的主頁不是我們事先設定好的一些列地址,那麼管家會在後臺隨機的對用戶的機器進行鎖定;鎖定後會彈出tips提醒用戶主頁被修改了。

電腦管家的功能基於使用的性質的不同可以分為主動使用和被動使用兩種,預設策略鎖主頁屬於被動功能。我提取管家內的被動使用功能的使用後卸載率的情況,發現預設策略鎖主頁這個功能的功能使用後卸載率是最高的,而且高出第二位很多,那麼我覺得是很有必要重點進行分析的,如果可以找到有效的方法,降低卸載率,那麼至少有兩方面好處:

  • 1.可以發現問題,解決問題,提升該功能的用戶體驗,減少卸載和吐槽;

  • 2.如果方法可以應用到其他被動功能,那麼對於降低整體卸載率是有幫助的,也就有助於提升管家整體的市場份額。

根據業務流程,也梳理了一個資料漏斗進行分析:對於滿足鎖定策略的用戶,大約有90%會觸發鎖定的動作,觸發鎖定後,大約會有70%的用戶被成功鎖定,成功鎖定後99%的用戶就會彈出tips提醒用戶主頁被修改了。接下來大約會有4.5~4.7%的用戶當天就卸載了電腦管家。我認為分析這部分用戶,才能找到卸載率高居榜首的原因。

因此,接下來我提取了一批當天被鎖定主頁且卸載了電腦管家的用戶,從他們的用戶畫像入手進行分析。

從性別,年齡,所在的省份,城市,管家的啟動,功能使用情況,安裝時間分佈情況的多個維度進行分析。通過資料的比對,我發現只有一個與大盤的分佈是不同的,那就是安裝時間的分佈這個維度。

從圖中可以看出,當天和前1天安裝的用戶卸載率比大盤的高很多。而其他的維度,基本上和大盤分佈都是很接近的。那麼圍繞安裝時間這個維度,我又進入了比較具體的分析和比對。

當天安裝和前1天安裝的用戶實際都是管家的新裝用戶,我分析了這批用戶的卸載率情況。發現新裝用戶的卸載率比正常水平高出了3%~4%。同時對比了管家大盤卸載用戶發現,鎖主頁的新裝用戶卸載率高出很多,並且當天安裝和前1天安裝的用戶累計的占比已經達到87%,而大盤只有61%也就是說與大盤的用戶相比,鎖定主頁後卸載的很大一部分都是新裝用戶。兩個累計卸載率的不同讓我馬上有了一個設想,如果我不給這批新裝的用戶鎖定主頁,那麼是不是可以降低這個功能的卸載率?帶著這個設想,我進行了兩輪abtest。

第一輪abtest中,我每天隨機提取管家的新裝用戶10w,隨機分為5w/5w兩部分,監控這批新裝用戶鎖主頁和卸載的情況。

partA:製作成黑名單,避免對這批用戶鎖定主頁,統計一周卸載率的均值;

partB:不做任何處理,作為對比組,同樣統計一周卸載率的均值。

經過一周的監控,對比partA和partB兩個部分的卸載率情況,從圖中可以看出,partA的卸載率整體都比partB低約一個點,這說明有一部分新裝用戶在不給他們鎖主頁後,他們就不卸載管家了。

第二輪abtest中,我隨機在管家大盤中提取了約100W的用戶,隨機分為50W/50W的兩部分,進行abtest。

partA:鎖定之前會判斷是否是新裝用戶,如果是則不鎖定,統計一周的卸載率均值;

partB:不做任何處理,作為對比組,統計一周卸載率的均值。

從對比結果中可以看出,如果避免給新裝用戶鎖定主頁,卸載率是有一定的下降。結合資料分析的結果和兩輪abtest的結論,我提出了一個產品優化點擊建議:新裝用戶在剛剛安裝完管家後,各類軟體管理,清理,瀏覽器相關的tips會比較多,建議避免對新裝用戶鎖主頁

在10月底,上線這個優化,在鎖定之前會判斷這個用戶是否是新裝的用戶,如果是,就不會給鎖主頁。上線後,鎖主頁的卸載率立刻有了明顯的下降,下降了大約1%。通過abtest的估計,每天大約可以減少卸載量約1000個。

上線了產品的優化後,預設策略鎖定主頁的卸載率量了有了一定的下降,但是在排行榜仍然是最高的。感覺我們做的工作是不是還是不夠。有沒有辦法再降1%,達到平均水平呢?

在思考這個問題的過程中,我想到在前面的產品優化建議中,實際上我們有分析了大量的用戶畫像特征,分析出新裝用戶卸載的可能性更高,然後通過產品優化避開新裝用戶的鎖定,於是我有了第二個設想,有沒有可能挖掘更多的用戶特征,通過機器學習的方法,預測出卸載可能性高的用戶製作成黑名單,避免對這批用戶鎖定主頁。如果這個方案有效,那也可以降低卸載率。

有了這個想法後,我馬上展開新行動,挖掘用戶的特征,訓練模型,進行abtest。

通過機器學習預測高卸載可能性用戶的流程對大多數同學來說應該還是比較熟悉的。首先,提取了鎖定主頁且當天卸載的用戶作為正樣本和鎖定了主頁當天沒有卸載管家的用戶作為負樣本;接下來是特征構建和特征處理;然後使用svm,邏輯回歸等五個模型分別進行訓練,並採用十折交叉驗證的方法進行訓練和驗證;最後,預測的了一批用戶我們進行了abtest。

比較耗費時間和精力的,還是在特征工程方面,主要是特征構建和特征處理。特征處理主要是進行one-hot編碼,啞變數處理,缺失值處理等。

特征選擇主要通過卡方檢驗,基尼繫數和信息增益篩選特征。通過這裡的步驟篩選出第一批特征。

附:各個檢驗的含義

卡方檢驗:根據卡方獨立性檢驗結果,將每個特征對應的卡方統計量按照從大到小的順序進行排序,對於出現次數較少的特征更容易給出高分。例如某一個特征就出現過一次在分類正確的資料中,則該特征會得到相對高的分數;

基尼繫數:總體內包含的類別越雜亂,GINI指數就越大(跟熵的概念很相似)。信息熵類似的做特征選擇的方式,可以用來資料的不純度;

信息增益:某一個特征對於我們需要預測的結果提供了多少信息。

模型選擇方面我分別嘗試了SVM,邏輯回歸,GBDT,隨機森林,決策樹等五個模型。並且採用10-flod交叉驗證。

從各個模型的精準率和召回率,可以看出GBDT和隨機森林有相對較好的精準率。對於通過演算法預測的用戶,進行兩輪abtest。學習模型的選擇引數通過sklearn的GridSearchCV  調優。

第一輪abtest中,我將預測的卸載可能性高的用戶,隨機分成兩部分,進行abtest。

partA:製作成黑名單,避免對這批用戶鎖定主頁,統計一周卸載率的均值;

partB:不做任何處理,作為對比組,同樣統計一周卸載率的均值。

經過一周的監控,對比partA和partB兩個部分的卸載率情況。從圖中可以看出,由於partA是不會被鎖定主頁的,他們的卸載率遠低於partB。這裡可以得到一個結論,通過機器學習預測的用戶在鎖定主頁後卸載管家的可能性更高。

第二輪abtest中,我隨機在管家大盤中提取了約100W的用戶,隨機分為50W/50W的兩部分,進行abtest。

partA:鎖定之前會判斷是否是黑名單用戶,如果是則不鎖定,統計一周的卸載率均值;

partB:不做任何處理,作為對比組,統計一周卸載率的均值。

從對比結果中可以看出,如果避免給新裝用戶鎖定主頁,卸載率是有一定的下降。到此,我們通過資料分析的結果和abtest的結論,可以認為通過機器學習,預測高卸載可能性的用戶,避免對他們鎖定主頁,是能夠降低這個功能的卸載率的。

在這個驗證之後,我們投放了第一批黑名單(約100W的用戶量)。黑名單上線後,效果馬上是非常明顯的,鎖定主頁的卸載率立刻有下降的趨勢。

監控資料卸載率從原來的3.6%下降到3.1%,下降了0.5%。

效果有了,但是離一開始定的標的還有一點距離,是否有什麼辦法提升呢?

對於這個效果的出現,最主要的因素就是在之前的大量分析中我挖掘了很多有用的特征,那麼有沒有可能增加更多對模型效果有幫助的特征。並且考慮增加特征的時候,我也發現我不能只把眼光聚焦在鎖主頁這個功能上,還需要考慮如何才能應用到管家其他功能,管家整體上來,那這個事情做了才真正有價值。

因此,我梳理了一下目前通過機器學習特征工程的整個過程:特征來源表很多都不同,關聯運算很多,導致了三大問題:

  • 1.計算量大;

  • 2.可復用性差;

  • 3.做特征工程的效率低。

同時,更進一步,目前針對鎖主頁這個業務使用機器學習的方法預測黑名單,雖然小有成效,但是並沒有考慮如何橫向擴展應用到其他功能。下次如果是另一個功能,那又得從頭到尾做一遍,該如何避免這樣的情況呢?這些都是我覺得需要考慮和規劃的問題,而不是單單做完這麼一個專案就可以的。只有考慮到更大範圍的應用,這樣投入去做這麼一件事情才是性價比高。

帶著這個想法,我進行了比較全面的規劃與思考,列出了三個標的:

  • 1.重新規劃特征,盡可能的整合管家內所有可以獲取的特征;

  • 2.將這些大量的特征拆解為多個模塊和維度,可以快速獲取所需要的特征;

  • 3.可以與具體業務結合,支持橫向擴展,可以靈活的應用到多個功能。 由這個標的,我有了一個整體的規劃,把在機器學習過程中用到的所有特征整合在一起,搭建了一個特征分類系統。並劃分為用戶畫像信息,管家基礎特征,用戶行為特征三大模塊,這三個模塊可重新規劃,拆解,可以快速選擇。同時,與業務相關的特征劃分為單獨的一個模塊,這個模塊與具體業務結合,可以靈活的擴展。詳細可以看下圖:

經過了一段時間的梳理和開發,我初步搭建了特征分類系統。併在鎖主頁這個功能直接就得到了應用。

上圖我們分為兩部分來看,下麵藍色虛線框中的是初步搭建的特征分類系統,目前主要是由在tdw上面的表和部署在lz平臺上面的自動任務組成。

源資料主要是電腦管家各個基礎資料,畫像資料,以及QQ畫像資料;以天為單位,每天在中間表中統計所有特征的資料,並分類彙總到各個模塊表中。
最終會輸出到各個模塊單獨的結果表中。

黃色框中的為在鎖主頁這個功能上的應用,通過這個系統,非常快速的獲取到315個特征。

通過特征工程,我們最終篩選出268個特征。

整體來說,搭建這個系統的效果是很明顯的:

  • 1.非常方便快捷的獲取到大量的特征;

  • 2.效率得到大幅度提升,從原來的需要兩天才能完成全部工作縮短至現在3個小時就可以完成;

  • 3.後續可以應用到其他功能上的時候,只需單獨分析該功能相關的特征,很多其他特征是可以復用的。

增加了這些特征後,重新訓練模型,模型的效果有一定的提升。精準率,召回率都有一定的提升,auc也從原來的0.62提升至0.68。

效果提升後,為了更嚴謹,對於預測的黑名單,我還是進行了一次abtest。

第一列ABtest結論:通過機器學習預測的用戶,在鎖定主頁後卸載管家可能性更高。
並且模型優化後,效果有提升。

第二輪ABtest結論:優化後的模型預測的黑名單用戶,避免給這批用戶鎖定主頁,卸載率可以進一步下降。

對於優化後的模型,我們再次上線新預測的黑名單,效果提升明顯,卸載率下降到2.4%,達到了最初定的標的。


通過資料分析和資料挖掘,對預設策略鎖主頁這個功能提出了兩點優化。

產品優化方面:現在不會對新裝用戶鎖主頁;並且通過機器學習預測高卸載可能性的用戶做成黑名單。

整體而言,效果還是比較滿意而且達到標的的。卸載降低至2.4%,比最初降低了近一半。

根據abtest,我們估計每天減少了約3000個卸載量。月累計可以達到8.8萬的卸載量,一年估計可以減少90萬個。

其他方面,鎖主頁相關的卸載反饋下降了約50%,同時搭建了一套具有實用價值的特征分類系統。

  1. 在預設策略鎖主頁這個功能的成功應用,接下來會完成特征分類系統的搭建,並應用到其他被動功能上,爭取在更大範圍,通過機器學習快速的降低卸載率,提升管家的市場份額;

  2. 使用基於LSTM的深度學習:挖掘預設策略鎖定主頁之前用戶的啟動管家情況,使用功能的情況,計算機狀態情況等。構建具有前後關係的序列型特征,結合目前的特征系統的資料,預測用戶的卸載可能性。

深度學習的研究和應用,將會是後續工作的一個重點內容。

除此之外,完成整個專案的過程中,將一些具有創新價值的演算法提煉之後,成功申請專利一項,目前已經進入國家專利局評審階段。

總結:在整個專案過程中,獨立承擔90%的工作,剋服困難向標的不斷進取;個人感覺對技術細節把握的還比較到尾,特征構造、模型選型、ABtest等都有比較充分的考慮到,能夠參考已有的經驗和方法,在專案過程中也主動學習和瞭解業務流程,資料挖掘的知識,對於一些有價值的提煉內容,也及時通過KM、專利和部門分享等方式傳承知識。

最後,這篇文章展現出完整的業務分析和策略優化的過程,通過反覆通過分析、ABtest和模型應用以資料驅動業務優化,並且可以有一定的效果。

但是,也暴露出一些未考慮全面的問題:

  1. 對鎖主頁可能帶來的商業化的影響的思考不夠全面;

  2. 卸載減少的絕對數字還比較低,專案效果需要進一步放大,比如並行或者爭取更多資源投入等方法。

轉自公眾號:程式你好

文章推薦:

LDA演算法及應用

word2vec與doc2vec模型

3 常用推薦演算法


您有什麼見解,請留言。

加入資料人圈子或者商務合作,請添加筆者微信。

資料人網是資料人學習、交流和分享的平臺http://shujuren.org 。專註於從資料中學習到有用知識。
平臺的理念:人人投稿,知識共享;人人分析,洞見驅動;智慧聚合,普惠人人。
您在資料人網平臺,可以1)學習資料知識;2)創建資料博客;3)認識資料朋友;4)尋找資料工作;5)找到其它與資料相關的乾貨。
我們努力堅持做原創,聚合和分享優質的省時的資料知識!
我們都是資料人,資料是有價值的,堅定不移地實現從資料到商業價值的轉換!


點擊閱讀原文,進入資料人網,獲取資料知識。




公眾號推薦:

鏈達君,專註於分享區塊鏈內容

腳印英語,專註於分享英語口語內容



赞(0)

分享創造快樂

© 2021 知識星球   网站地图