唐甜甜,周 偉
(蘭州交通大學 數理學院,蘭州 730070)
近年來,深度學習(DL)方法和技術已成功應用于各種現實世界中具有挑戰性的預測問題,包括時間序列預測。企業根據消費者的數據挖掘規律,使用深度學習模型作出未來的預測,并在此基礎上決策出更優的營銷方案。因此,現代企業要想優化營銷策略使收益最大化,就必須首先進行銷售額預測,這為企業未來發展奠定了堅實的基礎。
由于深度學習帶來了深刻的性能改進,機器學習(ML)得到了快速發展。深度學習在機器學習的許多領域都超越了以往的先進方法,比如自然語言處理[1]、圖像處理[2]和語音生成[3]。文獻[4]利用時間序列的值構建統計模型,用未來價格的走勢提取有用的市場信息。
對金融資產未來走勢進行回歸的任務一直是許多研究者最近工作的主題,如文獻[5-7]。使用人工神經網絡等機器學習組件改進和增強已驗證的模型。采用新的混合模型和神經網絡對原有的性能進行改進[8-10]。文獻[11-12]提出了利用自編碼器產生最優投資組合的深度投資組合理論,并將自動編碼器用于對價格進行編碼;然后,對模型進行微調,以預測價格的變動幅度是否會超過中間值以及這種變動的方向。隨著深度學習概念的提出,商業領域展現了濃厚的興趣,并逐步成為研究的主導者。文獻[13-15]采用雙線性投影思想、智能選擇和時間注意機制相結合的神經網絡結構來預測未來的價格運動?;谏疃葘W習領域,分析不同神經網絡模型的處理能力,憑借著LSTM能充分考慮時序數據先后關系,文獻[16-20]將CNN提取的有效特征輸入到LSTM,構建CNN-LSTM組合模型。
值得一提的是,電商以及零售類銷售數據不是平穩的,因此,任何機器學習模型都很難預測未來值。在此基礎上,以某潔日用品促銷決策銷售數據為研究對象,收集了銷售額和與銷售額發展趨勢相關的特征作為建模數據,在對原始數據進行平穩特征轉換、異常值處理、缺失值填充、獨熱編碼以及變量相關性分析等工作的基礎上,主要工作為:
1)提出結構化方法將原數據轉換為平穩銷售值特征,該方法可以與深度學習CNN-LSTM串聯預測模型有效結合。
2)將所提出的組合模型與先前提出的采用平穩價格特征的方法在測試集上的預測結果與機器學習算法(XGBoost、SVM)、神經網絡模型(CNN、LSTM),就擬合效果和評判指標兩方面進行比較分析,驗證了所提出的模型更具穩健性和優越性。
利用時間序列的值,如價格波動的金融產品交易市場,可以構建統計模型,協助提取有用的信息,即市場的當前狀態的概率和一組可能的未來狀態,如價格或波動性變化。許多模型,比如布萊克·斯科爾斯·默頓模型[4],試圖用數學方法推導出期權的價格,并可用于提供對未來價格走勢的有用指示。
使用人工神經網絡[8]等機器學習組件改進和增強了Garch等已驗證的模型。采用新的混合模型和神經網絡對原有的性能[9]進行改進。在文獻[10]中,神經網絡被用來預測未來匯率。對該模型進行了日預測和年預測的檢驗,得出了短期預測更準確的結論。在文獻[11]中,提出了利用自編碼器產生最優投資組合的深度投資組合理論。這種方法的表現好于幾個已確立的基準,比如生物技術IBB指數。同樣,在文獻[12]中,另一種類型的自動編碼器被稱為受限玻爾茲曼機(RBM),用于對股票的月末價格進行編碼。然后,對模型進行微調,以預測價格的變動幅度是否會超過中間值以及這種變動的方向。隨著深度學習概念的提出,商業領域展現了濃厚的興趣,并逐步成為研究的主導者。在文獻[13]中,采用雙線性投影思想和時間注意機制相結合的神經網絡結構來預測(limit order book,LOB)中價。類似地,在文獻[14-15]中,利用LOB數據以及機器學習方法,如多線性方法和智能特征選擇來預測未來的價格運動。
針對單一模型泛化能力較弱的問題,文獻[16-20]結合CNN和LSTM較為新穎的學習模型來預測股票的指數、CPI以及短期電力負荷,由于深度學習方法的非平穩特性,直接利用這類數據也是不可能的。因此,在特征工程時兼顧提取特征方法使它們生成平穩特征,結合CNN的特征提取特性和LSTM的時間序列建模能力構建串聯CNN-LSTM模型。此模型有助于企業深入理解銷售額的影響因素以及與變量間的相關性,由此著手來深入考察日用品經濟的走勢和變化情況,作出更優的決策。
本節還將引入前面描述的兩個模型的強大組合。CNN模型使用因果卷積為每個時間步生成一組特征。本質上,CNN是銷售時間序列數據的特征提取器,它產生了與原始特征長度相同的新的特征時間序列,每個特征都有相對應的時間步長。然后在CNN生成的時間序列上應用LSTM層,然后為每個時間步長生成一個標簽。這種工作方式與完全連接層非常相似,但是LSTM允許模型合并過去步驟中的特性,而不是完全連接層。構建CNN-LSTM模型的預測流程,見圖1。

圖1 CNN-LSTM模型預測流程框圖
基本思路是:
1)特征工程將原始數據映射到機器學習特征,包括將原銷售值轉換為平穩銷售特征、對數據進行異常值檢測、缺失值的查看、獨熱編碼和相關性分析等基礎問題。
2)CNN-LSTM模型主要是由CNN和LSTM網絡串聯組成,輸入層接收特征工程處理完的日用品銷售額數據,同時切分數據集。
3)CNN層接收影響銷售額及多影響變量的輸入,并將卷積過程中提取的特征信息傳遞到LSTM層。
4)LSTM層實現對目標變量銷售額準確的時間序列預測并進行建模。
5)最后,全連接層將預測的特征向量以一維形式輸出,生成的預測數據通過評價指標來評估模型的性能。
首先,該網絡起始層為輸入層,接收銷售額以及相關的多種變量,即各種促銷方式。其隱層網絡結構如圖2所示。CNN層實現各種促銷方式特征變量的卷積操作并將結果輸出到下一層,即在處理銷售額序列時,每個filter即權重參數矩陣提取每個特征圖上的中心以及邊緣信息,通過矩陣求內積的計算方式將特征結果抽取并表達。

圖2 CNN網絡結構圖
在該網絡層中,引入因果填充來避免使用未來信息生成當前時間步長的特征。使用一系列卷積層可以捕獲時間序列的精細時間動態,并將時間上的距離特征關聯起來。

(1)


(2)
池化層的作用是為了減小特征圖的空間大小,減少網絡的訓練參數。池化層之后的特征圖大小遵循向下取整原則,在下采樣的過程中,特征圖具有局部平移不變性。銷售額預測采用最大池化操作,通過前一層級的最大值來表征可以抑制過擬合的發生,最大池化層操作可表示為:
(3)
LSTM是CNN-LSTM模型中CNN的后續連接層。LSTM將數據傳送至輸入門,通過遺忘門中的權重矩陣來選擇記憶或遺忘前一層的信息,以及記憶前隱層信息的比重。融合新特征信息和更新前隱層信息來保持長期記憶,存儲信息的單元需激活每個門單元來更新細胞狀態,每個門單元都是被控制在0~1的連續值。LSTM的3個門(遺忘門、傳入門和輸出門)獨立存儲單元的狀態,每一個流程都由矩陣間求內積的方式來確定。
因為使用的是滿填充的因果卷積,所有的卷積層產生相同的時間步長t,因此不需要擔心標簽對齊到正確的時間步長。LSTM網絡結構如圖3所示。

圖3 LSTM網絡結構圖
在t階段,將帶有時間信息的it傳送給輸入門,通過遺忘門ft來更新隱層ht的特征信息,最終將攜帶隱含信息的向量通過門ot輸出,那么該單元的更新情況可表示為:
it=σ(Wpipt+Whiht-1+Wcict-1+bi)
(4)
ft=σ(Wpfpt+Whfht-1+Wcfct-1+bf)
(5)
ot=σ(Wpopt+Whoht-1+Wcoct+bo)
(6)
式中:第t階段的細胞狀態為ct,σ一般采用tanh激活函數,將輸入映射到[-1,1]。共享權重矩陣為W,偏移向量記為b。LSTM在t階段的ct和ht的更新情況可表示為:
ct=ftct-1+itσ(Wpcpt+Whcht-1+bc)
(7)
ht=otσ(ct)
(8)
全連接層將輸入設為hl={h1,h2,…,hl},其中l為LSTM的單元數,該層相應的運算公式為:
(9)

她一邊啃面包,一邊把和她工作時間有沖突的公司都勾了出來。如果招聘方向和她的專業很吻合,就一定要想辦法調整上班時間,如果不太吻合,就先不去了,到時讓同學幫忙拿一份招聘材料,按照流程投遞簡歷就行了。差十分鐘六點半時,顏曉晨趕到了藍月酒吧。
(10)

(11)
(12)
在已有研究經驗的基礎上,首先對和鯨社區公開數據集,即某潔日用品銷售額相關數據進行篩選分析,然后選取微信推送次數、本地電視廣告投入、線上廣告投入、門店海報陳列、門店銷售人員、門店促銷事件等6個特征作為影響銷售額的變量來考慮其與銷售額之間的動態關系。此6個特征變量與目標變量銷售額為同一頻率數據。
如果沒有某種預處理,原始數據不能直接用于任何深度學習任務。對于日用品的銷售額來說,可能會因為節日促銷、“雙11”活動等而波動和增加,達到從未見過的水平。這意味著銷售值的統計數據會隨著時間發生顯著變化,使得時間序列是非平穩的。簡單地將所有銷售值歸一化并不能解決非平穩性,因為總是會有隱藏的數據,這些數據可能會改變當前數據中不存在的值的分布范圍。為了解決這個問題,提出了將價格數據完全轉換為平穩特征的新方法。
2.2.1異常值及缺失值處理
建模需要對數據進行缺失值處理并剔除異常值,查看初始數據,發現“本地電視廣告投入”變量有缺失值,用中位數填補“本地電視廣告投入”的空值。該數據集無明顯的異常值,則無需處理。
2.2.2數據預處理及獨熱編碼
1)歸一化
數據分布趨于正態化可加速模型的收斂,故將其進行歸一化處理:
(13)
通過式(13)將變量數據處理為[0,1]之間的數據,并將特征工程處理后的數據作為CNN-LSTM網絡的輸入。
這種歸一化就避免了一個主要的問題,那就是日用品銷售額的分布變化,這可能是由節假日或在較長時間內可能發生的大變動等事件引起的。
不幸的是,這給深度學習模型預測帶來了另一個重要問題。除去特殊節日以及促銷活動,其他日子的銷售額之間的差異總是非常小,使用標準的統計數據標準化方法(z-score)提取這種數據的特征是困難的。在這項工作中,提出了一個新的方法來補救這個問題。
2)數據標準化
不是規范化數據的原始值,而是利用自然對數(ln)對訓練和測試數據進行了轉換,以均勻化模式的可變性和穩定性,并降低指數趨勢,再以中間價格替代原始銷售值。這消除了銷售值的非平穩性,使特征提取過程更容易,并顯著提高了深度學習模型的性能。
(14)
2.2.3變量間的相關性分析
通過表1可以發現,本地電視廣告投入與銷售額之間的相關性達到0.588 3,是9種促銷方式中最強的;與銷售額關系較強的還有門店銷售人員、門店海報陳列。而線上廣告投入與門店促銷事件、本地電視廣告投入與門店銷售人員間存在較強的正相關性;考慮到是否需要對數據進行降維,用熱力圖描繪所有變量之間的相關性,結果如圖4所示。

圖4 熱力圖

表1 相關系數
從上述得到的熱力圖可以看出,原始數據之間的相關系數基本都小于0.5,不存在非常顯著的相關關系,說明數據分布離散,特征變量之間基本不存在冗余,因此未采用PCA進行降維處理,進而丟失太多信息。相關系數的大小反映出不同促銷手段對商品銷售額的影響力度,以便商家優化促銷方式。
在構建CNN-LSTM模型的基礎上,在運行Windows 10操作系統的PC上用Python 3.7編寫代碼。深度學習模型使用keras庫作為后端實現,而機器學習模型使用sklearn庫實現。通過學習經特征工程處理的訓練數據集得到預測模型,在訓練模型時,迭代次數的取值對最終預測模型的精度有很大影響。迭代次數少,模型不能完全訓練,導致模型擬合不足。如果迭代次數過多,模型會過度學習,浪費計算資源,導致模型過度擬合,計算速度變慢。設置迭代次數為1 000次,模型在訓練過程中自動保存最優模型。從考慮時序數據特征的角度搭建卷積、池化、LSTM和全連接層其網絡層級的結構。調參是一個動態的行為,它是可學習的,是一個不斷優化的過程。每個層級都可以調整filter數目、kernel大小和stride數目等參數,模型收斂速度以及學習性能與這些參數的設置息息相關。為了更好地進行銷售額預測分析,調整參數來優化網絡結構。
CNN-LSTM網絡結構參數設置為:所有LSTM和CNN-LSTM的模型都經過50個時期的自適應矩估計(ADAM)訓練,批量等于128,使用均方損失函數,激活函數選取ReLU函數,LSTM中激活函數選取tanh函數。ADAM算法確保在訓練過程中,學習步驟相對于參數梯度是尺度不變的。此外,為了確保在卷積運算過程中不會遺漏任何特征,應用了相同的填充。從預測的角度來看,預測范圍對于模型的預測精度至關重要。預測范圍代表預測下一個每日銷售額的預測模型所考慮的每日銷售額的數量。更具體地說,設置預測范圍等于7的情況下,將7天的影響因素數據作為特征變量,意味著模型考慮了從7天收集的數據,并用于預測第8天的銷售額,即目標變量。在本研究中,所有評估模型的回歸性能通過MSE、MAE和R2來測量。
2.4.1預測結果分析
將測試數據傳送到訓練好的CNN-LSTM模型中,得到日用品銷售額預測數據和擬合情況,見圖5。從擬合效果可以看出,模型的預測值與實際值較為接近。

圖5 CNN-LSTM預測數據曲線
根據式(10)—(12)的誤差評判指標計算得到預測準確性的誤差,見表2。

表2 CNN-LSTM模型預測結果
可以看出,模型的誤差值相對較小,這可能是因為模型引入了微信推送次數、本地電視廣告投入、線上廣告投入、門店海報陳列、門店銷售人員、門店促銷事件等作為影響因素。另外,從指標值得出模型在預測分析中表現較為出色。
2.4.2與傳統機器學習模型的比較
CNN-LSTM模型與XGBoost和SVM模型的擬合曲線見圖6。為了增加模型擬合效果的清晰度,截取部分測試集來展示。總體而言,從數據分布擬合情況來看,CNN-LSTM模型生成的預測效果曲線偏離程度不大,而傳統模型的預測值相對實際值來說聚集效果也較好,但在個別轉折點出現了離群值。

圖6 模型預測結果1
得到CNN-LSTM、XGBoost和SVM模型的預測評價指標MSE、MAE和R2,見表3。

表3 CNN-LSTM與傳統模型預測結果
可以看出,CNN-LSTM模型的MSE和MAE數值均為最小,R2數值最大,說明模型擬合效果最好,其次是SVM模型,且XGBoost模型和SVM模型在預測方面性能相差不大。
2.4.3與其他深度學習方法的比較
將CNN-LSTM模型與單一LSTM、CNN深度學習模型進行比較,在測試集上得到預測結果,見圖7。

圖7 模型預測結果2
在深度模型預測中,CNN-LSTM模型依然表現突出,但三者之間預測曲線都相對緊密地圍繞在實際值附近。得到CNN-LSTM與LSTM、CNN模型的預測評價指標MSE、MAE和R2,見表4。

表4 CNN-LSTM與其他深度學習模型預測結果
可以看出,CNN-LSTM模型的預測誤差相對較小,說明模型的學習能力較好,在測試集上的表現更為出色,在預測精度方面也略優于LSTM、CNN模型。同時,單一的LSTM和CNN深度學習模型的預測誤差也均相對較小。
提出了一種新的將銷售數據轉換為平穩特征的方法,適用于不同的深度學習模型。在商業領域,不少學者研究預測價格,但對銷售額影響因素分析及預測的甚少。故針對日用品銷售額預測,為了增強模型的可解釋性,先對數據進行特征工程操作以及變量間的相關性分析,然后將CNN和LSTM直接融合串聯形成CNN-LSTM深度網絡模型。為了評判模型的性能,畫出生成預測結果擬合曲線并計算指標值,從曲線擬合效果和評價指標的反饋中,展現出CNN-LSTM模型在預測分析中的獨特優勢。且在測試集上的穩健性比XGBoost、SVM、LSTM、CNN模型都略勝一籌。為經濟領域企業調整促銷方式,進而獲取更高的銷售額提供了方案。
未來有幾個有趣的研究方向。與所有的深度學習應用一樣,更多的數據將使用更大的模型,神經網絡也可以用于執行一種智能提取有用的特性,從一個特定的深度和有限時間間隔的事件,這將避免以后失去信息,并允許模型產生預測一個特定時期內而不是之后的事件。另一個重要的補充是注意機制,它將允許網絡更好地觀察特征,允許它忽略數據的噪聲部分,只使用相關信息。