幾年前,一家女裝公司的董事們請我幫助他們為客戶開發更好的時尚推薦。任何頭腦正常的人都不會在這樣一個我知之甚少的領域尋求我的個人建議——畢竟我是一名男性計算機科學家——但他們不是在尋求我的個人建議。他們是在尋求我的機器學習建議,我答應了。僅僅基於銷售資料和客戶調查,我就能夠向我從未見過面的女性推薦我從未見過的時尚單品。我的推薦超越了專業造型師的表現。請注意,我對女性時尚仍然知之甚少。
機器學習是計算機科學的一個分支,它使計算機能夠從經驗中學習,並且它無處不在。它使網路搜尋更相關,血液測試更準確,相親服務更有可能為您找到潛在的伴侶。最簡單的形式是,機器學習演算法獲取現有的資料集,梳理其中的模式,然後使用這些模式來生成對未來的預測。然而,過去十年機器學習的進步已經改變了這個領域。事實上,機器學習技術是使計算機在許多我們希望從事的任務中比人類“更聰明”的原因。見證沃森,IBM計算機系統,它使用機器學習擊敗了世界上最優秀的《危險邊緣》選手。
然而,最重要的機器學習競賽並沒有涉及會說話的《危險邊緣》遊戲機。幾年前,線上電影租賃公司Netflix希望幫助其客戶找到他們會喜歡的電影——特別是那些不是高需求的“新發行”影片,而是來自他們很大程度上被忽視的舊片目錄中的電影。該公司已經擁有一個內部電影推薦系統,但高管們知道它遠非完美。因此,該公司發起了一場競賽,以改進現有的工作。規則很簡單:第一個將內部系統的效能提高10%的參賽作品將獲得100萬美元的獎金。來自世界各地的數萬人報名參加。
支援科學新聞報道
如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞報道 訂閱。透過購買訂閱,您正在幫助確保關於塑造我們當今世界的發現和想法的具有影響力的故事的未來。
對於機器學習研究人員來說,這場競賽是一個夢想(不僅僅是為了獎金,儘管它很誘人)。任何機器學習系統最關鍵的組成部分是資料,而Netflix獎提供了1億個真實的、可供下載的資料點。
訓練日
Netflix競賽持續了將近三年。許多小組透過將單個電影分解為不同屬性的長陣列來解決這個問題。例如,您可以根據各種特徵對任何電影進行評分,例如它有多有趣、有多複雜或演員有多有吸引力。對於每個觀眾,您回顧並檢視他評論過的電影,以瞭解他對這些屬性的重視程度——他有多喜歡喜劇,他喜歡簡單還是複雜的情節,以及他有多喜歡看有吸引力的電影明星[參見第81頁的方框]。
現在,預測變成了將觀眾的品味與新電影的屬性相匹配的簡單問題。如果他喜歡喜劇和複雜的情節,那麼他很可能會喜歡像《熱情似火》或《一條名叫旺達的魚》這樣的棘手的鬧劇。在演算法匹配了數十個這些屬性之後,最終的推薦應該能很好地預測觀眾會如何喜歡這部電影。
我們自然而然地會想到諸如“喜劇”或“複雜情節”等容易識別的屬性,但演算法不需要做這樣的區分。事實上,整個過程是自動化的——研究人員從不費心分析電影內容。機器學習演算法將從隨機的、匿名的屬性開始。隨著它獲得關於觀眾過去如何評價電影的資料,它會微調屬性,直到它們與觀眾評價電影的方式相對應。
例如,如果喜歡電影A的人也傾向於喜歡電影B、C和D,則演算法會提出一個A、B、C和D共有的新屬性。這發生在所謂的訓練階段,計算機在其中搜索數百萬個觀眾評分。這個階段的目標是建立一組基於實際評分而不是主觀分析的客觀屬性。
機器學習演算法產生的不同屬性可能很難解釋;它們可能不像“喜劇內容”那樣直截了當。事實上,它們可能非常微妙,甚至難以理解,因為該演算法只是試圖找到預測觀眾將如何評價電影的最佳方式,而不一定向我們解釋它是如何完成的。如果一個系統表現良好,我們就不堅持要理解它是如何做到的。
這不是世界慣常的運作方式。在我的職業生涯早期,我為一個銀行開發了一個信貸審批系統。當我完成時,銀行希望我解釋每個屬性的含義。這個要求與系統的效能無關,系統性能很好。原因是法律上的:銀行不能在沒有闡明理由的情況下拒絕某人的信貸,他們不能只給某人發一封信,說申請被拒絕是因為X小於0.5。
不同的機器學習系統將開發獨特的屬性集。在Netflix競賽的最後幾周,一直獨立工作的小組開始使用所謂的聚合技術來融合他們的演算法。在三年競賽的最後時刻,兩支隊伍仍在爭奪最高獎項。記分牌顯示,The Ensemble(一個包括我在加州理工學院研究小組的博士校友的團隊)略微領先於BellKor's Pragmatic Chaos。然而,最終審計的統計結果表明,兩支隊伍處於統計上的平局——每支隊伍都比原始演算法提高了10.06%。根據比賽規則,如果出現平局,獎項將頒發給最先提交解決方案的團隊。經過三年的競爭,在最後時刻的戰鬥中,BellKor's Pragmatic Chaos比The Ensemble早20分鐘提交了解決方案。在三年的競爭中,20分鐘的延遲造成了100萬美元的差距。
完美契合
電影評分競賽中使用的機器學習型別稱為監督學習。它也用於諸如醫療診斷之類的任務。例如,我們可以為計算機提供來自患者歷史記錄的數千張白細胞影像,以及關於每張影像是癌細胞還是非癌細胞的資訊。從這些資訊中,演算法將學習應用某些細胞屬性——形狀、大小和顏色,或許——來識別惡性細胞。在這裡,研究人員“監督”學習過程。對於訓練資料中的每張影像,他或她都會給計算機正確的答案。
監督學習是最常見的機器學習型別,但它不是唯一的一種。例如,機器人專家可能不知道讓雙足機器人行走的最佳方式。在這種情況下,他們可以設計一種演算法,該演算法嘗試多種不同的步態。如果某種步態使機器人摔倒,則該演算法會學習不再這樣做。
這就是強化學習方法。它基本上是試錯法——一種我們都熟悉的學習策略。在一個典型的強化學習場景中——無論是人類還是機器——我們都面臨著需要採取行動的情況。不是有人告訴我們該怎麼做,而是我們嘗試一些事情,看看會發生什麼。根據發生的事情,我們加強好的行動,避免未來發生壞的行動。最終,我們和機器都會學習針對不同情況的正確行動。
例如,考慮網際網路搜尋引擎。谷歌的創始人並沒有在1997年左右瀏覽網路來訓練他們的計算機識別關於“多莉羊”的頁面。相反,他們的演算法爬取網路以生成結果的初稿,然後他們依靠使用者點選來加強哪些頁面是相關的,哪些是不相關的。當用戶點選搜尋結果中的頁面連結時,機器學習演算法會學習到該頁面是相關的。如果使用者忽略了出現在搜尋結果頂部的連結,則該演算法會推斷該頁面是不相關的。該演算法結合來自數百萬使用者的此類反饋,以調整其在未來搜尋中評估頁面的方式。
過度擬合問題
研究人員經常使用強化學習來處理需要一系列動作的任務,例如玩遊戲。考慮一個簡單的例子,比如井字棋。計算機可以首先在角落裡隨機放置一個X。這是一個強有力的舉動,計算機將比透過在側面放置X來開局的遊戲更頻繁地贏得這些遊戲。導致勝利的行動——角落裡的X——得到了加強。然後,研究人員擴充套件此過程,以推斷在遊戲的任何未來步驟以及從跳棋到圍棋的任何遊戲中,正確的行動應該是什麼。強化學習也用於高階經濟學應用,例如尋找納什均衡。
有時,即使是強化學習也要求過高,因為我們無法獲得關於我們行動的反饋。在這種情況下,我們必須轉向“無監督學習”。在這裡,研究人員擁有一組資料,但沒有關於應該採取什麼行動的資訊——無論是顯式地,如在監督學習中那樣,還是隱式地,如在強化學習中那樣。我們怎麼可能從這些資料中學習呢?理解它的第一步是將資料根據相似性分類到組中。這稱為聚類。它收集未標記的資料並推斷關於其隱藏結構的資訊。聚類在我們考慮應該採取什麼行動之前,為我們提供了對資料的更好理解。有時聚類就足夠了——如果我們想組織一個圖書館,簡單地將書籍分組到相似的類別就足夠了。在其他時候,我們可能會更進一步,並將監督學習應用於聚類資料。
具有諷刺意味的是,機器學習從業者陷入的最大陷阱是向問題投入過多的計算能力。認識到這一事實並能夠正確處理它是區分專業人士和業餘愛好者的關鍵。
更多的計算能力怎麼會反而有害呢?機器學習演算法試圖檢測資料中的模式。如果演算法過於激進——可能使用過於複雜的模型來擬合有限的資料樣本——它可能會誤導自己,因為它檢測到樣本中偶然發生的虛假模式,但這些模式並不反映真實的關聯。關於機器學習數學理論的大部分研究都集中在“過擬合”資料的問題上。我們想要檢測符合資料的真實聯絡,但我們不想做得過火,最終選擇無法信任的模式。
為了理解這種情況是如何發生的,想象一下一個在輪盤賭桌上的賭徒(為了簡單起見,我們將假設這張桌子只有紅色和黑色數字,不包括0或00)。她觀察了10次連續旋轉,紅色和黑色交替出現。“輪盤一定是傾斜的,”她想。“它總是紅色、黑色、紅色、黑色、紅色、黑色。”這位玩家在她腦海中建立了一個模型,有限的資料集已經證實了這一點。然而,在第11次旋轉時,就在她將100美元押在紅色之後,輪盤的隨機性重新確立了自己。輪盤連續第二次停在了黑色,她輸光了一切。
我們的賭徒在尋找根本不存在的模式。從統計學上講,任何輪盤賭桌都有大約五百分之一的機會在紅色和黑色之間隨機交替10次。然而,在輪盤賭中,過去的旋轉對未來沒有影響。下一次旋轉總是有50%的機會出現紅色。在機器學習中,我們有一句老話:如果你對資料嚴刑拷打足夠長的時間,它就會招供。
為了避免這種結果,機器學習演算法偏向於使用一種稱為正則化的技術來保持模型儘可能簡單。模型越複雜,就越容易過擬合;正則化可以控制這種複雜性。
研究人員通常還會驗證訓練集中沒有的資料上的演算法。透過這種方式,我們確保我們獲得的效能是真實的,而不僅僅是訓練資料的人為產物。例如,Netflix獎的評判標準不是針對提供給參賽者的原始資料集。它是在Netflix員工才知道的新資料集上進行測試的。
預測未來
如果你從事機器學習工作,很難感到無聊。你永遠不知道你接下來可能會從事什麼應用。機器學習使應用領域中的非專家——例如女裝領域的計算機科學家——能夠僅根據資料進行學習和預測。因此,人們對該領域的興趣正在爆發式增長。今年春天,來自15個不同專業的學生參加了我在加州理工學院的機器學習課程。我也是第一次在網上釋出課程材料並直播講座影片;來自世界各地的數千人觀看了並完成了作業。(您也可以這樣做:請參閱下面“更多探索”中的連結。)
然而,機器學習僅適用於擁有足夠資料的問題。每當有人向我提出一個可能的機器學習專案時,我的第一個問題很簡單:你有什麼資料?機器學習不會創造資訊;它從資料中獲取資訊。如果沒有包含適當資訊的足夠訓練資料,機器學習將無法工作。
然而,無數領域的資料正變得越來越豐富,隨之而來的是機器學習的價值將繼續上升。相信我——預測是我的專長。
