第 5 章 機器學習技術的應用 中

2022-06-17 14:36:12 字數 3550 閱讀 5589

原文

全文目錄

特徵工程的重要性

需要同時掌握理論方法和業務邏輯才能提取有效的特徵;

在特徵方面擁有最大的自主性和探索性;

指徵能力, 該特徵的大小變化對最終結果的大小變化會在什麼方向起到多大的作用;

使用者id類特徵

id特徵, 指為每個使用者分配乙個唯一id, 將這組唯一id作為一組 one-hot 特徵, 每個使用者在這組特徵中只有乙個特徵; 具有個性化程度最強;

學習到乙個使用者整體的點選偏好, 承擔學習全域性偏置的功能;

將使用者id與物品側的非id類特徵交叉組合, user_id+user_id×item_attribute;

歷史記憶性強, 未來擴充套件能力差;

行為 id 類特徵

從根本上替換掉使用者id這個具有歷史記憶屬性的核心元素, 將其替換為可以代表乙個使用者, 同時還具有擴充套件性的其他資訊, 降維;

有過某個行為的使用者對於當前物品的點選概率;

對於使用者有過行為的物品 hitory_item 和待**的物品 current_item 組合特徵;

id 類特徵的降維

大規模 id 類特徵, 非常細粒度的描述方法, 對於使用者和物品之間的喜好關係有非常強的捕捉能力, 但也有侷限性:

樣本量要求大;

樣本量是特徵量的 10 倍;

數量龐大, 實現要求高;

資料稀疏性;

特徵泛化能力差;

id 類特徵在 bias-variance(偏差-方差)的權衡中選擇了偏差較低的一端;

模型資訊總結提煉難度大;

將使用者, 物品的 id 用更低維, 更稠密的資訊來表示;

例如: 使用者id => 屬性(性別或年齡), 標籤(喜好類別和標籤)等;

高維特徵(id 類)用來增強行為豐富的使用者的細緻體驗;

低維特徵用來覆蓋行為不足的使用者和物品;

交叉特徵的優選

構造交叉特徵有兩種方式:

笛卡爾積方式

使用者特徵a和物品特徵b中各個特徵相互組合成乙個特徵;

特徵量大, 描述能力強; 但工程方面要求高, 壓力大;

交集方式

使用者特徵a和物品特徵b中通過設定條件進行組合特徵;

特徵量減少, 價效比更高;

常用特徵工程方法

快速構建基線版本特徵(指導原則)

機器學習系統的mvp(minimal viable product, 最小可行產品, 可滿足某乙個功能的最簡單產品形態)原則: 首先構建整個系統的所有元件和 pipeline, 跑通流程, 然後在這個 pipeline 上進行細緻的優化;

業務規則特徵化

系統中存在的, 參與到與模型決策相同目標中的業務規則, 盡量將其特徵化, 尤其是複雜的規則;

數值特徵縮放(scaling)

取值範圍差異較大的數值特徵, 將它們的取值對映到同乙個範圍內([0,1]或[-1,1]);

縮放的好處:

縮放的方法:

特徵離散化

將乙個數值特徵根據取值對映到多個離散值上, 最常用的是 one-hot 編碼技術;

離散化的目的: 引入更多的非線性因素, 使模型具有更強的擬合能力;

最核心的問題: 如何決定離散化的對映區間:

組合特徵的使用

能夠引入非組合特徵無法描述的資訊;

需要注意問題:

特徵稀疏性處理

某個特徵只能覆蓋少量樣本的情況;

出現原因:

關注特徵的顯著性置信區間, 與特徵對應的樣本量有直接關係;

好特徵的特點:

特徵的高緯度, 帶來兩個問題:

解決方法:

基於演算法的降維

處理位置偏差(position bias)

點選率, 轉化率等特徵容易受影響;

常用做法: 計算出每個位置 i 上的平均點選率 \(ctr_i\), 在統計點選數時, 將原本會被計算為 1 的每次點選統計為 \(1/ctr_i\), 再計算對應的點選率;

對展現位置優越的物品進行懲罰, 對位置不好的物品進行補償;

特徵效果檢視

在模型訓練完成之後進行特徵效果檢視, 目的有三:

深度學習模型中的特徵工程

前向神經網路, 多層感知機(multi layer perceptron, mlp), 重要點在於表徵學習特徵降維, 可以提公升模型的泛化能力;

特徵工程的實現

特徵系統要能夠同時服務於探索開發, 例行訓練和線上**;

解決特徵和樣本的時間對齊問題;

解決方法:

netflix特徵系統的時間機器:

樣本是通過指定上下文生成, 使用分層抽樣(stratified sampling)保證樣本具有代表性;

delorean 模組: 根據配置資訊自動生成所需要的特徵;

需要提供:

搞清楚當前整個系統中投入產出比最高的事情;

第一版系統務必要快速且有效;

考慮系統的預期承載能力和效能要求;

系統上線後單位時間內需要處理的請求數; 實時處理的效能要求在100ms一下;

評估模型可解釋性的重要性;

**過程和原理可否向非專業人士用通俗語言進行解釋;

評估可用的訓練資料量和可承載的特徵量;

訓練工具選擇:

模型本身評估

準確率(precision), 在召回的文件中應該召回的文件佔到的比例;

召回率(recall), 召回的相關文件佔全部相關文件的比例;

f值, 準確率和召回率的乙個權衡融合;

auc(area under curve), roc 曲線下面積;

\[auc = \int^1_0 p(f(x^+)>c)dp(f(x^-)>c)

\]離散公式:

\[auc = \frac} rank_ - \frac}

\]ne(normalized entropy)

\[ne = \frac\sum_^((1+y_i) \times log(p_i) + (1-y_i) \times log(1-p_i))}

\]校準度(calibration)

衡量模型**值與真實值之間在整體數值規模上的差異;

\[calibration = \frac \times \sum p(x_i)}

\]模型對系統產生的影響的評估

《機器學習Python實踐》第5章 資料匯入

python 提供了乙個標準類庫csv,用來處理csv檔案。這個類庫中的reader 函式用來讀入csv檔案。當csv檔案被讀入後,可以利用這些資料生成乙個numpy陣列,用來訓練演算法模型。from csv import reader import numpy as np filename pim...

機器學習第5周!

教輔說這週的作業是史上最難,果不其然,我花了好久好久才完成 好吧其實也沒有很難,就一開始的cost function卡了很久,後面倒是挺順利的,簡單地調了幾遍就過了,現在第五周完成了,還有1個小時第六周就過期了。路漫漫,是真的。機器學習的本質在於通過大量資料的訓練,使計算機能夠擁有人類的某種能力,比...

機器學習第5章第3節 LMS的學習率退火演算法

模擬退火演算法 於固體退火原理,退火就是講材料加熱後再經過特定速率冷卻,目的是增大晶粒的體積,並且減少晶格的缺陷。材料中的原子原來會停留在使內能有區域性最小值的位置,加熱使能量變大,原子會離開原來的位置,而隨機在其他位置中移動。退火冷卻時速度較慢,徐徐冷卻時粒子漸趨有序,原子有可能找到內能比原先更低...