業務需求挖掘
任何項目的起源,都是從需求挖掘開始的,不可能一蹴而就,會經過多次循環。這體現了作爲數據分析師和建模人員的功力,可能有的業務要 A,你就給他A,而沒有往下深入幾個層次進行考慮,因爲有的時候,可能業務的需求自己也沒有想清楚需要的是什麼,這和傳統的軟件工程是一樣的,所以寧可在這裏多花一點時間,也好過到後面踩坑之後,在回來重新挖掘需求。
① 目標
- 找出關鍵變量(與判斷項目成功與否的指標相關,最好的方法就是定義幾個場景,比如做風控,是壞賬率下降,還是機注量下降了,或者其他指標),並把關鍵變量作爲模型目標
- 識別業務已經使用或者需要獲取的數據源
② 實現方法
- 定義目標,與用戶以及其他利益相關方一起理解,識別業務問題,並構建多個問題(這些問題要能定義出業務目標同時也能作爲建模的目標)
- 識別數據源:基於問題找出能幫助回答的數據源,越多越好
③ 交付物
- 項目需求文檔(比如 A、B、C 三個場景,機注量下降2%,或者壞賬率下降1%等等)
- 數據源梳理,有幾張寬表,有幾個數據源,都需要弄清楚
④ 業務方的訴求與抱怨
業務方的訴求與抱怨,抽象來說就是多、快、準、省:
-
多:在風控反欺詐領域,對於抓黑產,召回率越高越好。
-
快:實時反應,不能等到 T+1 時間過去了才反應,比如拼多多的風控事件,不僅僅需要做到實時,最好做到事前,並且可以發出告警,提示哪個環節被攻擊。
-
準:準確率(auc,roc 曲線)大家都比較熟悉,尤其對於金融風控,準確率要求更高。
-
省:省心,傻瓜式操作,不需要告訴具體指標的含義。對於模型,只需提供給業務方0或1即可。
所以,對於業務的訴求和抱怨,就在這四個字之中,當我們接到羣體風險感知這個 Case 時,我們首先需要做的就是:定義羣體風險感知(爲什麼叫羣體而不叫團伙?),明確業務場景,找出業務痛點。
兩個場景:
- 一堆人來買我的貨,我不會認爲他們是壞的人;
- iphone 新品首發,黃牛帶貨,對我的品牌或者收益造成損失,這時,我們需要進行控制打壓。
所以我們交付的東西,需要是中性的,把模型看作一把刀,具體刀用來做什麼,由業務來決定。
⑤ 需求分析
風險未知可能出現的狀態:
- 少量交易造成巨大損失(例如:網絡輿情事件,詐騙,網絡攻擊等)
- 大量交易造成巨大損失(例如:拼多多事件,上萬個賬號薅優惠券,然後快速的變現)
黑灰產的主要特徵:
- 逐利性(不斷升級,不斷尋找漏洞):由於他們是在爲自己牟利,沒有 kpi 沒有996,甚至一天可以更新迭代4個版本,他們自己乾的很起勁。
- 羣體性(短期,快速,大量獲利)目前成熟的電商,基本上不會讓一個賬號短時間內下很多單了,現在的黑產爲了達到短期快速大量獲利,一般使用羣控手機,即用軟件控制幾百臺手機,尤其在6·18和11·11時,給我們造成的壓力也是比較大的。
項目的定義:
以黑灰產羣體作爲特徵指標,發現交易鏈條上可能存在的漏洞增強防控能力,提高黑產成本(黑產本質上是生意,風控人員不是爲了消滅黑產,是爲了讓他們這門生意做不下去,明面上是技術的對抗,實際上是成本的對抗)。
⑥ 項目目標
監控指標體系與異常發現(輸出結果形式):
- 線索賬號的線索:某個特定羣體的行爲(觀察某個小白鼠在迷宮裏的行爲特徵)
- 羣體維度線索:多個羣體聚集情況(觀察一羣小白鼠在迷宮裏的羣體共同行爲)
監控指標體系與異常發現(輸出結果內容):
- 聚集性指標,靈活制定規則(告訴業務方,商品、庫存、優惠劵是不是被攻擊了)
- 提前發現風險點,預警後續環節(黑產領券之後,會不會有什麼大動作,需要提前預警)
- SKU,優惠券,訂單,相關賬號(我們有一個評分,一旦被羣體模型識別,就打一個黑標籤,讓風險值變高)
- 新的套利,作弊方式,交易漏洞(將黑產規律輸出給分析師,分析黑產的作弊方式以及交易環節的漏洞)
數據獲取與理解
數據獲取與理解,主要分四個部分:數據源(在哪分佈,可能需要做數據同步,也有可能需要買一些服務,定期做 API 的推送,需要把數據源定義清楚),數據管道(如何做清洗、加工,如何接入到模型中),開發環境(根據數據規模,選擇開發環境),數據整理、探索、清理:結構化、非結構化,數據驗證與清理,可視化等等。
① 目標
- 產出一個乾淨、高質量的數據集,充分的理解數據集和項目目標變量的關係
- 把數據集放置在一個適合開發環境以便進行後續建模
- 開發數據管道的解決方案,定期對數據進行刷新
② 實現方法
- 將數據導入目標分析環境
- 研究數據以確定數據質量是否足以回答項目要解決的問題(PS:前段時間比較火的生物探針技術,可以獲取一些黑灰產的特徵,但這項技術落地的時候,回收的數據缺失率很高,很難得到應用)
- 設置數據管道來抽取新的數據或者定期刷新數據
③ 交付物
- 數據質量報告
- 數據管道架構
- 可行性評估
④ Tity Data(with Pandas)
具體地址:http://pandas.pydata.org 包含了語法的介紹,重塑,聚合,缺失數據處理,窗口函數,可視化等等。
⑤ 數據維度
我們從靜態數據和動態行爲數據倆個角度來構建立體多維羣體行爲畫像:
- 靜態數據
- 註冊信息畫像:時間,設備,ip,渠道
- 登錄信息畫像:時間,設備,ip,版本
- 動態行爲數據
假設 A、B、C 三個賬號由同一個人控制,那麼每次有活動他們就一起來了,可知道他們是一夥的,如何把這三個人每次活動一起來這件事兒,通過數據來描述好加工出來,供後面的模型使用,這是我們當時研究的重點。
動態行爲數據包括:
- 瀏覽行爲畫像:時間,設備,ip,渠道(同靜態相同,但是是賬號之間的比較)
- 下單行爲畫像:商品信息,時間信息,設備,ip,地址,優惠券, 支付
- 領券行爲畫像:頻率,使用週期
建模
建模的三個主要模塊:
- 特徵工程:特徵處理,數值,文本,圖片,特徵選擇
- 模型訓練:參數調優,模型管理
- 模型評估:交叉驗證,模型報告,A/B 測試
① 目標
- 確定要輸入模型的數據特徵
- 選擇一個最能滿足項目要求的模型(如果這個項目以準確率爲最核心的 KPI,可能 A、B、C 三個模型都各有所長,有的效率高、有的速度快、有的召回率高,這時就需要按要求選擇)
- 模型參數調優,針對生產環境做優化(A/B TEST)
② 實現方法
- 特徵工程
- 模型選擇(分類、聚類、有監督、無監督、深度學習、強化學習)
- 模型訓練(如何調優)
- 評估模型在生產環境的適應性
③ 交付物
- 特徵集
- 模型報告
④ 算法模型路徑選擇
- Sklearn 算法選擇路徑圖(這是目前網上比較流行的模型選擇路徑,大家可以根據業務的具體需求來選擇模型);
- 微軟的模型選擇路徑:
⑤ 羣體風險識別建模
-
用戶類型:正常消費,新增疑似黃牛用戶,黃牛&衆包用戶
-
行爲軌跡:多種數據源,多種維度,尋找在時間,空間,行爲的聚集性
-
模型輸出:發現時間,空間,行爲上的聚集性
⑥ 靜態特徵識別
- 關係圖,聚類:Louvain,Fast Greedy,Markov Cluster,Info Map,Walktrap。
- 圖計算的社區發現(前人的一些經驗):
- 常用算法比較:
⑦ 動態特徵識別
這是我們歸結出來的數據底層形式,包括:時間,活動場景,下單賬號幾個維度。
羣體劃分(聚類問題):距離的選擇對聚類的結果影響巨大
部署
部署的時候需要考慮的兩個關鍵因素:評分和效果監控。
- 目標:把模型和配套的數據管道部署到生產環境
- 實現方法:推薦 api 接口形式部署模型
- 交付物:監控報表,模型說明文檔(輸出和部署細節),數據管道說明文檔
用戶應用
① 目標
- 完成項目交付
② 實現方法
- 驗證部署好的系統的功能性和準確率,滿足業務需求
- 所有文檔都要完成並進行審閱
- 項目交接工作可能是交給 IT 運維部分或者是用戶的數據團隊甚至可能是業務團隊
③ 交付物
- 項目交付報告
④ 業務應用架構:
用規則引擎(實時計算、多重規則、實時指標),模型引擎(模型管理、模型部署、模型運算),決策引擎(策略管理、策略可視化、策略路由)連接數據中心和用戶行爲。
⑤ 設計多層次風控場景策略
- 標準策略:標配,黑白名單,評分
- 定製策略:針對不同的經營週期動態調整策略
- 場景策略:針對渠道,行爲維度
- 彈性策略:場景策略和定製策略中增加彈性指標,用於業務變化,緊急升級和降級
作者介紹:
曾軍崴,京東集團智能風險感知實驗室架構師。北航博士,從事數據科學工作多年,有譯著《 python 基礎教程》。
本文來自 DataFun 社區
原文鏈接: