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