京東基於 Spark 的風控系統架構實踐和技術細節

1. 背景

互聯網的迅速發展,爲電子商務興起提供了肥沃的土壤。2014 年,中國電子商務市場交易規模達到 13.4 萬億元,同比增長 31.4%。其中,B2B 電子商務市場交易額達到 10 萬億元,同比增長 21.9%。這一連串高速增長的數字背後,不法分子對互聯網資產的覬覦,針對電商行業的惡意行爲也愈演愈烈,這其中,最典型的就是黃牛搶單囤貨和商家惡意刷單。黃牛囤貨讓廣大正常用戶失去了商家給予的優惠讓利;而商家的刷單刷好評,不僅干擾了用戶的合理購物選擇,更是攪亂了整個市場秩序。

京東作爲國內電商的龍頭企業,在今天遭受着嚴酷的風險威脅。機器註冊賬號、惡意下單、黃牛搶購、商家刷單等等問題如果不被有效阻止,會給京東和消費者帶來難以估量的損失

互聯網行業中,通常使用風控系統抵禦這些惡意訪問。在技術層面上來講,風控領域已逐漸由傳統的“rule-base”(基於規則判斷)發展到今天的大數據爲基礎的實時 + 離線雙層識別。Hadoop,Spark 等大數據大集羣分佈式處理框架的不斷發展爲風控技術提供了有效的支撐。

2. 什麼是“天網”

在此背景下,京東風控部門打造“天網”系統,在經歷了多年沉澱後,“天網”目前已全面覆蓋京東商城數十個業務節點並有效支撐了京東集團旗下的京東到家及海外購風控相關業務,有效保證了用戶利益和京東的業務流程。

“天網“作爲京東風控的核心利器,目前搭建了風控專用的基於 spark 的圖計算平臺,主要分析維度主要包括:用戶畫像,用戶社交關係網絡,交易風險行爲特性模型。

其系統內部既包含了面向業務的交易訂單風控系統、爆品搶購風控系統、商家反刷單系統,在其身後還有存儲用戶風險信用信息及規則識別引擎的風險信用中心(RCS)系統,專注於打造用戶風險畫像的用戶風險評分等級系統。

下面,我們將從用戶可以直接感知的前端業務風控系統和後臺支撐系統兩部分對天網進行剖析:

3. 前端業務風控系統

1 交易訂單風控系統

交易訂單風控系統主要致力於控制下單環節的各種惡意行爲。該系統根據用戶註冊手機,收貨地址等基本信息結合當前下單行爲、歷史購買記錄等多種維度,對機器刷單、人工批量下單以及異常大額訂單等多種非正常訂單進行實時判別並實施攔截。

目前該系統針對圖書、日用百貨、3C 產品、服飾家居等不同類型的商品制定了不同的識別規則,經過多輪的迭代優化,識別準確率已超過 99%。對於系統無法精準判別的嫌疑訂單,系統會自動將他們推送到後臺風控運營團隊進行人工審覈,運營團隊將根據賬戶的歷史訂單信息並結合當前訂單,判定是否爲惡意訂單。從系統自動識別到背後人工識別輔助,能夠最大限度地保障訂單交易的真實有效性。

2 爆品搶購風控系統

在京東電商平臺,每天都會有定期推出的秒殺商品,這些商品多數來自一線品牌商家在京東平臺上進行產品首發或是爆品搶購,因此秒殺商品的價格會相對市場價格有很大的優惠力度。

但這同時也給黃牛帶來了巨大的利益誘惑,他們會採用批量機器註冊賬號,機器搶購軟件等多種形式來搶購秒殺商品,數量有限的秒殺商品往往在一瞬間被一搶而空,一般消費者卻很難享受到秒殺商品的實惠。針對這樣的業務場景,秒殺風控系統這把利劍也就順勢而出。

在實際的秒殺場景中,其特點是瞬間流量巨大。即便如此,“爆品搶購風控系統”這把利劍對這種高併發、高流量的機器搶購行爲顯示出無窮的威力。目前,京東的集羣運算能力能夠到達每分鐘上億次併發請求處理和毫秒級實時計算的識別引擎能力,在秒殺行爲中,可以阻攔 98% 以上的黃牛生成訂單,最大限度地爲正常用戶提供公平的搶購機會。

3 商家反刷單系統

隨着電商行業的不斷髮展,很多不軌商家嘗試採用刷單、刷評價的方式來提升自己的搜索排名進而提高自家的商品銷量。隨着第三方賣家平臺在京東的引入,一些商家也試圖鑽這個空子,我們對此類行爲提出了 “零容忍”原則,爲了達到這個目標,商家反刷單系統也就應運而生。

商家反刷單系統利用京東自建的大數據平臺,從訂單、商品、用戶、物流等多個維度進行分析,分別計算每個維度下面的不同特徵值。通過發現商品的歷史價格和訂單實際價格的差異、商品 SKU 銷量異常、物流配送異常、評價異常、用戶購買品類異常等上百個特性, 結合貝葉斯學習、數據挖掘、神經網絡等多種智能算法進行精準定位。

而被系統識別到的疑似刷單行爲,系統會通過後臺離線算法,結合訂單和用戶的信息調用存儲在大數據集市中的數據進行離線的深度挖掘和計算,繼續進行識別,讓其無所遁形。而對於這些被識別到的刷單行爲,商家反刷單系統將直接把關聯商家信息告知運營方做出嚴厲懲罰,以保證消費者良好的用戶體驗。

前端業務系統發展到今天,已經基本覆蓋了交易環節的全流程,從各個維度打擊各種侵害消費者利益的惡意行爲。

4. 後臺支撐系統

天網作爲京東的風控系統,每天都在應對不同特性的風險場景。它可能是每分鐘數千萬的惡意秒殺請求,也可能是遍佈全球的黃牛新的刷單手段。天網是如何通過底層系統建設來解決這一個又一個的難題的呢?讓我們來看一看天網的兩大核心繫統:風險信用服務 (RCS) 和風控數據支撐系統(RDSS)。

1 風險信用服務

風險信用服務(RCS)是埋藏在各個業務系統下的風控核心引擎,它既支持動態規則引擎的高效在線識別,又是打通沉澱數據和業務系統的橋樑。它是風控數據層對外提供服務的唯一途徑,重要程度和性能壓力不言而喻。

1.1 RCS 的服務框架

RCS 作爲天網對外提供風控服務的唯一出口,其調用方式依賴於京東自主研發的服務架構框架 JSF,它幫助 RCS 在分佈式架構下提供了高效 RPC 調用、高可用的註冊中心和完備的容災特性,同時支持黑白名單、負載均衡、Provider 動態分組、動態切換調用分組等服務治理功能。

面對每分鐘千萬級別的調用量,RCS 結合 JSF 的負載均衡、動態分組等功能,依據業務特性部署多個分佈式集羣,按分組提供服務。每個分組都做了跨機房部署,最大程度保障系統的高可用性

1.2 RCS 動態規則引擎的識別原理

RCS 內部實現了一套自主研發的規則動態配置和解析的引擎,用戶可以實時提交或者修改在線識別模型。當實時請求過來時,系統會將實時請求的數據依據模型裏的核心特性按時間分片在一個高性能中間件中進行高性能統計,一旦模型中特性統計超過閥值時,前端風控系統將立刻進行攔截。

而前面我們所說的高性能中間件系統就是 JIMDB,它同樣是自主研發的,主要功能是基於 Redis 的分佈式緩存與高速 Key/Value 存儲服務,採用“Pre-Sharding”技術,將緩存數據分攤到多個分片(每個分片上具有相同的構成,比如:都是一主一從兩個節點)上,從而可以創建出大容量的緩存。支持讀寫分離、雙寫等 I/O 策略,支持動態擴容,還支持異步複製。在 RCS 的在線識別過程中起到了至關重要的作用

1.3 RCS 的數據流轉步驟

風險庫是 RCS 的核心組件,其中保存有各種維度的基礎數據,下圖是整個服務體系中的基本數據流轉示意圖:

1) 各個前端業務風控系統針對各個業務場景進行風險識別,其結果數據將回流至風險庫用戶後續離線分析及風險值判定。

2) 風險庫針對業務風控識別進過數據進行清洗,人工驗證,定義並抽取風控指標數據,經過此道工序風險庫的元數據可以做到基本可用。

3) 後臺數據挖掘工具對各來源數據,依據算法對各類數據進行權重計算,計算結果將用於後續的風險值計算。

4) 風險信用服務一旦接收到風險值查詢調用,將通過在 JIMDB 緩存雲中實時讀取用戶的風控指標數據,結合權重配置,使用歐式距離計算得出風險等級值,爲各業務風控系統提供實時服務。

1.4 RCS 的技術革新與規劃

進入 2015 年以後,RCS 系統面臨了巨大的挑戰。首先,隨着數據量的不斷增大,之前的處理框架已無法繼續滿足需求,與此同時不斷更新的惡意行爲手段對風控的要求也越來越高,這也就要求風控系統不斷增加針對性規則,這同樣帶來不不小的業務壓力。

面對這樣的挑戰,RCS 更加密切地加強了和京東大數據平臺的合作。在實時識別數據的存儲方面,面對每天十幾億的識別流水信息,引入了 Kafka+Presto 的組合。通過 Presto 對緩存在 Kafka 一週之內的識別數據進行實時查詢。超過 1 周的數據通過 ETL 寫入 Presto 的 HDFS,支持歷史查詢。在 RCS 識別維度提升方面,目前已經與京東用戶風險評分等級系統打通流程,目前已拿到超過 1 億的基於社交網絡維度計算的風險等級,用於風險信用識別。在風險等級的實時計算方面,已經逐步切換到大數據部基於 Strom 打造的流式計算計算平臺 JRC。

5. 風控數據支撐系統

風控數據支撐系統是圍繞着京東用戶風險評分等級系統搭建起來的一整套風控數據挖掘體系。

1RDSS 的核心架構

1) 數據層

如圖所示,數據層負責數據的抽取、清洗、預處理。目前 ETL 程序通過 JMQ、Kafka、數據集市、基礎信息接口、日誌接入了超過 500 個生產系統的業務數據,其中包括大量的非結構化數據。通過對數據的多樣性、依賴性、不穩定性進行處理,最終輸出完整的、一致性的風控指標數據,並通過數據接口提供給算法引擎層調用。這一層最關鍵的部分是在對風控指標數據的整理。指標數據質量的好壞直接關聯到系統的最終輸出結果。目前指標的整理主要從以下三個維度開展:

a) 基於用戶生命週期的指標數據整理

對於電商業務而言,一個普通用戶基本上都會存在以下幾種粘性狀態,從嘗試註冊,到嘗試購買;從被深度吸引,到逐漸理性消費。每一種狀態總是伴隨着一定的消費特徵,而這些特徵也將成爲我們捕獲用戶異常行爲的有利數據。

b) 基於用戶購買流程的風控指標數據整理

對於一般用戶而說,其購買習慣具有相當的共性,例如,通常都會對自己需求的商品進行搜索,對搜索結果中自己感興趣的品牌進行瀏覽比較,幾經反覆才最終做出購買決定。在真正購買之前還要找一下相關的優惠券,在支付過程中也會或多或少有些停頓。而對於黃牛來說,他們目標明確,登錄之後直奔主題,爽快支付,這些在瀏覽行爲上的差異也是我們尋找惡意用戶的有利數據。

c) 基於用戶社交網絡的風控指標數據整理

基於用戶社交網絡的指標數據是建立在當前風控領域的黑色產業鏈已經逐漸成體系的背景下的。往往那些不懷好意的用戶總會在某些特徵上有所聚集,這背後也就是一家家黃牛,刷單公司,通過這種方式可以實現一個抓出一串,個別找到同夥的效果。

2) 算法引擎層

算法引擎層集合了各種數據挖掘算法,在系統內被分門別類的封裝成各種常用的分類、聚類、關聯、推薦等算法集,提供給分析引擎層進行調用。

3) 分析引擎層

分析引擎層是風控數據分析師工作的主要平臺,數據分析師可以在分析引擎層依據業務設立項目,並且在平臺上開展數據挖掘全流程的工作,最終產出風控模型和識別規則。

4) 決策引擎層

決策引擎層負責模型和規則的管理,所有系統產出的模型及規則都集合在這裏進行統一管理更新。

5) 應用層

應用層主要涵蓋了決策引擎層產出模型和規則的應用場景,這裏最重要的就是風險信用服務 (RCS),其主要職能是對接底層數據,對外層業務風控系統提供風險識別服務。

而在模型和規則投入使用之前必須要經過我們另外一個重要的系統也就是風控數據分析平臺(FBI),因爲所有的模型和規則都先將在這個平臺中進行評估,其輸入就是所有規則和模型的產出數據,輸出就是評估結果,評估結果也將反饋到決策引擎層來進行下一步的規則,模型優化。

2RDSS 之用戶風險評分等級系統

京東用戶風險評分等級系統是天網數據挖掘體系孵化出的第一個數據項目。其主要目的在於將所有的京東用戶進行分級,明確哪些是忠實用戶,哪些又是需要重點關注的惡意用戶。其實現原理是依賴前面所描述的社交關係網絡去識別京東用戶的風險程度。而這種方式在整個數據領域來說都是屬於領先的。京東用戶風險評分等級系統一期已經產出 1 億數據,目前已經通過 RCS 系統對外提供服務。根據識別結果評估,識別忠實用戶較 RCS 風險庫增加 37%,識別的惡意用戶較 RCS 風險庫增加 10%。

目前,京東用戶風險評分等級系統已經實現:

1) 數據層基於社交網絡的維度產出 50 餘個風險指標。

2) 通過 PageRank、三角形計數、連通圖、社區發現等算法進行點、邊定義,並識別出數十萬個社區網絡。

3) 通過經典的加權網絡上的能量傳播思想,計算上億用戶的風險指數。

5. 結語

凡是過去,皆爲序曲,京東風控正在打造一套數據定義一切的超級風控計算框架。這套風控框架將統一風控模型管理 (數據模型,識別模型,規則引擎)、統一風控服務管理 (JRC,PRESTO,Streaming)、統一風控數據管理 (HDFS,HBASE,Kafka),並將橫跨雲計算、大數據、人工智能,針對瞬息萬變的電商交易風險智能調整風控策略實時處理。

關於作者

張帥,京東成都研究院高級研發工程師,畢業於西華大學,2012 年加入京東風控研發部,參與多個風控業務和數據核心系統的研發。

陳誠,京東成都研究院數據產品經理,四川大學碩士,參與多個風控天網系統和數據相關業務系統的研發。

孟勐,京東成都研究院高級經理,電子科技大學碩士,主要負責京東風控天網系統後臺和數據處理、數據挖掘、決策支持等相關業務系統研發。  

轉自:https://www.infoq.cn/article/jingdong-risk-control-system-architecture-based-on-spark

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章