丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預(yù)覽,將在時失效
人工智能開發(fā)者 正文
發(fā)私信給汪思穎
發(fā)送

0

谷歌發(fā)布機(jī)器學(xué)習(xí)規(guī)則 (Rules of Machine Learning): 關(guān)于機(jī)器學(xué)習(xí)工程的最佳實踐(上)

本文作者: 汪思穎 2018-05-23 18:29
導(dǎo)語:本文檔旨在幫助已掌握機(jī)器學(xué)習(xí)基礎(chǔ)知識的人員從 Google 機(jī)器學(xué)習(xí)的最佳實踐中受益。

雷鋒網(wǎng) AI 研習(xí)社按,本文來源于谷歌開發(fā)者博客,雷鋒網(wǎng)獲其授權(quán)轉(zhuǎn)載。以下為上篇,包含術(shù)語、概覽以及在進(jìn)行機(jī)器學(xué)習(xí)之前的第 1-20 條規(guī)則。

作者:馬丁·辛克維奇

本文檔旨在幫助已掌握機(jī)器學(xué)習(xí)基礎(chǔ)知識的人員從 Google 機(jī)器學(xué)習(xí)的最佳實踐中受益。它介紹了一種機(jī)器學(xué)習(xí)樣式,類似于 Google C++ 樣式指南和其他常用的實用編程指南。如果您學(xué)習(xí)過機(jī)器學(xué)習(xí)方面的課程,或者擁有機(jī)器學(xué)習(xí)模型的構(gòu)建或開發(fā)經(jīng)驗,則具備閱讀本文檔所必需的背景知識。

術(shù)語

在我們討論有效的機(jī)器學(xué)習(xí)的過程中,會反復(fù)提到下列術(shù)語:

實例:要對其進(jìn)行預(yù)測的事物。例如,實例可以是一個網(wǎng)頁,您希望將其分類為“與貓相關(guān)”或“與貓無關(guān)”。

標(biāo)簽:預(yù)測任務(wù)的答案,它可以是由機(jī)器學(xué)習(xí)系統(tǒng)生成的答案,也可以是訓(xùn)練數(shù)據(jù)中提供的正確答案。例如,某個網(wǎng)頁的標(biāo)簽可能是“與貓相關(guān)”。

特征:預(yù)測任務(wù)中使用的實例的屬性。例如,某個網(wǎng)頁可能具有“包含字詞‘貓’”這一特征。

特征列:一組相關(guān)特征,例如用戶可能居住的所有國家/地區(qū)的集合。樣本的特征列中可能包含一個或多個特征?!疤卣髁小笔?Google 專用的術(shù)語。特征列在 Yahoo/Microsoft 使用的 VM 系統(tǒng)中被稱為“命名空間”或場。

樣本:一個實例(及其特征)和一個標(biāo)簽。

模型:預(yù)測任務(wù)的統(tǒng)計表示法。您使用樣本訓(xùn)練一個模型,然后使用該模型進(jìn)行預(yù)測。

指標(biāo):您關(guān)心的一個數(shù)值。也許(但不一定)可以直接得到優(yōu)化。

目標(biāo):算法嘗試優(yōu)化的一種指標(biāo)。

管道:機(jī)器學(xué)習(xí)算法的基礎(chǔ)架構(gòu)。管道包括從前端收集數(shù)據(jù)、將數(shù)據(jù)放入訓(xùn)練數(shù)據(jù)文件、訓(xùn)練一個或多個模型以及將模型運用到生產(chǎn)環(huán)境。

點擊率:點擊廣告中的鏈接的網(wǎng)頁訪問者所占的百分比。

概覽

要打造優(yōu)質(zhì)的產(chǎn)品:

請把自己看成是一位出色的工程師,而不是一位機(jī)器學(xué)習(xí)專家。

實際上,您將面臨的大部分問題都是工程問題。即使在使用出色的機(jī)器學(xué)習(xí)專家掌握的所有資源的情況下,大多數(shù)收獲也是由合適的特征(而非精確的機(jī)器學(xué)習(xí)算法)帶來的。所以,進(jìn)行機(jī)器學(xué)習(xí)的基本方法是:

  1. 確保管道從頭到尾都穩(wěn)固可靠。

  2. 從制定合理的目標(biāo)開始。

  3. 以簡單的方式添加常識性特征。

  4. 確保管道始終穩(wěn)固可靠。

上述方法將在長時間內(nèi)取得很好的效果。只要您仍然可以通過某種簡單的技巧取得進(jìn)展,就不應(yīng)該偏離上述方法。增加復(fù)雜性會減緩未來版本的發(fā)布。

當(dāng)您充分利用了所有的簡單技巧,或許就到了探索機(jī)器學(xué)習(xí)最前沿技術(shù)的時候了。請參閱第三階段的“機(jī)器學(xué)習(xí)項目”部分。

本文檔結(jié)構(gòu)如下:

第一部分可幫助您了解構(gòu)建機(jī)器學(xué)習(xí)系統(tǒng)的時機(jī)是否已經(jīng)成熟。

第二部分介紹了如何部署第一個管道。

第三部分介紹了在向管道添加新特征時如何進(jìn)行發(fā)布和迭代、如何評估模型,以及如何應(yīng)對訓(xùn)練-應(yīng)用偏差。

最后一部分介紹了當(dāng)您達(dá)到穩(wěn)定階段時該怎么做。

之后是相關(guān)資源列表和附錄,附錄針對多次作為示例在本文檔中提及的系統(tǒng),提供了一些背景信息。

在進(jìn)行機(jī)器學(xué)習(xí)之前

第 1 條規(guī)則:不要害怕發(fā)布未采用機(jī)器學(xué)習(xí)技術(shù)的產(chǎn)品。

機(jī)器學(xué)習(xí)技術(shù)很酷,但它需要數(shù)據(jù)。從理論上講,您可以采用來自其他問題的數(shù)據(jù),然后針對新產(chǎn)品調(diào)整模型,但其效果很可能不如基本的啟發(fā)式算法。如果您認(rèn)為機(jī)器學(xué)習(xí)技術(shù)能為您帶來 100% 的提升,那么啟發(fā)式算法可為您帶來 50% 的提升。

例如,如果您要對應(yīng)用市場中的應(yīng)用進(jìn)行排名,則可以將安裝率或安裝次數(shù)作為啟發(fā)式算法指標(biāo)。如果您要檢測垃圾郵件,則可以濾除以前發(fā)送過垃圾郵件的發(fā)布商。此外,也不要害怕手動修改。如果您需要對聯(lián)系人進(jìn)行排名,可以按使用聯(lián)系人的時間順序由近及遠(yuǎn)對其排序(或按字母順序排序)。如果您的產(chǎn)品并非必須使用機(jī)器學(xué)習(xí)技術(shù),則在獲得足夠的數(shù)據(jù)之前,請勿使用該技術(shù)。

第 2 條規(guī)則:首先設(shè)計并實現(xiàn)指標(biāo)。

在正式確定機(jī)器學(xué)習(xí)系統(tǒng)的功能之前,盡可能在當(dāng)前系統(tǒng)中跟蹤指標(biāo)的值。這樣做的原因如下:

  1. 提前行動有助于更輕松地從系統(tǒng)的用戶獲得授權(quán)。

  2. 如果您認(rèn)為將來可能需要考慮某個方面,最好立即開始收集相關(guān)歷史數(shù)據(jù)。

  3. 如果您在設(shè)計系統(tǒng)時考慮到指標(biāo)測量,將來會省下很多力氣。具體而言,您不希望自己以后在日志中苦苦查找字符串以測量指標(biāo)!

  4. 您將發(fā)現(xiàn)哪些內(nèi)容發(fā)生了變化以及哪些內(nèi)容始終未變。例如,假設(shè)您希望直接優(yōu)化單日活躍用戶數(shù)。但是,在早期操縱系統(tǒng)的過程中,您可能會發(fā)現(xiàn)用戶體驗的顯著改變并沒有使該指標(biāo)發(fā)生明顯變化。

Google+ 團(tuán)隊會衡量每次閱讀的展開次數(shù)、 轉(zhuǎn)發(fā)次數(shù)、+1 次數(shù)、評論次數(shù),以及每位用戶的評論次數(shù)、轉(zhuǎn)發(fā)次數(shù)等,然后在應(yīng)用模型時利用這些數(shù)據(jù)來衡量帖子的質(zhì)量。另請注意,實驗框架非常重要,您必須在實驗框架中將用戶分組為多個分桶,并按實驗匯總統(tǒng)計信息。 請參閱第 12 條規(guī)則。

通過以更加自由的方式收集指標(biāo),您可以更加全面地了解您的系統(tǒng)。發(fā)現(xiàn)問題了?添加指標(biāo)對其進(jìn)行跟蹤!對上個版本中發(fā)生的一些量變激動不已?添加指標(biāo)對其進(jìn)行跟蹤!

第 3 條規(guī)則:選擇機(jī)器學(xué)習(xí)技術(shù)而非復(fù)雜的啟發(fā)式算法。

簡單的啟發(fā)式算法有利于推出產(chǎn)品。但復(fù)雜的啟發(fā)式算法難以維護(hù)。當(dāng)您獲得足夠的數(shù)據(jù)并基本確定自己要嘗試實現(xiàn)的目標(biāo)后,請考慮使用機(jī)器學(xué)習(xí)技術(shù)。與大多數(shù)軟件工程任務(wù)一樣,您需要不斷更新方法(無論是啟發(fā)式算法還是機(jī)器學(xué)習(xí)模型),而且您會發(fā)現(xiàn)機(jī)器學(xué)習(xí)模型更易于更新和維護(hù)(請參閱第 16 條規(guī)則)。

機(jī)器學(xué)習(xí)第一階段:您的第一個管道

重點關(guān)注第一個管道的系統(tǒng)基礎(chǔ)架構(gòu)。雖然展望您將要進(jìn)行的創(chuàng)新性機(jī)器學(xué)習(xí)的方方面面是一件很有趣的事,但如果您不先確認(rèn)管道的可靠性,則很難弄清楚所發(fā)生的情況。

第 4 條規(guī)則:確保第一個模型簡單易用,并正確實施基礎(chǔ)架構(gòu)。

第一個模型可以最有效地提升您的產(chǎn)品質(zhì)量,因此不需要花哨,簡單易用即可。但是,您會遇到很多預(yù)料之外的基礎(chǔ)架構(gòu)問題。在公開推出您精心構(gòu)建的新機(jī)器學(xué)習(xí)系統(tǒng)之前,您必須確定以下幾點:

  • 如何為您的學(xué)習(xí)算法獲取樣本。

  • 初步確定對于您的系統(tǒng)來說,“好”和“壞”的定義是什么。

  • 如何將模型整合到應(yīng)用中。您可以在線應(yīng)用模型,也可以離線使用樣本對模型進(jìn)行預(yù)計算,并將結(jié)果存儲在表格中。例如,您可能需要對網(wǎng)頁進(jìn)行預(yù)分類并將結(jié)果存儲在表格中,但也可能需要在線對聊天消息進(jìn)行分類。

選擇簡單的特征可以更輕松地確保:

  • 將這些特征正確應(yīng)用于您的學(xué)習(xí)算法。

  • 模型學(xué)習(xí)出合理的權(quán)重。

  • 將這些特征正確應(yīng)用于服務(wù)器端。

當(dāng)您有了能可靠做到上述三點的系統(tǒng)時,則表示您已完成大部分工作。簡單的模型可為您提供基準(zhǔn)指標(biāo)和基準(zhǔn)行為,您可以利用這些指標(biāo)和行為測試更復(fù)雜的模型。某些團(tuán)隊以“中性”作為首次發(fā)布的目標(biāo) - 在首次發(fā)布時明確淡化機(jī)器學(xué)習(xí)成果,以避免分心。

第 5 條規(guī)則:撇開機(jī)器學(xué)習(xí),單獨測試基礎(chǔ)架構(gòu)。

確保基礎(chǔ)架構(gòu)可測試,且對系統(tǒng)的學(xué)習(xí)部分進(jìn)行封裝,以便測試這些部分之外的方方面面。具體而言:

  1. 測試數(shù)據(jù)導(dǎo)入算法的效果。檢查應(yīng)填充的特征列是否已填充。在隱私權(quán)許可的情況下,手動檢查輸入到訓(xùn)練算法的數(shù)據(jù)。如果可能的話,查看管道中的統(tǒng)計信息,并與在其他地方處理的相同數(shù)據(jù)的統(tǒng)計信息進(jìn)行比較。

  2. 測試從訓(xùn)練算法得出模型的效果。確保訓(xùn)練環(huán)境中的模型與應(yīng)用環(huán)境中的模型給出的分?jǐn)?shù)相同(請參閱第 37 條規(guī)則)。

機(jī)器學(xué)習(xí)具有不可預(yù)測性,因此要有用于訓(xùn)練環(huán)境和應(yīng)用環(huán)境中創(chuàng)建樣本的代碼的測試;并確保您可以在應(yīng)用期間加載和使用固定模型。此外,了解您的數(shù)據(jù)至關(guān)重要:請參閱分析大型復(fù)雜數(shù)據(jù)集的實用建議。

第 6 條規(guī)則:復(fù)制管道時注意丟棄的數(shù)據(jù)。

通常,我們通過復(fù)制現(xiàn)有管道來創(chuàng)建新管道(即貨物崇拜編程),且舊管道會丟棄一些新管道需要的數(shù)據(jù)。例如,Google+ 熱門信息的管道會丟棄時間較早的帖子(因為它會不斷嘗試對最新的帖子進(jìn)行排名)。此管道被復(fù)制用于 Google+ 信息流,在信息流中,時間較早的帖子仍然有意義,但舊管道仍會丟棄它們。另一種常見模式是僅記錄用戶看到的數(shù)據(jù)。因此,如果我們想要對用戶看不到特定帖子的原因進(jìn)行建模,此類數(shù)據(jù)就毫無用處,因為管道已丟棄所有負(fù)分類樣本。Play 中也曾出現(xiàn)過類似的問題。在處理 Play 應(yīng)用首頁時,創(chuàng)建了一個新管道,其中還包含來自 Play 游戲著陸頁的樣本,但無任何特征可區(qū)分各個樣本的來源。

第 7 條規(guī)則:將啟發(fā)式算法轉(zhuǎn)變?yōu)樘卣骰蛟谕獠刻幚硭鼈儭?/span>

通常,機(jī)器學(xué)習(xí)嘗試解決的問題并不是全新的問題。有一個現(xiàn)有的系統(tǒng),它可用于排名、分類,或解決您正嘗試解決的任何問題。這意味著有多種規(guī)則和啟發(fā)式算法。使用機(jī)器學(xué)習(xí)進(jìn)行調(diào)整后,此類啟發(fā)式算法可為您提供便利。 您應(yīng)該挖掘自己的啟發(fā)式算法,了解它們所包含的任何信息,原因有以下兩點。首先,向機(jī)器學(xué)習(xí)系統(tǒng)的過渡會更平穩(wěn)。其次,這些規(guī)則通常包含大量您不愿意丟棄的關(guān)于系統(tǒng)的直覺信息。您可以通過以下四種方法使用現(xiàn)有啟發(fā)式算法:

  • 使用啟發(fā)式算法進(jìn)行預(yù)處理。如果特征非常好,則可以選擇執(zhí)行此操作。例如,在垃圾郵件過濾器中,如果發(fā)件人已被列入黑名單,則不要試圖重新學(xué)習(xí)“已列入黑名單”的含義。屏蔽該郵件即可。這種方法最適合在二元分類任務(wù)中使用。

  • 創(chuàng)建特征。直接通過啟發(fā)式算法創(chuàng)建特征是一種很好的做法。例如,如果您使用啟發(fā)式算法來計算查詢結(jié)果的相關(guān)性分?jǐn)?shù),則可以將此分?jǐn)?shù)納為一個特征的值。您日后可能想要使用機(jī)器學(xué)習(xí)技術(shù)調(diào)整該值(例如,將該值轉(zhuǎn)換為一個有限離散值組中的一個,或與其他特征相組合),但是首先請使用啟發(fā)式算法生成的原始值。

  • 挖掘啟發(fā)式算法的原始輸入。如果某個應(yīng)用啟發(fā)式算法結(jié)合了安裝次數(shù)、文本中的字符數(shù)以及星期值,考慮將這些內(nèi)容拆分開來,并作為輸入單獨提供給學(xué)習(xí)算法。部分適用于集成學(xué)習(xí)的技巧也適用于此(請參閱第 40 條規(guī)則)。

  • 修改標(biāo)簽。當(dāng)您感覺啟發(fā)式算法會獲取當(dāng)前標(biāo)簽中未包含的信息時,可以選擇進(jìn)行此操作。例如,如果您正在嘗試最大程度地增加下載次數(shù),但同時也想要優(yōu)質(zhì)的內(nèi)容,則可能的解決方案是用標(biāo)簽乘以應(yīng)用獲得的平均星數(shù)。您可以非常靈活地修改標(biāo)簽。請參閱“您的第一個目標(biāo)”。

在機(jī)器學(xué)習(xí)系統(tǒng)中使用啟發(fā)式算法時,請務(wù)必留意是否會帶來額外的復(fù)雜性。在新的機(jī)器學(xué)習(xí)算法中使用舊啟發(fā)式算法有助于實現(xiàn)平穩(wěn)過渡,但思考下是否有可以達(dá)到相同效果的更簡單的方法。

監(jiān)控

在一般情況下,請實行良好的警報安全機(jī)制,例如設(shè)計解決警報的步驟以及提供“信息中心”頁面。

第 8 條規(guī)則:了解您的系統(tǒng)對新鮮程度的要求。

如果您使用一天前的模型,效果會降低多少?一周前的模型呢?一個季度前的模型呢?此類消息有助于您了解需要優(yōu)先監(jiān)控哪些方面。如果一天不更新模型會對您的產(chǎn)品質(zhì)量產(chǎn)生嚴(yán)重影響,則最好讓工程師持續(xù)觀察相關(guān)情況。大多數(shù)廣告投放系統(tǒng)每天都有新廣告要處理,并且必須每天更新。例如,如果不更新 Google Play 搜索的機(jī)器學(xué)習(xí)模型,則不到一個月便會產(chǎn)生負(fù)面影響。Google+ 熱門信息的某些模型中沒有帖子標(biāo)識符,因此無需經(jīng)常導(dǎo)出這些模型。其他具有帖子標(biāo)識符的模型的更新頻率要高得多。另請注意,新鮮程度會隨著時間而改變,尤其是在向模型中添加特征列或從中移除特征列時。

第 9 條規(guī)則:先檢測問題,然后再導(dǎo)出模型。

很多機(jī)器學(xué)習(xí)系統(tǒng)都會經(jīng)歷導(dǎo)出模型以應(yīng)用模型的階段。如果導(dǎo)出的模型存在問題,則是面向用戶的問題。

在導(dǎo)出模型之前,請進(jìn)行健全性檢查。具體而言,確保模型在處理預(yù)留數(shù)據(jù)方面表現(xiàn)合理?;蛘哒f,如果您一直認(rèn)為數(shù)據(jù)存在問題,請不要導(dǎo)出模型。很多經(jīng)常部署模型的團(tuán)隊在導(dǎo)出模型之前,會先檢查 ROC 曲線下面積(簡稱 AUC)。尚未導(dǎo)出的模型存在問題時,需要發(fā)送電子郵件提醒;但面向用戶的模型出現(xiàn)問題時,可能需要通過一個頁面進(jìn)行宣布。 因此,最好先等待檢查完畢并確保萬無一失后再導(dǎo)出模型,以免對用戶造成影響。

第 10 條規(guī)則:注意隱藏的問題。

相比其他類型的系統(tǒng),這種問題更常見于機(jī)器學(xué)習(xí)系統(tǒng)。假設(shè)關(guān)聯(lián)的特定表格不再更新,那么,機(jī)器學(xué)習(xí)系統(tǒng)會進(jìn)行相應(yīng)調(diào)整,其行為仍然會相當(dāng)好,但會逐漸變糟。有時,您會發(fā)現(xiàn)有些表格已有幾個月未更新,只需刷新一下,就可以獲得比相應(yīng)季度做出的所有其他改進(jìn)都更有效的效果提升!特征的覆蓋率可能會因?qū)崿F(xiàn)變化而發(fā)生改變:例如,某個特征列可能在 90% 的樣本中得到填充,但該比率突然下降到 60%。Google Play 曾有一個過時 6 個月的表格,但僅刷新了一下該表格,安裝率就提升了 2%。如果您對數(shù)據(jù)的統(tǒng)計信息進(jìn)行跟蹤,并不時地手動檢查數(shù)據(jù),就可以減少此類失敗。

第 11 條規(guī)則:提供特征列的所有者及相關(guān)文檔。

如果系統(tǒng)很大,且有很多特征列,則需要知道每個特征列的創(chuàng)建者或維護(hù)者。如果您發(fā)現(xiàn)了解某個特征列的人要離職,請確保有人知道相關(guān)信息。盡管很多特征列都有說明性名稱,但針對特征的含義、來源以及預(yù)計提供幫助的方式提供更詳細(xì)的說明,是一種不錯的做法。

您的第一個目標(biāo)

您會關(guān)注很多有關(guān)系統(tǒng)的指標(biāo)或測量結(jié)果,但通常只能為您的機(jī)器學(xué)習(xí)算法指定一個目標(biāo),即您的算法“嘗試”優(yōu)化的數(shù)值。 在這里,我介紹一下目標(biāo)和指標(biāo)有何區(qū)別:指標(biāo)是指您的系統(tǒng)報告的任意數(shù)字,可能重要,也可能不重要。另請參閱第 2 條規(guī)則。

第 12 條規(guī)則:選擇直接優(yōu)化哪個目標(biāo)時,不要想太多。

您想賺錢,想讓用戶滿意,想讓世界變得更美好。您關(guān)注的指標(biāo)有很多,而且您應(yīng)該對所有這些指標(biāo)進(jìn)行測量(請參閱第 2 條規(guī)則)。不過,在早期的機(jī)器學(xué)習(xí)過程中,您會發(fā)現(xiàn)這些指標(biāo)都呈上升趨勢,甚至那些您沒有選擇直接優(yōu)化的指標(biāo)也是如此。例如,假設(shè)您關(guān)注點擊次數(shù)和用戶在網(wǎng)站上停留的時間。如果您優(yōu)化點擊次數(shù),則用戶在網(wǎng)站上停留的時間很可能也會增加。

所以,當(dāng)您仍然可以輕松增加所有指標(biāo)時,保持簡單,不要過多考慮如何在不同的指標(biāo)間實現(xiàn)平衡。但不要過度使用此規(guī)則:不要將您的目標(biāo)與系統(tǒng)最終的運行狀況相混淆(請參閱第 39 條規(guī)則)。此外,如果您發(fā)現(xiàn)自己增大了直接優(yōu)化的指標(biāo),但決定不發(fā)布系統(tǒng),則可能需要修改某些目標(biāo)。

第 13 條規(guī)則:為您的第一個目標(biāo)選擇一個可觀察且可歸因的簡單指標(biāo)。

您往往并不知道真正的目標(biāo)是什么。您以為自己知道,但當(dāng)您盯著數(shù)據(jù),對舊系統(tǒng)和新的機(jī)器學(xué)習(xí)系統(tǒng)進(jìn)行對比分析時,您發(fā)現(xiàn)自己想調(diào)整目標(biāo)。此外,團(tuán)隊的不同成員通常無法就什么是真正的目標(biāo)達(dá)成一致意見。機(jī)器學(xué)習(xí)目標(biāo)應(yīng)是滿足以下條件的某種目標(biāo):易于測量且是“真正的”目標(biāo)的代理。實際上,通常沒有“真正的”目標(biāo)(請參閱第 39 條規(guī)則)。因此,請對簡單的機(jī)器學(xué)習(xí)目標(biāo)進(jìn)行訓(xùn)練,并考慮在頂部添加一個“策略層”,以便您能夠添加其他邏輯(最好是非常簡單的邏輯)來進(jìn)行最終排名。

要進(jìn)行建模,最簡單的指標(biāo)是可直接觀察到且可歸因到系統(tǒng)操作的用戶行為:

  • 用戶是否點擊了此已排名鏈接?

  • 用戶是否下載了此已排名對象?

  • 用戶是否轉(zhuǎn)發(fā)/回復(fù)/使用電子郵件發(fā)送了此已排名對象?

  • 用戶是否評價了此已排名對象?

  • 用戶是否將此顯示的對象標(biāo)記為了垃圾郵件/色情內(nèi)容/攻擊性內(nèi)容?

避免一開始對間接影響進(jìn)行建模:

  • 用戶第二天訪問網(wǎng)站了嗎?

  • 用戶在網(wǎng)站上停留了多長時間?

  • 每日活躍用戶數(shù)有多少?

其實,間接影響可成為出色的指標(biāo),可以在 A/B 測試和發(fā)布決策期間使用。

最后,不要試圖讓機(jī)器學(xué)習(xí)系統(tǒng)弄清楚以下問題:

  • 用戶在使用產(chǎn)品時是否感到滿意?

  • 用戶是否對使用體驗感到滿意?

  • 產(chǎn)品是否提升了用戶的整體滿意度?

  • 這會對公司的整體運行狀況產(chǎn)生什么樣的影響?

所有這些都很重要,但也極難衡量。請改為使用代理指標(biāo):如果用戶感到滿意,他們會在網(wǎng)站上停留更長時間。如果用戶感到滿意,他們明天會再次訪問網(wǎng)站。就滿意度和公司運行狀況而言,需要進(jìn)行人為判斷,以便將任意機(jī)器學(xué)習(xí)目標(biāo)與您銷售的產(chǎn)品的性質(zhì)和業(yè)務(wù)計劃關(guān)聯(lián)起來。

第 14 條規(guī)則:從可解釋的模型著手可更輕松地進(jìn)行調(diào)試。

線性回歸、邏輯回歸和泊松回歸均由概率模型直接推動。每個預(yù)測都可看作是一個概率或預(yù)期值。這樣一來,相較于使用目標(biāo)(0-1 損失、各種合頁損失函數(shù)等)以嘗試直接優(yōu)化分類準(zhǔn)確度或?qū)πЧM(jìn)行排名的模型,這種模型更易于進(jìn)行調(diào)試。例如,如果在訓(xùn)練中得出的概率與采用并排分析方式或通過檢查生產(chǎn)系統(tǒng)的方式預(yù)測的概率之間存在偏差,則表明存在問題。

例如,在線性回歸、邏輯回歸或泊松回歸中,有一部分平均預(yù)測期望值等于平均標(biāo)簽值(一階矩校準(zhǔn),或只是校準(zhǔn))的數(shù)據(jù)。假設(shè)您沒有正則化且算法已收斂,那么理論上即是如此,實際上也是差不多這種情形。如果您有一個特征,對于每個樣本來說,其值要么是 0,要么是 1,則會校準(zhǔn) 3 個特征值為 1 的樣本集。此外,如果您有一個特征,對于每個樣本來說,其值均為 1,則會校準(zhǔn)所有樣本集。

借助簡單的模型,您可以更輕松地處理反饋環(huán)(請參閱第 36 條規(guī)則)。通常情況下,我們會根據(jù)這些概率預(yù)測來做出決策;例如,以期望值(點擊概率/下載概率等)為標(biāo)準(zhǔn),按降序?qū)μ舆M(jìn)行排名。 但是,請注意,當(dāng)選擇要使用的模型時,您的決定比模型給出的數(shù)據(jù)概率更為重要(請參閱第 27 條規(guī)則)。

第 15 條規(guī)則:在策略層中區(qū)分垃圾內(nèi)容過濾和質(zhì)量排名。

質(zhì)量排名是一門藝術(shù),但垃圾內(nèi)容過濾就像一場戰(zhàn)爭。對于使用您系統(tǒng)的用戶來說,您使用哪些信號來確定高質(zhì)量帖子將變得顯而易見,而且這些用戶會調(diào)整自己的帖子,使其具有高質(zhì)量帖子的屬性。因此,您的質(zhì)量排名應(yīng)側(cè)重于對誠實發(fā)布的內(nèi)容進(jìn)行排名。您不應(yīng)該因為質(zhì)量排名學(xué)習(xí)器將垃圾內(nèi)容排在前列而對其應(yīng)用折扣。同樣,“少兒不宜”的內(nèi)容也不應(yīng)該在質(zhì)量排名中進(jìn)行處理。 垃圾內(nèi)容過濾則另當(dāng)別論。您必須明白,需要生成的特征會不斷變化。通常情況下,您會在系統(tǒng)中設(shè)置一些明顯的規(guī)則(如果一個帖子收到三次以上的垃圾內(nèi)容舉報,請勿檢索該帖子等等)。所有學(xué)習(xí)模型都必須至少每天更新。內(nèi)容創(chuàng)作者的聲譽(yù)會發(fā)揮很大作用。

在某個層級,必須將這兩個系統(tǒng)的輸出整合在一起。請注意,與過濾電子郵件中的垃圾郵件相比,在過濾搜索結(jié)果中的垃圾內(nèi)容時,可能應(yīng)該更加主動。這種說法的前提是您沒有正則化且算法已收斂。一般來說大致是這樣。此外,從質(zhì)量分類器的訓(xùn)練數(shù)據(jù)中移除垃圾內(nèi)容是一種標(biāo)準(zhǔn)做法。

機(jī)器學(xué)習(xí)第二階段:特征工程

在機(jī)器學(xué)習(xí)系統(tǒng)生命周期的第一階段,重要的問題涉及以下三個方面:將訓(xùn)練數(shù)據(jù)導(dǎo)入學(xué)習(xí)系統(tǒng)、對任何感興趣的指標(biāo)進(jìn)行測量,以及構(gòu)建應(yīng)用基礎(chǔ)架構(gòu)。當(dāng)您構(gòu)建了一個端到端的可穩(wěn)定運行的系統(tǒng),并且制定了系統(tǒng)測試和單元測試后,就可以進(jìn)入第二階段了。

第二階段的很多目標(biāo)很容易實現(xiàn),且有很多明顯的特征可導(dǎo)入系統(tǒng)。因此,機(jī)器學(xué)習(xí)的第二階段涉及導(dǎo)入盡可能多的特征,并以直觀的方式將它們組合起來。在這一階段,所有的指標(biāo)應(yīng)該仍然呈上升趨勢,您將會多次發(fā)布系統(tǒng),并且非常適合安排多名工程師,以便整合創(chuàng)建真正出色的學(xué)習(xí)系統(tǒng)所需的所有數(shù)據(jù)。

第 16 條規(guī)則:制定發(fā)布和迭代模型計劃。

不要指望您現(xiàn)在正在構(gòu)建的模型會是您將要發(fā)布的最后一個模型,也不要指望您會停止發(fā)布模型。因此,請考慮此次發(fā)布中增加的復(fù)雜性是否會減緩未來版本的發(fā)布。很多團(tuán)隊多年來每季度都會發(fā)布一個或多個模型。發(fā)布新模型的三個基本原因如下所示:

  • 您將要添加新特征。

  • 您將要調(diào)整正則化并以新方式組合舊特征。

  • 您將要調(diào)整目標(biāo)。

無論如何,構(gòu)建模型時多考慮考慮并沒有什么壞處:查看提供到樣本中的數(shù)據(jù)有助于發(fā)現(xiàn)新信號、舊信號以及損壞的信號。因此,在構(gòu)建模型時,請考慮添加、移除或重新組合特征的難易程度??紤]創(chuàng)建管道的全新副本以及驗證其正確性的難易程度。考慮是否可以同時運行兩個或三個副本。最后,不必?fù)?dān)心此版本的管道有沒有納入第 16 個特征(共 35 個),下個季度會將其納入。

第 17 條規(guī)則:從可直接觀察和報告的特征(而不是經(jīng)過學(xué)習(xí)的特征)著手。

這一點可能存在爭議,但可以避免許多問題。首先,我們來介紹一下什么是學(xué)習(xí)的特征。學(xué)習(xí)的特征是由外部系統(tǒng)(例如非監(jiān)督式集群系統(tǒng))或?qū)W習(xí)器本身(例如通過因子模型或深度學(xué)習(xí))生成的特征。這兩種方式生成的特征都非常有用,但會導(dǎo)致很多問題,因此不應(yīng)在第一個模型中使用。

如果您使用外部系統(tǒng)創(chuàng)建特征,請注意,外部系統(tǒng)有其自己的目標(biāo)。外部系統(tǒng)的目標(biāo)與您當(dāng)前的目標(biāo)之間可能僅存在一點點關(guān)聯(lián)。如果您獲取外部系統(tǒng)的某個瞬間狀態(tài),它可能就會過期。如果您從外部系統(tǒng)更新特征,則特征的含義可能會發(fā)生變化。如果您使用外部系統(tǒng)提供特征,請注意,采用這種方法需要非常小心。

因子模型和深度模型的主要問題是,它們是非凸模型。因此,無法保證能夠模擬或找到最優(yōu)解決方案,且每次迭代時找到的局部最小值可能不同。這種變化導(dǎo)致難以判斷系統(tǒng)發(fā)生的某次變化的影響是有意義的還是隨機(jī)的。通過創(chuàng)建沒有深度特征的模型,您可以獲得出色的基準(zhǔn)效果。達(dá)到此基準(zhǔn)后,您可以嘗試更深奧的方法。

第 18 條規(guī)則:探索可跨情境泛化的內(nèi)容的特征。

機(jī)器學(xué)習(xí)系統(tǒng)通常只是更大系統(tǒng)中的一小部分。例如,想象熱門信息中可能會使用的帖子,在其顯示到熱門信息之前,很多用戶已經(jīng)對其進(jìn)行 +1、轉(zhuǎn)發(fā)或評論了。如果您將這些統(tǒng)計信息提供給學(xué)習(xí)器,它就會對在正在優(yōu)化的情景中沒有數(shù)據(jù)的新帖子進(jìn)行推廣。 YouTube 的“接下來觀看”可以使用來自 YouTube 搜索的觀看次數(shù)或連看次數(shù)(觀看完一個視頻后觀看另一個視頻的次數(shù))或明確的用戶評分來推薦內(nèi)容。最后,如果您將一個用戶操作用作標(biāo)簽,在其他情境中看到用戶對文檔執(zhí)行該操作可以是很好的特征。借助所有這些特征,您可以向該情境中引入新內(nèi)容。請注意,這與個性化無關(guān):先弄清楚是否有人喜歡此情境中的內(nèi)容,然后再弄清楚喜歡程度。

第 19 條規(guī)則:盡可能使用非常具體的特征。

對于海量數(shù)據(jù),學(xué)習(xí)數(shù)百萬個簡單的特征比學(xué)習(xí)幾個復(fù)雜的特征更簡單。正在被檢索的文檔的標(biāo)識符以及規(guī)范化的查詢不會提供很多泛化作用,但可以讓您的排名與頻率靠前的查詢的標(biāo)簽保持一致。因此,請不要害怕具有以下特點的特征組:每個特征適用于您的一小部分?jǐn)?shù)據(jù)但總體覆蓋率在 90% 以上。您可以使用正則化來消除適用樣本過少的特征。

第 20 條規(guī)則:組合和修改現(xiàn)有特征,以便以簡單易懂的方式創(chuàng)建新特征。

有多種方式可以組合和修改特征。借助 TensorFlow 等機(jī)器學(xué)習(xí)系統(tǒng),您可以通過轉(zhuǎn)換對數(shù)據(jù)進(jìn)行預(yù)處理。最標(biāo)準(zhǔn)的兩種方法是“離散化”和“組合”。

“離散化”是指提取一個連續(xù)特征,并從中創(chuàng)建許多離散特征。以年齡這一連續(xù)特征為例。您可以創(chuàng)建一個年齡不滿 18 周歲時其值為 1 的特征,并創(chuàng)建年齡在 18-35 周歲之間時其值為 1 的另一個特征,等等。不要過多考慮這些直方圖的邊界:基本分位數(shù)給您帶來的影響最大。

“組合”方法是指組合兩個或更多特征列。在 TensorFlow 中,特征列指的是同類特征集(例如,{男性, 女性}、{美國, 加拿大, 墨西哥} 等等)。組合指的是其中包含特征的新特征列,例如,{男性, 女性} × {美國, 加拿大, 墨西哥}。此新特征列將包含特征(男性, 加拿大)。如果您使用的是 TensorFlow,并讓 TensorFlow 為您創(chuàng)建此組合,則此(男性, 加拿大)特征將存在于表示加拿大男性的樣本中。請注意,您需要擁有大量數(shù)據(jù),才能使用具有三個、四個或更多基準(zhǔn)特征列的組合學(xué)習(xí)模型。

生成非常大的特征列的組合可能會過擬合。例如,假設(shè)您正在執(zhí)行某種搜索,您的某個特征列包含查詢中的字詞,另一個特征列包含文檔中的字詞。這時,您可以使用“組合”方法將這些特征列組合起來,但最終會得到很多特征(請參閱第 21 條規(guī)則)。

處理文本時,有兩種備用方法。最嚴(yán)苛的方法是點積。點積方法采用最簡單的形式時,僅會計算查詢和文檔間共有字詞的數(shù)量。然后將此特征離散化。另一種方法是交集:如果使用交集方法,當(dāng)且僅當(dāng)文檔和查詢中都包含“pony”一詞時,才會出現(xiàn)一個特征;當(dāng)且僅當(dāng)文檔和查詢中都包含“the”一詞時,才會出現(xiàn)另一個特征。

下篇參見谷歌發(fā)布機(jī)器學(xué)習(xí)規(guī)則 (Rules of Machine Learning): 關(guān)于機(jī)器學(xué)習(xí)工程的最佳實踐(下)

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

谷歌發(fā)布機(jī)器學(xué)習(xí)規(guī)則 (Rules of Machine Learning): 關(guān)于機(jī)器學(xué)習(xí)工程的最佳實踐(上)

分享:
相關(guān)文章

編輯

關(guān)注AI學(xué)術(shù),例如論文
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說