胡曉麗 張會兵 董俊超 吳冬強
1(桂林電子科技大學教學實踐部 廣西 桂林 541004)
2(桂林電子科技大學廣西可信軟件重點實驗室 廣西 桂林 541004)
3(南寧地精科技有限公司 廣西 南寧 530000)
網民在電商平臺上選購商品的過程中伴隨著瀏覽、收藏、放入購物車等各種在線操作行為。當前,在電商平臺上沉淀了海量的用戶購物歷史數據,深入分析這些數據能夠較好預測其購物習慣、偏好或購物意愿。特別地,對用戶購買行為進行預測有助于提升用戶購物體驗,促進電子商務可持續發展[1]。
用戶購買行為預測是國內外諸多學者關注的熱點[2-6]。文獻[3]使用決策樹與神經網絡方法挖掘用戶購物歷史行為數據,預測用戶是否會購買他們已經添加到購物車里的商品。曾憲宇等[4]針對海量在線消費行為數據準確預測興趣偏好和購物行為,提出融合了潛在因子和行為序列的效用函數選擇模型,與邏輯回歸(Logistic Regression,LR)和梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)相比,該模型有更好的精確度和有效性。Liu等[5]利用大量的用戶瀏覽、點擊、購買等行為數據,通過支持向量機(Support Vector Machine,SVM)對未來網絡消費者的購買情況進行預測,得到了滿意的結果。祝歆等[6]融合邏輯回歸和支持向量機構建了網絡購物行為預測模型,取得了比單一模型更好的預測效果。
隨著電商平臺中行為數據的日益增加,應用傳統機器學習算法的特征構造和選擇需要花費時間與人力急劇增加,并且不同的電子商務平臺中數據的格式和內容有所不同,使得算法的移植性受限。同時,對用戶購買行為的獨立性假設也與用戶購買的實際情況不符,導致其不能準確預測不同時間段的用戶購買行為。
為此,提出一種CNN-LSTM神經網絡組合模型來預測用戶購買行為。首先使用卷積神經網絡層CNN從用戶歷史行為數據中自動抽取高影響力的特征,然后通過長短期記憶神經網絡LSTM建立時間序列預測模型[7-9],最后通過全連接層(Fully Connected Layer,FC)輸出模型預測結果。以此實現特征自動抽取和基于行為序列的用戶購買行為預測。
圖1為融合用戶屬性、商品屬性和用戶行為特征的預測用戶購買行為的CNN-LSTM模型總體架構[8,15]。數據處理和特征構建完成用戶歷史行為數據清洗,剔除刷單用戶、重大促銷等不具有一般規律的數據,并采用分段下采樣方法進行樣本均衡處理;CNN層接收影響用戶購買行為的各種特征,如瀏覽數、購買數、瀏覽購買轉化率等,進行特征選擇和特征優化;LSTM依據CNN提取的用戶購買行為序列中的重要特征進行用戶購買行為預測;全連接層把LSTM單元輸出的高維用戶購買行為信息壓縮為相應的特征向量,實現對用戶購買行為的分類表達。

圖1 CNN-LSTM用戶購買行為預測模型
(1) 在線交互行為樣本均衡。用戶與商品的在線交互過程中,只有極少部分瀏覽行為會轉化為購買行為,出現購買樣本與未購買樣本極度不均衡的問題[10]。目前,解決樣本不均衡問題的主流方法是上采樣和下采樣[11]。然而,上采樣方法很難適應電子商務中用戶-商品交互數據結構復雜、數據量大的特點;下采樣方法因為數據傾斜和信息丟失也不適合解決此類問題。為此,設計了如算法1所示的分段下采樣方法[11-12]:根據用戶購買行為預測樣本數據具有時間衰減的特性,將購買用戶和未購買用戶歷史數據樣本以天為單位進行分段。針對用戶樣本中的每個用戶找出其三個最近鄰用戶,若該用戶是未購買用戶且其三個最近鄰用戶中有兩個以上是購買用戶,則刪除它;反之,當該樣本是購買用戶并且其三個最近鄰中有兩個以上是未購買用戶,則去除最近鄰中的未購買用戶,其余情況均保留原始用戶樣本。
算法1分段下采樣樣本均衡算法。
輸入:用戶原始歷史數據(D),數據記錄天數(T);
輸出:新用戶平衡歷史數據(D′);
算法流程:
1: D′=D/T
//對原始數據按照數據記錄天數進行分段
2: for D(u)∈D′ do
//遍歷原始數據中的每個用戶
3: D′(u)=RandomChoose(D(u))
//隨機選擇任意用戶數據
4: if D′(u)為購買用戶then
5: //判斷D′(u)最近鄰中是否有兩個以上未購買用戶
if no-buy=sum(KNN(D′(u)))≥2 then
6: //刪除最近鄰中的未購買用戶
delete(KNN(D′(u))no-buy)
7: else
8: save(D′(u))
//保留新用戶數據
9: else
10: if buy=sum(KNN(D′(u)))≥2 then
11: //刪除新用戶
delete(D′(u))
12: else
13: save(D′(u))
//保留新用戶數據
(2) 在線交互行為特征構建。分析京東商城等的交互數據發現:用戶行為數據分散在用戶屬性、商品信息、用戶對商品的行為等處[13-14]。原始數據中可用的特征數量極少,直接用于CNN-LSTM模型無法有效預測用戶購買行為。為此,運用統計分析構建出如表1所示的用戶購買行為預測特征。然后,將該特征輸入到CNN-LSTM模型中,CNN自動進行用戶歷史購買行為的特征提取,可以有效簡化傳統機器學習中特征提取和特征選擇過程[7]。

表1 用戶購買行為預測特征
CNN由接收用戶歷史行為特征的輸入層、對接LSTM輸入層的輸出層以及多個隱藏層組成。其中,隱藏層包括卷積層和池化層,如圖2所示。

圖2 CNN-LSTM模型中CNN層
(1)

用戶行為特性經過卷積操作后,傳入池化層中進一步減少參數數量,壓縮數據維度,減少過擬合。用式(2)的最大池化方法篩選出對用戶購買行為影響最大的特征信息,實現用戶購買行為預測。
(2)
式中:T為池化區域的步長;R是池化尺寸。
LSTM接收CNN提取的重要特征向量序列,通過遺忘門、輸入門和輸出門改變細胞狀態,更新以前隱藏狀態的內存單元來保持用戶歷史購買行為信息持續存在,更準確地預測了用戶購物行為[16-17]。LSTM單元結構如圖3所示。

圖3 LSTM單元結構圖
門控單元中的各個門和記憶細胞的表達式如下:
外部輸入門單元表達式:
(3)
遺忘門單元表達式:
(4)
細胞內部狀態更新表達式:
(5)
輸出門單元表達式:
(6)

CN-LSTM模型的最后一層為全連接,該層將LSTM單元輸出的高維用戶歷史購買行為信息壓縮為一個特征向量hI={h1,h2,…,hn},進行用戶-商品對的分類,預測用戶是否會購買某種商品,其函數表達式如下:
(7)

基于CNN-LSTM模型的用戶購買行為預測算法如算法2所示。
算法2基于CNN-LSTM模型的用戶購買行為預測算法。
輸入:用戶屬性數據(U)、商品屬性數據(M)和用戶對商品的行為數據(B);
輸出:用戶-商品對(U-M),是否購買(buy)(1:表示購買,0:表示未購買);
算法流程:
1: read date={U,M,B}
//讀取輸入數據,構建用戶行為特征
//構建用戶行為特征
3: //根據樣本均衡算法進行用戶購買行為數據樣本均衡
U*=choose(U)
4: //設置卷積核數量為32,卷積尺寸3,根據式(1)進行卷積操作,得到特征向量矩陣
Cu=ReLU(Convolution(32,3,3))
5: //設置池化層尺寸為2,根據式(2)進行池化操作,特征
//降維得到新特征向量Cu*
Cu*=MaxPooling(3,3)(Cu)
6: //根據式(3)到式(6)進行LSTM層訓練,得到特征向
//量矩陣Lu*
Lu*=LSTM(output=128,activation=′tanh′)(Cu*)
7: buy=softmax(Lu*)
//根據式(7)進行用戶購買行為分類
本文選用天池大賽中阿里巴巴移動電商平臺數據集進行測試,包括11月18日到12月18日的2 084 859條用戶歷史購買行為數據:包含用戶標識、商品標識等6個字段,19 972個用戶,1 054種類的422 858件商品,對12月19日用戶對商品的購買行為進行預測[14]。其中,行為信息有瀏覽、收藏、加購物車、購買四種方式。對清洗后的數據字段進行組合優化,刪除用戶行為時間、商品位置與用戶位置字段,增加購買瀏覽轉化率、購買收藏轉化率、購買加購轉換率三個與用戶購買行為密切相關的3個字段,優化后的數據字段如表2所示。

表2 測試數據字段

續表2
這里采用精確率P、召回率R和F1值三個指標來評估預測模型性能。根據樣例真實類別與CNN-LSTM預測類別組合劃分為真正例(TP)、假正例(FP)、真負例(TN)、假負例(FN)四種類型,混淆矩陣如表3所示。預測結果在主對角線上取值越大,副對角線上取值越小的模型越好。將混淆矩陣數字化后即為精確率P、召回率R和F1值,計算公式分別為:
(8)
(9)
(10)
(1) CNN-LSTM模型驗證。為了驗證CNN-LSTM模型的性能,我們將CNN-LSTM模型與5種基線模型進行比較。參數設置如表4和表5所示。

表4 機器學習算法參數設置

續表4

表5 神經網絡參數設置
為了保證實驗數據的準確和客觀,將每個模型在同一訓練和測試數據集上分別運行10次,求得精確率、召回率和F1值的平均值作為模型最終結果,所得結果如表6所示。

表6 六種用戶購買行為預測模型精確率、召回率和F1值對比
從表6中的實驗結果可以看出,基于CNN-LSTM模型的F1值在訓練集和測試集中均高于其余基準模型,其原因主要為該模型集成了CNN在網絡特性提取、特征選擇方面和LSTM記憶機制處理時序模型方面的優勢。XGBoost模型的F1值優于CNN模型,低于LSTM模型的F1值,主要原因為XGBoost是一種集成很多弱分類器的強分類器,在很多數據挖掘相關比賽中的表現多次優于神經網絡。此外,LSTM模型的表現優于CNN和XGBoost模型的主要原因與本次的實驗數據選擇密切相關,本次采用的數據集是用戶購買行為一個月的歷史數據,屬于標準的時序數據,LSTM模型較其余基準模型更適合時序數據的分析和預測。
從表6中可見,6種模型在訓練數據集上的F1值均優于其在測試數據集上的F1值。主要原因是模型僅僅在測試數據集尋找購買行為的樣本,其中有部分在12月19日購買的用戶為新進用戶,在訓練集中的11月18日到12月18日(除11月11日外)一個月時間之內沒有該用戶購買歷史記錄,模型預測將其預測為未購買用戶,導致模型預測結果的召回率降低,F1值也隨之下降。
為了更直觀地驗證CNN-LSTM模型的穩定性,將六種模型的10次訓練數據集的F1值畫出折線圖分析波動幅度,如圖4所示。

圖4 六種模型F1值變化曲線
可以看出,CNN-LSTM模型與支持向量、隨機森林和CNN模型在預測效果上有明顯優勢。LSTM和XGBoost模型偶爾一次的F1值會優于CNN-LSTM模型,然而LSTM和XGBoost模型的F1值跟隨實驗次數波動較大對于整體效果而言,CNN-LSTM模型處于高F1值的區間小幅度波動,模型穩定性較好。
(2) “分段下采樣”樣本均衡算法驗證。圖5為6種模型樣本均衡前后的F1值對比結果,可以看出,經過分段下采樣樣本均衡算法的六種模型的F1值均有不同程度的提升。其中支持向量機、隨機森林、XGBoost、CNN、LSTM這5種模型的F1值提升比較明顯。實驗結果表明,使用分段下采樣的樣本均衡算法對樣本不均衡的用戶行為歷史數據進行均衡處理,對提升用戶購買行為的預測準確率有一定作用。

圖5 六種模型樣本均衡前后F1值對比
本文基于CNN-LSTM模型對用戶購買行為進行預測,與現有的購買行為預測模型相比,簡化了特征選擇過程,提高了模型準確性和穩定性。分段下采樣樣本均衡算法有效解決了電商平臺中購買樣本與未購買樣本極度不均衡的問題,提升了CNN-LSTM模型預測的準確率。然而,目前的模型尚未考慮用戶性別、年齡、商品評論以及“雙十一”“六一八”重大促銷活動等信息對用戶購買行為的影響。在后續研究中,我們將構建一種能夠包含更多上述信息的用戶購買行為預測模型,使其預測更精準、實用。