我們如何透過像自然災害一樣對待客戶流失來預測客戶流失

有時候,要解決問題,只要換個角度看問題。 即使過去10年來,類似的問題都以同樣的方式解決,但效果不同,但事實並非只有這種方法。

有一個主題是客戶流失。 這是不可避免的,因為任何公司的客戶都可能出於多種原因停止使用其產品或服務。 當然,對於公司來說,流失是很自然的,但不是最可取的行為,所以每個人都想盡量減少這種流失。 更好的是,預測特定類別的用戶或特定用戶的流失機率,並建議一些保留他們的步驟。

如果可能的話,有必要分析並嘗試留住客戶,至少出於以下原因:

  • 吸引新客戶比保留客戶的成本更高。 為了吸引新客戶,通常需要花費一些錢(廣告),而現有客戶可以透過特殊條件的特別優惠來啟動;
  • 了解顧客離開的原因是改善產品和服務的關鍵.

有一些標準方法可以預測客戶流失。 但在一場人工智慧錦標賽上,我們決定嘗試使用威布爾分佈。 它最常用於生存分析、天氣預報、自然災害分析、工業工程等。 威布爾分佈是一種由兩個參數參數化的特殊分佈函數 我們如何透過像自然災害一樣對待客戶流失來預測客戶流失 и 我們如何透過像自然災害一樣對待客戶流失來預測客戶流失.

我們如何透過像自然災害一樣對待客戶流失來預測客戶流失
維基百科

總的來說,這是一件有趣的事情,但對於預測資金流出以及整個金融科技來說,它並不經常使用。 下面我們將告訴您我們(資料探勘實驗室)如何做到這一點,同時贏得人工智慧錦標賽「銀行人工智慧」類別的金牌。

關於一般流失率

讓我們了解一下什麼是客戶流失以及為什麼它如此重要。 客戶群對於企業來說很重要。 例如,新客戶來到這個基地,從廣告中了解某種產品或服務,生活一段時間(積極使用該產品),並在一段時間後停止使用它。 這個時期被稱為「客戶生命週期」——這個術語描述了客戶從了解產品、做出購買決定、支付、使用並成為忠實消費者,並最終停止使用該產品所經歷的階段。由於這樣或那樣的原因。 因此,客戶流失是客戶生命週期的最後階段,即客戶停止使用服務,對企業而言,這意味著客戶已停止帶來利潤或任何利益。

每個銀行客戶都是一個特定的人,他專門根據自己的需求選擇一張或另一張銀行卡。 如果你經常旅行,一張有里程的卡會派上用場。 買了很多 - 你好,現金回饋卡。 他在特定商店購買了很多東西 - 並且已經有專門的合作夥伴塑料可以用於此。 當然,有時會根據“最便宜的服務”標準來選擇卡片。 總的來說,這裡有足夠的變數。

一個人也可以選擇銀行本身 - 當您來自哈巴羅夫斯克時,從一家僅在莫斯科和該地區設有分支機構的銀行選擇一張卡有什麼意義嗎? 即使這類銀行的卡片的利潤至少高出 2 倍,附近是否有銀行分行仍是重要標準。 是的,2019 年已經到來,數位化是我們的一切,但一些銀行的許多問題只能在分行解決。 另外,部分人群對實體銀行的信任程度遠高於智慧型手機上的應用程序,這一點也需要考慮。

因此,一個人可能有很多理由拒絕銀行產品(或銀行本身)。 我換了工作,卡的資費也從工資變成了“對於凡人來說”,利潤減少了。 我搬到了另一個沒有銀行分行的城市。 我不喜歡在分行與不合格的操作員進行互動。 也就是說,關閉帳戶的原因可能比使用產品的原因更多。

而客戶不僅可以明確表達自己的意圖——來銀行寫一份聲明,而且可以簡單地停止使用產品而不終止合約。 決定使用機器學習和人工智慧來理解此類問題。

此外,客戶流失可能發生在任何行業(電信、網路供應商、保險公司,一般來說,只要有客戶群和定期交易)。

我們做了什麼

首先,有必要描述一個清晰的界線—從什麼時候我們開始考慮客戶離開。 從為我們提供工作數據的銀行的角度來看,客戶的活動狀態是二元的——他要么活躍,要么不活躍。 「活動」表中有一個 ACTIVE_FLAG 標誌,其值可以是「0」或「1」(分別為「非活動」和「活動」)。 一切都會好起來的,但一個人就是這樣,他可以主動使用一段時間,然後一個月就退出主動列表——他生病了,去另一個國家度假,甚至去測試了其他銀行的卡。 或長時間不活動後,再次開始使用銀行的服務

因此,我們決定將不活動期稱為特定的連續時間段,在此期間其標誌設為「0」。

我們如何透過像自然災害一樣對待客戶流失來預測客戶流失

經過不同長度的不活動期後,客戶會從不活動變成活躍。 我們有機會計算「不活動期的可靠性」的經驗值程度-也就是一個人在暫時不活動後再次開始使用銀行產品的機率。

例如,此圖顯示客戶端在幾個月不活動 (ACTIVE_FLAG=1) 後恢復活動 (ACTIVE_FLAG=0)。

我們如何透過像自然災害一樣對待客戶流失來預測客戶流失

在這裡,我們將澄清一些我們開始使用的資料集。 因此,該銀行在下表中提供了 19 個月的匯總資訊:

  • 「活動」-每月客戶交易(透過銀行卡、網路銀行和手機銀行),包括薪資單和營業額資訊。
  • 「卡」-有關客戶擁有的所有卡片的數據,以及詳細的費率表。
  • 「協議」 - 有關客戶協議的資訊(開放式和封閉式):貸款、存款等,指示每個協議的參數。
  • 「客戶」-一組人口統計資料(性別和年齡)和可用的聯絡資訊。

為了工作,我們需要除“地圖”之外的所有表格。

這裡還有另一個困難 - 在這些數據中,銀行沒有表明卡片上發生了什麼樣的活動。 也就是說,我們可以了解是否有交易,但我們無法再確定它們的類型。 因此,尚不清楚客戶是在提取現金、領取工資還是將錢用於購物。 我們也沒有帳戶餘額數據,這本來是有用的。

樣本本身是公正的——在這個樣本中,在超過 19 個月的時間裡,銀行沒有做出任何嘗試來留住客戶並最大限度地減少資金外流。

那麼,關於不活動的時期。

為了製定流失的定義,必須選擇不活動的時期。 創建某個時間點的客戶流失預測 我們如何透過像自然災害一樣對待客戶流失來預測客戶流失,您必須有至少 3 個月的客戶歷史記錄 我們如何透過像自然災害一樣對待客戶流失來預測客戶流失。 我們的歷史記錄僅限於 19 個月,因此我們決定保留 6 個月的非活動期(如果有的話)。 對於高品質預測的最短期限,我們花了 3 個月的時間。 我們根據對客戶數據行為的分析,憑經驗獲得了 3 個月和 6 個月的數據。

我們對客戶流失的定義如下:客戶流失的月份 我們如何透過像自然災害一樣對待客戶流失來預測客戶流失 這是 ACTIVE_FLAG=0 的第一個月,從本月開始,ACTIVE_FLAG 字段中至少有六個連續的零,換句話說,即客戶端有 6 個月不活動的月份。

我們如何透過像自然災害一樣對待客戶流失來預測客戶流失
離開的客戶數量

我們如何透過像自然災害一樣對待客戶流失來預測客戶流失
剩餘客戶數量

流失率是如何計算的?

在此類競爭中以及在一般實踐中,經常以這種方式預測流出。 客戶在不同時間段使用產品和服務,與其互動的資料被表示為固定長度n的特徵向量。 這些資訊通常包括:

  • 描述使用者特徵的資料(人口統計資料、行銷細分)。
  • 銀行產品和服務的使用歷史記錄(這些是始終與我們需要的特定時間或間隔時間段相關的客戶操作)。
  • 外部資料(如果可以取得的話)-例如來自社群網路的評論。

之後,他們得出了流失的定義,每個任務都有不同的定義。 然後他們使用機器學習演算法來預測客戶離開的可能性 我們如何透過像自然災害一樣對待客戶流失來預測客戶流失 基於因素向量 我們如何透過像自然災害一樣對待客戶流失來預測客戶流失。 為了訓練演算法,使用了一個眾所周知的建構決策樹整合的框架, XGBoost, 輕型GBM, 貓助推器 或其修改。

該演算法本身還不錯,但在預測流失方面有幾個嚴重的缺點。

  • 他沒有所謂的“記憶”。 模型的輸入是與當前時間點相對應的指定數量的特徵。 為了儲存有關參數變化歷史的信息,需要計算表徵參數隨時間變化的特殊特徵,例如,過去1,2,3、XNUMX、XNUMX個月的銀行交易數量或金額。 這種方法只能部分反映臨時變化的性質。
  • 固定的預測範圍。 此模型只能預測預定義時間內的客戶流失,例如提前一個月預測。 如果需要對不同時間段(例如三個月)進行預測,則需要重建訓練集並重新訓練新模型。

我們的方法

我們立即決定不使用標準方法。 除了我們之外,還有497人報名參加了錦標賽,每個人背後都有豐富的經驗。 因此,在這種情況下嘗試按照標準方案做某事並不是一個好主意。

我們開始透過預測客戶流失次數的機率分佈來解決二元分類模型所面臨的問題。 可以看到類似的方法 這裡,與傳統方法相比,它允許您更靈活地預測流失並測試更複雜的假設。 作為流出時間建模的分佈族,我們選擇了分佈 威布爾 因其在存活分析中的廣泛應用。 客戶的行為可以被視為一種生存。

以下是取決於參數的威布爾機率密度分佈的範例 我們如何透過像自然災害一樣對待客戶流失來預測客戶流失 и 我們如何透過像自然災害一樣對待客戶流失來預測客戶流失:

我們如何透過像自然災害一樣對待客戶流失來預測客戶流失

這是三個不同客戶隨時間流失的機率密度函數。 時間以月為單位。 換句話說,該圖顯示了客戶在未來兩個月內最有可能流失的時間。正如您所看到的,具有分佈的客戶比具有Weibull(2, 0.5) 和Weibull 的客戶更早離開的可能性(3,1) 分佈。

結果是一個模型,對於每個客戶,每個
Month 預測威布爾分佈的參數,最能反映隨著時間的推移而流出的機率。 更詳細地說:

  • 訓練集上的目標特徵是特定客戶在特定月份內流失之前的剩餘時間。
  • 如果客戶沒有流失率,我們假設流失時間大於從當月到歷史記錄結束的月數。
  • 使用的模型:具有 LSTM 層的循環神經網路。
  • 作為損失函數,我們使用威布爾分佈的負對數似然函數。

以下是此方法的優點:

  • 機率分佈除了明顯的二元分類可能性之外,還可以靈活預測各種事件,例如客戶是否會在 3 個月內停止使用銀行的服務。 此外,如有必要,可以在此分佈上對各種指標進行平均。
  • LSTM 循環神經網路具有記憶能力,可以有效地利用整個可用的歷史記錄。 隨著故事的擴展或完善,準確性也會提高。
  • 當將時間段劃分為較小的時間段時(例如,將月分成週),此方法可以輕鬆擴展。

但僅僅創建一個好的模型還不夠;你還需要正確評估它的品質。

品質是如何評估的?

我們選擇提升曲線作為指標。 它在商業中用於此類情況,因為它的解釋清晰,描述得很好 這裡 и 這裡。 如果你用一句話描述這個指標的含義,那就是“演算法在第一次中做出了多少次最佳預測” 我們如何透過像自然災害一樣對待客戶流失來預測客戶流失% 比隨機。”

訓練模型

競爭條件並沒有建立可以比較不同模型和方法的具體品質指標。 此外,流失的定義可能不同,並且可能取決於問題陳述,而問題陳述又由業務目標決定。 因此,為了了解哪種方法更好,我們訓練了兩個模型:

  1. 使用整合決策樹機器學習演算法的常用二元分類方法(輕型GBM);
  2. 威布爾-LSTM模型

測試集由 500 名不在訓練集中的預選客戶組成。 使用交叉驗證為模型選擇超​​參數,並按客戶端細分。 使用相同的特徵集來訓練每個模型。

由於模型沒有記憶,因此採用了特殊的特徵,顯示一個月內參數的變化與最近三個月參數平均值的比率。 過去三個月內價值變化率的特徵是什麼。 如果沒有這一點,基於隨機森林的模型相對於 Weibull-LSTM 將處於劣勢。

為什麼具有威布爾分佈的 LSTM 比整合決策樹方法更好

只需幾張圖片就可以清楚地了解一切。

我們如何透過像自然災害一樣對待客戶流失來預測客戶流失
經典演算法與 Weibull-LSTM 的提升曲線比較

我們如何透過像自然災害一樣對待客戶流失來預測客戶流失
經典演算法與 Weibull-LSTM 每月提升曲線指標的比較

總的來說,LSTM 幾乎在所有情況下都優於經典演算法。

客戶流失預測

基於具有威布爾分佈的 LSTM 單元的循環神經網路的模型可以提前預測客戶流失情況,例如預測未來 n 個月內的客戶流失情況。 考慮 n = 3 的情況。在這種情況下,對於每個月,神經網路必須正確確定客戶是否會離開,從下個月開始直到第 n 個月。 換句話說,它必須正確判斷該客戶在n個月後是否還會留下來。 這可以認為是提前預測:預測客戶剛開始考慮離開的時刻。

讓我們來比較一下流出前 1、2 和 3 個月 Weibull-LSTM 的 Lift Curve:

我們如何透過像自然災害一樣對待客戶流失來預測客戶流失

我們在上面已經寫過,對一段時間內不再活躍的客戶所做的預測也很重要。 因此,這裡我們將在離開的客戶已經不活躍一兩個月的情況下將此類情況添加到樣本中,並檢查 Weibull-LSTM 是否正確地將此類情況分類為流失。 由於樣本中存在此類情況,我們希望網路能夠很好地處理它們:

我們如何透過像自然災害一樣對待客戶流失來預測客戶流失

客戶保留

實際上,這是可以做的主要事情,掌握這樣那樣的客戶準備停止使用該產品的資訊。 說到建立一個可以為客戶提供有用的東西以留住他們的模型,如果您沒有類似嘗試的歷史並且最終會取得良好的結果,那麼這是不可能完成的。

我們沒有這樣的故事,所以我們就這樣決定了。

  1. 我們正在建立一個模型,為每個客戶識別感興趣的產品。
  2. 每個月我們都會運行分類器並識別潛在的離開客戶。
  3. 我們根據第 1 點的模型向一些客戶提供產品,並記住我們的行為。
  4. 幾個月後,我們會研究哪些可能離開的客戶離開了,哪些留下來了。 這樣,我們就形成了一個訓練樣本。
  5. 我們使用步驟 4 中獲得的歷史記錄來訓練模型。
  6. 或者,我們重複該過程,將步驟 1 中的模型替換為步驟 5 中獲得的模型。

可以透過定期 A/B 測試來測試此類保留的品質 - 我們將可能離開的客戶分為兩組。 我們根據我們的保留模型向其中一種提供產品,而對於另一種我們不提供任何產品。 我們決定訓練一個在範例的第 1 點中已經有用的模型。

我們希望使分割盡可能地可解釋。 為此,我們選擇了幾個易於解釋的特徵:交易總數、薪資、帳戶總營業額、年齡、性別。 「Maps」表中的特徵沒有被考慮為無資訊性,並且由於處理的複雜性,表3「Contracts」中的特徵也沒有被考慮在內,以避免驗證集和訓練集之間的資料外洩。

使用高斯混合模型進行聚類。 Akaike 資訊準則使我們能夠確定 2 個最佳值。 第一個最優值對應於 1 個簇。 第二個最佳值較不明顯,對應於 80 個簇。 基於這個結果,我們可以得出以下結論:在沒有先驗給定資訊的情況下,將資料劃分為簇是極其困難的。 為了更好地聚類,您需要詳細描述每個客戶端的資料。

因此,考慮了監督學習的問題,以便為每個客戶提供不同的產品。 考慮的產品有:「定期存款」、「信用卡」、「透支」、「消費貸款」、「汽車貸款」、「抵押貸款」。

該數據還包括另一種類型的產品:「活期帳戶」。 但由於其資訊含量較低,我們沒有考慮它。 對於銀行客戶的用戶,即並沒有停止使用其產品,而是建立了一個模型來預測他們可能會對哪些產品感興趣。 選擇邏輯迴歸作為模型,並使用前 10 個百分位數的 Lift 值作為品質評估指標。

模型的品質可以在圖中進行評估。

我們如何透過像自然災害一樣對待客戶流失來預測客戶流失
為客戶提供產品推薦模型結果

這種方法使我們在 RAIF-Challenge 2017 人工智慧錦標賽的「銀行人工智慧」類別中獲得第一名。

我們如何透過像自然災害一樣對待客戶流失來預測客戶流失

顯然,主要的是從非常規的角度來處理問題,並使用通常用於其他情況的方法。

儘管用戶大量外流很可能對服務來說是一場自然災害。

這種方法可以適用於任何其他需要考慮流出的領域,而不僅僅是銀行。 例如,我們用它來計算我們自己的流出量 - Rostelecom 的西伯利亞和聖彼得堡分支機構。

“資料探勘實驗室”公司“搜尋入口網站“Sputnik”

來源: www.habr.com

添加評論