基於 Flink 的超大規模在線實時反欺詐系統的建設與實踐

在大數據時代,金融科技公司通常藉助消費數據來綜合評估用戶的信用和還款能力。這個過程中,某些中介機構會蒐集大量的號並進行“養號”工作,即在一年週期裏讓這些號形成正常的消費、通訊記錄,目的是將這些號“培養”得非常健康,然後賣給有欺詐意向的用戶。這類用戶通過網上信息提交審覈,騙到貸款後就“銷聲匿跡”了。

那麼,如何更快速地預防或甄別可能的欺詐行爲?如何從超大規模、高併發、多維度的數據中實現在線實時反欺詐?這些都是金融科技公司當下面臨的主要難題。針對這一問題,玖富集團打造基於 Flink 的超大規模在線實時反欺詐系統,快速處理海量數據並實現良好的用戶體驗。

 

在線實時反欺詐的難點和痛點

 

常見的金融欺詐場景有三類:一是材料僞造。這是早年需要提交紙質材料時期常見的欺詐;二是“養號”,常見於中介機構,通過收取服務費來維護大量號的健康狀態,賣給有欺詐意向的用戶進行貸款申請;三是來自於專業黑客的威脅,他們通過尋找系統、流程的漏洞等方式,對賬號安全構成攻擊。

 

金融科技因其虛擬性特徵,主要風險集中在兩方面:一是欺詐風險,二是信用風險,因此核心的風險評估流程就是反欺詐和信用評估。對於反欺詐而言,信息覈實、高危人羣攔截和實時計算、識別、決策是其核心風控手段。而對於信用風險的評估,需要內外兼修。

 

玖富集團對用戶的信用評級主要由玖富集團自主研發的火眼評分 - 彩虹評級系統動態評估用戶信用情況,覆蓋玖富集團 C 端全線借貸服務,自上線以來表現穩定,區分效果明顯。外部也參考了騰訊、阿里等評分作爲參考。

 

目前,在線實時反欺詐會面臨各類痛點,在玖富集團業務場景中,主要痛點集中在以下三方面:

 

  • 一是低延時要求。越是大量數據需要計算,所需時間越長。在網貸盛行的年代,經常流傳的一句口號是“三分鐘授信,一分鐘放款”,甚至有的公司打出“一分鐘授信,半分鐘放款”。但是在大數據場景中,數據分析與處理對低延時的需求越來越高。

  • 二是超大規模實時計算要求。大數據場景中,需要對大規模數據做到實時計算,玖富集團內部代號爲“伏羲”的 Flink 計算平臺每天要在接近 510TB 的數據集上做快速的檢索和計算,用戶的行爲改變會導致數據發生變化,進而影響決策。因此對超大規模數據的實時計算需求越來越高,確保用戶在出現欺詐行爲時能夠及時中止交易。

  • 三是多維度、高併發要求。隨着同一業務場景下用戶規模的擴增,用戶產生的數據也形成爆發性增長。在金融場景下,亟需一套完整系統可以實現按照數據各個維度分析得出風險評估報告,根據用戶特性挖掘用戶潛在需求等;系統獲取用戶產生數據最簡單有效的方法就是流水式數據,單個數據包裏包含了發生時間點的各個維度的所有信息量,這種場景的特性之一就是數據高併發,因此對時效要求比較高的數據分析來說是一個非常巨大的挑戰。

 

針對目前在線實時反欺詐的痛點,玖富集團採用基於 Flink 的超大規模在線實時反欺詐系統,在提升用戶體驗的同時,也降低了商業損失。

 

基於 Flink 的超大規模在線實時反欺詐系統

 

1、爲什麼選擇 Flink?

 

Flink 開源項目是近一兩年大數據處理領域冉冉升起的一顆新星。雖然是後起之秀,但在國內許多大型互聯網企業的工程實踐中均有被應用,如阿里、美團、京東等。那麼,在玖富的大數據技術體系迭代中,爲何會選用 Flink 這套流數據處理引擎呢? 

 

■ 從技術語言角度:

 

Spark 的技術語言主要是 JAVA 和 Scala,尤其是對 Scala 語言有一定要求。而 Flink 主要是基於 JAVA,編程語言更成熟,通用度更高,修改代碼也更容易。所以從語言層面綜合來看,Flink 相對較好。

 

Spark、Storm、Flink 技術選型對比

 

■ 從時延和吞吐量的角度:

 

Flink 是純粹的流式設計,流式大數據技術的計算是邏輯先行,即先定義計算邏輯,當數據流過時,實時計算並保留計算結果;當需要使用數據時,直接調用計算結果即可,無需再次計算。流式大數據技術可廣泛應用於對數據處理時效性要求較高的場景,如實時交易反欺詐。

 

Flink 的時延和吞吐量方面的性能表現較好,能滿足玖富集團對超大規模數據流在線實時計算的要求。相比之下,Spark 主要是小批量處理模式,無法滿足反欺詐系統實時處理大規模、多維度、高併發的數據流的要求。Storm 雖然是基於流處理,但與 Flink 的性能數據相比,Flink 吞吐量約爲 Storm 的 3~5 倍,Flink 在滿吞吐時的延遲約爲 Storm 的一半。綜合來看,Flink 框架本身性能優於 Storm。

 

■ 從與現有生態體系結合的角度:

 

Flink 與超大型計算和存儲(HBase)的結合比 Spark 和 Storm 要好很多,同時接口也更友好。HBase 是整個系統預查功能的緩存基礎,預查功能是降低系統 p99 延遲最重要的技術優化。

 

總的來說,Flink 是一個設計良好的框架,它不但功能強大,而且性能出色。此外它還有一些比較好的設計,比如良好的內存管理和流控。但是,由於 Flink 目前成熟度較低,還存在不少問題,比如 SQL 支持比較初級,無法像 Storm 一樣在不停止任務的情況下動態調整資源;不能像 Spark 一樣提供很好的 Streaming 和 Static Data 的交互操作等。

 

2、超大規模在線實時反欺詐系統架構

 

線上信貸的基本流程是:由用戶通過 App 發起需求,App 會要求用戶填寫與授權相關的信息,主要目的是評估用戶的信用額度。之後用戶數據會進入後臺數據系統進行反欺詐和信用的評估,審覈通過,用戶會收到信息,賬戶額度開通。

 

基於 Flink 的超大規模在線實時反欺詐系統架構

 

玖富基於 Flink 的超大規模在線實時反欺詐系統的架構分爲兩部分:數據部分和決策部分。整個系統的運作相當於一個工作流,用戶的數據信息以流的形式由一個節點傳到下一個節點,在流轉過程中會產生大量的決策信息,根據條件做出篩選和判斷,並把判斷結果快速推行到下一個節點,從而實時判斷用戶的數據情況,進而決定是否放款給用戶。

 

數據部分需要最快速度的加工處理,整個數據處理由四部分完成。

 

第一部分是把數據從前端最快速地傳遞到後端。基於 Flink 的超大規模在線實時反欺詐系統首先要把數據通路加寬,允許更多信息同時涌入數據處理中。

 

第二部分是大型的列式存儲集羣,主要由 HBase 實現。HBase 是運行在 Hadoop 上的 NoSQL 數據庫,它是一個分佈式和可擴展的大數據倉庫,能夠利用 HDFS 的分佈式處理模式,並從 Hadoop 的 MapReduce 程序模型中獲益,最關鍵的是可以提供高併發讀寫操作的支持。HBase 是整個架構最基礎的保障,當大量數據涌入時能實現快速存儲,降低寫入和讀取數據過程對系統架構的過度依賴。

 

HBase 裏有大量的索引,如一級索引、二級索引等,對 HBase 的讀寫緩存進行定製化改造,保證預查功能的實現。通過 App 或其他渠道獲取用戶的行爲數據信息,進而推測用戶的意願,然後系統開始做預查詢,把用戶的相關信息放到緩存裏,這樣當用戶在前端觸發操作時,後端直接從緩存裏調用數據開展計算,極大地提升了數據處理速度。在 HBase 緩存裏,基本能夠實現 99% 的數據信息被命中,這依賴於系統強大的用戶感知能力。

 

第三部分就是計算引擎,主要由 Flink 完成。計算引擎分爲兩部分,一個是過濾引擎,主要是在大規模、高併發數據流中對用戶信息做不同維度的定製化過濾,目的是降低整個數據計算的量級。另一個是函數引擎,通過高度抽象的方法,定製化一些性能非常好的函數,並把這些函數加載到引擎中去,可以避免開發人員自行修改代碼。過濾引擎和函數引擎的結合,使整個用戶的數據量級大幅降低,再結合一些高效的代碼,進一步降低延遲。

 

Flink 的核心是基於流執行引擎,Flink 提供了諸多更高抽象層的 API 以方便用戶編寫分佈式任務,常用的三類 API 如下:

 

  • DataSet API,對靜態數據進行批處理操作,將靜態數據抽象成分佈式的數據集,用戶可以方便的採用 Flink 提供的各種操作符對分佈式數據集進行各種操作。

  • DataStream API,對數據流進行流處理操作,將流式的數據抽象成分佈式的數據流,用戶可以方便的採用 Flink 提供的各種操作符對分佈式數據流進行各種操作。

  • Table API,對結構化數據進行查詢操作,將結構化數據抽象成關係表,並通過 Flink 提供的類 SQL 的 DSL 對關係表進行各種查詢操作。

 

玖富根據自身業務特點,需要對超大規模在線實時數據流進行快速處理,因此採用 DataStream API,追求更低的延遲。

 

第四部分是算力。算力依賴於 Hadoop 集羣,通過 YARN 實現對整個資源的管理,橫向來說具有很好的可擴展性。YARN 的基本思想是將資源管理和作業調度 / 監控的功能分解爲單獨的守護進程,包括兩個部分,一個是全局的資源調度(RM),另一個是針對每個應用程序的調度(AM)。YARN 使得 Hadoop 不再侷限於僅支持 MapReduce 一種計算模型,而是可無限融入多種計算框架,且對這些框架進行統一管理和調度。

 

YARN 架構

 

3.系統架構迭代

 

基於 Flink 的超大規模在線實時反欺詐系統,在玖富集團內部經歷過一次比較重大的架構迭代。玖富集團最初是以 1s 內快速得出風控結果爲目標,但是用戶體驗不夠快,於是整個系統進行了一次技術升級,增加了預查技術。預查技術包括檢索和計算兩部分,其核心依賴於 Flink 強大的併發能力。在大量數據中做快速預查,利用 Flink 併發能力進行數據覆蓋,最後在緩存裏命中結果,從而不必重新進行網絡 I/O 查詢、等待返回的過程。經過部分計算框架升級,最終系統實現了 p99 延遲由 1s 降爲 100ms 的優化。

 

4.AI 技術的應用

 

在大數據時代,數據的質量直接影響大數據分析處理方法的效果,也影響決策過程。通過分析海量數據,可以從中發現數據集中隱含的模式和規律。但異常數據會對分析過程產生重大幹擾。在基於 Flink 的超大規模在線實時反欺詐系統中,利用機器學習進行異常點檢測。異常點檢測(又稱離羣點檢測)是找出其行爲不同於預期對象的一個檢測過程。這些對象被稱爲異常點或者離羣點。在大數據中的異常數據存在如下特點:與正常數據的表現有明顯的差異;其產生機制與正常數據不同,可能爲未知方式;數據維度較高。異常點檢測在信用卡欺詐檢測中應用較多,當用戶數量非常多時,其中一些低信用值的用戶需要被識別出來,利用機器學習進行異常值檢測,把信用值低的用戶篩選出來,再進行人工確認。

 

在基於 Flink 的超大規模在線實時反欺詐系統中也應用了 AI 知識圖譜技術。社會是由大大小小的羣體組成,同理用戶也有這樣的羣體特點,用數據來構建這些羣體的關係,通過圖的分割與檢索這兩大類算法深入挖掘數據價值。在實際應用中,如果一個用戶的信用非常差,已經被列入黑名單,那麼與他有關係的用戶都需要重點排查。根據用戶的行爲將用戶進行分類,即聚類。各式各樣的聚類算法很多,然後根據用戶的信息進行圖的分割,確定每個人的風險係數,也可以通過一些手段打通優質圈層的通路,引導優質圈層進行信息交互。

 

未來規劃

 

對於該套在線實時反欺詐系統的未來規劃,玖富第一步會針對 Flink 技術本身,結合玖富在技術、場景等方面的積累,把基於 Flink 的超大規模在線實時反欺詐系統打造成一款數據產品,使其具備向外輸出數據資產和數據處理的能力。

 

其次,玖富技術團隊也會持續投入人力在系統的功能優化上,並把它做成一個開源的產品推向社區,讓更多開發人員可以直接使用這個系統。

 

最後,通過技術的優化進一步提升整個系統的性能,目前該系統的 p99 延遲是 100ms,未來玖富的下一項目標是實現 p99 延遲是 50ms。

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