第四正規化陳雨強:萬字深析工業界機器學習最新黑科技

機器之心發表於2017-07-25

近日,全球最頂級大資料會議 Strata Data Conference 在京召開。Strata 大會被《福布斯》雜誌譽為「大資料運動的里程碑」,吸引了大資料、人工智慧領域最具影響力的資料科學家與架構師參會。第四正規化聯合創始人、首席研究科學家陳雨強受邀出席,並以「人工智慧工業應用痛點及解決思路」為題,發表主題演講。

陳雨強是世界級深度學習、遷移學習專家,曾在 NIPS、AAAI、ACL、SIGKDD 等頂會發表論文,並獲 APWeb2010 Best Paper Award,KDD Cup 2011 名列第三,其學術工作被全球著名科技雜誌 MIT Technology Review 報導。同時,陳雨強也是 AI 工業應用領軍人物,在百度鳳巢任職期間主持了世界首個商用的深度學習系統、在今日頭條期間主持了全新的資訊流推薦與廣告系統的設計實現,目前擔任第四正規化首席研究科學家,帶領團隊研究、轉化最領先的機器學習技術,著力打造人工智慧平臺級產品「先知」。

以下內容根據陳雨強主題演講編寫,略有刪減。

大家好,我是來自於第四正規化的陳雨強,目前主要負責人工智慧演算法研發及應用的相關工作。非常高興與大家分享人工智慧在工業界應用的一些痛點、以及相應的解決思路。

工業大資料需要高 VC 維

人工智慧是一個非常炙手可熱的名詞,且已經成功應用在語音、影像等諸多領域。但是,現在人工智慧有沒有達到可以簡單落地的狀態呢?工業界的人工智慧需要什麼技術呢?帶著這些問題開始我們的思考。

首先,我們先探討一下工業界人工智慧需要一個什麼樣的系統?人工智慧的興起是由於資料量變大、效能提升以及平行計算技術發展共同產生的結果。所以,工業界的問題都是非常複雜的。因此,我們需要一個可擴充套件系統,不僅在吞吐與計算能力上可擴充套件,還需要隨著資料量與使用者的增多在智慧水平上可擴充套件。怎麼實現一個可擴充套件系統呢?其實很重要的一點是工業界需要高 VC 維的模型,去解決智慧可擴充套件性的問題。怎麼獲得一個高 VC 維的模型呢?大家都知道,機器學習=資料+特徵+模型。如果資料在給定的情況下,我們就需要在特徵和模型兩個方面進行優化。

特徵共分兩種,一種叫巨集觀特徵,比方說年齡、收入,或是買過多少本書,看過多少部電影。另外一種是微觀特徵,指的是比擬細粒度的特徵,你具體看過哪幾本書,或者具體看過哪幾部電影。每一部電影,每一本書,每一個人,都是不同的特徵。書有幾百萬本,電影有幾百萬部,所以這樣的特徵量非常大。

模型可分為兩類,一個是簡單模型,比如說線性模型。還有一種是複雜模型,比如非線性模型。

第四正規化陳雨強:萬字深析工業界機器學習最新黑科技

這樣就把人工智慧分為了四個象限。如上圖,左下角是第一象限,使用巨集觀特徵簡單模型解決問題。這種模型在工業界應用非常少,因為它特徵數少,模型又簡單,VC 維就是低的,不能解決非常複雜的問題。右下角的第二象限是簡單模型加上微觀特徵,最有名的就是大家熟知的谷歌 Adwords,用線性模型加上千億特徵做出了世界頂尖的廣告點選率預估系統。左上角的第三象限是複雜模型加巨集觀特徵,也有諸多知名公司做出了非常好的效果,例如 Bing 廣告和 Yahoo,經典的 COEC+複雜模型在這個象限內是一個慣用手段。最後是第四象限,利用複雜模型加上微觀特徵,由於模型空間太大,如何計算以及解決過擬合都是研究的熱點。

剛才說沿著模型和特徵兩條路走,那如何沿著模型做更高維度的機器學習呢?研究模型主要是在學術界,大部分的工作是來自於 ICML、NIPS、ICLR 這樣的會議,非線性有三把寶劍分別是 Kernel、Boosting、Neural Network。Kernel 在十年前非常火,給當時風靡世界的演算法 SVM 提供了非線效能力。Boosting 中應用最廣泛的當屬 GBDT,很多問題都能被很好地解決。Neural Network 在很多領域也有非常成功的應用。工業界優化模型的方法總結起來有以下幾點。首先,基於過去的資料進行思考得到一個假設,然後將假設的數學建模抽象成引數加入,用資料去擬合新加入的引數,最後用另一部分資料驗證模型的準確性。這裡舉一個開普勒沿模型這條路發現開普勒三定律的例子。在中世紀的時候,第谷把自己的頭綁在望遠鏡上堅持觀察了 30 年夜空,將各個行星的運動軌跡都記錄下來。基於這些資料,開普勒不斷的進行假設,最後假設行星的運動軌道是橢圓的,用橢圓的方程去擬合他的資料,發現擬合的非常好,便得到了一個新的模型:開普勒第一定律。這就是一個典型的沿著模型走的思路,通過觀測資料,科學家獲得一個假設,這個假設就是一個模型,然後用資料擬合這個模型的引數,最終在新的資料上驗證模型是否正確,這是沿著模型走的一條路。

沿著特徵走主要是由工業界來主導,比如說谷歌的 Adwords 裡面有上千億的特徵,想要描述為什麼會產生一次廣告點選,這就需要解決高效並行的問題。這些技術大部分進展來自於 KDD 或是 WWW。沿著特徵優化機器學習,就是把問題通過特徵的方式分的足夠細,做非常準確的模型。

到底是深度模型好還是寬度模型好呢?這裡有一個沒有免費的午餐定理:不存在萬能的模型。簡單來說,世界上不存在一個優化演算法對任何問題上都有效,也就是說我們總能找到一個問題,讓這個優化演算法表現的並不比隨機的更好。更進一步的說,所有的機器學習都是一個偏執,代表了對這個世界的認知。如果資料較少,這個偏執就需要比較強。比如說科學家觀測物理現象,資料並不是特別多。這種情況下,你需要大量的理論和猜想,有少量資料做擬合驗證就可以了。但如果假設錯的話,就可能出現錯誤的結論。比如用地心論研究天體物理的話,就發現結論都是錯的。但是如果資料很多,我們就不需要很強的偏置,將更多的不確定性加入模型,自動的通過資料進行擬合。綜合起來,工業界的機器學習裡面並沒有免費的午餐,不存在哪一個模型是萬能的模型。所以說你一定要根據你的業務做出合適的選擇,才是最好的一個方式。

人工智慧落地的關鍵:提高 AI 的易用性

人工智慧目前還遠沒有達到可以遍地開花的程度,即使解決了剛才講的寬與深的問題,我們依然還有很多事情要做。如何訓練出好的模型、如何去選擇好的引數、如何進行特徵組合,都不是一件容易的事情。

第四正規化陳雨強:萬字深析工業界機器學習最新黑科技

比如,資料需要歸集、整理、匯入、清洗、拼接、特徵工程等之後才能模型訓練。之後模型上線還要保證系統的穩定性、時效性和吞吐等等指標。同時為了提供線上服務,需要重做一套線上的架構,這個架構需要保證資料流實時性、線上線下一致性,以及模型作用的機制。只有完成這些,這樣才真正擁有了一個落地的人工智慧系統,否則只能稱之為在筆記本上做一個 AI 的玩具而已。

剛才說到的還只是一個公司的問題與系統,如果用在各行各業的不同問題上,會發現問題非常多,所以企業一定需要一個整合上述所有能力的人工智慧平臺。開源社群內好的工具平臺和演算法能夠起到很大作用,這些工具也會日趨成熟,但並不足夠。雖然看起來人工智慧已經在非常多的領域應用或者開始了突破性的嘗試,但是如果對比 Hadoop 這樣的分散式儲存計算系統來說,還遠遠未普及。

第四正規化陳雨強:萬字深析工業界機器學習最新黑科技

關於這個問題我們先分析 Hadoop。之所有這麼多人用 Hadoop 是因為它雖然是個分散式系統,但對使用它的程式設計師並不需要掌握很高的分散式系統知識,研發人員並不需要為了使用 Hadoop 針對性的對自己的資料、業務做出改變,也不需要因為 Map-Reduce 框架重新設計自己的線上服務系統。但人工智慧不一樣,為了使用 AI,所有的上下游元件都會和模型相關:不同的模型不僅意味著不同的訓練系統,還意味著不同的實時、非實時的資料流,不同的拼表要求與框架選擇、不同的特徵抽取、不同的線上服務架構、不同的災備架構、回滾架構相關。這樣你就會發現,為 AI 系統做資料流與線上系統的架構師,必須要懂機器學習才能做好工作。

所以現在能夠做 AI 應用的人,主要還是那些研究及應用的機器學習科學家,需要那種既懂機器學習,又瞭解業務,還精通系統架構的工程師。這就造成了 AI 的高門檻。就如同三四十年前,真正程式設計的人並不是現在我們這樣的人,而是一群科學家們,他們通過紙帶來控制程式的執行,自己不僅要程式設計,還得非常懂計算機體系架構。導致的結果是,根本不是每個人都能接觸到這項技術,不是每個企業都能受惠於這個技術。但是現在,甚至在 Excel 中都可以程式設計,這些程式設計師可能完全不知道計算機的體系結構、作業系統、編譯原理、資料庫的概念,將全部心思花在理解與解決業務問題上,達到事半功倍的效果。

所以,如果想讓 AI 在工業界中產生更大的影響,真正的落地,我們需要的是一個完整的人工智慧應用平臺,讓人以更低的成本用上人工智慧。從這個角度上看,阻礙 AI 普及的並不是現在的演算法效果不夠好,而是現在演算法的門檻太高,研發新的平臺以及演算法降低門檻的重要性大於優化演算法效果的重要性,我們期望用低的門檻獲得好的效果。

如何解決特徵工程

如何降低這些門檻呢?這裡分享一下第四正規化的成果。首先特徵工程是工業界應用 AI 的巨大的難關。特徵工程的目標是針對於某個模型找出與要解決問題相關的關鍵屬性,現在也有一些開源的專案嘗試解決特徵工程,下圖就列出了 Spark 2.2 官方文件中包含的特徵工程演算法。那麼,針對不同的業務、不同的模型,這些運算元就足夠我們低門檻建模了嗎?

第四正規化陳雨強:萬字深析工業界機器學習最新黑科技

如果想要做好特徵工程,需要對將要使用的機器學習演算法有深入瞭解才行,隨便地將所有的特徵全部扔進去,現有的演算法並不能很好地處理。有時候,不同的演算法為了達到同一個目標,使用特徵工程與做法會完全不一樣。以新聞推薦為例,我們要做兩種特徵,來提高推薦新聞的點選率。一種是一階特徵,描述的是那些使用者直接喜歡的內容。另一種是二階特徵,描述的的是個性興趣的擴充套件。比如說喜歡大資料的人,很有可能對機器學習也感興趣。

在下面的示意中,小人代表一個使用者(User),小人下面表示通過統計得到的使用者畫像,也就是使用者的歷史興趣點(User_Topic)。右邊是 3 篇新聞,每個新聞有一個話題(News_Topic)。

第四正規化陳雨強:萬字深析工業界機器學習最新黑科技

那麼,如何在之前提到的「簡單模型(線性模型)+微觀特徵」這條路新增一階特徵呢?如圖左上角所示,我們只需要簡單的將使用者與新聞話題做組合特徵(User-New_Topic 笛卡爾積)就可以了。在這條路上,我們並不需要任何的使用者畫像統計,因為最後每篇新聞點選或者不點選就已經可以訓練出「User-News_Topc」組合特徵的權重與偏好了。這種方式下,線上上服務的時候,所有的資訊都是推薦時能獲取的,但是為了使用者興趣更新及時,我們需要把模型的時效性做到非常高。

回頭看,如何在之前提到的「複雜模型(非線性模型)+巨集觀特徵」這條路新增一階特徵呢?如圖左下角所示,由於是巨集觀特徵,我們需要將不同的話題變成單個特徵,一種做法是通過一階邏輯的判斷「本篇新聞的話題是否屬於使用者歷史的興趣」加入。這種方式下,線上上服務的時候,我們除了需要推薦實時資訊之外,還需要實時維護使用者歷史的興趣點,但是模型本生的更新頻率就不用那麼快了。畢竟,為了達到推薦時效性目標,要麼特徵靜態、模型特別實時,要麼特徵實時、模型靜態不變。

那麼,如果我們要學習二階特徵呢?對於線性模型(如右上角所示),我們也需要用到使用者的歷史興趣點,將使用者的歷史喜好與文章的話題進行組合(User_Topic-New_Topic),這樣模型就可以學到歷史上喜歡什麼樣話題的人還會喜歡什麼樣的新聞話題,達到二階遷移的目標。對於非線性模型(如右下角所示),我們要做的將原先的一階邏輯判斷(可以認為是個 Identity 矩陣)變成一個二階狀態轉移矩陣,通過歷史統計得知不同話題間喜歡轉換的情況,推算出一個不在使用者現有興趣點中的文章話題是不是使用者喜歡的。

更進一步的,我們總結對比一下,對於前文提到的機器學習四象限中的第 2,3,4 象限的模型,我們做特徵工程的方式差距非常大。對於一階特徵,如果是線性模型加精細特徵,直接做組合,不用統計;如果做非線性模型是需要統計的,同時用包含關係來做;如果用非線性模型不需要用包含關係,模型本身會進行特徵組合。如果做二階特徵,每種方法都需要使用統計特徵,但適用方式也各不相同,比方說非線性模型巨集觀特徵,你需要三個相關的資訊和很多統計才可以做到。

第四正規化陳雨強:萬字深析工業界機器學習最新黑科技

這個例子說明了一個道理,如果要做好的特徵工程,需要非常多的針對模型的定製化的優化,僅用現在的工具還完全不夠,完全需要靠人的經驗與判斷。因此,研發自動特徵工程的演算法就變得尤為重要。自動特徵工程是一個比較難的問題,在學術界與工業界都在積極地研究這個問題,這裡跟大家分享自動工程的三個方向,隱式特徵組合(如 NN,FM),半顯式特徵組合(如 GBDT)與顯式特徵組合(顯式特徵叉乘)。

隱式特徵組合

隱式特徵組合主要特點是對連續值特徵非常友好,最成功的應用場景是語音和影像。在這些原始訊號是畫素或是聲波的問題裡面,深度學習通過神經元網路產生底層的 Filter 以及層次化的特徵組合,獲得了遠超人類手工特徵工程的效果。但是深度神經網路並不是萬能的,在深度學習中,高維離散特徵的變數處理非常複雜,同時缺乏可解釋性,過於黑盒化也是神經網路大家關注的焦點。這樣會導致深度學習出來的特徵組合相對難用到其他演算法之上,也很難給人明確的資訊反饋。

第四正規化陳雨強:工業界機器學習痛點及解決思路

針對 NN 難以處理離散特徵的問題,我們需要 Large Scale Embedding 的技術進行解決。Embedding 最早在 NN 上的應用是在 NLP 的問題上,當時研究者們使用 Embedding 的技術將每個單詞對映到一個低維空間,通過 concat,sum,poolling,convolution 等方式形成等長的最底層輸入,然後使用標準的深度神經網路進行訓練。隨後在越來越多的領域用上了 Embedding 技術,推薦是一個典型的場景,限制波爾茲曼機(RBM)在提出之初就曾使用 Embedding 嘗試解決協同過濾問題。最近,谷歌發表描述如何使用大規模 Embedding 技術在 Youtube 上向數以十億計的使用者推薦數以億計的視訊,在他們的工作中,他們同時對每個使用者與視訊進行 Embedding,之後把使用者觀看歷史、搜尋歷史等視訊的向量通過求和變成特徵,繼而進行深度學習,獲得了比較大的成功。

第四正規化陳雨強:工業界機器學習痛點及解決思路

Large Scale Embedding 在現在依然是一個比較熱門的研究領域,其中的成果包括 Discrete Factorization Machine, FNN, PNN, DeepFM 等,上圖顯示了這些演算法的異同,簡單來講這些模型既能找到特徵之間的推理關係,同時也能去記憶比較細的特徵。在這個領域,第四正規化提出了 DSN(Deep Sparse Network)的演算法,它是一個非常寬且深的模型,裡面同樣會做大規模 Embedding,用神經網路做自動學習組合,目標解決高維模型(上萬萬億 VC 維度)的正則化以及平行計算問題。

半顯式特徵組合

第二個是半顯式的組合,主要基於的是樹模型。為什麼說是 「半顯式」 呢?因為大家可能認為樹模可解釋或者做特徵組合是很自然的事情,但其實並不是:葉子節點的每一個分支並不是一種顯式、直接的特徵組合,而是這些特徵在特定取值區間的組合。所以從結果上來說我們做到了特徵組合,有一定可解釋性,但是同樣也沒有辦法直接看特徵相關性或者特徵之間組合關係。作為非線性模型,樹模型主要的特點是容易理解,效果也是非常好的。但是類似的,它對離散的精細特徵非常難處理,傳統上訓練一棵 m 個特徵 n 個訓練資料 k 層深 t 棵樹的模型需要 O(mntk) 的時間,即使對係數特徵進行優化,也很難降低特徵分裂中分桶上的空間與傳輸消耗。在這個方面,第四正規化提出了一系列演算法,包括 HE-TreeNet 和 GBM 系列演算法,通過 Embedding,Ensemble、Stacking,General Boosting 等方式讓樹模型可以在大規模特徵的情況下可以進行特徵組合。

第四正規化陳雨強:工業界機器學習痛點及解決思路

顯式特徵組合

第三個介紹一下顯式的組合,演算法的輸出會明確指定哪些特徵組合起來(笛卡爾積)作為基礎特徵。整體思路沿著搜尋與搜尋優化這條路,也有一些地方使用正則化加貪心。由於顯式特徵組合的問題求解空間大,尋找最優特徵組合是個非常難的問題。我們對比 AlphaGo 下圍棋,19 乘 19 的棋盤上每個點上有黑子 / 白子 / 無子三種狀態,它的狀態空間最大是第四正規化陳雨強:萬字深析工業界機器學習最新黑科技。考慮顯式特徵組合要做的事情,我們要有個特徵,限制高階組合階數不超過,從中選取個特徵,那麼 2 到K特徵的總量是第四正規化陳雨強:萬字深析工業界機器學習最新黑科技,最終再從其中選取個特徵,其空間是  第四正規化陳雨強:萬字深析工業界機器學習最新黑科技  ,即使將不大的中帶入,量級會遠遠大於第四正規化陳雨強:萬字深析工業界機器學習最新黑科技,從解空間大小的角度看顯示特徵組合比下圍棋還要更難。

第四正規化陳雨強:工業界機器學習痛點及解決思路

顯式特徵組合還有一個問題是如何做連續值的組合,比如說一個人的年齡是 30,收入是 10000,應該怎麼做組合特徵呢?是乘、是加還是平方和?在 NN 中,是通過線性組合加上非線性變化,在 GBDT 中使用過特徵值分裂,但是對限時特徵組合,實際上沒有一個好的現有方法去直接組合。

雖然有著重重困難,顯式特徵組合的優勢在於可解釋性,會提供一個非常深入的洞察,可以知道哪些特徵是潛在有關係的,應該組合起來;同時這樣的方法享受比較好的可疊加性:所有機器學習演算法都基於特徵,顯式特徵組合的產出是特徵集,這個特徵集可以增強所有其他機器學習的演算法,成為訓練的基礎。

第四正規化陳雨強:工業界機器學習痛點及解決思路

目前,顯式特徵組合主要有幾種演算法,一些方法基於 Boosting,訓練單 Feature 弱分類器,通過 Boosting 的過程尋找組合的啟發;或者基於 Regularization 進行權重截斷,形成組合候選。這些演算法一般不是為了特徵組合而設計,組合也多為訓練過程的副產物,很難真正的獲得高階的組合特徵。

新一代的顯式特徵組合:FeatureGO

下面介紹第四正規化最新發布的演算法—FeatureGO。它是基於 MCTS,對特徵與特徵組合狀態進行建模,訓練組合下的收益函式。在搜尋的過程中,我們做了非常多的調優技術,使用我們內部線性分型演算法 LFC 解決連續值特徵組合的問題。最終,我們發現這個特徵組合最多能達到十階以上,且發現即使達到十階也能提供明顯的的效果提升,這個是過去靠人所做不到的事情。即使是在最好的廣告或者推薦系統中,人工的特徵組合一般也只能到達 5-6 階。

我們在 4 個資料及上實驗了 FeatureGO 演算法,包括兩個公開的資料集(higgs、criteoDeepFM)與兩個我們私有的資料集(l_data,m_data),資料集統計資訊如下:

第四正規化陳雨強:工業界機器學習痛點及解決思路

在這四個資料集上,我們使用 FeatureGO 產生的特徵集合加上 LR 模型進行訓練,使用 AUC 作為評估標準。實驗效果如下。可以看到,使用了 FeatureGO 進行特徵工程,在 4 個資料集上的效果都有非常明顯的提升,大部分提升在 AUC 2 個百分點左右。

第四正規化陳雨強:萬字深析工業界機器學習最新黑科技


我們也實驗了效果隨著時間與新組合特徵的加入而發生的變化,如下圖所示。可以看到隨著時間的變長,特徵組合數越多,特徵組合效果會越來越好。

第四正規化陳雨強:工業界機器學習痛點及解決思路

基線對比演算法除了 LR 之外,我們也比較了一些最新的非線性演算法成果,在 cretio 廣告資料上進行實驗,結果如下。在這個實驗裡,我們也可以看到,即使是基於最新 NN 或者 FM 的特徵組合,也並不能找全所有可以利用的資訊,這個對比中顯式特徵組合依然有非常好的表現。同時要注意到的是,FeatureGO 產出的新組合特徵還可以進一步提高上述所有模型的效果。

第四正規化陳雨強:工業界機器學習痛點及解決思路


在 FeatureGO 這樣的演算法背後,其實還有好多隱藏的架構上的黑科技,讓基於搜尋的演算法可以實際變成可行。比方說我們提出了 CPS(Cross Parameter-server Sharing),Dynamic Graph 等技術,將計算過程中公共的資料讀取處理、特徵請求儲存更新等進行共享,達到同時訓練 10 個模型的時候使用遠小於 10 倍單模型時間的效果。

關於計算能力與架構,我們認為這是人工智慧至關重要的一部分。過去將 APP 開機速度由 20ms 優化到 2ms 其實意義並不是特別大,但是在機器學習中,10 倍的速度意味著同時間訓練 10 倍多的資料,或者同時能訓練 10 個模型,也就意味著更好的效果,這也就代表著以往模型優化、效果優化這種只有科學家做的事情,現在優秀架構師也能做到。在這方面,谷歌是非常好的榜樣。在過去,從沒有人想過 LR 這麼簡單的模型也能獲得良好的效果,但是通過極致的工程架構與實現優化,谷歌證明了使用上千億特徵,即使簡單的 LR 模型也不比任何非線性模型差。第四正規化也是一個架構工程優化和演算法並重的公司。我們不僅做人工智慧的通用平臺,也會投入非常多的精力去優化速度與架構,希望能獲得更強、更全面的人工智慧水平和能力。

第四正規化陳雨強:工業界機器學習痛點及解決思路

說到計算與架構這一點,也要提到谷歌 Deepmind 團隊最近做的另外一件工作 NEURAL ARCHITECTURE SEARCH WITH REINFORCEMENT LEARNING,通過強化學習框架自動進行神經元網路結構的學習,有人提到這個工作為了自動獲得一個網路結構,使用了 800 塊 GPU 同時進行訓練,非常不實用。但我們認為,談到將來的趨勢,不會是通過專家來節省機器,降低機器的使用,而是通過機器節省專家降低專家的參與,因為隨著摩爾定律,機器的計算成本會指數級的降低,但是專家的數量並不會指數增加。要讓更多的領域用上人工智慧,更少人力的 AutoML 是將來的必經之路。

目前,第四正規化的演算法與產品 「先知平臺」 在更廣泛意義上的 AutoML 與減低門檻兩方面,都在持續的投入和研究。這些新的研究方向包括自動拼表資料匯入、模型可解釋、自動線上優化等。我們要做的事情,是如何把人工智慧變的更加自動化,使 AI 變得跟 Windows 一樣普及。現在,「先知平臺」試用版已經正式對外開放,歡迎登陸 prophet.4paradigm.com 註冊使用。

相關文章