超詳細!上線一個機器學習項目你需要哪些準備?

摘要: Canvas是用於設計和記錄機器學習系統的模板。它比簡單的文本文檔具有優勢,因為Canvas用簡單的部件通過部件之間的相關性來尋找機器學習系統的關鍵組件。這個工具已經很流行,因為它對複雜項目進行了可視化操作。 在本文中,我們通過列舉數據科學家遇到的實際問題和實用的技巧來描述Canvas的每個部分。

價值主張

機器學習應該以滿足用戶需求為目的進行設計

  • 誰是預測系統的最終用戶?
  • 我們需要他們做些什麼?
  • 服務的目標是什麼?目標的意義又是什麼?

    只有在回答這3W問題之後,你才能開始思考一些關於數據收集、特徵工程、建模、評估和監測系統的問題。

從數據中學習

讓我們繼續看看專門用於從數據中學習的Canvas的流程,它是由數據源、收集數據、特徵工程、建模等幾部分組成的。

數據源

這一部分提出了一個關於我們可以使用哪些原始數據源的問題。這一步不需要具體計劃收集哪些數據,但會迫使你開始思考要使用的數據源。你需要考慮的一些數據源示例包括內部資料庫、開放數據、域中的研究論文、API、網頁抓取以及其他機器學習系統的輸出等。

收集數據

這一部分主要解決收集和準備數據的問題。如果沒有訓練數據集,機器學習項目就不可能存在。並且,訓練集最好包含大量已標記數據。這意味著你的學習系統將需要示例輸入和他們期望的輸出。只有從標有正確答案的數據中學習之後,機器學習模型才能用於對新數據進行預測。

通常,數據最初並不是以標註形式提供的,制定數據集的計劃非常重要,該數據集將特徵過程用作預測的實際數據。只有輸入的數據正確,所開發的學習演算法才具有良好的性能。

例如,如果你想建立一個演算法來預測一個Instagram帳戶是假的還是真的,首先你需要人類將帳戶標記為真或假。對於一個人來說這不是一項複雜的任務,但是根據你需要的數據量,這可能會變得很昂貴。

但是,你可以通過更具成本效益的方式獲取數據。例如,Instagram允許其用戶將其消息中的圖像和配置文件報告為垃圾郵件。用戶免費為Instagram演算法標記數據,給喜歡的帖子點贊並將不當內容報告為垃圾郵件。然後,Instagram使用這些用戶反饋來打擊欺詐和垃圾郵件帳戶,並為每位客戶提供個性化的消息。

需要指出的是,迄今為止最準確的機器學習系統都採用了「人為介入」方法。這種方法利用了機器和人的智能。當機器不確定它做出的預測是否正確時,它會依賴於人,然後將人的答案添加到其模型中。「人為介入」這一方法有助於獲得高質量的新數據,並隨著時間的推移提高模型的準確性。

還有一些項目可以在沒有標註數據集的情況下啟動,。這些是關於無監督機器學習任務的項目,例如異常檢測或觀眾分類。

特徵工程

一旦擁有已標註的數據,你需要將其轉換為演算法可接受的格式。在機器學習中,這個過程被稱為特徵工程。最初的一組原始特徵可能是冗餘、海量而無法管理。因此,數據科學家需要選擇最重要的信息特徵來促進學習。特徵工程需要大量的實驗,並將自動化技術與直覺和領域專業知識相結合。

InDataLabs的數據科學家Eugeny表示:

我們使用簡單的機器學習技術,如梯度提升或線性回歸來選擇和解釋特徵。回歸模型的係數自動提供對特徵重要性的評估估計。我們使用不同的超參數配置多次訓練模型,以確保特徵的排序是可靠的,並且從實驗到實驗並沒有顯著變化。

如果你是領域專家(不是數據科學家),你應該從自己的角度指定哪些特徵是最重要的,這對未來的數據工程師非常有用。如果發現自己列出了太多功能,請嘗試將它們組合到特徵系列中。

許多機器學習專家認為,正確選擇的特徵是有效構建模型的關鍵。

建立和更新模型

該部分解決了何時使用新數據創建/更新模型的問題。主要有兩個原因不斷使得你的模型不斷更新。首先,新數據可以改善模型。其次,它允許捕捉模型運行中的任何變化。模型需要用更新的頻率取決於預測內容。

如果模型預測了短語的情感,就不需要每天或每周更新它。文本的結構變化非常緩慢甚至沒有改變。如果你獲得了更多的訓練數據,這是你需要大規模的更新模型。

另一方面,有一些模型在快速變化的情況中工作。例如,如果對客戶行為做出預測,則應經常檢查這一模型是否適用於新用戶。受眾規模和受眾結構的重大變化可能使得我們需要使用新數據更新模型。

有時更新需要更多的時間和更多的處理能力。在這種情況下,我們需要在成本、時間和模型質量之間取捨。

這個部分的關鍵之處在於,你的模型不是一次性構建的,它應該隨著時間而改變,就像世界上的所有事物一樣。

進行預測

Canvas主要致力於進行預測,並由機器學習任務、決策、預測、離線評估等部件組成。

機器學習任務

該部分旨在根據輸入、輸出和問題類型定義機器學習任務。最常見的機器學習任務是分類、排名和回歸。

如果你預測某些物體是什麼,要預測的輸出的是類標籤。在二進位分類中,有兩種可能的輸出類別。在多類分類中,有兩個以上的可能類。我們前面討論過的偽造Instagram賬戶的預測問題是二元分類的一個例子。輸入數據可能包括個人資料名稱、個人資料描述、帖子數量、關注者數量、輸出標籤可能是「真的」或「假的「。

如果你試圖預測數值,那麼你正在處理回歸任務。例如,當我們試圖根據價格歷史和有關建築和市場的其他信息來預測未來幾天的房地產價格時,我們可以將其視為回歸任務。

決策

如何使用預測來向最終用戶的決策提供建議?

在收集培訓數據並建立模型之前,你和團隊不得不闡述如何使用這些預測來做出為最終用戶提供價值的決策。對於每個項目來說,這是一個非常重要的問題,因為它與項目的盈利能力密切相關。如前文所述,一個成功的機器學習系統應該為其用戶創造額外的價值。

機器學習系統必須以真正有意義的方式影響決策過程,預測必須按時交付。許多公司犯的一個常見錯誤是建立一個機器學習模型,該模型應該可以在線進行預測,然後發現他們無法獲得實時數據。所以,在計劃您的機器學習項目時要注意時間,並確保在正確的時間提供正確的數據以提供您可以採取行動的預測。

機器學習系統的輸出並不總是用戶正在尋找的結果。例如,流失預測模型有助於預測一個月內誰可能流失,但最終用戶需要的是流失預防(以具有成本效益的方式阻止客戶流失)。從流失預測到流失預防需要做很多步驟,機器學習項目的擁有者必須能夠事先描述這些步驟。如果你不能解釋如何使用預測來做出為最終用戶提供價值的決策,那麼在這裡停下來,不要向前走,除非你找到答案。

進行預測

該部分解決了以下問題:「我們什麼時候對新投入做出預測?」以及「我們需要多長時間來設計新的投入並進行預測?」

有些模型允許分別更新每個用戶的預測。在這種情況下,你可以考慮幾種模型更新方法:

  • 每次用戶打開您的應用程序時都會進行新的預測
  • 新的預測是根據請求做出的,用戶可以通過點擊應用程序中的特殊按鈕來請求更新
  • 預測更新由某個事件觸發,例如用戶提交新的重要信息
  • 對所有用戶按計划進行新的預測,例如每周一次

    還有一些系統,其中對不同用戶的預測是相互關聯的,並且在不更新整個系統的情況下無法為一個用戶進行更新。這種通用更新需要更多時間和更多處理能力,因此需要更多計劃。預測更新所需的時間必須符合所需的更新頻率。

例如,如果您要構建影片推薦系統,請首先考慮建議應該多久更新一次新輸入,以便與用戶相關且有價值。那麼你應該檢查這是否可能,因為你的機器學習系統的速度有限。如果您想每天更新並且更新需要兩個小時,這對您來說是個好消息。如果您認為您的建議只有每小時更新一次才有價值,而更新需要兩個小時,則您需要再次在成本,時間和模型質量之間妥協。

離線評估

該模塊在投入生產之前解決模型性能評估的問題。規劃方法和指標以在部署之前評估系統非常重要。如果沒有驗證指標,您將無法選擇能夠做出最佳預測並回答的模型,模型是否足夠好以及何時可以投入生產。因此,請確保您具有代表您正在努力實現的指標。

要評估一個有監督的機器學習演算法,我們通常使用k-fold交叉驗證。該方法意味著對可用訓練數據的(k-1)個子集上的幾個機器學習模型進行訓練,並對保留用於評估的補充子集進行評估。這個過程重複k次,每次都有不同的驗證數據。這種技術有助於避免過度擬合,同時使用所有可用的數據進行訓練

InDataLabs的數據科學家Eugeny如是說。

離線評估的另一種方法是對實時數據進行離線評估。例如,如果您正在建立預測房地產價格的模型,則只需等待實際銷售數據可用,並將您的預測與實時數據進行比較。

實時評估和監測

Canvas 的最後部分涵蓋了模型的在線評估和監測。在這裡,您將指定度量標準來監控部署後的系統性能(跟蹤度量標準),並衡量價值創建(業務度量標準)。調整這兩種指標將使公司中的每個人都更快樂。理想情況下,模型的質量與業務結果之間應有直接關係。

在線階段有其自己的測試程序。A/B測試是最常用的在線測試形式。這種方法相當簡單,但它有一些棘手的規則和原則,您需要遵循才能正確設置並解釋結果。

A/B測試的一個有希望的替代方法是稱為多臂博弈的演算法。如果您有多個競爭型號,並且您的目標是最大限度地提高用戶的整體滿意度,那麼您可以嘗試運行多臂博弈演算法。

當模型投入生產時,它與真實用戶進行交互,他們也可以提供關於模型準確性信息。您可以收集這種現場反饋,進行客戶訪談或分析評論和支持請求。

您還應該繼續跟蹤模型在實時數據驗證度量上的性能,並在模型質量對最終用戶不滿意之前進行模型更新。

數十款阿里雲產品限時折扣中,趕緊點擊領劵開始雲上實踐吧!

以上為譯文,由阿里云云棲社區組織翻譯。

譯文鏈接

文章原標題《How to Design Better Machine Learning Systems with Machine Learning Canvas》

譯者:Anchor C.,審校:虎說八道。

文章為簡譯,更為詳細的內容,請查看原文。

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎


推薦閱讀:

九章演算法 | Google 面試題:解碼方法2
阿里集團搜索和推薦關於效率&穩定性的思考和實踐
生日悖論
演算法 - 插入排序和希爾排序
分散式Snapshot和Flink Checkpointing簡介

TAG:演算法 | 機器學習 |