魯 涔
中國電信股份有限公司江蘇分公司
用戶性別可細分為自然性別和互聯網使用行為性別兩種。自然性別是指用戶的實際性別,一般可通過入網實名制身份證獲得。該標簽只需要從相應的表中抽取數據即可,加工起來較為方便。用戶互聯網使用行為性別是指用戶使用手機的性別取向。例如,一位身份證性別為男性的用戶,可能經常使用美拍類APP、教育類APP,那么這位用戶的互聯網使用行為性別可能是女性。目前國內有基于用戶APP類型、打開APP的頻率,及網址關鍵詞統計匯總后進行GBDT迭代決策樹的預測性別模型,但數據多樣性不足,缺乏運營商特有的多維度特征,如終端信息、套餐信息、上網行為信息等。
因此本研究通過對運營商多樣性數據進行沉淀和梳理,利用智能手機用戶使用APP數據對用戶的性別進行預測,明晰移動網絡背后用戶的性別屬性,助力企業精準營銷、人口政策分析、景區人流特征、用戶畫像、客戶關懷話術用語等工作。
通過抽取整合單天翼用戶的基本信息、終端信息、套餐信息、APP信息、微信公眾號信息和行為信息,構造分析所需要的基礎數據寬表。寬表數據字段如表1所示。

表1 單天翼用戶特征分類表
在最簡單的情況下,采用專家經驗if else 判斷(一棵樹)即可。但如果預測結果與眾多因素有關,每一個特征的權重又不盡相同。如何把這些特征的權重合理的找出來?XGBoost正是這樣一種算法,以分類回歸樹(CART樹)進行組合,由多個相關聯的樹聯合決策。這樣集成學習方法是指將多個學習模型組合,以獲得更好的效果,使組合后的模型具有更強的泛化能力。在模型訓練中,參數的調整固然重要,但特征的辨識度更加重要,數據和特征決定了機器學習的上限,而模型和算法則是逼近上限而已。好的特征工程以及數據集才會影響模型本質的結果。
分析思路:單天翼客戶名下有且僅有一個天翼用戶,該天翼用戶所屬的客戶性別可認為是其真實的性別,本次分析建立在單天翼用戶的基礎上。
目標用戶:2021年5月某市在網單天翼用戶(剔除客戶性別為空的用戶共527984戶)
特征選擇:通過初步的數據探索,發現以下三個因素對識別用戶性別的效果比較好,男性和女性的區分度比較大。
(1)女性APP訪問個數、次數。通過分析目標用戶的訪問的女性APP信息發現,女性用戶三個月的訪問量是男性的4倍(1015:266),且訪問過女性APP的用戶中,女性比例明顯高于男性,如圖1所示。(2)體育類APP訪問個數、次數。(3)男性平均每戶有2個體育類APP,三個月的訪問量達到了872次,而女性平均每戶只有0.8個,三個月的訪問量也僅有86次,均遠低于男性。說明男性相比女性偏好體育類APP。(4)拍照類APP訪問個數、次數。與上面相反,女性平均每戶有7.7個拍照類APP,三個月訪問量達到263次,相比之下男性平均每戶只有4.4個,三個月的訪問次數僅有87次,不足女性的三分之一。說明女性比男性偏好拍照類APP。

圖1 TOP10女性APP的用戶性別比例

?
數據預處理方法可以大致分為四類:數據清理、數據集成、數據變換和數據規約。模型的輸入一般對數據有要求,需要進行預處理,以下是本文構建的模型對字段進行的處理:
數據清理(data cleaning) 的主要思想是通過填補缺失值、光滑噪聲數據,平滑或刪除離群點,并解決數據的不一致性來“清理“數據。如果用戶認為數據是臟亂的,他們不太會相信基于這些數據的挖掘結果,即輸出的結果是不可靠的。如表2所示。

表2 數據清洗說明
數據歸約技術可以用得到數據集的歸約表示,它小得多,但仍接近地保持原數據的完整性。這樣,在歸約后的數據集上挖掘將更有效,并產生相同(或幾乎相同)的分析結果。如表3所示。

表3 數據約束說明
數據變換包括對數據進行規范化,離散化,稀疏化處理,達到適用于挖掘的目的。如表4所示。

表4 數據轉換說明
建模字段篩選如表5所示。

表5 建模字段篩選
XGBoost是boosting算法的其中一種。Boosting算法的思想是將許多弱分類器集成在一起形成一個強分類器。因為XGBoost是一種提升樹模型,所以它是將許多樹模型集成在一起,形成一個很強的分類器。而所用到的樹模型則是CART回歸樹模型。該算法思想就是不斷地添加樹,不斷地進行特征分裂來生長一棵樹,每次添加一個樹,其實是學習一個新函數,去擬合上次預測的殘差。當訓練完成得到k棵樹,要預測一個樣本的分數,其實就是根據這個樣本的特征,在每棵樹中會落到對應的一個葉子節點,每個葉子節點就對應一個分數,最后只需要將每棵樹對應的分數加起來就是該樣本的預測值。
XGBoost使用了和CART回歸樹一樣的想法,利用貪婪算法,遍歷所有特征的所有特征劃分點,不同的是使用上式目標函數值作為評價函數。具體做法就是分裂后的目標函數值比單子葉子節點的目標函數的增益,同時為了限制樹生長過深,還加了個閾值,只有當增益大于該閾值才進行分裂。同時可以設置樹的最大深度、當樣本權重和小于設定閾值時停止生長去防止過擬合。
XGBoost是大規模并行boosted tree的工具,它是目前最快最好的開源boosted tree工具包,比常見的工具包快10倍以上。在數據科學方面,有大量kaggle選手選用它進行數據挖掘比賽。在工業界規模方面,xgboost的分布式版本有廣泛的可移植性,支持在YARN, MPI, Sungrid Engine等各個平臺上面運行,并且保留了單機并行版本的各種優化,使得它可以很好地解決于工業界規模的問題。
目標用戶共527984條數據,將其中的395988(四分之三)作為訓練集,其他的131996作為測試集進行驗證。
通過構建的模型對測試集進行性別預測,得到的模型效果如表6所示。

表6 檢測樣本的預測結果

表6 模型效果
準確率=預測正確的用戶數/實際性別(男性或女性)用戶數
召回率=預測正確的用戶數/預測性別(男性或女性)用戶數
該方案在江蘇電信屬首創,以公司客戶服務及客戶經營分析畫像的需求和痛點為本,創新地構建了手機用戶真實使用性別識別的新思路,解決用戶畫像男女數據不全、不準確的問題。通過數據挖掘完成這項工作,極大地解放人力,提升效率。在實際使用中,收到良好的反饋效果。運用互聯網思維,借助機器學習技術,充分挖掘企業數據的價值和作用,開辟了一條數據探索新航道。
本文研究還有待提升的空間:此方案的正樣本來自于單天翼樣本量的男女性別情況,后期將著手于海量的語音文件分析,通過機器學習的方法對聲音文件進行特征提取、分類建模訓練,進行男女音頻樣本的識別,補充單天翼樣本量的不足之處,增加更多正樣本量進行訓練,以此完善本方案。