陶明遠
【摘要】客流預測是餐飲行業(yè)的重要問題,然而其存在影響因子多、相關關系復雜、歷史數據缺失等難題,要估計出較為準確的未來客流量并不容易。我們設計了一種深度神經網絡模型,通過長短期記憶網絡(LSTM)建??土鳉v史趨勢等時序特征,通過深度神經網絡(DNN)建模餐廳的靜態(tài)屬性和靜態(tài)時空特征,并將兩個網絡結合,進行聯合訓練?;冢℉oldings,2018)數據集上829家餐廳的歷史客流和餐廳屬性數據,我們建立了通用的的餐飲客流預測模型,可供餐飲企業(yè)在缺乏歷史數據積累的情況下直接應用,模型在下一日客流預測問題上取得了較優(yōu)的精度(MAPE=03611),對比常見的基線模型預測性能有顯著提高;
【關鍵詞】餐飲客流預測;深度學習;長短期記憶網絡
未來客流預測對餐飲業(yè)的成本控制、供應鏈管理、服務質量保障等問題能夠起到重要作用,而餐飲客流預測問題面臨著一系列難點:首先,客流量的影響因子除餐廳自身屬性(如品牌、菜系、價位、客戶評價等)之外,還包括一系列時空特征,其中動態(tài)的時間序列特征包括歷史客流趨勢、近期節(jié)假日等,靜態(tài)時空特征則包括餐廳的商圈、經緯度、周邊的其它餐廳分布、當時是周幾等;在與之類似的客流或銷量預測等問題上,當前的統計學習方法往往只對其中某個維度進行建模,或是對幾個維度使用不同模型分別建模:如(Ramos et al.,2015)使用狀態(tài)空間模型和ARIMA模型預測零售業(yè)銷量,使用歷史銷量的時間序列作為特征;(Aburto and Weber,2007)結合ARIMA和神經網絡模型,利用商品歷史銷量進行供應鏈需求預測;(Sun et al.,2009)在時裝零售領域使用極限學習機(ELM)利用商品自身屬性來預測銷量;(周健etal.,2014)在餐飲客流預測問題上,使用神經網絡對一些靜態(tài)特征(如當日天氣、是否周末等)建模,同時在特定的場景下(節(jié)假日前后)使用馬爾可夫鏈對客流時間序列建模,作為靜態(tài)模型的補充。據我們當前所知,還沒有一類方法能夠在客流預測問題上同時建模餐廳的靜態(tài)特征和時空特征;此外,對眾多傳統餐飲企業(yè),尤其是中小企業(yè),數據的缺失是客流預測問題的第二個難點:這些企業(yè)并沒有足夠歷史統計數據的支持,難以訓練出準確的預測模型。
本文中,我們針對上述的兩個問題,基于深度學習技術提出了一個端到端的聯合模型,能夠同時建模餐廳的自身屬性和動、靜態(tài)時空特征,最大程度地擬合了客流量和眾多影響因子的相關關系,同時數據集上基于829家餐廳的大量數據(而非具體的某個餐廳),訓練了一個通用的客流預測模型,在此基礎上只需要收集短期數據,即可直接應用到餐飲企業(yè)的實際運營中。
一、餐飲客流預測的深度聯合模型
(一)模型定義
我們定義時刻t的客流特征向量為ct,其中各維度代表時間維度上不同特征的取值,如時刻t的客流量、天氣、節(jié)假日情況等;定義某一家餐廳的靜態(tài)屬性向量為、,其中各維度代表該餐廳的自身屬性以及靜態(tài)時空特征,如價格、菜系、所在商圈、當日是周幾等,定義我們需要預測的t+n時刻的客流量為yt+n,則模型可以定義為:
yt+n=f(s,ct,ct-1,…,ct-k)
其中,k為模型的超參數,表示我們在預測客流量時最多考慮多少時間的歷史數據。下面我們探討模型拍勺具體形式。
(二)時間序列特征建模
在我們的數據集中,餐廳的歷史時序特征包括:
基于近年來遞歸神經網絡(RNNs)在序列建模上的巨大成功(LeCun et al.,2015),我們使用它來建立餐廳歷史客流趨勢的統計模型,考慮到餐飲業(yè)的客流趨勢存在長期的變化規(guī)律(如受氣候變化影響等),而原生的RNN模型存在“長期記憶問題”,即難以捕捉序列中較長間隔之前的數據對目標變量的效應,所以我們引入長短期記憶網絡(LSTM)(Graves,1997),該模型通過遺忘/記憶機制緩解了長期記憶問題,能夠更好地表達餐飲客流的長期變化規(guī)律,模型的具體結構如下:
其中,網絡在時間步t的狀態(tài)輸出為:
ht=LSTM_CELL(ht-1,ct)
(三)餐廳屬性和靜態(tài)時空特征建模在我們的數據集中,餐廳靜態(tài)屬性和靜態(tài)時空特征包括:
由于這些特征與客流量間存在普遍的非線性關系,我們使用神經網絡對它們進行建模,模型結構如下:
(四)特征嵌入
可以看到,不論在時間序列特征中,還是在餐廳的屬性及靜態(tài)時空特征中,均存在一些定類數據(如是否節(jié)假日、菜系、所在商圈等),這些特征必須轉化為數值張量的形式,才能使用統計學習模型建模。這種轉化的傳統方式是獨熱編碼(one hotencoding),然而該方式有一些顯著的不足,主要包括:1)特征泛化能力較差,獨熱編碼無法表達特征不同取值間的關系;2)當特征取值很多時,編碼后的特征向量維度過大,過多的特征難以使用統計學習模型進行有效學習,易陷入過擬合(overfitting)?;谝陨峡紤],我們使用另一種編碼方式:特征嵌入(embedding),這種技術將定類特征的每一個取值映射為一個可學習的k維向量(k作為超參數),意圖學習出該特征取值在連續(xù)特征空間中的隱藏含義。(Goo and Berkhahn,2016)的工作顯示,定類變量的嵌入操作在多種模型上對模型預測性能都有顯著提升。特征嵌入的形式化表示如下:
embedding(xi)=E[i]
其中,xi為定類特征x的第i個取值,E為可訓練(與網絡中其它參數一樣通過梯度下降更新)的embedding矩陣,形狀為(Dx,kx),其中Dx為特征x可能的取值數量,kx為嵌入向量的維數,即embedding操作等價于先給特征x的每個取值編碼,然后在embedding矩陣中用特征編碼作為索引,查詢對應的嵌入向量。
(五)聯合模型
(Cheng et al.,2016)在推薦系統領域引入了deep and wide模型,給了我們較大的啟發(fā),該文章中指出,傳統線性模型中,基于人工特征工程的稀疏交叉特征對特征交互作用的“記憶”能力雖然十分有效且可解釋性較強,但是特征的進一步泛化所需的特征工程工作量很大,經濟性較差;另一方面,深度神經網絡能夠自動學習到原始特征的復雜非線性關系,泛化性能較強,然而會存在“泛化過度”的問題,即可能無法學習到一些稀疏、高階的特征組合的作用。針對這些問題,文章中引入了deep and wide模型,使用神經網絡建模連續(xù)特征和離散特征的低維嵌入(embedding)向量,將網絡的最后一個隱藏層的輸出向量與其它人工特征工程產生的交叉特征向量連接,并再次通過一個線性層,最終通過神經網絡(deep model)與線性模型(wide model)的聯合訓練,成功結合了線性模型結合人工特征以及深度神經網絡結合原始特征兩種建模方式的優(yōu)勢。
我們的場景與之有一定相似性,使用餐廳靜態(tài)特征及其組合預估客流量,是一個典型的回歸問題,我們可以使用特征嵌入(embedding)結合DNN加以建模,而歷史客流屬性則是一種序列特征,適合使用序列模型來建模,未來客流是在兩類特征的共同作用下決定的,我們需要對這兩類特征聯合建模,以充分學習未來客流與特征間的關系。我們使用與wide and deepf相似的方式,先將原始特征通過一個嵌入層轉化為張量形式,而后將歷史客流特征通過LSTM網絡,靜態(tài)特征通過DNN網絡,再講LSTM網絡最后一個時間步的輸出與DNN網絡最后一個隱藏層向量連接,最后通過一個線性層,輸出客流量預測的估計值,實現時間維度特征與餐廳靜態(tài)特征的聯合訓練,模型結構如下:
我們使用批量隨機梯度下降訓練網絡的參數,并使用MSE(mean squired root)作為loss函數:
其中,y為一個批量樣本的真實客流量向量,y為模型對該批樣本客流量的估計值。
二、實驗
(一)實驗數據集和評價指標設置
實驗數據來源于(Holdings,2018),包含829家餐廳自2016年1月1日到2017年4月22日的天級客流數據、以及餐廳的自身屬性和空間屬性;由于我們的目標是訓練一個通用的客流預測模型,而非簡單地實現某個指定餐廳的客流預測,所以我們取其中580家餐廳為訓練集(70%)、249家(30%)為驗證集,并在驗證集上使用7天的客流數據作為特征,預測之后一天的客流量月J算MAPS(MeanAverage Percentage Error)作為評價指標:
(二)對照模型設置
我們引入幾個常見的統訓模型作為基線,包括時間維度的線性模型(LR1),餐廳屬性的線性模型(LR2)、單一的LSTM時間序列模型(LSTM)、單一的餐廳屬性神經網絡模型(DNN),并稱我們的模型為LSTM-DNN,與上述基線進行性能對照。
(三)實驗結果
在這些實驗結果上,我們可見得出一些結論:
(1)在時序特征的模型性能上,LSTM優(yōu)于線性模型LR1。
b)在靜態(tài)特征的模型性能上,DNN優(yōu)于線性模型LR2。
c)我們提出的聯合模型性能顯著優(yōu)于所有的基線模型。
(四)結論和后續(xù)工作
在餐飲客流預測問題中,我們結合長短時記憶網絡和深度神經網絡,對餐廳靜態(tài)屬性、空間數據與時序趨勢特征進行了聯合建模,較充分地擬合了影響客流量的眾多因子,對比常見的基線模型得到了顯著的預測精度提升。
目前我們的模型是對數據集中829家餐廳訓練的通用模型,對模型的泛化能力要求很高,所以預測精度的絕對值在實際應用中還有一定提升空間,后續(xù)我們可對不同的應用場景做精細化的建模:對擁有充足歷史數據積累的企業(yè),可以對具體的餐廳做單獨建模,對沒有足夠數據的企業(yè),也可以先對餐廳進行聚類分析,對同類餐廳進行建模,則預測的絕對精度還可以進一步提高。
參考文獻:
[1]周健,曹瑞霞,王兆衛(wèi).餐飲業(yè)短期客流量預測方法[J].同濟大學學報(自然科學版),2014(42):493-498
[2]ABURTO L,WEBER R.Improved supply chain management based on hybrid demand forecasts[J].Applied Soft Computing,2007(7):136-144.
[3]CHENG H T,KOC L,HARMSEN J,et a1.Wide&Deep; Learning for Recononender Systems,2016:7-10.
[4]GRAVES A.Long Short-Term Memory[J].Neural Computation,1997(9):1735-1780.
[5]GUO C,BERKHAHN F 2016.Entity embeddings of categorical variables[J].arXiv preprint arXiv,2016:1604,6737.
[6]LECUN Y,BENGIO Y,HINTON G.Deep learning[J].Nature,2015,521:436-144.
[7]HOLDINGS R.Recruit Restaurant Visitor Forecasting DatasegM].2018.https://www.kaggle.corn/c/recruit-restaurant-visitor-forecasting.
[8]RAMOS P,SANTOS N,REBELO R.Performance of state space and ARIMAmodels for consumer retail sales forecasting[J].Robotics and computer-integrated manufacturing,2015(34):151-163.
[9]SUN Z L,CHOI T M,AU K F,et a1.Sales forecasting using extreme learning machine with applications in fashion retailing[J].Decision Support Systems,2009(46):411-419.