編者按:此白皮書為谷歌總結的機器學習(ML)最優實踐方法,濃縮了其多年技術積累與經驗,尤其是 YouTube、Google Play 和 Google+ 等平臺背後的 ML 算法開發、維護經歷。谷歌於白皮書中總結了四十三條 ML 黃金法則,旨在幫助已經掌握了基礎知識的開發者少走彎路。本文上接雷鋒網"谷歌機器學習白皮書全解析 43條黃金法則(三)"
4.0 機器學習第三階4.1 減慢的增速,精細優化和複雜模型第二階段將要結束的時候,一定會有些信號。首先,你每月的收益開始降低。你開始要在指標之間做犧牲:一些試驗中有的上升有的下降。從此情況變得更有趣。由於更難產生效益,機器學習不得不變得更複雜。
警告:這部分有許多開放式的實踐法則。我們親眼看著很多團隊走過第一階段和第二階段的幸福期——一旦到達第三階段,開發團隊就不得不找出他們自己的路。
38. 如果目標之間不搭,並成為問題,就不要在新特徵上浪費時間當達到度量瓶頸,你的團隊開始關注 ML 系統目標範圍之外的問題。如同之前提到的,如果產品目標沒有包括在算法目標之內,你就得修改其中一個。比如說,你也許優化的是點擊數、點讚或者下載量,但發布決策部分依賴於人類評估者。
39. 模型發布決策是長期產品目標的代理(雷鋒網註:谷歌工程師在這裡舉了個例子)Alice 有一個關於降低安裝預測的邏輯損失的想法。她加入一個特徵。邏輯損失下降。當她實時測試時,安裝量上升了。但在公司的發布會議上,有人指出每日活躍用戶數降低了 5%。團隊決定不發布該模型。Alice 很失望,但意識到發布決策取決於多個標準,其中只有一部分能夠被 ML 直接優化。
事實是,現實世界並不是網路遊戲:沒有「攻擊值」和「血量」來衡量產品的健康。團隊需要利用收集的數據,來試圖預測將來系統的表現會怎樣。他們需要操心用戶黏性、每日活躍用戶、每月活躍用戶、收入和廣告主的收益。這些 A/B 測試中的指標,實際上只是長期目標的代理:讓用戶滿意、增加用戶、讓合作方滿意還有利潤;即便這時你還可以考慮高品質、有使用價值的產品的代理,以及五年後一個繁榮的企業的代理。
做出發布決策變得容易的唯一一種情況是:所有指標都變好了(起碼沒有變差的)。如果團隊在複雜 ML 算法和簡單啟發式算法之間有的選擇;如果簡單的啟發式算法在這些指標上做得更好;那麼應當選擇後者。另外,所有指標數值並沒有明確的排序。更具體的,考慮以下兩種情形:
雷鋒網註:標題欄(自左至右)為試驗,每日活躍用戶以及每日收入
如果現有系統是 A ,團隊不會想要轉移到 B。如果現有系統是 B,團隊也不會想要轉到 A。這看起來與理性決策相牴觸:但是,對指標變化的預期情形或許會發生,或許不會。因此任意一種改變都有相當大的風險。每一個指標覆蓋了一些團隊所關注的風險。但沒有指標能覆蓋團隊的首要關切——「我的產品在五年後會怎樣?」
另一方面,個體傾向於選擇能直接優化的目標。大多數 ML 工具喜歡這樣的環境。這樣的環境下,一個能快速創建新特徵的工程師能穩定輸出一系列產品發布。有一種叫「多目標學習」(multiobjective learning)的機器學習開始解決這一問題。比如說,可以制定一個在每個指標上有下限的約束滿意度問題(constraint satisfaction problem),然後優化指標的一些線性組合。但即便那時,也不是所有指標都能輕易表達為 ML 目標:如果一個文件被點擊,或者 APP 被安裝,這是因為有內容被展示出來。但搞清楚用戶為什麼訪問你的頁面就更加難了。如何預測一個頁面在將來是否成功,是一項 AI-complete 問題(雷鋒網(公眾號:雷鋒網)註:意味著完成它的難度相當於解決 AI 問題),與計算機視覺和自然語言處理一樣難。
40. 保證集成模型(ensemble)的簡潔接收原始特徵、直接對內容排序的統一模型,是最容易理解、最容易修補漏洞的模型。但是,一個集成模型(一個把其他模型得分組合在一起的「模型」)的效果會更好。為保持簡潔,每個模型應該要麼是一個只接收其他模型的輸入的集成模型,要麼是一個有多種特徵的基礎模型,但不能兩者皆是。如果你有單獨訓練、基於其它模型的模型,把它們組合到一起會導致不好的行為。
只用簡單模型來集成:那些只把基礎模型的輸入作為輸出、進行接收的模型。你或許想要為這些集成模型強加上屬性。比如,基礎模型生成得分的提高,不應該降低集成模型的分數。另外,如果連入模型在語義上可解釋(比如校準了的)會更好,這樣其下層模型不會與集成模型混淆。再者,強行讓下層分類器預測的概率升高,不會降低集成模型的預測概率。
41. 當性能達到瓶頸,相比精煉現存信號,不如尋找新性質(qualitatively)的信息源你已經加入了一些關於用戶的人口統計信息,還有文件中的詞語。你經歷了模板探索,和正則化(regularization)調參。但連續幾個季度的發布,你都沒有看到核心指標有超過 1% 的提升。現在怎麼辦?
你已經到了為不同尋常(雷鋒網註:很不一樣)的特徵,創建基礎設施的時候了。比如用戶昨天、上周、去年檢索的文檔,或是另一種屬性的數據。為你的公司使用維基數據(wikidata)實體或者一些內部的東西(比如谷歌的知識圖,Google’s knowledge graph)。你或許需要使用深度學習。開始調整你對投資回報的期望,並作出相應努力。如同所有工程項目,你需要平衡新增加的特徵與提高的複雜度。
42. 不要期望多樣性、個性化、相關性和受歡迎程度之間有緊密聯繫一系列內容的多樣性能意味著許多東西,內容來源的多樣性最為普遍。個性化意味著每個用戶得到屬於他們自己的結果。相關性意味著一個特定檢索的結果,對應它比對應其他檢索更合適。因此,這三個屬性的定義都有別於「標準」。
但標準更難被打敗。
注意:如果你的系統在統計點擊量、耗費時間、瀏覽數、點讚數、分享數等等,你事實上在衡量內容的受歡迎程度。有團隊試圖學習具備多樣性的個性化模型。為個性化,他們加入允許系統進行個性化的特徵(有的特徵代表用戶興趣),或者加入多樣性(表示該文檔與其它返回文檔有相同特徵的特徵,比如作者和內容),然後發現這些特徵比他們預想的得到更低的權重(有時是不同的信號)。
這不意味著多樣性、個性化和相關性就不重要。如同上個法則所指出的,你可以通過後處理來提高多樣性或相關性。如果你看到長期目標的進步,那麼你可以宣布在受歡迎程度之外,多樣性和相關性是有價值的。你可以繼續採用後處理,或者直接根據多樣性或相關性修改目標。
43. 不同產品中,你的朋友總是同一個,你的興趣不會如此谷歌的 ML 團隊 常常把一個預測某產品聯繫緊密程度(the closeness of aconnection in one product)的模型,應用在另一個產品上,然後發現效果很好。另一方面,我見過好幾個在產品線的個性化特徵上苦苦掙扎的團隊。是的,之前看起來它應該能奏效。但現在看來它不會了。有時候起作用的是——用某屬性的原始數據來預測另一個屬性的行為。即便知道某用戶存在另一個屬性能湊效的歷史,也要記住這一點。比如說,兩個產品上用戶活動的存在或許就自身說明了問題。
全文結束。感謝您對雷鋒網的支持。谷歌白皮書原文地址:http://martin.zinkevich.org/rules_of_ml/rules_of_ml.pdf
相關文章:
谷歌機器學習白皮書全解析 43條黃金法則(三)
谷歌機器學習白皮書全解析 43條黃金法則(二)
谷歌機器學習白皮書全解析 43條黃金法則(一)
雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。