夏國恩,唐 琪 ,張顯全
1.廣西師范大學(xué) 計(jì)算機(jī)科學(xué)與信息工程學(xué)院,廣西 桂林 541000
2.廣西財(cái)經(jīng)學(xué)院 工商管理學(xué)院,南寧 530000
當(dāng)代社會(huì),隨著各行業(yè)的市場趨近于飽和,行業(yè)之間的競爭愈發(fā)激烈,企業(yè)家開始意識(shí)到,減少老用戶的流失應(yīng)該作為公司的首要目標(biāo)[1]??蛻舯A舨呗灾饕槍Ω唢L(fēng)險(xiǎn)的潛在流失客戶,改善其現(xiàn)有服務(wù),降低其流失可能性。另外,經(jīng)研究表明,吸引一個(gè)新用戶所需的成本遠(yuǎn)高于保留一個(gè)老用戶的成本[2]。因此,及時(shí)并準(zhǔn)確地識(shí)別潛在流失客戶對于企業(yè)降低成本是至關(guān)重要的。
客戶流失預(yù)測是客戶管理關(guān)系中的一個(gè)重要組成部分,如圖1所示,包括業(yè)務(wù)分析、數(shù)據(jù)分析、數(shù)據(jù)預(yù)處理、建模、評(píng)估和部署[3]。本文所關(guān)注的是客戶流失預(yù)測的建模過程,該模塊通過構(gòu)建合適的機(jī)器學(xué)習(xí)算法擬合客戶歷史數(shù)據(jù),來推斷客戶未來某個(gè)時(shí)期的特定狀態(tài)。企業(yè)通過預(yù)測模型可以精準(zhǔn)地識(shí)別存在流失風(fēng)險(xiǎn)的用戶,及時(shí)制定有針對性的營銷策略,挽留這部分客戶。
圖1 客戶流失預(yù)測流程圖
自20世紀(jì)90年代以來,客戶流失預(yù)測的研究主要分為兩個(gè)方向。第一個(gè)方向:研究者通過構(gòu)造更加復(fù)雜的分類模型,來不斷提升模型預(yù)測的表現(xiàn)及泛化能力。2008年夏國恩等人[4]提出了基于支持向量機(jī)的客戶流失預(yù)測模型,該模型在預(yù)測精度方面表現(xiàn)較好,但缺乏可解釋性。Huang等人[5]于2014年提出了可理解的支持向量機(jī),該模型不僅在精度方面表現(xiàn)優(yōu)異,而且通過構(gòu)建樸素貝葉斯樹,可以精準(zhǔn)地分析客戶流失的原因。文獻(xiàn)[6]使用粒子群智能優(yōu)化算法來代替多層感知機(jī)中的梯度下降優(yōu)化算法,該模型避免了神經(jīng)網(wǎng)絡(luò)陷入局部最優(yōu)的問題,大幅提高了預(yù)測精度。文獻(xiàn)[7]使用遺傳算法來進(jìn)行建模并加入了利益最大化準(zhǔn)則,在提高模型預(yù)測表現(xiàn)的基礎(chǔ)上,還為企業(yè)選擇利益最大化的方案。文獻(xiàn)[8]提出了使用CUSUM算法構(gòu)建自動(dòng)化流失報(bào)警系統(tǒng),利用當(dāng)前與最近的過程數(shù)據(jù)來檢驗(yàn)過程均值中不大的變化或變異性,累加樣本偏差,在超過設(shè)定閾值時(shí)自動(dòng)報(bào)警。
第二個(gè)方向:管理者通常想了解客戶流失的真正原因,以此來改善企業(yè)的服務(wù)質(zhì)量,避免產(chǎn)生更多的流失客戶。2014年Verbeke W等人[9]通過社交網(wǎng)絡(luò)分析來劃分客戶群體,針對不同的客戶群體使用不同的分類模型,既提高了預(yù)測表現(xiàn),又分析了不同社交群體的流失原因。2017年Amin A等人[10]使用窮舉法(EA)、遺傳算法(GA)、覆蓋算法(CA)與LEM2算法(LA)這四個(gè)規(guī)則生成機(jī)制來提取客戶歷史數(shù)據(jù)中的隱藏準(zhǔn)則,提取并組合成有用的客戶特征。文獻(xiàn)[11]使用了Logistic回歸與決策樹的混合算法來構(gòu)建預(yù)測模型,該算法在預(yù)測表現(xiàn)與可解釋性上都較好。文獻(xiàn)[12]提出了一種基于帕累托多目標(biāo)優(yōu)化的特征組合方法,提高了對特征擴(kuò)展空間的理解。
近些年,由于GPU運(yùn)算速度的提升、數(shù)據(jù)量的不斷增長和模型架構(gòu)的優(yōu)化[13],深度神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺[14]、語音識(shí)別[15]和機(jī)器翻譯[16]等方面取得了巨大的進(jìn)步,并且準(zhǔn)確度遠(yuǎn)高于大部分傳統(tǒng)模型。在客戶流失預(yù)測領(lǐng)域,深度神經(jīng)網(wǎng)絡(luò)模型如多層感知機(jī)的應(yīng)用大幅提高了模型的準(zhǔn)確率和時(shí)效性,然而與圖像、語音等非結(jié)構(gòu)化數(shù)據(jù)不同的是客戶數(shù)據(jù)中含有大量離散屬性,這些離散數(shù)據(jù)是無法被神經(jīng)網(wǎng)絡(luò)擬合的,這就使得多層感知機(jī)不能充分發(fā)揮其優(yōu)勢。
針對上述問題,本文將分別使用堆疊自編碼器與實(shí)體嵌入方法,對傳統(tǒng)的多層感知機(jī)模型進(jìn)行優(yōu)化,并運(yùn)用于客戶流失預(yù)測模型,解決了one-hot編碼后數(shù)據(jù)維度過高及數(shù)據(jù)稀疏帶來的計(jì)算消耗等問題。
離散屬性指的是結(jié)構(gòu)化數(shù)據(jù)中具有有限或無限可數(shù)個(gè)值,可以使用或不使用整數(shù)表示的屬性,包括序數(shù)屬性、二元屬性和標(biāo)稱屬性。例如,使用1,2,3,4來表示客戶的職業(yè)(標(biāo)稱屬性):教師、牙醫(yī)、程序員和農(nóng)民,自然不能說農(nóng)民是教師的4倍或者教師加程序員等于農(nóng)民,這些表征數(shù)字僅僅是名義上的數(shù)字,不具備實(shí)際的意義。
相對于傳統(tǒng)機(jī)器學(xué)習(xí)算法來說,深度神經(jīng)網(wǎng)絡(luò)能夠更好地?cái)M合連續(xù)型數(shù)值函數(shù)[17]。然而,在客戶流失預(yù)測中,用戶數(shù)據(jù)中的離散特征幾乎不存在連續(xù)性,極大地影響了損失函數(shù)的收斂,如果只是簡單將這些離散數(shù)據(jù)用整數(shù)表征,那么神經(jīng)網(wǎng)絡(luò)的效果自然不理想。通常情況下,為了解決上述問題,通常使用one-hot編碼來處理離散數(shù)據(jù),如{性別:{男,女,未知}}編碼為{男性{100},女性{010},未知{001}},但這種方式存在三個(gè)弊端:第一,在樣本量較大的情況下,one-hot編碼會(huì)產(chǎn)生大量稀疏數(shù)據(jù),這會(huì)影響分類器的準(zhǔn)確度;第二,完全獨(dú)立地處理離散屬性中不同的值,忽略了不同值之間的內(nèi)在關(guān)系[18];第三,若離散屬性或某些離散屬性值過多,容易造成維度災(zāi)難。
多層感知機(jī)(MLP)是一種相鄰層之間的神經(jīng)元節(jié)點(diǎn)全連接,而同一層內(nèi)的神經(jīng)元節(jié)點(diǎn)無連接的神經(jīng)網(wǎng)絡(luò)模型。如圖2所示,樣本的訓(xùn)練數(shù)據(jù)由輸入層輸入,通過一個(gè)或多個(gè)全連接層,每一個(gè)全連接層中的神經(jīng)元能對原始數(shù)據(jù)進(jìn)行擬合,最后由輸出層將數(shù)據(jù)輸出,使用輸出值與樣本標(biāo)簽來構(gòu)建損失函數(shù),通過反向傳播的梯度下降算法[13]迭代降低損失函數(shù)并更新模型的參數(shù),使損失函數(shù)達(dá)到最小值,此時(shí)的多層感知機(jī)模型就具備了精確擬合樣本特征的能力。
圖2 多層感知機(jī)
堆疊自編碼器[19]是一種能將高維數(shù)據(jù)以低維形式表征的神經(jīng)網(wǎng)絡(luò)模型,該模型能有效地降低數(shù)據(jù)維度并保留絕大部分信息,相比于單層的自編碼器,其保留的數(shù)據(jù)信息更多。如圖3所示,數(shù)據(jù)由輸入層輸入,經(jīng)編碼層編碼后,在隱藏層以低維向量表征高維數(shù)據(jù),再通過解碼層解碼,最后由輸出層輸出,與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型不同,自編碼器并不使用樣本標(biāo)簽來構(gòu)造損失函數(shù),而是使用輸入的樣本數(shù)據(jù)與輸出值來構(gòu)造均方差損失函數(shù):
其中,xi為第i個(gè)樣本的輸入數(shù)據(jù),outi為第i個(gè)樣本的輸出值,γ為模型參數(shù),m為樣本個(gè)數(shù)。通過多次迭代降低損失函數(shù),使模型輸出值盡可能與輸入數(shù)據(jù)相同,那么隱藏層中的向量就是樣本數(shù)據(jù)的低維表征形式。
圖3 堆疊自編碼器
實(shí)體嵌入[20]在神經(jīng)網(wǎng)絡(luò)中最早用于相關(guān)數(shù)據(jù)的表征,時(shí)至今日,應(yīng)用范圍越來越廣泛,例如詞嵌入[21]已經(jīng)在自然語言處理領(lǐng)域占有重要的地位。實(shí)體嵌入方法不僅增加同一屬性內(nèi)不同值之間的相關(guān)性,而且在嵌入空間中不同的嵌入向量若相關(guān)性越高,則距離越近,反之則越遠(yuǎn)。對于嵌入前后的向量通常使用三元組(h,r,l)表示,h代表高維原始數(shù)據(jù),l代表嵌入后的低維表征向量,r代表兩個(gè)向量之間的聯(lián)系。如圖4所示,對于高維稀疏向量,將其映射到低維空間:
其中,xj為第 j個(gè)離散屬性進(jìn)行one-hot編碼后的向量,Xi為映射后的向量。假設(shè)tj為第 j個(gè)離散屬性的值的個(gè)數(shù),則xj的維度為tj,進(jìn)行映射后的向量Xj維度在1到tj-1之間。通過映射入低維空間,每一個(gè)離散屬性的編碼向量都降低了維度,并且增加了屬性值之間的交互作用。
圖4 實(shí)體嵌入
在本文的客戶流失預(yù)測模型中,如圖5所示,使用單層網(wǎng)絡(luò)模型,其全連接層節(jié)點(diǎn)使用Elu激活函數(shù):
其中,α為超參數(shù),需要調(diào)試。相比于Sigmoid、Relu等激活函數(shù),Elu函數(shù)能有效解決梯度彌散和無法攜帶負(fù)值信息的問題[22]。輸出層只有1個(gè)神經(jīng)元,采用sigmoid激活函數(shù):
該函數(shù)能將輸出值壓縮在0到1之間,當(dāng)預(yù)測值大于等于0.5時(shí),意味著該客戶為潛在流失客戶;當(dāng)值小于0.5時(shí),則該客戶為正??蛻簟T诜聪騻鞑ミ^程中,使用Adam梯度下降算法[23]最小化交叉熵?fù)p失函數(shù):
其中,m為樣本個(gè)數(shù),yi∈{0,1}為第i個(gè)樣本的標(biāo)簽值,1代表該客戶屬于流失群體,0代表該客戶屬于非流失群體,predi∈(0,1)為第i個(gè)樣本的預(yù)測值,θ為模型參數(shù),a為任意自然常數(shù)。以單個(gè)樣本為例:當(dāng)yi=1時(shí),若要使損失最小,則 predi→1;當(dāng)yi=0時(shí),若要使損失函數(shù)最小,則predi→0。通過多次迭代,使得損失函數(shù)達(dá)到小值,模型的參數(shù)趨于穩(wěn)定,輸出值與樣本標(biāo)簽盡可能相同,以此實(shí)現(xiàn)模型預(yù)測的能力。
圖5 多層感知機(jī)模型
一般來說,堆疊自編碼器用于數(shù)據(jù)的預(yù)處理,但在本文中,為了將低維表征數(shù)據(jù)與預(yù)測模型產(chǎn)生關(guān)聯(lián),將自編碼器對于編碼數(shù)據(jù)的低維表征過程與多層感知機(jī)模型的反向傳播過程同時(shí)進(jìn)行,目的是在保留離散數(shù)據(jù)絕大部分信息的同時(shí),將高維的稀疏數(shù)據(jù)以一種低維的形式表征,并用于多層感知機(jī)的優(yōu)化過程。
圖6 融合堆疊自編碼器的多層感知機(jī)模型
如圖6所示,首先,將進(jìn)行one-hot編碼后的離散數(shù)據(jù)放入堆疊自編碼器處理,得到低維表征向量:
其中,w2與b2分別為堆疊自編碼器中隱藏層的權(quán)重與偏移量。然后,將數(shù)值型數(shù)據(jù)與低維表征向量合并:
最后,使用多層感知機(jī)處理合并后的向量:
并使用sigmoid函數(shù)將其概率化輸出,該模塊構(gòu)造的損失函數(shù)及迭代優(yōu)化算法與基于多層感知機(jī)的預(yù)測模型相同。
在訓(xùn)練的過程中,同時(shí)使用Adam優(yōu)化算法迭代優(yōu)化堆疊自編碼器模塊的均方差損失函數(shù)與多層感知機(jī)模塊的交叉熵?fù)p失函數(shù)。這兩個(gè)過程通過訓(xùn)練逐漸達(dá)到平衡,既實(shí)現(xiàn)了數(shù)據(jù)降維、解決了數(shù)據(jù)稀疏問題,也在一定程度上增加了離散數(shù)據(jù)間不同值的相關(guān)性。堆疊自編碼器模塊的編碼層,隱藏層和解碼層均使用sigmoid激活函數(shù),目的是使低維表征后的數(shù)據(jù)盡可能接近于預(yù)處理后的數(shù)值型數(shù)據(jù),以免影響模型分類效果。
相比于傳統(tǒng)感知機(jī),融合了實(shí)體嵌入的模型并不直接將離散數(shù)據(jù)的編碼向量與數(shù)值型數(shù)據(jù)合并輸入多層感知機(jī)模型,而是如圖7所示,首先在每個(gè)編碼層后分別添加了一個(gè)嵌入層,即將k個(gè)離散屬性編碼后的向量進(jìn)行映射:
其中,xj代表第 j個(gè)離散屬性的one-hot編碼,該過程使得每一個(gè)嵌入層都是原編碼向量的復(fù)雜組合形式。然后,將嵌入后的所有表征向量與數(shù)值型數(shù)據(jù)合并:
最后將組合的特征向量放入多層感知機(jī)訓(xùn)練,該模塊的構(gòu)建方式與上述的兩個(gè)模型相同。
圖7 融合實(shí)體嵌入的多層感知機(jī)模型
該模型在訓(xùn)練的過程中通過迭代使用反向傳播能夠同時(shí)優(yōu)化實(shí)體嵌入過程與多層感知機(jī)模塊,利用神經(jīng)網(wǎng)絡(luò)的分布式表征能力,將編碼后的特征向量轉(zhuǎn)化為低維表征向量,既解決了數(shù)據(jù)稀疏的問題也加強(qiáng)了離散數(shù)據(jù)不同值之間的交互作用。在實(shí)際操作中,Xj的維度,即嵌入層神經(jīng)元的個(gè)數(shù),對于二元屬性,維度值取1,而其余嵌入層的維度,則需要在實(shí)驗(yàn)中不斷地調(diào)試來確定。
本文的對比模型使用CART、KNN、樸素貝葉斯和SVM,這些模型在客戶流失預(yù)測中得到了廣泛的應(yīng)用,并且在準(zhǔn)確性和健壯性等方面效果較好。
CART是一類決策樹算法,采用二叉樹結(jié)構(gòu),在分類預(yù)測中,通過計(jì)算基尼系數(shù)選出最優(yōu)特征及特征值,來劃分?jǐn)?shù)據(jù)集并建立左右結(jié)點(diǎn):
其中,k表示第k個(gè)類別,pk為第k個(gè)類別的概率。
相比于ID3和C4.5,CART的計(jì)算復(fù)雜度較低,且實(shí)行剪枝策略,能有效解決過擬合問題,提高模型的泛化能力:
其中,α為正則化參數(shù),Cα為損失函數(shù),C(T)為訓(xùn)練數(shù)據(jù)的預(yù)測誤差, ||T為子樹T的葉子結(jié)點(diǎn)數(shù)。
在分類預(yù)測中,KNN算法通過計(jì)算閔可夫斯基距離,來選擇最接近預(yù)測樣本的k個(gè)樣本的多數(shù)類別作為預(yù)測值輸出:
其中,xp、xq為樣本中的兩個(gè)樣本,n為樣本的屬性個(gè)數(shù)。
樸素貝葉斯是一種生成式機(jī)器學(xué)習(xí)分類算法。該算法首先計(jì)算樣本標(biāo)簽與樣本屬性之間的聯(lián)合概率密度,再通過貝葉斯公式計(jì)算條件概率密度,最后選擇概率最大的類別作為預(yù)測輸出:
其中,k表示第k個(gè)類別。
SVM雖然誕生時(shí)間不久,但憑借其在分類精度和泛化能力方面的優(yōu)異表現(xiàn),得到了極為廣泛的應(yīng)用。
對線性可分的數(shù)據(jù)集來說,SVM首先構(gòu)造帶約束的優(yōu)化問題:
其中,m為樣本數(shù),αi為拉格朗日乘子。通過SMO算法可以計(jì)算出α向量,進(jìn)而得到切分?jǐn)?shù)據(jù)集的最優(yōu)超平面。然而,在現(xiàn)實(shí)中,數(shù)據(jù)集一般是線性不可分的,這時(shí)則需要通過核函數(shù)將低維不可分?jǐn)?shù)據(jù)映射到高維可分空間,然后計(jì)算出最優(yōu)的超平面,用來劃分?jǐn)?shù)據(jù)集。
本文實(shí)驗(yàn)使用ubuntu18操作系統(tǒng),工程軟件為Jupyter Notebook。使用深度學(xué)習(xí)框架TensorFlow構(gòu)建基于多層感知機(jī)的模型,機(jī)器學(xué)習(xí)庫Sklearn構(gòu)建對比實(shí)驗(yàn)。硬件為16核32線程2.1 GHzCPU(E5-2620),6 GB顯存的顯卡(Quadro M5000),64 GB內(nèi)存。
本文實(shí)驗(yàn)使用兩個(gè)不同的真實(shí)電信用戶數(shù)據(jù)集:
(1)數(shù)據(jù)集1選自kaggle數(shù)據(jù)科學(xué)大賽。該數(shù)據(jù)集包含了7 043個(gè)樣本,其中流失客戶數(shù)為1 869,非流失客戶數(shù)為5 174;屬性個(gè)數(shù)為19,其中離散屬性15個(gè),數(shù)值屬性4個(gè)。由于該數(shù)據(jù)集樣本數(shù)較少,且流失客戶數(shù)量遠(yuǎn)小于正??蛻?,所以屬于非平衡型小樣本數(shù)據(jù)集。
(2)數(shù)據(jù)集2選自kaggle數(shù)據(jù)科學(xué)大賽。該數(shù)據(jù)集包含了100 000個(gè)樣本,其中流失用戶數(shù)量為49 562,非流失用戶數(shù)量為50 436;屬性個(gè)數(shù)為100,其中有79個(gè)數(shù)值型屬性和21個(gè)離散型屬性。由于該數(shù)據(jù)集樣本數(shù)較多,且流失客戶數(shù)量與正??蛻艋境制剑詫儆谄胶庑痛髽颖緮?shù)據(jù)集。
對于二分類的預(yù)測模型來說,一般使用準(zhǔn)確率(accuracy)、精準(zhǔn)率(precision)、召回率(recall)和F1值(F1)作為模型評(píng)判的主要指標(biāo),公式如下:
其中,TP為正確劃分為流失客戶的樣本數(shù);TN為正確劃分為非流失客戶的樣本數(shù);FP為錯(cuò)誤劃分為流失客戶的樣本數(shù);FN為錯(cuò)誤劃分為非流失客戶的樣本數(shù)。為了直觀地分析模型優(yōu)劣,實(shí)驗(yàn)使用了ROC曲線與PR曲線[24],其中ROC曲線縱坐標(biāo)為TPR(正確預(yù)測的流失客戶數(shù)與總流失客戶數(shù)的比值),橫坐標(biāo)為FPR(錯(cuò)誤預(yù)測的流失客戶數(shù)與總流失客戶數(shù)的比值);PR曲線的縱、橫坐標(biāo)分別為精準(zhǔn)率與召回率。
在客戶流失預(yù)測中,如果分類模型預(yù)測某一客戶會(huì)流失,但實(shí)際上沒有,這類錯(cuò)誤是可以接受的。然而,如果分類模型預(yù)測某一用戶會(huì)留下,但該用戶卻屬于流失群體,這類錯(cuò)誤是無法接受的。因此,對于流失客戶數(shù)較少的非平衡型數(shù)據(jù)集1,最重要的指標(biāo)則是召回率;對于均衡型數(shù)據(jù)集2,最重要的指標(biāo)則是精準(zhǔn)率和召回率。另外,考慮到預(yù)測模型的實(shí)效性,實(shí)驗(yàn)指標(biāo)還增設(shè)了測試集的總擬合時(shí)間。
實(shí)驗(yàn)中的MLP,融合自編碼器的MLP及對比模型的參數(shù)如表1所示,融合實(shí)體嵌入的MLP的部分嵌入層維數(shù)如表2所示。
表1 模型參數(shù)
本文使用5折交叉驗(yàn)證進(jìn)行實(shí)驗(yàn),將測試集實(shí)驗(yàn)結(jié)果的平均值作為模型評(píng)判的標(biāo)準(zhǔn),各指標(biāo)如表3所示,ROC曲線與PR曲線如圖8所示。
CART在兩個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)效果表現(xiàn)良好,即使是非平衡型數(shù)據(jù)集,也能很好地處理??偟膩碚f,該算法擅長處理結(jié)構(gòu)化數(shù)據(jù),計(jì)算復(fù)雜度較低,在實(shí)效性方面有優(yōu)勢,但在處理大樣本多屬性的數(shù)據(jù)集時(shí),如果樣本中某些特征的樣本比例過大,那么模型精度會(huì)受到較大的影響。
表2 部分嵌入層的維度
KNN通過計(jì)算歐氏距離來選擇預(yù)測樣本附近的部分樣本,即劃分客戶群體,選擇該群體中的多數(shù)類別作為預(yù)測值輸出。這種方法等同于默認(rèn)了樣本各屬性屬于同一數(shù)據(jù)分布與范圍,但實(shí)際上,每一個(gè)屬性都有各自的數(shù)據(jù)分布與范圍,僅僅通過計(jì)算歐氏距離所得到的客戶群體是極為不準(zhǔn)確的,特別是在屬性值較多或者處理非平衡數(shù)據(jù)集的情況下,會(huì)極大地影響模型精度。另外,該算法計(jì)算量太大,導(dǎo)致模型時(shí)效性很差。
樸素貝葉斯通過先驗(yàn)概率和數(shù)據(jù)來得到后驗(yàn)概率,所以在給定輸出類別的情況下,默認(rèn)假設(shè)樣本屬性之間是相互獨(dú)立的,但在實(shí)際中,這個(gè)假設(shè)是不成立的,各個(gè)屬性之間必然存在相關(guān)性,所以一旦屬性個(gè)數(shù)較多或者屬性之間相關(guān)性較強(qiáng),則分類效果會(huì)很差。另外,在處理非平衡型數(shù)據(jù)集時(shí),該算法的表現(xiàn)較差。
SVM通過各類核函數(shù)將低維線性不可分的樣本映射到高維可分空間,該算法在模型精度方面優(yōu)勢較大,但隨著樣本量的增加,核函數(shù)映射的維度會(huì)越來越高,這就使得計(jì)算量不斷增加,大大影響了預(yù)測模型的時(shí)效性,所以SVM不適合處理大樣本數(shù)據(jù)集。
在模型精度和時(shí)效性方面,使用GPU運(yùn)算的神經(jīng)網(wǎng)絡(luò)模型有較大的優(yōu)勢。即使是處理深度神經(jīng)網(wǎng)絡(luò)所不擅長的小樣本數(shù)據(jù)集,改進(jìn)后的多層感知機(jī)模型也能很好地學(xué)習(xí)樣本屬性的內(nèi)在特征。與傳統(tǒng)的多層感知機(jī)模型相比,自編碼器與實(shí)體嵌入解決了one-hot編碼造成的問題,將高維編碼數(shù)據(jù)向低維空間映射,降低了神經(jīng)網(wǎng)絡(luò)收斂于局部最小值的可能性,增加了數(shù)據(jù)之間的關(guān)聯(lián)度,將離散屬性以數(shù)值表示,改善了離散屬性的度量方式,提高了各項(xiàng)評(píng)判指標(biāo)。相比于自編碼器對所有離散屬性的編碼數(shù)據(jù)進(jìn)行映射,實(shí)體嵌入則是分別將每一個(gè)離散屬性向低維空間映射,對數(shù)值間關(guān)聯(lián)的表征能力更強(qiáng),因此,其分類準(zhǔn)確度更高。
表3 實(shí)驗(yàn)結(jié)果
圖8 ROC曲線與PR曲線
多層感知機(jī)模型在客戶流失預(yù)測的應(yīng)用中,由于用戶數(shù)據(jù)存在大量的離散屬性,使得模型無法很好地?cái)M合數(shù)據(jù),而自編碼器和實(shí)體嵌入能有效解決這個(gè)問題,改進(jìn)后的模型效果提升明顯。然而,本文的研究依舊存在一些不足,未來的重點(diǎn)工作將包含以下兩個(gè)方面:
第一,由于多層感知機(jī)能擬合數(shù)值型離散數(shù)據(jù),所以在本文的實(shí)驗(yàn)中,只是對非數(shù)值型離散數(shù)據(jù)進(jìn)行編碼,而將數(shù)值型離散數(shù)據(jù)與非數(shù)值型離散數(shù)據(jù)以相同方式處理,是否能夠進(jìn)一步提高模型準(zhǔn)確度是一個(gè)值得研究的問題。
第二,在實(shí)體嵌入的實(shí)驗(yàn)中,每個(gè)離散屬性對應(yīng)的嵌入層大小需要不斷調(diào)試,如果數(shù)據(jù)集存在大量離散數(shù)據(jù)又或者每個(gè)離散屬性包含大量的值,那么調(diào)試的工作量無疑是巨大的,因此,一個(gè)確定嵌入層大小的方法是至關(guān)重要的。