1
| 本文作者: 奕欣 | 2018-03-06 15:14 |
雷鋒網 AI 科技評論按:在 2 月份舉行的第 11 屆網絡搜索與數據挖掘國際會議(WSDM 2018)上,阿里集團 AliOS 算法團隊獲得 WSDM Cup 挑戰賽第二名的成績,這是中國企業首次在該賽事上取得的最高名次。
WSDM 被譽為信息檢索領域最頂級的會議之一,會議的關注點為搜索、數據檢索、數據挖掘、算法設計、算法分析、經濟影響方面的實際且嚴謹的研究,以及對準確率和運行速度的深入實驗探究。今年已經是 WSDM 的第十一屆會議。
本次 WSDM Cup 有來自全球 575 支隊伍參賽。會議共收到論文投稿 514 篇,接受論文 84 篇,接受率約 16%。
此次比賽出題方是一家名為 KKBOX 的流媒體音樂公司,賽題內容是預測 3 月訂閱到期的用戶中,哪些會流失。為解決該題,阿里巴巴使用了兩層 Stacking Model,第一層采用邏輯回歸、隨機森林、XGBoost 算法,第二層又采用 XGBoost 算法把第一層的結果融合。流失用戶預測,對有會員體系的業務場景都可以使用,其中會員付費為主要收入的業務就更為關鍵,比如像 Apple Music、蝦米音樂。多層 Stacking Model 由 AliOS 神燈研發,極大提升了分類預測的準確率,已廣泛應用于 AliOS 多項業務中。
以下為阿里集團的論文解讀。

KKBOX 是亞洲一家音樂流媒體公司,其業務模式與 Spotify 和 Apple Music 類似。對于音樂流媒體業務來說,付費會員非常重要,不僅直接影響訂閱收入,還會間接影響廣告收入。
本次比賽的目標是利用 KKBOX 真實的用戶行為數據,預測會員是否會流失。比賽中我們面臨了很多挑戰,如正負樣本不均衡、臟數據等問題。我們采取了一些列措施來解決這些問題,比如建立數據清洗和交叉驗證機制,使用 Stacking Model 來提升準確率。
本次比賽的目標是預測當月會員到期的用戶中哪些會流失。這里「流失」的定義是會員到期后 30 天內沒有續費。
本次比賽的結果采用 Log Loss 進行評估,Log Loss 的計算公式如下:

公式中,N 表示測試樣本數,表示測試樣本最終是否流失(1 表示流失,0 表示沒有流失),為模型預測用戶是否會流失的概率(取值 0-1)。
考慮到模型的數據量和開發效率,我們采用了阿里云的 DataWorks 作為開發平臺。
3.1 數據預處理
比賽提供了三份數據,分別是用戶的訂單明細、聽歌日志和人口統計學信息。見下表:

臟數據問題例如年齡數值小于 0 或者大于 100,注冊時間和支付金額中的極端異常值。我們處理臟數據的方式包括根據分布將異常值轉換為合理取值,刪除無法解釋且不包含重要信息的數據。
訓練樣本中,is_churn 是樣本的 label,訓練樣本取自 2017 年 2 月和 3 月訂閱到期的用戶。訓練數據的正負樣本極不均衡,以 2 月份訂閱到期的訓練樣本為例,在總共 992931 條數據中,is_churn = 1 的樣本只有 63471,占比 6.4%。
傳統的分類算法比如決策樹和邏輯回歸都是對正負樣本比例有要求。我們使用欠采樣的方式對訓練樣本進行了處理,分別嘗試了 1:3,1:5,1:8 的正負樣本配比,在最終模型中,我們根據交叉驗證的結果選擇了最優配比。
3.2 特征工程
特征工程階段,我們從計算邏輯、時間窗、額外條件三個維度將數據進行組合。如下圖,右邊特征列表中 last_7_auto_tran_cnt 表示最近 7 天(時間窗)自動完成的(額外條件)訂單筆數(計算邏輯)。特征組合完成后,我們對特征還要一系列的處理,如 log 轉換、one-hot 編碼。

我們通過交叉驗證來測試特征的有效性。在交叉驗證中我們發現,最有效的特征包括:1. 最近 60 或 90 天自動完成的訂單筆數 2. 最近一筆交易是否被取消或自動完成 3. 賬號注冊的方式。最終,我們提取了 300 多個特征,并根據交叉驗證的結果留下了 204 個特征。
3.3 模型
我們使用了一個兩階段模型來預測最終的流失情況。如下圖,在第一階段,提取出的特征會輸入邏輯回歸、隨機森林、XGBoost 三個模型,而第一階段模型的輸出會被當做第二階段的特征,最終組成一個 Stacking Model。

如下圖,我們采用了 5-fold stacking 策略。
在第一階段,將訓練數據均勻地分成 5 份,使用「留一法」訓練 5 個邏輯回歸模型,用這 5 個模型分別去預測剩下的一份訓練數據和測試數據,將 5 份預測的訓練數據合并,可以得到一份新的訓練數據 NewTrainingData,將 5 份預測的測試數據采用均值法合并,得到一份新的測試數據 NewTestData。用同樣的方法再分別訓練隨機森林和 XGBoost,新的訓練和測試數據上,就可以得到 3 個模型的分數。
第二階段,將上一階段的 NewTraningData 作為訓練數據,NewTestData 作為測試數據,重新訓練一個 XGBoost 模型,得到最終的預測分數。這種方法可以避免過擬合,學習出特征之間組合的信息,還能提高預測的準確率。

3.4 模型評估
交叉驗證不僅可以做特征篩選,在模型階段,還給調參、Stacking Model 策略的調整提供依據。下圖可以看到我們每一步的優化帶來的提升,最初的 LR 模型可以得到 0.2106 的分數,XGBoost 和特征提取技術可以把分數提升到 0.1151,最終 Stacking Model 和調參讓我們得到 0.0934 的分數。

本文我們介紹了在參加 WSDM Cup 2018 中所做的實踐,最終我們獲得了第二名的成績。對幾個關鍵的優化技術在文中做了闡述,如數據預處理階段的欠采樣、特征提取方式、Stacking Model。通過分析和測試,我們發現這些方法都可以提升預測的準確率,后續我們還將測試更多的超參數,并引入深度學習進行優化。
論文原文地址:
現在關注“雷鋒網”微信公眾號(leiphone-sz),回復關鍵詞【2018】,隨機抽送價值 3999 元的參會門票 3 張