1
本文作者: 溫曉樺 | 2017-04-12 10:45 |
在實驗室中開發(fā)算法難,將AI研究成果帶出實驗室更是難上加難。怎樣將AI變成產(chǎn)品并實現(xiàn)商業(yè)價值?產(chǎn)品和技術(shù)方面有什么改進(jìn)要點(diǎn)?如何控制企業(yè)應(yīng)用AI技術(shù)的成本?有效的AI產(chǎn)品化可以怎樣優(yōu)化銀行反欺詐體系?我們可以期待一個智能的未來嗎?
AI已經(jīng)誕生了60多年,即使伴隨著計算能力的突飛猛進(jìn)和大數(shù)據(jù)時代的來臨,但AI的理論到實踐之路仍不是那么好走。機(jī)器學(xué)習(xí)面臨高維海量數(shù)據(jù)的現(xiàn)實挑戰(zhàn),求解企業(yè)自建機(jī)器學(xué)習(xí)技術(shù)產(chǎn)品設(shè)計和工程優(yōu)化是當(dāng)前眾多行業(yè)從業(yè)者苦苦探索,試圖翻越的“AI鴻溝”。
本次是雷鋒網(wǎng)AI金融專場公開課之第三期,我們有幸邀請到第四范式聯(lián)合創(chuàng)始人、首席架構(gòu)師胡時偉,以及產(chǎn)品經(jīng)理周開拓來分享他帶領(lǐng)團(tuán)隊完成AI首個全流程產(chǎn)品的心得。
胡時偉,第四范式聯(lián)合創(chuàng)始人、首席架構(gòu)師。在百度任職期間作為系統(tǒng)架構(gòu)負(fù)責(zé)人,主持了百度商業(yè)客戶運(yùn)營、鳳巢新興變現(xiàn)、“商業(yè)知心”搜索、阿拉丁生態(tài)等多個核心系統(tǒng)的架構(gòu)設(shè)計工作;作為鏈家網(wǎng)創(chuàng)始團(tuán)隊成員,完成了鏈家網(wǎng)新主站、經(jīng)紀(jì)人新作業(yè)系統(tǒng)、績效變革系統(tǒng)的整體架構(gòu)設(shè)計以及研發(fā)團(tuán)隊的建設(shè)管理。現(xiàn)任第四范式研發(fā)總工程師,帶領(lǐng)團(tuán)隊打造出國內(nèi)首款人工智能全流程平臺“第四范式·先知”,“先知”平臺2016年榮獲中國智能科技最高獎——“吳文俊人工智能科學(xué)技術(shù)獎”創(chuàng)新獎一等獎。
以下是本次公開課實錄,雷鋒網(wǎng)做了不改變原意的編輯:
今天我們給大家分享的主題是如何以產(chǎn)品化的形式實現(xiàn)AI的商業(yè)價值,主要分成3個部分:第一部分是商業(yè)價值;第二部分是產(chǎn)品化;第三部分,請開拓給大家講一講他為公有云客戶提供平臺化產(chǎn)品的經(jīng)驗和體會。
如何發(fā)掘AI的商業(yè)價值
談到AI的商業(yè)價值,首先談一下AI是什么。今天教育、醫(yī)療、金融等各行各業(yè)的人都在憧憬人工智能,并且嘗試實踐,利用人工智能的技術(shù)來給行業(yè)提供價值。這里面定義很復(fù)雜,今天先不講概念,首先縮小一下范圍,談一下數(shù)據(jù)驅(qū)動的人工智能。
當(dāng)今大多數(shù)的AI系統(tǒng)由兩個基石組成:一個是大數(shù)據(jù),一個是機(jī)器學(xué)習(xí)的技術(shù)。比如AlphaGo,它的成功首先是因為吸納了KGS的網(wǎng)站上30多萬張棋譜——這個是AlphaGo第一波數(shù)據(jù)。此外,結(jié)合深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)等機(jī)器學(xué)習(xí)的技術(shù),AlphaGo可以比以前基于規(guī)則或者基于淺層神經(jīng)網(wǎng)絡(luò)的對弈程序,擁有更好的表現(xiàn)。
所以我們認(rèn)為,人工智能=大數(shù)據(jù)+機(jī)器學(xué)習(xí)。如果說大數(shù)據(jù)是原材料——米,機(jī)器學(xué)習(xí)是工具——電飯煲,那么人工智能就是白米飯。
所謂有效的AI應(yīng)用,指至少可以替代人去做一件事情,比如下棋,打游戲,或者安全防護(hù)。對此,我們總結(jié)了產(chǎn)生一個有效的AI應(yīng)用的5個要素:
我們對下圍棋可以定義一個數(shù)字化的目標(biāo),即數(shù)子或數(shù)目的勝負(fù)。而如果定義的目標(biāo)是下得有藝術(shù),那就不是一個清晰的問題邊界,因為這些是主觀化的定義。
此外,也需要持續(xù)的外部反饋。只給一張棋譜是無法讓機(jī)器自動下棋的,需要持續(xù)的外部或者內(nèi)部的系統(tǒng)產(chǎn)生反饋信號。AlphaGo自我對弈的功能,就是持續(xù)地產(chǎn)生內(nèi)部反饋。
足夠多的數(shù)據(jù)
如果只有反饋信號,沒有特征,也是不可。
舉例來說,用AI技術(shù)識別欺詐交易,那么交易相關(guān)主體的屬性,例如人的性別、年齡、居住地址就特別重要,否則,如果我們只知道某天某個卡,交易了多少錢,那么這些數(shù)據(jù)是不夠的——因為這種情況下得到的只有反饋信號,沒有特征。
培養(yǎng)一個成功的AI科學(xué)家要6年到10年的時間,但同時帶來的價值也特別大,但今天世界上頂尖的AI科學(xué)家,其實并不多,因為作為一個頂尖的AI科學(xué)家,也要橫跨很多很多不同的領(lǐng)域。
下面我們通過銀行的交易反欺詐來講一下,AI可以做到的事,究竟是什么。
信用卡盜刷、電信詐騙等這種事情都是典型的欺詐交易。根據(jù)相關(guān)報告調(diào)查,中國是信用卡欺詐以及銀行卡欺詐發(fā)生最為嚴(yán)重的地區(qū),并且欺詐手段越來越多元化。應(yīng)該這么說:這個世界上最聰明的腦袋,一部分在做壞事,另外一部分在防止做壞事。
過去銀行解決欺詐問題有4個主要的方法,比較直觀的方法有:法規(guī)政策、信息安全技術(shù),例如借助token等通過防守和法律的方式來解決問題。
另外兩個相對智能:一是專家規(guī)則,二是模型。
當(dāng)前而言,國際上做反欺詐做得最好的廠商有100多名專家,每年投入數(shù)千萬美元的研發(fā)成本來維護(hù)專家的規(guī)則。這些規(guī)則少則幾千條,多則上萬條:比如同一張卡短時間在兩個城市交易首次取現(xiàn)密碼錯誤等。通過規(guī)則來防守,其有效性是毋庸置疑的,但同時也存在著缺點(diǎn):
一方面,這種方法比較依賴于專家的主觀性。專家行業(yè)積累越深,越有經(jīng)驗,但是面向較新的技術(shù)時,并不一定能夠應(yīng)付。
另一方面,規(guī)則需要持續(xù)維護(hù),以便應(yīng)對犯罪分子的變化。比如,規(guī)則設(shè)定為“交易八千元以上要進(jìn)行審核”,或者“某個年齡點(diǎn)以上要進(jìn)行審核”等,這時犯罪分子會通過試探來找到規(guī)則的邊界,從而實行欺詐,比如正好盜刷7999元。
最后一點(diǎn)是,多種規(guī)則之間存在排斥關(guān)系,規(guī)則A能解決一個問題,但解決不了另外一個問題。
值得一提的是,傳統(tǒng)上也有基于神經(jīng)網(wǎng)絡(luò)的模型的解決方案,然而這種神經(jīng)網(wǎng)絡(luò)是指原先基于反向傳播技術(shù)的淺層神經(jīng)網(wǎng)絡(luò),由于其結(jié)構(gòu)較為簡單,導(dǎo)致數(shù)據(jù)利用不充分,所以多數(shù)情況下也無法提供足夠多的效果。
在反欺詐技術(shù)上我們和銀行的合作,首先做的是把以前在互聯(lián)網(wǎng)企業(yè)做的高維模型技術(shù)移植過來,然后用全量的歷史交易取代采樣的歷史交易——利用幾百G,甚至上T的數(shù)據(jù)來做基礎(chǔ)建模工作。
比如,通過使用持卡人的屬性、商務(wù)信息、交易通道等特征,進(jìn)而衍生出一定的二階特征。舉例來說,持卡人的屬性,組合上商戶的屬性——即什么樣的人在什么樣的店里,是否發(fā)生異常的行為,比如一個宅男,突然到了一個奢侈品店里高額消費(fèi),那就有可能是盜刷行為。
根據(jù)經(jīng)驗,越多的特征和越多特征組合可以更好地刻畫客觀的規(guī)律,但由于人的想象空間有限,在挖掘二階特征之后,對于三階特征、四階特征便出現(xiàn)了瓶頸。
這個時候,我們就引入了一個新的技術(shù)——特征的自動組合和探索。依靠這個技術(shù),我們把特征的最高階數(shù)做到了五階甚至六階,然后把特征的維度——模型可以覆蓋的情況的數(shù)量,做到了數(shù)以十億計?;谶@樣的高階特征,機(jī)器可以快速地學(xué)出各規(guī)則,防范欺詐。
如果一個犯罪分子欺詐成功了,銀行就要賠付損失,每個月至少增加千萬級別的支出。而技術(shù)就在這個新的場景中發(fā)揮出效益,這個是商業(yè)的價值。
下面我們從技術(shù)的角度上來分析,究竟是什么技術(shù)使得業(yè)務(wù)的提升成為可能。
首先,是高維度的大規(guī)模機(jī)器學(xué)習(xí)。對于用AI解決業(yè)務(wù)問題整體上來說,主要是考慮用VC維的概念。
VC維度是什么?學(xué)術(shù)一點(diǎn)來說是“Vapnik-Chervonenkis Dimension”,一個由Vapnik和Chervonenkis于1960年代至1990年代建立的統(tǒng)計學(xué)習(xí)理論,它反映了函數(shù)集的學(xué)習(xí)能力——VC維越大則模型或函數(shù)越復(fù)雜,學(xué)習(xí)能力就越強(qiáng)。
大腦的維度大概就是大腦腦細(xì)胞的個數(shù),所以可以把VC維度理解為腦細(xì)胞維度。而機(jī)器的維度也需要更多的腦細(xì)胞,才能更聰明,才能學(xué)習(xí)更多的知識。機(jī)器的誤差隨著模型維度的提升而降低。
此外還有奧卡姆剃刀原理——如無必要,勿增數(shù)據(jù)。但是這個理論其實是二三十年之前才是正確的理論,今時不同往日的是,今天的手機(jī)和那個年代的超級計算機(jī)差不多,今天整個互聯(lián)網(wǎng)一秒鐘累積的數(shù)據(jù)也許就已經(jīng)可以達(dá)到過去一年所累積的數(shù)據(jù)水平。因此,今天我們有更大的數(shù)據(jù),也要有更大的利用數(shù)據(jù)的方式。
所以衡量一個模型的智能水平,就是VC維越高越好。過去因為沒有足夠的數(shù)據(jù),所以無法做高。第四范式創(chuàng)始人戴文淵說過:“人做事情是越簡單越好,機(jī)器做事情是越復(fù)雜越好。因為機(jī)器既不知疲倦,而且做重復(fù)性工作的戰(zhàn)斗力特別強(qiáng)?!币虼耍瑥募夹g(shù)來角度來講,我們就要把維度提高。
維度提升之后,緊接著的問題是:高維度的大規(guī)模機(jī)器學(xué)習(xí)需要有算法框架的支持。
原來的系統(tǒng)中,無論是數(shù)的算法,還是回歸算法或者神經(jīng)網(wǎng)絡(luò)算法,一旦層數(shù)或者并行變量的數(shù)量增加以后,運(yùn)行會變得極其緩慢。如今深度神經(jīng)網(wǎng)絡(luò)的進(jìn)步,也得益于英偉達(dá)的GPU。
因為算法的效果是最終價值的關(guān)鍵,所以這個方面必須要達(dá)到最極致的優(yōu)化,針對這個問題,市場上有一些開源的框架。而我們自己開發(fā)了一個框架,叫GDBT,即通用的分布式框架。
通用型分布式框架的特點(diǎn),首先體現(xiàn)在內(nèi)存全分布式,也支持用硬盤的方式來訓(xùn)練;另外具有較好的擴(kuò)展性,傳統(tǒng)中比如Spark或者SparkSQL,其實可以做到數(shù)據(jù)的并行,但是做不到模型并行;最后也是最重要的一點(diǎn):快。
在數(shù)據(jù)橫向擴(kuò)展快速的算法,以及維度提升的結(jié)合下,這個分布式架構(gòu)可以將以前兩個小時訓(xùn)練完一千維的效率,提高到現(xiàn)在兩個小時訓(xùn)練完1000萬維的速度。
大數(shù)據(jù)本身需要大規(guī)模的數(shù)據(jù)處理能力,因為在模型訓(xùn)練之前,還需要做復(fù)雜的特征工程。這一點(diǎn)來講,我們用spark,加上一些自主開發(fā)的特征訓(xùn)練算法,并且在spark接口上開發(fā)一些聚合函數(shù),以此使得單位的時間內(nèi)可以處理更大吞吐量的數(shù)據(jù),幫助有限的計算資源獲得更好的效果。
反欺詐中,通過模型提升5到6倍的效果,才完成了整個工作的30%。另外的70%,就是把該技術(shù)用到生產(chǎn)上。用到生產(chǎn)上就要有高性能。
銀行業(yè)和互聯(lián)網(wǎng)行業(yè)很不一樣?;ヂ?lián)網(wǎng)行業(yè),比如在百度搜索,一天的搜索請求普遍超過十億,甚至20億次,而銀行業(yè)的交易數(shù)據(jù),即便在當(dāng)前的互聯(lián)網(wǎng)支付時代,也沒有那么多,但其特點(diǎn)是,會要求比如在二十毫秒之內(nèi)把整個流程處理完,并且準(zhǔn)確度保證在99.9%以上。也就是說,穩(wěn)定性是特別重要的問題。
而在高性能角度來講,我們做了如下幾件事情:
第一個是特征庫,就是常說的實時變量計算。比如機(jī)器學(xué)習(xí)最后做出來的特征集里,包含歷史上“某個人曾經(jīng)去過的5個地點(diǎn)”一類特征,那么就要在線上建立實時數(shù)據(jù)庫,以便讓機(jī)器能夠取到歷史上的5次甚至是更多——比如最多可能要取到1000條歷史行為數(shù)據(jù)。
第二個是模型庫。原先無論是數(shù)模型、線性模型都相對簡單,一兩千個變量甚至都可以在代碼文件里直接去讀取 if else。
但如今,模型的維度上升至1000萬,甚至上億,十幾億,我們就要將其儲存于分布式的存儲。這當(dāng)中也要用到很多技術(shù),比如模型的特點(diǎn)是一次性地就把整個模型讀取進(jìn)來;當(dāng)然大家就想用hashtable,在hashtable上也可以進(jìn)行大量的數(shù)據(jù)結(jié)構(gòu)優(yōu)化,以便總體提升性能。
有了這種高性能的線上預(yù)估服務(wù),我們才能滿足反欺詐一類極其苛刻的業(yè)務(wù)需求。
還有一點(diǎn)就是高可用。“高可用”實現(xiàn)起來有比較明確的做法,因為銀行也是基于交易,所以有自動切換,或者說分片、副本等的技術(shù)。
利用Master-Agent結(jié)構(gòu),它可以自動完成高可用的機(jī)制,不需要再手動寫代碼。從中我們可以看到,離線的數(shù)據(jù)模型發(fā)布到模型倉庫后,可以在線地把模型拉上來,包括分片,以及內(nèi)存的數(shù)據(jù)庫。
技術(shù)問題解決之后,我們又面臨一個很大的問題是:復(fù)制。下面是我們這兩年內(nèi)在各個領(lǐng)域里面的嘗試和實踐:
到底需要多少人才能完成如此多的業(yè)務(wù)?其實我們用的人很少,特別是數(shù)據(jù)科學(xué)家。我們有一些特別的做法可以增強(qiáng)人的能力,降低其他人的進(jìn)入門檻——我們把它叫做產(chǎn)品化。
產(chǎn)品化最核心的思路是:把A的能力固化下來,讓它被更廣泛的人群所用。一開始A能做的事情,我們想辦法讓B也能做;B有可能是比較擅長業(yè)務(wù),但是不一定擅長深入的技術(shù)。
另外一個產(chǎn)品化的訴求和目標(biāo)是,讓這個能力用起來更舒服。
產(chǎn)品化的基礎(chǔ)下,我們可以調(diào)整機(jī)器學(xué)習(xí)科學(xué)家的工作,讓整個過程形成指數(shù)級的放大關(guān)系。第四范式產(chǎn)品化的平臺叫做“先知”,有3個組成部分:
第一個叫調(diào)研平臺,調(diào)研平臺是一個純粹向下的過程,可以認(rèn)為是做一個建模的過程。因為我們要用AI去預(yù)測一個業(yè)務(wù),就要做一個模型,包括剛剛講的反欺詐模型。
第二個過程是自學(xué)習(xí)平臺。反欺詐模型每天都會有新的數(shù)據(jù)、新的欺詐場景反饋回來,這些新的欺詐場景和內(nèi)容在打上數(shù)據(jù)的標(biāo)記后,我們需要更新模型。更新模型就用歷史的數(shù)據(jù)再訓(xùn)練一遍。所以自學(xué)習(xí)平臺就是,如果能夠做一套系統(tǒng),每天用調(diào)研人員做出來的套路,固定地把數(shù)據(jù)變成新的模型參數(shù)文件。
最后是預(yù)估平臺。我們已經(jīng)有了一個模型,預(yù)估平臺要解決兩個問題:用什么數(shù)據(jù)去預(yù)估,因為數(shù)據(jù)在線上和線下可能并不一致,要做大量的轉(zhuǎn)換;第二是是數(shù)據(jù)進(jìn)來以后,如何把數(shù)據(jù)轉(zhuǎn)化成一個分?jǐn)?shù)。
里面的技術(shù)難點(diǎn)在哪里呢?第一是自動機(jī)器學(xué)習(xí)。在這樣一個界面中,如何保證最終模型的效果?
正常來講,一個非機(jī)器學(xué)習(xí)或者人工智能數(shù)據(jù)挖掘?qū)I(yè)博士的人,并不懂那些理論,但是上圖中的結(jié)構(gòu)是可以做出來。如何做得比別人好?其中包含以下幾項技術(shù):
第一是自動調(diào)參。從技術(shù)上來講,第一個部分就是我們?nèi)绾文茉诒M可能少的迭代次數(shù)之下獲得一個較優(yōu)的解,這是成本和收益的關(guān)系。
第二是自動特征工程。什么樣的算法相對能夠更多地代替人的工作?反欺詐中,傳統(tǒng)的方式上,我們需要分別對用戶和商戶刻畫畫像,這已經(jīng)是兩個模型。假如有了高適應(yīng)性的算法,對于既可以用線性數(shù)據(jù)也可以用離散數(shù)據(jù)的情況,就用連續(xù)值和離散值同時訓(xùn)練的算法,降低門檻。
第三是高適應(yīng)性算法,比如線性分型、嵌入式的高維模型。
第四是性能的優(yōu)化和實際性能參數(shù)。自動調(diào)參和自動特征工程,本質(zhì)上是一個搜索的過程。但我們不能窮舉,所以需要智能的算法,研究如何能盡可能地減少次數(shù)。
我們現(xiàn)在給客戶提供服務(wù),只要建模人員建出來的模型,上線過程在web上面一鍵就可以點(diǎn)出來,這個事情是如何做到的呢?
線上線下有一致性
線上線下的一致性是指,線下怎么處理一個字段,線上就要怎么一起?。痪€下用什么樣的算法訓(xùn)練,線上就要用什么樣的算法預(yù)估。這個一致性是通過對代碼進(jìn)行控制的。
線上自動實時拼表
即特征預(yù)處理和轉(zhuǎn)換過程的線上版本自動生成。舉例來說,線下要統(tǒng)計過去一個月的最高消費(fèi)數(shù)值,是可以用一個circle解決,但由于線上的數(shù)據(jù)是不停積累的,我們就需要一個自動轉(zhuǎn)換的線上版本,簡稱線上自動實時拼表。
自動發(fā)布
正在提供服務(wù)的模型,怎么能夠一鍵無縫替換模型?怎么做訪問請求遷移?還有一點(diǎn)是發(fā)布?,F(xiàn)在發(fā)布的每個單元,其實要放在容器里才能做到資源和運(yùn)行環(huán)境的隔離。
基于算子的自學(xué)習(xí)架構(gòu)
自學(xué)習(xí)的架構(gòu)來講,分成3個部分:
數(shù)據(jù)的自動引入。
整個訓(xùn)練過程的知識增量學(xué)習(xí)——因為一方面是學(xué)習(xí)代價的問題,另外一方面其實還有很多模型是要求有穩(wěn)定性。
調(diào)度機(jī)制,比如如何產(chǎn)生新的模型,如何判斷新的模型。
所以還需要一個架構(gòu),就是計算機(jī)和自學(xué)架構(gòu)。
這張圖是調(diào)研平臺、自學(xué)習(xí)平臺、預(yù)估平臺的整個生命周期流程,先知平臺必須要做到全生命周期才能真正給人像擁有鋼鐵俠能力的一種裝備?;谶@整個系統(tǒng)的外延的完整邊界,我們就可以在上面產(chǎn)生基于AI的應(yīng)用,并且能夠盡可能地降低成本。成本降低了,無論是速度還是效率都能夠得到提升。
對于先知平臺的演示,請看視頻(大概在40:00開始):
雷鋒網(wǎng)公開課視頻實錄
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。