攜程商旅基于圖網(wǎng)絡(luò)的注冊風(fēng)控實(shí)踐
一、背景
注冊風(fēng)控是企業(yè)風(fēng)控場景中重要的一環(huán),黑產(chǎn)用戶想要進(jìn)行各式各樣的欺詐行為,首先需要注冊賬戶。通常,這些黑產(chǎn)用戶會采用技術(shù)手段批量注冊虛假賬號,而后進(jìn)行一系列惡意行為。那么,如何準(zhǔn)確快速地識別注冊用戶是否是異常聚集的黑產(chǎn)用戶,這是注冊風(fēng)控場景中需要解決的一個問題。
因此,本文介紹了一種當(dāng)前在攜程商旅應(yīng)用的基于注冊圖網(wǎng)絡(luò)的惡意賬戶聚集檢測模型。
二、前置知識
2.1 圖的定義
圖是由頂點(diǎn)的集合和頂點(diǎn)之間的邊的集合組成,通常表示為:G(V,E),其中,G表示一個圖,V是圖G中頂點(diǎn)的集合,E是圖G中邊的集合。
2.2 圖的類型
1)有向圖/無向圖 (Undirected graphs / Directed graphs)
若頂點(diǎn)到之間的邊沒有方向,則稱這條邊為無向邊,用無序?qū)?,)來表示。如果圖中任意兩個頂點(diǎn)之間的邊都是無向邊,則稱該圖為無向圖;
若頂點(diǎn)到之間的邊有方向,則稱這條邊為有向邊,用有序?qū)?lt;,>來表示。如果圖中任意兩個頂點(diǎn)之間的邊都是有向邊,則稱該圖為有向圖。
圖1:無向圖和有向圖
2)同構(gòu)圖/異構(gòu)圖 (Homogeneous Graph / Heterogeneous Graph)
同構(gòu)圖:節(jié)點(diǎn)的類型和邊的類型只有一種
如社交網(wǎng)絡(luò)中可以考慮節(jié)點(diǎn)只有“人”這一個類型,邊只有“認(rèn)識”這一種連接關(guān)系,就是一種同構(gòu)圖;
異構(gòu)圖:節(jié)點(diǎn)的類型+邊的類型 > 2
如論文引用網(wǎng)絡(luò)中,存在著作者節(jié)點(diǎn)和論文節(jié)點(diǎn),邊的關(guān)系有作者-作者之間的共同創(chuàng)作關(guān)系連邊、作者-論文之間的從屬關(guān)系、論文-論文之間的引用關(guān)系。
三、數(shù)據(jù)挖掘
3.1 用戶設(shè)備維度
1)設(shè)備聚集性
我們對用戶所使用的設(shè)備進(jìn)行了分析,這里的設(shè)備指的是一種廣義的設(shè)備,包括IP地址、手機(jī)號、設(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%的用戶只使用過一個手機(jī)號;超過70%的用戶只使用1個或2個設(shè)備。
圖2:IP數(shù)量-用戶分布圖
圖3:手機(jī)號/設(shè)備號數(shù)量-用戶分布圖
2)地理位置和設(shè)備版本
IP地址和電話號碼都可以映射到一個大概的地理位置。我們可以判斷每個注冊用戶的兩個地理位置是否相同,不同的時候?yàn)楹诋a(chǎn)用戶的概率相對更大。
此外,我們也對設(shè)備版本進(jìn)行了分析,發(fā)現(xiàn)大多數(shù)從過時操作系統(tǒng)版本注冊的賬戶都是假賬戶,Android和iOS都存在這種現(xiàn)象,原因可能是攻擊者使用腳本自動注冊假賬戶,而操作系統(tǒng)版本并未更新。
3.2 注冊特征維度
1)注冊時間
我們對正常用戶和黑產(chǎn)用戶的注冊時間進(jìn)行了對比,發(fā)現(xiàn)黑產(chǎn)用戶更傾向于傍晚和夜間進(jìn)行注冊(17點(diǎn)-次日6點(diǎn))。
圖4:不同注冊時間的用戶分布
2)注冊填寫信息
基于商旅的背景下,用戶在進(jìn)行注冊時需要填寫公司名稱、郵箱等信息,我們會判斷用戶所填寫的信息是否是真實(shí)的企業(yè)信息(如填寫的公司名是否是正常的公司名、郵箱是否正常、是否是隨機(jī)填寫等),這些對注冊填寫信息相關(guān)的解析也會作為模型的特征。
四、模型設(shè)計
模型主要包括了四個步驟:特征提取、無監(jiān)督權(quán)重學(xué)習(xí)、構(gòu)建用戶注冊圖和惡意賬戶監(jiān)測。
圖 5:模型流程圖
4.1 特征提取
根據(jù)上述數(shù)據(jù)挖掘部分提取用戶的相關(guān)特征,對于連續(xù)的特征進(jìn)行分箱處理使其離散化。
4.2 無監(jiān)督權(quán)重學(xué)習(xí)
1)構(gòu)建用戶-特征異構(gòu)圖
構(gòu)建用戶-特征的無向圖來捕獲注冊賬戶和提取特征之間的關(guān)系,用G(V,E) 表示,其中V是所有的節(jié)點(diǎn)集合,包括用戶節(jié)點(diǎn)R和特征節(jié)點(diǎn)F,即每個F節(jié)點(diǎn)都表示某個特征;E 表示邊。用戶節(jié)點(diǎn)R與特征節(jié)點(diǎn)F存在邊等價于該用戶節(jié)點(diǎn)R擁有此F特征。
圖6:用戶-特征異構(gòu)圖
2)用戶節(jié)點(diǎn)和特征節(jié)點(diǎn)初始權(quán)重的計算
- 把特征分成A、B兩類
A類特征:除去B類的其他特征。
B類特征:該特征如果被大量賬戶共享,則認(rèn)為是異常的,如ip地址、手機(jī)號、設(shè)備號等。
- 計算特征節(jié)點(diǎn)初始權(quán)重
對于任意的特征節(jié)點(diǎn)x,初始權(quán)重計算如下:
其中:
其中Pre_A和Pre_B分別表示第一步中的A類特征和B類特征,ratio(x)表示該特征節(jié)點(diǎn)值的在其所屬特征中的頻率,pre(x)表示該特征節(jié)點(diǎn)所屬的特征,如特征節(jié)點(diǎn)IP-113.xxxxxxxx屬于IP特征;mode(pre(x))表示該特征節(jié)點(diǎn)所屬特征中頻率最高的特征節(jié)點(diǎn)。
- 計算用戶節(jié)點(diǎn)初始權(quán)重
按照上一步計算好每一個特征節(jié)點(diǎn)的初始特征后,每個用戶節(jié)點(diǎn)的初始特征即為其所有鄰居特征節(jié)點(diǎn)的均值。
3)更新節(jié)點(diǎn)權(quán)重
對所有節(jié)點(diǎn)的權(quán)重通過線性信念傳播進(jìn)行迭代更新,權(quán)重的迭代公式參考文獻(xiàn)[2]和[3]的思想并做了改進(jìn)優(yōu)化。優(yōu)化思路是基于每一次權(quán)重的迭代是對上一次節(jié)點(diǎn)權(quán)重的結(jié)果加上各鄰居節(jié)點(diǎn)權(quán)重的平均影響,并且每次的權(quán)重在仍保持在0-1之間,由此得到如下的迭代公式,對比驗(yàn)證了優(yōu)化后的公式在后續(xù)構(gòu)造用戶-用戶同構(gòu)圖的過程中邊關(guān)系更具穩(wěn)定性:
其中為節(jié)點(diǎn)u的初始權(quán)重,
表示節(jié)點(diǎn)u第t次迭代的權(quán)重,Γ(u)表示u的所有鄰居節(jié)點(diǎn)的集合,|Γ(u)|表示u的鄰居節(jié)點(diǎn)數(shù)量。
4.3 構(gòu)建用戶注冊同構(gòu)圖
1)算兩兩用戶節(jié)點(diǎn)之間的相似度
我們的分析主體在注冊用戶上,而上述構(gòu)建出來的圖是一個異構(gòu)的二部圖,轉(zhuǎn)化為同構(gòu)圖的步驟為計算節(jié)點(diǎn)之間的相似度,并且將此相似度作為注冊用戶之間的邊的權(quán)重,即
2)構(gòu)建用戶-用戶同構(gòu)圖
兩個用戶節(jié)點(diǎn)相似度為公共的特征節(jié)點(diǎn)的權(quán)重之和,即若上述相似度大于設(shè)定的閾值(相似度閾值),則兩個用戶節(jié)點(diǎn)連上邊。這時若只考慮用戶節(jié)點(diǎn)和用戶節(jié)點(diǎn)之間的邊,即成為了一個同構(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è)置方式為:先將閾值設(shè)置成一個較小的值α,此時幾乎所有的用戶都互相連接,再將閾值每次增加δ,觀察最大連通子圖的節(jié)點(diǎn)數(shù)量,若該數(shù)量在連續(xù)n次的閾值增加的過程中幾乎保持不變,則第n次的閾值α+nδ設(shè)置為當(dāng)前模型的相似度閾值。
4.4 惡意賬戶監(jiān)測—找出異常聚集的連通子圖
找出所有的連通子圖,當(dāng)連通子圖用戶節(jié)點(diǎn)大于某個數(shù)值(聚集用戶數(shù)閾值)時,則該連通子圖的所有用戶為異常聚集。圖8展示了異常聚集用戶和正常用戶的邊關(guān)系狀態(tài)。
- 聚集用戶數(shù)閾值的設(shè)置方式
聚集用戶數(shù)的閾值是根據(jù)模型的效果來確定的,可以通過不同值的模型效果來確定最佳值,具體可以根據(jù)準(zhǔn)確率、召回率、F1值等的收斂情況來進(jìn)行衡量確定。通常情況下注冊風(fēng)控選擇的聚集用戶數(shù)閾值建議在10-30區(qū)間為佳。
圖7:用戶-用戶同構(gòu)圖
五、實(shí)時策略
對于每天注冊進(jìn)來的新用戶,如何高效迅速地識別注冊用戶是否是異常聚集的黑產(chǎn)用戶呢?這里介紹商旅注冊風(fēng)控場景下的實(shí)時策略。
首先,每注冊一個新用戶會觸發(fā)模型的更新(模型的數(shù)據(jù)取近24~72小時的注冊用戶),同時每n分鐘更新一次模型參數(shù)作為兜底。模型需要保存的參數(shù)一般有:壞用戶節(jié)點(diǎn)、壞用戶的所有特征節(jié)點(diǎn)及其權(quán)重、相似度閾值。
如圖9所示,對于一個新注冊用戶,獲取到其特征后,計算該用戶與當(dāng)前最新模型中的壞用戶節(jié)點(diǎn)的相似度(即與壞用戶特征節(jié)點(diǎn)的公共節(jié)點(diǎn)權(quán)重之和),若與任意一個壞用戶節(jié)點(diǎn)的相似度大于模型的相似度閾值,則輸出為異常聚集,否則認(rèn)為是正常用戶。
圖8:用戶注冊實(shí)時策略圖
六、實(shí)際應(yīng)用效果
6.1 數(shù)據(jù)模型指標(biāo)
歷史模型以天為單位,下圖展示部分日期模型的準(zhǔn)確率和召回率。
圖9:歷史數(shù)據(jù)模型效果
6.2 線上業(yè)務(wù)指標(biāo)
1)注冊攔截率
用戶在注冊時若模型識別為異常,則需要用戶進(jìn)行身份驗(yàn)證(姓名和證件號),若用戶驗(yàn)證失敗或放棄注冊則認(rèn)為注冊攔截,下表展示了2023年以來的月注冊攔截率(未完成注冊的用戶數(shù) / 注冊時識別有風(fēng)險需要驗(yàn)證的用戶)的數(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ù)通過了身份驗(yàn)證也會成功注冊。因此考慮黑產(chǎn)用戶在注冊時的風(fēng)險識別率也是衡量模型效果的一個指標(biāo)。下表展示了部分風(fēng)控場景中的注冊時風(fēng)險識別率(注冊時識別異常的黑產(chǎn)用戶數(shù) / 黑產(chǎn)用戶數(shù))的數(shù)據(jù)。
風(fēng)控場景 | 注冊時風(fēng)險識別率 |
跟團(tuán)游場景 | 99.8% |
機(jī)票場景 | 91.7% |
酒店場景1 | 74.3% |
酒店場景2 | 63.3% |
七、不足和思考
7.1 節(jié)點(diǎn)初始權(quán)重的計算
每更新一次模型,初始權(quán)重都會基于公式(4.1)重新進(jìn)行計算,即當(dāng)前模型節(jié)點(diǎn)的初始權(quán)重只和當(dāng)前模型有關(guān)(每次模型的時間選取為近24小時),沒有去學(xué)習(xí)歷史的權(quán)重結(jié)果。實(shí)際上,對于歷史模型認(rèn)為異常的用戶,其特征節(jié)點(diǎn)在當(dāng)前模型中出現(xiàn)時被賦予更高的初始權(quán)重可能是更優(yōu)的方案。
7.2 鄰居影響力
節(jié)點(diǎn)的最終權(quán)重是根據(jù)公式(4.2)進(jìn)行迭代更新的,從公式可以看出,對于每個節(jié)點(diǎn),每一次權(quán)重的迭代是對上一次節(jié)點(diǎn)權(quán)重的結(jié)果加上各鄰居節(jié)點(diǎn)權(quán)重的平均影響力得到的。若能根據(jù)節(jié)點(diǎn)連接情況或歷史數(shù)據(jù),對不同鄰居的影響力進(jìn)行加權(quán)平均可能是更優(yōu)的方案。
八、參考文獻(xiàn)
- 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.