機器學習多目標分類模型解法

機器學習被廣泛的應用於推薦、風控等場景。經典的機器學習建模數據是由特徵列和單一目標列構成的,比如要做廣告的CTR預測,其實模型關心的是一個廣告曝光後是否會被點擊,這是一個單一目標場景的建模過程。但是在實際應用場景中,往往有時候會出現“既要也要”的情況,比如推薦一個視頻給客戶,推薦引擎不光希望客戶可以點擊這個視頻,更希望客戶可以長時間光看,這就成了一個多目標建模的情況。

單目標建模在很多情況下是有侷限的,以新聞推薦爲例,如果只通過新聞是否點擊來評估模型好壞,那麼推送一些吸引眼球的沒有內涵的新聞往往可以提升點擊,比如推送《八旬老漢偷窺兒媳婦洗澡》,但是這種推薦是沒有靈魂的。多目標推薦會更好的幫助模型去理解用戶。比如在美拍視頻中,需要考慮點擊率、播放、關注、時長等四個因素。

 

那麼多目標推薦要怎麼做呢?目前在中文網站上很難找到相關文獻,於是我去到國外的網站看了下Multi-label Classification相關的介紹,大體可以通過以下方法去做實現多目標建模。爲了更好地說明,這裏模擬一份數據:

用戶

特徵1

特徵2

特徵3

目標1

目標2

A

32

523

234

0

1

B

124

463

46

1

0

C

42

352

64

1

1

 

方法一:將多目標問題轉化成單目標問題

 

以上面的問題爲例,假設目標1和目標2的正例都是“1”,則轉化成單目標建模邏輯的時候可以把目標1和目標2都是“1”的情況標爲“1”,其它情況標爲“0”。案例數據變爲下面的形式:

用戶

特徵1

特徵2

特徵3

目標

A

32

523

234

0

B

124

463

46

0

C

42

352

64

1

這種方法比較暴力並且好實現,但是問題就是減少了很多數據間的信息。

 

方法二:將多目標問題轉化成多分類問題

 

轉化成多分類問題的好處是可以保留所有的信息,給業務系統更多選擇。比如一個系統有兩個推薦評估目標分別是點擊和時長,但是某用戶沒有匹配到點擊和時長都不錯的內容。這時候轉換成多分類問題的好處就體現出來了,在沒有兩個目標都符合的方案情況下,可以從其它符合的類別中選擇一個推送給客戶。

 

轉化成多分類問題後,樣例數據變爲下面的形式:

用戶

特徵1

特徵2

特徵3

目標

A

32

523

234

0

B

124

463

46

1

C

42

352

64

2

  1. 目標值爲0對應原始目標1=“0”,目標2=“1”
  2. 目標值爲1對應原始目標1=“1”,目標2=“0”
  3. 目標值2對應原始目標1=“1”,目標2=“1”

方法三:將多目標問題轉化成多組模型的形式

 

多組模型的模式是最精確地模式,但是也是計算量最大的模式。比如樣例數據有兩個評估指標,可以分別對兩個評估指標進行建模。

 

訓練數據1:

用戶

特徵1

特徵2

特徵3

目標1

A

32

523

234

0

B

124

463

46

1

C

42

352

64

1

訓練數據2:

用戶

特徵1

特徵2

特徵3

目標2

A

32

523

234

1

B

124

463

46

0

C

42

352

64

1

 

這樣的話會分別針對目標1和目標2生成兩個分類模型。實際預測的時候,每個樣本需要調用兩次模型分別拿到對應兩個目標的分類結果,假如樣本1對應的兩份結果分別是“0.65”和”0.21”,把這兩個結果組合起來就是最終的預測結果,是向量[0.65,0.21]。以此類推,計算所有樣本的預測向量,再通過向量具體判斷用戶的意向。

 

總結

 

隨着推薦系統的普及,多目標建模一定會變成業內普遍的需求,希望這篇文章可以給有需要的同學更多地幫助。

 

 

參考:https://en.wikipedia.org/wiki/Multi-label_classification

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章