高 潔,張 濤,程新洲,關 鍵(中國聯通網絡技術研究院,北京100048)
隨著移動網絡和智能手機的迅速發(fā)展,幾乎每個人都離不開手機。咨詢公司的報告顯示,在近5年的時間里,智能手機在移動市場的滲透率已經從2014年的50%上升到2019年的80%,到2019年底,預計將達到85%。在日常生活中,人們幾乎每天都在使用手機瀏覽網頁、聊天和網上購物,手機的上網數據可以直觀地反映用戶的屬性特征和行為偏好。因此,運營商可以通過智能網管平臺采集移動用戶終端APP安裝列表、APP使用記錄、終端類型和終端價格等數據,再結合GiHtub上開源的機器學習算法,便可以開展移動用戶的精準畫像工作,例如預測用戶的年齡、性別等信息,這些在精準營銷中是非常重要的客戶標簽屬性。它不僅可以幫助互聯網公司了解用戶的行為特征,迭代開發(fā)產品,還可以幫助企業(yè)提高廣告投放的精準度,從而節(jié)約廣告投資成本。
在機器學習算法領域,監(jiān)督學習算法中最常用的2類算法為回歸(Regression)算法和分類(Classification)算法?;貧w和分類的算法區(qū)別在于輸出變量的類型,定量輸出或者連續(xù)變量預測稱為“回歸”;定性輸出或者離散變量預測稱為“分類”。而對移動用戶年齡和性別的預測過程是一個典型的分類問題,因此,可以利用分類算法對移動用戶的年齡和性別進行精準預測。
目前比較流行的分類算法包括經典的決策樹、集成學習Boosting算法中的梯度提升樹(GBDT——Gradient Boosting Decision Tree)算法和極端梯度提升(XGBOOST——eXtreme Gradient Boosting)算法。其中,GBDT算法通過多輪迭代,每輪迭代產生一個弱分類器,后續(xù)每個分類器在上一輪分類器的殘差基礎上進行訓練,如圖1所示。
圖1 GBDT的模型訓練過程
XGBOOST算法是GBDT的改進,它是大規(guī)模并行boosted tree的工具,是目前最快最好的開源boosted tree工具包。在XGBOOST之后,微軟公司又提出了一種LightGBM算法來增強GBDT的性能。LightGBM是一個實現GBDT算法的框架,支持高效率的并行訓練,并且具有更快的訓練速度、更低的內存消耗、更好的準確率以及支持分布式海量數據處理的能力。首先它拋棄了GBDT算法使用的按層生長的決策樹生長策略,而使用了帶有深度限制的按葉子生長算法,以加速訓練過程,減少內存使用。因此,基于以上集成機器學習算法優(yōu)劣勢比較,提出了一種基于LightGBM機器學習算法的預測用戶年齡和性別的方法。
為了提高算法模型預測的準確性,筆者采用了LightGBM機器學習算法和交叉驗證的訓練方式。該模型算法的整體流程框架如圖2所示,整個模型訓練過程可分為5個步驟:數據收集、特征工程、模型訓練、交叉驗證和精度評價。
運營商通過智能網管平臺可實時采集到用戶的基本屬性,如用戶標識、終端品牌、終端子品牌、終端價格、性別、年齡以及用戶的業(yè)務信息(APP的安裝列表、APP所屬類型、APP所屬子類型、APP的訪問時間和結束時間記錄)。當然,用戶的年齡和性別信息只在訓練集中存在,在預測集中是目標預測結果。本次研究收集了近73 000名Android用戶的基本屬性和業(yè)務信息,其中有5萬名用戶提供了性別和年齡信息,其中男性用戶32 324人(占64.6%),女性用戶17 676人(占35.4%)。
表1和表2展示了智能網管平臺采集到的用戶基本屬性和業(yè)務信息,在后續(xù)的流程中,將用這些數據去訓練預測模型。
圖2 用戶年齡及性別預測算法的整體流程框架
表1 用戶基本屬性
表2 用戶業(yè)務信息
特征工程是機器學習研究課題中最重要的部分。在這一過程中需要找到最能反映分類本質的特征來完成原始數據的分類工作??傊卣鞴こ痰难芯渴欠窬?,會直接影響到模型的預測性能。因此,首先對有5萬用戶的訓練數據集進行大數據挖掘分析。
將男性和女性用戶分別表示為1和2,同時,將每個用戶群體的年齡按10年為一個段進行劃分。例如,在25~30組的使用者會在年齡特征中以3表示,如表3所示。
通過對用戶基本屬性以及業(yè)務信息進行分析,發(fā)現了不同性別和不同年齡段對終端品牌的傾向分布規(guī)律,分別如圖3和圖4所示。從圖3可以看出華為、小米、三星占領了安卓智能手機的主要市場份額,其中,使用小米手機的男女性別占比分別為20.5%和18.7%。從圖4可以看出對于1~5年齡組的用戶來說,小米、三星品牌呈現“齊頭并進”的趨勢,而8~10年齡組又呈現出“反轉”的走勢,這主要是受樣本數量的影響。
接下來對用戶APP安裝列表進行了分析,不同性別安裝APP類型的分布情況如圖5所示。對于圖5中的男性用戶來說,最受歡迎的3類應用是社交、購物和應用管理。而對于圖5的女性用戶而言,社交、購物和健康類APP深受關注。當然,這種市場規(guī)律的分布是由不同的生活習慣、思維方式所決定的。
表3 年齡、性別的分組映射關系表
圖3 不同性別對終端品牌的傾向性分析
圖4 不同年齡對終端品牌的傾向性分析
圖5 不同性別對APP類型的傾向性分析
本文研究了包括GBDT、XGBOOST和LightGBM 3種最常用的機器學習算法的區(qū)別和特點,通過比較預測精度和復雜度,最終選擇了LightGBM作為整個模型的核心算法,并通過Python實現數據處理和模型訓練。其中,Python中的LightGBM參數設置如表4所示。
表4 LightGBM的參數設置
在此步驟中,采用交叉驗證的方式來優(yōu)化LightGBM算法迭代分類過程中特征間的不同權重情況。將訓練數據集分為5份,其中的1份用于模型訓練,其余4份數據用于驗證模型精度。
為了明確模型訓練后的精準性,采用損失函數評估其分類精度。損失函數如式(1)所示。
其中,N是預測集中的用戶數,j是按性別和年齡劃分的不同用戶組數,yij是一個布爾值,表示用戶是否屬于這一個年齡—性別組,pij是由模型計算出的該用戶屬于這一年齡—性別組的概率。在模型訓練過程中,通過損失函數計算出該次訓練的分類精度。
本文對實際用戶的基本屬性和業(yè)務信息等數據進行了分析挖掘,提出了一套基于機器學習算法的用戶年齡及性別的預測方法,并通過Python數據挖掘工具實現整體流程。通過調用Sklearn工具包中的機器學習模型,對比不同繼承算法下的模型的精準性,結果如圖6所示。
圖6 不同集成算法下模型精準性的差異
從圖6可以看出,整體模型算法的精準性將隨著特征的不斷積累而得以提升,而且圖5所列舉的特征都是對分類有增益的,對結果有干擾的特征已經被排除。通過不斷的特征迭代訓練,使用LightGBM算法的最佳損失函數可以控制在2.78左右,是整個研究過程中能達到的最佳結果。
本文提出了一種基于大數據分析和機器學習算法的用戶性別和年齡的預測方法。該算法框架基于集成算法對移動用戶的年齡和性別進行預測,最佳結果可以將損失函數控制在2.78左右。同時,如果在后續(xù)的研究中引入更多、更豐富的數據,整體模型的精準性還可以進一步提升。該模型算法可以豐富用戶的標簽信息,不僅可以幫助互聯網公司了解用戶的行為特征,迭代開發(fā)產品,還可以幫助企業(yè)提高廣告投放的精準度,從而節(jié)約廣告投資成本。