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

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

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

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

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