當前位置:
首頁 > 知識 > Kaggle 商品銷量預測季軍方案出爐,應對時間序列問題有何妙招

Kaggle 商品銷量預測季軍方案出爐,應對時間序列問題有何妙招

AI 研習社消息,Kaggle 上 Corporación Favorita 主辦的商品銷量預測比賽於兩個月前落下帷幕,此次比賽的獎金池共計三萬美元,吸引到 1675 支隊伍參賽。

近日,Private Leaderboard 上的亞軍 SoLucky 團隊在 arxiv 上發表了一篇論文,闡述了其獲勝方案,AI 研習社對論文內容進行編譯整理如下:

作者參加了在 Kaggle 上舉辦的 Corporacion Favorita Grocery Sales Forecasting 銷量預測比賽,並取得了第二名的成績。

這場比賽是基於時間序列數據的基礎機器學習問題,論文中闡明了總體分析和解決方案。

作者的方法基於空洞卷積神經網路(dilated convolutional neural network)並進行了改善,來對時間序列進行預測。利用這種技術,在 n 個示例批次中不斷迭代,能夠快速和準確地對大量時間序列數據進行處理。


比賽背景

Kaggle 等競賽平台舉辦的時間序列比賽目前已經成為機器學習流行賽事,這些競賽有助於推進機器學習頂尖技術的發展,將其用於實際領域。

時間序列是不太為人所知的分析領域。由於數據存在著季節性、動態性和周期性的特徵,數據序列是非線性的,並存在雜訊,因此很難準確進行識別和預測。

神經網路在近幾年的熱度急劇增長,這使人們對預測有了截然不同的理解。硬體的進步使得我們能夠在一定時間內利用深度神經網路解決問題。目前,深度學習是一個可行的解決方案,利用這項技術,近年來研究者們在基準數據集的分類精度上打破了很多記錄。

作者在本文中討論了解決 Corporacion Favorita Grocery Sales Forecasting 商品銷量預測問題的方法,描述並分析了將卷積神經網路應用於時間序列數據。


數據集描述

數據被分為兩部分——訓練數據和測試數據。訓練數據用於模型訓練,測試數據被分為幾部分,分別用於在公共和私人的排行榜上進行模型的準確性評估。這場比賽中,Corporacion Favorita 提供 125,497,040 個訓練觀察值和 3370,464 個測試觀察值。

數據集由按日銷售額、商店編號、商品編號和促銷信息組成。此外,主辦方還提供交易信息、石油價格、商店信息和假期。

該競賽使用 NWRMSLE(標準化加權均方根對數誤差)作為評價指標。


問題定義

實體店中的採購和銷售需要保持平衡。稍微將銷售預測過量,店裡就會積存許多貨物,要是積壓了不易儲存的商品會更加糟糕。而要是將銷量預測過低,設想一下,當顧客把錢都付了,卻發現沒貨,那這家店的口碑將會急劇下降。

此外,隨著零售商增加新的門店,那裡的顧客又可能存在獨特的需求,比如他們想要新的產品,口味隨季節而變化,那問題將變得更加複雜,產品市場如何真的很難預知。

在這次比賽中,主辦方希望參賽者建立一個更準確的預測產品銷量的模型。作者的目標是建立一個可能應用於實際,並具有最高準確度的銷量預測模型。

主要存在如下三種挑戰:

雜訊數據:儘管組織者儘力準備並提供了大量數據,但其中存在有雜訊標籤的數據。有些數據(石油價格、假期、交易)與目標沒有關聯,在之後根本不會使用。

不可見數據:有這樣一種情況,在測試集中出現了不可見的數據。由於存在這類不可見的商店/商品數據,模型的行為將不可預測。原因如下:訓練集中不包括銷售額為 0 的記錄,但是測試集包含所有的商店/商品組合(不管商店此前是否銷售該商品)。最後,作者假設這些不可見的組合只是零銷售額數據,用 0 來進行替換。

準確度:因為這個實驗是嚴格按照比賽規則進行的,作者嘗試了所有可能用來提高預測準確度的方法。


可選方案

下面的這些架構基於神經網路,但在這個比賽中,最終結果不如作者最後使用的 WaveNet 模型,但他們相信這種架構可以提供一種完全不同的方法來解決問題,產生出一些有趣的洞見,甚至在其他比賽中超越 WaveNet。

循環神經網路

循環神經網路(RNN)可以將當前節點的輸出作為下一個節點的輸入,可以如下描述:相較於其他深度學習演算法,RNN 已經被廣泛用於預測時間序列問題,並被定位為預測此類數據數組問題的最先進的方法。

這些網路的效率可以通過重複的連接來解釋,這些連接允許網路訪問以前的時間序列值的整個歷史。

可以將 RNN 看成同一個網路的多個副本,每個副本會傳遞消息給後續副本。由於自身屬性,RNN 與序列和列表密切相關。在過去的幾年中,將 RNN 應用於時間序列預測問題上已經取得了驚人的成果。

其中具有象徵意義的是 LSTMs,這是一種非常特殊的 RNN,在許多任務上,它比標準 RNN 的表現要好得多。

GRU 架構也可以作為解決當前問題的方法,它們與 LSTMs 相似,結構更簡。


作者的方法

基於 WaveNet CNN 網路並做了一些額外的擴展和修改。

近年來,深度學習技術的發展促使研究人員探索出各種時間序列預測方法,其中就有 WaveNet。WaveNet 是一個生成模型,這意味著模型可以針對一些條件輸入生成實值數據(real-valued data)序列。

該架構背後的核心思想是空洞因果卷積(dilated causal convolutions)。由於沒有循環連接和跳躍步驟,空洞卷積訓練起來比 RNN 要快。

目前,因果卷積存在的問題之一是:為了增大感受野,需要用到多層卷積或者或很多大濾波器。

空洞卷積不存在這些問題,它使用上採樣濾波器代替特徵映射(feature maps)。換句話說,空洞卷積允許只增加核的視野在層間維持特徵映射的大小,另外,可以用更少的參數捕獲輸入的全局視圖。

為了能夠產生 16 天的預測值,作者對模型進行了修改。因為訓練使用的是下一步預測值,錯誤會持續累積。為了解決這個問題,他們使用 sequence to sequence 方法,編碼器和解碼器不會共享參數。解碼器將會在產生長序列時處理累積的雜訊。這裡還用了亞當優化器更新網路權重。數據是通過小批次產生的,隨機採樣 128 個序列。

由於整個數據集大約包含 17 萬序列 x 365 天,所以在每次訓練迭代中都能向模型輸入不同的數據。考慮到這一點,該模型能很好地處理過擬合問題。

在訓練過程中,學習率衰減係數設置為 0.0005。作者將過去 16 天的訓練數據做成一個集合,並將其用於驗證。銷售量的變化和促銷信息可以用來生成的季度和年度模型。

在最後若干個上千或上萬的的小批次中,模型會稍微出現過擬合,所以結果會有一點波動。

為了解決過擬合問題,平滑短期波動,著重於長期的動態性和周期性趨勢,作者用到移動平均法(Moving average)。在 5000 次小批量迭代之後,模型開始預測,之後每過 2000 次迭代產生預測。在特定的迭代之後,如下圖所示,5 個模型的平均性能優於單個模型。為了將模型準確性進一步提高,最終,作者使用指數移動平均法(exponential moving average),利用局部交叉驗證(local cross-validation)計算出平滑因子(smooth factor)。

該模型有很好的捕獲時間序列數據規律的能力,因此很多特性都沒有被使用。其中一些是單位產品銷售額和促銷信息。


總結

企業面臨一個明顯的問題——市場是不可預測的。任何銷售預測,無論你的分析條件多麼嚴謹,都可能是完全錯誤的。如果市場狀況保持相對不變,一種可靠的預測方法就是使用歷史數據。作者的經驗表明,卷積神經網路非常善於處理歷史數據,捕捉季節性的趨勢、周期和無規律的趨勢,如下圖所示。

他們描述了一種使用 CNN WaveNet 的方法,這是一個 sequence to sequence 架構,在銷售預測方面,它是解決時間序列預測問題的有效方法(如下圖)。

在未來,需要對層數更多的 CNN 進行更深入的研究,以完成更複雜的任務。為了訓練更深的網路,需要大量的數據。在未來,對不同類型和領域的數據進行分析可能是另一個有趣的方向。此外,將不同技術融合起來也能獲得相當的準確性。

比賽地址:

https://www.kaggle.com/c/favorita-grocery-sales-forecasting

論文地址:

https://arxiv.org/pdf/1803.04037.pdf


福利時間

TensorFlow 是目前最活躍的深度學習框架。《TensorFlow 入門與實踐》基於 1.3 版本,首先介紹了它的安裝和基本用法,然後討論了深度學習的基本概念,包括神經網路前向計算、損失函數、反向傳播計算和優化函數等,接著介紹了卷積神經網路和循環神經網路,最後介紹了在大規模應用的場景下,如何實現分散式的深度學習訓練。

作者:羅冬日

定價:49.00元

頁數:180

講解深度學習的原理和 TensorFlow 框架應用,並配有翔實的代碼實例

通過本書,你能快速上手搭建一個深度學習應用

內容由淺入深,包含全連接網路、卷積神經網路和循環神經網路、分散式訓練等

趙娟(博士後,范德堡大學醫學中心 )、劉光遠(Facebook資深工程師 )、張科(微軟高級工程師) 聯袂推薦

AI 研習社和圖靈社區為大家準備了 3 本《TensorFlow 入門與實踐》,留言點贊數前 3 的用戶可以免!費!獲!得!活動截止時間為 3 月 20 日(周二) 中午 12 點,歡迎大家踴(花)躍(式)留言~

限時拼團

3 大模塊,30 個課時

高校數學系教授帶班

100% 學員好評

與 100 + 同學一起夯實數學基礎,走穩機器學習入門第一步!

新人福利

關注 AI 研習社(okweiwu),回復1領取

【超過 1000G 神經網路 / AI / 大數據,教程,論文】

Kaggle 大神 Eureka 的高手進階之路

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI研習社 的精彩文章:

微軟舉辦雲 AI 挑戰賽,對所有學科和領域開放
最實用的 50 篇文章,教你搭建機器學習 APP

TAG:AI研習社 |