陶明遠(yuǎn)
【摘要】客流預(yù)測(cè)是餐飲行業(yè)的重要問(wèn)題,然而其存在影響因子多、相關(guān)關(guān)系復(fù)雜、歷史數(shù)據(jù)缺失等難題,要估計(jì)出較為準(zhǔn)確的未來(lái)客流量并不容易。我們?cè)O(shè)計(jì)了一種深度神經(jīng)網(wǎng)絡(luò)模型,通過(guò)長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)建??土鳉v史趨勢(shì)等時(shí)序特征,通過(guò)深度神經(jīng)網(wǎng)絡(luò)(DNN)建模餐廳的靜態(tài)屬性和靜態(tài)時(shí)空特征,并將兩個(gè)網(wǎng)絡(luò)結(jié)合,進(jìn)行聯(lián)合訓(xùn)練?;冢℉oldings,2018)數(shù)據(jù)集上829家餐廳的歷史客流和餐廳屬性數(shù)據(jù),我們建立了通用的的餐飲客流預(yù)測(cè)模型,可供餐飲企業(yè)在缺乏歷史數(shù)據(jù)積累的情況下直接應(yīng)用,模型在下一日客流預(yù)測(cè)問(wèn)題上取得了較優(yōu)的精度(MAPE=03611),對(duì)比常見(jiàn)的基線模型預(yù)測(cè)性能有顯著提高;
【關(guān)鍵詞】餐飲客流預(yù)測(cè);深度學(xué)習(xí);長(zhǎng)短期記憶網(wǎng)絡(luò)
未來(lái)客流預(yù)測(cè)對(duì)餐飲業(yè)的成本控制、供應(yīng)鏈管理、服務(wù)質(zhì)量保障等問(wèn)題能夠起到重要作用,而餐飲客流預(yù)測(cè)問(wèn)題面臨著一系列難點(diǎn):首先,客流量的影響因子除餐廳自身屬性(如品牌、菜系、價(jià)位、客戶評(píng)價(jià)等)之外,還包括一系列時(shí)空特征,其中動(dòng)態(tài)的時(shí)間序列特征包括歷史客流趨勢(shì)、近期節(jié)假日等,靜態(tài)時(shí)空特征則包括餐廳的商圈、經(jīng)緯度、周邊的其它餐廳分布、當(dāng)時(shí)是周幾等;在與之類似的客流或銷(xiāo)量預(yù)測(cè)等問(wèn)題上,當(dāng)前的統(tǒng)計(jì)學(xué)習(xí)方法往往只對(duì)其中某個(gè)維度進(jìn)行建模,或是對(duì)幾個(gè)維度使用不同模型分別建模:如(Ramos et al.,2015)使用狀態(tài)空間模型和ARIMA模型預(yù)測(cè)零售業(yè)銷(xiāo)量,使用歷史銷(xiāo)量的時(shí)間序列作為特征;(Aburto and Weber,2007)結(jié)合ARIMA和神經(jīng)網(wǎng)絡(luò)模型,利用商品歷史銷(xiāo)量進(jìn)行供應(yīng)鏈需求預(yù)測(cè);(Sun et al.,2009)在時(shí)裝零售領(lǐng)域使用極限學(xué)習(xí)機(jī)(ELM)利用商品自身屬性來(lái)預(yù)測(cè)銷(xiāo)量;(周健etal.,2014)在餐飲客流預(yù)測(cè)問(wèn)題上,使用神經(jīng)網(wǎng)絡(luò)對(duì)一些靜態(tài)特征(如當(dāng)日天氣、是否周末等)建模,同時(shí)在特定的場(chǎng)景下(節(jié)假日前后)使用馬爾可夫鏈對(duì)客流時(shí)間序列建模,作為靜態(tài)模型的補(bǔ)充。據(jù)我們當(dāng)前所知,還沒(méi)有一類方法能夠在客流預(yù)測(cè)問(wèn)題上同時(shí)建模餐廳的靜態(tài)特征和時(shí)空特征;此外,對(duì)眾多傳統(tǒng)餐飲企業(yè),尤其是中小企業(yè),數(shù)據(jù)的缺失是客流預(yù)測(cè)問(wèn)題的第二個(gè)難點(diǎn):這些企業(yè)并沒(méi)有足夠歷史統(tǒng)計(jì)數(shù)據(jù)的支持,難以訓(xùn)練出準(zhǔn)確的預(yù)測(cè)模型。
本文中,我們針對(duì)上述的兩個(gè)問(wèn)題,基于深度學(xué)習(xí)技術(shù)提出了一個(gè)端到端的聯(lián)合模型,能夠同時(shí)建模餐廳的自身屬性和動(dòng)、靜態(tài)時(shí)空特征,最大程度地?cái)M合了客流量和眾多影響因子的相關(guān)關(guān)系,同時(shí)數(shù)據(jù)集上基于829家餐廳的大量數(shù)據(jù)(而非具體的某個(gè)餐廳),訓(xùn)練了一個(gè)通用的客流預(yù)測(cè)模型,在此基礎(chǔ)上只需要收集短期數(shù)據(jù),即可直接應(yīng)用到餐飲企業(yè)的實(shí)際運(yùn)營(yíng)中。
一、餐飲客流預(yù)測(cè)的深度聯(lián)合模型
(一)模型定義
我們定義時(shí)刻t的客流特征向量為ct,其中各維度代表時(shí)間維度上不同特征的取值,如時(shí)刻t的客流量、天氣、節(jié)假日情況等;定義某一家餐廳的靜態(tài)屬性向量為、,其中各維度代表該餐廳的自身屬性以及靜態(tài)時(shí)空特征,如價(jià)格、菜系、所在商圈、當(dāng)日是周幾等,定義我們需要預(yù)測(cè)的t+n時(shí)刻的客流量為yt+n,則模型可以定義為:
yt+n=f(s,ct,ct-1,…,ct-k)
其中,k為模型的超參數(shù),表示我們?cè)陬A(yù)測(cè)客流量時(shí)最多考慮多少時(shí)間的歷史數(shù)據(jù)。下面我們探討模型拍勺具體形式。
(二)時(shí)間序列特征建模
在我們的數(shù)據(jù)集中,餐廳的歷史時(shí)序特征包括:
基于近年來(lái)遞歸神經(jīng)網(wǎng)絡(luò)(RNNs)在序列建模上的巨大成功(LeCun et al.,2015),我們使用它來(lái)建立餐廳歷史客流趨勢(shì)的統(tǒng)計(jì)模型,考慮到餐飲業(yè)的客流趨勢(shì)存在長(zhǎng)期的變化規(guī)律(如受氣候變化影響等),而原生的RNN模型存在“長(zhǎng)期記憶問(wèn)題”,即難以捕捉序列中較長(zhǎng)間隔之前的數(shù)據(jù)對(duì)目標(biāo)變量的效應(yīng),所以我們引入長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)(Graves,1997),該模型通過(guò)遺忘/記憶機(jī)制緩解了長(zhǎng)期記憶問(wèn)題,能夠更好地表達(dá)餐飲客流的長(zhǎng)期變化規(guī)律,模型的具體結(jié)構(gòu)如下:
其中,網(wǎng)絡(luò)在時(shí)間步t的狀態(tài)輸出為:
ht=LSTM_CELL(ht-1,ct)
(三)餐廳屬性和靜態(tài)時(shí)空特征建模在我們的數(shù)據(jù)集中,餐廳靜態(tài)屬性和靜態(tài)時(shí)空特征包括:
由于這些特征與客流量間存在普遍的非線性關(guān)系,我們使用神經(jīng)網(wǎng)絡(luò)對(duì)它們進(jìn)行建模,模型結(jié)構(gòu)如下:
(四)特征嵌入
可以看到,不論在時(shí)間序列特征中,還是在餐廳的屬性及靜態(tài)時(shí)空特征中,均存在一些定類數(shù)據(jù)(如是否節(jié)假日、菜系、所在商圈等),這些特征必須轉(zhuǎn)化為數(shù)值張量的形式,才能使用統(tǒng)計(jì)學(xué)習(xí)模型建模。這種轉(zhuǎn)化的傳統(tǒng)方式是獨(dú)熱編碼(one hotencoding),然而該方式有一些顯著的不足,主要包括:1)特征泛化能力較差,獨(dú)熱編碼無(wú)法表達(dá)特征不同取值間的關(guān)系;2)當(dāng)特征取值很多時(shí),編碼后的特征向量維度過(guò)大,過(guò)多的特征難以使用統(tǒng)計(jì)學(xué)習(xí)模型進(jìn)行有效學(xué)習(xí),易陷入過(guò)擬合(overfitting)。基于以上考慮,我們使用另一種編碼方式:特征嵌入(embedding),這種技術(shù)將定類特征的每一個(gè)取值映射為一個(gè)可學(xué)習(xí)的k維向量(k作為超參數(shù)),意圖學(xué)習(xí)出該特征取值在連續(xù)特征空間中的隱藏含義。(Goo and Berkhahn,2016)的工作顯示,定類變量的嵌入操作在多種模型上對(duì)模型預(yù)測(cè)性能都有顯著提升。特征嵌入的形式化表示如下:
embedding(xi)=E[i]
其中,xi為定類特征x的第i個(gè)取值,E為可訓(xùn)練(與網(wǎng)絡(luò)中其它參數(shù)一樣通過(guò)梯度下降更新)的embedding矩陣,形狀為(Dx,kx),其中Dx為特征x可能的取值數(shù)量,kx為嵌入向量的維數(shù),即embedding操作等價(jià)于先給特征x的每個(gè)取值編碼,然后在embedding矩陣中用特征編碼作為索引,查詢對(duì)應(yīng)的嵌入向量。
(五)聯(lián)合模型
(Cheng et al.,2016)在推薦系統(tǒng)領(lǐng)域引入了deep and wide模型,給了我們較大的啟發(fā),該文章中指出,傳統(tǒng)線性模型中,基于人工特征工程的稀疏交叉特征對(duì)特征交互作用的“記憶”能力雖然十分有效且可解釋性較強(qiáng),但是特征的進(jìn)一步泛化所需的特征工程工作量很大,經(jīng)濟(jì)性較差;另一方面,深度神經(jīng)網(wǎng)絡(luò)能夠自動(dòng)學(xué)習(xí)到原始特征的復(fù)雜非線性關(guān)系,泛化性能較強(qiáng),然而會(huì)存在“泛化過(guò)度”的問(wèn)題,即可能無(wú)法學(xué)習(xí)到一些稀疏、高階的特征組合的作用。針對(duì)這些問(wèn)題,文章中引入了deep and wide模型,使用神經(jīng)網(wǎng)絡(luò)建模連續(xù)特征和離散特征的低維嵌入(embedding)向量,將網(wǎng)絡(luò)的最后一個(gè)隱藏層的輸出向量與其它人工特征工程產(chǎn)生的交叉特征向量連接,并再次通過(guò)一個(gè)線性層,最終通過(guò)神經(jīng)網(wǎng)絡(luò)(deep model)與線性模型(wide model)的聯(lián)合訓(xùn)練,成功結(jié)合了線性模型結(jié)合人工特征以及深度神經(jīng)網(wǎng)絡(luò)結(jié)合原始特征兩種建模方式的優(yōu)勢(shì)。
我們的場(chǎng)景與之有一定相似性,使用餐廳靜態(tài)特征及其組合預(yù)估客流量,是一個(gè)典型的回歸問(wèn)題,我們可以使用特征嵌入(embedding)結(jié)合DNN加以建模,而歷史客流屬性則是一種序列特征,適合使用序列模型來(lái)建模,未來(lái)客流是在兩類特征的共同作用下決定的,我們需要對(duì)這兩類特征聯(lián)合建模,以充分學(xué)習(xí)未來(lái)客流與特征間的關(guān)系。我們使用與wide and deepf相似的方式,先將原始特征通過(guò)一個(gè)嵌入層轉(zhuǎn)化為張量形式,而后將歷史客流特征通過(guò)LSTM網(wǎng)絡(luò),靜態(tài)特征通過(guò)DNN網(wǎng)絡(luò),再講LSTM網(wǎng)絡(luò)最后一個(gè)時(shí)間步的輸出與DNN網(wǎng)絡(luò)最后一個(gè)隱藏層向量連接,最后通過(guò)一個(gè)線性層,輸出客流量預(yù)測(cè)的估計(jì)值,實(shí)現(xiàn)時(shí)間維度特征與餐廳靜態(tài)特征的聯(lián)合訓(xùn)練,模型結(jié)構(gòu)如下:
我們使用批量隨機(jī)梯度下降訓(xùn)練網(wǎng)絡(luò)的參數(shù),并使用MSE(mean squired root)作為loss函數(shù):
其中,y為一個(gè)批量樣本的真實(shí)客流量向量,y為模型對(duì)該批樣本客流量的估計(jì)值。
二、實(shí)驗(yàn)
(一)實(shí)驗(yàn)數(shù)據(jù)集和評(píng)價(jià)指標(biāo)設(shè)置
實(shí)驗(yàn)數(shù)據(jù)來(lái)源于(Holdings,2018),包含829家餐廳自2016年1月1日到2017年4月22日的天級(jí)客流數(shù)據(jù)、以及餐廳的自身屬性和空間屬性;由于我們的目標(biāo)是訓(xùn)練一個(gè)通用的客流預(yù)測(cè)模型,而非簡(jiǎn)單地實(shí)現(xiàn)某個(gè)指定餐廳的客流預(yù)測(cè),所以我們?nèi)∑渲?80家餐廳為訓(xùn)練集(70%)、249家(30%)為驗(yàn)證集,并在驗(yàn)證集上使用7天的客流數(shù)據(jù)作為特征,預(yù)測(cè)之后一天的客流量月J算MAPS(MeanAverage Percentage Error)作為評(píng)價(jià)指標(biāo):
(二)對(duì)照模型設(shè)置
我們引入幾個(gè)常見(jiàn)的統(tǒng)訓(xùn)模型作為基線,包括時(shí)間維度的線性模型(LR1),餐廳屬性的線性模型(LR2)、單一的LSTM時(shí)間序列模型(LSTM)、單一的餐廳屬性神經(jīng)網(wǎng)絡(luò)模型(DNN),并稱我們的模型為L(zhǎng)STM-DNN,與上述基線進(jìn)行性能對(duì)照。
(三)實(shí)驗(yàn)結(jié)果
在這些實(shí)驗(yàn)結(jié)果上,我們可見(jiàn)得出一些結(jié)論:
(1)在時(shí)序特征的模型性能上,LSTM優(yōu)于線性模型LR1。
b)在靜態(tài)特征的模型性能上,DNN優(yōu)于線性模型LR2。
c)我們提出的聯(lián)合模型性能顯著優(yōu)于所有的基線模型。
(四)結(jié)論和后續(xù)工作
在餐飲客流預(yù)測(cè)問(wèn)題中,我們結(jié)合長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò),對(duì)餐廳靜態(tài)屬性、空間數(shù)據(jù)與時(shí)序趨勢(shì)特征進(jìn)行了聯(lián)合建模,較充分地?cái)M合了影響客流量的眾多因子,對(duì)比常見(jiàn)的基線模型得到了顯著的預(yù)測(cè)精度提升。
目前我們的模型是對(duì)數(shù)據(jù)集中829家餐廳訓(xùn)練的通用模型,對(duì)模型的泛化能力要求很高,所以預(yù)測(cè)精度的絕對(duì)值在實(shí)際應(yīng)用中還有一定提升空間,后續(xù)我們可對(duì)不同的應(yīng)用場(chǎng)景做精細(xì)化的建模:對(duì)擁有充足歷史數(shù)據(jù)積累的企業(yè),可以對(duì)具體的餐廳做單獨(dú)建模,對(duì)沒(méi)有足夠數(shù)據(jù)的企業(yè),也可以先對(duì)餐廳進(jìn)行聚類分析,對(duì)同類餐廳進(jìn)行建模,則預(yù)測(cè)的絕對(duì)精度還可以進(jìn)一步提高。
參考文獻(xiàn):
[1]周健,曹瑞霞,王兆衛(wèi).餐飲業(yè)短期客流量預(yù)測(cè)方法[J].同濟(jì)大學(xué)學(xué)報(bào)(自然科學(xué)版),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.