多目標優化概論及基礎算法ESMM與MMOE對比


一、總起

       多目標優化現在成為了排序算法的主流方式。之所以有這個算法方向其實還是業務的需求驅動的,拿廣告算法來說,主體邏輯是平台業務的目標是提升點擊掙廣告費,但廣告主希望花出去的廣告費能帶來成交量。次邏輯是新廣告主希望他買了廣告就有成單的機會,不要冷啟動買了廣告也沒有啥流量;對平台而言,(拋開反作弊刷單)希望提升平台吸引力,能讓新廣告主看到希望,也能讓老買家持續爆單。         一張圖概括全文: 

圖片

 


  二、多目標優化的若干問題 

    好久沒寫文章玩了。寫寫對自己也是一次整理,這些問題很多是同事提出來的,就放出來跟大家一起看看。


    問題一:多目標優化是否可以用多個模型,每個模型訓練一個目標來做?

    既然有多個目標,那是否可以每個目標訓練一個模型,這樣多個模型疊加一起精度更高?答案是否定的。拋開多個模型需要多套特征、多個模型運行時間長這個效率層面的不說,從效果上來說也是有缺陷的。拿廣告排序來說,CTR的訓練集范式key-label中 key為:userID+主商品itemcode+廣告商品,label是點擊,如果是CVR,則key-label中的key為userId+主itemcode+已點擊的廣告商品itemcode,label是轉化,這里面有一個gap,就是說如果一個產品很好賣,但點擊率比較低,他有可能進不了CVR的訓練集;但如果你的模型是多目標一起優化的,訓練集的key-label范式是userID+主商品itemcode+廣告商品,label是點擊 or 轉化,就不會有這個問題了。這個點就是論文ESMM的motivation。       問題二:label是多個目標,比如說上文講的點擊和轉化,那是怎么訓練的?多個loss怎么融合的?在線預測又是怎樣做的?

圖片



       目前tensorflow訓練多目標有兩種方式,一種是交替訓練,一種是把loss相加一起訓練。   

反思:

 

問題三:如果說兩個目標彼此重要性不對等,且不是線性關系不對等,加權重參數沒有表達力,應該如何優雅的解決?

 

方法一:帕累托優化,【5】是阿里2019年在Recsys發表的論文,當年獲得了最佳論文提名獎。算法理解有一定難度和深度,從學術角度來看確實是有一定研究價值的,但我小試了下代碼,發現收斂很難,loss跳躍比較厲害。

       簡單講清楚這個算法,整個邏輯如下圖:

 

 

圖片

 

 

 

       圖中黑點連線就是帕累托的KKT條件的邊界線,舉例:GMV不能低於200萬,這個是黑點A對應的橫坐標,OK,所有可行解都在該橫坐標右邊尋找。訓練過程的最優化過程就是這樣的,優化后先試算一下最終結果是否能滿足KKT條件,滿足才能算一次迭代。然后接着繼續尋找。有點像帶着腳鐐跳舞。光滑、凸優化、甚至非凸優化都跟這個沾不上邊。

 

方法二:這個是我19年做的一個工作。談不上算法創新。主要是一個解決實際問題的AK47的法子。這個算法講出來業務上是比較認可的。

     詳細的文章請移步這里:基於deepFM的實時在線廣告預測

     我簡單講一下主體邏輯。一次廣告商品展示,成本就是流量的錢,可以按千次曝光的平均收益計算,如果這次曝光的收益低於平均收益,則他的回歸數是負的;收益有兩個部分,一個部分是點擊收廣告費,一個是成交了收平台服務費,用回歸去學這個收益。

這樣有幾個好處:第一,曝光高成交高,但曝轉率低的后面得到曝光的機會會少,因為他的收益低於平均千次曝光收益;第二,那些沒曝光的新廣告商品,他們的label是0,其實高於那些曝光量高低收益label為負的產品,因此他們得到曝光的機會會多。

不夠優雅的地方是:並不是每個產品每個類目的平台服務費是一樣的,也並不是每個類目的商品平均爆轉收益是均衡的,這樣計算label的時候是比較復雜的。

 

 

       目前用的較多的算法ESMM和MMOE類的算法,都是基於目標的重要性是對等或線性相關來優化的,也一定程度上仿真建模解決了業務的需求。后面會細講一下最基礎的兩個算法ESMM和MMOE,這里概括一下:

 

       ESMM:定義p(CTR)為曝光到點擊的概率,那么點擊然后購買的概率為p(CTCVR),他是定義在點擊后的樣本集上的,如果定義在曝光集上的曝轉率,則為p(CVR),從概率論角度看,很自然就知道p(CVR)=p(CTR) * p(CTCVR)。文章就是這樣算p(CVR)的。他的多目標就是CTR和CVR,兩個目標是高相關的。

 

 

       MMOE:從輸入到輸出從前往后:輸入特征,然后經過特征組合器增強表達,接下來接入多個專家網絡,然后接一個門控網絡,去點選各專家網絡,點選后輸出logit去分目標計算Loss訓練網絡。這個算法的核心思想就是集成學習。整個思想范疇在隨機森林里, 不過表達方式用了深層net。這樣每個專家網絡可以專注一個方向去學習表達力,門控網絡來計算每個專家網絡跟目標匹配的權重。

 

       這個研究方向目前還很活躍,19年和20年都有新的工作。19年工作是在MMOE基礎上加一個跳躍連接層,用來消除bias(見【3】)。這里bias的定義是:如果一個視頻排序在前,即使用戶不感興趣,也會去點開看一下;這樣模型去學的數據就是有偏估計,解決這個問題的方法是拉平所有item,將他們放到同一個位置同一起跑線上看點擊率,這個論文就是在MMOE基礎上解決這個的。我覺得這個工作非常有實際業務價值。

       另一個方向是今年的KDD2020的MMSE【4】。他的專家網絡特征提取網絡都用LSTM組成,可以學習用戶的序列行為。效果非常不錯。



參考文獻:

[1] Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate

[2] Modeling Task Relationships in Multi-task Learning with

Multi-gate Mixture-of-Experts. MMOE

[3] Recommending What Video to Watch Next: A Multitask Ranking System

[4] Multitask Mixture of Sequential Experts for User Activity

Streams. MMSE

[5] A Pareto-Efficient Algorithm for Multiple Objective Optimization in E-Commerce Recommendation, at RecSys 2019

下載鏈接:http://ofey.me/papers/Pareto.pdf

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM