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