機器學習的規則:

機器學習工程的最佳做法

馬丁辛卡維奇

本文件旨在協助熟悉機器知識的使用者 機器學習技術有助於充分運用 Google 的機器學習技術。這項服務 呈現的機器學習樣式,類似 Google C++ 樣式指南 和其他熱門程式設計指南。如果您曾參加過課程 或是建構或處理機器學習模型 具有閱讀這份文件所需的背景

Martin Zinkevich 提到 10 件最愛規則 機器學習的強大本領請繼續閱讀,瞭解這 43 項規則!

術語

下列條款將在我們有效討論「有效」的討論中反覆出現 機器學習:

  • 執行個體:也就是您要做什麼 預測結果例如,執行個體可能是您希望處理程式碼的網頁 歸類為「關於貓」或「與貓無關」
  • 標籤:預測工作的答案,可能是 或機器學習系統提供的正確答案適用對象 舉例來說,網頁的標籤可能是「關於貓」。
  • 特徵:預測工作中使用的執行個體的屬性。適用對象 舉例來說,網頁上可能會有「包含『貓』這個字」的功能。
  • 特徵欄:一組相關功能,例如所有相關的特徵 使用者可能居住的國家/地區。示例中可能會有一或多項特徵 都會顯示在特徵欄中「特徵欄」是 Google 專用的術語 特徵欄稱為「命名空間」 安裝於 VW 系統 (Yahoo/Microsoft),或 field
  • 範例:執行個體 (及其功能) 和標籤。
  • 模型:預測工作的統計表示法。用來訓練模型 這些範例接著使用模型進行預測
  • 指標:您重視的數字。不一定會進行最佳化。
  • 目標:演算法希望用來進行最佳化的指標。
  • 管道:圍繞機器學習演算法的基礎架構, 包括從前端收集資料,並將資料用於訓練資料 訓練一或多個模型,以及將模型匯出至實際工作環境。
  • 點閱率:點閱網頁的訪客百分比 連結。

總覽

如何製作優質產品:

「機器學習的工程師」能做到這點 機器學習專家則不適合。

實際上,您可能會遇到的都是工程問題。平均 不僅擁有優秀機器學習專家的所有資源 ,就不是精良的機器學習演算法基本版 方法如下:

  1. 請確保管道是穩固的端對端管道。
  2. 先設定合理的目標。
  3. 以簡單的方式新增常見特徵。
  4. 請確保管道維持穩定。

這種做法相當適合 設定目標只有在沒有其他狀況時,才要改採這種做法 再簡單不過的幾個簡單技巧增加複雜度會使日後推出的版本減緩。

完成幾個簡單的技巧後,最先進的機器學習技術 確實值得注意詳情請參閱 第 3 階段 和機器學習專案

本文件編排方式如下:

  1. 第一部分應可協助您瞭解 就很適合建構機器學習系統
  2. 第二部分是部署 第一個管道
  3. 第三部分是推出 同時為管道新增特徵及如何評估模型 和訓練/應用偏差
  4. 最後一部分 到達高原時該怎麼辦
  5. 系統隨後會列出相關工作附錄 並採取本文所述的簡單做法。

機器學習前

規則 #1:別害怕沒有機器學習技術也能推出產品。

機器學習很酷,但需要資料理論上,您可以將資料 再根據不同的問題調整模型,但還是 成效可能會不如預期 經驗法則。如果認為 機器學習技術會提高 100%,而經驗法則將提高 50% 目標放在 Android 中

舉例來說,假設您要在應用程式市集中排名應用程式,這時可以使用 將安裝率或安裝次數視為經驗法則。如果您偵測到垃圾內容, 過濾掉先前傳送垃圾郵件的發布商勇於利用人類 編輯任一行的內容如要排名聯絡人,請為最近使用的聯絡人排名 最高 (或依字母順序排列)如果希望機器學習 以便在沒有資料的情況下使用。

規則 2:首先,設計並導入指標。

正式定義機器學習系統的運作方式前,應盡可能追蹤 以及目前的系統這麼做的原因如下:

  1. 較容易及早取得系統使用者許可。
  2. 如果您覺得日後有點疑慮, ,現在更能取得歷來資料。
  3. 如果在設計系統時將指標檢測納入考量 的成效較佳 未來會有更多選擇具體而言,你不需要尋找自己在位的樣子 以便檢測您的指標!
  4. 您會注意到有哪些變化,而保持不變。舉例來說: 假設您想要直接最佳化單日活躍使用者。不過 開始操作系統時,您可能會注意到 大幅改變使用者體驗,並不會大幅改變這一點 指標。

Google+ 團隊會在每次閱讀時測量擴增內容、 每次讀取的轉貼數,加上每一則 讀取、留言/閱讀、每位使用者的留言、按使用者轉貼等 以計算貼文的良好性另請注意 實驗架構 可讓您將使用者分組 以比較有效的方式統計結果詳情請見 規則 12

如果更自由地收集指標,您就能更全面地掌握 系統本身發現問題?新增指標即可追蹤!興奮 上個版本的量化變更?新增指標即可追蹤!

規則 3:選擇機器學習技術,而不是複雜的經驗法則。

簡單的經驗法則,能幫助你輕鬆宣傳產品。複雜的經驗法則 也無法維護。有了資料量和基本概念之後 接下來就進入機器學習和大多數軟體工程一樣 任務,就必須持續更新做法,無論是 或機器學習模型,您就會發現 機器學習模型的更新與維護更容易 (請參閱 規則 16)。

機器學習階段 1:您的第一個管道

將重心放在系統基礎架構上,以便建立第一個管道。趣味性 您會想著什麼充滿想像力的機器學習 要是沒有先信任「委任」 這種模型通常已開放原始碼 可以透過自訂筆記本或管線微調

規則 4:維持第一個模型的簡潔,讓基礎架構正常運作。

第一個模型可為產品提供最大助益,因此不需要 吸引客觀的但基礎架構問題可能會比您還要嚴重 您必須先 來判斷:

  • 如何取得學習演算法的範例。
  • 初次剪輯成「好」的片段和「不良」對系統的意義
  • 如何將模型整合至應用程式。您可以 模型上線 離線針對範例預先運算模型,並將結果儲存在資料表中。 例如,您可能想要預先分類網頁並儲存結果 但可能會想將聊天室訊息分類。

選擇簡單的功能,可輕鬆確保:

  • 這些功能會正確應用到學習演算法。
  • 模型會學習合理的權重。
  • 特徵會正確傳送至伺服器中的模型。

只要系統達到這三項目的,就能打造出可靠成果 大多數的工作簡單的模型會提供基準指標和 基準行為,可用來測試更複雜的模型。有些團隊的目標是 表示「中立」首次啟動:首次啟動,明確降低順位 機器學習技術的優勢,避免分心而分心。

規則 5:單獨測試基礎架構,與機器學習無關。

確保基礎架構可供測試,且學習部分 系統封裝完成,方便您測試周遭的所有情況。 詳細說明:

  1. 測試取得資料至演算法。檢查 應該填入的內容在隱私權許可的情況下,我們會以人工方式處理 檢查訓練演算法的輸入內容可能的話,請確認 管道中與相同資料統計資料相比的統計資料 並在其他位置處理
  2. 測試從訓練演算法取得模型。請確認 訓練環境中的模型會有與模型相同的分數 測試環境 (請參閱 規則 37)。

機器學習具有難以預測的要素 執行程式碼測試,以便建立訓練和提供範例 ,可在提供期間載入並使用固定模型。此外 解讀資料: 大型複雜資料集分析實用建議

規則 6:複製管道時請謹慎處理捨棄的資料。

我們通常透過複製現有管道 (即 cargo cult 程式設計 ),而舊管道會捨棄新管道所需的資料。 例如 Google+ What’s Hot 管道 會捨棄較舊的貼文 (因為是為了排定新貼文的排名)。這個管道之前 改為用於 Google+ 訊息串,其中較舊的訊息 但管道仍在捨棄舊的文章。其他 通常只會記錄使用者看到的資料。因此,這項資料是 我們可以模擬使用者看不到某則訊息的原因 因為所有排除樣本都捨棄了發生類似問題: 遊玩、您使用 Play 應用程式首頁時建立了新的管道, 包含 Play 遊戲到達網頁的範例,不含任何功能 釐清每個範例的來源。

規則 7:將經驗法則轉化為特徵,或是對外處理。

通常機器學習嘗試解決的問題 全新概念現有的排名、分類系統或 想解決的難題也就是說 和經驗法則這些經驗法則能幫助您微調 借助機器學習技術。不論用什麼方法 造成這項資訊的原因有二首先,轉換至虛擬機器 讓學習系統變得更順暢第二,這些規則通常會包含大量資料 請思考不要丟掉的系統。這堂課程有四個 現有經驗法則:

  • 使用經驗法則預先處理。如果這項功能太厲害了 您就可以選取這個選項舉例來說,在垃圾郵件篩選器中,寄件者 已列入黑名單,請勿嘗試重新瞭解「黑名單」為何 代表。封鎖該郵件。這種方法最適合用於二進位 分類任務
  • 建立功能。根據經驗法則直接建立特徵是很好的做法。 舉例來說,如果您使用經驗法則來計算查詢的關聯性分數 結果,您可以將分數做為特徵的值。稍後觀看 不妨運用機器學習技術 (例如將值轉換為某一組有限值的一組有限值) 或與其他特徵組合),但先使用原始 產生的值
  • 盡量減少經驗法則的原始輸入內容。如果應用程式有經驗法則 結合安裝次數、 也可以考慮將這些文字拆開來 並將這些輸入內容分別匯入到學習中一些技巧 適用本文所定義樣式 (請參閱 規則 40)。
  • 修改標籤。當您感受到經驗法則,建議採用這個做法 擷取目前未包含在標籤中的資訊。例如: 您想盡量增加下載次數 那麼直接把標籤乘以 應用程式獲得的平均星星數。這裡的走道很多。 請參閱「您的第一個目標」

在機器學習中使用經驗法則時,請留意會增加的複雜度 有些人會將 Cloud Storage 視為檔案系統 但實際上不是在新的機器學習演算法中使用舊經驗法則 有助於營造流暢的轉場體驗,但請先思考 達成相同效果

監控

一般而言,練習良好的警示健全度,如發出警示的可行性 並設定資訊主頁

規則 8:瞭解系統的時效性要求。

如果模型已建立一天,效能會降低多少?一週 幾歲?四分之一?這項資訊有助您瞭解優先考量 。如果重要產品不見了 就表示模型沒有更新 讓工程師持續觀看影片是合理的做法大部分的廣告 廣告放送系統會每天處理新的廣告,而且必須更新 每日執行。舉例來說 Google Play 搜尋尚未更新, 一個月內可能帶來負面影響一些「趣事」模型 Google+ 在模型中沒有貼文 ID, 他們可以 建議你避免經常匯出這些模型其他有貼文 ID 的模型 更新頻率高出許多另外請注意,更新間隔可能會隨時間而改變 在模型中新增或移除特徵資料欄時特別重要

規則 9:匯出模型前偵測問題。

許多機器學習系統都有一個階段,用來將模型匯出至 放送。如果匯出的模型發生問題,會發生這種問題, 問題。

先執行例行檢查再匯出模型。具體來說,務必確保 。或是 但請勿匯出模型。多個團隊 持續部署模型時,請檢查 ROC 曲線 (簡稱 AUC) 再匯出。未匯出模型的問題需要 電子郵件快訊,但如果是面向使用者的模型,可能需要頁面。這樣更好 才能影響使用者的問題

規則 10:留意是否出現靜音失敗情形。

這個問題比其他系統更常發生這個問題 可以提供幾種系統假設要彙整的特定資料表為 {0/}機器學習系統會調整設定 持續合理地衰退有時候,你可能會發現 表格的資料,再簡單重新整理就能提高成效 是當季應用程式上市的 2 倍之多! 特徵可能會隨實作變更而變動,例如特徵欄 我們有 90% 的樣本填入了 40% 的樣本 範例。玩這款遊戲的《紙牌遊戲》已有 6 個月的時間過時,然後不斷重新整理 光是表格就提高了 2% 的安裝率如果追蹤 以及有時手動檢查資料,並能降低 這類故障情形

規則 11:為特徵欄提供擁有者和說明文件。

如果系統規模龐大,而且有很多特徵欄,請知道是誰建立 還是要維護每個特徵欄如果看到 瞭解某個特徵欄即將離開,請確保有人知道 可能不準確或不適當雖然許多特徵欄都有描述性名稱,但最好 針對特定功能、用途 以及預期提供的協助

您的第一個目標

針對自己重視的系統提供許多指標或測量指標 但機器學習演算法通常需要一個目標、 表示演算法要「嘗試」的數字進行最佳化。我很區別這邊 指標是系統評估目標與指標間的任意數字 不一定重要其他參考資訊 規則 2

規則 12:不要想太多要直接最佳化哪個目標,

您希望獲利、讓使用者滿意,讓世界變得更美好 。您重視的有很多指標,因此應該評估 (請參閱規則 #2)。不過 機器學習程序的初期階段就會發現 處理未直接最佳化的廣告例如,假設您在乎 點擊次數和網站停留時間。如果希望盡量爭取 應該就能看見花費的時間增加

因此,請依循簡單原則,不要太難在各指標之間取得平衡 因為你還是可以輕鬆增加所有指標也不要遵守這項規則 但千萬別誤以為你的目標 系統 (請參閱 規則 39)。 如果您發現自己直接將 但決定不要推出這個最佳化指標 應用程式。

規則 13:為第一個目標選擇簡單、可觀測且可歸因的指標。

您往往不知道真正的目標是什麼。你認為自己會這麼做 您都需要為舊系統和新機器學習 您發現想要調整目標此外,不同的團隊 成員通常無法對真正的目標達成共識機器學習目標: 方便衡量,也是代表「true」的。 實際上,通常沒有如此目標 (請見 Rule#39)。 以下內容 來訓練簡單的機器學習目標 並考慮建立「政策層」位於上方 可讓您新增其他邏輯 (可能非常簡單的邏輯) 最後排名

建立模型時,最簡單的做法是直接觀測到使用者行為,並歸因於 系統的動作:

  • 這個排名連結會獲得點擊嗎?
  • 這個排名物件已下載嗎?
  • 這個排名物件是否會轉寄/回覆/傳送電子郵件?
  • 這個排名物件是否獲得評分?
  • 這個顯示的物件是否標示為垃圾內容/色情/令人反感的內容?

避免一開始就建立間接效果:

  • 使用者是在隔天造訪嗎?
  • 使用者造訪網站多久的時間?
  • 每日活躍使用人數為何?

間接效應能帶來出色的指標,且可在 A/B 測試和發布期間使用 讓人們瞭解 AI 系統如何做出決策

最後,不要試圖讓機器學習瞭解:

  • 使用者是否滿意產品?
  • 使用者是否滿意?
  • 產品是否改善使用者的整體身心健康?
  • 這對公司整體健康有什麼影響?

這些都很重要,但也很難評估。而是改用 Proxy:如果使用者滿意,就會繼續留在網站上。如果使用者 ,明天就會再來到。Insofar 以及身心健康 擔心公司健康,需要人工審查 機器根據所售產品的性質學習目標 業務計畫

規則 14:先從可解釋的模型著手,這樣偵錯更容易。

線性迴歸、邏輯迴歸和 Poisson 迴歸都是直接的 這類模型以機率模型為導向。每項預測結果可解釋為 或預期值因此比模型更容易偵錯 並嘗試運用目標 (零一損失、各種轉軸損失等) 來 ,直接改善分類準確率或排名成效。適用對象 舉例來說,如果訓練機率與 或者檢查實際運作系統,而這個誤差 顯示問題

例如,在線性、邏輯或帕松迴歸中, 平均預測期望等於平均標籤 (1- 時間安排,或只校正)。前提是您沒有任何 以及你的演算法已收斂 傳回的結果如果您的特徵各為 1 或 0, 然後以 3 個例子校正特徵 1。此外, 每項範例都有 1 的功能,那麼所有範例的集合都是 校正。

使用簡單的模型,就能輕鬆處理意見回饋循環 (請參閱 規則 36)。 我們通常會使用這些機率預測做出決策,例如:排名 提高預期值 (亦即點擊/下載等機率) 的貼文。 不過,要選擇要使用的模式時, 決策的重要性高於模型提供資料的可能性 (請參閱 規則 27)。

規則 15:在政策層中分開篩選垃圾郵件和品質排名。

品質排名是一門藝術,但垃圾郵件篩選功能實在是戰爭。這類信號 您會優先選擇品質較高的貼文,讓使用這些內容的人會顯得 他們就會修改文章以取得這些屬性。因此, 品質排名應該著重於,為這類內容帶來正面評價 信託。請不要為了將垃圾內容排名提高品質評分者感到低落 。同樣地,「兒童不宜」內容應與品質團隊分開處理 排名。「垃圾留言篩選」是另一種情況。您必須預期 所有必要功能都會持續改變通常, 是您在系統中明確指定的規則 (如果文章的 三集垃圾投票等等,不要找它,等等)。任何學到的模型都會 就會每天更新創作者的聲譽 對內容的影響才大有助益

在某種程度上,這兩個系統的輸出內容都必須經過整合。保留 請注意,在搜尋結果中過濾垃圾郵件,可能就較帶有侵略性 比過濾垃圾郵件更多的垃圾郵件。此外,這種標準做法是 避免垃圾內容分類器的訓練資料

機器學習階段 2:特徵工程

在機器學習系統生命週期的第一階段 可以將訓練資料導入學習系統、 定義興趣指標及建立服務基礎架構使用後 您有一個能檢測單元和系統測試的端對端系統 第二階段開始。

第二階段裡有很多需要立即懸掛的水果,有許多 可以帶入系統的顯而易見功能因此,第二個 機器學習階段,需要盡可能導入最多功能 。在這個階段,所有指標 還是仍在上升中我們將推出許多新功能,而且現在正是時候 該集結了大量工程師,可以彙整您需要的所有資料 可以打造真正優質的學習系統

規則 16:規劃發布及反覆改進。

您目前使用的模型未必是 您會啟動模型,甚至導致模型停止運作因此 思考這次增加的複雜度是否會降低 許多團隊都已每季推出 近幾年也在眾多 年度業界獎項和報告中履獲認可推出新模型的基本原因有三:

  • 即將推出新功能。
  • 您正在調整正則化並以全新方式結合舊功能。
  • 您正在調整目標。

無論如何,給模型一點的熱愛是不錯的做法:觀察資料 擷取到例子中可幫助我們找出新舊信號 服務。因此在建構模型時,請思考新增或移除模型的難易度 或重新組合功能重新撰寫 並驗證管道的正確性請思考能否 因此系統會同時執行兩到三個副本最後,不要擔心 看看功能 16 是否會加入這個版本的管道您 並在下一季解鎖

規則 17:先從直接觀察到和回報的功能著手,而不是從學到的功能著手。

這可能是個爭議性話題,但能避免許多陷阱。第 1 個 接著來說明什麼是功能。已學會的功能是一種 由外部系統 (例如非監督式分群法) 產生的 系統) 或學習者本身使用情境 (例如透過因式模型或深度學習)。 兩者都很實用,但可能有許多問題,因此 未採用第一個模型

如果您使用外部系統建立功能,請注意外部系統 每個系統都有自己的目標外部系統的目標可能只有弱點 與您目前的目標相關如從外部擷取 可能會過時如果您從 所代表的意義可能會改變如果使用外部系統 就需要注意這項功能,但必須特別小心

因子模型和深度模型的主要問題在於 非凸面因此,我們也無法保證最佳解決方案可以達成您的願景 且每次疊代時找到的當地 minima 都能 也不一樣因此難以判斷 對系統進行的變更是有意義或隨機的。也就是建立不含 深淺的特徵,因此可達到出色的基準成效。之後 基準線,您就可以嘗試更極端的做法。

規則 18:探索適合各種情境的內容功能。

機器學習系統通常只是大範圍的一小部分。適用對象 舉例來說,假設你認為某則貼文可能會用於「趣事」 系統會對訊息顯示 +1、轉貼或留言, 溫度偏高,如果將統計資料提供給學生,就能宣傳新貼文 但當您進行最佳化時就沒有任何資料 YouTube「接下來請看」專區會根據觀看次數, 觀看 (觀眾觀看一部影片後觀看的次數) 觀看) 來自 YouTube 搜尋。你也可以使用 使用者評分最後,如果您要將某個使用者動作當做標籤使用 以不同的方式檢視文件上的動作 而不是每個特徵的分數有了以上所有功能,您就能將新內容融入背景中。 請注意,這並不是個人化內容;如要瞭解其他人是否喜歡 然後決定比較喜歡該內容的使用者。

規則 19:請盡可能使用非常具體的功能。

使用大量資料,因此學習數百萬個簡單功能, 較複雜的功能所擷取文件的 ID,以及 標準化查詢不會提供廣泛的概括性,但將 和標籤在標頭查詢中的排名因此不必害怕 每項功能都只會套用至極少數資料 整體涵蓋率超過 90%您可以使用正則化 某些功能不適用於樣本

規則 20:結合並修改現有功能,以人類可理解的方式建立新特徵。

合併及修改特徵的方式有很多種。機器學習 TensorFlow 等系統可讓你透過 轉換。 兩種最標準的方法是「歧視」和「交叉點」

歧視行為包括持續性功能、 獨立功能考慮採用連續的特徵,例如年齡。你可以 同時建立一個功能,且年齡未滿 18 歲時則設為 1, 年齡介於 18 到 35 歲之間,則為 1。不要將重點放在 這些直方圖可以帶來最大影響

交叉符號會合併兩個以上的特徵資料欄。這個特徵欄位於 TensorFlow 的 術語是指一組性質的特徵 (例如,{male、male}、{US、 加拿大, 墨西哥} 等。交叉符號是全新的特徵欄,其功能為 例如:{male,male} × {US,Canada, Mexico}。這個新功能欄 會包含地圖項目 (男性、加拿大)。如果你使用 TensorFlow, 告訴 TensorFlow 為你建立這個交叉線,(加拿大男性) 功能 出現在代表加拿大男性的例子請注意 也就是用三、四或更多數十元以上的資料來學習模型 特徵資料欄

產生非常大型特徵欄的十字架可能會過度配適。舉例來說: 假設您正在執行某種搜尋 而且有一個特徵欄 特徵欄就會有特徵欄 文件。您可用十字可以併用多個值 功能 (請參閱規則 #21)。

處理文字時,有兩種替代方案。最忠實的劇情是 小品類產品。以最簡單的方式計算 查詢字詞與文件之間有共通的字詞至於 或分散的另一個方法是交錯組合:因此 而只有在「pony」這個字詞時才出現同時出現在文件中 另一個則會出現另一個功能,只有在字詞「the」兩字時才出現位於 文件和查詢

規則 21:在線性模式中學習的特徵權重數量,大致上與您擁有的資料量有正規的比例。

有關統計學習理論的結果,與 但本規則基本上是 所有相關資訊我先前的對話中有大家都懷疑 可從一千個樣本中學到什麼 需要超過一百萬個樣本 。關鍵在於擴大學習資料規模:

  1. 如果你使用搜尋排名系統 出現在文件中的不同字詞,而 您獲得了 1000 標籤範例時,應該在文件之間使用半形句號 以及查詢特徵 TF-IDF 還有一半的 接著介紹網際網路通訊層 包括兩項主要的安全防護功能1000 個範例,10 項功能。
  2. 如果您有百萬個樣本,請對文件和查詢進行交集 特徵分欄 (採用正規化) 和可能的特徵選項。 這樣您就能使用數百萬種功能 就會減少也許有 100 萬個功能,也許有一百萬個功能。
  3. 如有數十億或數千億個樣本 包含文件和查詢符記的特徵欄 (使用特徵選擇功能) 和正則化你有十億個樣本、1, 000 萬個樣本 接著介紹網際網路通訊層 包括兩項主要的安全防護功能統計學習理論很少有限制 入門指引的實用指南

最後,使用 規則 28 決定要使用的功能

規則 22:清除不再使用的功能。

未使用的功能會造成技術債。如果發現不是使用 導致無法與其他功能合併使用 再也不必擔心您希望基礎架構保持乾淨 大家都能盡快體驗最具潛力的功能。如果 必要時,其他使用者隨時可以加回你的地圖項目。

考慮要新增或保留哪些功能時,請考量涵蓋範圍。數量 功能中的例子?舉例來說 但只有 8% 的使用者俱有個人化功能 就會變得非常有效

同時,某些功能可能會超出其體重。舉例來說 您的功能只涵蓋 1% 的資料 只要具備正向的特徵,就會相當適合新增這項功能。

系統人為分析

進入機器學習的第三階段之前 專注於所有機器學習課程中尚未教授的知識:如何 參考並改進現有模型這可不只是藝術 科學的成果,但其實還有一些反面模式反而能避免

規則 23:您不是一般使用者。

這或許是團隊容易冷落的最簡單方式。在特定情況下 可以在團隊內部使用原型 進行 Dogfood 測試 (在公司內部使用原型) 時,員工必須 以及效能是否正確無誤雖然有明顯不佳的變革 任何在實際工作環境中看似合理的追蹤器, 並付費請聽眾回答 並透過群眾外包平台,或是針對實際使用者進行即時實驗

有兩個原因會造成這種情況。第一個原因是 再也不是件繁重乏味的工作您可能會在尋找文章的特定方面,或者 過度投入的情感 (例如確認偏誤)。其次是 時間寶貴考慮 9 名工程師同時享受 90% 的成本 會議,並想想在一個小時的情況下,購買多少件約定的人工標籤 群眾外包平台

如要提供使用者意見回饋,請善用使用者體驗 方法。建立使用者人物角色 (一項說明在 Bill Buxton 的 勾勒使用者體驗) 並執行可用性測試 請參閱 Steve Krug 的 別讓我思考)。 使用者職務角色 建立假想使用者舉例來說,如果你的團隊全是男性 設計 35 歲的女性使用者人物角色 有助於構思成形 並細看該工具產生的結果,而不是 10 筆 25 到 40 歲的男性。邀請實際觀眾觀看影片 參與可用性測試的網站 (本機或遠端) 也能讓您 以便做好準備 從自己的專業觀點進行討論

規則 #24:測量模型之間的差異。

評估成效最簡單也最實用的評估方式之一 來計算出 看過新模型的使用者 產生了新的查詢結果舉例來說,如果您有排名方面的問題 在整個系統查詢中同時執行兩個模型 結果的對稱差異大小 (按排名加權計算) 位置)。如果差異極小,不必執行 這種實驗會有微小的變化如果差異 ,則須確保變更品質良好。回顧 幫助您瞭解 改變的運作方式不過,請確定系統 以及穩定的品質比較模型時,請確認模型的 等同對稱差異。

規則 #25:選擇模型時,機能性效能勝過預測能力。

模型可能會嘗試預測點閱率。不過,最後的重點在於 就是您對該預測的處理方式如果你使用它來為網站排名 那麼最終排名的品質就比 模型本身如果您預測文件為垃圾內容的可能性 會決定要封鎖的內容,以及所允許內容的精確度 因此在大多數的情況下,這兩個項目應該都放在 如果他們不同意,將只會稍微利益提高因此,如果 其中有部分變更可以改善對記錄檔的遺失率,但會降低 尋找另一個功能當這種情況更頻繁發生時 就可以重新審視模型的目標

規則 #26:找出測量到的錯誤中的模式並建立新功能。

假設您看到模型收到「錯誤」的訓練範例。在 這個錯誤可能是偽陽性或偽陰性結果 在排名工作中,錯誤可能為一對,但正數的排名較低 而不是負數最重要的是,這個例子中的 機器學習系統知道這是誤判,且基於 商機。如果您為模型提供特徵可修正錯誤 模型就會嘗試使用

另一方面,如果您根據範例 如果系統未偵測到錯誤,就會忽略該功能。舉例來說: 假設在 Play 應用程式搜尋中,有人搜尋「免費遊戲」。假設 其中一項熱門結果是關聯性較低的差距應用程式。因此您會建立 「gag apps」。但若您想要盡量增加安裝次數 並在搜尋免費遊戲、「轉蛋應用程式」時安裝 Gag 應用程式精選內容 就不會獲得您所需要的效果

得出模型錯誤的例子後,請找出哪些趨勢 而未納入目前的特徵集舉例來說,假設系統 調降貼文長度,然後加入貼文長度。請不要太具體地說明 功能。加入貼文長度時,不要試圖猜測 就可以加入 12 個特徵,接著讓模型判斷該採取什麼行動 (請參閱 規則 21 )。以最輕鬆的方式取得所需資料。

規則 27:嘗試量化觀察到的不適當行為。

您的部分團隊成員即將對 並排除現有損失函式卻找不到的系統在 他們應該設法將手柄變成固體 數字。舉例來說,如果他們認為太多「gag 應用程式」顯示 由評分者識別 Google Play 搜尋中的 Google 作業。(您可以 則可以使用這個人工標籤資料,因為 流量比例佔了絕大部分查詢)。如果您的 您就可以開始把它們當做功能、目標 或指標一般規則是「先評估,再進行最佳化」。

規則 28:請注意,相同的短期行為並不代表完全相同的長期行為。

假設您有一個新系統可查看所有 doc_id 和 Exact_query, 然後針對每項查詢計算每份文件的點擊機率。 您發現在這兩個平台中,它的行為與目前的系統幾乎相同 並排測試和 A/B 測試 因此推出簡單又好用的功能 但您會發現不再顯示新的應用程式。這是因為嗯,因為 系統是根據該查詢本身的記錄來顯示文件, 表示應該顯示新文件

要瞭解這種系統如何維持長期運作,唯一的方法是確保 訓練時只使用模型發布時取得的資料相當適合 難以執行的程序

訓練/應用偏差

訓練/應用偏差是指訓練與 確保運作效能造成此偏差的可能原因如下:

  • 您在訓練和提供管道中處理資料的方式不一致。
  • 訓練和提供服務時的資料變更。
  • 模型和演算法之間的意見回饋循環。

我們觀察到 Google 的生產機器學習系統有相關訓練: 放送偏差,因而對效能造成負面影響。最好的解決方式是 明確監控系統,以免發生系統和資料異動時出現偏差 完全不必被告知。

規則 29:確保訓練方式是確保訓練人員的正確方法,就是儲存服務期間使用的一組功能,然後將這些功能插入記錄中,以便在訓練期間使用這些特徵。

即使無法為每個範例進行這個步驟,也不妨讓小分數 可讓您驗證提供服務與訓練之間的一致性 (請參閱 規則 37)。施展這項任務的團隊 結果常令人感到驚訝 YouTube 首頁 以優異品質在服務期間切換至記錄功能 並降低程式碼複雜度,而且許多團隊都在改用 基礎架構

規則 30:重要性加權的取樣資料,請勿任意捨棄!

資料量太多時,您可能會想 1 到 12 個檔案 略過 13-99 檔案。答錯了。雖然資料 絕不會向使用者顯示,但重要性加權是最佳選擇 休息。重要性加權 表示您 決定 假設樣本 X 機率為 30%,權重為 10/3有了 重要性加權,以及上述所有校正屬性 規則 14 請保持不動

規則 31:請注意,如果在訓練和提供服務時彙整資料表中的資料,資料表中的資料可能會有所變更。

假設您將文件 ID 與內含這些文件功能 (例如 留言或點擊次數)。在訓練和提供時間之間, 資料表可能會有所變更模型對同一文件的預測結果可能會 訓練和提供時的差異避免這種狀況最簡便的方法 問題在於記錄服務期間的功能 (請參閱 規則 32 )。如果資料表: 還能選擇每小時或每天擷取一次資料表快照 關閉資料。請注意,這麼做還是無法完全解決 問題。

規則 32:盡可能在訓練管道和提供管道之間重複使用程式碼。

批次處理與線上處理不同。在線上處理中 您必須在收到每個要求後予以處理 (例如,您必須個別查詢 而在批次處理中,則可以結合工作 (例如 即可進行彙整)。提供服務時,您需要進行線上處理, 訓練是批次處理工作不過 重複使用程式碼舉例來說,您可以建立 專屬於您的系統,任何查詢或彙整的結果可以是 並以人類可讀的方式儲存,同時也能輕鬆測試錯誤。接著: 如果你在提供或訓練期間收集到所有資訊 執行常用方法來銜接人類可讀的物件 專屬於您的系統,以及機器學習系統的任何格式 符合預期這可消除訓練/應用偏差的來源。身為 我們可能不會在訓練之間使用兩種程式設計語言 並提供服務這項決定會讓大家幾乎不可能 再也不是件繁重乏味的工作

規則 33:如果您根據 1 月 5 日之前的資料產生模型,請使用 1 月 6 日及之後的資料測試模型。

一般而言,請根據資料後收集到的資料評估模型成效 訓練模型時,這更能反映系統 。如果您根據截至 1 月 5 日為止的資料產生模型,則請測試 用於產生 1 月 6 日的資料您預期成效 對新資料的影響不大,但資料不應該明顯降低。 由於可能有每日影響,因此可能無法預測平均點擊次數 轉換率或轉換率 而是曲線下的面積 給予正面範例的機率高於負數的可能性 例如合理關閉

規則 34:在篩選用二元分類 (例如偵測垃圾郵件或判斷有趣的電子郵件) 方面,僅稍微犧牲短期效能,讓資料完全乾淨。

在篩選工作中,標示為排除的範例不會顯示 使用者。假設您的篩選器會封鎖 75% 的排除樣本 執行要求您可能會想從 使用者看到的執行個體舉例來說,如果使用者將電子郵件標示為垃圾郵件,且 或許您會想瞭解

但這種做法會產生抽樣偏誤。您可以收集更明確的資料,但有以下情況: 而是將所有流量標示為「預留」 其實是在向使用者發送範例您的篩選器目前封鎖了至少 74% 排除範例這些保留的樣本可能會成為您的訓練資料。

請注意,如果您的篩選器封鎖了 95% 以上的負面範例, 就比較不可行不過,如果您想評估放送成效 也可以製作更細的樣本 (例如 0.1% 或 0.001%)。十 就能準確預估成效。

規則 35:注意排名問題固有的偏差。

大幅度地切換排名演算法後,會產生不同的結果 就表示演算法確實改變了 日後才會出現畫面上會出現這種偏差現象 因此您應該 模型方法有很多種,這些做法 運用所有方法妥善處理模型已看過的資料

  1. 針對包含較多查詢的特徵,採用較高的正則化方式 只對單一查詢開啟的功能如此一來 專為單一或數次查詢所設計的功能 一般化所有查詢這種做法 例如揭露到不相關的查詢請注意,這與 對特徵欄進行更正規化的傳統建議 提供更多不重複的值
  2. 僅允許特徵具有正權重。因此,任何良好功能 而不是「未知」的地圖項目
  3. 不提供僅為文件使用的功能。這是第 1 版的極端版本。適用對象 舉例來說,即使某個應用程式很受歡迎, 當然,你不想在所有地方都顯示內容沒有僅供文件使用 功能相當簡單您不想顯示具體資訊的原因 是全球最受歡迎的應用程式 將所有想使用的應用程式設為可連線狀態舉例來說,如果使用者搜尋 他們可能會下載「憤怒鳥」來下載「憤怒鳥」 與目的無關顯示這類應用程式或許能提高下載率,但 造成使用者需求終究不滿

規則 36:運用位置功能避免產生回饋循環。

內容位置會大幅影響使用者與廣告互動的可能性 。如果您將應用程式排在第一順位 這樣比較容易受到吸引其中一種做法是 來新增位置功能,例如 網頁中的內容。您可以使用位置特徵訓練模型 例如學習權重,例如特徵「1 位置」。您的模型 因此針對含有「1stposition=true」的範例,會得到的其他因素較少。 放送廣告時不要為任何例項提供位置功能 所有工具相同的預設功能,因為您在 決定要顯示的順序

請注意,位置功能應與 其他部分都因為訓練與測試之間有對稱 將模型做為位置特徵的函式總和 其他功能的用法也相當理想舉例來說,請勿跨越 以及支援各種文件功能的介面

規則 37:評估訓練/提供偏差。

在一般情況下,有幾個因素可能會造成偏差。 也可以分為以下幾個部分:

  • 訓練資料與保留方面的成效差異 資料。一般來說,這種情況永遠存在,而且不一定糟糕。
  • 保留資料與「次日」的成效差異 資料。再次提醒,這些資訊永遠存在。您應該將正規化 盡量提高次日成效。然而,效能卻大幅下滑 處於保留狀態和次日資料之間的落差,可能表示有些特徵 具時效性,且可能會導致模型效能降低。
  • 「次日」的成效差異資料 資料。若您在訓練資料中 您應該會得到完全相同的結果 (請參閱 規則 5 )。 因此,如果兩者的資料有出入,可能表示發生工程錯誤。

機器學習階段 3:成長速度變慢、最佳化修正與複雜模型

某些跡象顯示第二階段正接近尾聲。 首先,您的每月收益會開始逐漸減少。您必須在 各指標之間的取捨:您會發現有些微不足道 實驗。這時候,相關領域就變得有趣了。因為增加的難度 機器學習必須更複雜注意事項:這 區段中包含比前面的章節更多的藍天規則。我們發現許多團隊 歷經了第 1 階段和第二階段的機器學習技術一階段 我們收到了 III,多個隊伍必須設法找到他們自己的路。

規則 38:如果目標難以達成共識,請別浪費時間開發新功能。

隨著評估停滯不前,您的團隊會開始觀察 不在您目前機器學習系統的目標範圍內。阿斯 說明如果現有演算法不適用 目標,您需要變更目標或產品目標。適用對象 例如最佳化點擊、加號或下載 有些根據評估人員做出決定

規則 39:上市決策是達成長期產品目標的主要動力。

Alice 的目標是減少預測安裝次數在物流方面的損失,她 新增一項功能物流損失。進行線上實驗時 安裝率會上升但當她查看上市產品時 我們發現每日活躍使用者人數減少 5%。 團隊決定不要推出模型。Alice 很失望 瞭解推出決策時須仰賴多個標準,只有其中一部分 都能直接使用機器學習最佳化處理

事實上,真實世界不是地下城,而不是龍與地下城 分」有助於識別產品的健康狀態我們的團隊必須使用 收集到的統計資料,嘗試有效預測 他們需要關注參與度、1 天活躍使用者 (DAU)、30 每日活躍使用者、收益和廣告客戶的投資報酬率。處於 A/B 版本測試本身的成效差異,只是長期趨勢 包括滿足使用者、增加使用者、提升合作夥伴品質,以及獲利 您只要考慮使用 Proxy 就能提供實用、高品質的服務 同時也幫助公司蓬勃發展

推出決策的唯一原因,在於當所有指標都有改善 (或至少 情況可能會越來越嚴重)如果團隊可以選擇精密的機器 以及簡單的經驗法則 如果簡單的經驗法則 該指標表現較好,應選擇經驗法則。再來,在那裡 沒有所有可能指標值明確的排名。具體來說,請考量 下列兩種情況:

實驗 每日活躍使用者人數 每日收益
A 100 萬 $400 萬美元
B 200 萬 $200 萬美元

如果目前的系統是 A,團隊就不太可能調到 B。如果 那麼團隊就不太可能換到 A。這個 似乎與合理行為發生衝突;然而,預測會隨著 指標不一定會超出預期範圍,因此您需要 任何變更每項指標都會涵蓋團隊擔心的部分風險。

此外,沒有任何指標涵蓋團隊終極疑慮,也就是「我的產品在哪裡?」 「長達五年後」?

另一方面,個人往往希望達成一個目標 直接進行最佳化大部分的機器學習工具都偏好這種環境。一個 工程師在停用新功能時,即可在 環境。還有一種機器學習、多目標學習 開始處理這個問題例如 限制滿意度問題,且在各指標上設有下限。 會最佳化一些線性的指標組合。不過 這些指標都能輕鬆顯示為機器學習目標:如果文件 或是使用者安裝了應用程式,因為畫面上顯示了內容。但 就會難以判斷使用者造訪網站的原因。該如何預測 未來整體而言 AI 補全:跟電腦一樣困難 以及視覺或自然語言處理

規則 40:保持簡單明瞭。

採用原始功能並直接排名內容的整合式模型 以便偵錯及理解不過,模型通常相當豐富 ( 「模型」匯總其他模型的分數) 較好保留 每個模型都應該結合運用 其他模型或包含許多特徵的基礎模型,但兩者只能擇一。如果 搭配使用模型與單獨訓練的模型 可能會導致不良行為

使用簡單的模型來集中處理,只接收「基數」的輸出內容 做為輸入內容您也想對這些組合模型強制執行屬性, 例如,基礎模型產生的分數增加不應 降低整體分數此外,如果傳入的模型 可解釋性 (例如經過校正) 不會混淆組合模型此外,強制執行 某個基礎分類器的預測機率增加幅度 降低預測組合的可能性

規則 #41:當成效停滯

您新增了使用者的部分客層資訊。您已新增一些 針對文件中的字詞提供進一步的資訊您已瀏覽過範本 並調整正則化你並未發現有更多內容推出的項目 短短幾季,主要指標的成效就有機會增加 1%以下提供一些入門指南

是時候開始建立完全不同的基礎架構了 功能,例如這位使用者在 或是其他資源的資料使用 維基資料 或公司內部的任何項目 (如 Google 的 「知識圖譜」)。使用深度 學習模式開始調整期望投資報酬率 並據此擴大投入範圍與任何 就必須衡量加入新功能的好處 以因應複雜作業增加的成本

規則 42:不要期望多元、個人化或關聯性與熱門程度相關。

豐富多樣的內容可以涵蓋許多層面, 是最常見的內容來源之一。「個人化」隱含的 也會取得自己的結果關聯性 是指特定的網站 比任何其他查詢更適合該查詢。因此,這 3 個 這些屬性與正常值不同

問題是,一般很難打敗。

請注意,如果系統要評估點擊、時間、觀看、+1 次數 轉貼次數等等,也是在評估內容的熱門程度。團隊 有時候會試著學習多元的個人模型可提供個人化內容 讓系統提供個人化資訊 (包括 使用者的興趣) 或多樣化 (可指出這份文件是否 與其他傳回文件相同的功能,例如作者或內容), 這些功能的體重也較低 (有時是不同的徵兆) 超乎預期的體驗

這不代表多元性、個人化或關聯性沒有價值。 如上一個規則所述,您可以進行後續處理來增加 多元性或關聯性。如果長期目標增加 除了人氣之外,聲明多元/關聯性也有價值。你可以 您就可以繼續使用後續處理作業,也可以直接修改 歸納出的策略

規則 43:您的朋友在不同產品中通常都相同。您的興趣通常不是。

Google 團隊曾採用 和某一項產品之間的聯繫 以及在其他產品上都能順利運作 您的朋友就是人格。另外,我已看過多個團隊 難以跨產品劃分的個人化功能。是,似乎 看看應該能正常運作但目前似乎不是如此。有時候 是運用來自某個屬性的原始資料來預測另一個屬性的行為。另外, 請注意,即使知道某位使用者擁有其他資源的記錄 的說明。舉例來說,有兩種產品的使用者活動可呈現 這裡的意義在於

Google 有許多關於機器學習的文件,也對外提供。

特別銘謝

感謝 David Westbrook、Peter Brandt、Samuel Ieong、Chenyu Zhao、Li Wei Michalis Potamias、Evan Rosen、Barry Rosenberg、Christine Robson、James Pine Tal Shaked、Tushar Chandra、Mustafa Ispir、Jeremiah Harmsen、Konstantinos Katsiapis、Glen Anderson、Dan Duckworth、Shishir Birmiwal、Gal Elidan、Su Lin Wu、Jaihui Liu、Fernando Pereira 和 Hrishikesh Aradhye 進行許多修正, 提供建議和實用範例此外,感謝 Kristen Lefevre、Suddha Basu 和 Chris Berg 協助推出較舊版本。不限 錯誤、疏忽,或 (太驚人) 不受歡迎的意見都是我自己的。

附錄

本文件有許多 Google 產品的相關參考資料,目的地: 詳細說明,我簡單說明最常見的例子 。

YouTube 簡介

YouTube 是串流影片服務,同時顯示 YouTube「接著看」和 YouTube 首頁 Page 團隊會根據機器學習模型,決定推薦影片的排名。「接下來請看」推薦的影片 正播完影片後接著觀看,首頁則是推薦 向瀏覽首頁的使用者顯示影片

Google Play 總覽

Google Play 有許多型號可以解決各種問題。Google Play 搜尋、Google Play 首頁的個人化推薦內容和「使用者也安裝了以下項目」應用程式全都使用 機器學習

Google+ 總覽

Google+ 在許多情況下採用了機器學習技術: 「串流」則顯示「趣事」排名則貼文 (貼文) 或排名等等Google+ 已於 2019 年關閉所有個人帳戶,並由 Google Currents 取代 企業帳戶。