廣告流量反作弊風(fēng)控中的模型應(yīng)用
一、廣告反作弊簡(jiǎn)介
1.1 廣告流量反作弊定義
廣告流量作弊,即媒體通過多種作弊手段,獲取廣告主的利益。
作弊流量主要來自于:
- 模擬器或者被篡改了設(shè)備的廣告流量;
- 真設(shè)備,但通過群控控制的流量;
- 真人真機(jī),但誘導(dǎo)產(chǎn)生無效流量等。
1.2 常見的作弊行為
- 機(jī)器行為:
- 人工行為:素材交互要素誘導(dǎo)點(diǎn)擊,媒體渲染文案誘導(dǎo)點(diǎn)擊,突然彈出誤觸點(diǎn)擊等。
1.3 常見作弊類型
按照廣告投放流程順序
- 展示作弊:媒體將多個(gè)展示廣告同時(shí)曝光于同一個(gè)廣告位,向廣告主收取多個(gè)廣告的展示費(fèi)用。
- 點(diǎn)擊作弊:通過腳本或計(jì)算機(jī)程序模擬真人用戶,又或者雇傭和激勵(lì)誘導(dǎo)用戶進(jìn)行點(diǎn)擊,生成大量無用廣告點(diǎn)擊,獲取廣告主的CPC廣告預(yù)算。
- 安裝作弊:通過測(cè)試機(jī)或模擬器模擬下載,以及通過移動(dòng)人工或者技術(shù)手段修改設(shè)備信息、SDK方式發(fā)送虛擬信息、模擬下載等等。
二、廣告流量反作弊算法體系
2.1 算法模型在業(yè)務(wù)風(fēng)控中應(yīng)用背景
智能風(fēng)控,運(yùn)用大量行為數(shù)據(jù)構(gòu)建模型,對(duì)風(fēng)險(xiǎn)進(jìn)行識(shí)別和感知監(jiān)控,相比規(guī)則策略,顯著提升識(shí)別的準(zhǔn)確性和覆蓋率以及穩(wěn)定性。
常見的無監(jiān)督算法:
- 密度聚類(DBSCAN)
- 孤立森林(Isolation Forest)
- K均值算法
常見有監(jiān)督算法:
- 邏輯回歸(logistic)
- 隨機(jī)森林 (random forest)
2.2 廣告流量模型算法體系
體系分四層:
- 平臺(tái)層:主要是依托spark-ml/tensorflow/torch算法框架基礎(chǔ)上,引用開源以及自定義開發(fā)的算法應(yīng)用于業(yè)務(wù)風(fēng)控建模中。
- 數(shù)據(jù)層:搭建vaid/ip/媒體/廣告位等多粒度下,請(qǐng)求、曝光、點(diǎn)擊、下載、激活等多轉(zhuǎn)化流程的畫像和特征體系,服務(wù)于算法建模。
- 業(yè)務(wù)模型層:基于行為數(shù)據(jù)特征和畫像數(shù)據(jù),搭建點(diǎn)擊反作弊審計(jì)模型、請(qǐng)求點(diǎn)擊風(fēng)險(xiǎn)預(yù)估模型、媒體行為相似團(tuán)伙模型以及媒體粒度異常感知等模型。
- 接入層:模型數(shù)據(jù)的應(yīng)用,離線點(diǎn)擊反作弊模型審計(jì)結(jié)果與策略識(shí)別審計(jì)結(jié)果匯總,同步業(yè)務(wù)下游處罰;媒體異常感知模型主要作為候選名單同步點(diǎn)檢平臺(tái)和自動(dòng)化巡檢進(jìn)行。
三、算法模型應(yīng)用案例
3.1 素材交互誘導(dǎo)感知
背景:廣告素材中添加虛擬的X關(guān)閉按鈕,導(dǎo)致用戶關(guān)閉廣告時(shí)點(diǎn)擊的虛假的X按鈕,導(dǎo)致無效的點(diǎn)擊流量,同時(shí)影響用戶體驗(yàn);左圖是投放的原始素材,右側(cè)是用戶點(diǎn)擊的坐標(biāo)繪制熱力圖,虛擬X導(dǎo)致用戶關(guān)閉廣告時(shí)產(chǎn)生無效的點(diǎn)擊流量。
模型識(shí)別感知:
1、密度聚類(DBSCAN):
先定義幾個(gè)概念:
- 鄰域:對(duì)于任意給定樣本x和距離ε,x的ε鄰域是指到x距離不超過ε的樣本的集合;
- 核心對(duì)象:若樣本x的ε鄰域內(nèi)至少包含minPts個(gè)樣本,則x是一個(gè)核心對(duì)象;
- 密度直達(dá):若樣本b在a的ε鄰域內(nèi),且a是核心對(duì)象,則稱樣本b由樣本x密度直達(dá);
- 密度可達(dá):對(duì)于樣本a,b,如果存在樣例p1,p2,...,pn,其中,p1=a,pn=b,且序列中每一個(gè)樣本都與它的前一個(gè)樣本密度直達(dá),則稱樣本a與b密度可達(dá);
- 密度相連:對(duì)于樣本a和b,若存在樣本k使得a與k密度可達(dá),且k與b密度可達(dá),則a與b密度相連;
- 所定義的簇概念為:由密度可達(dá)關(guān)系導(dǎo)出的最大密度相連的樣本集合,即為最終聚類的一個(gè)簇。
2、應(yīng)用算法對(duì)誘導(dǎo)誤觸廣告感知:
①首先按照分辨率和廣告位,對(duì)點(diǎn)擊數(shù)據(jù)進(jìn)行分組,篩選過濾掉量級(jí)較小的群組;
②對(duì)每個(gè)群組,使用密度聚類算法進(jìn)行聚類,設(shè)置鄰域密度閾值為10,半徑ε=5,進(jìn)行聚類訓(xùn)練;
③對(duì)每個(gè)群組,密度聚類后,過濾掉簇面積較小的簇,具體訓(xùn)練代碼如下:
④效果監(jiān)控和打擊,針對(duì)挖掘的簇,關(guān)聯(lián)點(diǎn)擊后向指標(biāo),針對(duì)異常轉(zhuǎn)化指標(biāo)廣告位,進(jìn)行復(fù)檢,并對(duì)復(fù)檢有問題廣告位進(jìn)行處置。
3.2 點(diǎn)擊反作弊模型
3.2.1 背景
針對(duì)廣告的點(diǎn)擊環(huán)節(jié)建立作弊點(diǎn)擊識(shí)別模型,提升反作弊審計(jì)覆蓋能力,發(fā)現(xiàn)高緯度隱藏的作弊行為、有效補(bǔ)充點(diǎn)擊場(chǎng)景的策略反作弊審計(jì)。
3.2.2 建設(shè)流程
(1)特征建設(shè)
基于token粒度,計(jì)算事件發(fā)生前,設(shè)備、ip、媒體、廣告位的等粒度特征。
頻率特征:在過去1分鐘,5分鐘,30分鐘、1小時(shí)、1天,7天等時(shí)間窗口的曝光,點(diǎn)擊、安裝行為特征、即對(duì)應(yīng)的均值、方差、離散度等特征;
基本屬性特征:媒體類型,廣告類型,設(shè)備合法性、ip類型,網(wǎng)絡(luò)類型,設(shè)備價(jià)值等級(jí)等。
2、模型訓(xùn)練和效果
① 樣本選擇:
- 樣本均衡處理:線上作弊樣本和非作弊樣本非均衡,采用對(duì)非作弊樣本下采樣方式,使得作弊和非作弊樣本量達(dá)到均衡(1:1)
- 魯棒性樣本選取:線上非作弊樣本量級(jí)大,且群體行為多樣性且分布不均等,為了小樣本訓(xùn)練上線后覆蓋所有行為模式,
- 使用K-means算法:針對(duì)線上非作弊樣本進(jìn)行分群,然后對(duì)每個(gè)群體按照占比再下采樣,獲得訓(xùn)練的非作弊樣本。
② 特征預(yù)處理:
- 統(tǒng)計(jì)每個(gè)特征缺失率,去掉缺失率大于50%的特征;
- 特征貢獻(xiàn)度篩選,計(jì)算每個(gè)特征對(duì)預(yù)測(cè)標(biāo)簽Y的區(qū)分度,過濾掉貢獻(xiàn)度低于0.001的特征;
- 特征穩(wěn)定性篩選,在模型上線前,選取最大和最小時(shí)間段的樣本,計(jì)算兩個(gè)時(shí)間段每個(gè)特征的PSI值,過濾掉PSI值(Population Stability Index)大于0.2的特征,保留穩(wěn)定性較好的特征。
③ 模型訓(xùn)練:
采用隨機(jī)森林算法,對(duì)點(diǎn)擊廣告作弊行為進(jìn)行分類,隨機(jī)森林有較多優(yōu)勢(shì),比如:
(1)能處理很高維度的數(shù)據(jù)并且不用做特征選擇;
(2)對(duì)泛化誤差(Generalization Error)使用的是無偏估計(jì),模型泛化能力強(qiáng);
(3)訓(xùn)練速度快,容易做成并行化方法(訓(xùn)練時(shí)樹與樹之間是相互獨(dú)立的);
(4)抗過擬合能力比較強(qiáng);
超參數(shù)搜索優(yōu)化,使用ParamGridBuilder,配置max_depth(樹最大深度),numTrees(樹的個(gè)數(shù))等超參數(shù)的進(jìn)行搜索優(yōu)化最優(yōu)超參數(shù)。
④ 模型穩(wěn)定性監(jiān)控:
模型上線后,如果特征隨著時(shí)間遷移,推理時(shí)間的特征與訓(xùn)練時(shí)間的特征分布存在變動(dòng)差異,需要對(duì)模型穩(wěn)定性監(jiān)控并迭代更新;
首先對(duì)當(dāng)前版本訓(xùn)練樣本進(jìn)行存檔,計(jì)算推理時(shí)間的數(shù)據(jù)和訓(xùn)練時(shí)間數(shù)據(jù)的對(duì)應(yīng)每個(gè)特征的PSI值,計(jì)算的PSI值(Population Stability Index)每天可視化監(jiān)控告警。
⑤ 模型可解釋性監(jiān)控:
模型上線后,為了更直觀的定位命中模型風(fēng)險(xiǎn)的原因,對(duì)推理數(shù)據(jù)進(jìn)行可解釋性監(jiān)控;即對(duì)每條數(shù)據(jù),計(jì)算其對(duì)預(yù)測(cè)標(biāo)簽的影響程度;
采用Shapley值(Shapley Additive explanation)解釋特征如何影響模型的輸出,計(jì)算shap值輸出到可視化平臺(tái),日常運(yùn)營(yíng)分析使用。
3.3 點(diǎn)擊序列異常檢測(cè)
3.3.1 背景
通過用戶小時(shí)點(diǎn)擊量序列,挖掘惡意行為對(duì)應(yīng)的設(shè)備,挖掘檢測(cè)遠(yuǎn)離占絕大多數(shù)正常行為外的異常模式用戶群體、比如只有凌晨0~6點(diǎn)有低頻的其他時(shí)間沒點(diǎn)擊行為的異常群體、或者每小時(shí)均衡點(diǎn)擊的行為等異常模式用戶等。
3.3.2 建設(shè)流程
(1)特征建設(shè)
以設(shè)備作為用戶,統(tǒng)計(jì)過去1/7/30天,每小時(shí)的點(diǎn)擊量,形成1*24小時(shí)、7*24小時(shí)、30*24小時(shí)點(diǎn)擊量序列,構(gòu)建的特征具備時(shí)間尺度上特征完備性和每個(gè)特征數(shù)據(jù)連續(xù)條件,適用于異常檢測(cè)算法。
(2)模型選擇
孤立森林離群點(diǎn)檢測(cè)算法,算法基于兩個(gè)理論假設(shè),即異常數(shù)據(jù)占總樣本量的比例很小,異常點(diǎn)的特征值與正常點(diǎn)的差異很大。
檢測(cè)分布稀疏且離密度高的群體較遠(yuǎn)的點(diǎn),比如下圖可以直觀的看到,相對(duì)更異常Xo的只需要4次切割就從整體中被分離出來,即被‘孤立’了,而更加正常的Xi點(diǎn)經(jīng)過了11次分割才從整體中分離出來。
(3)模型訓(xùn)練
使用IsolationForest算法,為了更好覆蓋,針對(duì)多種粒度流量進(jìn)行異常檢測(cè)訓(xùn)練。
①全平臺(tái)流量,訓(xùn)練異常感知模型,設(shè)置異常樣本比例cnotallow=0.05;
②每類媒體類型的流量,訓(xùn)練異常感知模型,設(shè)置異常樣本比例cnotallow=0.1;
③每種廣告位類型流量,訓(xùn)練異常感知模型,設(shè)置異常樣本比例cnotallow=0.1。
(4)感知監(jiān)控
- 異常得分定義:如果異常得分接近 1,那么一定是異常點(diǎn),如果異常得分遠(yuǎn)小于 0.5,一定不是異常點(diǎn);
- 異常篩選:篩選異常得分大于0.7的用戶作為高風(fēng)險(xiǎn)人群,介于0.5~0.7的人群作為中風(fēng)險(xiǎn)人群,對(duì)高中風(fēng)險(xiǎn)人群,同步審計(jì)平臺(tái)人工二次審計(jì);
- 案例分析:
案例①
2022年XX月XX號(hào), 7*24小時(shí)點(diǎn)擊量異常檢測(cè), 可疑惡意用戶A ,過去7天大部分時(shí)間,每小時(shí)均衡產(chǎn)生較多點(diǎn)擊記錄遠(yuǎn)超正常用戶。
(備注:features中每個(gè)點(diǎn)代表用戶一個(gè)小時(shí)的點(diǎn)擊量)
案例②
2022年XX月XX號(hào),1*24小時(shí)點(diǎn)擊量序列異常檢測(cè),可疑惡意用戶B, 基本只在凌晨產(chǎn)生點(diǎn)擊,其他白天基本無點(diǎn)擊行為。
四、總結(jié)
在流量反作弊領(lǐng)域,隨著對(duì)抗手段的升級(jí),算法模型能更好發(fā)現(xiàn)和挖掘黑產(chǎn)的隱藏的作弊模式;在廣告流量反作弊領(lǐng)域,我們使用有監(jiān)督和無監(jiān)督等算法模型,從作弊流量識(shí)別,異常流量感知方面做了探索挖掘應(yīng)用,有效提升識(shí)別能力,挖掘發(fā)現(xiàn)較復(fù)雜的異常行為模式。未來算法模型在機(jī)器流量識(shí)別上更多探索實(shí)踐應(yīng)用。