机器学习多目标分类模型解法
機器學習被廣泛的應用于推薦、風控等場景。經典的機器學習建模數據是由特征列和單一目標列構成的,比如要做廣告的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:
| 用戶 | 特征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
?
?
總結
以上是生活随笔為你收集整理的机器学习多目标分类模型解法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5分钟解析Facebook最新推荐算法
- 下一篇: Youtube推荐系统是如何挖掘用户内心