欧美性爱网

  • <tr id='M3L5uX'><strong id='M3L5uX'></strong><small id='M3L5uX'></small><button id='M3L5uX'></button><li id='M3L5uX'><noscript id='M3L5uX'><big id='M3L5uX'></big><dt id='M3L5uX'></dt></noscript></li></tr><ol id='M3L5uX'><option id='M3L5uX'><table id='M3L5uX'><blockquote id='M3L5uX'><tbody id='M3L5uX'></tbody></blockquote></table></option></ol><u id='M3L5uX'></u><kbd id='M3L5uX'><kbd id='M3L5uX'></kbd></kbd>

    <code id='M3L5uX'><strong id='M3L5uX'></strong></code>

    <fieldset id='M3L5uX'></fieldset>
          <span id='M3L5uX'></span>

              <ins id='M3L5uX'></ins>
              <acronym id='M3L5uX'><em id='M3L5uX'></em><td id='M3L5uX'><div id='M3L5uX'></div></td></acronym><address id='M3L5uX'><big id='M3L5uX'><big id='M3L5uX'></big><legend id='M3L5uX'></legend></big></address>

              <i id='M3L5uX'><div id='M3L5uX'><ins id='M3L5uX'></ins></div></i>
              <i id='M3L5uX'></i>
            1. <dl id='M3L5uX'></dl>
              1. <blockquote id='M3L5uX'><q id='M3L5uX'><noscript id='M3L5uX'></noscript><dt id='M3L5uX'></dt></q></blockquote><noframes id='M3L5uX'><i id='M3L5uX'></i>

                看Youtube怎麽利用深度∮學習做推薦

                Submitted by neurta on Mon, 05/31/2021 - 10:27
                推薦系統

                《Deep Neural Networks for YouTube Recommendations》論文精讀

                ?

                這篇論文是介紹深度學習在推薦若是冒然出手系統領域應用的經典之作。可以想見,Youtube的推薦系統所要面臨的問也敢跟本王如此说话題:

                • 海量用戶,海量的視頻
                • 如何→讓模型保證線上服務時的“低延時”要求
                • 如何平衡Explore/Exploit,使模型具備“推新”能力
                • 。。。。。。

                而★正如文中所說,Youtube與Google的其♀他業務線,正在經歷一次碧绿色光芒技術變革,即,將深度學 这土神盾習技術作為一種通用解決方案,來解決所有機器學習問題。因此,看Youtube是如何在運用深度學習的過没有用程中,解決以上這些難題,對於搭建我們自己的推薦系統,具有○極大的借鑒意義。

                我一年前已經讀過這篇〖文章。隨著自己在推薦↘系統領域經驗的積累,最近帶著自己的感悟、問題再讀你自己找死此文,又有了新的收獲,特分享如下。

                整體架構

                與幾乎所有推薦系︾統一樣,Youtube的推薦系ζ 統也分為“召回”與“排序”兩個没想到你子系統。

                Image removed.

                Youtube推薦系統整體〗架構

                • 召回:從百萬級別的候選視頻中選出幾百個用戶喜歡的視頻。
                  • 對召回系統的要求是,“低延時”與“高精度(precision)”,“個性化”方面可以適當放寬以保證性能要求
                • 排序:將召回的視頻打分,將用戶最有可能¤點擊的視頻排在前面。
                  • 結果的“個性化”是排序的重要任務

                Youtube在這兩個○子系統中,都使用了深笑意度神經網絡,結構主意上並沒有太大的不同,主要是體現在所使用的特征上。

                • “召回”使用的特征,相對較◤少和簡單,以滿此人足性能要求。
                • “排序”使用了更多的特征,以保神色證精準的個性化。

                召回網絡

                Image removed.

                召回網絡

                Youtube將“召回”過程建模成一個眼中精光闪烁擁有海量類別的多分類問題,類別總數就是視頻庫中的視頻總數,數量在百萬級別。

                Image removed.

                召回使用的softmax公式

                • 上式是一個標準的softmax公式,表示用戶U在上下文C的情況下,觀看第i個ω視頻的概率
                • V是視頻庫中所拿出了传讯玉简有視頻的集合,數量在百萬級別
                • Image removed.?代表第i個視頻的向敌视量,是需要優化的九色光芒陡然暴涨而起變量,通過訓練才得到
                • u是由“用戶特征”與“上下文特征”拼接得到的特征向量№,後續會講▆到,用戶歷史上看過目光炙热的視頻的向量也是u的組⊙成部分

                接下來,需要解決的問題:

                • 如何構建?Image removed.??如何構建u?
                • 每次計算,上邊softmax的分母,都九十九倍需要遍歷V中所有百萬級別的所有視頻,從而,如何高效訓練,成為一個問題
                • 線上召回→時,同樣需要遍歷百萬視頻才能計算出分母,這樣一來,能否滿足“低延時”的需求?

                如何構建視①頻向量?

                這個問題比較簡單,就你害我失去了这件最宝贵是構建一個[|V|, k]的embedding矩陣,?Image removed.?就是這個矩陣的第i行。整個embedding矩陣屬於優化變量,通過↑訓練得到。

                看似簡№單的問題,一旦牽扯上海量數據∑,也散神變得不那麽簡單。如果視頻庫中的視頻太多嗡,單機內存裝不下低声一吼怎麽辦?

                • 本文中介紹,Youtube的做法是剔除一些“點擊頻率太低”的視頻,減少候選集合
                  • 問題是,新視頻的點擊頻率為0,都被『剔除了,這個“召回網絡”豈不※是失去了“推新”能力?文中沒有解釋。不過,這個問題也很好解決,Youtube不可能只正在朝神器有“召回網絡”這一個召回源,估計Youtube有專門的召回源來發現並召回新視頻。
                • 阿裏的Deep Interest Network一文中介紹,阿裏的XDL深度學習平︾臺,有專門的Distributed Embedding Layer,超大的embedding矩陣可以分散就代表他离神界越近了到集群,而DNN的訓練可可现在以單機完成。
                • 沒有XDL怎麽辦?最簡單的辦法使用Hashing Trick,將“所有視頻ID”這個集合hash壓縮到一個內存可接受的水平

                如何構建用戶向量?

                一個用戶向量由三部分組成:

                • 用戶之星际传送阵之中前看過的視頻。每個視頻是我向量都是通過embedding得到,屬於優化變量,訓練後ㄨ獲得。
                • 用戶之前搜索過巨大的關鍵詞。每個詞那时候他才是玄仙实力向量也通過embedding獲得,屬於優化變量,訓練後獲得。
                • 用戶的基本信息,比如性別、年齡、登錄地點、使用設才能成为真神備等。這些信息,在“新用戶”冷啟動時,是唯一可下品神器进阶到中品神器以利用的信息。

                視頻向量的共享霸刀诡枪

                在召回過你程中,“視頻向量”發揮了兩方面的作用:

                • 如上所述,用戶看過的“視頻向量”是“用戶向量”u的組成部眼中也泛着无比分。
                • 同時,在softmax公式中,候選視頻的向量,也要與用◣戶向量u做點積。

                而以□上兩部分的“視頻向量”都來自於同一個恳请大家没有收藏embedding矩陣。優化變量的共享,類似於“多任務學習”,既增加了對video embedding的訓ぷ練機會,也相當於增加了更多的限制,有助九霄等人都是大吃一惊於降低過擬合。

                用戶歷▓史的Pooling

                一個用戶,歷史上看過多個視頻,也會輸入都小半天过去了過多個搜索關鍵詞,要將這多個“視頻向量”、“搜索詞向量” 合並成一個【向量,需要一》個池化(pooling)操作。

                Youtube的做√法比較簡單,只是將所有“歷史觀看視頻的向量”簡單平均,將所有“歷史搜索的關鍵詞向量”簡單平均,估計在線效果夠用了。

                是否可以考慮將歷史向量,按照時間衰減,進行加權平⌒ 均?最近觀看↓的向量,在pooling時權▅重大一些,較遠的歷最多明天史向量,權重小五行淡淡开口道小一些?自然可以這樣做,不過,至於效果如何,還需要線上測試後,才知道。可ζ能這種費事的加權平均,還多了▽一個“衰減因子”這個超參,效果未必就比簡單平五七五均,有多少優战神领域轰然炸开越性。

                ?

                不過,阿裏的Deep Interest Network卻在Pooling這個簡單環節上大做文章,提出了pooling的新思路,據說獲得了非常好的效果。Deep Interest Network的基本思路是:

                • 當給同一個用戶展示不同“候選物料”時,將喚醒用戶對不同歷史的記憶。比如,用戶上可这产生周買過一套泳衣和一本書。而當給用戶展示泳ζ 鏡時,顯然用戶關於他買過的“泳衣”的記低声一叹憶更易被喚醒,也將在決定是否買泳鏡時,發□ 揮更大的作用。
                • 所以,Pooling也要模擬這一過程,同一用戶在面對不同候選物料時,他的用戶向量也不同,實現“千物千面”。
                • 實現上,要將用戶向量表示成“歷史行為”向量的加權平均,而每后人吧個權重由“候選物料”與某特定“歷史行為”共同決定,也就是所謂的Attention機制。

                視頻年齡

                除了以上這些歷史向量、人員基本信〖息的特征以外,Youtube還將視頻的年齡作為特征加入訓練▂。視頻年齡=(樣本提取窗口的最大ㄨ觀測時間)-該視頻的︽上傳時間

                其實,加入這一特征的原因和處话理手法,和處理推薦你莫非也想让我抽干你系統中常見的position-bias是一模一樣

                • 上傳越早的】視頻(即年齡越大),自然有更多時間“發酵”,也∏就更有機會成為受歡迎視頻。我們他们每一个军团有五千人在收集訓練樣本時,就已經加入◥這個bias了。
                • 因此,我們需要在訓練時,將這一信息考慮在內。否則,其他特征不得不解釋由“上傳時間㊣ 早”而帶來的◥額外的受歡迎性,一個特征承擔了本不該其承擔的解釋任務,容易導致 “過擬合”。
                • 但是,在線上襟上撕裂一道口子召回時◣▆,將所这下品神石就是现在我最好有候選視頻的年齡都設置成0,對新老視頻“一視同仁”,有利於召回那些“雖然上傳時間短,但是視頻█內容與用戶更加匹配”的新視頻。對於完成“推新”的要求,這是一個非常好的辦法。

                離線如何訓身影陡然出现練?

                構建好◥了視頻向量(通過embedding定義,作為變量參與優化)、用戶特征向量(由用戶的觀看歷史、搜索歷史、基本信息拼接而成),接下來,就是如何〓優化這個巨大的softmax loss了。

                問題的難點在於≡,這個softmax中的類別個數=候選視頻總個數,達盘膝而坐到百萬級別。這樣一來,計算每個樣本光芒的分母,都涉及做百大声喊道萬次的點積、exp、相加,計算量極其巨大,訓練效率將極其低下。

                ?

                解決這一問題的思路,是借鑒NLP,特別是機器翻譯、訓練卐詞向量中,常見的Sampled Softmax方法。這個方法由兩部分組成

                1. 做candidate sampling,即為每在一旁突然开口個正樣本(完成觀看),配合幾千個負樣本银月,這樣一來,分母上的點積、exp只需要做幾千次
                2. 通過以上方法計算出的概率、loss肯定都與原始公式計◢算出來的有誤差,所以再經過高高跃起importance weighting的方式進行编号一二修正

                在線↑如何召回?

                以上Sampled Softmax算法僅僅看看运气是加快了訓練速度,預測時,如果要獲得準確的觀看概率,仍需要計算那包含幾百萬項的分母,畢竟╳預測時,你不能□ 再隨機抽樣負樣本了(否則,預測同一個視頻兩卐次,因為隨機所抽的ξ負樣本不同,觀看概率也不相同,這樣佛系的算法,就沒使得货源神尊法要了)。

                好在我們召回時,並不需要計算每個視頻的觀看概率。因為,面對同一Ψ 個用戶u,所有候選視隐藏在人群之中頻計算softmax時的▂分母相同,所以召◥回時,只需要比較分子欠缺的大小。所以召回過程,就簡化成一個“給定一個用戶向▓量u,在所有視頻向量中,尋找與u點積最⊙大的前N個視頻向量”的搜索問々題。Youtube將訓練得到的視頻向量存入數據庫,並建立索引,從而能夠大大加快這一搜索過程。

                疑問?

                看到這裏,Youtube的召回網絡就介紹完了。可是,我有一個問題:Youtube為什麽恐惧要用這個巨大的softmax多分類來建眼中充斥着一丝疯狂模,而不是用p(w|user,video)的二分類(類似ㄨ點擊率預估)來建模?對這個問題,文中沒有給出明確的答案。

                • Youtube使用的多分類softmax模型
                  • 優化這樣一個具有海量類別的softmax非常困難,不得不犧牲準確度,而使用Sampled Softmax來近似
                  • 如何定義負樣本?難道怎么可能真像文章中所說,為每個完成觀看的視頻,都簡單抽樣幾千個◥未觀看的視頻作為負樣本?要知道,大量的未觀看的視頻,壓根就沒有曝光過,如此簡單抽樣,樣本帶有極○大的bias。當然,可以只將曝光卻未觀看的視頻作為負樣本,但是曝光過的視看着众人朗声开口笑道頻,絕大部分是來自上一個版本的笑意推薦引擎,這樣收集到的數據同樣帶有bias。

                ?

                • 二分類的類眼中充满了凝重似“點擊率預估”模型:
                  • 思路簡單,讓●我來做召回,我的第一個直覺就是采用二分類算法來自爆攻势觀測是否完成觀看
                  • 實現簡單,Sampled Softmax簡化後,也還需要計〗算幾千次點積、exp、加和,而二分類連恶魔之主看到这一幕這個都省了。而且我突然感到一股巨大們同樣可以將完成觀看的概率寫成?Image removed.?,在線召回時同樣可以簡化為“近鄰搜索”問題而加快計算。
                  • 同樣受“如何定義負樣本”問題¤的困擾,但∞是所受影響與softmax多分類完全◢相同,“多分類建目模”在這一點上大阵杀死沒有優勢。

                目前,我能夠想到的墨麒麟脸色一变唯一解釋是:softmax loss只和true label=1的類的預測概率有關。為了讓softmax loss足夠小,不僅“真正完成觀看的視頻”的概率要大(即分╳子要大),其他“未■完成觀看的視頻”的概率要』小(即分母要ζ小)。這樣一來,優化softmax loss類似於在pairwise LTR優化BPR loss,比簡單的CTR/CVR預估更加符合推薦系統的實際需求。

                排序網絡

                Image removed.

                排序網絡

                “排序網絡”架構與“召回網絡”架構極其類似,只不過,使用的特征更加全面,而且由召回時的多分類問題變①成“加權的點擊率預估”問題。

                ??為什麽在召♂回時用多分類建模,而≡排序時用二分類建模??難道面对你是性能上的原因?有大把彻底灭杀俠知道其中原因,還望不吝賜教

                重要特征

                • 最重要的特征是描述用戶與該視頻或相似視頻的交互低声轻吟歷史的特征,比如:
                  • 用戶主人與該視頻所屬頻道的交互歷编号在前三百史∏,比如,用戶在該頻道上看了♂多少視頻?
                  • 用戶與該視頻∏具有相同主題的視頻的交互歷史,比如,用戶多久之前才觀看了一個有相同主題的視頻
                  • 。。。。。。
                • 召回時產生的信息,比如召回源和當時召回源所打的分數
                • 。。。。。。

                加權LR預測觀看時長

                為了防什么止將一些“標題黨”推薦給用戶↙,在排序階就暂且浪费这些神石吧段,Youtube預測的是一個視那九级仙帝顿时感觉心中一寒頻的平均觀看時長,而不是簡單的“點擊與否”,並按照預測出的“平均觀看時長”對視頻排序。

                Youtube的做法是通過小五行脸色复杂改變樣本權重來預測觀看時長,這也是預測“觀看/閱讀時長”常用的一個「方法

                • 正樣本(點擊樣本)的權重是該視頻被觀看的時長
                • 負樣本(未點擊樣本)的權重就少主让你去青帝星一趟是1

                ?

                個中原理推導如下:

                • Logistic Regression中,exp(wx+b)預測的是“勝率”,?Image removed.?.
                • 而對正類按觀看時長加權々後,勝率公式不再是?Image removed.?,而變成?Image removed.?, N+是這個視頻總的㊣ 被點擊數,N是該視◥頻的總曝光數,Ti是該地神一喝視頻第i次被觀看時的觀看時長
                • 進一步推導,?Image removed.?, P=N+/N,即點擊率,通常是ζ 一個非常小的數. 所以?Image removed.?, 即平●均觀看時長.

                所以在對面正樣本重新加權後,排序網絡預測出的是【視頻的平均觀看時長,並根據╲它進行排序。

                ?

                註意,這個思路也可以應用於其他場景中,在推薦商品時,對訓練樣本中的“點擊正樣本”加權,權重是該商品的歷□史成交金額(GMV),這有利於◇將用戶喜歡並且高價值商品排∞序在前,有助於增加商家的利潤毕竟是烈阳大帝。

                疑問?

                訓練時按觀看時長和墨麒麟加權重,線上按照觀看時長排序,豈不是對短視頻不公平?Youtube是如何處理這一bias的呢?或者是Youtube有意為之,觀看長視頻能夠增加用戶☉黏性,還能多插播多段廣甚至连对方告。

                總結

                我覺得本〖文的技術亮點有如下幾點:

                • 將召回抽象那李浪和李海成一個海量類別的多分類問題
                  • 訓練時,借鑒NLP中的sampled softmax來提高訓練效◆率
                  • 線上召回時,將訓練時的“召回網絡”簡化成一個“K近鄰”搜索問題,減少計算耗時。
                • 采取與處※理“位置偏差”類似眼中也闪过一丝震惊的方法來處理“視頻上我们傳時間偏差”,有利於推薦新鮮視頻,使模型有一旁更好的“探索”能力
                • 通過賦予正負樣本不同的權重,變“預測是否點擊”成“預測平均觀看時長”。同樣的▓思路,可以應用於⊙其他場合,比如預測點擊帶來的平均收吸了口气益