李周輝
(廣州華商學(xué)院,廣州 510000)
餐飲客戶流失是指用戶與餐飲企業(yè)之間不再有交易行為的產(chǎn)生。在激烈的市場競爭環(huán)境中,餐飲客戶擁有更多的選擇空間和消費(fèi)渠道。如何提高餐飲用戶的忠誠度是餐飲企業(yè)營銷人員一直在討論的問題。大規(guī)模餐飲客戶的異常變動往往意味著一個市場的變更和調(diào)整。建立餐飲客戶流失模型的目的是通過對數(shù)據(jù)庫中餐飲客戶歷史數(shù)據(jù)的分析和挖掘,由數(shù)據(jù)挖掘分析技術(shù)人員給出這些餐飲客戶的歷史特征,然后由市場人員針對這些餐飲客戶制定挽留措施。由此可見,建立餐飲客戶流失模型的優(yōu)點(diǎn):①可以盡早地發(fā)現(xiàn)餐飲客戶的流失傾向,從而做到有備無患;②可以通過餐飲客戶以往的歷史數(shù)據(jù),由市場人員制定出有效的挽留措施,從而做到有的放矢。通過該模型,可以最大限度地降低餐飲客戶的流失率,將企業(yè)的損失降至最低。
餐飲客戶流失問題是一種二分類問題,也就是完成一種是與否的判斷,因此有監(jiān)督學(xué)習(xí)算法大量地應(yīng)用在客戶流失預(yù)測問題上。目前,大多數(shù)的研究主要是針對電信類用戶做流失預(yù)測[1],使用的方法大概分為兩種類別:①傳統(tǒng)的機(jī)器學(xué)習(xí)方法,類似于邏輯回歸、貝葉斯估計(jì)、支持向量機(jī)[2]等,其中,王觀玉等[3]將主成分分析應(yīng)用在特征提取上,來消除數(shù)據(jù)間的冗余,從而提高支持向量機(jī)的預(yù)測結(jié)果。該方法雖然能夠降低數(shù)據(jù)維度,但對于數(shù)據(jù)的可解釋性相對較差,比較依賴數(shù)據(jù)原始特征;②人工智能的方法,李洋[4]通過分析客戶群中不同方面的相關(guān)屬性特征,對比不同的預(yù)測模型,驗(yàn)證了神經(jīng)網(wǎng)絡(luò)預(yù)測的有效性。但該方法對于數(shù)據(jù)特征的選擇不適用于當(dāng)前模型,而且特征維度過多,容易影響模型的擬合能力。馬文斌等[5]通過深度學(xué)習(xí)研究進(jìn)行客戶流失預(yù)測時(shí),并沒有對原數(shù)據(jù)進(jìn)行相關(guān)特征的選取,導(dǎo)致模型擬合的程度不高。
針對上述研究,為了能夠得到較好的預(yù)測結(jié)果,本文采取的主要措施有以下幾個方面:
(1)分析影響餐飲業(yè)顧客流失的因素,確定相關(guān)的影響因子。
(2)研究餐飲數(shù)據(jù)特征,對原始數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,提取相關(guān)的數(shù)據(jù)信息;對原始特征做進(jìn)一步的合并,為數(shù)據(jù)降維。
(3)構(gòu)建合適的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型,對原始數(shù)據(jù)做預(yù)測。
本文選取的數(shù)據(jù)是某餐飲企業(yè)的客戶消費(fèi)數(shù)據(jù),其中包括用戶編號、最后一次用餐時(shí)間、用餐人數(shù)、消費(fèi)金額、用戶類型。用戶類型分為兩種:非流失和準(zhǔn)流失。本文主要針對準(zhǔn)流失用戶進(jìn)行預(yù)測,其中非流失顧客數(shù)據(jù)3930條,準(zhǔn)流失顧客數(shù)據(jù)2073條,總計(jì)6003條顧客用餐信息。個別客戶消費(fèi)記錄見表1。

表1 客戶消費(fèi)記錄
對于餐飲企業(yè)來講,客戶流失因素主要有以下四點(diǎn):
(1)菜品因素,如菜品味道不好、菜品單一或不齊全、菜品不新鮮。
(2)服務(wù)因素,如服務(wù)環(huán)境臟、服務(wù)秩序亂、服務(wù)態(tài)度差、服務(wù)效率低、服務(wù)能力弱、收費(fèi)不合理等。
(3)客戶自身因素,客戶往往對菜品或服務(wù)期望太高,而實(shí)際消費(fèi)體驗(yàn)比較差,導(dǎo)致心理不平衡,產(chǎn)生不滿情緒;客戶消費(fèi)逐漸多樣化、多層次化、復(fù)雜多變性和非理性化,因此,客戶在消費(fèi)時(shí),并不承諾放棄嘗試其他餐廳的就餐體驗(yàn);客戶工作和生活地點(diǎn)變更,采取就近就餐的原則。
(4)競爭者因素,其他餐飲企業(yè)通過優(yōu)惠活動或廣告宣傳等建立了某種競爭優(yōu)勢,可能吸引走更多客戶。
而客戶流失的主要特征體現(xiàn)在以下四個方面:
(1)用餐次數(shù)越來越少。
(2)很長時(shí)間沒來店里消費(fèi)。
(3)平均消費(fèi)水平越來越低。
(4)總消費(fèi)金額越來越少。
基于這四個方面,本文構(gòu)造了四個相關(guān)客戶流失特征:
(1)總用餐次數(shù),即觀測時(shí)間內(nèi)每個客戶的總用餐次數(shù)。該特征需要對同一顧客原有數(shù)據(jù)中的就餐次數(shù)做累加運(yùn)算。
(2)客戶最近一次用餐的時(shí)間距離觀測窗口結(jié)束的天數(shù)。該特征中需要選定觀測窗口的結(jié)束時(shí)間,本文的觀測結(jié)束時(shí)間為2016年7月31日,計(jì)算方式就是以最后一次用餐時(shí)間減去觀測結(jié)束時(shí)間。
(3)客戶在觀測時(shí)間內(nèi)的總消費(fèi)金額。該特征是把同一顧客每次用餐的銷售額進(jìn)行累加運(yùn)算。
(4)客戶在觀測時(shí)間內(nèi)用餐人均銷售額,即客戶在觀察時(shí)間內(nèi)的總消費(fèi)金額除以用餐總?cè)藬?shù)。該特征是客戶在觀測時(shí)間內(nèi)的總消費(fèi)金額除以總用餐次數(shù)。
處理后的用餐消費(fèi)記錄見表2。

表2 處理后的用餐消費(fèi)記錄
經(jīng)過特征工程后的數(shù)據(jù)仍然會存在一些缺失值、噪聲數(shù)據(jù)、不正確數(shù)據(jù)等“臟”數(shù)據(jù)。它們的存在可能會使得建模過程中出現(xiàn)混亂,從而導(dǎo)致輸出結(jié)果出現(xiàn)異常,因此需要對特征選取后的數(shù)據(jù)再進(jìn)行數(shù)據(jù)清洗。本實(shí)驗(yàn)中的數(shù)據(jù)清洗主要集中在空數(shù)據(jù)上,主要表現(xiàn)為有用戶編號,但是不存在任何消費(fèi)信息,這是一種很常見的插入異常問題,也有可能是顧客退費(fèi)產(chǎn)生的,總之這樣的異常數(shù)據(jù)是必須要進(jìn)行處理的,給定的解決措施就是刪除這些沒有消費(fèi)信息的數(shù)據(jù),這不會對后面的分析結(jié)果產(chǎn)生任何影響。
不同數(shù)據(jù)之間存在單位差異的問題,單位差異的存在最直觀的影響就是數(shù)據(jù)之間的大小范圍不同,如果直接拿差異大的數(shù)據(jù)進(jìn)行分析,就會導(dǎo)致模型擬合非常困難,因此,需要對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,來消除不同單位對數(shù)據(jù)的影響,標(biāo)準(zhǔn)化的公式如式(1)所示,使得處理后的數(shù)據(jù)標(biāo)準(zhǔn)差為1,均值為0。
目前常用的深度學(xué)習(xí)[6]框架有TensorFlow、keras、Pytorch等,本文采用keras進(jìn)行深度神經(jīng)網(wǎng)絡(luò)的搭建。神經(jīng)網(wǎng)絡(luò)的基本組成單元是神經(jīng)元,神經(jīng)元的通用模型如圖1所示。
其中x1,x2,…,xm為輸入信號,w1,w2,…,wm為輸入變量到求和節(jié)點(diǎn)的對應(yīng)權(quán)重,b為求和時(shí)的偏置,假設(shè)求和節(jié)點(diǎn)的輸出為?,則有:
而求和后的結(jié)果一般不直接輸出,需要通過激活函數(shù)作用取消其線性特征后,才輸出結(jié)果,記作y,對應(yīng)的計(jì)算方式為:
本文采用的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)拓?fù)鋱D如圖2所示。其中包含1個輸入層,3個隱藏層和1個輸出層。
輸入層:數(shù)據(jù)的輸入來源,由于影響客戶流失的主要原因有4個,所以輸入元素個數(shù)也對應(yīng)為4個。
隱藏層:數(shù)據(jù)的中間狀態(tài),可以看成數(shù)據(jù)的中間輸出節(jié)點(diǎn),無論深度學(xué)習(xí)中間層有多少,都屬于隱藏層,它能提高深度學(xué)習(xí)的網(wǎng)絡(luò)復(fù)雜性,但不是越多越好,過多的隱藏層可能會降低模型的泛化能力,從而導(dǎo)致過擬合,直觀的結(jié)果就是模型在訓(xùn)練集上擬合效果好,但在測試集上擬合效果差。本模型的隱藏層總共有3層,分別有128、64、32個神經(jīng)元,每一層的每一個神經(jīng)元都是運(yùn)用式(2)來計(jì)算中間結(jié)果的,其中選用的激活函數(shù)為ReLu函數(shù),其計(jì)算方式如式(4)所示。ReLu函數(shù)是一種非飽和函數(shù),能在擬合過程中增加非線性的特性,也能防止梯度消失的問題。另外,為了使模型具備一定的泛化能力,使用了dropout。在訓(xùn)練過程中能夠按照一定概率隨機(jī)丟棄部分節(jié)點(diǎn),減少特征之間的相互作用,從而提高模型的泛化能力。本模型中3個隱藏層的dropout參數(shù)值均設(shè)置為0.2,也就是有20%的概率在計(jì)算過程中丟棄該節(jié)點(diǎn)進(jìn)行求和。
輸出層:數(shù)據(jù)的最終輸出,本案例是一個二分類問題,輸出結(jié)果是一個一維數(shù)據(jù),其取值范圍是0到1之間的數(shù)值,因此在輸出之前需要使用的激活函數(shù)就是sigmoid,如式(5)所示。
模型選好之后,還要選擇合適的損失函數(shù),來判斷當(dāng)前模型預(yù)測的好壞。也就是用損失函數(shù)來表示預(yù)測結(jié)果與實(shí)際數(shù)據(jù)的差距程度。輸出結(jié)果是一個0到1之間的數(shù)據(jù),與概率的取值范圍一致。因此本模型可以使用二分類的交叉熵作為損失函數(shù),其計(jì)算過程如式(6)所示,其中J(ω)代表某一批次下的損失函數(shù)值,m代表一個批次下樣本的數(shù)量,本案例中每一批次的樣本數(shù)量為20個,也就是m取20。yi是第i個樣本的實(shí)際標(biāo)簽值,因?yàn)橹挥袃深悾詫?shí)際標(biāo)簽取值就只有0和1兩種情況。hw(xi)代表某一批次下第i個樣本的預(yù)測值,也就是輸出層的輸出結(jié)果。損失函數(shù)的計(jì)算結(jié)果越小說明模型的擬合能力越強(qiáng),因此模型需要以損失函數(shù)為依據(jù)不斷調(diào)整模型中的各個參數(shù)來使損失函數(shù)值達(dá)到最小。
實(shí)驗(yàn)中使用的數(shù)據(jù)按照80%訓(xùn)練集,20%測試集的方式進(jìn)行模型的訓(xùn)練和預(yù)測,實(shí)驗(yàn)分別采用Logistic回歸、SVM這兩種常用的算法構(gòu)建預(yù)測模型,與本實(shí)驗(yàn)所采用的深度神經(jīng)網(wǎng)絡(luò)模型進(jìn)行比較。比較過程所采用的指標(biāo)主要是精確度、召回率和F1值。對應(yīng)的精確度=A/(A+C);召回率=A/(A+B);F1=(2*精確度*召回率)/(精確度+召回率)。
本文樣本主要分為兩類:非流失和準(zhǔn)流失,實(shí)驗(yàn)中給定的評判指標(biāo)主要針對流失樣本,也就是以一類數(shù)據(jù)的好壞來評估模型。精確度表示預(yù)測結(jié)果為流失顧客中判斷正確樣本的比例;召回率表示預(yù)測結(jié)果中實(shí)際為流失顧客的命中比例。這兩個指標(biāo)都是越高越好,只是關(guān)注的側(cè)重點(diǎn)不同,一個專注準(zhǔn)確率,另一個專注命中率。而F1值是精確度和召回率的調(diào)和均值,是兩者的綜合評價(jià)指標(biāo)。表3為混淆矩陣。

表3 混淆矩陣
表4為不同模型的預(yù)測結(jié)果對比,從表中可以看出,不同模型在測試集上的表現(xiàn)都在90%以上,主要原因是相關(guān)的數(shù)據(jù)處理中提取了相關(guān)的特征,而且特征維度相對小,相關(guān)性較大。但是,在所有模型當(dāng)中,深度神經(jīng)網(wǎng)絡(luò)(DNN)的各個表現(xiàn)都是最好的。從精確度上來講,Logistic回歸和SVM的數(shù)值是一樣的,均達(dá)到了94%的水平,而DNN是最高的,能達(dá)到96%的水平。這說明DNN算法的預(yù)測準(zhǔn)確性高。對于召回率而言,Logistic回歸和DNN的數(shù)值是一樣的,均達(dá)到92%的水平,而SVM方法相對較低,這說明DNN與Logistic回歸對于結(jié)果的命中率是一樣的。從F1值上來講,DNN是所有方法中最高的,達(dá)到了94%,這說明從綜合的角度來說,DNN的綜合性更好。

表4 不同模型的預(yù)測結(jié)果對比
客戶流失問題是一個不斷發(fā)展的問題,它涉及的商業(yè)情境是方方面面的,早期的研究主要是應(yīng)用在電信用戶的客戶流失中,而對于餐飲類數(shù)據(jù)的研究卻很少。另外很多成熟的算法,類似Logistic回歸和支持向量機(jī)應(yīng)用在數(shù)據(jù)量小時(shí)雖然也有不錯的預(yù)測表現(xiàn),但隨著數(shù)據(jù)量不斷的累計(jì),就需要更先進(jìn)的方法來適應(yīng)新的變化。深度學(xué)習(xí)在處理大規(guī)模數(shù)據(jù)上具有明顯的優(yōu)勢,除了各式各樣的第三方庫的支持,在各大網(wǎng)站上也有相應(yīng)算力設(shè)備的支持。為探究深度學(xué)習(xí)在餐飲顧客流失問題上的預(yù)測能力,本文構(gòu)造了包含3個隱含層的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),并與Logistic回歸和支持向量機(jī)的預(yù)測結(jié)果進(jìn)行比較,實(shí)驗(yàn)結(jié)果表明,在經(jīng)過同樣的特征處理后的數(shù)據(jù)集上,深度神經(jīng)網(wǎng)絡(luò)模型的預(yù)測能力是最好的。