做爲大衆熟知的電商應用,京東是如何構建堅挺的風控體系架構?如何優化數據的計算和存儲?如何基於設備作智能識別的?本文由京東技術專家王美青對以上問題進行解讀。web
風控技術架構算法
上圖是風控技術架構圖,包括安全模塊、風險決策平臺、風險數據洞察模塊、風險運營平臺。其中,安全模塊跟用戶的接觸是最緊密的,其包含設備指紋、移動端加固、設備證書、虛擬機識別以及代理檢測。瀏覽器
風險決策平臺根據場景進行管控和實時決策,同時支持策略計算和模型計算。指標庫中囊括了全部的指標、策略、模型數據。下層是實時計算、流計算和圖計算。另外,風險決策平臺還包括機器學習訓練模塊和準實時模型訓練場。安全
風險數據洞察模塊對風險進行實時監控,統計分析,並造成報告。服務器
風險運營平臺相對來講是比較滯後的一個平臺,實時場景生成後,提供一個運營審覈的平臺;在案件處理平臺,經過人工介入爲線上模型提供真實案例;風險搜索平臺,提供成功交易以後的風險分析詳情。微信
風險管控方案架構架構
風險管控包括三個方面:事前準備、事中處理、過後打擊。框架
一、事前準備機器學習
蒐集設備端的環境信息,包括指紋、行爲序列和業務上的事件通知,不包含用戶的敏感信息。異步
二、事中處理
實時決策引擎部署了不少策略和模型,經過實時分析、實時計算、圖計算進行處理。
三、過後打擊
發現風險後對案件進行還原,此時會介入人工審覈,通過比對歷史案件、分析行爲特徵等,確認後再回流到數據集市中。下層是一些計算工具,設置了幾層向上的數據推送,包括T加一個月、T加一週、T加一天。
數據處理架構--Lambda架構
上圖是數據處理架構Lambda,在輸入數據後,數據流一部分進入不變數據倉,通過批處理進入存儲視圖中,供對外的查詢服務使用。另外一部分進行實時計算,計算完後數據便廢棄了。
數據計算架構
公司內部大多使用JMQ消息模式,將JMQ 消息集中收集後分發,經過Kafka進入計算平臺,使用JSTORM進入存儲,分別存入Hbase和Cache。其中供線上毫秒級響應時所作的存儲所有放入Cache中。
實時計算框架
一、特色
二、Flink應用
使用多個流相互連接,這些流都不是同時的,但他們互相間有線索,能夠將多個流串聯起來。
數據可靠性保障
如上圖中的數據集,數據集包含三個數據中心。將每一份數據分別在多個機房進行存儲,而後將每一組機器劃分到一個機房。當某個機房出現問題後,可獲取到DataSet。
數據治理方案
一、原始數據層
原始數據層數據是未經加工、雜亂無章的。
二、數據原子化層
經過數據加工將數據分門別類,例如分爲賬戶級別、交易級別、訂單,使數據原子化。
三、數據的抽象層
將原子層的數據拼裝,爲數據建模準備。
四、數據模型層
將數據抽象層概括好的數據,再抽象出一層,供業務場景使用。
*數據縱向層級越高,數據的複用度就越大,橫向越多,覆蓋度就越高
移動安全及應用
在安全鏈路方面集成FIDO協議,鏈路安全由軟實現和FIDO共同支撐。FIDO包括:指紋、免密、人臉和一些數據的採集。採集的數據並不是用戶敏感數據,而是用戶使用手機時在傳感器方面的表現。
流程步驟
用戶使用時首先有一個簽約認證的Server。第二步是,證書服務,生成一個證書;第三步是Key工廠,在其中緩衝了不少序列,能夠直接拿到公鑰、私鑰,而後經過指紋免密Server作認證。
風控指紋設備
如圖經過SSL實現CDN與客戶端的交互做爲前提,將客戶端收集的瀏覽器環境軟信息放到Fingerprint Server中,並將全部蒐集過來的設備數據在後臺進行設備畫像的製做。
怎樣進行人機識別?
一、基於設備的智能識別
經過設備狀態識別:設備狀態的運動包含幾個維度,不一樣的運動在傳感器和陀螺儀的表現是不同,經過設備運動狀態能夠進行人機識別。
經過充放電識別:機器和普通用戶在使用設備時的充放電狀態是不同的,普通用戶的手機不會一直處於充電狀態中。
經過借貸軟件識別:通過用戶受權,獲取用戶使用的借款軟件相關數據。
經過這幾個識別指徵,輸出識別安全指數評測,可經過後臺或服務器檢測出使用設備的信息。
二、經過生物識別
用戶進行同一操做時的使用習慣也是不同的,經過傳感器和陀螺儀的感應數據,能夠判斷使用設備的是不是本人。
智能化風控建設
無監督學習——社區發現
如圖肯定IP、手機號、地址、座標、設備、wifi等多維權重計算;經過多維計算出「度」—[0-1],經過模型肯定閾值;A-B達到閾值即產生邊,頂點是帳戶。
社區發現對團伙做案、突發事件、潛在風險都可以有效識別。
機器學習平臺
機器學習平臺包括指標自動加工平臺、模型智能訓練平臺、模型智能評估平臺、模型管理運行平臺。經過四大平臺的協做,能有效地提升數據處理的效率、下降複雜度、增長產出,有利於統一進行管理。
指標自動加工平臺:經過指標自動加工平臺,實現對線上數據、線下數據的統一管理。
模型智能訓練平臺:實現模型的並行化訓練,配置化訓練。
模型智能評估平臺:實現對樣本數據的實時加工,配置化管理。
模型管理運行平臺:實現對模型的生命週期管理,支持Python、Spark-MLIB、SCIKIT-learn、Tensorflow等算法庫
數據遷移特徵
支持斷點續傳、流量的調節、多數據源、容災、彈性、多活。
分佈調度中心
一、Job生命週期
Job生命週期包括:Open—Load——Lock——Execute——Finish——End——Reset。
Open:每次調度被觸發都生成惟一的一次做業,在調度方保存該做業的每一個狀態並更新至ZK。進行事件通知。
Execute:執行任務是異步化的。open階段和lock階段都是同步執行,lock和Execute都是在集羣上完成分片。
Finish:本次做業完成後等待下次調度被觸發,生命週期從新開始。進行事件本地通知。
二、核心角色
借鑑JT的思路,由Master將這些任務分配到不一樣的JT中去。
三、通信實現
四、內部設計
機器學習平臺
在數據層中,實時數據和批量處理數據進行指標配置後,經過數據處理框架進入到向量庫中,而後進入到向量集中,經過WOE統一轉化將數據所有放入到模型計算引擎中,最後經過決策引擎直接產生結果。
計算機視覺——人臉識別
人臉檢測
基於深度學習算法模型,模型能準確檢測人臉,精肯定位人臉框,而且準確標記人臉輪廓、眼、口、鼻、眉毛等關鍵點。
活體檢測
動做活體經過脣語、搖頭、眨眼等動做識別活體;靜默活體基於人臉特徵、雙目立體視覺等方式實現活體檢測。
人臉比對
基於深度學習算法模型,經過提取人臉特徵,計算兩張人臉類似度,從而判斷是否同一我的,並給出類似度評分。
人臉檢索
基於深度學習算法模型,算法模型對給定的一張照片,與指定人臉庫中的N我的臉進行檢索,找出最類似的一張臉或多張人臉,即1:N人臉檢索。
人臉防僞
有效防止照片、仿生臉、視頻等攻擊行爲,而且對複雜背景的攻擊和真人能進行有效識別,實現安全可靠的人臉識別應用。
本文根據安卓綠色聯盟講師王美青在技術沙龍上的分享整理而成。首發於安卓綠色聯盟微信公衆號。