攜程商旅基于圖網(wǎng)絡(luò)的注冊風(fēng)控實踐
一、背景
注冊風(fēng)控是企業(yè)風(fēng)控場景中重要的一環(huán),黑產(chǎn)用戶想要進行各式各樣的欺詐行為,首先需要注冊賬戶。通常,這些黑產(chǎn)用戶會采用技術(shù)手段批量注冊虛假賬號,而后進行一系列惡意行為。那么,如何準(zhǔn)確快速地識別注冊用戶是否是異常聚集的黑產(chǎn)用戶,這是注冊風(fēng)控場景中需要解決的一個問題。
因此,本文介紹了一種當(dāng)前在攜程商旅應(yīng)用的基于注冊圖網(wǎng)絡(luò)的惡意賬戶聚集檢測模型。
二、前置知識
2.1 圖的定義
圖是由頂點的集合和頂點之間的邊的集合組成,通常表示為:G(V,E),其中,G表示一個圖,V是圖G中頂點的集合,E是圖G中邊的集合。
2.2 圖的類型
1)有向圖/無向圖 (Undirected graphs / Directed graphs)
若頂點到之間的邊沒有方向,則稱這條邊為無向邊,用無序?qū)?,)來表示。如果圖中任意兩個頂點之間的邊都是無向邊,則稱該圖為無向圖;
若頂點到之間的邊有方向,則稱這條邊為有向邊,用有序?qū)?lt;,>來表示。如果圖中任意兩個頂點之間的邊都是有向邊,則稱該圖為有向圖。

圖1:無向圖和有向圖
2)同構(gòu)圖/異構(gòu)圖 (Homogeneous Graph / Heterogeneous Graph)
同構(gòu)圖:節(jié)點的類型和邊的類型只有一種
如社交網(wǎng)絡(luò)中可以考慮節(jié)點只有“人”這一個類型,邊只有“認(rèn)識”這一種連接關(guān)系,就是一種同構(gòu)圖;
異構(gòu)圖:節(jié)點的類型+邊的類型 > 2
如論文引用網(wǎng)絡(luò)中,存在著作者節(jié)點和論文節(jié)點,邊的關(guān)系有作者-作者之間的共同創(chuàng)作關(guān)系連邊、作者-論文之間的從屬關(guān)系、論文-論文之間的引用關(guān)系。
三、數(shù)據(jù)挖掘
3.1 用戶設(shè)備維度
1)設(shè)備聚集性
我們對用戶所使用的設(shè)備進行了分析,這里的設(shè)備指的是一種廣義的設(shè)備,包括IP地址、手機號、設(shè)備號等。黑產(chǎn)用戶處于金錢和時間成本,會希望在盡量低的成本下完成獲利,那么在設(shè)備維度就會出現(xiàn)聚集的現(xiàn)象。一般來說,普通用戶的一臺設(shè)備上通常不會登錄多個賬戶,因此某些設(shè)備頻繁切換不同賬號是相當(dāng)可疑的。
如下圖所示,當(dāng)IP地址數(shù)從0-5增加到5-10時,用戶數(shù)占比驟降,60%的用戶只使用過0-5個IP地址;超過90%的用戶只使用過一個手機號;超過70%的用戶只使用1個或2個設(shè)備。

圖2:IP數(shù)量-用戶分布圖

圖3:手機號/設(shè)備號數(shù)量-用戶分布圖
2)地理位置和設(shè)備版本
IP地址和電話號碼都可以映射到一個大概的地理位置。我們可以判斷每個注冊用戶的兩個地理位置是否相同,不同的時候為黑產(chǎn)用戶的概率相對更大。
此外,我們也對設(shè)備版本進行了分析,發(fā)現(xiàn)大多數(shù)從過時操作系統(tǒng)版本注冊的賬戶都是假賬戶,Android和iOS都存在這種現(xiàn)象,原因可能是攻擊者使用腳本自動注冊假賬戶,而操作系統(tǒng)版本并未更新。
3.2 注冊特征維度
1)注冊時間
我們對正常用戶和黑產(chǎn)用戶的注冊時間進行了對比,發(fā)現(xiàn)黑產(chǎn)用戶更傾向于傍晚和夜間進行注冊(17點-次日6點)。

圖4:不同注冊時間的用戶分布
2)注冊填寫信息
基于商旅的背景下,用戶在進行注冊時需要填寫公司名稱、郵箱等信息,我們會判斷用戶所填寫的信息是否是真實的企業(yè)信息(如填寫的公司名是否是正常的公司名、郵箱是否正常、是否是隨機填寫等),這些對注冊填寫信息相關(guān)的解析也會作為模型的特征。
四、模型設(shè)計
模型主要包括了四個步驟:特征提取、無監(jiān)督權(quán)重學(xué)習(xí)、構(gòu)建用戶注冊圖和惡意賬戶監(jiān)測。

圖 5:模型流程圖
4.1 特征提取
根據(jù)上述數(shù)據(jù)挖掘部分提取用戶的相關(guān)特征,對于連續(xù)的特征進行分箱處理使其離散化。
4.2 無監(jiān)督權(quán)重學(xué)習(xí)
1)構(gòu)建用戶-特征異構(gòu)圖
構(gòu)建用戶-特征的無向圖來捕獲注冊賬戶和提取特征之間的關(guān)系,用G(V,E) 表示,其中V是所有的節(jié)點集合,包括用戶節(jié)點R和特征節(jié)點F,即每個F節(jié)點都表示某個特征;E 表示邊。用戶節(jié)點R與特征節(jié)點F存在邊等價于該用戶節(jié)點R擁有此F特征。

圖6:用戶-特征異構(gòu)圖
2)用戶節(jié)點和特征節(jié)點初始權(quán)重的計算
- 把特征分成A、B兩類
 
A類特征:除去B類的其他特征。
B類特征:該特征如果被大量賬戶共享,則認(rèn)為是異常的,如ip地址、手機號、設(shè)備號等。
- 計算特征節(jié)點初始權(quán)重
 
對于任意的特征節(jié)點x,初始權(quán)重
計算如下:

其中:

其中Pre_A和Pre_B分別表示第一步中的A類特征和B類特征,ratio(x)表示該特征節(jié)點值的在其所屬特征中的頻率,pre(x)表示該特征節(jié)點所屬的特征,如特征節(jié)點IP-113.xxxxxxxx屬于IP特征;mode(pre(x))表示該特征節(jié)點所屬特征中頻率最高的特征節(jié)點。
- 計算用戶節(jié)點初始權(quán)重
 
按照上一步計算好每一個特征節(jié)點的初始特征后,每個用戶節(jié)點的初始特征即為其所有鄰居特征節(jié)點的均值。
3)更新節(jié)點權(quán)重
對所有節(jié)點的權(quán)重通過線性信念傳播進行迭代更新,權(quán)重的迭代公式參考文獻[2]和[3]的思想并做了改進優(yōu)化。優(yōu)化思路是基于每一次權(quán)重的迭代是對上一次節(jié)點權(quán)重的結(jié)果加上各鄰居節(jié)點權(quán)重的平均影響,并且每次的權(quán)重在仍保持在0-1之間,由此得到如下的迭代公式,對比驗證了優(yōu)化后的公式在后續(xù)構(gòu)造用戶-用戶同構(gòu)圖的過程中邊關(guān)系更具穩(wěn)定性:

其中
為節(jié)點u的初始權(quán)重,
表示節(jié)點u第t次迭代的權(quán)重,Γ(u)表示u的所有鄰居節(jié)點的集合,|Γ(u)|表示u的鄰居節(jié)點數(shù)量。 
4.3 構(gòu)建用戶注冊同構(gòu)圖
1)算兩兩用戶節(jié)點之間的相似度
我們的分析主體在注冊用戶上,而上述構(gòu)建出來的圖是一個異構(gòu)的二部圖,轉(zhuǎn)化為同構(gòu)圖的步驟為計算節(jié)點之間的相似度,并且將此相似度作為注冊用戶之間的邊的權(quán)重,即

2)構(gòu)建用戶-用戶同構(gòu)圖
兩個用戶節(jié)點相似度為公共的特征節(jié)點的權(quán)重之和,即若上述相似度大于設(shè)定的閾值(相似度閾值),則兩個用戶節(jié)點連上邊。這時若只考慮用戶節(jié)點和用戶節(jié)點之間的邊,即成為了一個同構(gòu)的用戶圖。
- 相似度閾值的設(shè)置方式
 
當(dāng)閾值設(shè)置為0時,所有的用戶都互相連接,隨著閾值的不斷增大,用戶和用戶的邊逐漸減少,當(dāng)閾值足夠大時,不存在任何邊。通過對歷史數(shù)據(jù)的分析,我們發(fā)現(xiàn)能夠使得異常用戶相連接的相似度閾值會存在一個小范圍的穩(wěn)定區(qū)間,因此閾值設(shè)置的邏輯為使得用戶-用戶同構(gòu)圖的邊關(guān)系穩(wěn)定(小區(qū)間內(nèi)保持邊關(guān)系不改變)的最小閾值。
我們的實際設(shè)置方式為:先將閾值設(shè)置成一個較小的值α,此時幾乎所有的用戶都互相連接,再將閾值每次增加δ,觀察最大連通子圖的節(jié)點數(shù)量,若該數(shù)量在連續(xù)n次的閾值增加的過程中幾乎保持不變,則第n次的閾值α+nδ設(shè)置為當(dāng)前模型的相似度閾值。
4.4 惡意賬戶監(jiān)測—找出異常聚集的連通子圖
找出所有的連通子圖,當(dāng)連通子圖用戶節(jié)點大于某個數(shù)值(聚集用戶數(shù)閾值)時,則該連通子圖的所有用戶為異常聚集。圖8展示了異常聚集用戶和正常用戶的邊關(guān)系狀態(tài)。
- 聚集用戶數(shù)閾值的設(shè)置方式
 
聚集用戶數(shù)的閾值是根據(jù)模型的效果來確定的,可以通過不同值的模型效果來確定最佳值,具體可以根據(jù)準(zhǔn)確率、召回率、F1值等的收斂情況來進行衡量確定。通常情況下注冊風(fēng)控選擇的聚集用戶數(shù)閾值建議在10-30區(qū)間為佳。

圖7:用戶-用戶同構(gòu)圖
五、實時策略
對于每天注冊進來的新用戶,如何高效迅速地識別注冊用戶是否是異常聚集的黑產(chǎn)用戶呢?這里介紹商旅注冊風(fēng)控場景下的實時策略。
首先,每注冊一個新用戶會觸發(fā)模型的更新(模型的數(shù)據(jù)取近24~72小時的注冊用戶),同時每n分鐘更新一次模型參數(shù)作為兜底。模型需要保存的參數(shù)一般有:壞用戶節(jié)點、壞用戶的所有特征節(jié)點及其權(quán)重、相似度閾值。
如圖9所示,對于一個新注冊用戶,獲取到其特征后,計算該用戶與當(dāng)前最新模型中的壞用戶節(jié)點的相似度(即與壞用戶特征節(jié)點的公共節(jié)點權(quán)重之和),若與任意一個壞用戶節(jié)點的相似度大于模型的相似度閾值,則輸出為異常聚集,否則認(rèn)為是正常用戶。

圖8:用戶注冊實時策略圖
六、實際應(yīng)用效果
6.1 數(shù)據(jù)模型指標(biāo)
歷史模型以天為單位,下圖展示部分日期模型的準(zhǔn)確率和召回率。

圖9:歷史數(shù)據(jù)模型效果
6.2 線上業(yè)務(wù)指標(biāo)
1)注冊攔截率
用戶在注冊時若模型識別為異常,則需要用戶進行身份驗證(姓名和證件號),若用戶驗證失敗或放棄注冊則認(rèn)為注冊攔截,下表展示了2023年以來的月注冊攔截率(未完成注冊的用戶數(shù) / 注冊時識別有風(fēng)險需要驗證的用戶)的數(shù)據(jù)。
注冊月份  | 月注冊攔截率  | 
1月  | 100.0%  | 
2月  | 83.7%  | 
3月  | 78.1%  | 
4月  | 93.2%  | 
5月  | 99.9%  | 
2)黑產(chǎn)用戶注冊時的風(fēng)險識別率
商旅對于各個產(chǎn)線都有不同的風(fēng)控場景識別,這些識別出來的黑產(chǎn)用戶有些在注冊時已被本文的模型識別為異常,但后續(xù)通過了身份驗證也會成功注冊。因此考慮黑產(chǎn)用戶在注冊時的風(fēng)險識別率也是衡量模型效果的一個指標(biāo)。下表展示了部分風(fēng)控場景中的注冊時風(fēng)險識別率(注冊時識別異常的黑產(chǎn)用戶數(shù) / 黑產(chǎn)用戶數(shù))的數(shù)據(jù)。
風(fēng)控場景  | 注冊時風(fēng)險識別率  | 
跟團游場景  | 99.8%  | 
機票場景  | 91.7%  | 
酒店場景1  | 74.3%  | 
酒店場景2  | 63.3%  | 
七、不足和思考
7.1 節(jié)點初始權(quán)重的計算
每更新一次模型,初始權(quán)重都會基于公式(4.1)重新進行計算,即當(dāng)前模型節(jié)點的初始權(quán)重只和當(dāng)前模型有關(guān)(每次模型的時間選取為近24小時),沒有去學(xué)習(xí)歷史的權(quán)重結(jié)果。實際上,對于歷史模型認(rèn)為異常的用戶,其特征節(jié)點在當(dāng)前模型中出現(xiàn)時被賦予更高的初始權(quán)重可能是更優(yōu)的方案。
7.2 鄰居影響力
節(jié)點的最終權(quán)重是根據(jù)公式(4.2)進行迭代更新的,從公式可以看出,對于每個節(jié)點,每一次權(quán)重的迭代是對上一次節(jié)點權(quán)重的結(jié)果加上各鄰居節(jié)點權(quán)重的平均影響力得到的。若能根據(jù)節(jié)點連接情況或歷史數(shù)據(jù),對不同鄰居的影響力進行加權(quán)平均可能是更優(yōu)的方案。
八、參考文獻
- Zhou J, Cui G, Hu S, et al. Graph neural networks: A review of methods and applications[J]. AI Open, 2020, 1:57-81.
 - Liang X, Yang Z, Wang B, et al. Unveiling Fake Accounts at the Time of Registration: An Unsupervised Approach[C]// KDD21: The 27th ACM SIGKDD Conference on Knowledge Discovery and Data Mining. ACM, 2021.
 - Wang B, Jia J, Zhang L, et al. Structure-based Sybil Detection in Social Networks via Local Rule-based Propagation[J]. IEEE Transactions on Network Science & Engineering, 2018, PP(99):1-1.
 















 
 
 















 
 
 
 