王 旭,廖 濤,張順香
(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)
銷售預(yù)測(cè)是指可以通過(guò)歷史存儲(chǔ)的銷售數(shù)據(jù),分析出數(shù)據(jù)之間存在的關(guān)系或者數(shù)據(jù)的發(fā)展趨勢(shì),然后運(yùn)用數(shù)學(xué)方法構(gòu)建出針對(duì)指定銷售問(wèn)題的銷售預(yù)測(cè)模型,最終預(yù)測(cè)公司未來(lái)幾年的銷售情況[1];因此預(yù)測(cè)是企業(yè)對(duì)供應(yīng)鏈和運(yùn)營(yíng)過(guò)程進(jìn)行優(yōu)化時(shí)必要的一步[2-3]。
除此之外,在現(xiàn)實(shí)世界中具有時(shí)間序列特點(diǎn)的數(shù)據(jù)隨處可見(jiàn),甚至遍布于各行各業(yè)。根據(jù)數(shù)據(jù)時(shí)間序列的特點(diǎn),找出這些序列的發(fā)展特性,再?gòu)闹刑崛〕鼍珳?zhǔn)的信息,有助銷售預(yù)測(cè)模型的構(gòu)建[5]。因此,時(shí)間序列預(yù)測(cè)不僅在工業(yè)尤為重要,而且在學(xué)術(shù)界亦是如此。Adhikari 等[6]人指出“研究人員做了很多努力來(lái)開(kāi)發(fā)有效的模型,并想以此來(lái)提高時(shí)間序列的預(yù)測(cè)精度”。
然而,由于進(jìn)行銷售時(shí)間序列預(yù)測(cè)時(shí),預(yù)測(cè)場(chǎng)景往往會(huì)發(fā)生變化,但研究人員卻沒(méi)有充分了解每種方法的局限性和適用性。近一步說(shuō),這些銷售預(yù)測(cè)模型的通用性差,特別是在進(jìn)行多任務(wù)、長(zhǎng)時(shí)間銷售預(yù)測(cè)的情況下,因使用不適用于給定時(shí)間序列的方法進(jìn)行預(yù)測(cè)可能會(huì)導(dǎo)致企業(yè)季度或年度戰(zhàn)略的失敗[7]。針對(duì)這個(gè)問(wèn)題,本文通過(guò)構(gòu)建CNN-LSTM 網(wǎng)絡(luò)的銷售預(yù)測(cè)模型,將長(zhǎng)短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)和卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)網(wǎng)絡(luò)結(jié)合起來(lái),在保留LSTM 網(wǎng)絡(luò)可以長(zhǎng)距離記憶抽取特征的基礎(chǔ)上,加入的CNN 網(wǎng)絡(luò)能更深層地識(shí)別時(shí)序數(shù)據(jù)的特征,從而以最小的信息損失進(jìn)行建模。并且在整個(gè)模型訓(xùn)練過(guò)程中加入在線閉環(huán)調(diào)整方法,能夠根據(jù)預(yù)測(cè)結(jié)果與真實(shí)值之間的誤差,動(dòng)態(tài)的調(diào)整模型,以確保預(yù)測(cè)模型的效果長(zhǎng)期保持高精度,進(jìn)一步提升銷售預(yù)測(cè)模型的預(yù)測(cè)效果。實(shí)驗(yàn)表明,基于CNN-LSTM 網(wǎng)絡(luò)的在線多任務(wù)銷售預(yù)測(cè)模型取得了較好的效果。
在過(guò)去的幾十年里,管理者及研究人員通常會(huì)采用HW(Holt-Winters model)、神經(jīng)網(wǎng)絡(luò)、ARIMA(auto-regressive integrated moving average model)等方法進(jìn)行相關(guān)的銷售時(shí)間序列預(yù)測(cè)[8],在少量數(shù)據(jù)和特定的預(yù)測(cè)任務(wù)背景下,這些預(yù)測(cè)模型讓預(yù)測(cè)誤差保持在可接受的范圍內(nèi)。Andrew等使用79 個(gè)月的餐館銷售數(shù)據(jù),將計(jì)量經(jīng)濟(jì)學(xué)方法與時(shí)間序列方法進(jìn)行比較。他們的結(jié)果表明,SARIMA 方法在初始期和七個(gè)月的預(yù)測(cè)期都有更好的表現(xiàn)[9]。然而,這項(xiàng)研究只針對(duì)一家餐廳,并沒(méi)有對(duì)多任務(wù)時(shí)間序列預(yù)測(cè)任務(wù)進(jìn)行總結(jié)。Makatjane 等使用南非19 年的月度汽車(chē)銷量數(shù)據(jù),發(fā)現(xiàn)HW 相對(duì)于SARIMA 方法具有更強(qiáng)的預(yù)測(cè)能力[10]。Udom 使用移動(dòng)平均法、HW 法和SARIMA 法對(duì)塑料行業(yè)中單個(gè)分銷商的五種不同產(chǎn)品的銷售額進(jìn)行了預(yù)測(cè),并以MAPE 為評(píng)價(jià)指標(biāo),發(fā)現(xiàn)SARIMA 方法對(duì)銷售額的預(yù)測(cè)效果較好[11]。姜曉紅以某電商平臺(tái)數(shù)據(jù)為例,運(yùn)用時(shí)間序列法ARIMA 模型預(yù)測(cè)各種商品在全國(guó)和區(qū)域性未來(lái)一周的需求量;并與簡(jiǎn)單移動(dòng)平均法預(yù)測(cè)結(jié)果做對(duì)比,發(fā)現(xiàn)ARIMA 模型有更高的精準(zhǔn)度[12]。Frank 等人采用單季節(jié)指數(shù)平滑法(single season exponential smoothing model,SSES),HW和ANN(Artificial Neural Network)用于女裝銷售預(yù)測(cè)[13]。他們發(fā)現(xiàn)神經(jīng)網(wǎng)絡(luò)顯示出令人滿意的擬合優(yōu)度統(tǒng)計(jì)量,但在比較實(shí)際銷售和預(yù)測(cè)銷售方面,HW 方法表現(xiàn)的更好。早期機(jī)器學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò)無(wú)法利用內(nèi)部記憶的特點(diǎn)對(duì)序列數(shù)據(jù)進(jìn)行處理,其無(wú)法在長(zhǎng)距離范圍內(nèi)捕獲時(shí)間序列的特征,例如循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)有時(shí)會(huì)出現(xiàn)梯度消失和長(zhǎng)期依賴的問(wèn)題。
雖然以上文獻(xiàn)均采用銷售數(shù)據(jù)進(jìn)行預(yù)測(cè),但得出的結(jié)果并不一致。在對(duì)不同的時(shí)間序列進(jìn)行建模時(shí),各種方法能夠取得的性能通常會(huì)和數(shù)據(jù)中的時(shí)間維度特征相關(guān),而隨之各種優(yōu)化后的機(jī)器學(xué)習(xí)算法在預(yù)測(cè)任務(wù)上通常會(huì)展現(xiàn)出比傳統(tǒng)模型更高的預(yù)測(cè)性能時(shí),更多的人選擇用這些方法來(lái)處理時(shí)間序列數(shù)據(jù)。黃鴻云基于改進(jìn)的多維灰色模型(GM(1,N))和神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)銷量,其中多維灰色模型對(duì)銷售數(shù)據(jù)建模,神經(jīng)網(wǎng)絡(luò)對(duì)誤差進(jìn)行校正,并通過(guò)對(duì)阿里天貓銷售數(shù)據(jù)來(lái)評(píng)估混合模型的表現(xiàn)[14]。張文雅通過(guò)網(wǎng)格搜索方法優(yōu)化了支持向量機(jī)的超參數(shù),并用汽車(chē)銷售數(shù)據(jù)來(lái)對(duì)優(yōu)化后的算法進(jìn)行了驗(yàn)證,根據(jù)結(jié)果可以發(fā)現(xiàn)優(yōu)化后的算法擁有更好的預(yù)測(cè)性能[15]。王輝等利用Stacking 集成策略能夠融合多機(jī)器學(xué)習(xí)算法的優(yōu)點(diǎn),將各算法結(jié)合,結(jié)果發(fā)現(xiàn),Stacking 模型取得了比單個(gè)模型更高的精度和泛化能力[16]。羅嗣卿通過(guò)DBSCAN 算法解決了K-means 算法對(duì)噪聲數(shù)據(jù)敏感的問(wèn)題,并結(jié)合ARIMA 模型以藍(lán)莓干銷售數(shù)據(jù)驗(yàn)證了改進(jìn)后的算法的精確性[17]。從上述研究可以發(fā)現(xiàn),雖然優(yōu)化后的機(jī)器學(xué)習(xí)算法應(yīng)用于當(dāng)前模型預(yù)測(cè)研究領(lǐng)域已經(jīng)取得了較高的精度和泛化能力,但還存在結(jié)果難以解讀,且針對(duì)不尋常的數(shù)據(jù)組,結(jié)果可能無(wú)用等問(wèn)題。
在近幾年時(shí)間內(nèi),深度神經(jīng)網(wǎng)絡(luò)中的LSTM在時(shí)序預(yù)測(cè)上顯示出了強(qiáng)力的性能[18-19],為了驗(yàn)證LSTM 網(wǎng)絡(luò)是否能夠取得比傳統(tǒng)模型更好的預(yù)測(cè)效果,Weytjens 等人還將SARIMA 和Prophet 與ANN 和LSTM 方法進(jìn)行比較,研究以預(yù)測(cè)現(xiàn)金流為任務(wù)場(chǎng)景[20]。在研究中引入了一種新的績(jī)效衡量方法,即利益機(jī)會(huì)成本(Interest Opportunity Cost,IOC),并利用IOC 作為成本函數(shù)對(duì)模型進(jìn)行評(píng)價(jià),最終得出結(jié)論:LSTM 是預(yù)測(cè)現(xiàn)金流的最佳方法。而在多任務(wù)預(yù)測(cè)中,Yu 等使用LSTM 方法預(yù)測(cè)銷售情況,他們分析了66 種產(chǎn)品在45 周內(nèi)的數(shù)據(jù)[21]。研究結(jié)果表明LSTM 為66 種產(chǎn)品中的17 種提供了準(zhǔn)確的預(yù)測(cè),而并非全部數(shù)據(jù)。由于考慮到這些數(shù)據(jù)幾乎沒(méi)有季節(jié)性這一特點(diǎn),單用一個(gè)LSTM 網(wǎng)絡(luò)進(jìn)行多任務(wù)的銷售預(yù)測(cè)會(huì)面臨時(shí)間序列長(zhǎng)度不夠的情形,究其原因,是單個(gè)LSTM 網(wǎng)絡(luò)并不能穩(wěn)定地識(shí)別序列數(shù)據(jù)中的時(shí)序特征。
以上的研究工作雖然為離線場(chǎng)景下的銷售預(yù)測(cè)提供了可靠方法,但隨著云計(jì)算、分布式數(shù)據(jù)庫(kù)存儲(chǔ)技術(shù)的發(fā)展,企業(yè)往往會(huì)要求模型能夠進(jìn)行實(shí)時(shí)在線預(yù)測(cè)。并且,隨著企業(yè)推廣能力的增強(qiáng),企業(yè)的營(yíng)業(yè)點(diǎn)會(huì)分布在各個(gè)范圍內(nèi),要求模型要能夠進(jìn)行在線的多任務(wù)預(yù)測(cè),這使得模型要能夠高效地識(shí)別出時(shí)序數(shù)據(jù)中的深層次特征,即數(shù)據(jù)的時(shí)空相關(guān)性。為適應(yīng)這一場(chǎng)景,本文提出并且設(shè)計(jì)了一種基于CNN-LSTM 網(wǎng)絡(luò)的在線多任務(wù)銷售預(yù)測(cè)模型。該模型能夠高效識(shí)別出時(shí)序數(shù)據(jù)中的深層次特征,以最小的信息損失來(lái)進(jìn)行建模,并且根據(jù)預(yù)測(cè)結(jié)果與實(shí)際結(jié)果的差值進(jìn)行動(dòng)態(tài)的調(diào)整模型,以確保預(yù)測(cè)效果長(zhǎng)期保持高精度。
CNN-LSTM 網(wǎng)絡(luò)由CNN 和LSTM 共同串聯(lián)組成,如圖1。
圖1 CNN-LSTM 模型架構(gòu)
模型能從滑動(dòng)窗口與預(yù)處理后的時(shí)間序列數(shù)據(jù)中提取復(fù)雜特征,用于銷量預(yù)測(cè),并能記憶復(fù)雜的不規(guī)則趨勢(shì)。模型的底層由CNN 組成,用來(lái)提取時(shí)序數(shù)據(jù)結(jié)構(gòu)中的特征;LSTM 使用經(jīng)CNN 層處理后的特征向量以及對(duì)應(yīng)的目標(biāo)向量作為輸入,經(jīng)過(guò)LSTM 得到的輸出作為全連接層的輸入,最終得到預(yù)測(cè)結(jié)果;通過(guò)對(duì)比模型在訓(xùn)練集和測(cè)試集上的損失,取得迭代后的模型作為最終模型來(lái)預(yù)測(cè)。
設(shè)X={x1,x2,…,xn} 為包括了時(shí)間信息的CNN[22]的輸入向量。
由于模型中CNN 的卷積層設(shè)置了三層,而卷積層參數(shù)誤差容易造成估計(jì)均值的偏移,所以CNN 網(wǎng)絡(luò)的池化層采取最大池化方式,從而減少這種誤差。如式3,其中T、R分別為Pooling 窗口的滑動(dòng)步長(zhǎng)以及輸出矩陣。池化層的優(yōu)點(diǎn)在于不僅能夠有效地減少過(guò)擬合的可能性還能減少計(jì)算量從而保留更多紋理信息,同時(shí)提取時(shí)間信息中更高維的信息。
LSTM[23]是CNN-LSTM 的下層,存儲(chǔ)關(guān)于通過(guò)CNN 提取重要特征的時(shí)間信息。來(lái)自前一CNN 層的輸出值被傳遞到門(mén)單元,門(mén)單元由輸入,輸出和遺忘門(mén)組成,并用于通過(guò)乘法運(yùn)算確定每個(gè)單獨(dú)存儲(chǔ)器單元狀態(tài)的機(jī)制。構(gòu)成LSTM 的存儲(chǔ)器單元通過(guò)激活每個(gè)門(mén)控單元來(lái)更新它們的狀態(tài),其被控制為0 和1 之間的連續(xù)值,其隱藏狀態(tài)ht每t步更新一次。
式(4)、(5)、(6)表示了LSTM 的輸入門(mén)、遺忘門(mén)和輸出門(mén),每個(gè)門(mén)的輸出由符號(hào):i,f和o表示。式(7),(8)表示通過(guò)輸入,遺忘和輸出門(mén)確定的單元狀態(tài)和隱藏狀態(tài),它們用c和h表示。W是每個(gè)門(mén)單元的權(quán)重矩陣,b是偏置。Pt包含時(shí)間信息的關(guān)鍵特征作為池化層在t時(shí)刻的輸出并用作LSTM 存儲(chǔ)單元的輸入。通過(guò)LSTM 來(lái)為CNN-LSTM 網(wǎng)絡(luò)模型進(jìn)行時(shí)序建模能夠提供比傳統(tǒng)的RNN 模型更好的預(yù)測(cè)性能。表示逐點(diǎn)乘積。
又由于信息化技術(shù)在企業(yè)中的應(yīng)用非常廣泛,這使得企業(yè)的銷售數(shù)據(jù)能夠快速更新,幫助模型根據(jù)線上的反饋數(shù)據(jù),實(shí)時(shí)快速地進(jìn)行模型調(diào)整。區(qū)別于離線學(xué)習(xí)模型,在線學(xué)習(xí)是一種模型的訓(xùn)練方法,本質(zhì)上是基于反饋的權(quán)重調(diào)整機(jī)制。
在線學(xué)習(xí)模型的訓(xùn)練流程包括:將模型的預(yù)測(cè)結(jié)果展現(xiàn)給管理者,并暫時(shí)存貯在緩沖區(qū),然后收集用戶的反饋數(shù)據(jù),再用來(lái)訓(xùn)練模型,從而形成閉環(huán)的系統(tǒng)。在線學(xué)習(xí)的原理與自動(dòng)控制系統(tǒng)相似,但又不盡相同,二者的區(qū)別是:在線學(xué)習(xí)的優(yōu)化目標(biāo)是將整體的損失函數(shù)最小化,而自動(dòng)控制系統(tǒng)則是要求最終結(jié)果與期望值的偏差最小。多數(shù)學(xué)者提出的預(yù)測(cè)模型的訓(xùn)練方法大都是靜態(tài)、離線的,不會(huì)與實(shí)時(shí)采集的數(shù)據(jù)狀況有任何交集,雖然可能在某一段時(shí)間內(nèi)取得的預(yù)測(cè)效果好,但不能確保預(yù)測(cè)效果長(zhǎng)期的保持高精度。而在線學(xué)習(xí)模型的訓(xùn)練方法則不同,其會(huì)根據(jù)線上預(yù)測(cè)的結(jié)果動(dòng)態(tài)的調(diào)整模型。如果模型預(yù)測(cè)錯(cuò)誤,本身會(huì)及時(shí)做出修正,該方法與模型之間的交互流程如圖2 所示。
首先,初始化模型參數(shù)的權(quán)重,根據(jù)滑動(dòng)窗口算法選取訓(xùn)練樣本實(shí)例,使訓(xùn)練樣本持續(xù)到來(lái),從而減少過(guò)多樣本帶來(lái)的阻塞。第二步,使用實(shí)時(shí)訓(xùn)練的模型預(yù)測(cè)出當(dāng)前結(jié)果,做出相應(yīng)的決策。第三步,將預(yù)測(cè)值和實(shí)測(cè)值進(jìn)行比較,依據(jù)損失函數(shù)得出誤差(loss)。第四步,利用損失函數(shù)的梯度更新當(dāng)前的決策,反向傳播更新模型的權(quán)重,直到損失值很小或者不再下降,即當(dāng)損失函數(shù)是連續(xù)凸函數(shù)時(shí),在線梯度下降可以達(dá)到最優(yōu)。
實(shí)驗(yàn)數(shù)據(jù)來(lái)自寧波M 公司在電商平臺(tái)上的真實(shí)數(shù)據(jù),企業(yè)提供了從2015 年1 月1 日至2019年8 月31 日10 家商店的50 種商品共913000 條銷量時(shí)序數(shù)據(jù)。目的是預(yù)測(cè)出2019 年9 月1 日到11 月30 日的每個(gè)店鋪中每個(gè)商品的銷量。預(yù)測(cè)評(píng)價(jià)指標(biāo)采用平均絕對(duì)百分比誤差(Symmetric mean absolute percentage error,即SMAPE)來(lái) 衡量,其計(jì)算公式為:
首先對(duì)收集來(lái)的真實(shí)數(shù)據(jù)先進(jìn)行去符號(hào),去標(biāo)簽等預(yù)處理進(jìn)行數(shù)據(jù)清洗;對(duì)于CNN 網(wǎng)絡(luò)來(lái)說(shuō),首先輸入數(shù)據(jù)要能夠包含年、月、周、日的時(shí)間信息以及對(duì)應(yīng)的銷量信息作為特征;其次LSTM 的輸入數(shù)據(jù)要包含一定時(shí)間間隔內(nèi)的過(guò)去的銷量,這個(gè)時(shí)間間隔可以是多步,也可以是一步。考慮到不同年份之間銷量的線性關(guān)系,將時(shí)間間隔設(shè)置為一步,即生成對(duì)應(yīng)時(shí)間過(guò)去一天的銷售數(shù)據(jù),數(shù)據(jù)處理的完整流程如下:
表1 模型輸入數(shù)據(jù)處理流程
處理完成后的數(shù)據(jù)共有1826 行,1019 列。將時(shí)間信息與過(guò)去一天的銷售量信息共519 列作為輸入數(shù)據(jù)。其中,item_i_store_j_sales 代表商店j中商品i 的銷量。
此外,由于數(shù)據(jù)的輸入將采用追加方式將其在訓(xùn)練的過(guò)程中不斷地輸入到CNN-LSTM 模型中來(lái)進(jìn)行模型調(diào)節(jié)。由于神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)輸入會(huì)造成一定的抖動(dòng),所以采用滑動(dòng)窗口算法來(lái)消除這種抖動(dòng),定義窗口大小為N,步長(zhǎng)n,時(shí)間間隔T,窗口中的第一天為θ。具體流程為:選取時(shí)間跨度為N 的數(shù)據(jù)量輸入到模型中并訓(xùn)練模型,當(dāng)時(shí)間間隔不變時(shí),就執(zhí)行N=N-θ+n(窗口滑動(dòng)),并以此循環(huán)往復(fù)。本次實(shí)驗(yàn)的初始階段選取窗口大小為7 天,步長(zhǎng)、時(shí)間間隔為1 天。在實(shí)際的程序設(shè)計(jì)中,由于滑動(dòng)窗口模塊被封裝,因此使用者只需改變?nèi)肿兞考纯伞F渚唧w流程如下圖:
圖3 基于滑動(dòng)窗口的數(shù)據(jù)輸入機(jī)制
表2 CNN-LSTM 網(wǎng)絡(luò)參數(shù)選擇
在CNN 全連接層中,為了防止模型過(guò)擬合,使用dropout 策略來(lái)調(diào)整參數(shù),并將保留概率設(shè)置為0.2。實(shí)驗(yàn)通過(guò)觀察驗(yàn)證集上的誤差以及使用網(wǎng)格搜索方法來(lái)確定最終模型的超參數(shù),表5 按網(wǎng)絡(luò)結(jié)構(gòu)順序展示了各層的參數(shù)選擇。
本文用CNN-LSTM 模型與單個(gè)的LSTM 模型進(jìn)行預(yù)測(cè)誤差的對(duì)比,還分析了在訓(xùn)練過(guò)程中加入的在線學(xué)習(xí)算法,證明其為模型的預(yù)測(cè)效果帶來(lái)的提升。
表3 顯示了部分混合模型、單一模型的預(yù)測(cè)值以及真實(shí)值,真實(shí)值為數(shù)據(jù)中2019 年相應(yīng)時(shí)間的商品實(shí)際銷售值。表4 顯示了混合模型與單一模型在整個(gè)測(cè)試集上的SMAPE(平均絕對(duì)百分比誤差)。
表3 混合模型與單一模型的部分預(yù)測(cè)結(jié)果
表4 混合模型與單一模型的SMAPE
從表3 中可以看出,相比于單一的LSTM 模型,CNN-LSTM 模型對(duì)產(chǎn)品銷售的預(yù)測(cè)結(jié)果與編號(hào)1-5 的產(chǎn)品實(shí)際銷量是最接近的,進(jìn)一步驗(yàn)證了加入的CNN 網(wǎng)絡(luò)的有效性。從表4 可以觀察到,CNN-LSTM 網(wǎng)絡(luò)在整個(gè)測(cè)試集上的誤差比單一的LSTM 低了4 個(gè)百分點(diǎn)。當(dāng)預(yù)測(cè)的數(shù)量或規(guī)模進(jìn)一步增加時(shí),誤差的降低能夠?yàn)槠髽I(yè)減少供應(yīng)鏈的成本。此外,為了體現(xiàn)在線學(xué)習(xí)算法為模型帶來(lái)的預(yù)測(cè)性能的改善,實(shí)驗(yàn)隨機(jī)抽取了10 號(hào)店鋪的50 號(hào)商品作為觀察目標(biāo),觀察離線模型與采用在線學(xué)習(xí)的模型在不同時(shí)間跨度上的預(yù)測(cè)效果,如圖4,圖5 和圖6 所示。
圖4 時(shí)間跨度為15 天時(shí)的預(yù)測(cè)效果比較
圖5 時(shí)間跨度為30 天時(shí)的預(yù)測(cè)效果比較
圖6 時(shí)間跨度為60 天時(shí)的預(yù)測(cè)效果比較
可以明顯的觀察到,使用在線學(xué)習(xí)方法后,模型在三個(gè)時(shí)間段上預(yù)測(cè)的誤差在大部分的時(shí)間內(nèi)要小于離線模型所預(yù)測(cè)結(jié)果的誤差。雖然在短期預(yù)測(cè)時(shí),兩者都未取得良好的預(yù)測(cè)效果,但是由于缺乏更多維度的特征,一些時(shí)序點(diǎn)可能是異常值或者是商店進(jìn)行了對(duì)銷售影響大的活動(dòng),例如周年慶或者節(jié)假日打折促銷。同時(shí),混合模型在長(zhǎng)時(shí)間預(yù)測(cè)效果上顯示了準(zhǔn)確的趨勢(shì),因此對(duì)于模型在異常值上表現(xiàn)不佳的情況,可以視為模型并沒(méi)有產(chǎn)生過(guò)擬合的情況或者模型的魯棒性很好;除此之外,管理者通過(guò)自身的運(yùn)營(yíng)經(jīng)驗(yàn)也可以設(shè)置一個(gè)置信區(qū)間來(lái)彌補(bǔ)缺陷。
為了證明CNN-LSTM 模型比其他方法具有更好預(yù)測(cè)性能和泛化能力,實(shí)驗(yàn)不僅比較了混合模型與單一LSTM 模型的預(yù)測(cè)性能,還與采用經(jīng)濟(jì)預(yù)測(cè)方法、回歸預(yù)測(cè)方法以及機(jī)器學(xué)習(xí)方法進(jìn)行了預(yù)測(cè)效果的比較,各模型在測(cè)試集上的SMAPE 如表5:
表5 其他模型的SMAPE
從表5 可以看到:模型Holt-Winters 與LR 取得的誤差是所有誤差中最大的,XGBoost 模型雖然取得了其中最小的誤差,但是誤差仍然比本文提出并使用的CNN-LSTM 網(wǎng)絡(luò)模型要高。一方面是因?yàn)镃NN-LSTM 模型能夠高效地識(shí)別出時(shí)序數(shù)據(jù)中的深層次特征,即數(shù)據(jù)的時(shí)空相關(guān)性,提高實(shí)驗(yàn)結(jié)果的準(zhǔn)確率;另一方面是因?yàn)楸疚氖褂玫臄?shù)據(jù)集經(jīng)過(guò)一系列預(yù)處理,使得輸入的數(shù)據(jù)格式更加規(guī)范,方便特征的提取。
本文針對(duì)目前銷售預(yù)測(cè)模型無(wú)法解決在線、多任務(wù)銷售預(yù)測(cè)問(wèn)題,提出了CNN-LSTM 模型,并在模型訓(xùn)練過(guò)程中采用閉環(huán)在線訓(xùn)練方法對(duì)模型進(jìn)行進(jìn)一步的調(diào)整。實(shí)驗(yàn)證明:CNN-LSTM 網(wǎng)絡(luò)以最小的信息損失來(lái)進(jìn)行建模和去噪,使得模型保留了更多的時(shí)間信息和規(guī)則,且模型更具可靠性;而在訓(xùn)練過(guò)程中加入的在線學(xué)習(xí)方法也使得模型在預(yù)測(cè)準(zhǔn)確性上得以提高。實(shí)驗(yàn)以SMAPE 為評(píng)價(jià)標(biāo)準(zhǔn)來(lái)衡量模型的預(yù)測(cè)性能,結(jié)果表明:混合模型不僅取得了最小的誤差,而且可靠性比單一的LSTM 模型更好,在輔助企業(yè)的庫(kù)存管理、經(jīng)營(yíng)管理、供應(yīng)鏈管理中有較高的應(yīng)用價(jià)值。由于CNN-LSTM 模型總體的訓(xùn)練時(shí)間較長(zhǎng),因此在今后的研究中可以考慮將模型在分布式環(huán)境下進(jìn)行計(jì)算。
阜陽(yáng)師范大學(xué)學(xué)報(bào)(自然科學(xué)版)2021年2期