機器學習和深度學習技術在很多領域扮演着越來越重要的角色,以資金适配領域來說,它們在成本節約、推薦排序、收入機會和風險監控等方面可以帶來明顯的好處。但目前,機器學習和深度學習技術在資金适配方面的應用和探索仍缺乏一些經驗。是以,消費分期産品“好分期”團隊編寫此文進行實踐記錄,同時也希望大家能提供一些寶貴意見。
業務流程簡介
以下是好分期業務的大緻流程圖,資金方是服務的源頭,目前好分期對接數十家資金方,每個資金方對使用者的稽核規則各有不同。好分期的作用主要是為使用者進行适配、挑選最合适的資金方,是以需要在前期進行使用者資料收集和分析,進而形成使用者畫像,通過各種計算方法為使用者比對最合适的資金方。
資金适配的痛點及應用挑戰
高效、便捷、最大化的利益是使用者關心的重點,資金适配的主要任務就是滿足使用者的需求,但好分期在實踐的過程中還是碰到了一些痛點。
首先,随着接入的資金方越來越多,通過傳統的計算方式來從衆多資金方中挑選出最适合使用者的資金方,變得越來越困難。
其次,傳統路由模式中,所有使用者共用一套資金體系,雖然支援手動配置,但是效果十分機械化,無法對每個使用者進行針對性适配。
在嘗試解決這些痛點的過程中,我們面臨着新的挑戰:
資金方越來越多的情況下,如何為使用者進行快速适配;
每個使用者都有适合自己的資方,通過資料分析摸索使用者之間的關系,找到資金适配的規律。
為解決問題,我們開始将機器學習等技術應用到系統中。
機器學習在資金适配系統的實踐
在金融領域,機器學習的應用越來越多,金融領域龐大的資料量也為機器學習提供了支援。機器學習項目的成功主要依賴于建構高效的基礎結構、收集适當的資料集和應用正确的算法。
使用者畫像
想要解決上面所說的問題,需要先嘗試生成使用者畫像,這裡面使用者資料的收集和清洗是至關重要的。使用者的資料安全需要高度重視,凡是涉及到使用者隐私的資料都需要進行異常嚴格的加密機制以及脫敏機制來進行處理。
使用者畫像模組化第一步是要實作統一化。
使用者唯一辨別是整個使用者畫像的核心,我們以一個 App 為例,它把“從使用者開始使用 App 到下單再到售後、整個流程中使用者的所有行為”進行串聯,這樣就可以更好地去跟蹤和分析一個使用者的特征。
使用者畫像模組化第二步是要實作标簽化。
使用者行為分析:
使用者标簽:它包括了性别、年齡、地域、收入、學曆、職業等,這些是使用者的基礎屬性。
消費标簽:消費習慣、購買意向、是否對促銷敏感。這些用于分析使用者的消費習慣。
行為标簽:時間段、頻次、時長、通路路徑。這些是通過分析使用者行為,來得到他們使用 App 的習慣。
如果按照資料流處理的階段來劃分使用者畫像模組化的過程,可以分為資料層、算法層和業務層。在不同的層,都需要打上不同的标簽。
資料層指的是使用者消費以及借款金額、借款用途、常住地等标簽,這些可以打上“事實标簽”,作為資料客觀的記錄。算法層指的是透過這些行為算出的使用者模組化,可以打上“模型标簽”,作為使用者畫像的分類辨別。業務層指的是獲客、粘客、留客的手段,可以打上“預測标簽”,作為業務關聯的結果。
拿到使用者畫像後,再針對資金适配和相關業務場景來選擇合适的算法。
基于使用者的協同過濾算法
基于使用者行為分析的推薦算法是個性化推薦系統的重要算法,我們一般将這種類型的算法稱為協同過濾算法(Collaborative Filtering Algorithm)。顧名思義,協同過濾就是指使用者可以齊心協力,通過不斷地和網站互動,使自己的推薦清單能夠不斷過濾掉自己不感興趣的物品,進而越來越滿足自己的需求。
既然是基于使用者的行為分析,就必須要将使用者的行為表現出來,下面給出了一種使用者行為的表現方式(當然,在不同的系統中,每個使用者所産生的行為也是不一樣的),它将使用者行為表現分為 6 部分,即産生行為的使用者和行為的對象、行為的種類、産生行為的上下文、行為的内容和權重。
随着對協同過濾算法的深入研究,學術界提出了很多方法,比如基于鄰域的方法(neighborhood-based)、隐語義模型(latent factor model)、基于圖的随機遊走算法(random walk on graph) 等。在這些方法中,最著名的、在業界得到最廣泛應用的算法是基于鄰域的方法,而基于鄰域的方法主要包含下面兩種算法:
基于使用者的協同過濾算法(User-based Collaborative Filtering),簡稱 UserCF 或 UCF,這種算法給使用者推薦和他興趣相似的其他使用者喜歡的物品。
基于物品的協同過濾算法(Item-based Collaborative Filtering),簡稱 ItemCF 或 ICF,這種算法給使用者推薦和他之前喜歡的物品相似的物品。
在一個個性化推薦系統中,當一個使用者 A 需要個性化推薦時,可以先找到和他有相似興趣的其他使用者,然後把那些使用者喜歡的、而使用者 A 沒有聽說過的物品推薦給 A。這種方法稱為基于使用者的協同過濾算法。
基于使用者的協同過濾算法主要包括兩個步驟:
找到和目标使用者 A 興趣相似的使用者集合。
找到使用者集合中其他使用者喜歡的且目标使用者沒有聽說過的物品推薦給目标使用者。
步驟 1 的關鍵就是計算兩個使用者的興趣相似度。這裡協同過濾算法主要利用行為的相似度來計算興趣的相似度。
通過以上概念,我們可以作出設想,協同過濾算法通過找到使用者感興趣的物品,計算使用者之間的相似度,進行推薦,那麼,好分期在資金适配的時候,也可以引入此方法,進而提高計算效率。比如可以通過使用者 A 的基本資訊,找到和使用者 A 基本資訊相似的使用者,此類使用者會成為一個集合,然後統計此類使用者适配的資金方,通過計算,得到一個資金方對此類使用者集合的排序,進而可以為 A 使用者提供更優秀的計算順序。
(1)基于使用者的最近鄰推薦概述
基于使用者的最近鄰推薦(user-based nearest neighbor recommendation)主要思想是:首先,對輸入的評分資料集和目前使用者 ID 作為輸入,找出與目前使用者過去有相似偏好的其它使用者,這些使用者叫做對等使用者或者最近鄰;然後,對目前使用者沒有适配過的每個資金方 P,利用使用者的近鄰對資金方 P 的評分進行預測;最後,選擇所有資金方評分最高的 TopN 個推薦給目前使用者。
(2)前提/假設
如果使用者過去有相似的偏好,那麼該使用者在未來也會有相似的偏好,使用者的偏好不會随着時間而變化。
(3)計算方式
使用皮爾森/皮爾遜相關系數(Pearson Correlation Coefficient)來表示兩個使用者之間的相關性,取值範圍為[-1,+1],-1 表示強負相關,+1 表示強正相關,0 表示不相關。
應用實踐
下圖展示了好分期資料平台的總體架構。對于資料平台來說,最重要的是保證資料的時效性和準确性。
拿到資料之後,根據費率、利息、金額、用途等一系列條件,進行實時計算(結合每個資金方的特定準入條件),根據使用者的情況和資金方的情況進行适配性打分,最終為使用者适配到最合适的資金方。下面用基于使用者的協同過濾算法介紹好分期的計算邏輯:
舉例而言,當需要為使用者 A 比對資金方時,首先檢查它們之間的相似度。當我們發現使用者 A、使用者 B、使用者 C 的相似度較高時,就可以将這三個使用者看作一個群體,他們擁有相同的偏好。分析這個群體之前已經适配過的資金方,優先對該資金方進行計算和排序,可以大大提高計算效率。
資金适配中,我們可以将使用者的用途、費率、戶口所在地、住址等基本條件進行分類。本文隻通過用途和費率舉例。
相似度計算舉例:
根據使用者的基本資訊。檢查它們之間的相似度清單,同時也可以對類别進行标簽和分組,最終得到使用者與資金方的适配度,比如 A 使用者的标記性資訊有 N1、N2、N3,D 使用者的标記資訊有 N2、N3、N4。
接下來嘗試計算 A 和 D 之間的相似度:
從“基本資訊”可以看出,A 和 D 都擁有的基本資訊是 N2。使用者 A 标記性資訊=3,使用者 D 标記性資訊=3。是以 A 和 D 的相似度為 1/3。
在得到使用者之間的相似度之後,接下來要做的就是進行适配性推薦了,假設使用者 C 和使用者 D(群體)都已成功與資金方 X 進行适配(之前計算的最合适的資金方),那麼就優先去計算使用者 A 與資金方 X 的适配程度。最後,根據适配度計算的結果,進行相應的推薦,把相對應的資金方适配給使用者。
計算示例:
axf += x * y;nxf += x;xfx += y;kfx += Math.pow(x,2.0);//x的平方求和nfx += Math.pow(y,2.0);//y的平方求和
doublemolecule = axf - (nxf xfx) / n;doubledenominator = Math.sqrt((kfx - (Math.pow(nxf,2) / n)) (nfx - (Math.pow(xfx,2) / n )));log.info("molecule:"+ molecule+",denominator"+ denominator);returnMath.abs(denominator ==0?1: molecule / denominator);
複制代碼
效果如下:
張峰海與 userColA 集合的相似度為:0.8654335698926632
張峰海與 userColB 集合的相似度為:0.6558297417698652
張峰海與 userColC 集合的相似度為:0.3202118523990502
張峰海與 userColD 集合的相似度為:0.5862446890012758
當然,基于使用者的協同過濾并不會這麼簡單,判斷兩個使用者的相似度也不是簡簡單單的使用餘弦相似性就可以了。實際業務場景中我們還需要用到更複雜的邏輯,才能達到最終的目的。本文隻是讓讀者有一個簡單的概念,具體企業應用中的變化,就不詳細開展了。
通過對資料的收集和清洗,以及一系列計算規則(包括上面所說的相似度計算),最後我們發現資金方的适配成功率提高了将近 10%。X 軸為時間,Y 軸為适配成功率,如圖所示:
總結
總的來說,資金适配的應用實踐是有一定效果的。對于未來可能面臨的情況,我們也展開了一些思考。未來将會有更多的資金方接入到系統中來,使用者對于線上的金融需求也會越來越多。挖掘使用者資訊、提供更高效、更優質的服務将一直是好分期追尋的目标。未來我們會探索更多的模型、更優秀的計算方式,并将其運用到資金适配系統中來。