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

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

筆者邀請您,先思考:

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)

分享創造快樂

© 2024 知識星球   網站地圖