<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          LambdaLoss | Google排序?qū)W習(xí)優(yōu)化框架

          共 4821字,需瀏覽 10分鐘

           ·

          2021-04-23 02:25

          今天分享一篇谷歌在CIKM'18上發(fā)表的排序?qū)W習(xí)listwise損失函數(shù)優(yōu)化的論文「LambdaLoss」[1],可以認(rèn)為是沿襲著微軟早期代表性工作[2]的路線,即:,對learning2rank的一些模型做了一個比較系統(tǒng)性的一個解釋框架,從排序優(yōu)化度量指標(biāo)(metric)的視角提出了統(tǒng)一的優(yōu)化框架,通過EM算法,可以和家喻戶曉的listwise優(yōu)化方法Lambda梯度聯(lián)系起來,個人覺得非常有意思。

          現(xiàn)狀

          主流的排序算法中,不管是pointwise還是pairwise都不能直接優(yōu)化排序度量指標(biāo),如NDCG等。在listwise中,我們通過定義「Lambda梯度」來優(yōu)化排序度量指標(biāo),如LambdaRank和LambdaMART,然而Lambda梯度是一種經(jīng)驗性方法,缺乏理論指導(dǎo)。谷歌在CIKM'18上,提出了優(yōu)化排序度量指標(biāo)的概率模型框架,叫做「LambdaLoss」[2],提供了一種EM算法來優(yōu)化Metric驅(qū)動的損失函數(shù)。文中提到LambdaRank中的Lambda梯度在LambdaLoss框架下,能夠通過定義一種良好、特殊設(shè)定的損失函數(shù)求解,提供了一定的理論指導(dǎo)。

          傳統(tǒng)的pointwise或pairwise損失函數(shù)是平滑的凸函數(shù),很容易進(jìn)行優(yōu)化。有些工作已經(jīng)證明「優(yōu)化這些損失」的結(jié)果是「真正排序度量指標(biāo)」的界,即實際回歸或分類損失函數(shù)是排序度量指標(biāo)誤差(度量指標(biāo)取相反數(shù))的上界[3],不斷最小化損失函數(shù)這一上界,能夠達(dá)到最小化度量指標(biāo)誤差的目的,這個思想和ELBO (Evidence lower bound) 如出一轍。但是這個上界粒度比較粗,因為優(yōu)化不是metric指標(biāo)驅(qū)動的。很自然的想法是,如何得到一種更加逼近真正排序度量指標(biāo)誤差的損失函數(shù)。

          然而,直接優(yōu)化排序指標(biāo)的挑戰(zhàn)在于,排序指標(biāo)依賴于列表的排序結(jié)果,而列表的排序結(jié)果又依賴于每個物品的得分,導(dǎo)致排序指標(biāo)曲線要么不是平坦的,要么不是連續(xù)的,即非平滑,也非凸。因此,梯度優(yōu)化方法不實用,盡管有些非梯度優(yōu)化方法可以用,但是時間復(fù)雜度高,難以規(guī)?;?。為了規(guī)模化,目前有3種途徑,

          • 1.近似法,缺點是非凸,容易陷入局部最優(yōu);
          • 2.將排序問題轉(zhuǎn)成結(jié)構(gòu)化預(yù)測問題,在該方法中排序列表當(dāng)做最小單元來整體對待,損失定義為實際排序列表和最理想排序列表之間的距離,缺點是排序列表排列組合數(shù)量太大,復(fù)雜度高;
          • 3.使用排序指標(biāo)在迭代過程中不斷調(diào)整樣本的權(quán)重分布(回顧下WRAP就是這種,LambdaRank也屬于這種,就可以看做是權(quán)重。這個方法優(yōu)點是既考慮了排序指標(biāo),同時也是凸優(yōu)化問題。

          本文的動機(jī)之一就是探索LambdaRank中提出的Lambda梯度真正優(yōu)化的損失函數(shù)是什么。文章通過提出LambdaLoss概率框架,來解釋LambdaRank可以通過EM算法優(yōu)化LambdaLoss得到。進(jìn)一步,可以在LambdaLoss框架下,定義基于排序和得分條件下,metric-driven的損失函數(shù)。

          LambdaLoss框架

          假定給定文檔集合下,不同文檔的模型預(yù)測得分確定了一個關(guān)于所有可能排序排列組合的分布,即,其中是其中一種排序列表結(jié)果。也就是說,模型可以得到多種排序結(jié)果,而每種排序結(jié)果下,文檔真實標(biāo)簽的似然是不同的(pairwise loss只和有關(guān),而Lambda梯度不僅和有關(guān),還和位置(即排序)有關(guān))。我們將看做隱變量,則真實標(biāo)簽的似然關(guān)于該隱變量分布的期望如下:

          我們的目標(biāo)是學(xué)習(xí)排序模型來最大化該期望(可以類比EM算法中的,我們這里的是EM中的,因為我們要最大化的是文檔的標(biāo)簽的似然值)。

          則負(fù)對數(shù)似然為(考察了List-Level的損失):

          這個式子有兩個核心要素,1是排序分布,2是似然。這兩個核心要素取不同形式,會得到不同的損失函數(shù)。

          1. 似然不同形式:
          • Logistic:  ,此時沒關(guān)系,只和得分之間的相對關(guān)系有關(guān)。則,故負(fù)對數(shù)似然求和公式中可以把該似然式子提到求和的外面(關(guān)系),則排序分布求和為1,可以約掉,則損失等價于Logistic Loss,,注意是參數(shù)。

          • generalized logistic:  。這是帶指數(shù)的廣義Logistic分布。此處使用了代表排序列表(交換i和j)的NDCG值的差。下面會證明通過EM算法可以根據(jù)該式得到LambdaRank的損失函數(shù)。

            借鑒上述的思想,可以得到如下「1個」文檔級別的訓(xùn)練樣本的損失函數(shù):(我將其稱為 ranking-sensitive pairwise loss),

          1. 至于排序分布,作者舉了上述LambdaLoss框架中,使用高斯分布作為排序分布時,等價于我們熟知的[4]方法,而使用Plackett-Luce作為排序分布時,等價于我們熟知的ListNet[5]算法。

          使用EM算法優(yōu)化上述損失:

          • E步:根據(jù)當(dāng)前模型計算隱變量的分布.
          • M步:固定,重新在complete數(shù)據(jù)集上最小化負(fù)對數(shù)似然,并優(yōu)化模型參數(shù)。其中,完整數(shù)據(jù)集為:。目標(biāo)是優(yōu)化如下?lián)p失:

          C是抽樣得到的所有的訓(xùn)練樣本(每個訓(xùn)練樣本都是文檔列表級別的,由構(gòu)成,也可以理解為E步會對每個原始文檔集合排序(),得到的所有文檔集合排序結(jié)果構(gòu)成M步的訓(xùn)練樣本),M步在C上求期望損失。

          其中,

          其中,是根據(jù)分布采樣得到的。

          更特殊的,直接使用hard assignment distribution來表示。

          其中,是按照得分降序排序得到的列表。(此時EM算法和K-means中的優(yōu)化方法一樣,可以將K-means中E步將樣本歸入到某個類別簇 類比為 此處對文檔列表排一個序,每種序?qū)?yīng)一個類別,類別是隱向量;將文檔按照得分降序得到唯一的序類比于K-means中將某個樣本硬性(hard)的歸入到一個具體的類。)

          此時,可以通過推導(dǎo)下述負(fù)對數(shù)似然損失函數(shù)得到LambdaRank的損失函數(shù):

          • E步:根據(jù)當(dāng)前模型計算所有文檔的得分,然后按照得分降序排序,得到排序結(jié)果。

          • M步:所有Complete的「文檔列表」的損失簡化為:

            進(jìn)一步,代入generalized logistic可得到:

            因此,上式是LambdaRank潛在的損失函數(shù)。

          作者進(jìn)一步給出了定義Metric-driven Loss的方法:

          LamdaLoss中一個最具吸引力的特性是,似然部分既考慮了得分,又考慮了排序。這提供了一個溝通依賴于得分的傳統(tǒng)損失函數(shù)(e.g., pairwise loss)和依賴于排序的排序度量指標(biāo)(e.g., NDCG)的橋梁。

          作者給出一些常用的排序度量指標(biāo)的metric-driven Loss。主要利用0-1Loss的上界為Logistic Loss這一性質(zhì)。比如:Average Relevance Position指標(biāo):

          ,ARP是cost-based function,越小越好。


          此時在LambdaLoss框架下的,相應(yīng)的損失函數(shù)為,:

          「上述推導(dǎo)有2個技巧」

            1.把ranking中的position 轉(zhuǎn)成形式: 

            2.把Metric轉(zhuǎn)成Metric-driven loss過程中,先整理成generalized logistic形式,這個就是排序分布,再利用EM算法中概率排序分布取hard assignment distribution,將generalized logistic進(jìn)一步改寫成;再取負(fù)對數(shù)得到損失。另外文中還給出了ARP的另一種損失。

          作者還推導(dǎo)了NDCG的LambdaLoss,由于NDCG是gain-based function,故先轉(zhuǎn)成Loss:

          其中,,對于給定的文檔列表,是個常數(shù) (和排序無關(guān),公式中分子只和標(biāo)簽有關(guān), 分母是最優(yōu)的DCG值,是個常數(shù)。所以可以直接加到損失函數(shù)中);第二項其實就是NDCG(, ),這么定義是因為下文推導(dǎo)方便。

          因為:,有:

          同理可得,LmabdaLoss損失為:

          上述問題是太大時,上界太松了。因此,作者又提出了另一種損失,利用了性質(zhì)(這個性質(zhì)有待證明)。最后可以推導(dǎo)出NDCG第二種形式的損失(「關(guān)鍵」):

          上式的好處在于,可以通過重新定義來擴(kuò)展出很多NDCG-like metrics的LambdaLoss。也可以用來優(yōu)化binary情況下的,MRR-like metrics。

          作者還推導(dǎo)出上述得到的LambdaRank Loss優(yōu)化結(jié)果實際上是優(yōu)化如下metric的上界,

          可以證明,使用LambdaLoss優(yōu)化該metric得到的,即:LambaLoss優(yōu)化對應(yīng)的度量指標(biāo)誤差上界比LambdaRank優(yōu)化對應(yīng)的度量指標(biāo)誤差的上界更緊,因此LambdaLoss的優(yōu)化結(jié)果更逼近真實的NDCG指標(biāo)。

          另外,上述討論都基于hard assignment 。作者也考慮了soft assignment,并作為下一步工作。

          總結(jié)

          非常有意思的文章,通過LambdaLoss框架,可以加深對Lambda梯度的理解。

          • 可以發(fā)現(xiàn)lambdaRank的Lambda梯度的優(yōu)化方法可以通過EM來推導(dǎo)。
          • lambdaRank有沒有潛在的損失函數(shù)以及是如何和評價指標(biāo)NDCG關(guān)聯(lián)上的?lambdaRank的loss本質(zhì)上是優(yōu)化ndcg的一個較為粗糙的上界。如果純從逼近優(yōu)化ndcg的目標(biāo),文中也推導(dǎo)出了ndcg-loss1和ndcg-loss2的表達(dá)式,其作為NDCG度量指標(biāo)誤差的上界,能夠比lambdaRank更緊。

          最后,本篇文章中提到的LambdaLoss值得在搜索推薦等場景中嘗試。

          參考

          [1] CIKM18: The LambdaLoss Framework for Ranking Metric Optimization:https://storage.googleapis.com/pub-tools-public-publication-data/pdf/1e34e05e5e4bf2d12f41eb9ff29ac3da9fdb4de3.pdf

          [2] From RankNet to LambdaRank toLambdaMART: An Overview:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.180.634&rep=rep1&type=pdf

          [3] mcrank-learning-to-rank-using-multiple-classification-and-gradient-boosting:https://papers.nips.cc/paper/3270-mcrank-learning-to-rank-using-multiple-classification-and-gradient-boosting.pdf

          [4] SoftRank:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.469.3608&rep=rep1&type=pdf

          [5] ListNet:https://www.microsoft.com/en-us/research/publication/learning-to-rank-from-pairwise-approach-to-listwise-approach/?from=http%3A%2F%2Fresearch.microsoft.com%2Fapps%2Fpubs%2Fdefault.aspx%3Fid%3D70428

          瀏覽 171
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费看无码| 奇米影视久久 | 18禁网站一区 | 国产激情无码毛片久久 | 国产午夜黄色视频在线观看 |