色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

如何成為一名合格的風(fēng)控算法工程師

榮姿康2年前31瀏覽0評論

如何成為一名合格的風(fēng)控算法工程師?

“風(fēng)控算法工程師”這個職位按字面意思可以拆成3個詞:風(fēng)控、算法、工程師,對應(yīng)的能力就是業(yè)務(wù)知識、算法理論、編程能力。

如果經(jīng)過一定時間的學(xué)習(xí)和培養(yǎng)你在這三個方面還有特別明顯的短板,那很難稱之為“合格”。

1. 業(yè)務(wù)知識

熟悉業(yè)務(wù)知識是基本功。

了解業(yè)務(wù)才能夠建立實際可用的模型,目前還不存在解決所有問題的萬能算法,還是回到現(xiàn)實,從業(yè)務(wù)學(xué)習(xí)開始。

互聯(lián)網(wǎng)金融領(lǐng)域有著非常豐富的業(yè)務(wù)場景,同時它和傳統(tǒng)銀行業(yè)務(wù)場景差別非常大。用戶沒有面簽不直接見面,依賴的數(shù)據(jù)是弱數(shù)據(jù)、大數(shù)據(jù),是數(shù)據(jù)和技術(shù)驅(qū)動的業(yè)務(wù)場景,但這并不代表你不需要去理解業(yè)務(wù)的內(nèi)涵。

每一個現(xiàn)實場景就是一個應(yīng)用題,作為算法人員需要理解題干,從場景中抽象出需要解決的問題,將它翻譯成算法問題,然后再使用合適的算法去解決它。

很多時候?qū)I(yè)務(wù)問題的理解和抽象,相當(dāng)于在設(shè)定模型開發(fā)的大綱。比如在白條場景中,我們想要預(yù)測授信用戶的信用風(fēng)險,我們首先就需要考慮以下問題:

我們要觀察多久的訂單?

逾期多少天才算壞用戶?

逾期定義中是否需要考慮金額限制?

好用戶怎么定義?

需不需要考慮樣本不均衡的問題?

為了保證模型的穩(wěn)定性如何進(jìn)行窗口驗證比較科學(xué)?

針對業(yè)務(wù)的一些變動,比如訂單制和賬單制的調(diào)整,我們?nèi)绾稳バ拚P偷哪繕?biāo)變量?

總之基本的信貸概念和業(yè)務(wù)模式是必須去了解的,有助于你設(shè)計開發(fā)大綱。除了大綱,風(fēng)控模型的開發(fā)也需要知道業(yè)務(wù)細(xì)節(jié)。這在Y變量定義,X變量加工,模型評估都會涉及。

以Y變量定義為例,一般金融行業(yè)會把樣本分為四部分:G(好用戶);B(壞用戶);I(不確定用戶);E(剔除用戶)。

實操中對這四個群體通常會有不同定義的微調(diào)。有的時候是從算法角度考慮,但更多時候是從業(yè)務(wù)需求角度考慮。預(yù)測用戶未來的白條消費金額,止付用戶就會被劃入E類用戶;預(yù)測欺詐用戶,因為樣本很少,信用風(fēng)險用戶也被劃入了B類壞用戶。X變量除了根據(jù)業(yè)務(wù)知識挑選數(shù)據(jù)源外,更多時候業(yè)務(wù)知識指導(dǎo)特征構(gòu)造。

這里我插一句,不要輕視特征工程,特征工程仍然是非常重要的內(nèi)功,不是你搞一個深度學(xué)習(xí)框架就可以解決一切。

金融行業(yè)的業(yè)務(wù)復(fù)雜通常和時間掛鉤,必須掌握業(yè)務(wù)概念的細(xì)節(jié)。對于白條業(yè)務(wù),就有下單,到賬,應(yīng)還款,實際還款,最低還款,逾期,退款等一系列細(xì)節(jié)概念,它們都是在一個時間軸上的,特征加工很講究這些細(xì)節(jié)。

只有清楚這些概念,而且知道這些行為如何產(chǎn)生和被記錄,才能夠構(gòu)造相關(guān)的有效特征。好的特征不但可以提高模型效果,也便于從業(yè)務(wù)上把握模型的跨時間有效性。

業(yè)務(wù)場景很多時候還決定了你模型效果評估的方式,因為業(yè)務(wù)很靈活,可以做到有取有舍。有些場景需要模型是為了在誤殺盡可能少的情況下抓住更多的壞人;有些場景需要模型需要有更好的排序能力但并不注重絕對值預(yù)測;有些場景需要模型需要有很準(zhǔn)確的數(shù)值預(yù)測。

了解場景,挑選合適的評估方式,才能夠構(gòu)造出合適的模型,當(dāng)然爭辯是免不了的。

2.算法

首先,算法很多,沒有人能夠面面俱到,重在基本功。

對于轉(zhuǎn)行的同學(xué),推薦兩本入門的基礎(chǔ)讀物:周志華的“西瓜書”和李航的“藍(lán)皮書”。

作為算法工程師,對算法本身在公式的層面并不一定像考試那樣需要死記硬背。比如工作中不會有人問你LBFGS算法對于海森矩陣是怎么估計的的(即便在面試中背出來都未必是加分項)。但是,LR的基本公式,SVM的基本原理還是需要去熟練掌握。

對各個算法的優(yōu)缺點、適用范圍以及可能失效的場景需要了熟于胸,某種程度上算法掌握深度和靈活度跟場景以及場景下數(shù)據(jù)很有關(guān)系。

企業(yè)工作時風(fēng)控算法工程師的典型工作是在面對場景需求進(jìn)行建模,理論深度是有一定必要的。因為實際工作沒有時間讓你研究理論,但是需要你掌握理論。

算法工程師搭建算法模型的時候,往往沒有充分的時間去掃參調(diào)優(yōu),于是這會導(dǎo)致與在學(xué)校的時候建模發(fā)paper是完全不同的工作模式。

需要考慮的可能更應(yīng)該是算法的魯棒性,即算法模型在數(shù)據(jù)和計算環(huán)境一定幅度的波動下,仍然能夠保持穩(wěn)定的工作。

不然的話,支持線上工作的算法模型一旦崩潰,輕則是大半夜不定的報警短信把你招到公司改bug,重則是造成重大財產(chǎn)損失——想想某業(yè)務(wù)本來大體只會授信一半的用戶,結(jié)果被奔潰的模型完全放行了……這將會是什么畫風(fēng)?

因為沒有太多的時間掃參數(shù)空間,所以最好對于各個常用模型的“性能”以及主要工作的參數(shù)空間有一個清晰的概念。

這意味著,你不能像以前在學(xué)校一樣,對于每個模型都用效果最佳的參數(shù),而需要“常見”的參數(shù),去實現(xiàn)基本的業(yè)務(wù)功能,日后業(yè)務(wù)方有需要再去優(yōu)化。工程上,過度的算法“潔癖”和“強迫癥”都會耽誤很多事情。

特征工程還得再強調(diào)一遍,雖然它看上去不像理論那么高大上,但其實很多時候模型效果還就得靠那么一點特征工程作為作料。在算法里面我們更強調(diào)特征工程的一些處理手法和技巧,比如點擊流數(shù)據(jù)的處理方法,怎么設(shè)置窗口,一些缺值數(shù)據(jù)的處理技巧,噪聲數(shù)據(jù)的去除等,都能提升模型的效果。

而且這其實有其近乎“藝術(shù)”的一面,正所謂“戲法人人會變,各有其奧妙不同”。

評價指標(biāo)要選好,評價指標(biāo)的坑很多,并不是說當(dāng)你建好了模型之后,算一算precision、AUC、KS、F-measure就好了。

要對這些指標(biāo)的原理,特別是局限性了然于心。

再強調(diào)一遍,特別是他們的局限性!甚至有時候你可能需要自己組合設(shè)計一些指標(biāo),來更好適應(yīng)你的問題。

關(guān)于深度學(xué)習(xí)框架,目前各大廠小廠都在積極嘗試,但是尚且沒有全面推開在金融領(lǐng)域,我們在某些環(huán)節(jié)使用這些技術(shù),同時也在向業(yè)務(wù)方普及這些技術(shù)。深度學(xué)習(xí)作為趨勢,日后廣泛應(yīng)用是一定的,所以我們堅定看好它。

傳統(tǒng)概率論和數(shù)理統(tǒng)計方面的知識也不能丟。即便我們不去參與貝葉斯派和頻率派的撕逼,古典概型在考慮問題的時候也很有用。另外還有諸如隨機(jī)變量及其分布、隨機(jī)過程、大數(shù)定理、中心極限定理等等。畢竟,金融產(chǎn)品的普遍是建立在人們對“未來”的預(yù)期上的,而這一過程則需要基于概統(tǒng)來理解。

3.編程

首先,總的來說,算法工程師需要的是處理大數(shù)據(jù)和實施高性能計算。這在工程層面有多種實現(xiàn)方案,下面簡單羅列一下常見的部署場景,大家可以各自去攀相應(yīng)的科技樹:

? 在數(shù)據(jù)層面,sql必不可少。

可以說SQL是數(shù)據(jù)的魔法石,讓數(shù)據(jù)流動,轉(zhuǎn)化,融合,迸發(fā)出巨大的威力。對于sql的熟練使用,以及一些小技巧的應(yīng)用,能夠給下一步的特征工程省很多事。在這個過程中,數(shù)據(jù)傾斜是要尤其關(guān)注的,拉數(shù)據(jù)或者計算過程中進(jìn)程一直被卡在99%是一件很尷尬的事兒。

? 目前主流的編程語言越來越集中于python和R。

有新聞上說,有的中學(xué)已經(jīng)在開始普及python了。所以至少最好能有所了解。這包括一些常用的庫,如pandas、sklearn等。

當(dāng)然,其他語言也可以有,C++在我們非常追求性能時會去考慮,JAVA也會在我們提供服務(wù)的時候使用。

? 關(guān)于高性能的并行計算,Spark是一中常見的構(gòu)架,它包含一個數(shù)據(jù)挖掘的庫MLlib。

? GPU(集群)是實現(xiàn)更高性能并行計算的另一個流行的方案,同時考慮到一些CNN、RNN模型的使用,所以學(xué)習(xí)注入TensorFlow、Caffe等等算法框架是很有必要的。

當(dāng)然對于風(fēng)控來說這是比較高階的應(yīng)用。

? 在建模過程中,對數(shù)據(jù)的簡單統(tǒng)計分析進(jìn)行可視化是非常必要的。

數(shù)據(jù)直觀的展示出來之后,有些問題/方案就一目了然了。在這方面,python的可視化工具、R、Matlab等各有各的優(yōu)勢,大家可以按習(xí)慣取用。

? 最后,作為基礎(chǔ),寫shell腳本的基礎(chǔ)是必須的,要有一定的linux知識。

其次,特別是大型金融科技公司對編碼要求已經(jīng)和互聯(lián)開發(fā)沒有什么本質(zhì)區(qū)別,因此要求在編程的過程中,工程考慮是一定要有的思維習(xí)慣。

這里的“工程考慮”并不僅僅是指算法的性能方面,還有考慮你自身的數(shù)據(jù)結(jié)構(gòu)、表關(guān)系依賴關(guān)系、計算環(huán)境、服務(wù)器性能、可用資源等等,很多問題需要與研發(fā)或者平臺的同學(xué)仔細(xì)溝通才能夠提供一個真正的風(fēng)控算法服務(wù)。

因為風(fēng)控的敏感性,網(wǎng)上其實很少有相關(guān)的資料。尤其是現(xiàn)在金融科技公司中的新技術(shù)和傳統(tǒng)銀行技術(shù)差別較大,使得這個行業(yè)帶有一定的神秘性。

其實,風(fēng)控算法工程師和推薦系統(tǒng)算法工程師、搜索算法工程師等等沒有太本質(zhì)的區(qū)別,個人認(rèn)為仍然屬于互聯(lián)網(wǎng)+下的算法工作,但是同金融科技這個新生業(yè)務(wù)產(chǎn)生了交集,對人才有了更復(fù)合的要求:同傳統(tǒng)風(fēng)控人員相比,它更強調(diào)了算法能力和工程能力,同普通算法人員相比,它更強調(diào)了金融業(yè)務(wù)理解能力。

從招聘的情況看,市場上目前具備這種綜合素質(zhì)的人才很少,是一個很有發(fā)展前景的職業(yè)。