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