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