機器學習中的模型漂移(Model Drift)
當今,機器學習模型已經成為商業決策的主要驅動因素,和其他商業策略一樣,這些機器學習模型需要隨著時間的推移而進行修改,其背后的技術原因是“模型漂移”。雖然大多數課程、文章和帖子都描述了機器學習(ML)生命周期(從收集數據開始到部署機器學習模型結束),但是它們往往忘記了機器學習生命周期中一個非常重要的特性,即模型漂移。
模型漂移的本質意思是指目標變量和自變量之間的關系隨時間而變化。由于這種漂移,模型會變得不穩定,并且隨著時間的推移預測會不斷出錯。
漂移類型
模型漂移可以分為兩大類。
第一種被稱為“概念漂移”。當目標變量本身的統計屬性發生變化時,就會發生這種情況。顯而易見,如果我們試圖預測的變量的含義發生了變化,那么模型就不能很好地用于這個更新的定義。
第二種也是最常見的一種是“數據漂移”。當預測變量的統計屬性發生變化時,就會發生這種情況。同樣,如果基礎變量發生了變化,則模型必然會失敗。發生這種情況的典型例子是,數據中的模式由于季節性而發生變化。無論哪種商業模式在夏天行得通,在冬天可能就行不通。盡管航班需求在節假日期間激增,但航空公司在淡季很難保持客流量。另一個例子是當個人偏好發生變化時,其購物數據也會產生變化。
如何解決呢?
解決這個問題的最佳方法是不斷地重新擬合模型。根據過去的經驗,可以估計出模型漂移的開始時間。在此基礎上,也可以重新開發機器學習模型,以減輕漂移帶來的風險。
對于數據隨時間變化的情況,數據權重是一個不錯的選擇。例如,根據最近的交易確定機器學習模型的一些特征,這些特征賦予最近的交易更多的權重,而給予過去的交易更少的權重。這不僅確保了機器學習模型的魯棒性,而且還有助于避免與漂移相關的潛在問題。
應對模型漂移的更復雜的方法是對變化本身進行建模。開發的第一個模型保持靜態,并作為基線。根據最近交易數據中行為的變化,可以建立新的機器學習模型來糾正這個基線模型的預測。
應該多久重新訓練一次模型呢?
既然我們已經看到了最常見的解決方案涉及到模型的持續再訓練,那么問題就出現了,這需要多久進行一次訓練呢?對此有多種解決方案,每種解決方案都因情況而異。
雖然等待問題發生并不是最好的方法,但是當涉及到新模型時,它仍然是唯一的選擇。當問題出現時,可以對出現的問題進行調查,并進行修改以防止未來出現此類問題。
當模型中涉及的實體數據是季節性模式時,應根據季節對模型進行再訓練。例如,隨著節日期間支出的增加,機構需要建立特殊的模型來應對這種模式的突然變化。
檢測漂移的最佳方法是持續監測。與模型穩定性相關的指標需要在連續的時間間隔內進行監視。根據領域和業務的不同,這個間隔可以是一周、一個月、一個季度等。監視模式可以是手動的,也可以是自動的腳本,在觀察到突然的異常時應觸發警報和通知。
最后
正如哲學家赫拉克利特的名言,“變化是唯一不變的”。那些準備好接受和監控這些變化的組織,是注定要成功的。