馬文斌,夏國恩
(廣西財經(jīng)學(xué)院 工商管理學(xué)院,廣西 南寧 530003)
流失客戶通常是指在一定時期內(nèi)終止使用企業(yè)的服務(wù)或產(chǎn)品的客戶。客戶流失是企業(yè)面臨的一個重要問題,也是學(xué)術(shù)界研究的熱點。高流失率代表企業(yè)產(chǎn)品的市場份額的減少,客戶流失率的降低則意味著企業(yè)效益的提高。同時,企業(yè)獲取新客戶的成本也是保留老客戶成本的數(shù)倍。為及時發(fā)現(xiàn)流失客戶,減少客戶流失量,研究者借助機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘算法,構(gòu)建了大量的客戶流失預(yù)測模型。表現(xiàn)好的流失預(yù)測模型對于最小化流失率非常重要,因為可以為那些不滿意的特定客戶提供個性化的促銷或優(yōu)惠活動,以此來挽留將要流失的客戶。國內(nèi)外企業(yè)為了深入了解客戶行為,尋找影響客戶流失的關(guān)鍵因素,通過開展數(shù)據(jù)挖掘競賽的形式來發(fā)現(xiàn)優(yōu)秀的客戶流失預(yù)測解決方案。例如,法國電信運營商Orange在KDD Cup 2009中提供了大量客戶行為數(shù)據(jù),供參賽者分析預(yù)測;KDD Cup 2015使用由學(xué)堂在線提供的用戶在線學(xué)習(xí)行為數(shù)據(jù),預(yù)測用戶的流失率;攜程也在2016年開展了客戶流失概率預(yù)測競賽;WSDM Cup 2018則要求參賽者預(yù)測KKBOX的訂閱用戶的流失情況。
經(jīng)過多年對客戶流失預(yù)測的研究,取得了較為顯著的成果,客戶流失中的數(shù)據(jù)不平衡、預(yù)測方法的選擇等問題也得到了有效解決。在目前的研究中,研究者將客戶流失預(yù)測視為一種分類問題,因此有監(jiān)督學(xué)習(xí)算法大量地應(yīng)用于客戶流失預(yù)測,并取得了不錯的效果。根據(jù)使用方法的不同,客戶流失預(yù)測研究主要可分為五個方面。一是基于統(tǒng)計學(xué)的研究,具有代表性的方法是聚類算法、回歸分析等。姜曉娟等[1]針對客戶數(shù)據(jù)的類別不平衡、大規(guī)模等問題,在聚類算法基礎(chǔ)上設(shè)置不同權(quán)重參數(shù),實驗表明該算法具有較好的預(yù)測效果?;诮y(tǒng)計學(xué)方法的流失預(yù)測模型的優(yōu)勢是具有較強的可解釋性,不足之處在于在大數(shù)據(jù)背景下,數(shù)據(jù)往往呈現(xiàn)高維、非線性、非正太分布等特點,此類方法的泛化能力得不到有效的保證。
二是基于人工智能理論的研究。此類研究的代表性方法是人工神經(jīng)網(wǎng)絡(luò)。李洋[2]通過分析客戶群特征、服務(wù)屬性和客戶消費數(shù)據(jù),對比不同的預(yù)測模型,驗證了神經(jīng)網(wǎng)絡(luò)預(yù)測的有效性。Kasiran Z等[3]結(jié)合增強學(xué)習(xí)算法與循環(huán)神經(jīng)網(wǎng)絡(luò),預(yù)測移動手機(jī)用戶的流失情況。馮鑫等[4]結(jié)合神經(jīng)網(wǎng)絡(luò)與自然語言處理,利用客戶消費評論信息,預(yù)測客戶是否會流失,并給出影響客戶流失的主要指標(biāo)。人工神經(jīng)網(wǎng)絡(luò)模擬人腦處理信息的結(jié)構(gòu),能夠處理較復(fù)雜的數(shù)據(jù),但可解釋性較低,且容易產(chǎn)生過擬合問題。
三是基于統(tǒng)計學(xué)習(xí)理論的研究。統(tǒng)計學(xué)習(xí)理論主要是構(gòu)建給定數(shù)據(jù)的概率統(tǒng)計模型,并對未知數(shù)據(jù)進(jìn)行預(yù)測,樸素貝葉斯算法、決策樹、支持向量機(jī)等都屬于常用的方法。Kirui C等[5]利用樸素貝葉斯、貝葉斯網(wǎng)絡(luò)兩種概率模型預(yù)測客戶流失。尹婷等[6]結(jié)合決策樹與貝葉斯分類算法,彌補了決策樹算法的缺點。盛昭瀚等[7]給出一種加權(quán)熵的ID3算法解決客戶流失預(yù)測問題。張宇等[8]使用C5.0算法預(yù)測郵政短信業(yè)務(wù)的客戶流失情況。夏國恩等[9]通過與多種預(yù)測算法的比較,驗證了支持向量機(jī)的預(yù)測有效性。王觀玉等[10]結(jié)合主成分分析與支持向量機(jī),降低數(shù)據(jù)的冗余性,提高了預(yù)測效果。Chen Zhenyu等[11]給出一種分層多核支持向量機(jī),融合特征選擇過程,在多個數(shù)據(jù)集上有較好的預(yù)測結(jié)果。趙琨等[12]利用雙子支持向量機(jī)分析信用卡用戶的流失情況。支持向量機(jī)基于VC維理論和結(jié)構(gòu)風(fēng)險最小化原理,具有較強的泛化能力,但可解釋性較低,在小樣本的情況下表現(xiàn)優(yōu)異,但隨著數(shù)據(jù)規(guī)模的增大,支持向量機(jī)已不能在有效的時間內(nèi)完成計算任務(wù)。
四是基于集成學(xué)習(xí)理論的研究。集成學(xué)習(xí)方法通過集成多種方法的優(yōu)勢,提高預(yù)測性能。子算法的選擇、子算法預(yù)測結(jié)果的集成等問題是集成學(xué)習(xí)方面的研究熱點。羅彬等[13]通過使用聚類算法分組樣本集,然后利用不同的算法分別在樣本子集上構(gòu)建預(yù)測模型,最后基于成本敏感性,利用人工魚群算法集成子模型的結(jié)果,實驗表明提出的集成方法優(yōu)于單個預(yù)測模型的預(yù)測性能。Coussement K等[14]利用集成學(xué)習(xí)方法預(yù)測在線客戶的流失情況。
五是基于社會網(wǎng)絡(luò)分析的研究。社會網(wǎng)絡(luò)是一種較為新穎的客戶流失預(yù)測方法,使用社會網(wǎng)絡(luò)發(fā)現(xiàn)潛在流失客戶的假設(shè)前提是與流失客戶存在于同一社區(qū)內(nèi)或存在關(guān)聯(lián)關(guān)系的客戶更容易流失。Phadke C等[15]基于客戶的呼叫網(wǎng)絡(luò),給出一個度量客戶間社會聯(lián)系強度的公式,并利用影響擴(kuò)散模型計算流失客戶的凈積累影響,最后在真實的移動客戶數(shù)據(jù)上驗證了使用社會網(wǎng)絡(luò)分析預(yù)測客戶流失的有效性。Verbeke W等[16]在關(guān)系分類模型中引入非馬爾可夫網(wǎng)絡(luò),并融合關(guān)系分類模型與非關(guān)系分類模型,構(gòu)建了流失預(yù)測模型。黃婉秋[17]基于RFM模型和時間序列分析法,結(jié)合社區(qū)發(fā)現(xiàn)、獨立級聯(lián)模型進(jìn)行客戶流失分析,并在零售客戶數(shù)據(jù)上驗證了基于社會網(wǎng)絡(luò)方法的有效性。
上述客戶流失預(yù)測研究中使用的方法,預(yù)測效果依賴于特征處理的好壞,需要花費大量的時間與精力在特征工程上,隨著客戶數(shù)據(jù)的快速增長,在大數(shù)據(jù)情況下,人工特征工程已不能有效地獲取高質(zhì)量特征。但是深度學(xué)習(xí)通過模擬人腦多層、逐級地抽取信息特征,能夠自動學(xué)習(xí)到可以較好地表示數(shù)據(jù)集的特征,借助深度學(xué)習(xí),構(gòu)建預(yù)測模型時,將不再依賴于特征選擇。目前深度學(xué)習(xí)在客戶流失預(yù)測方面的研究成果還較少,為探究深度學(xué)習(xí)在客戶流失預(yù)測中的應(yīng)用,文中構(gòu)建了包含3隱層的深度神經(jīng)網(wǎng)絡(luò)模型,并在電信客戶數(shù)據(jù)集上與經(jīng)過特征選擇的Logistic回歸、決策樹等預(yù)測模型作對比,從而驗證深度神經(jīng)網(wǎng)絡(luò)模型的預(yù)測效果。
人工神經(jīng)網(wǎng)絡(luò)是客戶流失預(yù)測中常用的一種算法,而深度學(xué)習(xí)是人工神經(jīng)網(wǎng)絡(luò)的延伸和發(fā)展,是一種擁有多隱層的人工神經(jīng)網(wǎng)絡(luò)算法,通過模擬人腦多層、逐級地抽取信息特征,最終獲得能夠較好地表示輸入數(shù)據(jù)的特征[18]。2006年,Hinton等提出的深度置信網(wǎng)絡(luò)(DBN)是當(dāng)前深度學(xué)習(xí)算法的框架,打破了深層神經(jīng)網(wǎng)絡(luò)難以有效訓(xùn)練的僵局[19]。支持向量機(jī)、隱馬爾可夫模型、感知機(jī)等都是典型的淺層學(xué)習(xí)算法,與淺層學(xué)習(xí)算法相比,深度學(xué)習(xí)在網(wǎng)絡(luò)表達(dá)復(fù)雜目標(biāo)函數(shù)的能力、網(wǎng)絡(luò)結(jié)構(gòu)的計算復(fù)雜度、仿生學(xué)角度、信息共享等方面更具有優(yōu)勢[20]。
根據(jù)構(gòu)造深度學(xué)習(xí)模型時采用的結(jié)構(gòu)、學(xué)習(xí)算法等因素,深度學(xué)習(xí)可分為3類:生成深度結(jié)構(gòu)、判別深度結(jié)構(gòu)、混合深層結(jié)構(gòu)[19]。生成深度結(jié)構(gòu)的代表是深度置信網(wǎng)絡(luò);判別深度結(jié)構(gòu)的代表模型是卷積神經(jīng)網(wǎng)絡(luò);混合深層結(jié)構(gòu)則是結(jié)合生成深度結(jié)構(gòu)和判別深度結(jié)構(gòu)來實現(xiàn)模式分類的一類深層結(jié)構(gòu)。
目前,借助于大數(shù)據(jù),深度學(xué)習(xí)在許多領(lǐng)域的表現(xiàn)都優(yōu)于淺層模型。根據(jù)數(shù)據(jù)類型的不同,深度學(xué)習(xí)主要應(yīng)用在如下領(lǐng)域:一是圖像識別,常用的算法是卷積神經(jīng)網(wǎng)絡(luò)或改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò);二是語音識別,常用的算法是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)或改進(jìn)的循環(huán)神經(jīng)網(wǎng)絡(luò);三是自然語言處理,由于自然語言的復(fù)雜性,雖然深度學(xué)習(xí)在自然語言處理上取得了一定的進(jìn)展,但是并沒有在圖像、語音上的成果顯著。
經(jīng)典的客戶流失預(yù)測模型結(jié)構(gòu)見圖1。由圖1可以看出,經(jīng)典的客戶流失預(yù)測模型主要包含數(shù)據(jù)預(yù)處理、屬性選擇、特征選擇、流失預(yù)測、結(jié)果評價等階段。屬性選擇和特征選擇主要是為了減小原始數(shù)據(jù)中存在的主觀性,降低數(shù)據(jù)“噪聲”,達(dá)到約簡數(shù)據(jù)維度,而不損失或較少損失數(shù)據(jù)信息的目的。特征選擇主要是指從數(shù)據(jù)集的所有特征中,利用某種度量方法,篩選出分類預(yù)測效果最好的一組特征子集,常用的特征選擇方法有互信息、Fisher比率、ReliefF等。當(dāng)數(shù)據(jù)維度較大時,組合篩選出最優(yōu)特征子集,需要花費大量的時間。
圖1 經(jīng)典客戶流失預(yù)測模型結(jié)構(gòu)
基于深度學(xué)習(xí)的客戶流失預(yù)測模型如圖2所示。由圖2可知,經(jīng)典客戶流失預(yù)測模型與基于深度學(xué)習(xí)的客戶流失預(yù)測模型最大的區(qū)別是在特征處理方面。特征工程需要一定的領(lǐng)域知識,且費時費力,最后選擇的特征子集也不一定具有較好的預(yù)測結(jié)果。在基于深度學(xué)習(xí)的客戶流失預(yù)測模型中,深度學(xué)習(xí)算法可以自主逐層地進(jìn)行特征處理,沒有屬性選擇、特征選擇等特征工程階段,節(jié)省了時間成本,且能夠獲得更為準(zhǔn)確刻畫數(shù)據(jù)信息的特征子集。
圖2 基于深度學(xué)習(xí)的客戶流失預(yù)測模型結(jié)構(gòu)
基于深度學(xué)習(xí)的預(yù)測模型結(jié)構(gòu)的預(yù)測過程是:多來源收集客戶行為數(shù)據(jù),確定初始屬性集;對數(shù)據(jù)進(jìn)行缺失值處理、異常值處理、峰度轉(zhuǎn)換、標(biāo)準(zhǔn)化等預(yù)處理工作;將準(zhǔn)備好的數(shù)據(jù)集輸入深度學(xué)習(xí)算法,逐層學(xué)習(xí)數(shù)據(jù)特征,訓(xùn)練預(yù)測模型;評價預(yù)測結(jié)果,采用常用的精確率、召回率等評價指標(biāo),評價預(yù)測模型的性能。
目前,常用的深度學(xué)習(xí)框架包括TensorFlow、Caffe、Keras、PyTorch、CNTK等。其中,Caffe采用配置文件定義網(wǎng)絡(luò)結(jié)構(gòu),容易使用,且支持python接口,僅需要少量的代碼構(gòu)建預(yù)測模型,訓(xùn)練速度較快。因此,文中基于Caffe框架,研究深度學(xué)習(xí)算法在網(wǎng)絡(luò)客戶流失預(yù)測中的應(yīng)用,通過參考現(xiàn)有深度學(xué)習(xí)算法模型,調(diào)整隱層以及各層的參數(shù),構(gòu)建了包含3個隱層的深度神經(jīng)網(wǎng)絡(luò)模型,如圖3所示。Caffe中每一個網(wǎng)絡(luò)模塊都是一個層,文中構(gòu)建的深度神經(jīng)網(wǎng)絡(luò)模型使用了數(shù)據(jù)層、全連接層、DropOut層、損失層等。這里對各層進(jìn)行描述。
圖3 深度神經(jīng)網(wǎng)絡(luò)模型
數(shù)據(jù)層:Caffe不直接處理原始數(shù)據(jù),需要由處理程序轉(zhuǎn)換為Caffe支持的數(shù)據(jù)格式。目前,Caffe支持HDF5、LMDB等多種數(shù)據(jù)格式,文中構(gòu)建的深度神經(jīng)網(wǎng)絡(luò)使用HDF5格式。數(shù)據(jù)層定義4D的輸入(1,1,1,87),表示一次輸入一個數(shù)據(jù),數(shù)據(jù)大小是(1,87)。
全連接層:全連接層的每個節(jié)點與相鄰層的所有節(jié)點都有連接。文中構(gòu)建的深度神經(jīng)網(wǎng)絡(luò)的隱層是三個全連接層的堆疊,可看作是對輸入數(shù)據(jù)逐層地提取信息,最后學(xué)習(xí)到較好的數(shù)據(jù)特征。全連接層的神經(jīng)元數(shù)目分別是87、50、50,損失層的神經(jīng)元數(shù)目則是2個。為加快收斂速度,全連接層的激活函數(shù)采用ReLU(rectified linear unit)。ReLU函數(shù)(式1)是一種非飽和激活函數(shù),Sigmoid、Tanh等飽和激活函數(shù)存在嚴(yán)重的梯度消失問題,訓(xùn)練收斂速度較慢。
(1)
DropOut層:為了防止訓(xùn)練網(wǎng)絡(luò)時產(chǎn)生過擬合現(xiàn)象,提高模型泛化能力,文中構(gòu)建的網(wǎng)絡(luò)中使用了DropOut。DropOut是一種參數(shù)正則化方法,在訓(xùn)練網(wǎng)絡(luò)過程中,按照一定的概率從網(wǎng)絡(luò)中暫時丟棄部分節(jié)點,減少特征之間的相互作用,能夠有效防止過擬合,提高模型健壯性。文中構(gòu)建的網(wǎng)絡(luò)中全連接層的丟棄率分別是0.5、0.4、0.3。
損失層:損失函數(shù)度量網(wǎng)絡(luò)輸出的好壞,通過最小化損失,訓(xùn)練得到較好的網(wǎng)絡(luò)。Caffe中定義了多種損失函數(shù),如EuclideanLoss、HingeLoss、SoftmaxLoss等,由于客戶流失預(yù)測是一種二類分類問題,因此采用SigmoidCrossEntropyLoss。
客戶流失預(yù)測是在客戶的歷史行為數(shù)據(jù)上提取、選擇客戶特征,并運用分類預(yù)測算法建立預(yù)測模型,預(yù)測客戶未來的狀態(tài)。文中實驗所用的電信客戶行為數(shù)據(jù)來源于美國DUKE大學(xué),其中訓(xùn)練集共100 000個樣本,包含流失客戶49 562個,非流失客戶50 438個,兩類客戶的比例基本為1∶1;測試集共51 306個樣本,包含流失客戶924個,非流失客戶49 514個,客戶流失率為1.8%,數(shù)據(jù)類別嚴(yán)重不平衡。原始數(shù)據(jù)中部分屬性存在缺失的情況,通過刪除缺失率過高的屬性以及填充缺失率較低的屬性,共取得87個初始屬性指標(biāo)。
實驗分別采用Logistic回歸、樸素貝葉斯和決策樹3種常用算法構(gòu)建預(yù)測模型,與深度神經(jīng)網(wǎng)絡(luò)預(yù)測模型進(jìn)行對比,并從精確率、召回率、準(zhǔn)確率、提升系數(shù)和F1值5個方面評價模型預(yù)測結(jié)果。由表1可知,精確率=A/(A+C);召回率=A/(A+B);準(zhǔn)確率=(A+D)/(A+B+C+D);提升系數(shù)=精確度/測試集的客戶流失率;F1=(2*精確率*召回率)/(精確率+召回率)。
表1 混淆矩陣
實驗所用的Logistic回歸、樸素貝葉斯和決策樹等算法的實現(xiàn)主要使用基于Python的機(jī)器學(xué)習(xí)庫Scikit-Learn。數(shù)據(jù)預(yù)處理主要使用Pandas數(shù)據(jù)分析庫。實驗所用電腦的內(nèi)存是16 G,處理器是Intel(R) Xeon(R) CPU E5-1603 v3,操作系統(tǒng)為Win7 64位。支持向量機(jī)也是客戶流失預(yù)測中常用的方法,但是在現(xiàn)有的硬件條件下,在實驗所用的數(shù)據(jù)集上,支持向量機(jī)不能在有效時間內(nèi)計算出結(jié)果,因此沒有選擇支持向量機(jī)作為對比算法。
深度神經(jīng)網(wǎng)絡(luò)的預(yù)測效果與網(wǎng)絡(luò)的學(xué)習(xí)率相關(guān),實驗通過設(shè)定步長和搜索范圍,經(jīng)過多次對比,確定了預(yù)測效果較好的學(xué)習(xí)率為0.002。不同模型的預(yù)測結(jié)果如表2所示。
表2 不同模型的預(yù)測結(jié)果
由表2可知,深度神經(jīng)網(wǎng)絡(luò)(DNN)具有較好的預(yù)測結(jié)果。對比數(shù)據(jù)發(fā)現(xiàn):在精確率上,DNN的結(jié)果相對較好,分別比Logistic回歸等三種算法高出0.1%、0.33%、0.15%。精確率表示預(yù)測為流失客戶的樣本中的正確率,DNN的精確率最高,表明在預(yù)測為流失客戶的樣本集中,DNN預(yù)測正確的比例相對更高;在召回率上,DNN的結(jié)果低于其他三種算法,說明DNN在實際流失的樣本集中,預(yù)測正確的比例較低;在準(zhǔn)確率上,DNN的表現(xiàn)也優(yōu)于其他三種算法,說明DNN預(yù)測正確的流失樣本與非流失樣本的數(shù)量更多;在提升系數(shù)上,DNN的表現(xiàn)同樣優(yōu)于其他三種算法,提升效果明顯;在F1值上,DNN的結(jié)果同樣優(yōu)于其他三種算法,F(xiàn)1值是精確率和召回率的一種加權(quán)平均,DNN的精確率比其他算法高,召回率比其他算法低,但F1值最高,同時測試數(shù)據(jù)具有嚴(yán)重的類別不平衡性,說明DNN的綜合性能更優(yōu)。
樸素貝葉斯模型的召回率高達(dá)0.826 8,但精確度、F1值在四個預(yù)測模型中最低,說明樸素貝葉斯模型預(yù)測錯誤的非流失客戶更多,模型的整體性能不高。整體而言,與經(jīng)過特征選擇的Logistic回歸等模型相比,DNN具有較好的預(yù)測效果。
客戶流失預(yù)測是一個不斷發(fā)展的問題,過去的研究成果解決了客戶流失預(yù)測領(lǐng)域的一些重要問題,但隨著大數(shù)據(jù)時代的來臨,客戶流失預(yù)測出現(xiàn)了新的特點,例如數(shù)據(jù)的超大規(guī)模、更高的復(fù)雜性等,對經(jīng)典的預(yù)測方法提出了挑戰(zhàn),需要新的方法來應(yīng)對變化。深度學(xué)習(xí)在處理大數(shù)據(jù)方面具有很大的優(yōu)勢,在圖像、語音、自然語言處理等領(lǐng)域取得了較為顯著的成果,但在客戶流失預(yù)測方面的研究較少。為探究深度學(xué)習(xí)在客戶流失預(yù)測上的效果,構(gòu)造了包含3個隱層的深度神經(jīng)網(wǎng)絡(luò),并在某電信客戶數(shù)據(jù)集上與Logistic回歸、決策樹等常用預(yù)測算法進(jìn)行對比,實驗結(jié)果表明,與經(jīng)過特征選擇的Logistic回歸等模型相比,構(gòu)造的深度神經(jīng)模型擁有較好的預(yù)測效果。由于條件所限,未能構(gòu)建擁有更多隱層的深度神經(jīng)網(wǎng)絡(luò)模型,也未能在更大規(guī)模的數(shù)據(jù)集上驗證深度神經(jīng)網(wǎng)絡(luò)的有效性。下一步,將探究更深層神經(jīng)網(wǎng)絡(luò)的性能以及卷積神經(jīng)網(wǎng)絡(luò)等經(jīng)典模型在網(wǎng)絡(luò)客戶流失預(yù)測上的應(yīng)用,并搜集更大規(guī)模的數(shù)據(jù)用于分析預(yù)測大數(shù)據(jù)環(huán)境下的客戶流失問題。