朱鵬軍
摘要:用戶畫像是數(shù)據(jù)挖掘領(lǐng)域非常重要的研究領(lǐng)域,該文通過(guò)對(duì)工業(yè)用戶行為數(shù)據(jù)的分析與研究,提出了一種用戶特征分析方法,通過(guò)結(jié)合集成學(xué)習(xí)中的隨機(jī)森林方法,達(dá)到非常好的預(yù)測(cè)結(jié)果!與邏輯斯回歸、支持向量機(jī)、梯度提升決策樹(shù)等方法的進(jìn)行對(duì)比,本方法無(wú)論是在預(yù)測(cè)效果上,還是在訓(xùn)練時(shí)間上,都具有壓倒性的優(yōu)勢(shì)。
關(guān)鍵詞:機(jī)器學(xué)習(xí);用戶畫像;性別預(yù)測(cè)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)02-0158-03
隨著大數(shù)據(jù)時(shí)代到來(lái),產(chǎn)生了越來(lái)越多的數(shù)據(jù),這些看上去雜亂無(wú)章的數(shù)據(jù),工程師可以通過(guò)利用機(jī)器學(xué)習(xí)算法挖掘出這些數(shù)據(jù)存在的內(nèi)在規(guī)律。將這項(xiàng)技術(shù)應(yīng)用工業(yè)場(chǎng)景中去,可以對(duì)用戶進(jìn)行精準(zhǔn)的推薦和營(yíng)銷,進(jìn)而可以產(chǎn)生極大的經(jīng)濟(jì)效益!
用戶畫像通??梢詭椭髽I(yè)進(jìn)行精細(xì)化運(yùn)作[1],而傳統(tǒng)的方法常常通用標(biāo)簽來(lái)對(duì)用戶進(jìn)行標(biāo)記,隨著使用用戶越來(lái)越多,用戶的行為也越來(lái)越多樣化,傳統(tǒng)的方法在準(zhǔn)確率差的弊端越來(lái)越明顯。例如,通過(guò)對(duì)某個(gè)流行游戲的性別比例、年齡分布等進(jìn)行可視化,可以為企業(yè)分析決策提供理論依據(jù),轉(zhuǎn)化為實(shí)際價(jià)值和效益。
本文研究的任務(wù)屬于人工智能人物畫像中的性別預(yù)測(cè),即通過(guò)統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法給未帶性別標(biāo)簽的數(shù)據(jù)打上性別標(biāo)簽。本文的創(chuàng)新與貢獻(xiàn)有兩個(gè):第一、使用工業(yè)數(shù)據(jù)進(jìn)行建模挖掘,這些數(shù)據(jù)是通過(guò)爬取而來(lái),將該數(shù)據(jù)集進(jìn)行脫敏處理,供學(xué)術(shù)界進(jìn)行研究使用。第二、根據(jù)數(shù)據(jù)的特點(diǎn),提出一種新的行為特征表征思路,即將用戶行為特征離散化處理,映射到高維空間,最后結(jié)合集成學(xué)習(xí)中的隨機(jī)森林方法進(jìn)行建模,取得了非常好的效果!由于面對(duì)的是真實(shí)的工業(yè)數(shù)據(jù),更加貼近實(shí)際,故可以將該方法應(yīng)用到類似的工業(yè)場(chǎng)景中去。
1 概述
本研究任務(wù)在機(jī)器學(xué)習(xí)領(lǐng)域中,該任務(wù)屬于分類任務(wù)。常見(jiàn)的分類算法[2]有感知機(jī)、邏輯斯回歸(LR)、支持向量機(jī)(SVM)、決策樹(shù)(DT)等等。此外,還有一類綜合了幾種弱分類器的集成方法[3],它可以將多個(gè)基學(xué)習(xí)器進(jìn)行線性組合,進(jìn)而構(gòu)建出一個(gè)強(qiáng)大的學(xué)習(xí)器。最常見(jiàn)的集成學(xué)習(xí)方法有Bagging和Boosting方法,Bagging的代表方法有隨機(jī)森林(RF),Boosting的常見(jiàn)方法有Adaboost、梯度提升決策樹(shù)(GBDT)等。
用戶行為特征具有以下特點(diǎn):第一、數(shù)據(jù)分布不均勻。有些數(shù)據(jù)極度不均衡,導(dǎo)致無(wú)法直接應(yīng)用到模型中去。第二、數(shù)據(jù)質(zhì)量差,數(shù)據(jù)常常有定性和定量特征。。在面對(duì)這種特點(diǎn)的工業(yè)數(shù)據(jù)時(shí),我們思路常常是將基于用戶來(lái)進(jìn)行數(shù)據(jù)挖掘分析,但本文實(shí)踐表明,這種方法取得的效果并不好!本文的研究思路是將用戶數(shù)據(jù)特征離散化處理,即在處理數(shù)據(jù)時(shí)不再基于每一個(gè)用戶所有特征來(lái)進(jìn)行用戶挖掘,而是基于每一條用戶的行為特征來(lái)進(jìn)行處理。這樣做的好處可以將數(shù)據(jù)從線性不可分轉(zhuǎn)化為線性可分。
在機(jī)器學(xué)習(xí)過(guò)程中,特征分為定性特征和定量特征。定性特征和定量特征都是能在某種程度上反應(yīng)用戶的行為特性及規(guī)律,它們的區(qū)別在于是否是數(shù)值型。定性特征常常是一個(gè)字符串,所有定性特征可看作為一個(gè)標(biāo)記符來(lái)處理。對(duì)定性特征處理最常用的方法是獨(dú)熱編碼,又稱啞編碼。定量特征的處理往往沒(méi)有這么復(fù)雜,最常見(jiàn)的處理就是進(jìn)行標(biāo)準(zhǔn)化,或進(jìn)行縮減處理。
定性特征和定量特征都是用戶的行為特征,但不是所有用戶特征對(duì)于預(yù)測(cè)性別都有幫助:有的特征在模型時(shí)所起的作用很小,有時(shí)還起到負(fù)面的作用,例如用戶各種行為的ID號(hào)。這時(shí)就需要從這些特征中找出重要的特征,這用到特就會(huì)用到特征降維,如組成成分分析,特征重要性排序等方法。
2 模型訓(xùn)練
2.1 建模思路
在對(duì)用戶特征處理之后,如何對(duì)這些數(shù)據(jù)進(jìn)行建模,是整個(gè)研究的核心組件之一,而建模就是找出這些數(shù)據(jù)內(nèi)在規(guī)律。本文在選用模型時(shí),使用了機(jī)器學(xué)習(xí)中常見(jiàn)的算法,做了兩組對(duì)比實(shí)驗(yàn):第一、基于用戶所有的行為特征進(jìn)行建模。第二、基于用戶的每一條行為特征進(jìn)行建模。
基于用戶所有的行為特征來(lái)建模,需要將數(shù)據(jù)集進(jìn)行合并整理。從邏輯上來(lái)講,基于用戶所有的行為特征相當(dāng)于將一個(gè)時(shí)間窗內(nèi)的所有用戶行為特征整合在一起,通過(guò)這種方式,能夠更加直觀的對(duì)人物表征,并且這個(gè)建模方法更符合人們的正常邏輯思維。
2.2 建模方法
由于本研究的問(wèn)題屬于分類問(wèn)題,所以下面就使用一些常見(jiàn)的分類方法進(jìn)行實(shí)現(xiàn)研究。
2.2.1 邏輯斯回歸
邏輯斯回歸[3]是個(gè)常見(jiàn)的分類方法,良好的性能以及訓(xùn)練效率,使得它成為一個(gè)非常受歡迎的分類方法。假設(shè)帶有標(biāo)簽訓(xùn)練數(shù)據(jù)集[T={(x1,y1),(x2,y2),...,(xn,yn)}]:
[f(x)=g(wTx)] (1)
[g(z)=1/(1+exp(-z))] (2)
在式1中,w和x分別是參數(shù)和特征向量,x是已知的。在式2中,g(z)是sigmoid函數(shù)。邏輯斯回歸是的損失函數(shù)L([θ])是對(duì)數(shù)損失函數(shù),通過(guò)使用隨機(jī)梯度下降法作為最優(yōu)化方法求出參數(shù),如式3
[L(θ)=i=1nyi(θTxi)-inlog(1+exp(θTxi))] (3)
2.2.2 支持向量機(jī)
支持向量機(jī)[4]是也工業(yè)界常用的分類算法,它是定義在特征空間上的間隔最大化的分類器。假設(shè)帶有標(biāo)簽訓(xùn)練數(shù)據(jù)集[T={(x1,y1),(x2,y2),...,(xn,yn)}]。SVM的優(yōu)化目標(biāo)就是分離超平面的間隔最大化,其目標(biāo)函數(shù)即為式(4):
[minw,b 12||w||2] (4)
[s.t yi(w.xi+b)-1≥0, i=1,2...N] (5)
在式(4)中,w和x分別是參數(shù)和特征向量,x是已知的。在求解上式的參數(shù)時(shí),可以通過(guò)應(yīng)用拉格朗日對(duì)偶性進(jìn)行平滑處理,進(jìn)而得到原始問(wèn)題的最優(yōu)解。endprint
2.2.3 梯度提升決策樹(shù)
梯度提升決策樹(shù)[5]是集成學(xué)習(xí)中boosting族的算法,在分類和回歸中應(yīng)用極廣,其原理是計(jì)算損失函數(shù)的負(fù)梯度在當(dāng)前模型的值,將它作為殘差的估計(jì)。梯度提升方法在迭代優(yōu)化過(guò)程中采用了梯度計(jì)算而非加權(quán)計(jì)算,通過(guò)在每一步的殘差減少的梯度方向上訓(xùn)練新的基學(xué)習(xí)器,最后通過(guò)集成得到強(qiáng)學(xué)習(xí)器。GBDT的預(yù)測(cè)函數(shù)如式(6):
[F(x;P)=F(x;{βm,βm}M1)=m=1Mβmh(x;αm)] (6)
在上式中,[F(x;P)]表示以P為參數(shù)的x的函數(shù),即我們的預(yù)測(cè)函數(shù)。GBDT模型是由每輪迭代的弱分類器線性組合而來(lái),[β]表示每個(gè)模型的權(quán)重,[α]表示模型里面的參數(shù)。該模型的損失函數(shù),即為式(8):
[P*=argmin(Φ(P))] (7)
[Φ(P)=Ex,yL(y,F(xiàn)(x;P))] (8)
上式[Φ(P)]表示P的似然函數(shù),即[F(x;P)]的損失函數(shù)。另外求解參數(shù)的優(yōu)化方法為梯度下降法。GBDT算法幾乎適用于所有的回歸問(wèn)題,比較適用于二分類問(wèn)題。
2.2.4 隨機(jī)森林
隨機(jī)森林[6]是由多棵決策樹(shù)組成的集成分類器[{h(x,Θk),k=1....}],每一個(gè)棵樹(shù)都是一個(gè)基分類器[h(x,Θk)],各個(gè)分類器之間是相互獨(dú)立的,將每個(gè)基分類器的分類結(jié)果進(jìn)行投票獲取最終的分類結(jié)果。
構(gòu)建隨機(jī)森林的過(guò)程也是逐步構(gòu)建決策的過(guò)程,從原始數(shù)據(jù)集中,進(jìn)行Bootstrap方法進(jìn)行有放回的抽取k個(gè)新的樣本,由此構(gòu)建出一個(gè)決策樹(shù)。將上述步驟不斷的迭代,然后構(gòu)建出m棵樹(shù),進(jìn)而由這些樹(shù)構(gòu)建出隨機(jī)森林[7],如圖1所示。
隨機(jī)森林算法中的隨機(jī)采樣樣本以及隨機(jī)抽取樣本特征,在某種程度上保證了模型的泛化能力。式(9)說(shuō)明了使用多數(shù)投票決策的方式來(lái) 確定最終的分類。
[H(x)=argmaxYi=1kI(hi(x)=Y)] (9)
其中, [H(x)]表示組合分類模型,[hi(x)]是單個(gè)決策樹(shù)分類模型,Y表示輸出變量(或稱目標(biāo)變量)。隨機(jī)森林除了做分類器外,還可以輔助給特征重要性排序和特征選擇[8]。
3 實(shí)驗(yàn)結(jié)果與分析
3.1 數(shù)據(jù)集描述
訓(xùn)練數(shù)據(jù)集有30萬(wàn)條用戶行為數(shù)據(jù),每條數(shù)據(jù)是一個(gè)用戶行為記錄,測(cè)試集有5萬(wàn)條用戶行為數(shù)據(jù)。每個(gè)用戶大約各有7條行為記錄。
在表1中,表頭中,D_i表示用戶設(shè)備的device_id,A_p表示用戶使用的App_name,d_b_n表示device_brand_name,p_n表示用戶所在的省份province_name,n_n表示用戶使用的網(wǎng)絡(luò)。當(dāng)基于每一個(gè)用戶的行為記錄進(jìn)行建模時(shí),需要進(jìn)行合并處理,依據(jù)每個(gè)用戶的devide_id進(jìn)行合并。
3.2 實(shí)驗(yàn)結(jié)果分析
基于用戶行為特征對(duì)用戶的性別進(jìn)行預(yù)測(cè)是一個(gè)二分類問(wèn)題,而對(duì)與二分類問(wèn)題常用的評(píng)價(jià)指標(biāo)是精準(zhǔn)率(P)、召回率(R)[3]。分類器在測(cè)試數(shù)據(jù)集上的預(yù)測(cè)或正確或不正確,四種情況出現(xiàn)的總數(shù)分別記作:
TP:將正類預(yù)測(cè)為正類數(shù);
FN:將正類預(yù)測(cè)為負(fù)類數(shù);
FP:將負(fù)類預(yù)測(cè)為正類數(shù);
TN:將負(fù)類預(yù)測(cè)為負(fù)類數(shù);
P和R代表精準(zhǔn)率和查全率,它們的定義如公式(10-11)所示:
P = TP/(TP+FP) (10)
R = TP/(TP+FN) (11)
另外,F(xiàn)1代表精準(zhǔn)率和召回率的調(diào)和平均數(shù),如公式(12)所示:
F1 = 1/P + 1/R1 (12)
另外,我們使用正確率(acc)來(lái)表示分類器正確分類的樣本數(shù)和總樣本數(shù)之比。
使用以上指標(biāo),分別對(duì)每一個(gè)模型進(jìn)行評(píng)估,下面分別對(duì)兩種不同的特征工程進(jìn)行評(píng)估:(1)首先,用以上評(píng)估指標(biāo)對(duì)用戶所有行為記錄進(jìn)行建模評(píng)估,各項(xiàng)指標(biāo)如表3所示:
從表3可以看出,幾種算法的表現(xiàn)都不是很令人滿意,其中LR和RF的精準(zhǔn)率最高,均比精準(zhǔn)率最低的SVM高了0.2個(gè)百分點(diǎn)左右。召回率最高的是SVM和GBDT模型,說(shuō)明預(yù)測(cè)集中所有男性都被預(yù)測(cè)了出來(lái)。另外,F(xiàn)1和準(zhǔn)確率兩個(gè)指標(biāo)的表現(xiàn)類似,但是總體來(lái)說(shuō),以上常見(jiàn)模型的表現(xiàn)并不能令人感到滿意。
(2) 其次,使用以上評(píng)估指標(biāo)對(duì)用戶每一條行為記錄進(jìn)行建模評(píng)估,各項(xiàng)指標(biāo)如表2所示:
從表2中,相對(duì)于表3,可以看出,各評(píng)估指標(biāo)都有課明顯的提升。其中,隨機(jī)森林算法模型提升效果最為顯著,準(zhǔn)確率提升了29.1%,精準(zhǔn)率提升了26.16%,召回率和F1值也提升了20%左右。
從以上實(shí)驗(yàn)可以看出,使用集成學(xué)習(xí)中的RF方法對(duì)用戶每一條行為記錄進(jìn)行建模,相比其他模型來(lái)講,可以對(duì)用戶的性別進(jìn)行有效的預(yù)測(cè)。該方法可以將若干弱分類器進(jìn)行集成,通過(guò)減小每次迭代的方差提升效果。此外,基于用戶的每一條行為記錄進(jìn)行建模,可以增大某個(gè)特征類別比重。在訓(xùn)練時(shí)間上,隨機(jī)森林的訓(xùn)練時(shí)間最短,效率最高。
4 未來(lái)工作
工業(yè)中的數(shù)據(jù)比較復(fù)雜,雖然在該任務(wù)取得了非常不錯(cuò)的效,但是本文在對(duì)特征的處理上仍然存在著一定的缺點(diǎn):當(dāng)數(shù)據(jù)中的某一列特征的類別非常多時(shí),編碼后特征維度就會(huì)非常大,整個(gè)特征矩陣就會(huì)非常稀疏,在模型訓(xùn)練時(shí)耗內(nèi)存和耗時(shí)非常嚴(yán)重。下一步研究思路是將這些高基數(shù)的特征類別進(jìn)行壓縮,該思路可以有效可降低特征維度。同時(shí),降低訓(xùn)練機(jī)器的內(nèi)存消耗,訓(xùn)練時(shí)間。
參考文獻(xiàn):
[1] 黃文彬,徐山川,吳家輝,等.移動(dòng)用戶畫像構(gòu)建研究[J].現(xiàn)代情報(bào), 2016,36(10):54-61.
[2] 周志華,王玨.機(jī)器學(xué)習(xí)及其應(yīng)用[M].清華大學(xué)出版社,2009.
[3] 李航.統(tǒng)計(jì)學(xué)習(xí)方法[M].清華大學(xué)出版社,2012.
[4] C.Cortes and V.Vapnik. Support vector networks.Machine Learning, 20:1-25, 1995.
[5] Friedman J H. Greedy function approximation: A gradient boosting machine.[J]. Annals of Statistics, 2001, 29(5):1189-1232.
[6] BreimanL.RandomForest[J].Machine Learning,2001, 45:5-32.
[7] 方匡南,吳見(jiàn)彬,朱建平,等.隨機(jī)森林方法研究綜述[J].統(tǒng)計(jì)與信息論壇, 2011, 26(3):32-38.
[8] 姚登舉,楊靜,詹曉娟.基于隨機(jī)森林的特征選擇算法[J].吉林大學(xué)學(xué)報(bào)(工), 2014, 44(1):137-141.endprint