謝日敏 方雨桐
(1. 福建商學(xué)院 信息工程學(xué)院, 福州 350012; 2. 福州大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院, 福州 350108)
到網(wǎng)上購(gòu)物逐漸成為人們的一種生活常態(tài),有關(guān)數(shù)據(jù)因此而爆炸式的增長(zhǎng),但個(gè)體的選擇處理能力有限,因此需要有定制化的推薦系統(tǒng)。從電商角度考慮,要提升推薦系統(tǒng)的效能,首先便需要從與消費(fèi)者相關(guān)的海量數(shù)據(jù)中洞悉其消費(fèi)需求,科學(xué)預(yù)測(cè)消費(fèi)者的購(gòu)買(mǎi)意向。為了提高預(yù)測(cè)的準(zhǔn)確性,則需要深入挖掘用戶(hù)消費(fèi)行為特征,并不斷優(yōu)化數(shù)據(jù)分析模型。
有關(guān)研究表明,用戶(hù)的有效搜索方式及對(duì)搜索結(jié)果的多次瀏覽,用戶(hù)的購(gòu)物車(chē)操作情況,用戶(hù)的點(diǎn)擊流數(shù)據(jù),這些都能反映用戶(hù)的購(gòu)買(mǎi)意向[1-2]。在分析預(yù)測(cè)時(shí),應(yīng)綜合考慮這些因素。在模型優(yōu)化方面,已有許多研究成果。比如:通過(guò)融合多個(gè)基礎(chǔ)算法來(lái)提高算法的泛化能力和預(yù)測(cè)效率[3];針對(duì)用戶(hù)購(gòu)買(mǎi)周期和頻次,通過(guò)調(diào)整模型訓(xùn)練集以及權(quán)重設(shè)置,提高模型強(qiáng)化問(wèn)題的針對(duì)性,從而獲得有效的預(yù)測(cè)結(jié)果[4];將SMOTE和隨機(jī)森林算法相結(jié)合,預(yù)測(cè)用戶(hù)可能存在的重復(fù)購(gòu)買(mǎi)問(wèn)題[5];還有利用潛在因子的選擇模型(LF-CM),分析用戶(hù)購(gòu)買(mǎi)行為偏好[6]。本次研究,我們將嘗試采用邏輯回歸、決策樹(shù)和XGBoost模型作為基學(xué)習(xí)器輸入,再以隨機(jī)森林模型作為次學(xué)習(xí)器進(jìn)行堆疊,從而形成一種組合模型,來(lái)對(duì)用戶(hù)購(gòu)買(mǎi)行為進(jìn)行預(yù)測(cè)。
原始數(shù)據(jù)集為京東商城提供的2016年2月至4月的真實(shí)用戶(hù)在線(xiàn)數(shù)據(jù)。原始數(shù)據(jù)集中,數(shù)據(jù)類(lèi)型各異,數(shù)據(jù)質(zhì)量參差不齊。為了提高數(shù)據(jù)預(yù)測(cè)準(zhǔn)確性,降低模型的誤差,發(fā)現(xiàn)在線(xiàn)用戶(hù)有價(jià)值的數(shù)據(jù),需將原始數(shù)據(jù)進(jìn)行預(yù)處理。數(shù)據(jù)預(yù)處理流程[7]如圖1所示。
圖1 數(shù)據(jù)預(yù)處理流程
第一,基于電商行業(yè)的業(yè)務(wù)規(guī)則與行業(yè)標(biāo)準(zhǔn),對(duì)原始數(shù)據(jù)集的基本信息進(jìn)行處理,并根據(jù)數(shù)據(jù)類(lèi)型、有效信息區(qū)間劃定和異常數(shù)據(jù)判斷等信息,對(duì)數(shù)據(jù)集進(jìn)行清洗。
第二,為便于構(gòu)建模型,對(duì)原始數(shù)據(jù)集的部分特征進(jìn)行進(jìn)一步變換。
第三,利用滑窗技術(shù)構(gòu)造累積量特征。數(shù)據(jù)集中包含3個(gè)月的用戶(hù)行為數(shù)據(jù),考慮訓(xùn)練集和預(yù)測(cè)集的劃分,將累計(jì)最長(zhǎng)時(shí)間區(qū)間設(shè)置為30 d。參考TCP協(xié)議中滑動(dòng)窗口的概念,按照3、5、7、10、15、21、30 d的時(shí)間間隔動(dòng)態(tài)統(tǒng)計(jì)構(gòu)造累積量特征,比如3日內(nèi)用戶(hù)購(gòu)買(mǎi)計(jì)數(shù)字段、5日內(nèi)用戶(hù)購(gòu)買(mǎi)計(jì)數(shù)字段、3日內(nèi)用戶(hù)點(diǎn)擊計(jì)數(shù)字段等。在此基礎(chǔ)上,統(tǒng)計(jì)用戶(hù)各項(xiàng)行為的轉(zhuǎn)化率,生成用戶(hù)3日點(diǎn)擊購(gòu)買(mǎi)轉(zhuǎn)化率、5日瀏覽購(gòu)買(mǎi)轉(zhuǎn)化率這類(lèi)特征,以滿(mǎn)足時(shí)序數(shù)據(jù)信息挖掘需求。同時(shí)將絕對(duì)數(shù)據(jù)規(guī)約,避免單位范圍不同等原因而造成不可比現(xiàn)象。
第四,對(duì)數(shù)據(jù)集進(jìn)行篩選。以業(yè)務(wù)邏輯作為重要參考因素,篩除冗余屬性或一些對(duì)分類(lèi)無(wú)意義的屬性,選出最終進(jìn)入模型的特征集。
集成學(xué)習(xí)是一種博采眾長(zhǎng)的學(xué)習(xí)思想,其核心是通過(guò)融合數(shù)個(gè)弱學(xué)習(xí)器,構(gòu)建出一個(gè)強(qiáng)學(xué)習(xí)器,以提升模型的學(xué)習(xí)和泛化能力。在實(shí)際應(yīng)用中,若使用單個(gè)學(xué)習(xí)器,其平均性能存在一定的劣勢(shì),數(shù)據(jù)源質(zhì)量對(duì)其影響較大,而利用多個(gè)學(xué)習(xí)器之間的相互作用,則可以取長(zhǎng)補(bǔ)短。集成學(xué)習(xí)就是整合多個(gè)模型來(lái)提高機(jī)器學(xué)習(xí)能力的過(guò)程。集成學(xué)習(xí)通常分為3類(lèi)方法:套袋法(Bagging),用于減少方差;增強(qiáng)法(Boosting),用于減少偏差;堆疊法(Stacking),用于提升預(yù)測(cè)性能。集成學(xué)習(xí)中,所有個(gè)體學(xué)習(xí)器歸屬于同一種類(lèi),即為同質(zhì)集成;個(gè)體學(xué)習(xí)器歸屬于不完全相同的種類(lèi),即為異質(zhì)集成。
我們選擇采用堆疊法的集成學(xué)習(xí),它屬于異質(zhì)集成。如圖2所示,在這個(gè)框架中,將單個(gè)模型視為基學(xué)習(xí)器;用于綜合多個(gè)基學(xué)習(xí)器的某一模型可稱(chēng)為次學(xué)習(xí)器?;舅枷胧牵簩⒊跏紨?shù)據(jù)集作為第一層分類(lèi)器的訓(xùn)練數(shù)據(jù),即有多個(gè)基學(xué)習(xí)器;而后將第一層基學(xué)習(xí)器的輸出作為第二層學(xué)習(xí)器的輸入,即新的數(shù)據(jù)集。原始目標(biāo)變量仍被作為新數(shù)據(jù)集目標(biāo)變量。堆疊法集成學(xué)習(xí)模型,實(shí)質(zhì)是進(jìn)行深度化的泛化,利用次學(xué)習(xí)器來(lái)取代增強(qiáng)法和套袋法,綜合降低偏差和方差。
圖2 堆疊法集成學(xué)習(xí)模型原理
為提升整體模型的預(yù)測(cè)準(zhǔn)確性,在堆疊法集成學(xué)習(xí)組合模型的第一層基學(xué)習(xí)器選擇上,主要考慮個(gè)體學(xué)習(xí)能力較強(qiáng)的學(xué)習(xí)器,且要求多個(gè)模型間具有一定的差異性。因此,選擇采用了XGBoost、決策樹(shù)和邏輯回歸。XGBoost[9],采用提升樹(shù)的集成學(xué)習(xí)方式,具有優(yōu)秀的學(xué)習(xí)能力,在各個(gè)領(lǐng)域應(yīng)用廣泛。決策樹(shù)[10],簡(jiǎn)單直觀,輸出結(jié)果利于解讀,且對(duì)于異常點(diǎn)的容錯(cuò)能力強(qiáng),健壯性強(qiáng)。邏輯回歸[11],參考神經(jīng)網(wǎng)絡(luò)的激活函數(shù),將所有數(shù)據(jù)進(jìn)行非線(xiàn)性映射,削弱分類(lèi)決策影響度極小的數(shù)據(jù),并且計(jì)算的代價(jià)不高。第二層的次學(xué)習(xí)器,選擇采用隨機(jī)森林算法。隨著集成數(shù)目的增加,隨機(jī)森林往往具有較強(qiáng)的泛化能力。次學(xué)習(xí)器具有強(qiáng)泛化能力,可修正多個(gè)基學(xué)習(xí)器的訓(xùn)練集偏差,并以集合方式防止過(guò)擬合。最終構(gòu)建的組合模型如圖3所示。
圖3 堆疊法集成學(xué)習(xí)的組合模型
針對(duì)京東商城提供的用戶(hù)在線(xiàn)數(shù)據(jù)集,利用堆疊法集成學(xué)習(xí)算法,分析預(yù)測(cè)用戶(hù)購(gòu)買(mǎi)意向。分析流程如圖4所示。
圖4 基于堆疊法集成學(xué)習(xí)的預(yù)測(cè)分析流程
分析流程中的特征工程,是指基于一定業(yè)務(wù)背景,利用相關(guān)領(lǐng)域知識(shí),將原始數(shù)據(jù)進(jìn)行轉(zhuǎn)化處理的過(guò)程,以便數(shù)據(jù)挖掘算法達(dá)到最佳效果。依據(jù)京東商城提供的用戶(hù)線(xiàn)上行為數(shù)據(jù),結(jié)合分析經(jīng)驗(yàn)與業(yè)務(wù)理解,利用滑窗處理時(shí)序數(shù)據(jù)集,從基礎(chǔ)特征,用戶(hù)和行為組合特征,商品和行為組合特征,用戶(hù)、商品和行為的組合特征等方面進(jìn)行特征構(gòu)建,并且根據(jù)模型需要對(duì)特征進(jìn)行篩選。特征構(gòu)建結(jié)果統(tǒng)計(jì):基礎(chǔ)特征有36個(gè),用戶(hù)和行為組合特征有124個(gè),商品和行為組合特征有40個(gè),用戶(hù)、商品和行為組合特征有50個(gè)。
考慮到數(shù)據(jù)集中存在數(shù)據(jù)偏斜的現(xiàn)象,客戶(hù)(電商)也更關(guān)注用戶(hù)有明確購(gòu)買(mǎi)意向的行為特征,現(xiàn)以準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)、F值(F-Measure)作為用戶(hù)購(gòu)買(mǎi)意向的評(píng)估指標(biāo),實(shí)現(xiàn)對(duì)正樣本的綜合預(yù)測(cè)。
分別使用邏輯回歸、決策樹(shù)和XGBoost進(jìn)行單個(gè)模型性能度量。結(jié)果顯示,邏輯回歸模型預(yù)測(cè)用戶(hù)購(gòu)買(mǎi)行為的準(zhǔn)確率最高,但就綜合評(píng)價(jià)指標(biāo)F值來(lái)說(shuō),XGBoost模型在單個(gè)模型性能度量中表現(xiàn)最好(見(jiàn)表1)。本次實(shí)驗(yàn)中,影響邏輯回歸模型預(yù)測(cè)效果的主要原因是特征高達(dá)250項(xiàng),特征項(xiàng)中冗余程度較高,數(shù)據(jù)集呈現(xiàn)不平衡現(xiàn)象,且多為累計(jì)型數(shù)據(jù)。在決策樹(shù)模型中,復(fù)雜的決策樹(shù)結(jié)構(gòu)和數(shù)據(jù)集數(shù)據(jù)不平衡,使得過(guò)擬合現(xiàn)象嚴(yán)重,不利于提升泛化性能。作為配置了提升樹(shù)集成學(xué)習(xí)方法的XGBoost模型,通過(guò)應(yīng)用損失函數(shù)和正則化策略來(lái)優(yōu)化目標(biāo)函數(shù),更能防止模型過(guò)擬合。這3個(gè)模型在評(píng)價(jià)指標(biāo)上各有優(yōu)劣,但預(yù)測(cè)效果整體不夠出色。
利用堆疊法集成學(xué)習(xí)模型融合技術(shù),將邏輯回歸、決策樹(shù)和XGBoost模型作為基學(xué)習(xí)器輸入,以隨機(jī)森林模型作為次學(xué)習(xí)器進(jìn)行堆疊。在本次實(shí)驗(yàn)中,雖然基學(xué)習(xí)器在第一層的學(xué)習(xí)效果近似于單個(gè)模型的預(yù)測(cè)結(jié)果,但進(jìn)入第二層學(xué)習(xí)器進(jìn)行分析運(yùn)算后,結(jié)果有很大的進(jìn)步(見(jiàn)表1)。經(jīng)過(guò)模型融合后,基于堆疊法集成學(xué)習(xí)組合模型的預(yù)測(cè)效果會(huì)更好。
表1 模型的性能對(duì)比
為提高對(duì)用戶(hù)購(gòu)買(mǎi)意向預(yù)測(cè)的準(zhǔn)確率,為電子商務(wù)平臺(tái)的推薦系統(tǒng)提供更為準(zhǔn)確的數(shù)據(jù)支撐,我們按堆疊法集成學(xué)習(xí)的思路構(gòu)建組合模型,依據(jù)京東商城提供的用戶(hù)在線(xiàn)數(shù)據(jù)集,預(yù)測(cè)分析了用戶(hù)的購(gòu)買(mǎi)意向。首先利用滑窗技術(shù)構(gòu)造提取用于預(yù)測(cè)用戶(hù)購(gòu)買(mǎi)意向的特征,然后使用邏輯回歸、決策樹(shù)、XGBoost和集成學(xué)習(xí)組合模型進(jìn)行用戶(hù)購(gòu)買(mǎi)行為預(yù)測(cè)。結(jié)果表明,運(yùn)用集成學(xué)習(xí)組合模型進(jìn)行預(yù)測(cè),其準(zhǔn)確性明顯優(yōu)于其他算法。