鄭桂钖,徐 寬
(1.華南理工大學(xué)工商管理學(xué)院,廣東 廣州 510000;2.中國科學(xué)技術(shù)大學(xué)大數(shù)據(jù)學(xué)院,安徽 合肥 230000)
隨著科技經(jīng)濟不斷進步,市場全球化的進程繼續(xù)深入,消費者的選擇也越來越多,面對愈發(fā)激烈的市場競爭,各行各業(yè)愈發(fā)重視用戶這一可謂“根基”的資源,且相較于保留老用戶,新用戶的獲取成本通常要成倍地高于前者[1]。因而用戶流失預(yù)警對企業(yè)而言重要性不言而喻。提高用戶流失的預(yù)測精度,有助于構(gòu)建用戶流失預(yù)警體系,讓實現(xiàn)對不同用戶的挽留、轉(zhuǎn)化、精準營銷成為可能,從而提高企業(yè)的收益。
國內(nèi)外學(xué)者在用戶流失(Customer Churn)問題上主要集中在電信、金融行業(yè)。隨著移動互聯(lián)網(wǎng)的興起,近些年來也有學(xué)者關(guān)注在線電商、游戲、社交等行業(yè)。早期用戶流失研究致力于通過實證研究尋找影響用戶流失的因素上,目前主要的研究工作都是圍繞用戶行為數(shù)據(jù)進行建模、分析,以總結(jié)用戶流失行為的規(guī)律,或者對用戶流失行為進行預(yù)測,即用戶流失預(yù)測。在這個問題上,各領(lǐng)域各行業(yè)的研究大概可以分為2個方向:①將預(yù)測用戶的流失時間,基于用戶生命周期對用戶剩余的生存期進行一個預(yù)測,這種方向大多結(jié)合生存分析進行研究[2];②將用戶流失視為一個流失(Churn)與非流失(Non-Churn)這樣一種二分類的問題,這也是絕大多數(shù)研究的方向。
目前的用戶流失預(yù)測模型中,除了行業(yè)的選擇外,主要差異集中在流失的定義、特征的選擇及具體模型的選擇。
在電信、金融、保險等偏合約性質(zhì)的行業(yè)用戶的定義較為簡潔,在這些行業(yè)中用戶離開一個服務(wù)提供商到另一個服務(wù)提供商的行為即被稱為用戶流失[3];但在電商、游戲、社交等互聯(lián)網(wǎng)相關(guān)的非合約性質(zhì)的行業(yè)中用戶的流失沒有一個明確的公認標準,最常見的是以最長連續(xù)無有效活躍天數(shù)(假設(shè)為T,下稱閾值)作為判斷標準,當(dāng)用戶連續(xù)不登陸天數(shù)大于T時則認為用戶流失[4],通常而言閾值T與產(chǎn)品的用戶黏性呈負相關(guān)關(guān)系,同時這種樸素的方法也受企業(yè)管理層對于用戶流失敏感性的影響。
特征選擇普遍是基于相關(guān)領(lǐng)域知識的,如前面提到有部分學(xué)者著重研究影響用戶流失的因素,通常選擇可描述流失相關(guān)因素及用戶行為指標來構(gòu)建特征;此外,也有一些學(xué)者結(jié)合其他社科領(lǐng)域的知識,如考慮同個社交網(wǎng)絡(luò)中用戶間的相互影響來對特征進行補充[5]。時間序列中往往包含了許多動態(tài)信息,但過去的研究往往只是對時間序列進行等距測量或聚類,并簡單地視為離散特征輸入[6],而鮮有考慮到深入挖掘時間序列的信息。
針對于將用戶流失預(yù)測作為二分類問題的研究在建模算法上選擇多種多樣,從算法原理上大致可以分為以決策樹、貝葉斯、邏輯回歸為代表的基于傳統(tǒng)統(tǒng)計學(xué)算法,以支持向量機、隱馬爾可夫為代表的基于統(tǒng)計學(xué)習(xí)理論算法,基于啟發(fā)式學(xué)習(xí)的預(yù)測算法,基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法及目前最熱門的基于集成學(xué)習(xí)的算法。不同的方法各有特點,在不同的研究中表現(xiàn)也有所不同,但通常來說神經(jīng)網(wǎng)絡(luò)和集成學(xué)習(xí)算法表現(xiàn)會更優(yōu)[7]。
綜上所述,目前用戶流失預(yù)測研究大部分集中在電信、金融、保險等合約關(guān)系明確的領(lǐng)域,而對互聯(lián)網(wǎng)行業(yè)的研究相對較少,尤其是直播行業(yè),若能較好地針對體量巨大的互聯(lián)網(wǎng)行業(yè)用戶進行準確的流失預(yù)測,將帶來十分可觀的經(jīng)濟效益。針對以往研究中粗糙的流失定義及缺乏對時間序列信息的挖掘問題,本文將從數(shù)據(jù)表現(xiàn)出發(fā)對用戶流失進行更細粒度的指標量化和定義,同時對時間序列這一重要信息進行深入挖掘,對互聯(lián)網(wǎng)直播行業(yè)用戶進行流失預(yù)測,最后探究不同算法模型下與基于領(lǐng)域知識的模型在流失預(yù)測效果的差異。
通過對時間序列進行特征提取,再將提取后的特征用以模型訓(xùn)練是解決機器學(xué)習(xí)中時序相關(guān)問題的常見做法。如何從時間序列中提取有效特征也是一個熱門的研究領(lǐng)域,早期學(xué)者們通常會提取與序列分布相關(guān)的基本特征,如最大值、最小值、偏度、峰度等[8]。除此之外,在不同應(yīng)用領(lǐng)域下也提出了針對性的帶領(lǐng)域知識的特征抽取算法,如基于小波特征來監(jiān)測齒輪震動以診斷機器故障[9],通過提取擬合指數(shù)函數(shù)的參數(shù)來估計軸承的剩余壽命[10]等。在后期,F(xiàn)ULCHER等[11]提出了(Highly Comparative Time-series Analysis,HCTSA)框架并開發(fā)了HCTSA工具箱,其原理是利用龐大的科學(xué)工作語料庫,集成天體物理學(xué)、金融、數(shù)學(xué)、工業(yè)應(yīng)用等各個領(lǐng)域的特征生成算法,構(gòu)建出時間序列的數(shù)千個特征,包括數(shù)據(jù)值的分布信息(如高斯性,離群值的性質(zhì))、自相關(guān)結(jié)構(gòu)(如功率譜度量)、平穩(wěn)性(性質(zhì)如何隨時間變化,如一階差分)、熵和時間可預(yù)測性的信息理論度量、線性和非線性模型對數(shù)據(jù)的擬合狀況等,并使用線性分類器進行特征選擇,以求全面地量化和理解時間序列蘊含的有效信息。文獻[12]也證明了在許多標準數(shù)據(jù)集上,基于HCTSA時間序列特征建模的方法在分類任務(wù)上表現(xiàn)優(yōu)于傳統(tǒng)的基于時間序列相似度方法。
受FULCHER和JONES等的啟發(fā),2016年CHRIST等[13]在HCTSA的基礎(chǔ)上,提出了基于可擴展假設(shè)檢驗的時間序列特征提?。‵eature Extraction on basisof Scalable Hypothesis tests,F(xiàn)RESH)算法框架。FRESH將特征抽取算法精簡至63種,在不同參數(shù)下計算后共計得到794個特征;另外,F(xiàn)RESH使用基于假設(shè)檢驗的方法進行特征選擇。2018年CHRIST等[14]也基于Python完成了對應(yīng)軟件包TSFRESH的實現(xiàn),在特征提取與過濾算法上實現(xiàn)高度并行,同時也兼容了常見的機器學(xué)習(xí)框架,如scikit-learn,numpy等,便于直接應(yīng)用到實際生產(chǎn)研究中。同時,在UCR標準時間序列分類數(shù)據(jù)集上的評估結(jié)果表明,F(xiàn)RESH方法在預(yù)測精度和計算開銷上相較于經(jīng)典的基于時間序列相似度方法及特征篩選算法均有一定優(yōu)勢[13]。
本文涉及的機器學(xué)習(xí)算法的原理如表1所示。
表1 算法概要
本文使用的數(shù)據(jù)來自國內(nèi)某移動互聯(lián)網(wǎng)研發(fā)公司的一款海外直播APP,以2020-10-01的某大區(qū)直播活躍用戶于2020-09-18—2020-10-01共14 d內(nèi)的各類行為及個人基本信息數(shù)據(jù)為基礎(chǔ),對這部分用戶進行流失預(yù)測。其中,活躍用戶定義位用戶當(dāng)天在直播房間內(nèi)總時長不低于3 min,太少的時長有可能是因為用戶僅僅為了簽到或誤操作,并不包含有效行為信息。出于信息完整性及實際考慮,數(shù)據(jù)中剔除了注冊日期少于14 d的用戶,一方面這部分用戶在過去周期內(nèi)的數(shù)據(jù)不完整;另一方面注冊少于14 d的用戶大體上算是新用戶,他們的行為規(guī)律相比于已經(jīng)長注冊時間用戶而言不夠穩(wěn)定,同時存在大量的用戶注冊后短時間內(nèi)便流失,這些用戶往往非APP的目標用戶,他們的流失也并非企業(yè)關(guān)心的。
最終數(shù)據(jù)集中共包括219 910個用戶,其中有45 099名用戶被標記為流失用戶,占比20.51%。
用戶流失預(yù)測的本質(zhì)就是利用用戶過去一段時間的行為特征等信息,從而來預(yù)測用戶在未來一段時間是否會流失。因此從大層面上看,首先需要對用戶流失做出合適的定義,接著選擇相應(yīng)的特征信息用以最后的建模預(yù)測。
而從時間維度上看,整個流失預(yù)警過程可以分為以下3個窗口:首先是行為觀察窗口,在該窗口內(nèi)對用戶的特征進行收集,并在窗口末尾用以模型訓(xùn)練;從而來預(yù)測用戶在未來的一段時間內(nèi)是否流失,也即進入了流失預(yù)測窗口;最后是流失判別窗口,該窗口可以觀察在預(yù)測窗口中定義為流失的用戶是否真正流失,從而來輔助流失定義。用戶流失預(yù)警過程如圖1所示。
圖1 用戶流失預(yù)警過程
在模型特征信息選擇上分別構(gòu)建2組特征,一組主要由用戶的行為特征及個人特征屬性組成,也是絕大多數(shù)研究所使用的,稱為常規(guī)特征;另一組為對用戶TW1的時長時間序列進行提取后的特征,稱為高維時間序列特征。
3.3.1 常規(guī)特征
常規(guī)特征主要由以下4部分信息組成:①用戶活躍相關(guān)信息,包括活躍/上麥的天數(shù)及總時長、平均時長,進房次數(shù)等;②用戶營收相關(guān)信息,包括送禮/收禮人數(shù)、次數(shù)、金額,最大充值金額,背包禮物余額等;③用戶社交相關(guān)信息,包括發(fā)送IM消息數(shù)量、關(guān)注主播數(shù)、好友數(shù)、被關(guān)注數(shù)等;④用戶個人畫像信息,包括國家、年齡、性別、注冊至今天數(shù)、是否有過充值/消費行為等。
從直觀上來說,用戶在TW1內(nèi)的行為是對其行為特征最好的刻畫,但考慮到不同用戶對于APP的黏性及所處生命周期階段不同,因此將用戶的歷史行為信息也納入特征中,最終常規(guī)特征共包含41維特征。
3.3.2 高維時序特征
通過TSFRESH框架提取了用戶在TW1內(nèi)的每日活躍時長序列的794個特征,主要包括以下幾個部分:①時間序列值分布的基本統(tǒng)計信息,包括分布、散度、高斯性值、離群值屬性等;②線性相關(guān)性,包括自相關(guān)性、功率譜特征等;③平穩(wěn)性,包括StatAv、滑動窗口測量、預(yù)測誤差等;④信息論與復(fù)雜性度量,包括自互信息、近似熵、Lempel-Ziv復(fù)雜度等;⑤線性和非線性模型擬合,包括自回歸移動平均(ARMA)、高斯過程和廣義自回歸條件異方差(GARCH)模型的擬合優(yōu)度、估計和參數(shù)值等。
數(shù)據(jù)質(zhì)量及特征工程的好壞會顯著影響建模結(jié)果的準確和有效性,也是研究的可靠性保障,其主要包含以下工作。
3.4.1 異常值、缺失值處理
將超過正常使用所能達到的數(shù)據(jù)定義為異常數(shù)據(jù),如異常心跳上報的時長數(shù)據(jù)及觸發(fā)相應(yīng)風(fēng)控策略的營收數(shù)據(jù)等。經(jīng)過統(tǒng)計,存在異常數(shù)據(jù)的用戶占比低于0.01%,故將這部分用戶直接剔除。而在缺失值上,最高缺失特征缺失值占比為0.29%,分別使用眾數(shù)、均值對離散及連續(xù)變量進行缺失值填充。
3.4.2 特征篩選
特征篩選目標是盡可能在不引起重要信息丟失的前提下去除掉冗余甚至無關(guān)特征,保留與預(yù)測目標相關(guān)的特征。使用費舍爾精確檢驗(Fisher'sexact test)[15]及曼-惠特尼U驗(Mann-Whitney U test)對二分類特征及數(shù)值特征進行假設(shè)檢驗篩選;針對高維時序特征,使用Benjamini-Yekutieli方法[16]控制多次假設(shè)檢驗的錯誤發(fā)現(xiàn)率FDR(False Discovery Rate)。顯著性水平α均取0.05。經(jīng)過篩選后,常規(guī)特征保留39維,高維時序特征保留326維。
3.4.3 數(shù)據(jù)標準化
實驗中所使用的KNN是基于歐氏距離的算法,在計算過程中必須消除特征量綱的影響;同時,對于使用梯度下降來優(yōu)化的算法,如SVM、BP、LSTM,歸一化有助于加快收斂,因而在這些模型訓(xùn)練前,將對連續(xù)特征進行z-score標準化處理,同時在離散特征上采用獨熱編碼。
上文中提到,過去研究中具體用于流失預(yù)測建模的算法繁多,從大方向上主要可以分為傳統(tǒng)統(tǒng)計學(xué)、統(tǒng)計學(xué)習(xí)理論、啟發(fā)式、神經(jīng)網(wǎng)絡(luò)及集成學(xué)習(xí)5類。面對各式各樣的算法選擇,實驗的第一部分將基于常規(guī)特征,選擇各類算法中的主要代表模型來進行建模,探究不同模型的表現(xiàn),同時也將得到的最優(yōu)模型作為后續(xù)實驗?zāi)P蛥⒄盏腷aseline基準模型;同時,針對過去研究中對時序特征缺乏考慮的問題,實驗的第二部分先使用高維時序特征進行建模,再將常規(guī)特征與高維時序特征進行融合建模,觀察高維時序特征是否有助于提升模型表現(xiàn)。特征建模簡要流程如圖2所示。
模型構(gòu)建的具體過程如圖3所示,首先用特征工程的方法對初始數(shù)據(jù)集進行預(yù)處理,然后將清洗好的數(shù)據(jù)集按7∶3的比例隨機拆分為訓(xùn)練集與測試集。訓(xùn)練集用以模型訓(xùn)練,以準確率為目標使用對半網(wǎng)格搜索(Halving Grid Search)[17]或貝葉斯優(yōu)化(Bayesian Optimization)[18]選擇最優(yōu)參數(shù),并進行5折交叉驗證。確定最優(yōu)參數(shù)后使用完整訓(xùn)練集進行模型訓(xùn)練,而后在測試集上進行預(yù)測得到預(yù)測結(jié)果,并使用準確率(Accuracy)、召回率(Recall)、F1值(F1-score)及AUC值全面地評估模型效果。
圖2 特征建模簡要流程
圖3 流失預(yù)測模型構(gòu)建過程
3.6.1 基于常規(guī)特征建模
從算法使用頻率、趨勢及數(shù)據(jù)特性出發(fā),在這部分實驗中,以決策樹DT、最近鄰算法KNN作為傳統(tǒng)統(tǒng)計學(xué)算法的代表,以支持向量機SVM作為統(tǒng)計學(xué)習(xí)理論算法代表,以粒子群遺傳混合算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)作為啟發(fā)式算法與神經(jīng)網(wǎng)絡(luò)的代表,并選擇隨機森林RF和XGBoost作為Bagging和Boosting等集成算法的代表。實驗預(yù)測結(jié)果如表2所示。
表2 基于常規(guī)特征建模的模型預(yù)測結(jié)果
從表2中可以看到,集成學(xué)習(xí)算法總體表現(xiàn)最優(yōu),基于Bagging集成學(xué)習(xí)的隨機森林算法在準確率、F1值及AUC值取得最高得分,而基于Boosting集成學(xué)習(xí)的XGBoost在召回率上有最佳得分。此外,基于統(tǒng)計學(xué)習(xí)方法的SVM表現(xiàn)最優(yōu),經(jīng)過PSO-GA改進后的神經(jīng)網(wǎng)絡(luò)次之,改進后的神經(jīng)網(wǎng)絡(luò)也相較改進前在正例樣本表現(xiàn)上更優(yōu),有更高的覆蓋率和F1值,而基于傳統(tǒng)統(tǒng)計學(xué)習(xí)的決策樹及K近鄰算法表現(xiàn)較差。因此,選擇基于常規(guī)特征進行建模的隨機森林模型作為后續(xù)實驗參照的基準模型。同時由于集成學(xué)習(xí)算法的出色表現(xiàn),后續(xù)建模也更傾向使用集成學(xué)習(xí)算法。
3.6.2 基于時序及融合特征建模
這部分實驗首先使用HCTSA方法提取出的時序特征進行建模,模型算法選擇使用在前面表現(xiàn)較好的隨機森林及XGBoost;然后將時序特征與常規(guī)特征進行融合,使用融合后的特征進一步對模型進行訓(xùn)練,觀察模型在3組特征下的表現(xiàn)情況,如表3、表4所示。
為了讓實驗結(jié)果更加直觀可視化,將實驗結(jié)果以圖4的方式呈現(xiàn)出來。從圖4中可以看出,無論是隨機森林還是XGBoost,基于常規(guī)特征建模的模型表現(xiàn)比基于高維時序特征建模的表現(xiàn)更好,這也意味著比起只考慮時間相關(guān)特征的高維時序特征,包含了如營收、社交及用戶畫像等多樣化且更全面的常規(guī)特征在預(yù)測中有著不可忽視的作用;另一方面,基于融合特征建模的模型在各個指標的表現(xiàn)均優(yōu)于在常規(guī)特征基礎(chǔ)上建模的模型,尤其在召回率及F1值上有顯著提高。相較于常規(guī)特征建模,2個模型在召回率上分別提升了5.98%及6.83%,在F1值上分別提升了2.39%及3.42%,這說明模型不僅整體預(yù)測精確度更佳,同時也提升了對于正例樣本的捕捉能力,即對流失用戶的判別能力,這也恰恰是流失預(yù)警模型最為需要和關(guān)注的。這也體現(xiàn)出高維時序特征的優(yōu)勢,其全面的信息彌補了常規(guī)特征中對時序缺乏深入挖掘的不足;同時,常規(guī)特征中考慮特征更加多樣全面也補充了特征來源,將2種特征融合互為補充后模型得以進一步優(yōu)化提升。
表3 基于時序及融合特征的隨機森林結(jié)果
表4 基于時序及融合特征的XGBoost結(jié)果
圖4 模型的準確率、召回率、F1值和AUC對比圖
本文使用某直播APP真實的業(yè)務(wù)數(shù)據(jù)對用戶進行流失預(yù)測。首先基于過去研究中常涉及的常規(guī)特征,選擇常見的算法進行預(yù)測對比,包括基于傳統(tǒng)統(tǒng)計學(xué)的KNN、統(tǒng)計學(xué)習(xí)方法SVM、啟發(fā)式優(yōu)化神經(jīng)網(wǎng)絡(luò)PSO-GA-BP、集成學(xué)習(xí)算法RF、XGBoost等,得出集成學(xué)習(xí)算法總體表現(xiàn)最優(yōu)的結(jié)論。然后從用戶過去的活躍時長序列中提取高維時序特征,與常規(guī)特征進行融合,用于集成學(xué)習(xí)算法訓(xùn)練。數(shù)據(jù)結(jié)果表明,基于融合特征方法能夠使模型得到進一步的優(yōu)化提升。
本文在時序特征的提取上只考慮了用戶時長這一時間序列,未來可進一步考慮對更多序列進行特征提取以獲取更多信息,如用戶操作序列等。同時,預(yù)測流失用戶的最終目的是提前判別用戶狀態(tài),進而采取一定手段留住用戶,探索如何更有針對性地將預(yù)測結(jié)果與客戶挽留措施相結(jié)合也是非常有價值的方向,尤其在用戶價值評定及具體挽留成本方面,目前研究仍較匱乏,對用戶進行全面合理的價值評定及采用適當(dāng)?shù)某杀具M行高效促活,將有助于提升企業(yè)的切實收益。