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

 

https://baijiahao.baidu.com/s?id=1595331607299762312&wfr=spider&for=pchtml

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

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

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

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

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

比賽背景機器學習

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

時間序列是不太爲人所知的分析領域。因爲數據存在着季節性、動態性和週期性的特徵,數據序列是非線性的,並存在噪聲,所以很難準確進行識別和預測。性能

神經網絡在近幾年的熱度急劇增加,這令人們對預測有了大相徑庭的理解。硬件的進步使得咱們可以在必定時間內利用深度神經網絡解決問題。目前,深度學習是一個可行的解決方案,利用這項技術,近年來研究者們在基準數據集的分類精度上打破了不少記錄。學習

做者在本文中討論瞭解決 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

雷鋒網 AI 研習社編譯整理。

本文由百家號做者上傳併發布,百家號僅提供信息發佈平臺。文章僅表明做者我的觀點,不表明百度立場。未經做者許可,不得轉載。

相關文章
相關標籤/搜索