黃健文,丁 奕,蘇麗裕,閆 宇,匡磊懷
(中移互聯(lián)網(wǎng)有限公司,廣東 廣州 510000)
在業(yè)務(wù)平臺(tái)發(fā)展前期,針對(duì)“薅羊毛”及“訂單流轉(zhuǎn)”典型風(fēng)控場(chǎng)景,尚可依賴簡(jiǎn)單業(yè)務(wù)規(guī)則,以此來發(fā)現(xiàn)異常賬戶。但隨著業(yè)務(wù)量的擴(kuò)增,各大網(wǎng)上知名商城優(yōu)惠劵等優(yōu)質(zhì)權(quán)益的引入以及用戶規(guī)模的快速增長(zhǎng),導(dǎo)致刷單交易與欺詐手段也隨之增加,原先的風(fēng)控策略已逐漸無法滿足業(yè)務(wù)的需求,給業(yè)務(wù)安全運(yùn)營(yíng)帶來了嚴(yán)峻挑戰(zhàn)。因此,如何改進(jìn)現(xiàn)有的風(fēng)控方案,滿足業(yè)務(wù)發(fā)展的需求是一個(gè)重要且急迫的課題。
目前行業(yè)內(nèi)已有很多成熟的風(fēng)控方案,在一些電商平臺(tái)或者金融行業(yè)有類似的應(yīng)用場(chǎng)景。電商平臺(tái)[1]通過發(fā)放優(yōu)惠券的方式吸引客戶,羊毛黨通過各種刷單手段薅走大量的優(yōu)惠券;金融行業(yè)[2]的用戶信貸風(fēng)險(xiǎn)評(píng)估。對(duì)此,在大數(shù)據(jù)、人工智能技術(shù)的加持下,基于多種維度的數(shù)據(jù),這些平臺(tái)構(gòu)建了很多非常優(yōu)秀的風(fēng)控體系[3][4][5][6][7],并且在更為先進(jìn)的風(fēng)控系統(tǒng)中,融入了流計(jì)算、生物識(shí)別、自然語(yǔ)言處理等先進(jìn)前沿技術(shù),這可以有效提高數(shù)據(jù)處理能力以及實(shí)時(shí)決策計(jì)算能力。
借鑒于此,依托大數(shù)據(jù)平臺(tái),結(jié)合業(yè)務(wù)實(shí)際場(chǎng)景,改進(jìn)原有的風(fēng)控策略,打造了一套集業(yè)務(wù)數(shù)據(jù)快捷接入融合處理、數(shù)據(jù)安全穩(wěn)定傳輸與存儲(chǔ)、智能決策應(yīng)對(duì),多位一體的風(fēng)控方案,形成了業(yè)務(wù)平臺(tái)特定場(chǎng)景下的規(guī)則引擎[8]與機(jī)器學(xué)習(xí)模型結(jié)合的實(shí)時(shí)運(yùn)營(yíng)風(fēng)控系統(tǒng)。
對(duì)標(biāo)互聯(lián)網(wǎng)業(yè)界先進(jìn)的實(shí)時(shí)計(jì)算技術(shù),風(fēng)控系統(tǒng)以Kafka+Flink+Redis+ES為核心技術(shù)架構(gòu),從數(shù)據(jù)處理、風(fēng)控決策、業(yè)務(wù)應(yīng)用、風(fēng)險(xiǎn)應(yīng)對(duì)四個(gè)層面入手,打造數(shù)據(jù)能夠?qū)崟r(shí)匯聚處理、實(shí)時(shí)輸出、實(shí)時(shí)決策的風(fēng)控能力,以支撐業(yè)務(wù)風(fēng)控處理的高時(shí)效性。這套規(guī)則與模型結(jié)合的風(fēng)控系統(tǒng)實(shí)時(shí)動(dòng)態(tài)、安全可靠、穩(wěn)定高效,可以有效提升風(fēng)險(xiǎn)控制效率和精確度,將風(fēng)險(xiǎn)控制在合理的范圍內(nèi),為業(yè)務(wù)平臺(tái)業(yè)務(wù)提供風(fēng)險(xiǎn)分析決策。系統(tǒng)整體功能架構(gòu)如圖1所示。
圖1 風(fēng)控系統(tǒng)整體功能架構(gòu)
(1)數(shù)據(jù)處理層。能夠完成高效的風(fēng)險(xiǎn)控制得益于多維數(shù)據(jù)的融合。實(shí)際業(yè)務(wù)中,數(shù)據(jù)是分布在不同的業(yè)務(wù)數(shù)據(jù)庫(kù)中,要想高效的利用數(shù)據(jù),首先是將多業(yè)務(wù)的數(shù)據(jù)融合起來,再在融合數(shù)據(jù)的基礎(chǔ)上做處理。基于大數(shù)據(jù)平臺(tái),F(xiàn)link+Kafka流式計(jì)算技術(shù),可以快速地將所需數(shù)據(jù)匯聚起來,并完成相應(yīng)的處理過程。
(2)風(fēng)控決策層。該層分為模型管理和規(guī)則管理。規(guī)則管理是對(duì)規(guī)則的上線、下線、修改等操作,以及相應(yīng)指標(biāo)的計(jì)算與監(jiān)控。這里構(gòu)造了大量的復(fù)雜規(guī)則,這些規(guī)則都依賴于Redis存放的指標(biāo)。模型管理主要完成模型開發(fā)、訓(xùn)練、部署、迭代等流程。模型利用了樣本用戶大量的基礎(chǔ)屬性、行為等數(shù)據(jù)構(gòu)造的弱特征進(jìn)行開發(fā)訓(xùn)練,最終模型開發(fā)完預(yù)測(cè)的結(jié)果就是用戶的風(fēng)險(xiǎn)概率。通過規(guī)則和模型的共同決策判別的方式,增加了該風(fēng)控系統(tǒng)的健壯性。
(3)業(yè)務(wù)應(yīng)對(duì)層。該層主要完成風(fēng)控的應(yīng)用場(chǎng)景管理。業(yè)務(wù)平臺(tái)有多個(gè)不同的場(chǎng)景。場(chǎng)景不一樣,相應(yīng)的風(fēng)險(xiǎn)應(yīng)對(duì)措施也有所不一樣。做好場(chǎng)景管理,也是做好風(fēng)險(xiǎn)應(yīng)對(duì)措施管理。
(4)風(fēng)險(xiǎn)應(yīng)對(duì)層。針對(duì)不同場(chǎng)景有不同應(yīng)對(duì)措施。目前有通過、攔截、人臉識(shí)別、短信驗(yàn)證等一系列措施,分別應(yīng)用在不同的場(chǎng)景中。
(1)實(shí)時(shí)數(shù)據(jù)采集。Kafka是一個(gè)分布式、支持分區(qū)的、多副本的,基于Zookeeper協(xié)調(diào)的分布式消息系統(tǒng)。它可以實(shí)時(shí)地收集用戶的活動(dòng)數(shù)據(jù),以時(shí)間復(fù)雜度為O(1)的方式提供消息持久化能力,以滿足各種需求場(chǎng)景。
(2)實(shí)時(shí)數(shù)據(jù)處理。Flink是一個(gè)框架和分布式處理引擎,用于對(duì)無界和有界數(shù)據(jù)流進(jìn)行有狀態(tài)計(jì)算,支持高吞吐、低延遲、高性能的分布式處理框架。在風(fēng)控系統(tǒng)中,它可以實(shí)時(shí)地消費(fèi)Kafka的日志數(shù)據(jù),完成相應(yīng)指標(biāo)的計(jì)算。
(3)指標(biāo)緩存。Redis是一款內(nèi)存高速緩存數(shù)據(jù)庫(kù),高性能的(key/value)分布式內(nèi)存數(shù)據(jù)庫(kù),基于內(nèi)存運(yùn)行并支持持久化的NoSQL數(shù)據(jù)庫(kù)。與傳統(tǒng)數(shù)據(jù)庫(kù)不同的是,Redis的數(shù)據(jù)是存在內(nèi)存中的,所以讀寫速度非??欤虼丝梢源娣庞脩魧?shí)時(shí)指標(biāo)計(jì)算判斷數(shù)據(jù)。
(4)分布式計(jì)算。分布式計(jì)算是一種計(jì)算方法,和集中式計(jì)算是相對(duì)的。數(shù)據(jù)處理的過程需要非常巨大的計(jì)算能力才能完成,如果采用集中式計(jì)算,需要耗費(fèi)相當(dāng)長(zhǎng)的時(shí)間來完成。分布式計(jì)算將該應(yīng)用分解成許多小的部分,分配給多臺(tái)計(jì)算機(jī)進(jìn)行處理。這樣可以節(jié)約整體計(jì)算時(shí)間,大大提高計(jì)算效率。
(5)緩沖池技術(shù)。采用緩沖池技術(shù),緩和不同I/O設(shè)備間速度不匹配的矛盾,提高CPU和I/O設(shè)備之間的并行性,降低I/O設(shè)備間建立連接的性能開銷,同時(shí)通過容錯(cuò)機(jī)制確保緩沖池穩(wěn)定。
風(fēng)控系統(tǒng)的核心是規(guī)則與模型。在規(guī)則上,基于用戶的實(shí)時(shí)行為數(shù)據(jù),計(jì)算實(shí)時(shí)規(guī)則指標(biāo),如針對(duì)用戶IP地址和設(shè)備,統(tǒng)計(jì)用戶在一定周期內(nèi)的IP地址數(shù)和設(shè)備數(shù),一旦用戶某指標(biāo)超過設(shè)定的閾值,風(fēng)控系統(tǒng)就會(huì)介入干預(yù)防范。此外,完善規(guī)則監(jiān)控系統(tǒng)與管理系統(tǒng),實(shí)時(shí)監(jiān)控規(guī)則線上表現(xiàn),并針對(duì)實(shí)際情況及時(shí)對(duì)規(guī)則閾值調(diào)整、上線和下線。
在模型上,基于用戶基礎(chǔ)屬性、業(yè)務(wù)行為等數(shù)據(jù),通過特征組合與衍生方法,構(gòu)造多維度用戶特征,對(duì)用戶特征使用了數(shù)據(jù)標(biāo)準(zhǔn)化、獨(dú)熱編碼等多種數(shù)據(jù)處理方法,并進(jìn)行了數(shù)據(jù)分箱、交叉驗(yàn)證、特征選擇等特征工程方法[9],構(gòu)建了邏輯回歸、決策樹、隨機(jī)森林[10]等多個(gè)分類器,根據(jù)精準(zhǔn)率和召回率對(duì)比分析性能,測(cè)試驗(yàn)證,表1列舉了幾個(gè)模型具體表現(xiàn)。
表1 模型評(píng)估指標(biāo)
通過指標(biāo)對(duì)比分析,邏輯回歸模型的表現(xiàn)更加穩(wěn)定,并且邏輯回歸模型的可解釋性更強(qiáng),部署簡(jiǎn)單,計(jì)算高效,存儲(chǔ)占用小,因此選擇使用邏輯回歸做為判別模型。
其實(shí)邏輯回歸的過程就是面對(duì)一個(gè)分類問題,通過算法模型構(gòu)造損失函數(shù),利用梯度下降法迭代求解出最優(yōu)的模型參數(shù),最后測(cè)試模型的性能。邏輯回歸還可以獲得各個(gè)特征因子的參數(shù),它直觀地反映了各個(gè)特征對(duì)模型的影響程度。假設(shè)風(fēng)控樣本的數(shù)據(jù)背后的映射關(guān)系是線性的:
若g使用sigmoid函數(shù),可以將此函數(shù)的值域映射到[0,1]這個(gè)區(qū)間內(nèi):
損失函數(shù):
通過梯度下降算法或者牛頓法就可以對(duì)上述損失函數(shù)優(yōu)化,優(yōu)化的目的就是要找到一個(gè)方向,參數(shù)朝這個(gè)方向移動(dòng)之后使得損失函數(shù)的值能夠減小,也就是找到最佳的參數(shù)。這些最佳參數(shù)就可以反映各個(gè)風(fēng)控因子的影響程度。
傳統(tǒng)的風(fēng)控策略非常依賴于有經(jīng)驗(yàn)的數(shù)據(jù)分析人員,分析人員通過設(shè)置大量的規(guī)則做風(fēng)險(xiǎn)判斷,側(cè)重于數(shù)據(jù)。但是人的計(jì)算能力是有限的,對(duì)整體的把控能力也是有限的,因此判定規(guī)則也不足以應(yīng)對(duì)所有場(chǎng)景。另外,規(guī)則是容易被打破的,某些規(guī)則一旦被一些有意圖的用戶摸索到,有可能就會(huì)造成平臺(tái)與合作客戶的重大損失,直接影響平臺(tái)的正常運(yùn)營(yíng)與聲譽(yù)。
基于規(guī)則引擎和機(jī)器學(xué)習(xí)模型的業(yè)務(wù)風(fēng)控系統(tǒng),在保證大量規(guī)則的基礎(chǔ)上,利用用戶大量的特征構(gòu)建的風(fēng)險(xiǎn)控制模型,有效地彌補(bǔ)了規(guī)則判斷的局限性,提高了判別精確度。該風(fēng)控系統(tǒng)覆蓋了覆蓋業(yè)務(wù)平臺(tái)登錄、消費(fèi)、活動(dòng)等多個(gè)場(chǎng)景,日均監(jiān)控訂單數(shù)據(jù)量超過百萬。風(fēng)控系統(tǒng)自上線至今,識(shí)別出來累計(jì)超過幾十萬條可疑訂單記錄,而且目前業(yè)務(wù)尚未收到有關(guān)投訴反饋,側(cè)面反映風(fēng)控系統(tǒng)的識(shí)別精度較高,這些可疑訂單的用戶基本都屬于高危用戶。針對(duì)可疑刷單行為,風(fēng)控系統(tǒng)及時(shí)處理判斷,果斷采取相應(yīng)措施進(jìn)行攔截或者進(jìn)行短信驗(yàn)證、圖片驗(yàn)證、人臉識(shí)別、活體識(shí)別、指紋識(shí)別等驗(yàn)證,有效地穩(wěn)定了平臺(tái)秩序,守護(hù)權(quán)益營(yíng)銷活動(dòng)的正常開展,大力保護(hù)了消費(fèi)者的權(quán)益。
通過探索和實(shí)踐,該實(shí)時(shí)風(fēng)控系統(tǒng)目前已經(jīng)具備良好的用戶區(qū)分度,可以在決策階段清晰地做出高精確的用戶風(fēng)險(xiǎn)類別的判斷。然而,對(duì)抗黑產(chǎn)欺詐是一個(gè)長(zhǎng)期持續(xù)的過程,未來的黑產(chǎn)手段也會(huì)層出不窮,很多規(guī)則策略也會(huì)逐漸失效,模型精度也會(huì)逐漸下降。而且隨著平臺(tái)業(yè)務(wù)的持續(xù)發(fā)展,用戶量級(jí)的增加,需要計(jì)算處理的數(shù)據(jù)量也會(huì)隨之增加,如何保證未來模型和規(guī)則的穩(wěn)定是需要面臨的大問題。同時(shí),風(fēng)控模型要隨著線上運(yùn)行結(jié)果不斷迭代優(yōu)化,需要豐富更多的用戶特征來保障模型長(zhǎng)期穩(wěn)定運(yùn)行,管控好數(shù)據(jù)處理流程以及特征工程,保證數(shù)據(jù)準(zhǔn)確計(jì)算,正常反饋特征給模型輸出。做好規(guī)則管理,隨時(shí)可以監(jiān)控規(guī)則的攔截量和攔截效率,有利于運(yùn)營(yíng)人員及時(shí)反饋給分析人員做調(diào)整,形成事前防范、事中攔截、事后稽核的通用風(fēng)控能力。■