成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

推薦系統, 多目標模型的多個目標怎么融合?

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

 

大家好,我是梁唐。

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

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

排序問題

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

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

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

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

對于搜索和廣告來說,排序的目標都是相對比較明確的,但推薦不同,推薦的目標就沒那么明確了。可能會有同學說,推薦目標不是用戶喜歡么,當然是按照用戶興趣排序啦。

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

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

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

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

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

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

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

融合方案

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

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

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

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

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

細節和常見錯誤

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

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

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

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

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

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

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

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

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

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

 

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

2024-08-20 08:34:17

2023-12-01 08:28:29

推薦系統跨域多目標建模

2023-11-16 07:21:06

2022-01-27 09:45:39

建模GBDTMTGBM

2011-11-25 17:24:20

跨平臺開發移動開發

2021-12-01 09:55:58

谷歌圖像AI

2019-05-22 14:28:08

AI人工智能深度學習

2010-03-18 11:26:46

無線傳感器網絡多目標跟

2010-07-02 12:08:31

WAP協議

2013-05-09 11:47:44

2011-12-07 21:22:55

蘋果

2013-05-23 09:29:45

系統優化程序員

2013-05-23 09:20:15

系統優化

2012-03-05 14:50:15

Facebook黑客商業

2024-11-27 16:06:12

2025-02-18 08:00:00

C++YOLO目標檢測

2024-11-22 15:22:20

2024-11-08 14:27:52

系統設計數據庫

2024-06-07 09:22:27

2023-10-04 17:44:27

系統設計目標
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜精品在线 | 国产精品一区二区在线 | 久久久久久蜜桃一区二区 | 亚洲精品黄| 日本不卡一区二区三区在线观看 | 91日b| 亚洲欧美日韩精品久久亚洲区 | 综合久久网 | 一区日韩 | 懂色中文一区二区三区在线视频 | 欧美精品1区 | 欧美日韩成人影院 | 亚洲不卡在线观看 | 亚洲第一av| 日韩成人免费中文字幕 | 中文字幕亚洲视频 | 视频一区二区国产 | 色.com| 国产成人精品一区二区三区在线 | 久久久成 | 日韩一区二区三区精品 | av网站免费在线观看 | 风间由美一区二区三区在线观看 | 久久不卡日韩美女 | 99re在线视频 | 玖玖久久 | 久久久久久亚洲精品 | 国产九九精品 | 黄色国产区| 久久久久亚洲 | av在线天天 | 天天玩夜夜操 | 国产精品久久久久免费 | 性欧美hd| 欧美高清视频 | 精品亚洲国产成av人片传媒 | 久久久91精品国产一区二区精品 | 午夜精品久久 | 精品久久久久一区二区国产 | 亚洲黄色视屏 | 九色网址|