淺談活動場景下的圖算法在反作弊應用
作者 | ANTI
導讀
隨着反作弊與作弊黑產對抗愈發激烈,作弊手段日新月異,我們也不斷嘗試新的方法解決新的作弊問題。本文主要介紹在活動場景下,應用圖算法解決社團類型作弊問題。圖模型不僅能夠同時融入圖的拓撲結構和節點的特徵進行學習,而且其作為半監督模型,可以更好地利用未標註的數據,提升召回效果。文中提到的GCN圖模型和SCGCN(多圖串聯模型)在作弊召回方面均取得很好的效果。
全文4102字,預計閲讀時間11分鐘。
01 引言
運營活動是企業保證用户增長與留存的重要手段,也是企業的核心競爭力之一。其主要形式包括拉新和促活,拉新是通過老用户邀請新用户的方式獲取新的用户,增大用户資源池;促活即是通過做任務的活動形式提升DAU,增加用户粘性。舉個例子,我們平時在某APP上參與的做任務領紅包活動便是運營活動的具體形式之一。企業通過結合自己的產品特點開展運營活動,可以達到提升用户留存率和轉化率的目的,從而提高企業收益和影響力。 百度系APP上也有各式各樣的活動,例如「邀好友領紅包」,「做任務領紅包」等。但是活動中會有大量作弊者(比如網絡黑產)通過作弊手段獲取非正當利益,影響活動營銷效果。此時就需要反作弊系統通過用户畫像、用户行為、設備信息等多維度信息對黑產進行甄別,為公司的運營活動保駕護航。近年來,隨着反作弊與黑產之間不斷的攻防對抗,黑產的作弊手段也在不斷迭代升級,從大規模機刷作弊逐漸演變為眾包作弊,乃至小規模真人作弊,這使反作弊的作弊識別難度也不斷增加,是此,我們需要不停的迭代新的方法對黑產進行識別和攔截。
02 難點
在運營活動中,以拉新活動為例。在拉新類型的活動中,邀請行為一旦發生,用户之間便會自動建立一種關聯關係,這裏我們稱之為「師徒關係」(邀請者視為「師父」,將被邀請者視為「徒弟」)。舉個例子,Pic.3是通過「邀新」操作產生的用户關係圖,我們稱上層人物為下層人物的「師父」,稱下層人物為上層人物的「徒弟」。圖中師父可以拉新多個徒弟,與此同時會獲得相應獎勵,通常情況下徒弟越多,獎勵越多。
△Pic.1邀好友活動、Pic.2國慶活動
△Pic.3邀請活動人物關係説明
目前,拉新場景反作弊建模面臨以下兩個問題:
1、缺少刻畫用户間聯繫信息的能力:活動反作弊業務目前應用模型包含樹模型、DNN和機器學習模型。如果我們把用户看作節點,會發現這些模型的學習訓練更關注於節點本身的特徵,而缺少學習節點與節點之間的關係特徵的能力。在近期的幾次作弊攻擊中,發現以「社團」為基本單位進行規模式攻擊的作弊形式,他們在行為以及設備信息上具有明顯的共享性,作弊者之間體現出信息強關聯性,我們需要有更好的模型來學習這種「關聯性」的能力。
2、樣本純度低導致召回受限:一般獲取黑樣本的方式是通過人工抽樣評估和客訴反饋富集,白樣本是按一定的比例隨機抽樣獲得。但是這樣做存在一個不好解決的問題,即這些白樣本可能混入了未知作弊數據,會使白樣本純度降低,進而影響有監督模型的訓練效果。
下面我們介紹圖模型算法可以有效解決上面兩個問題。
03 圖算法應用
為解決上面提出的兩個業務難題,選用圖神經網絡模型進行業務建模。圖模型的優勢在於能夠同時融入了圖的拓撲結構和節點的特徵進行學習,不僅可以通過於節點之間建立的邊關係,進行信息互聯,補充模型對邊關係的學習能力,從而擴大召回,而且圖模型作為半監督模型,可以更好地利用未標註的數據,提升召回效果。
3.1 圖模型簡介
目前常用的圖神經網絡模型可以分為兩大類:一類是基於圖遊走的方法,例如random-walk遊走類模型;另一類是基於圖卷積的方法,例如GCN、GAT以及GraphSAGE等圖卷積神經網絡模型。GCN從整圖的角度出發,打通了原始圖結構和神經網絡之間的壁壘,但是基於整圖的巨大計算量使其在大規模場景應用上遇到瓶頸,而從局部圖角度出發的GraphSAGE可以一定程度解決這個問題。另一種常用圖模型GAT加入了注意力機制,更多的模型參數在增強了學習能力的同時,也增加了時空複雜度,這使模型訓練需要更充分的樣本信息以及計算資源。在真實業務場景中,由於樣本量規模可控,所以直接選取GCN圖算法進行訓練,下面簡單介紹GCN原理。
GCN是一個多層的圖卷積神經網絡,每一個卷積層僅處理一階鄰域信息,通過疊加若干卷積層可以實現多階鄰域的信息傳遞。
每一個卷積層的傳播規則如下[1]:
\(H^{(l+1)}=σ(\tilde{D}^{-{\frac 1 2}}\tilde{A}\tilde{D}^{-{\frac 1 2}}H^{(l)}W^{(l)})\)
其中
- \(\tilde{A}=A+I_{N} \)是無向圖\(G\)的鄰接矩陣加上自連接(就是每個頂點和自身加一條邊),\(I_{N}\)是單位矩陣。
- \(\tilde{D}\)是\(\tilde{A} \)的度矩陣,即\(\tilde{D}{ii}=\sum_j\tilde{A}{ij}\)
- \(H^{(l)}\)是第\(I\)層的激活單元矩陣,\( H^0=X\)
- \(W^{(l)}\)是每一層的參數矩陣
鄰接矩陣\(A\)了節點的鄰居信息的傳遞,單位矩陣\(I_{N}\)代表節點自身信息的傳遞,正因為這樣GCN模型既可以學習到節點本身的特徵,又可以學習到其與其它節點的關聯信息,將自己和鄰居節點的信息彙總到一起進行訓練學習。
△Pic.4 GCN原理圖
△Pic.5 舉例説明
圖神經網絡領域作為研究熱點之一,近年來已廣泛應用到工業界的各個場景中,並取得了良好效果。
3.2 圖算法應用
3.2.1 基於拉新活動作弊場景的GCN召回模型
拉新活動場景建模
拉新活動場景是活動主要作弊場景之一。以「師徒邀新場景」舉例來説,如果師父用户成功邀請徒弟用户成為新用户,則師父用户和徒弟用户都會獲得相應的獎勵。黑產會使用批量虛假徒弟賬號幫助師父完成邀新行為從而獲得收益。通過數據統計分析,發現這些虛假徒弟用户存在共享IP、機型重合等現象。據此,嘗試以「師父用户」作為圖中基礎節點,分別將「城市+機型」和「IP+機型」作為邊關係進行圖模型構建。
圖裁剪
由於不是所有共享IP-機型的師父均存在作弊信號,只保留權重大於閾值T的邊,達到特徵增強的效果。
模型效果
△table 1 模型效果對比
實驗結果表明,GCN算法效果顯著,使作弊樣本召回率提升42.97%。
3.2.2 多圖融合方法應用探索
從以上實驗中可以看出,不同的構圖方式會召回不同的作弊羣體。如果將在這些羣體之間差異信息融合在一起,會不會獲得更多的召回呢?於是,嘗試找到一種有效的方式,將不同圖信息整合到同一個模型中,提升作弊樣本召回率。沿着多圖融合的思路,提出以下三種方法分別進行實驗.
融合方式
edge_union邊融合 將兩圖融合思路是「圖A和圖B邊混建在同一圖中進行訓練學習」,以這樣的方式將圖A&圖B包含的信息融合到一起。
△Pic.6 edge_union模型
△Pic.7 edge_union構圖方式
scgcn-split embedding特徵繼承
將兩圖融合思路是「取訓練好的圖A的embedding表示作為圖B的輸入特徵進行訓練學習」,以這樣的方式將圖A&圖B包含的信息融合到一起。
△Pic.8 scgcn-split模型
scgcn串聯圖合併訓練
基於scgcn-split方案,將圖A&圖B串聯起來同時進行訓練學習。
△Pic.9 scgcn模型
模型效果
以下是不同方法在同一數據集上的表現對比結果:
△table 2 模型效果對比
從新增召回量級上角度看,scgcn方法最好,召回了最多的作弊樣本;edge_union方法表現較差,其召回量級甚至不如GCN單圖。簡單分析原因,edge_union方法將不同類型的邊合併到同一圖結構中,在此過程中未區分邊的類型與重要性,相當於將圖邊同質化,由此損失了一些邊信息,從實驗結果上看便是損失了一部分召回。與此同時,edge_union模型受到半監督學習場景和樣本純度不足的限制,在節點之間增加了邊連接的同時,也有傳遞錯誤信息的風險。除以上實驗外,也嘗試了對embedding層進行concat/max-pool/avg-pool等圖融合的方法,這些方法均存在召回損失,説明「並行」圖融合的方法無法使模型學習到更多的信息,反而會因信息互斥效應損失召回。相反,「串行」圖融合的方法顯得更加有效。scgcn-split和scgcn相比於單圖模型均有更多的召回,尤其是scgcn模型,將多圖參數同時進行訓練,可以真正將多圖信息融合到一起,召回了比單模型召回並集更多的樣本。
04 總結與展望
相較於傳統模型,圖模型不僅可以獲取節點信息,還可以捕捉節點與節點之間的關係信息。通過於節點之間建立的邊關係,進行信息互聯,學習到更多的信息,從而擴大召回。在拉新活動反作弊的師徒活動場景中,通過對圖算法的應用,使新增召回作弊樣本在原有作弊樣本基礎上增加50%,召回率大幅度提升。
未來還將在以下方向進行進一步探索:
1、從之前的工作中可以看出邊關係在圖模型學習中產生了重要作用,後續會對邊權重進行加工學習,同時也會對節點信息進行補充,通過增加數據信息和有效特徵,增強模型的召回能力。
2、隨着作弊手段不斷升級,作弊形式逐漸由機器操作過渡到真人操作,作弊規模縮小,導致作弊特徵稀疏,增加了識別難度。後續將嘗試更多的圖算法,例如引入注意力機制的GAT[2]模型,可堆疊多層網絡的Deepgcn[3]模型等,以提高作弊識別敏感度。
——END——
參考文獻:
[1]Kipf, Thomas N., and Max Welling. "Semi-supervised classification with graph convolutional networks." arXiv preprint arXiv:1609.02907 (2016).
[2]Veličković, Petar, et al. "Graph attention networks." arXiv preprint arXiv:1710.10903 (2017).
[3]Li, Guohao, et al. "Deepgcns: Can gcns go as deep as cnns?." Proceedings of the IEEE/CVF international conference on computer vision. 2019.
推薦閲讀:
- 精準水位在流批一體數據倉庫的探索和實踐
- 視頻編輯場景下的文字模版技術方案
- 淺談活動場景下的圖算法在反作弊應用
- 百度工程師帶你玩轉正則
- Serverless:基於個性化服務畫像的彈性伸縮實踐
- 百度APP iOS端內存優化-原理篇
- 從稀疏表徵出發、召回方向的前沿探索
- 性能平台數據提速之路
- 採編式AIGC視頻生產流程編排實踐
- 百度工程師漫談視頻理解
- PGLBox 超大規模 GPU 端對端圖學習訓練框架正式發佈
- 百度工程師淺談分佈式日誌
- 百度工程師帶你瞭解Module Federation
- 巧用Golang泛型,簡化代碼編寫
- Go語言DDD實戰初級篇
- 百度工程師帶你玩轉正則
- Diffie-Hellman密鑰協商算法探究
- 貼吧低代碼高性能規則引擎設計
- 淺談權限系統在多利熊業務應用
- 分佈式系統關鍵路徑延遲分析實踐