編輯導語:建模,是為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描述。建模是研究系統的重要手段和前提,凡是用模型描述系統的因果關係或相互關係的過程都屬於建模。如果在建模的過程中發現缺乏行為資料,你該怎麼辦?針對這個問題,本文作者為我們分析了聯絡人倒排表。
在構建使用者風控評分卡時,工程師們經常為特徵數量和資料維度所困。特別是實時評分卡,因為實時申請使用者往往缺乏行為資料而使得模型構建困難。
在大叢集資料計算時,使用圖資料效率又不是很高。因此,倒排表成了一個可以高效率挖掘使用者關係特徵的重要方向,倒排表特徵是新申請使用者關聯到老平臺使用者的特徵。
2. 倒排表特徵簡介倒排表區別於正向表,和傳統的倒排索引區別於正向索引有類似之處。
例如:關係人電話倒排表也是透過在正向關係表的使用者-聯絡人電話維度表(圖一),匯出逆向的倒排的聯絡人電話-使用者的維度(圖二)。但倒排表和倒排索引不同的地方在於,電話與電話之間和使用者與使用者之間不存在先後關係。
圖一:使用者-聯絡人電話的正向表
圖二:聯絡人電話-使用者的倒排表
倒排表特徵區別於常規特徵,倒排表特徵的主鍵往往不是使用者身。
例如:常規特徵如表1所示,主鍵是使用者本身,常規特徵也是屬於使用者本身的。但是,倒排表特徵的主鍵卻不是使用者本身。從根本上說,這個倒排表特徵是屬於對應的主鍵的,聯絡人倒排表特徵的主鍵則是聯絡人電話,如表2所示。
表一:常規特徵表
表二:聯絡人倒排特徵表
倒排表特徵的使用是透過使用者的某項使用者資料,關聯成使用者本身的特徵。
例如:本文要介紹的聯絡人倒排表特徵是,先拿到這個使用者擁有的電話號,然後再去聯絡人倒排表中查詢這個電話號的倒排表統計特徵。除了聯絡人電話這個主鍵外,還可以使用地址或裝置資訊作為主鍵。在本文中主要介紹以聯絡人電話為主鍵的倒排表特徵。
3. 倒排表特徵的結構要製作倒排表特徵總共需要準備與製作4張表。分別是:倒排關係表,使用者特徵表,倒排使用者特徵表和倒排特徵最終表。
它們的關係如圖三所示:
圖三:倒排表特徵製作結構
首先,倒排關係表和使用者特徵表合成成倒排使用者特徵表;然後,使用倒排使用者特徵表計算出倒排特徵最終表;最後,用過倒排特徵最終表關聯使用者資料得出倒排表特徵。
我會在下文中分別介紹這4張表的作用和製作方法。
二、聯絡人倒排表特徵的製作1. 聯絡人倒排關係表倒排關係表是由原始關係資料生成的一張關係表。
例如:聯絡人倒排關係表是一張聯絡人電話和現有使用者的關係表,表中的聯絡人電話和使用者關係是透過通訊錄資料或者電商下單購買資料等提取出的;例如:在電商下單資料中,每一條資料都有收貨人電話和下單使用者的使用者id。
如果,使用者1給電話a和電話b下過單,記:
共兩條資料。
如果,使用者2給電話b和電話c下過單,則記下:
共兩條資料。
因此,關係人倒排表會如表3中記錄所示,共4條資料。表中,主鍵是電話,每行資料對應一個電話和下單使用者的關係。
表三:聯絡人倒排關係表
2. 使用者特徵表使用者特徵表是一張使用者對應的常規特徵表,和我們構建風控評分卡時使用的常規特徵表一樣。主鍵是使用者本身,包含一些使用者的重要常規特徵,甚至可以包含該使用者行為評分卡的分數,如表四所示。
表四:使用者特徵表
3. 聯絡人倒排使用者特徵表倒排使用者特徵表是由倒排關係表和使用者特徵表,以使用者為key,合成的表,如表五所示。聯絡人倒排使用者特徵表中的主鍵依然是聯絡人電話,每行資料對應了這個電話關聯到的使用者和該使用者的特徵。
表五:聯絡人倒排使用者特徵表
4. 聯絡人倒排特徵最終表倒排特徵最終表是使用倒排使用者特徵表計算。在聯絡人倒排特徵最終表中計算方法是透過group by主鍵,求電話關聯到所有使用者的特徵的mean值,max值或者比例。
如表六所示,聯絡人倒排特徵最終表的主鍵依然是聯絡人電話,每行資料代表了該電話關聯到的使用者的統計特徵。
表六:聯絡人倒排特徵最終表
下文會介紹在離線訓練和線上預測時如何使用倒排特徵最終表生成倒排表特徵。
三、聯絡人倒排表特徵的使用1. 離線計算與訓練的使用在訓練模型之前,需要先離線計算好倒排特徵最終表。
在訓練時,按使用者資料關聯倒排特徵最終表中的主鍵,如圖四所示。最後,在訓練模型時把關聯到的倒排表特徵按照普通特徵放入模型中即可。這裡有很多坑點,請參考下文的總結與坑點。
圖四:線上倒排表特徵使用流程
2. 線上實時使用線上實時使用倒排表特徵也需要提前生成好倒排特徵最終表。
如圖五所示,線上新使用者申請時,用線上使用者資料去查倒排特徵最終表。從而生成該使用者的倒排表特徵,再放入線上評分卡模型中預測分數。
圖五:線上倒排表特徵使用流程
四、總結與坑點1. 總結本文中介紹了,為了解決在構建申請評分卡時申請使用者因為缺乏行為資料而使得模型構建困難的問題,使用了倒排表特徵。倒排表是一個可以挖掘使用者關係的特徵構建方向,通常在構建模型中佔據著重要地位。
2. 坑點構建倒排表特徵時有非常多坑點,這裡總結了幾個供大家參考:
1)坑點1:線上和線下電話存輸格式不一
在構建聯絡人倒排關係表時,原始資料來源於通訊錄資料或者電商產品購買資料。
在這些資料裡面的電話可能是沒有加國家和地區號的,但線上傳輸資料是有可能是加了國家和地區號的電話,這裡一定要注意先統一規劃好電話號格式。
2)坑點2:使用未來資料
構建離線訓練模型的倒排特徵最終表時,要注意構建的倒排關係表和使用者特徵表這兩張表都應該有觀察截止時間,並且關係和資料都應該只使用在觀察截止時間前的資料。
3)坑點3:訓練資料中,放入自己關聯自己的資料
使用倒排表特徵的目的是讓新使用者在申請時多一點關聯特徵,所以,我們在訓練的時候也要儘量模擬新使用者申請的場景。
如果我們使用的是老使用者去模擬新使用者構建模型的情況,請一定記得在離線特徵生成時去掉自己關聯自己的資料,防止模型過擬合。
例如:電商下單資料中使用者給自己下的單,不應該出現在離線訓練的倒排關係表裡面。
本文由 @FAL金科應用研院 原創釋出於人人都是產品經理,未經許可,禁止轉載。
題圖來自 unsplash,基於 CC0 協議