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