背景
行為序列模型相對于傳統(tǒng)機器學習的主要優(yōu)勢在于不依賴行為畫像特征,無需強專家經(jīng)驗挖掘高效特征來提升模型性能,縮短了特征工程的周期,能快速響應(yīng)黑產(chǎn)攻擊。
黑產(chǎn)通過刷接口、群控、真人眾包等作弊手段在關(guān)注、點贊、評論等核心場景進行攻擊。不同作弊方式在行為序列上有不同的特點。刷接口、群控作弊屬于機器作弊,行為序列呈現(xiàn)團伙相似性、序列周期性 / 密集性。真人眾包主要通過線下軟件分發(fā)任務(wù)真人賬號執(zhí)行,行為鏈路具有比較固定模式以上作弊方式在行為序列上具有顯著性,所以在風控業(yè)務(wù)上序列模型有很好的落地能力。
序列相似性檢測
目的
在反作弊場景,經(jīng)常會發(fā)現(xiàn)黑產(chǎn)的行為序列經(jīng)常會出現(xiàn)重復(fù)的片段比如 11332221133222 ( 數(shù)字表示 api 接口埋點映射的數(shù)字編號),其中 1133222 為重復(fù)片段 或者會發(fā)現(xiàn)不同黑賬號行為序列的相似度很高比如賬戶 A 行為序列 135555566 賬戶 B 的行為序列為 13555666。這是因為黑產(chǎn)利用腳本批量控制賬號進行動作周期的重復(fù)或者非周期動作賬戶之間的重復(fù),導(dǎo)致了黑產(chǎn)的行為序列度呈現(xiàn)一定的相似性、周期性。所以利用序列相似檢測算法對黑產(chǎn)進行識別,相似性檢測序列大都為單序列。
如何定義單序列?
單行為序列是指用戶僅只有單個動作構(gòu)成了序列,可抽象表達為 X=(x_1, x_2..x_i..x_n)
其中 x_i 表示具體的行為動作
技術(shù)方案
以上背景可歸納為以下兩種作弊類
作弊序列特征:
- 機刷性:同一作弊用戶行為序列片段相似
- 團伙性:不同作弊用戶之間行為序列相似
序列相似檢測流程分為數(shù)據(jù)預(yù)處理、序列相似檢測、落地處置三部分。機刷性和團伙性的作弊序識別的區(qū)別在于序列預(yù)處理階段是否進行切割,在后續(xù)相似檢及落地處置保持一致。序列相似檢測算法有以下兩種流程:
- 聚類:對向量化后的序列使用聚類算法,篩選序列高聚集團伙。
- 社區(qū)發(fā)現(xiàn):對向量化序列進行建圖(序列相似度計算小于閾值建邊),建圖后用社區(qū)發(fā)現(xiàn)序列高聚集團伙 。

序列深度模型
目的
隨著平臺反作弊方案的深化,黑產(chǎn)作弊難以在單一場景完成,需要在多個動作鏈路上規(guī)避場景的攔截手段,單序列動作建模只考慮了動作本身,動作上下文信息沒有被充分利用。例如 A 用戶兩次點贊的時間隔相差 1min,而 B 用戶兩次點贊之間僅相差 0.01s,在單序列動作建模中是沒有區(qū)分,但是如果將點贊時間間隔作為特征融入單序列就能有效識別 A/B 用戶行為的區(qū)別。用戶發(fā)生一個動作的時,該動作伴的附屬特征比如設(shè)備信息,軟件信息,ip 信息等也都是非常有意義?;谏鲜龇治?,希望構(gòu)建一種結(jié)合用戶上下文信息的多維混合行為序列,來完成對黑產(chǎn)作弊更具針對性的建模。
如何從單序列衍生為上下文信息多維混合序列?

如何利用動作上下文信息?
為了充分利用動作的上下文信息對不同用戶的識別,可以將動作發(fā)生的時間戳作為其特征的一部分,而后通過前后時間戳的差值來描述動作的上下文;在動作發(fā)生時,采集發(fā)生動作時刻的設(shè)備,軟件,ip 等信息,對其特征處理后作為上下文。
上下文特征序列處理
1)離散值特征處理
若想描述離散特征序列相鄰變化,則處理為離散值相鄰變化序列,前后一致處理為 0 不一致為。這種處理適合枚舉種類較多且強調(diào)變化對作弊有識別作用的序列特征,比如設(shè)備(device_id)序列。
2)續(xù)值特征處理
附加屬性都是離散的類別值,但諸如用戶設(shè)備電量,用戶投稿數(shù)等特征卻是連續(xù)的,對這類連續(xù)特征,采取冪次分桶來進行離散化,強化桶間的特征顯著性。
3)時間戳特征處理
時間戳雖然屬于連續(xù)值可直接進行分桶操作,但是時間間隔差值對作弊用戶顯著性更大,所以采取前后節(jié)點的時間戳差值后再分桶的方式進行特征處理
技術(shù)方案

技術(shù)架構(gòu)
基于以上技術(shù)方案構(gòu)建了一套可離線一鍵訓練、離線例行預(yù)測(天級別 / 小時級別)、在線實時預(yù)測一體化的系統(tǒng)。該系統(tǒng)界面化操作,高可配置化參數(shù),能實現(xiàn) 20min 內(nèi)訓練并上線上下文序列模型。
- 數(shù)據(jù):支持自定義特征序列輸入,配置化特征處理模塊
- 參數(shù):支持自定義模型及模型參數(shù)輸入
- 功能:支持例行離線預(yù)測寫線上名單

系統(tǒng)主要可分為特征構(gòu)建、在線預(yù)測、離線訓練三大部分:
- 特征構(gòu)建:通過特征平臺構(gòu)建 Flink 實時序列及 spark 離線序列作為線上序列數(shù)據(jù)的輸入
- 離線訓練:TunaLite 平臺 SQL 化輸入訓練黑白樣本且自定義選擇特征處理函數(shù)、模型選型及模型參數(shù)進行一鍵離線訓練,訓練完成模型文件上傳至 TOS。
- 在線預(yù)測:shark 決策中心調(diào)用預(yù)測服務(wù)并傳入模型、特征相關(guān)參數(shù)后返回模型預(yù)測結(jié)果。
除了以上實時預(yù)測鏈路,提供了例行離線預(yù)測鏈路。方式為 SQL 化輸入例行預(yù)測樣本,自動生成 Dorado 例行預(yù)測任務(wù),將預(yù)測結(jié)果通過 kafka 寫入線上名單進行攔截。當業(yè)務(wù)場景調(diào)用 QPS 過大時可使用該方式進行模型落地。
歷史長序列模型
目的
短時序列建模已有不少較成熟模型方案及落地實時服務(wù),以上涉及的上下文序列模型屬于短時序列方案。從用戶行為畫像角度,短時行為序列缺陷為只能限定步長進行序列建模,只能刻畫近期局部序列信息無法刻畫全局,從而使部分信息缺失。所以為了更完備序列信息就考慮到了長序列建模。從業(yè)務(wù)治理角度,短時序列方案傾向于解決行為短鏈路特征顯著或者作弊周短的黑產(chǎn),對于長鏈路行為比如真人眾包或者長作弊周期黑產(chǎn)無法捕捉。
技術(shù)方案
采用的模型主要參考阿里媽媽 CTR 預(yù)估模型 MIMN,根據(jù)風控場景特性對模型精簡后再遷移。模型輸入為帶有上下文信息行為序列,模型核心模塊有 MIU(Memory Induction Unit)和 NTM(Neural Turing Machine)兩部分,分別產(chǎn)出了記憶信息相關(guān)的 M (下圖綠色矩陣)和 S (下圖藍色矩陣) 記憶矩陣來存儲歷史行為序列信息。
模型結(jié)構(gòu)

技術(shù)架構(gòu)
如何進行序列增量更新?
記憶矩陣可理解為對用戶行為序列 Encoder 過程的中間產(chǎn)物并,且濃縮了目前為止用戶行為序列的所有信息。序列增量更新的過程為根據(jù) t 步產(chǎn)出的記憶矩陣 和 t+1 步的行為序列 更新得到 t+1 步記憶矩陣和 t+1 步用戶 Embdding,以此循環(huán)就可以得到表征歷史行為序列的用戶 Embdding。產(chǎn)出的用戶 Embedding 下游可用于分類和檢索。

下游分類任務(wù)
類 Session 行為分布特征 + 行為序列 Embedding 作為 tunalite 平臺 XGboost 算法的特征輸入,并且增量召回樣本特性為持續(xù)性作弊且沒有被短時行為序列模型召回。
下游黑庫檢索任務(wù)
行為相似的用戶的行為序列 Embedding 距離比較相近。檢索任務(wù)就是以黑種子為中心計算黑用戶行為 序列 Embedding 與其他用戶行為序列 Embedding 的索引距離,選擇近似 Top N 或者閾值范圍內(nèi)的用 戶作為黑樣本擴召。
































