<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>

          字節(jié)跳動端到端深度學習召回算法

          共 4008字,需瀏覽 9分鐘

           ·

          2021-12-05 08:44

          160b1bd85afab59c31b1eb37d1355c40.webp

          來源:DataFunTalk

          本文約2600字,建議閱讀5分鐘

          本文為你介紹字節(jié)跳動AML Team在大規(guī)模推薦中構建的可學習的索引結構。


          [ 導讀 ] 傳統(tǒng)的召回算法一般基于雙塔結構并加以approximately nearest neighbor search (ANN) 或者maximum inner productive search (MIPS),比如fast ball tree (FBT),hierarchical navigable small world (HNSW) 等。這些傳統(tǒng)的算法embedding的訓練目標和ANN的目標不一致,導致ANN的損失無法學習。目前比較著名的解決思路是構建一個tree-based model如TDM等。
          我們今天將介紹字節(jié)跳動AML Team在大規(guī)模推薦中構建的可學習的索引結構,使得embedding的訓練目標和索引結構的訓練目標可以一致學習,達到良好的召回效果,它不僅局限于廣告業(yè)務,在推薦和搜索業(yè)務中也有應用。
          本文將從以下幾方面展開:
          • Deep retrieval的核心模型
          • 如何訓練structure model
          • 思考與討論
          • 精選問答

          01、Deep retrieval的核心
          beffef4853ce750c5ea651120af63e3e.webp
          如圖所示我們可以根據(jù)DR的structure的KxD的矩陣構造出path。我們可以把這種path看成層級的聚類,每個path里面有很多的item,每個item也可以屬于多個path,這樣我們可以保留item的多元化信息。比如“同仁堂”可能是中藥企業(yè),也可以是一個相聲,所以我們在搜索“同仁堂”對應的文章時,它既有可能在中醫(yī)藥的path出現(xiàn),又有可能在相聲中出現(xiàn),達到了我們multi-path的效果。
          1. 訓練階段的structure loss
          653bf18bfbef4dfec645b7eca6e35f4c.webp
          從上圖的圖例我們可以看到網(wǎng)絡的結構,在第一層得到用戶的embedding x 對應c_1的概率,之后path中的每一段都將用戶embedding與之前的path embedding串聯(lián),最終得到path中當前code的條件概率。根據(jù)聯(lián)合概率公式最終的概率為:
          p(c|x)=p(c_1,c_2,c_3|x)=p(c_1|x)p(c_2|c_1,x)p(c_3|c_2,c_1,x)
          在訓練中已知正例用戶embedding x和item id y, 如果我們知道y所在的path為π(y),則:
          maxlogp(π(y)|x)=logp(π(y)1|x)+logp(π(y)2|π(y)1,x)+logp(π(y)3|π(y)1,?π(y)2,x)
          2. serving階段的beam search
          在serving階段我們采用的是beam search的算法,具體如圖所示:
          6b06e65203ed79d01630acf29160be8e.webp
          通過圖中示意的方法,我們在每一層選概率最大的B個node向下傳遞,B是指beam size,通常選10個左右。最后我們選出B個path并merge其中的item。
          02、如何訓練structure model
          1. EM算法
          在DR中我們需要同時訓練structure model的參數(shù)(記為θ),以及所有item到path的mapping(記為π),則訓練目標為:
          58c715df8a7a9540fa6b11fad1ea3ba9.webp
          其中J是指J條path。我們想交替訓練π和θ,于是采用EM算法來共同訓練參數(shù)和mapping。最開始我們隨機初始化θ和π并輪流進行E-step和M-step。

          在E-step中,我們進行以下操作:一是可用任何基于梯度的優(yōu)化算法優(yōu)化θ,因為p_θ是可微的。二是對于每一個path c和item v計算它們的likelihood,記為s[v,c],也稱為hidden score。
          28423731f216182f8b64b3c086700bed.webp
          其中假設對于任何一個item v出現(xiàn)了n次,對應n個用戶xi,我們計算平均p(c|x, θ)的likelihood。由于可能的path有K^D個而我們不可能全部計算,所以我們將只選取beam search分數(shù)較高的path并記錄其hidden score。
          在M-step中,我們需要從hidden path和hidden score中更新π(v)。最直接的方法是對于每一個item我們選取hidden path中分數(shù)最高的path作為新的π,這樣在EM算法的objective function顯然會達到很高的分數(shù),但是這樣做有一個缺點,即導致很多item學到一個path,使得path過于集中,即有的path中有大量的item,有的path里面沒有item,這樣的結果送到下游任務時,下游的壓力就無法控制。為此我們引入patch-size penalty,我們令f(x)=x^4,α是可調(diào)參數(shù),有:
          825d40c3307a4a666f9deb8b5122a14e.webp
          即減去所有path,每個path里面的item個數(shù)的四次方,如果當前path的item已經(jīng)很多時,可以有效抑制item繼續(xù)增加。
          2. 在線EM算法
          對于流式訓練,我們設計了在線EM算法。在E-step中,我們將使用一個滑動的平均hidden score并且動態(tài)跟蹤一個固定大小的hidden path set。在M-step中我們采取定時任務的方式,從Parameter Server里面讀取每個item的hidden path和hidden score,然后運行上段所說的penalty 算法計算出新的true path并寫入到PS。
          3. 多任務學習
          7d2fe3d7544ec8485e77e63e312dd09b.webp
          現(xiàn)在的DR采用multi-task learning的機制,我們使用structure loss來訓練structure model以及item-path mapping,同時我們也保留了點乘模型比如FFM,NN模型來訓練user或者item embedding用作reranker。在serving過程中,我們通過beam search找出hidden path以及他們的item,先經(jīng)過reranker經(jīng)過初步篩選出固定條數(shù)的candidates,再精排。這樣可以減緩了粗排和精排的壓力,另一方面也可以控制出口條數(shù)。
          03、思考與討論
          與傳統(tǒng)的ANN相比,DR的聚類更注重用戶側行為而不是item本身,比如足球視頻和汽車視頻在ANN召回中可能不在同一類但是在DR中會在同一類。DR其實不是利用item embeddeing本身,而是利用user和item之間的信息,利用hidden score進行聚類,即雖然兩個item本身并不相近,但是他們可能會被同一種user消費。所以DR中path里面item的diversity會比ANN高很多。
          因此DR更偏向于偏重用戶行為的應用場景,比如廣告或者推薦,在搜索中DR通常會降低相關性。
          DR的structure model目前只用了正例沒有負例,負例只在rerank model中使用。而且structure model只使用了item ID embedding,沒有使用item側特征,item側特征只在rerank model中使用。除此之外,DR的學習目標之來源于user,item pair沒有體現(xiàn)相關性,如果能將相關性loss引入DR loss來端到端學習用戶行為和相關性也許可以解決搜索遇到的問題。
          04、精選問答
          Q:同一個item是否屬于同一個D?
          A:首先,同一個item是可以屬于多個path, 比如“同仁堂”既可以屬于相聲的path又可以屬于中醫(yī)藥的path, 在不同層的code中,item也可以屬于多個,比如屬于1,2,3 code,1,2,4 code。著代表兩個path在類方向是一致的。
          Q:retrieval算法學到的聚類結構與U2U的算法的聚類結構有什么關系?
          A:有可能有一定關系,聚類的結果更容易把相同用戶消費的物品聚到一起。
          Q:什么在檢索的過程中要用beam search而不是全部檢索完?
          A:因為一般線上K是100到1000,D是3,如果全部檢索則需要檢索至少百萬級別的path,是不符合實際的。所以我們需要一個方法選擇比如top20的path,這個方法選擇的top20和實際的top20非常相近,beam search這個方法滿足了我們的需求。
          Q:EM算法的收斂性是否有保證,在實際應用中是否會出現(xiàn)不收斂的情況?
          A:在理論上是有一些paper論證過EM算法在哪些條件下可以收斂,這些理論上的假設理論性比較強。在實際情況下我們回去檢驗一些這些條件,有時候也可以直接看結果。在非流式訓練的情況下,我們的算法經(jīng)過3到5個M-step以后會收斂到穩(wěn)定的值。在流式訓練中,我們通過定時M-Step的方法,實際在5到10次M-step可以達到收斂,這些都是一些比較實踐的方法。
          Q:這個方法是召回用戶的多興趣那么也沒有和其他的一些用transformer的方法做對比?
          A:我們在做多興趣召回,目前和transformer的關系還不是特別緊密,我們大概的做法也是生成不同的user embedding, 對不同的user embedding做 beam search, 對 search的結果進行一些merge并通過一些loss控制不同的embedding學習不同的興趣,但是transformer我們還沒有嘗試。
          Q:不加multi-task模型會變成什么樣?M-step是否只做一次?
          A:不加multi-task模型學到的path非常不平衡,雖然我們有penalty進行控制但是還是不夠,這是因為不加multi-task負例沒有被利用,item embedding也沒有被充分利用,所以這就是為什么我們現(xiàn)階段使用了multi-task。M-step需要做不止一次的,實際我們需要等到模型收斂,這至少要一兩天的時間。
          Q:這個模型的線上效果如何?
          A:這個模型已經(jīng)在字節(jié)跳動不少的產(chǎn)品上線,覆蓋廣告和推薦,海內(nèi)外產(chǎn)品都有應用,效果還是很成功的。
          今天的分享就到這里,謝謝大家。
          編輯:于騰凱校對:林亦霖
          瀏覽 74
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  极品一线天小嫩嫩真紧 | 波多野结衣在线一区 | 亚洲日韩发布在线免费 | 2016超碰 | AV电影成人天堂 |