韓亞娟,高 欣
(上海大學(xué) 管理學(xué)院,上海 200444)
銷量預(yù)測是企業(yè)供應(yīng)鏈的各個層次中必不可少的環(huán)節(jié)[1].近年來,電子商務(wù)以及電商物流在互聯(lián)網(wǎng)時代背景下蓬勃發(fā)展,使交付周期縮短、客戶期望增加.電商企業(yè)為了贏得持續(xù)競爭優(yōu)勢,在有限資源下,銷量預(yù)測變得更加重要[2].與此同時,電商企業(yè)也能從消費者行為中獲得大量數(shù)據(jù),數(shù)據(jù)成為企業(yè)未來發(fā)展的核心競爭力,海量的數(shù)據(jù)對于企業(yè)來說是其獨特的優(yōu)勢和資源[3].如何有效地利用數(shù)據(jù)、精確地對銷量進(jìn)行預(yù)測,成為了電商企業(yè)關(guān)注的焦點.隨著大數(shù)據(jù)和機(jī)器學(xué)習(xí)的快速發(fā)展,合適的算法技術(shù),將為企業(yè)建立預(yù)測方案提供關(guān)鍵的技術(shù)支持.
許多學(xué)者專家在銷量預(yù)測方面做了系統(tǒng)的研究.在傳統(tǒng)的銷量預(yù)測方法中,大多采用了如線性模型、指數(shù)平滑等統(tǒng)計方法.如陳日進(jìn)[4]在銷售預(yù)測中比較了指數(shù)平滑與時間序列分解法,指出指數(shù)平滑法受季節(jié)性、周期性制約.Papacharalampous 等人[5]評估了各種統(tǒng)計方法在時間序列的可預(yù)測性,并在性能上做了比較,體現(xiàn)出這些方法在需求基本穩(wěn)定市場中的良好表現(xiàn).但是這種情況并不適用于現(xiàn)在的預(yù)測,因為需求還依賴于除時間外的其他因素,而這些因素并不能有效地用過去的需求量來表示.例如,Uber 或滴滴出行等按需乘車服務(wù)不能僅依靠時間序列來估計其需求,它們必須考慮其他因素,如天氣條件(濕度、溫度等)、一天中的時間段或一周中的某一天[6].而傳統(tǒng)的統(tǒng)計預(yù)測方法通過外推歷史趨勢和季節(jié)波動來預(yù)測未來,所以它們通常很難利用對需求產(chǎn)生重大影響的特征進(jìn)行預(yù)測[1].
因此,包括機(jī)器學(xué)習(xí)和深度神經(jīng)網(wǎng)絡(luò)在內(nèi)的人工智能的新方法因其增強(qiáng)預(yù)測性能和建模非線性模式的能力而受到關(guān)注[7].由于深度神經(jīng)網(wǎng)絡(luò)在機(jī)器視覺、自然語言處理等方面的良好表現(xiàn),人們開始將其運用于銷量預(yù)測.如WaveNet[8]、長短期記憶人工神經(jīng)網(wǎng)絡(luò)(long short-term memory,LSTM)[9]等.雖然與傳統(tǒng)的預(yù)測方法相比,深度神經(jīng)網(wǎng)絡(luò)有更好的預(yù)測表現(xiàn),但是其預(yù)測結(jié)果的可解釋行較差.所以預(yù)測的結(jié)果所能帶給企業(yè)的實際價值是有限的.與之相對的是,一些學(xué)者在研究中展現(xiàn)了隨機(jī)森林(random forest,RF)杰出的可解釋性水平、良好的精度和適當(dāng)?shù)挠嬎銜r間[10,11].隨機(jī)森林也被視為預(yù)測性分析約定俗成的工具,因為它讓管理者了解模型背后的原因,并了解其如何影響最終的結(jié)果.此外,運用迭代與梯度提升思想的梯度提升樹(gradient boosting decision tree,GBDT)算法在生產(chǎn)與服務(wù)性需求預(yù)測中表現(xiàn)出比一般模型更好的性能與穩(wěn)定性[12].在基于梯度提升的基礎(chǔ)上,極限梯度提升(extreme gradient boosting,XGBoost)算法在工業(yè)實踐中有著優(yōu)秀的準(zhǔn)確性,在銷售預(yù)測的研究中驗證了其良好的精度[13].
在輸出預(yù)測模型的過程中,學(xué)術(shù)研究人員和商業(yè)實踐者經(jīng)常遇到一個重要問題:是選擇合適的建模方法進(jìn)行預(yù)測,還是將這些不同的方法組合成一個單一的預(yù)測模型? Lean 等人對候選模型的選擇策略與組合策略做了研究,結(jié)果發(fā)現(xiàn)組合模型的預(yù)測效果一般優(yōu)于個體預(yù)測模型,且非線性組合的預(yù)測精度會優(yōu)于線性組合模型[14].因此,為進(jìn)一步優(yōu)化預(yù)測的結(jié)果,本文將著眼于電商商品的特點,分析影響電商商品的特征因素,從而構(gòu)建新的特征集,使用RF、GBDT、XGBoost算法建立組合預(yù)測模型,對電商商品銷量進(jìn)行預(yù)測.
RF是一種基于決策樹的回歸模型學(xué)習(xí)算法[15].每棵樹使用隨機(jī)選擇的特征子集來生長,然后計算在每個樹的最后一個節(jié)點處獲得的預(yù)測的平均值,彌補(bǔ)了單個決策樹所表現(xiàn)出的偏差低但方差非常大的不足,是一種強(qiáng)大而且不復(fù)雜的算法.
GBDT是一種由迭代思想而來的決策樹算法[16],通過集成基學(xué)習(xí)器,即CART 回歸樹形成強(qiáng)學(xué)習(xí)器來預(yù)測結(jié)果.對于一個包含n個樣本的數(shù)據(jù)集D={(xi,yi)}(|D|=n,xi∈R,yi∈R),算法具體步驟如下:
(1)初始化學(xué)習(xí)器:
其中,初始常數(shù)C一般設(shè)置為樣本真實值均值,L(·)為所選擇的損失函數(shù).
(2)迭代模型,其中迭代次數(shù)m=1,2,···,M:
1)對于每一個樣本i=1,2,···,n,計算負(fù)梯度,即殘差rim:
2)將得到的殘差更新為樣本真實值,并將數(shù)據(jù)(xi,rim) 作為第m棵樹的訓(xùn)練數(shù)據(jù),其對應(yīng)的葉子節(jié)點為Rjm,j=1,2,···,J.J為回歸樹的葉子節(jié)點數(shù).
3)對葉子區(qū)域j=1,2,···,J計算最優(yōu)的擬合值:
4)更新強(qiáng)學(xué)習(xí)器:
其中,I為指示函數(shù),當(dāng)x∈Rjm時值為1,否則為0.
(3)得到最終的強(qiáng)學(xué)習(xí)器預(yù)測值為:
XGBoost是由陳天奇等人提出的集成提升樹學(xué)習(xí)模型[17].它高效地實現(xiàn)了GBDT,并進(jìn)行了算法和工程上的許多改進(jìn),已經(jīng)在大量的數(shù)據(jù)挖掘競賽中被廣泛地認(rèn)可,具有高效、靈活且魯棒性強(qiáng)等優(yōu)點.對于一個包含n個 樣本的數(shù)據(jù)集D={(xi,yi)}(|D|=n,xi∈R,yi∈R),算法具體步驟如下:
(1)定義目標(biāo)函數(shù),由損失函數(shù)與正則項兩部分組成:
正則項部分如式(7)所示:
其中,K表示共有K棵樹,fk表示第k棵樹模型,T表示每棵樹的葉子結(jié)點數(shù)量,ω 表示每棵樹的葉子結(jié)點的權(quán)重值,γ和λ為系數(shù),需要在訓(xùn)練中進(jìn)行調(diào)參.
(2)模型策略,與GBDT 相同,目標(biāo)函數(shù)的求解也是基于迭代思想,對于第t次迭代:
利用泰勒公式對式(8)進(jìn)行展開,得到:
本文旨在建立一個銷售預(yù)測模型來預(yù)測一段時期的電商銷量.為此,將用組合機(jī)器學(xué)習(xí)模型對電商商品的數(shù)據(jù)進(jìn)行建模和預(yù)測.總體的研究框架如圖1所示,主要包括兩個部分:數(shù)據(jù)集處理和組合預(yù)測模型構(gòu)建.
圖1 預(yù)測流程圖
第1 部分:數(shù)據(jù)集處理.對原始數(shù)據(jù)進(jìn)行缺失值和異常值的數(shù)據(jù)預(yù)處理以及重新對樣本組織與特征構(gòu)建的過程.
第2 部分:組合預(yù)測模型構(gòu)建.對處理過的數(shù)據(jù)集分別用RF、GBDT、XGBoost 模型訓(xùn)練后,組合基礎(chǔ)模型的預(yù)測結(jié)果,并在此基礎(chǔ)上利用各個商品的補(bǔ)少補(bǔ)多成本對組合預(yù)測的結(jié)果賦權(quán),得到最后的預(yù)測輸出.
數(shù)據(jù)集處理的目的是挖掘有效的特征.預(yù)測結(jié)果的上限由數(shù)據(jù)和特征所決定,而模型和算法只能不斷逼近這個上限.當(dāng)算法難以突破瓶頸時,優(yōu)秀的組合特征通??梢赃_(dá)到良好的預(yù)測效果.在本節(jié)中,將對數(shù)據(jù)集進(jìn)行預(yù)處理,并構(gòu)建新的模型特征集.
2.2.1 數(shù)據(jù)來源及預(yù)測特點介紹
阿里巴巴旗下電商擁有海量的買家和賣家交易場景下的數(shù)據(jù).本文研究的數(shù)據(jù)集來源于天池平臺,由全國倉數(shù)據(jù)、區(qū)域倉數(shù)據(jù)和商品成本數(shù)據(jù)組成.數(shù)據(jù)集的基本信息如下:
(1)全國倉數(shù)據(jù):包含了從2014.10.10–2015.12.27共442 天963 種商品的210 549 條銷售數(shù)據(jù).其中,商品的分類特征有4 個,如類目ID、品牌ID 等,商品的用戶行為特征有25 個,如瀏覽人數(shù)、加購物車人數(shù)、成交人數(shù)等,以及日期、商品ID、倉庫CODE 特征,一共32 維特征.
(2)區(qū)域倉數(shù)據(jù):和全國倉沒有本質(zhì)區(qū)別,涵蓋了從2014.10.10–2015.12.27的相同963 種商品的864 772條區(qū)域倉的銷售數(shù)據(jù).
(3)商品成本數(shù)據(jù):記錄每個商品在全國和區(qū)域倉的缺貨和庫存管理成本,即商品的補(bǔ)少成本a和補(bǔ)多成本b,用于計算總成本.
電商零售的所有工作都是讓正確的產(chǎn)品在正確的時間正確的地點滿足正確的消費者.而在多年的電商平臺實踐中得知,商品銷量受眾多主客觀因素影響.總的來說,電商銷量預(yù)測問題有以下的特點:
(1)快速變化的用戶需求.消費者需求會隨著地點、時間、特殊事件、個人偏好等各種各樣因素而改變,有時一個熱點就會導(dǎo)致商品銷量的激增或暴跌.這就產(chǎn)生了高度非平穩(wěn)的銷量時間序列.
(2)集中庫存.為了針對消費者需求的快速變化,品牌電商平臺會建設(shè)或租賃大型倉庫對各類商品集中庫存以提供對不確定性的緩沖,這使電商銷量預(yù)測一般具有固定的時間周期.
(3)成千上萬的產(chǎn)品.不同消費者的消費偏好是不同的,為了盡可能滿足所有用戶需求,大型電商平臺會在各種垂直品類間部署不同類型的大量商品,就產(chǎn)生了成千上萬的時間序列.
2.2.2 數(shù)據(jù)預(yù)處理
此數(shù)據(jù)集經(jīng)過了脫敏處理,和商品的實際銷售量、成交金額等有一些差距,但是對整體的數(shù)據(jù)特性沒有影響.但由于數(shù)據(jù)來源于真實場景,原始數(shù)據(jù)的完整性、穩(wěn)定性等有所缺失,會對模型性能造成一定的影響,為此,需要對數(shù)據(jù)進(jìn)行預(yù)處理以匹配模型的需求.
(1)缺失值處理
有些商品信息在數(shù)據(jù)收集的過程中,由于商品的預(yù)售或團(tuán)購等活動,存在一段時間內(nèi)只有商品的用戶行為特征而沒有銷量信息的情況.此外,后臺日志記錄的缺失也造成部分商品沒有用戶行為特征的現(xiàn)象.鑒于不同類型商品的銷售周期、用戶行為偏好都各不相同,本文統(tǒng)一對缺失值進(jìn)行補(bǔ)“0”處理,既保證了數(shù)據(jù)的完整性,也符合電商商品的實際情況.
(2)異常值處理
圖2展示了所有商品銷量按天進(jìn)行統(tǒng)計的結(jié)果.
圖2 銷量直方圖
(1)本數(shù)據(jù)集的商品銷量在該時間序列內(nèi)較為平穩(wěn),沒有表現(xiàn)出明顯的季節(jié)性和周期性波動.可以理解為本數(shù)據(jù)集所選取的商品具有全面性,銷量在時間維度上的變化互相抵消并呈現(xiàn)總體上升的趨勢.
(2)商品銷量具有若干突出的局部峰值,這種表現(xiàn)在2015.11.11 尤為明顯.結(jié)合店商品臺的活動可知,峰值出現(xiàn)的日期均為平臺促銷活動“618”“雙11”“雙12”當(dāng)天.因此本文將這幾日的數(shù)據(jù)識別為異常值并予以刪除.
2.2.3 樣本組織與特征工程
目前,商品銷量預(yù)測周期多以周銷量為最小預(yù)測單元[18,19],考慮到電商商品的需求量大、物流過程復(fù)雜等特點,本文以兩周作為一個預(yù)測單元重新對原始數(shù)據(jù)進(jìn)行樣本組織,并在此基礎(chǔ)上構(gòu)建新特征集和標(biāo)簽.
時間滑窗法能消除數(shù)據(jù)噪音并擴(kuò)展訓(xùn)練集[20].如圖3所示,樣本重組織是利用了時間滑窗的方法,以兩周為一個滑窗單元,在原始時間序列上按時間逆序進(jìn)行滑動窗口操作.
圖3 時間滑窗法
由于數(shù)據(jù)的預(yù)測價值會隨著離最終預(yù)測時間距離的增大而衰減[19],本文將全國倉和區(qū)域倉數(shù)據(jù)合并,進(jìn)行了11 次前向滑窗,加和每個窗口后兩周內(nèi)各個商品的非聚劃算支付件數(shù),即總銷量作為標(biāo)簽,使用窗口1,2 內(nèi)數(shù)據(jù)作為測試集,其余為訓(xùn)練集.
商家信譽(yù)、商品性價比與商品歷史數(shù)據(jù)在較大程度影響了商品的銷量[21,22].結(jié)合以上因素,本文特征集的構(gòu)建方法如下:統(tǒng)計窗口前N=1,2,3,5,7,9,11,14 天內(nèi)25 維用戶行為數(shù)據(jù)的總和與平均值為用戶行為特征;以商品分類特征做聚合,統(tǒng)計各類特征的銷量平均值、總和、標(biāo)準(zhǔn)差為商品分類特征;統(tǒng)計窗口內(nèi)的部分轉(zhuǎn)化率為商品比率特征.在利用時間滑窗法數(shù)據(jù)集處理并進(jìn)行樣本組織和特征構(gòu)建后.共產(chǎn)生11 個時間窗口,424 維特征,46 938 條數(shù)據(jù).新特征集結(jié)果如表1所示.
表1 商品特征表
考慮到實際銷量的影響因素較多,本文在原始數(shù)據(jù)的基礎(chǔ)上擴(kuò)展特征集,從而使新數(shù)據(jù)集獲得了更多可以被算法學(xué)習(xí)的信息.如果采用單一模型預(yù)測,可能面臨精度下降或是過擬合的風(fēng)險.Dietterich 指出,模型結(jié)合可能會從統(tǒng)計、計算和表示3 個方面帶來好處[23].因此,本文利用不同算法的結(jié)構(gòu)差異構(gòu)建組合銷售預(yù)測模型,在提升精度的同時減少單個模型過擬合的風(fēng)險.具體的步驟如下.
步驟1.基礎(chǔ)模型訓(xùn)練.將重新構(gòu)建樣本與特征后的訓(xùn)練集,分別用隨機(jī)森林、GBDT、XGBoost 模型訓(xùn)練,輸入測試集特征集進(jìn)行預(yù)測,得到每個基礎(chǔ)模型的預(yù)測值,如式(10)所示.
步驟2.組合預(yù)測.對于電商平臺來說,商品銷量預(yù)測結(jié)果與實際銷量差異直接決定了使用補(bǔ)少還是補(bǔ)多成本計算成本,而不同商品的補(bǔ)少補(bǔ)多成本不同.因此,本文將補(bǔ)少補(bǔ)多成本加入銷量預(yù)測模型建模.
基于每個商品的補(bǔ)多補(bǔ)少成本,本文提出一種成本厭惡偏向性組合預(yù)測方法,具體如下:對于每一個商品,若該商品的補(bǔ)少成本ai小于補(bǔ)多成本bi,說明預(yù)測結(jié)果比真實值大時會承擔(dān)更多的成本風(fēng)險,則將3 個模型中的最小預(yù)測值做作為組合預(yù)測結(jié)果,使模型有預(yù)測少的偏向性;反之,則將3 個模型中最大值作為預(yù)測結(jié)果,使模型有預(yù)測多的偏向性,如式(11)所示.
步驟3.預(yù)測賦權(quán).在組合預(yù)測的基礎(chǔ)上,為了進(jìn)一步提升預(yù)測結(jié)果對成本厭惡偏向性,本文對每個樣本進(jìn)行賦權(quán).如圖4所示,由于Sigmoid 函數(shù)有著良好的單調(diào)遞增等性質(zhì),常被用作神經(jīng)網(wǎng)絡(luò)的激活函數(shù).
圖4 Sigmoid 函數(shù)
本文以式(12)的Sigmoid 函數(shù)為基礎(chǔ)構(gòu)建賦權(quán)函數(shù).在定義域大于0 時,該函數(shù)取值范圍為(0.5,1).由第2.2.2 節(jié)的分析可知,商品整體銷量較為平穩(wěn),故賦予樣本的權(quán)重值不應(yīng)過大,在式(12)基礎(chǔ)上加0.5 構(gòu)建賦權(quán)函數(shù),如式(13)所示.顯然,補(bǔ)少補(bǔ)多成本間較大與較小的比值始終大于1,由此計算出的權(quán)重值域為(S(1)+0.5,1.5),即約 (1.23,1.5),滿足權(quán)重值的穩(wěn)定性要求.
步驟4.在計算出每個樣本的權(quán)重值后,對式(11)中成本厭惡偏向性組合預(yù)測結(jié)果進(jìn)行賦值,最終的預(yù)測結(jié)果如式(14)所示.
誤差度量通過將預(yù)測值與實際值進(jìn)行比較來度量模型的質(zhì)量.一般地,對于預(yù)測問題,有均方誤差、平均絕對誤差等指標(biāo).
由于原始數(shù)據(jù)中給出了每個商品的補(bǔ)多成本ai,補(bǔ)少成本bi,因此本文選用預(yù)測的總成本作為評價指標(biāo),與傳統(tǒng)指標(biāo)無本質(zhì)差別,且使結(jié)果更直觀具有實際價值.
為了評價組合模型的預(yù)測能力,本文使用了RF、GBDT、XGBoost 三個基礎(chǔ)模型,加入特征工程的模型,以及組合預(yù)測模型對實驗數(shù)據(jù)進(jìn)行預(yù)測,使用總成本作為評價指標(biāo),結(jié)果如表2所示.
表2 各模型下的預(yù)測總成本
由表2可知:
(1)特征工程能提升預(yù)測準(zhǔn)確性.加入特征工程后的模型與基礎(chǔ)模型相比,總成本都有所下降.說明2.2 節(jié)中的特征構(gòu)建流程從原始數(shù)據(jù)中增加了有效特征,并幫助提升了模型準(zhǔn)確性.
(2)組合預(yù)測模型有較好的預(yù)測準(zhǔn)確性.加入特征工程后的組合模型預(yù)測為127.43 萬元,相比于加入特征工程后的基礎(chǔ)模型約下降了42–52 萬元.其中,式(13)的預(yù)測賦權(quán)貢獻(xiàn)了約22 萬元的成本下降,式(11)的組合方法貢獻(xiàn)了20–30 萬元的成本下降.這展現(xiàn)了組合模型相較于基礎(chǔ)模型的優(yōu)越性和預(yù)測賦權(quán)方法的有效性.
為了更準(zhǔn)確預(yù)測電商商品的銷量,本文提出了基于機(jī)器學(xué)習(xí)的組合預(yù)測模型.通過數(shù)據(jù)的預(yù)處理重新組織樣本,從用戶行為、商品分類和商品比率3 個方面構(gòu)建了424 維新特征集,并有效地使用了商品成本數(shù)據(jù),在本文提出的成本厭惡偏向性組合模型的基礎(chǔ)上對預(yù)測結(jié)果賦權(quán),得到最終的預(yù)測結(jié)果.該方法在實現(xiàn)了對平臺數(shù)據(jù)的精細(xì)化運用的基礎(chǔ)上,降低了總體倉儲成本,對電商平臺提前了解商品銷量情況,合理制定庫存水平有著重要的意義.