機器學習工程實踐筆記

萬仞之巔,始於起步

經典WWH:算法

  1. WHAT?網絡

    什麼是機器學習?架構

    機器學習有不少定義,廣爲人知的有以下兩條:併發

    • ArthurSamuel (1959): Machine Learning: Field of study that gives computers theability to learn without being explicitly programmed.機器學習

    • TomMitchell (1998) : Well-posed Learning Problem: A computer program is said tolearn from experience E with respect to some task T and some performance measureP, if its performance on T, as measured by P, improves with experience E.工具

  2. WHY?性能

    爲何要機器學習學習

    機器學習專門研究計算機怎樣模擬或實現人類的學習行爲,以獲取新的知識或技能,從新組織已有的知識結構使之不斷改善自身的性能。機器學習的應用很普遍,例如大規模的數據挖掘(網頁點擊數據,醫療記錄等),無人駕駛飛機、汽車,手寫手別,大多數的天然語言處理任務,計算機視覺,推薦系統等。測試

  3. HOW?優化

    怎樣實踐機器學習

    • 監督學習

      對具備概念標記(分類)的訓練樣本進行學習,以儘量對訓練樣本集外的數據進行標記(分類)預測。這裏,全部的標記(分類)是已知的。所以,訓練樣本的岐義性低。監督學習是訓練神經網絡和決策樹的最多見技術。這兩種技術(神經網絡和決策樹)高度依賴於事先肯定的分類系統給出的信息。

    • 無監督學習

      對沒有概念標記(分類)的訓練樣本進行學習,以發現訓練樣本集中的結構性知識。這裏,全部的標記(分類)是未知的。所以,訓練樣本的岐義性高。常見的無監督學習算法有聚類。

    注意: 由於工做只會涉及監督學習, 因此後面內容再也不陳述無監督學習部分.

機器學習實踐流程

監督學習實踐階段:
image

監督學習實踐能夠歸納成5個階段:

  1. 業務需求

    • 分析業務
    • 概括需求
    • 抽象問題

    一句話,怎樣幫業務解決問題?

  2. 模型選型

    • 選型
    • 論證

    根據理解選擇或設計(沒有現成)學習模型, 並從理論層面論證可以解決問題.

    最佳實踐: 在選型論證階段明確模型訓練的輸入輸出與模型應用的輸入輸出

    • 模型訓練的標籤數據: 須要明確辨別正負樣本的數據.

    • 模型訓練的特徵數據: 特徵數據有high-level與low-level之分. 就重避輕, 選擇更多high-level的特徵, 減小low-level的特徵, 可以加速模型訓練的速度. 特別是在計算資源不充裕的狀況下, 這種作法很實在.

    • 模型應用的調用參數: 模型計算傳遞哪些必需參數, 哪些可選參數?

    • 模型應用的輸出結果: 模型計算返回哪些數據, 什麼意義, 什麼類型?

    明確模型訓練與模型應用的輸入輸出, 對於模型開發具備確切的指導!

  3. 模型開發

    名言: 數據和特徵決定機器學習上限, 算法和模型只是逼近這個上限而已.

    模型開發的工做都是圍繞"數據和特徵","算法和模型"這2個核心開展的!

    • 創建數據通道的工做

      • 準備訓練樣本的標籤數據與特徵數據, 並保證通道的可靠性與時效性.

      難點係數4:
      訓練樣本的數據篩選,數據投放與數據回籠, 依賴打通全鏈路的數據通道.

    • 處理樣本(標籤數據,特徵數據)的工做

      • ETL(抽取,轉換,加載)樣本數據.
      • 清洗(空值處理,錯誤處理,完整檢查)樣本數據.
      • 分類(打標)樣本數據.

      難點係數2~3: 須要熟悉樣本數據的業務知識. 哪裏來! 哪裏去!

    • 處理特徵的工做

      • 提取特徵
      • 選擇特徵
      • 變換特徵
      • 組合特徵

      處理特徵過程涉及各種特徵算法, 習慣上叫特徵工程.

      難點係數4: 大多數工程選用成熟開源機器學習工具庫.

    • 設計與實現算法

      難點係數5: 大多數工程選用成熟開源機器學習算法.

    • 構建與優化模型

      難點係數5: 大多數工程選用成熟開源機器學習模型.

    • 測試與上線模型

      • 在線部署
      • 離線安裝

      難點係數3: 在線接口要求高可用,大併發,低延時. 大多數工程基於水平擴展架構(堆疊Nginx+Regin).

  4. 模型訓練

    監督學習閉環圖
    image

    模型評估指標:

    對於樣本篩選後的結果:

    T F
    P (PT) (PF)
    N (NT) (NF)
    • 準確率:
    A = (PT + NF) / (PT + PF + NT + NF)
    即將正例的斷定爲正,負例的斷定爲負.
    • 召回率:
    R = PT / (PT + NF) = 1 - NF / (PT + NF)
    即斷定正例佔所有正例的比重.
    • 精確度:
    P = PT / (PT + PF)
    • F-measure or balanced F-score
    F = 2 * A * R / (A + R)
    傳統所說的F1-measure
  5. 模型應用

    詳見上

    • 機器學習通過模型訓練的(算法,模型,特徵)應用於業務需求, 幫助業務解決問題

    • 機器學習通過N次迭代,反覆模型訓練, 沉湎的(算法,模型,特徵)會愈來愈成熟, 幫助業務解決問題的能力也愈來愈強. 然而, 這是一個動態的成長曆程!

訓練樣本示例

樣例約定

每一個樣例一行,包含3類數據:

  • 標籤數據:

    tag_爲前綴的列

  • 用戶特徵數據:

    usr_爲前綴的列

  • 主播特徵數據:

    anc_爲前綴的列

訓練樣本hive表結構

維護注意事項:

  • 表字段與下述位置嚴格一致! 維護時請勿錯亂已有字段排列順序.
字段 類型 註釋 來源表
tag_viewclick BIGINT 曝光點擊數.正例值大於0,負例值爲空或=0
usr_特徵1
...
anc_特徵1
...

強化訓練的思路

使用"曝光點擊數據"對"個性推薦模型"進行模型訓練.

訓練樣本的樣例格式, 其中點擊數爲標籤.

資源位,用戶ID,用戶特徵....,主播ID,主播特徵..., 點擊數
  • 先用這批數據提交模型進行預測, 獲得預測結果
  • 對比預測結果與"曝光點擊數". 求出A, R, P, S指標. 天天出環比曲線圖.
相關文章
相關標籤/搜索