支付風控的數據倉庫建設

文 | 鳳凰牌老熊

這篇文章將重點介紹支持支付風控的數據倉庫建設。關於支付系統在風控上的具體需求,可參見文章支付風控場景分析。

支付系統的風控分析需要大量的數據支撐。本文從名單、畫像和圖譜三個層面,分析在支付系統建設的不同階段如何建立支持風控計算的數據倉庫,詳細介紹從什麼地方採集數據、如何採集數據、以及如何存儲這些數據。

支付風控系統在數據存儲設計上和其它業務不同的地方在於數據獲取與使用的流程。一般業務系統會先確定系統數據需求,再設計如何在業務流程中採集數據,以及數據的格式怎麼定義。而支付風控面臨的是一個無法預知的場景,需要在實踐中根據當前運行情況不斷調整。它會先把數據採集過來,之後才能從中發現可能存在的問題,並針對該問題制訂風控規則。也就是風控是先採集數據,再使用數據。那這就涉及到一個問題,支付系統應該採集哪些數據? 是否是數據越多越好?

風控分析不僅要看交易數據,還得研究所有相關聯的數據,這才能全面分析出來風險的根源,推斷出需要採取的措施。因而數據採集工作對風控系統建設和演化是非常重要的。本文分析風控所需要的數據,如何採集和存儲數據,建立支持風控的數據倉庫。

一、數據來源

一筆交易的風險等級的計算需要考慮到多個維度。未成年人購買高檔酒、促銷期間羊毛客刷單、在洗錢高發地區的商戶銷售的物品成交價格遠超實際價格。這些可疑交易的識別,僅依靠支付系統本身是無法完成的。用戶的年齡、商品特點(是否高檔酒)、是否促銷、羊毛號的識別等,需要從各業務系統,甚至公司外部收集和用戶、商品、商家、地區、手機號相關的數據,通過對這些數據進行分析,提取特徵,識別潛在的風險。

1.1 內部數據

風控幾乎需要收集所有相關係統的數據。

  • 用戶系統:採集用戶的靜態信息,姓名、性別、年齡等。風控系統不僅僅關注這些靜態信息,還需要重點關注用戶的行為信息,包括註冊、密碼修改、修改個人信息等操作,需要收集這些操作的時間、地點、設備等信息。 此外,用戶之間的關係,也是風控系統需要關注的數據。
  • 商戶系統:除了採集機構的基本信息,如成立時間、註冊時間、人員規模、營業額、銷售額、經營範圍、註冊地點等, 還需要考慮到該商戶關聯的用戶,包括法人代表、公司組織結構、主要員工信息等。
  • 商品系統:商品的靜態信息,包括類型、價格、上架時間、庫存等信息; 商品的瀏覽、放入購物車、購買、評論、退貨等用戶操作,包括這些操作的時間、地點、設備等信息。
  • 社交數據:包括評論、論壇、留言等。
  • 業務系統:如視頻系統中的觀影記錄、類型偏好、時間、地點、設備等信息。

當然,支付數據是風控最重要基礎數據。用戶在支付系統中涉及到的數據都需要收集整理來支持風控分析。包括但不限於:賬戶數據,訂單數據,交易數據、優惠券數據、賬務流水等。這些數據在支付資料庫中也存在,風控所需要的數據和業務數據略有不同,除了業務數據外,風控還關心如下數據:

  • 用戶當前上下文環境,包括用戶所用設備的類型、操作系統、IP地址、設備ID、所在地等,而這些數據往往並不是業務所關心的。而且記錄太多的上下文數據也影響性能。
  • 賬戶,訂單等操作實體的狀態。在業務資料庫中一般僅保留實體的最終狀態,比如賬戶是否已鎖定、訂單是否已支付等。 而風控需要關心這些狀態變更的時機,以及變更的時間間隔。例如,用戶頻繁更改交易密碼,超正常頻率提交訂單等,就不是一個正常的狀態。

這些數據一般可以從日誌中採集。

1.2 外部數據

對於大部分業務單一、用戶量不大的公司來說,其數據有限而且單一,需要使用外部數據來輔助完成風控計算。 常用的外部數據包括:

  • 公安部的實名認證數據,包括用戶姓名、身份證號信息;
  • 央行發布的各種名單,如洗錢區域,恐怖組織名單等。
  • 央行信用報告,這個查詢可是要真金白銀的。
  • 微博數據,一個人經常了解如何養卡,套現等內容並不是太好的事情。
  • 工商局提供的公司信息。
  • 招聘網站上的公司招聘信息。公司一直有招聘說明業務還不錯。
  • 芝麻信用,這個需要申請。

二、採集方式

一般來說,風控的非實時數據採集,不能直接從線上的資料庫中讀取,這會把資料庫打死。主要的數據採集方式有從庫採集,日誌採集和pingback三種方式。

2.1 資料庫從庫

主流資料庫,如Hbase,Mysql都提供同步數據進從庫的功能,讀取從庫不會影響主庫操作。但如上所述,採用從庫有如下問題:

  • 分析所需數據和業務數據不同,還需要從其他途徑補充數據。
  • 將風控所需數據和業務數據緊耦合起來了。一旦業務有變更,風控系統也需要調整。

2.2 日誌

這是風控數據採集的主要方式。 業務方可以將風控所需要的數據輸出到日誌中,風控系統對接日誌來非同步採集數據。這使得數據採集不會影響業務處理主流程。 這種方式風險在於:

  • 需要規範日誌的格式,否則每個系統一套日誌格式,會導致對接工作量巨大。
  • 保持日誌的穩定性。一旦代碼被修改,列印日誌的代碼被刪除了,會導致日誌數據無法採集的風險。
  • 需要注意日誌採集系統的可靠性。目前主流的採集框架都有可能會丟失日誌。雖然從我們使用的情況來還未發生這種事情,但不排除這個風險。

從技術上來說,日誌採集的框架主要框架有

  • ELK(Elastic + Logstash + Kibana), Logstash 駐留在日誌輸出端採集日誌,並發送到Elastic 伺服器上。 Kibana則是一個日誌分析的工具;
  • Flume + Kafka + Elastic 。 通過Flume進行採集,輸出到Kafka,匯總到Elastic進行存儲。日誌分析可以在Elastic上離線非實時進行,也可以直接對接Kafka准實時分析,即流處理。 使用Storm 或者Spark都可以。

2.3 pingback

Pingback指在頁面上埋入腳本來監測用戶的操作,特別是點擊操作和鍵盤操作,將檢測到的用戶行為非同步發送到伺服器端。這可以偵測到用戶在頁面停留時間,滑鼠點擊的區域等信息,由此可以推斷用戶偏好,情緒等信息。 pingback的挑戰在於如何在伺服器端應對流量洪峰。pingback數據一般不直接入庫,可以先寫入Kafka,風控系統對接Kafka來分析pingback數據。

三、數據特徵

用於支持風控計算的最終數據,在靜態與動態數據為基礎計算出來的帶置信度的推算數據為主的離散數據,有點繞口,我們詳細分析下這裡涉及到的幾個概念,來說明最終用來支持風控計算的數據有什麼特徵。

3.1 靜態數據與動態數據

上述採集到的數據,大部分是靜態數據。也就是這些數據一旦產生,一般不會被修改。但在分析時,還需要一些易變的動態數據來,比如用戶的 年齡,每天的訪問量,每天消費金額等。

3.2 原始數據與推算數據

不管靜態還是動態數據,他們都是從用戶輸入或者系統採集的方式產生。但我們知道,互聯網的數據可靠性是有問題的。網上千嬌百媚的姑娘,在現實中可能是一位摳腳大漢。雖然系統中設計了複雜的表格來收集用戶信息,但會提供全部信息的用戶還是很少,大家對隱私內容還是捂得很緊。所以,在進行風險計算前,還需要對數據進行驗證和補充。這都需要藉助其他數據來進行推算,這些數據被稱為推算數據。推算數據和原始數據不同之處在於它會有多個可能取值,每個值都帶有置信度。完全可信為100%,不可信為0。置信度總和為1。比如正常情況下,用戶的性別要麼男,要麼女。假如有個用戶註冊時選擇性別女,但經常買刮鬍刀,襯衣,沒有買過女性用品,那實際性別為男的置信度就非常高。

3.3 離散數據與連續數據

這是從屬性值的取值範圍來評估。比如用戶每天的訂單額,一般來說是連續分布的。而性別,職業,愛好等,是離散值。一般來說,離散值更容易做分析處理,刻畫特徵,所以在分析前,需要對連續數值做離散化處理。

四、名單數據

名單數據是支付風控數據倉庫中最重要的內容。 風控系統數據倉庫建設,也一般都從名單數據開始。 名單加上簡單的攔截規則,已經可以解決絕大部分風控的問題。就算在更先進的風控系統中,名單仍然是風控中的基礎數據。在評估事件風險時,名單往往是用來執行第一道攔截時所用的數據。比如用戶交易時使用的手機是黑名單中的手機,則必須終止本次交易。

4.1 黑白灰名單

大家都熟知黑名單與白名單,一個是必須阻止,一個是必須放行。 除此之外,還有灰名單。灰名單用於對一些高風險的用戶進行監控。 這些用戶的行為不是直接阻止,而是延遲交易,經人工確認無問題後再放行。

4.2 更新周期

相對其它數據來說,名單數據的更新頻率不高,按天、周、月更新都有,很少有需要實時更新的內容。對於手機號,證件號等名單,一般可以採取人工更新的策略。每天評估風控數據,對確認有問題的號碼,加入到黑名單中。如果採用的是第三方名單,則需要按照第三方的要求對名單做更新。

4.3 名單列表

一般來說,風控系統需要配置的名單列表有:

個人名單,如下名單是必備的(後續會及時更新),央行的反洗錢恐怖分子名單;公安部的通緝犯名單;全國法院失信被執行人名單信息公布與查詢

IP名單,沒有權威的IP名單。這需要在運行中積累。建立IP名單需要注意如下事項:公司內部IP,合作夥伴IP可以列入白名單列表;手機運營商的IP也要做到白名單中,封一個IP等於封掉一大批手機號;代理伺服器可以列入灰名單;訪問量大的IP也可能大公司的外網IP,不能僅依賴訪問量來識別黑IP。

公司名單,必備名單包括央行反洗錢制裁公司名單和工商局失信企業名單

手機號名單,這也沒有權威數據,電信運營商也不會提供此類服務。支付寶正在推廣這個服務,但還沒有公開。黑名單數據需要自主收集。

地域名單,央行公布的聯合國反洗錢地區名單是必須在風控時考慮的名單,其他地域名單也需要自主收集。

協查名單, 公檢法協查名單,接收到協查請求後,將人員全部信息拉黑。

4.4 名單數據存儲

名單數據在使用上的特點:

  • 使用頻率高,實時性要求高。各種名單匹配基本都需要在線上做實時計算。
  • 數據粒度小,總量大小不一,但存儲空間需求都不高。大部分名單都是一些號碼錶,幾個G的空間都能存儲。
  • 更新頻率低。名單數據一般都比較穩定,按天更新

在使用中,名單數據一般直接存儲在內存中,或者使用內存資料庫(Redis,Couchbase)。關係型資料庫可以用來保存名單數據,但不會直接被線上應用所訪問,它無法滿足高訪問量的需求。

五、畫像數據

名單數據能夠快速發現用戶在某個維度上的異常行為。在實際使用中,存在過於簡單粗暴,一刀切的問題。比如如果限制單次購買金額為5000元,這個規則被試探出來後,攻擊者會選擇4999元來規避這個限制。畫像技術則是嘗試從多個維度來評估當前事件的風險。 比如畫像刻畫某用戶平時主要在北京地區登錄,購買習慣在10~300元之間。某一天突然發生一筆在東莞的4999元額度的消費,那這筆交易就非常可疑了。而這種交易通過規則比較難發現出來。 支付風控涉及的畫像包括用戶、設備、商品、地域、操作行為等。 這裡重點介紹用戶、設備和商品的畫像。

5.1 用戶畫像(persona)

用戶畫像是從用戶的角度來刻畫其背景和行為習慣,為判定某交易的風險等級提供支持。 用戶畫像的內容包括但不限於:

  • 人口信息:一般就叫基本信息,主要包括:姓名、性別、出生日期、出生地、民族、星座等。
  • 聯繫方式:家庭地址、工作地址、手機、固定電話、緊急聯繫人、QQ、微信號等。
  • 資產特徵:月工資、年收入、工資外收入、房產、車等
  • 家庭特徵:婚姻狀況、是否有小孩、小孩關聯、家庭成員等
  • 交易偏好:交易頻率(總計、年、月、日)、交易金額(總計、年、月、日)、常用賬戶、交易時間偏好、交易地點偏好、交易所使用設備、交易物品、交易物品所屬類別等。
  • 行為特徵,這是和業務相關的特徵。比如對於電商,關注 用戶瀏覽的物品、瀏覽的物品類別、購買的物品等。而對於視頻網站,則關注用戶查看的視頻、觀影時長、類別偏好、觀影地點偏好等信息。

對於已登錄用戶,可以使用用戶ID來識別並做畫像,但對未登錄用戶,系統需要通過設備來識別。

5.2 設備畫像

一個用戶配備多台智能設備已經是很常見的事情了。手機,PAD,筆記本,台式機,都是常用的設備。用戶在不同的設備上的行為往往是不一樣的。有人偏好在電腦上尋找要購買的商品,卻最終使用手機來下單,因為手機支付更便捷。 對設備進行畫像,和用戶畫像類似,實際上是刻畫使用設備的用戶的特徵。 此外,對於未登錄用戶,由於無法標識,也只能通過設備來代表這個用戶。設備畫像關注如下信息:

  • 設備信息,包括設備類型、型號、屏幕大小、內存大小、CPU類型、購買時間、購買時價格、現在價格等。
  • 交易偏好,同用戶畫像;
  • 行為特徵,同用戶畫像。

對設備畫像來說,生成一個能唯一識別該設備的標識,即設備指紋,是數據採集中的一個挑戰。設備指紋具有如下特點:

  • 唯一性,每台機器的指紋都不同,不能重複。
  • 一致性,機器指紋在一台機器上是唯一的,不同應用,不同登錄用戶中取到的指紋都是一樣的。
  • 穩定性,指紋不會隨時間變更,不會由於外圍設備變更而變更。重裝應用,重裝操作系統也應該保持不變。

我們將在專門的主題中介紹如何生成設備指紋。

5.3 商品畫像

商品畫像是從商品的角度來刻畫購買或者擁有該商品的人的特性。

  • 基本特徵:名稱,價格,類別,是否虛擬資產,上架時間,下架時間等
  • 促銷信息:價格,開始時間,截止時間
  • 購買者特徵:偏離這個特徵越多,風險越大。購買時間分布,地點分布,價格分布,數量分布,年齡分布,性別分布等。

5.4 畫像數據存儲

畫像數據有如下特點:

  • 數據粒度大。一個用戶的畫像數據,成百上千個維度都正常。
  • 大部分數據都是推算數據,也就是數據格式是帶置信度的,比如 {性別: 男,80%;女,20%};
  • 每個維度的數據一般最終都需要離散化,比如年齡,雖然0~150的取值區間還不算稀疏,一般還會將年齡再分段。
  • 數據量大。考慮到匿名用戶和設備,上千萬規模的註冊用戶,匿名用戶和設備會在數十億規模的量級。
  • 數據結構不穩定。 根據業務需要會頻繁添加新的數據維度,甚至添加新實體進來。
  • 數據更新頻繁。採用推算數據,每天不僅僅要計算新增數據,也需要重新計算現有數據的維度權重。
  • 數據訪問頻率高。交易時計算權重,也需要使用畫像數據。

很難有一個資料庫能夠同時滿足上述的需求。畫像數據存儲需要綜合採用多種資料庫來滿足不同應用上的需求。

  • 數據寫入庫, 需要支持數據批量、快速地寫入,Hbase是個不錯的選擇。
  • 數據讀取庫,需要支持數據高速讀取, couchbase可以滿足這個需求。但couchbase不能存儲所有數據,這樣成本太高。 可以把couchbase作為HBase的緩存來使用。
  • 寫庫和讀庫之間的數據同步。可以根據業務量選取合適的消息隊列。每天更新的數據規模在百萬及其以下,ActiveMQ可以滿足需求;而上千萬的數據,則需要使用Kafka。

六、知識圖譜

畫像是從群體和個體的統計角度評估事件的風險,而圖譜則更進一步,從關係的角度來評估風險。 知識圖譜是由Google提出來並應用到搜索引擎上,其後在多個領域都得到很好的應用。 交易是一種社會行為,所以從關係的角度來評估這個行為,能夠更精確的了解行為中存在的風險。一個簡單的例子,如果發現A是高風險的用戶,而通過社交圖譜分析,發現A經常和B有交易關係, 那B的風險等級也相應地會被調高。

圖譜在本質上是一個語義網路, 是一種基於圖的數據結構, 它由點和邊組成的。點代表一個實體,如人、公司、電話、商品、地址等,邊代表實體之間的關係。

如上所示, 如果A和B兩人之間是夫妻關係, 則在圖中, A和B分別被用一個節點來標識, 稱為實體,他們的關係是 is_wife_of。對電話、出生日期、出生地點、公司等,也可以使用這種方式來表示。 圖譜的表達能力,不僅在於描述實體之間的關係,而且通過關係還可以推理出潛在的進一步關係。 比如A是B的母親, A是C的妻子, 則有很大的概率可以推斷出來C是B的父親。 支付風控需要像建立畫像一樣建立圖譜,需要支持包括人,機構,地區,日期,電話,手機號,設備,商品等實體,以及實體之間的關係。圖譜數據源也是和畫像一樣。此外,還有一些互聯網數據也有利於建立圖譜 百度百科,有很不錯的公司,明星,電影,音樂等信息,一般僅限於國內或者中文版本的資料。由於編審並不嚴謹,數據質量不高。 wiki,有各種語言的版本,提供各種領域的實體,參與的專業人士多,質量較高。 各專業資料庫,知識圖譜是基於圖的數據結構,它的存儲主要是使用圖資料庫。關係型資料庫和Hbase等nosql資料庫在處理圖的關係以及關係計算上性能較差,需要專用的圖資料庫,當前主要的圖資料庫有neo4j,Titan,Jena等。neo4j是使用最多的圖資料庫,而且可以和spark graph集成,方便對圖譜數據做處理。

七、總結

總結一下,本文將風控系統所需要的數據分為名單、畫像和圖譜三個主題,這三個主題也對應了風控系統發展的不同的階段。這裡列出了每個階段所需要的典型數據,以及這些數據會如何存儲。

源文自微信公眾號「鳳凰牌老熊」

往期文章推薦:

寒冬之下,互聯網金融的數據化建設心得

作為餘額寶最大的合夥公司,天弘基金的數據平台建設有何講究?

從數據倉庫到大數據,數據平台這25年是怎樣進化的?
推薦閱讀:

shiny動態儀錶盤應用——中國世界自然文化遺產可視化案例

TAG:风险控制 | 数据仓库 | 数据分析 |