胡靜靜,樊 軍
(新疆大學(xué)機械工程學(xué)院,新疆 烏魯木齊 830047)
隨著互聯(lián)網(wǎng)技術(shù)與電子商務(wù)快速發(fā)展,線上消費越發(fā)普遍,消費者規(guī)模不斷擴大,線上消費平臺存留了海量用戶、商品及用戶-商品交互行為等數(shù)據(jù)[1]。通過這些數(shù)據(jù)分析和預(yù)測用戶的購買行為,可為用戶個性化推薦商品,更快速準(zhǔn)確地滿足用戶對商品的需求,為企業(yè)識別和定位潛在客戶、制定營銷策略、調(diào)節(jié)商品貨量等提供重要參考信息,有效提高企業(yè)效益[2-3]。
用戶購買行為預(yù)測為二元分類任務(wù)[4],即從用戶、商品、用戶-商品交互等數(shù)據(jù)中挖掘出影響購買行為的因素,運用統(tǒng)計學(xué)、機器學(xué)習(xí)等方法提取特征并進(jìn)行特征工程處理,再訓(xùn)練分類模型,調(diào)節(jié)模型參數(shù),用訓(xùn)練好的模型預(yù)測用戶購買行為。作為人工智能領(lǐng)域的典型問題,邏輯回歸(Logistic Regression,LR)[5]、隨機森林(Random Forest,RF)[6]、遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[7]等模型已廣泛用于用戶購買預(yù)測。文獻(xiàn)[8]在提取用戶特征、品牌特征的基礎(chǔ)上添加行為時變特征,采用LR模型預(yù)測用戶購買行為。文獻(xiàn)[9]量化商品和用戶行為數(shù)據(jù)提取靜態(tài)特征,結(jié)合長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)提取行為動態(tài)特征,采用RF模型預(yù)測用戶購買行為。文獻(xiàn)[10]在原有特征群的基礎(chǔ)上提出二次組合特征的構(gòu)建方法,用不同特征組合建立對照檢驗?zāi)P?,?yōu)化了基礎(chǔ)特征群。文獻(xiàn)[11]從用戶、商品、商品品類、用戶-商品交互和行為時間五方面提取特征,使用貝葉斯(Naive Bayes,NB)模型預(yù)測用戶購買行為。文獻(xiàn)[12]從商品、商品類別和用戶行為三方面進(jìn)行特征提取,利用梯度提升決策樹(Gradient Boosting Decision Tree,GDBT)模型預(yù)測用戶購買行為,得到較高的F1值。由此可見,特征和預(yù)測模型不同效果也不同。Stacking 集成模型能結(jié)合不同算法優(yōu)勢提升預(yù)測性能,根據(jù)用戶-商品交互等數(shù)據(jù)構(gòu)造3個特征群,建立了針對此種業(yè)務(wù)場景的特征工程,并提出一種基于Stacking的加權(quán)異質(zhì)集成模型,在真實數(shù)據(jù)集中可得到較高F1值。
首先,對原數(shù)據(jù)集進(jìn)行數(shù)據(jù)清洗、統(tǒng)計分析等預(yù)處理;其次,采用函數(shù)擬合、計數(shù)、加和、均值、比值、二次組合衍生等方法提取靜態(tài)和動態(tài)特征,通過特征工程產(chǎn)生有效子特征集。
再選取5種分類算法分別對子特征集進(jìn)行訓(xùn)練并優(yōu)化算法參數(shù),將其作為基分類器,獲取這5種基分類器的性能排序信息。
最后,將性能排序信息轉(zhuǎn)化為一組約束,加入Stacking集成模型的第二層LPBoost算法[13]中,求解LPBoost算法目標(biāo)規(guī)劃問題得到基分類器更佳組合權(quán)重,構(gòu)建基于Stacking的加權(quán)集成分類預(yù)測模型。選用阿里云天池官方發(fā)布的用戶行為數(shù)據(jù)集進(jìn)行實驗驗證,以精確度、召回率、F1值為評估指標(biāo),實驗結(jié)果表明所提方法優(yōu)于對比方案。
用戶購買預(yù)測的特征工程包括數(shù)據(jù)預(yù)處理、構(gòu)造提取特征、特征縮放、特征編碼及特征選擇部分,每部分都有多種方法。
將原數(shù)據(jù)集整理成以屬性字段為主鍵的數(shù)據(jù)集。根據(jù)樣本中相關(guān)屬性的關(guān)系推理出缺失值,如商品類別屬性缺失而商品屬性存在的樣本可根據(jù)其他樣本推理得到商品類別,如表1所示。刪除缺失數(shù)據(jù)過多的屬性;刪除缺失一半及以上屬性的樣本;其他無法推理得到的屬性缺失時參考其余樣本進(jìn)行人工隨機插補,如表1所示。過濾用戶-商品間存在大量點擊行為卻無或者存在少量收藏、加購物車、購買等行為的非正常數(shù)據(jù),如表2所示。最后,統(tǒng)計分析數(shù)據(jù)集,利用圖表可視化數(shù)據(jù),探索數(shù)據(jù)樣本分布情況及隨時間發(fā)生的變化。
表1 缺失屬性推理實例Tab.1 Examples of Reasoning for Missing Attributes
表2 過濾方法說明Tab.2 Description of Filtration Method
式(1)、式(2)如下:
式中:Click—點擊次數(shù);Buy—購買次數(shù);w、δ根據(jù)具體數(shù)據(jù)集取。
一般原數(shù)據(jù)集的特征維度過低,不能全面、詳細(xì)地描述用戶行為。為得到好的預(yù)測效果,在原始特征的基礎(chǔ)上,利用函數(shù)擬合、計數(shù)、加和、均值、比值、設(shè)置非數(shù)值類別型特征、二次組合衍生等方法進(jìn)一步構(gòu)造出3個特征群,分別為基礎(chǔ)特征群、交互特征群和衍生特征群。在一個周期內(nèi)特征的構(gòu)造方法及所屬,如表3所示。
表3 特征構(gòu)造Tab.3 Feature Construction
對于連續(xù)型特征,單位和值的范圍可能存在差異,導(dǎo)致特征無法在模型中充分表達(dá),需要對其進(jìn)行無量綱化縮放。為使縮放更為魯棒且利于模型收斂,采用標(biāo)準(zhǔn)化縮放方法,如式(3)所示:
定義1:x為數(shù)據(jù)集表示樣本i的特征j:
式中:z—縮放后的特征集;mean—均值;std—標(biāo)準(zhǔn)差。
算法要求數(shù)據(jù)類型是數(shù)值型。對需要離散化的年齡等數(shù)值型特征,采用有監(jiān)督離散中最小描述長度原則(Minimum Description on Length Principle,MDLP)進(jìn)行離散。對無序非數(shù)值型離散特征采用獨熱編碼,有序非數(shù)值型離散特征采用標(biāo)簽編碼。
構(gòu)造出的特征維度過高時須進(jìn)行特征選擇,去除不相關(guān)或冗余特征,從特征集中挑出最優(yōu)特征子集,減少特征數(shù)量,提高模型準(zhǔn)確度并降低模型運行時間。為使特征選擇準(zhǔn)確度高、魯棒性佳且易于進(jìn)行,采用嵌入法(Embedded)中基于樹模型的方法,選擇RF模型進(jìn)行特征選取。
特征工程的整體流程,如圖1所示。
圖1 特征工程Fig.1 Feature Engineering
基于文獻(xiàn)[14],提出一種為Stacking集成模型中基分類器分配更優(yōu)權(quán)重的方法,建立加權(quán)異質(zhì)集成模型,此模型可有效提高預(yù)測效果。
LPBoost算法是推斷基分類器權(quán)重向量的典型方法,通過最大化訓(xùn)練樣本的最小間隔來提高算法的推廣性能。給定一組訓(xùn)練好的基分類器和一個訓(xùn)練(或驗證)集,求解其目標(biāo)規(guī)劃問題即可得到基分類器權(quán)重向量。LPBoost算法的線性規(guī)劃形式,如式(4)所示:
式中:ρ—訓(xùn)練樣本的最小間隔,如式(5)所示:
式中:Lm(m=1,…,M)—基分類器;M—分類器個數(shù);β(m)—基分類器權(quán)重,則βT=[β(1),β(2),…,β(M)]T。xn—訓(xùn)練樣本,yn—樣本類標(biāo),Hnm=Lm(xn),Hn:—所有基分類器對樣本的分類結(jié)果。
為進(jìn)一步賦予Stacking集成模型中基分類器更佳的組合權(quán)重,提取數(shù)據(jù)集上真實可靠的基分類器性能排序信息,性能越佳權(quán)重越大,將此信息轉(zhuǎn)化為一組約束,加入Stacking集成模型的第二層元學(xué)習(xí)器LPBoost算法中,求解目標(biāo)規(guī)劃問題得到更優(yōu)的基分類器組合權(quán)重。構(gòu)建模型的具體流程如下:
(1)采用支持向量機(SVM)、樸素貝葉斯(NB)、C4.5決策樹、邏輯回歸(LR)和隨機森林(RF)算法分別在數(shù)據(jù)集上訓(xùn)練,調(diào)節(jié)算法參數(shù),將其作為基分類器,獲取這5種基分類器在數(shù)據(jù)集上的性能排序信息;
(2)將數(shù)據(jù)集劃分為訓(xùn)練集、驗證集和測試集,令(1)中5種基分類器初始化后依次在訓(xùn)練集上訓(xùn)練并調(diào)節(jié)參數(shù),然后在驗證集上運行訓(xùn)練好的基分類器,每個驗證實例上所有基分類器的分類結(jié)果組成一個新特征向量,由此獲得求解分類器權(quán)重所需的新訓(xùn)練集;
(3)基于(2)中新訓(xùn)練集和訓(xùn)練好的5種基分類器,將(1)中得到的性能排序信息轉(zhuǎn)化為一組約束,加入LPBoost算法中,求解目標(biāo)規(guī)劃問題即可得到5種基分類器更優(yōu)的權(quán)重組合。優(yōu)化式(6)如下:
式中:β(m)—基分類器更優(yōu)權(quán)重,可知L1性能最優(yōu),L5性能最差。
(4)根據(jù)優(yōu)化式(6)的加權(quán)方法建立基于Stacking的加權(quán)異質(zhì)集成模型,對此模型進(jìn)行實驗驗證并與其他集成方法對比。
模型偽代碼如下:
ξ1,ξ2,…,ξM為(1)中提出的支持向量機(SVM)、樸素貝葉斯(NB)、C4.5決策樹、邏輯回歸(LR)和隨機森林(RF)算法,ξ為LPBoost算法,x為特征集。
選用阿里云天池官方發(fā)布的用戶行為數(shù)據(jù)集,此數(shù)據(jù)集為2014年11月18日至2014年12月18日的用戶-商品行為日志,包括用戶在商品全集上的行為數(shù)據(jù)集和商品子集兩部分,如表4、表5所示。抽取8000名用戶在商品全集上的行為數(shù)據(jù)及商品子集進(jìn)行實驗驗證,其中用戶行為數(shù)據(jù)集共9825248條日志,商品子集共418231條數(shù)據(jù)。
表4 用戶行為數(shù)據(jù)集Tab.4 User Behavior Data Set
表5 商品子集Tab.5 Product Subset
定義2:U為用戶集合,C為商品類別集合,I為商品全集,P為商品子集且P屬于I,D為用戶對商品全集的行為數(shù)據(jù)集合。
實驗?zāi)繕?biāo):利用D預(yù)測2014年12月18日U中用戶對P中商品的購買行為。
針對二分類問題,采用精確度(Precision)、召回率(Recall)及F1值為評價指標(biāo),F(xiàn)1值為精確度和召回率的加權(quán)調(diào)和均值,將其作為主要指標(biāo)。
4.3.1 預(yù)處理階段
整理原始數(shù)據(jù)集。用戶地理位置數(shù)據(jù)缺失較多,直接刪除此屬性,根據(jù)表1填補缺失值,刪除缺失一半及以上屬性的數(shù)據(jù)。根據(jù)表2進(jìn)行過濾操作,δ設(shè)置為130,ω設(shè)置為180。最后統(tǒng)計分析數(shù)據(jù)集,點擊、收藏、加購物車及購買4種行為分布,如圖2所示。
圖2 行為分布Fig.2 Behavioral Distribution
圖2表明購買正樣本遠(yuǎn)少于未購買負(fù)樣本,數(shù)據(jù)集存在類不平衡問題。且發(fā)現(xiàn)用戶對商品點擊、收藏、加購物車后(7~10)日內(nèi)不購買,后期基本也不會購買。用戶對商品子集點擊、收藏、加購物車行為發(fā)生后各時長下購買量,表明用戶購買意愿的強烈程度隨時間衰減,如圖3所示。
圖3 用戶行為衰減Fig.3 User Behavior Attenuation
則以10日為一個周期,第(1~9)日數(shù)據(jù)用于提取特征,第10日數(shù)據(jù)作為標(biāo)簽。一個周期內(nèi)正樣本約314個,負(fù)樣本數(shù)約為正樣本的300倍,對正樣本進(jìn)行SMOTE(Synthetic Minority Oversampling Technique)過采樣,對負(fù)樣本進(jìn)行隨機欠采樣,使正負(fù)樣本比例為1:5,采樣結(jié)果正樣本2200個,負(fù)樣本11000個。采用時間序列滑動窗口采樣方法提取更多樣本以提高預(yù)測效果,鑒于數(shù)據(jù)集規(guī)模及模型要求,在31日的時間序列下,按15:6:1的比例將數(shù)據(jù)集劃分為訓(xùn)練集、驗證集和測試集,如圖4所示。
圖4 時間序列滑窗采樣Fig.4 Sliding Window Sampling of Time Series
4.3.2 特征構(gòu)造階段
據(jù)圖3知,一個周期內(nèi)用戶在預(yù)測日的購買意愿強烈程度隨時間向前衰減,則構(gòu)造特征設(shè)定預(yù)測日前12h、前1天、前2天、前3天、前6天、前9天這6種時間粒度。一個周期內(nèi)基礎(chǔ)特征群構(gòu)造情況,如表6所示。共構(gòu)造出442個特征。其中U屬性內(nèi)的動態(tài)特征使用S型(Slogistic1)函數(shù)擬合用戶隨天數(shù)累計的行為量,描述用戶活躍程度,行為量逐漸減少時表明用戶活躍度越來越低,4個用戶實例,如圖5所示。
圖5 用戶行為擬合圖Fig.5 User Behavior Fitting Graph
表6 基礎(chǔ)特征群特征構(gòu)造Tab.6 Feature Construction of Basic Feature Group
交互特征群共構(gòu)造出276個特征,如表7所示。衍生特征群共構(gòu)造出208個特征,如表8所示。
表7 交互特征群特征構(gòu)造Tab.7 Feature Construction of Interactive Feature Group
3個特征群共構(gòu)造出926個特征,利用隨機森林(RF)進(jìn)行特征選擇后的前12個特征,如表9所示。
表9 前12個特征列表Tab.9 List of the Top 12 Features
4.3.3 模型測試階段
Stacking集成模型中基分類器參數(shù)設(shè)置,如表10所示。
表10 模型參數(shù)設(shè)置Tab.10 Model Parameter Setting
不同特征群下,所提加權(quán)方法、多數(shù)投票法和LPBoost方法實驗結(jié)果即精確度、召回率、F1值,如圖6~圖8所示。
圖6 不同特征群下模型精確度Fig.6 Model Precision Under Different Feature Groups
用戶線上購買行為預(yù)測有助于實現(xiàn)精準(zhǔn)營銷,具有極大的現(xiàn)實意義和經(jīng)濟(jì)價值。根據(jù)用戶-商品交互等數(shù)據(jù)構(gòu)造了3個特征群,制定了針對此種業(yè)務(wù)的特征工程,并提出一種基于Stacking的加權(quán)集成模型,顯著提高了預(yù)測效果。由圖6、圖7、圖8可知,這里所構(gòu)造的特征群優(yōu)于對比特征群,這里所提模型的F1值為8.51%,優(yōu)于對比模型。由于預(yù)測只針對存在交互的用戶-商品對,但預(yù)測日仍存在大量前期無交互而當(dāng)天購買的樣本,導(dǎo)致F1值大大降低,但F1值達(dá)到8.51%對于現(xiàn)實場景已是不錯的結(jié)果,充分說明了這里所提方法的有效性。
圖7 不同特征群下模型召回率Fig.7 Model Recall Rate Under Different Feature Groups
圖8 不同特征群下模型F1值Fig.8 Model F1 Value Under Different Feature Groups