Netflix工程總監(jiān)眼中的分類算法:深度學習優(yōu)先級最低

針對Quora上的一個老問題:不同分類算法的優(yōu)勢是什么?Netflix公司工程總監(jiān)Xavier Amatriain近日給出新的解答,他根據(jù)奧卡姆剃刀原理依次推薦了邏輯回歸、SVM、決策樹集成和深度學習,并談了他的不同認識。他并不推薦深度學習為通用的方法,這也側(cè)面呼應(yīng)了我們之前討論的問題:深度學習能否取代其他機器學習算法。

不同分類算法的優(yōu)勢是什么?例如有大量的訓練數(shù)據(jù)集,上萬的實例,超過10萬的特征,我們選擇哪種分類算法最好?Netflix公司工程總監(jiān)Xavier Amatriain認為,應(yīng)當根據(jù)奧卡姆剃刀原理(Occam’s Razor)來選擇算法,建議先考慮邏輯回歸。

  • 選擇一個合理的算法可以從很多方面來考察,包括:
  • 訓練實例的數(shù)量?
  • 特征空間的維度?
  • 是否希望該問題線性可分?
  • 特征是否是獨立的?
  • 是否預期特征能夠線性擴展?
  • 過度擬合是否會成為一個問題?
  • 系統(tǒng)在速度/性能/內(nèi)存使用等方面的要求如何?

邏輯回歸

作為一般的經(jīng)驗法則,我建議先考慮邏輯回歸(LR,Logistic Regression)。邏輯回歸是一個漂亮乖巧的分類算法,可以訓練你希望的特征大致線性和問題線性可分。你可以很容易地做一些特征引擎把大部分的非線性特征轉(zhuǎn)換為線性。邏輯回歸對噪聲也相當強勁,能避免過度擬合,甚至使用L2或L1正則化做特征選擇。邏輯回歸也可以用在大數(shù)據(jù)場景,因為它是相當有效的,并且可以分布使用,例如ADMM。 邏輯回歸的最后一個優(yōu)點是,輸出可以被解釋為概率。這是一個好的附加作用,例如,你可以使用它排名而不是分類。

即使在你不希望邏輯回歸100%地工作,你也可以幫自己一個忙,在使用“票友”辦法之前,運行一個簡單的L2正則化邏輯回歸作為基線。

好了,現(xiàn)在你已經(jīng)設(shè)置邏輯回歸基線,下一步你應(yīng)該做的,我基本上會推薦兩個可能的方向:支持向量機(SVM)或者決策樹集成。如果我不知道你的具體問題,我肯定會選擇后者,但我將開始描述為什么SVM可能是一個值得考慮的方法。

支持向量機

支持向量機使用一個與LR不同的損失函數(shù)(Hinge)。它們也有不同的解釋(maximum-margin)。然而,在實踐中,用線性核函數(shù)的SVM和邏輯回歸是沒有很大的不同的(如果你有興趣,你可以觀察Andrew Ng在他的Coursera機器學習課程如何從邏輯回歸中驅(qū)動SVM)。用SVM代替邏輯回歸的一個主要原因可能是因為你的問題線性不可分。在這種情況下,你將不得不使用有非線性內(nèi)核的SVM(如RBF)。事實上,邏輯回歸也可以伴隨不同的內(nèi)核使用,但出于實際原因你更可能選擇SVM。另一個使用SVM的相關(guān)理由可能是高維空間。例如,SVM已經(jīng)被報道在工作文本分類方面做得更出色。

不幸的是,SVM的主要缺點是,它們的訓練低效到痛苦。所以,對于有大量訓練樣本的任何問題,我都不會推薦SVM。更進一步地說,我不會為大多數(shù)“工業(yè)規(guī)?!钡膽?yīng)用程序推薦SVM。任何超出玩具/實驗室的問題可能會使用其他的算法來更好地解決。

決策樹集成

第三個算法家族:決策樹集成(Tree Ensembles)。這基本上涵蓋了兩個不同的算法:隨機森林(RF)和梯度提升決策樹(GBDT)。它們之間的差異隨后再談,現(xiàn)在先把它們當做一個整體和邏輯回歸比較。

決策樹集成有超過LR的不同優(yōu)勢。一個主要優(yōu)勢是,它們并不指望線性特征,甚至是交互線性特性。在LR里我沒有提到的是,它幾乎不能處理分類(二進制)特性。而決策樹集成因為僅僅是一堆決策樹的結(jié)合,可以非常好地處理這個問題。另一主要優(yōu)點是,因為它們構(gòu)造了(使用bagging或boosting)的算法,能很好地處理高維空間以及大量的訓練實例。

至于RF和GBDT之間的差別,可以簡單理解為GBDT的性能通常會更好,但它們更難保證正確。更具體而言,GBDT有更多的超參數(shù)需要調(diào)整,并且也更容易出現(xiàn)過度擬合。RF幾乎可以“開箱即用”,這是它們非常受歡迎的一個原因。

深度學習

最后但并非最不重要,沒有深度學習的次要參考,這個答案將是不完整的。我絕對不會推薦這種方法作為通用的分類技術(shù)。但是,你可能會聽說這些方法在某些情況下(如圖像分類)表現(xiàn)如何。如果你已經(jīng)通過了前面的步驟并且感覺你的解決方案還有優(yōu)化的空間,你可能嘗試使用深度學習方法。事實是,如果你使用一個開源工具(如Theano)實現(xiàn),你會知道如何使這些方法在你的數(shù)據(jù)集中非??斓貓?zhí)行。

總結(jié)

綜上所述,先用如邏輯回歸一樣簡單的方法設(shè)定一個基準,如果你需要,再使問題變得更加復雜。這一點上,決策樹集成可能正是要走的正確道路,特別是隨機森林,它們很容易調(diào)整。如果你覺得還有改進的余地,嘗試GBDT,或者更炫一些,選擇深度學習。

你還可以看看Kaggle比賽。如果你搜索關(guān)鍵字“分類”,選擇那些已經(jīng)完成的,你能找到一些類似的東西,這樣你可能會知道選擇一個什么樣的方法來贏得比賽。在這一點上,你可能會意識到,使用集成方法總?cè)菀装咽虑樽龊谩.斎患傻奈ㄒ粏栴},是需要保持所有獨立的方法并行地工作。這可能是你的最后一步,花哨的一步。

編輯點評:Xavier Amatriain不推薦深度學習為通用算法的理由,并不能說是因為深度學習不好,而是因為深度學習會增加復雜性及成本,卻無法保證在所有的場景表現(xiàn)出比邏輯回歸、SVM及決策樹集成更優(yōu)的結(jié)果。事實上,Xavier Amatriain的Netflix團隊早已開始研究人工神經(jīng)網(wǎng)絡(luò)和深度學習技術(shù),希望借助AWS云服務(wù)和GPU加速的分布式神經(jīng)網(wǎng)絡(luò),分析網(wǎng)民最愛看的電影電視劇,實現(xiàn)節(jié)目的個性化推薦。

Netflix推薦系統(tǒng)架構(gòu)(圖片來自Xavier Amatrain參與撰寫的Netflix官方博客)

此后,Xavier Amatriain還分享了Netflix機器學習實踐的十大經(jīng)驗教訓,大致包括:

  • 更多的數(shù)據(jù)需要與更好的模型之匹配
  • 你可能不需要所有的大數(shù)據(jù)
  • 更復雜的模型未必意味著更好的結(jié)果,可能是你的樣本集太簡單
  • 要充分考慮你的訓練數(shù)據(jù)
  • 學會處理偏差
  • UI是聯(lián)系算法和最重要的用戶之間唯一通道
  • 正確的演進方式比數(shù)據(jù)和模型更重要
  • 分布式算法重要,知道在哪個層級使用它更重要
  • 選擇合適的度量自動超參數(shù)優(yōu)化
  • 并非所有的事都能離線完成,近線處理也是一種選擇

原文出處: Quora???譯文出處:ITEYE

End.

極客網(wǎng)企業(yè)會員

免責聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關(guān)資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2015-06-18
Netflix工程總監(jiān)眼中的分類算法:深度學習優(yōu)先級最低
針對Quora上的一個老問題:不同分類算法的優(yōu)勢是什么?Netflix公司工程總監(jiān)Xavier Amatriain近日給出新的解答,他根據(jù)奧卡姆剃刀原理依次推薦了邏輯回歸、SVM、決策樹集成和深度學習

長按掃碼 閱讀全文