自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

推薦系統(tǒng), 多目標模型的多個目標怎么融合?

開發(fā) 前端
排序是算法工程師做的最多的問題之一,其實從原理角度來說,搜索、廣告和推薦本質上都是排序問題。區(qū)別在于使用的場景不同,排序的目標不同。

 

大家好,我是梁唐。

前兩天寫了一篇關于多目標排序模型的文章,有小伙伴給我留言說,多個目標好理解, 但是排序的時候怎么融合多個目標呢?

我仔細一想,的確沒有說清楚,沒有相關工作經(jīng)驗的小伙伴可能還是有些迷糊。沒有關系,我們今天就來單獨聊聊這個話題。

排序問題

在說清楚多目標之前,我們先來看看排序。

排序是算法工程師做的最多的問題之一,其實從原理角度來說,搜索、廣告和推薦本質上都是排序問題。區(qū)別在于使用的場景不同,排序的目標不同。

這一點我們之前在相關文章當中講過,搜索主要看重相關性,用戶想看的一定是和搜索詞相關的內容,然后才是商品質量以及興趣。

廣告的目標當然是盈利,作為電商平臺以及互聯(lián)網(wǎng)公司的核心收入來源之一,廣告的核心目的沒有之一就是盈利。當然盈利也分,不同業(yè)務場景的廣告盈利方式也不同。大部分廣告是按用戶的點擊收費,也有的按曝光和成交收費。不管按什么收費,在廣告排序的時候一律按照期望收益排序,將最有可能賺錢的排在前面。

對于搜索和廣告來說,排序的目標都是相對比較明確的,但推薦不同,推薦的目標就沒那么明確了??赡軙型瑢W說,推薦目標不是用戶喜歡么,當然是按照用戶興趣排序啦。

沒這么簡單,先不說用戶的興趣千差萬別,即使能夠找到大胸妹一樣的公共興趣,效果也不一定會好。畢竟死直男們愿意看,但真讓他們花錢去買女性用品,大多數(shù)還是做不出來。

所以在推薦領域,工程師們的目標其實是比較迷茫的。但建模的過程當中又必須要有一個明確的目標,所以業(yè)內還是用點擊率和轉化率來作為推薦的目標。大家可以思考一個問題,點擊率高轉化率高就意味著推薦效果好嗎?這兩者真的等價嗎?所有推薦場景都適合用點擊和轉化作為目標嗎?

接著,我們來看看排序本身的問題。

從技術上來說排序本身并不復雜,就是按照模型預測的分數(shù)進行排序,把分數(shù)高的排在前面。比如如果模型的預測結果是CTR,那么就是預測點擊率高的排在前面。如果模型的效果好的話,那么真實的點擊率就會上漲,同樣,如果我們以轉化率CVR排序,那么就是轉化率高的在前,由于轉化率和點擊率并不一定吻合,所以轉化率漲了,點擊率不一定也會漲。

難道不能同時按照多個值排嗎?

翻一下算法導論就知道,不能。所謂的多關鍵字排序也是按照順序依次比較關鍵字,在關鍵字都是浮點數(shù)幾乎不會出現(xiàn)相等的情況下,多關鍵字排序毫無意義。

所以如果我們同時預測了多個目標,也沒辦法在排序的時候按照多個目標排序,除非我們想辦法把它們融合到一起。這也就是今天文章的主題,多目標的情況下怎么進行融合排序的問題。

融合方案

融合方案本身非常簡單,大家都和拍腦袋差不太多,并沒有高下之分,只有效果好不好的差別。

比如你可以按照pctr + pcvr排,也可以pctr * pcvr排,也可以各自設置一個權重排,也可以設計一些奇怪的公式把它們融合到一起排。無論怎么操作,都是可以的。

但如果我們從實際意義來看,pctr * pcvr的方案更有物理意義,因為它代表著點擊轉化率,即用戶看到商品的前提下他會下單的概率。

為什么這種方案排序要比單純按照pctr或者pcvr排序效果好呢?因為很簡單,因為我們是按照乘積排序的,這兩個值里面只要有一個拉胯,就不會被排到前面。比如圖片是大胸妹的商品,可能點擊率很高,但轉化率不行,那么它也不會被排在前面。

相當于我們做了一個權衡,過濾掉了一些轉化率奇高點擊率奇低和點擊率奇高轉化率奇低的極端case,可能會犧牲一些指標,但整體上對于平臺的內容是有利的。實際上從最終實驗的結果來看,點擊率影響并不大,但轉化率能得到非常巨大的提升。

細節(jié)和常見錯誤

不管我們設計怎么樣的多目標融合方案,有一個細節(jié)一定要注意,就是這個目標要和模型訓練的目標一致。

體現(xiàn)在我們計算損失函數(shù)的時候,我們要拿最終的方案來計算loss,并且更新模型參數(shù)。

這張圖大家都能看得懂,但是很多人在實現(xiàn)模型的時候出了問題。比如說設計了一個融合方案是x* pctr + y * pcvr,即給pctr和pcvr各自設置了一個權重。這本身也沒什么問題,但是在損失函數(shù)的實現(xiàn)里面,它還是用的pctr和pcvr本身計算損失更新模型的,這就有問題了。

比如,訓練的時候計算pcvr轉化率的時候,計算損失函數(shù)是按照pcvr得到的,那么模型對于轉化率這個目標的學習都是通過pcvr這個值控制的。但是實際線上排序的時候用的又是x * pctr + y * pcvr,這個公式模型從沒見過,那么肯定就會有偏差。

另外一個常見的問題是分開訓練,和之前的例子差不多。線上預測的時候用的是pctcvr,但是訓練的時候,多個目標是分開訓練的,比如pctr的loss是用pctr算的,pcvr的loss是用pcvr算的。

細想會發(fā)現(xiàn)一個問題,我們排序的時候用的是pctr * pcvr,這是兩個目標融合的結果。理想情況下,對于這個目標,兩個塔都應該有所感知,體現(xiàn)在反向傳播的時候,彼此的結果會互相影響梯度,兩個塔會同時更新參數(shù)。但是我們loss是分開的,也就是說我們在反向傳播的時候,兩個塔是各自更新參數(shù)的,彼此不知道對方的存在,那么這里的協(xié)同性就沒有了。

常規(guī)的做法是對于點擊率的更新,我們只訓練pctr這個塔,由于轉化的前提是點擊,所以我們按照pctcvr去計算轉化率目標的loss,這樣在反向傳播的時候,可以同時更新這兩個塔的參數(shù),起到一個協(xié)同的效果。

ESMM這篇論文看起來非常簡單,好像就只是多了一個塔,里面的細節(jié)還是蠻多的。

如果想把這個模型吃透,非常推薦大家去仔細讀一下論文或者是相關實現(xiàn)的代碼。魔鬼都藏在細節(jié)里,仔細推敲,一定會大有收獲。

本文轉載自微信公眾號「Coder梁」,可以通過以下二維碼關注。轉載本文請聯(lián)系Coder梁公眾號。

 

責任編輯:武曉燕 來源: Coder梁
相關推薦

2024-08-20 08:34:17

2023-12-01 08:28:29

推薦系統(tǒng)跨域多目標建模

2023-11-16 07:21:06

2022-01-27 09:45:39

建模GBDTMTGBM

2011-11-25 17:24:20

跨平臺開發(fā)移動開發(fā)

2021-12-01 09:55:58

谷歌圖像AI

2019-05-22 14:28:08

AI人工智能深度學習

2010-03-18 11:26:46

無線傳感器網(wǎng)絡多目標跟

2010-07-02 12:08:31

WAP協(xié)議

2013-05-09 11:47:44

2011-12-07 21:22:55

蘋果

2013-05-23 09:20:15

系統(tǒng)優(yōu)化

2013-05-23 09:29:45

系統(tǒng)優(yōu)化程序員

2012-03-05 14:50:15

Facebook黑客商業(yè)

2024-11-27 16:06:12

2025-02-18 08:00:00

C++YOLO目標檢測

2024-03-21 14:18:00

模型感知

2024-11-08 14:27:52

系統(tǒng)設計數(shù)據(jù)庫

2023-10-04 17:44:27

系統(tǒng)設計目標

2024-11-22 15:22:20

點贊
收藏

51CTO技術棧公眾號