1. 程式人生 > >廣告行業中那些趣事系列9:一網打盡Youtube深度學習推薦系統

廣告行業中那些趣事系列9:一網打盡Youtube深度學習推薦系統

最新最全的文章請關注我的微信公眾號:資料拾光者。

 

摘要:本篇主要分析Youtube深度學習推薦系統,借鑑模型框架以及工程中優秀的解決方案從而應用於實際專案。首先講了下使用者、廣告主和抖音這一類視訊平臺三者之間的關係:就是平臺將視訊資源作為商品免費賣給使用者,同時將使用者作為商品有償賣給廣告主,僅此而已。平臺想獲取更高的收益就必須提升廣告的轉化效率,而前提是吸引使用者增加觀看視訊的時長,這裡就涉及到視訊推薦的問題。因為Youtube深度學習推薦系統是基於Embedding做的,所以第二部分講了下Embedding從出現到大火的經過。最後一網打盡Youtube深度學習推薦系統。該系統主要分成兩段式,第一段是生成候選項模型,主要作用是將使用者可能感興趣的視訊資源從百萬級別初篩到百級別;第二段是精排模型,主要作用是將使用者可能感興趣的視訊從百級別精挑到幾十級別,然後按照興趣度得分進行排序形成使用者觀看列表。希望對推薦系統感興趣的小夥伴有所幫助。

 

目錄

01 使用者、廣告主和抖音類平臺三者的關係

02 One-hot編碼、Word2vec到Item2vec

03 Youtube深度學習推薦系統

1. Youtube推薦系統背景和麵臨挑戰

2. 演算法整體架構

3. 生成候選項模型

4. 精排模型

 

01 使用者、廣告主和抖音類平臺三者的關係

如果對推薦系統和Embedding已經很熟的小夥伴可以直接跳到第三章看Youtube深度學習推薦系統。

通過下面一張圖說明雞賊廣告主、吃瓜使用者和抖音平臺三者之間的關係:

圖1 使用者、廣告主和抖音類平臺三者的關係

 

從商業角度來說,雞賊廣告主最終目的是把廣告投放給吃瓜使用者,讓使用者有廣告轉化,這裡的廣告轉化可能是點選、下載甚至付費。但是通常情況下吃瓜使用者一般對廣告沒啥興趣,特別有創意的除外。這時候抖音短視訊來了,給雞賊廣告主說我這邊可以提供一個平臺吸引海量使用者,讓更多的使用者有廣告轉化。就這樣,廣告主直接給使用者投廣告的路不好走,只能通過曲線救國的方式,通過抖音平臺裡有趣的短視訊來吸引使用者,然後趁你看的開心的時候冷不丁刷到一個廣告。因為使用者花在抖音上的時間越來越多,曝光廣告的機會也多了,總有部分人會點選、下載或者付費廣告,就這樣間接的達到了為廣告主投放廣告的目的。

抖音作為盈利性質的公司,最終目的是想多賺廣告主的錢。要想多賺廣告主的錢,就得吸引更多的使用者來平臺看短視訊並且有廣告轉化行為。但是現在存在的問題是,使用者因為個體差異所以興趣是多種多樣的,有些人喜歡遊戲,有些人喜歡做飯,還有些人喜歡雞湯,所以平臺需要給不同的使用者推薦不同型別的短視訊,不然使用者刷兩下覺得沒意思就走了。

這裡不僅要給使用者推薦他們感興趣的視訊,而且還得推薦最合適的。這裡涉及到曝光資源的稀缺性問題,這個怎麼理解。因為使用者刷抖音的時間其實是有限的,在使用者有限的時間裡牢牢吸引住他們的眼球,然後才有可能讓使用者有更高的廣告轉化效率。所以這裡的關係是,短視訊作為商品被抖音提供給使用者,只不過這裡的商品是免費的。雖然對於使用者是免費的,但是總得有人來為網際網路公司的發展和運營買單。這種“羊毛出在豬身上”的商業模式最早是雅虎建立的。之前寫過一篇文章《讀浪潮之巔》涉及到這部分內容,感興趣的小夥伴可以去看看。

言歸正傳,這裡需要來為網際網路公司的發展和運營買單的就是廣告主。和使用者一樣,廣告主因為自身產品的差異,所以廣告的受眾群體也是不同的。比如有個賣減肥藥的廣告主想把廣告推送給對減肥藥感興趣的人群,還有個傳奇遊戲的廣告主想把廣告推送給對傳奇遊戲感興趣的人群等等。所以這裡的關係是,吃瓜使用者作為商品被抖音“賣”給廣告主,而這裡的商品就不再是免費的,是需要廣告主花錢來買的。

小結下,使用者、廣告主和抖音類平臺三者之間的關係就是平臺將視訊資源作為商品免費賣給使用者,同時將使用者作為商品有償賣給廣告主,僅此而已。平臺想獲取更高的收益就必須提升廣告的轉化效率,而前提是吸引使用者增加觀看視訊的時長,這裡就涉及到視訊推薦的問題。因為Youtube深度學習推薦系統是基於Embedding做的,所以下面引出Embedding。

 

02 One-hot編碼、Word2vec到Item2vec

1. One-hot編碼

通常機器學習中我們會使用One-hot編碼對離散特徵進行編碼。小夥伴們要問了,啥是One-hot編碼?

舉例來說,我們現在一共有四個詞:"i","love","legend","game"。計算機本身無法理解這四個詞的含義,但是我們現在用一種編碼表示。"i"編碼為1000,"love"編碼成0100,"legend"編碼為0010,"game"編碼為0001。

對One-hot通俗的理解就是有多少個詞,就有多少位。如果有8個詞,我們就需要長度為8的“01”串來表示詞。每個詞都有自己的順序,那麼對每個詞One-hot編碼的時候在該位置上置1其他都置為0。

現在我們把這四個詞對應的編碼輸入到計算機裡,計算機就能明白各個編碼代表的含義。這種形式就是One-hot編碼。通過One-hot編碼我們就能輕鬆的表示這些文字。

One-hot編碼存在一個問題,上面的例子中有四個詞,我們就需要長度為4的01串來表示。如果有100W個詞,那麼我們就需要長度100W的01串來進行編碼麼?這顯然不方便。所以One-hot編碼最大的問題就是使得向量非常稀疏。尤其對於數量極其龐大的商品類的向量就會極端稀疏。

當今正處於深度學習大火的人工智慧時代,One-hot編碼造成的稀疏向量問題非常不利於深度學習以及工程實踐。主要原因是深度學習中使用梯度下降演算法來訓練模型,當特徵過於稀疏時每次只更新極少數的權重會導致整個網路收斂過慢。在樣本有限的情況下可能導致模型根本不收斂。

2. Embedding出現

之後出現了Embedding技術,尤其在深度學習中Embedding技術大肆風靡,甚至有"萬物皆Embedding"之說。有些小夥伴可能要好奇了,到底什麼是Embedding?

通俗的理解就是,Embedding是用一個低維的空間去表示一個物體,這個物體可以是一個詞、一個商品、一個視訊或者一個人等等。我們通過另一個空間去表達某個物體,最重要的是可以揭示物體之間的潛在關係,有點透過現象看本質的意思。

以電影舉例來說,在人類世界中我們認為《電鋸驚魂》和《咒怨》有潛在關係,因為它們都屬於恐怖片。但是對於機器來說本來不知道這兩個東西有啥關係,但是經過Embedding操作之後,機器學會了它倆潛在的關係,可以說通過兩個電影的名字(表面)看到了它們都屬於恐怖片(本質)。這就是Embedding的神奇之處。

不僅如此,Embedding還具有數學運算的關係,比如存在四川的Embedding-成都的Embedding=廣東的Embedding-廣州的Embedding這樣的關係。

3. Word2vec引爆Embedding潮流

自然語言處理領域中我們使用Embedding技術來進行詞編碼,也叫Word Embedding。真正引爆Embedding技術的是2013年Google超火的Word2Vec技術。Word2Vec技術將詞對映到向量空間,通過一組向量來表示文字。Word2Vec技術很好的解決了One-hot編碼引起的高緯度和稀疏矩陣的問題。

下圖是我們通過Word2Vec將文字對映到三維立體空間中:

圖2 Word2Vec對映到三維空間展示圖

通過Word2Vec技術我們可以在低緯空間上表示文字。我們還可以通過計算詞向量空間中的距離來表示語義的相似度。通過上圖我們可以看出足球和世界盃的距離比較近,奧巴馬和美國大選比較近,馬雲和阿里巴巴比較近等等。

Word2vec中有兩種模型結構:CBOW和Skip-gram。CBOW就是通過上下文的詞來預測當前詞,非常好理解的一個方式就是我們小時候英語考試中的完形填空。給你一段話,中間摳去幾個詞,然後讓你按照上下文來預測摳掉的這幾個詞。而另外一種Skip-gram則剛好相反,是根據當前的詞來預測上下文的詞,比較抽象,就不舉例子了。CBOW和Skip-gram結構如下圖所示:

圖3 Word2Vec兩種結構

 

4. 從Word2vec到Item2vec

自從Word2vec引爆Embedding之後,很快Embedding從自然語言領域向所有機器學習領域輻射,這其中就包括廣告、搜尋、推薦等等領域。就拿推薦領域中抖音短視訊來說,我們根據使用者觀看的短視訊序列來給使用者推薦下一個視訊。因為使用者、視訊等資料的稀疏性,我們在構建DNN神經網路之前需要對使用者user和視訊video進行Embedding操作,然後才餵給模型去訓練。關於Item2vec有一篇論文推薦:Item2Vec:Neural Item Embedding for Collaborative Filtering。

從本質上來說,Word2vec僅僅是Item2vec應用到自然語言處理領域中的一種。區別在於Word2vec有順序關係,同樣的幾個詞因為順序不同可能表達的語義也是大相徑庭的。而Item2vec則捨去序列中item的空間關係,沒有了時間視窗的概念。就拿使用者觀看短視訊來說,一段時間內使用者觀看ABCDEFG和EFGDCBA我們認為是一樣的,更多的是考慮item之間的條件概率。下面是論文中Item2vec的目標函式:

圖4 Item2vec目標函式

 

引入了Item2vec,下面我們正式進入一網打盡Youtube深度學習推薦系統,詳細說說我們如何使用Embedding技術來做使用者視訊推薦的。

 

03 Youtube深度學習推薦系統

1. Youtube推薦系統背景和麵臨挑戰

國人對Youtube可能不是很熟悉,這裡拿抖音短視訊來類比。咱們部分人可能每天會花部分時間看短視訊娛樂消遣。對於抖音來說,使用者觀看視訊的時間越長,可能產生的商業收益就會越高。這裡用可能來說是有原因的。如果我們只是每天看抖音短視訊而沒有任何廣告轉化,其實對於抖音來說並不會真正產生商業收益,真正讓抖音產生收益的是看一會視訊突然冒出來的那一兩個廣告。只有這些廣告經過使用者點選、下載甚至付費行為才會給抖音增加商業收益。所以小夥伴們,這裡我真誠的建議大家在享受抖音帶來免費的快樂的同時,也盡一點自己的綿薄之力,點點廣告,下載啥的,這樣才能真的綠水長流。這也只有真正做廣告這一行業才能明白其中的艱辛。

抖音短視訊需要根據不同的使用者興趣來推薦不同型別的短視訊,這樣才能吸引大家不斷的觀看。舉個反例,如果給一個喜歡做飯的使用者不停的推薦遊戲,那這個使用者看兩個就失去興趣果斷不看了。

圖5 Youtube上的視訊推薦

 

推薦系統領域中,尤其是像抖音這樣海量使用者下面臨海量視訊的推薦,主要面臨以下幾個挑戰:

  • 超大量級的使用者和視訊規模,真正面臨大資料挑戰;
  • 視訊和使用者的行為更新速度非常快。視訊方面,每秒都會有大量的視訊上傳,不僅存在流行熱點的問題,而且需要平衡新視訊和庫存視訊間的平衡。使用者方面,使用者興趣的轉變也非常快,可能今天喜歡遊戲,明天就喜歡其他的,所以需要實時追蹤使用者的興趣;
  • 使用者反饋存在很多噪音。一方面使用者的歷史行為是稀疏並且不完整的,另一方面視訊資料本身是非結構化的,所以對於模型的魯棒性要求很高。

2. 演算法整體架構

 

圖6 Youtube演算法整體架構

整體來看,Youtube深度學習推薦系統分成兩段式,第一段是Candidate Generation Model,表面上理解就是生成候選項模型。像Youtube這樣大體量的公司,擁有的視訊資源量也是海量的。對於使用者而言在視訊資源池中我們可能會有百萬數量級的候選視訊可供推薦。這一段模型主要作用是從百萬數量級的視訊中進行初篩操作。經過這一輪的初篩,我們從百萬級別的視訊中選出了使用者可能感興趣的百數量級的視訊;第二段是Ranking,可以理解為精排的操作。經過這一輪精排操作,我們從這百數量級的視訊中選出了使用者最可能看的幾十數量級的視訊,並且會進行排序,這個排序就會作為使用者接下來觀看的視訊列表。這就是Youtube深度學習推薦系統的整體框架。下面咱們詳細說下這兩段模型。

3. 生成候選項模型Candidate Generation Model

圖7 生成候選項模型

生成候選項模型如上圖所示。咱們從下往上一層層抽絲剝縷。最下面一層是Embedded Video Watches和Embedded Search Tokens,作者通過Word2vec的方法對使用者觀看視訊的歷史和搜尋詞做了Embedding操作。經過這一波操作我們可以得到Wach Vector和Search Vector兩個向量,這兩個向量作為使用者觀看視訊和搜尋的特徵輸入。除此之外,我們還有地理位置的特徵Geographic Embedding,性別相關的特徵Gender等等。

這裡有個比較特殊的特徵叫Example Age。這個特徵的作用是刻畫使用者對新視訊的偏好程度。具體的做法是比如使用者在20200410號下午20點18分點選了某個視訊,那麼產生了一條資料樣本。後面模型訓練的時候這條樣本對應的Example Age就等於模型訓練時那個時刻減去20200410號下午20點18分這個時刻。

如果模型訓練時間距離樣本產生的時間超過24小時,則設定為24。而當模型線上預測的時候則將這個特徵置為0,這裡設定為0的意思也很明顯,保證預測的時候是處於模型訓練的最後一刻。一個實際的現象是某個好視訊剛出來那會是最容易被大家瘋轉點選和轉發的,過了一段時間之後熱度就會慢慢降下來趨於穩定,也就是視訊存在一定的“時效性”。論文中也印證了加入該特徵對模型的影響:

圖8 Example Age特徵的影響

 

通過上圖我們可以發現加入Example Age能使模型的預測更加接近經驗分佈,也更切合實際。

這裡延伸到我們現在的業務中會有這樣的思考:對於給使用者投放廣告來說,使用者對於廣告的新鮮度也是有一定偏好的。同樣的廣告來回給使用者曝光,廣告的轉化效果應該不怎麼樣。分別從使用者喜歡或者不喜歡某個廣告來看,如果喜歡之前應該點過,那麼後面應該不會再點。這裡一個生活中的經驗是就算周星馳的電影大家也不會在短時間內來回看,更別說廣告了;如果不喜歡曝光多少次都是沒用的。這裡對於業務實踐可能會有幫助。

言歸正傳,得到這些不同的特徵之後我們會把這些特徵拼接起來,這裡就完成了特徵準備工作。下面就是把這些特徵餵給我們的三層Relu神經網路了。

經過三層Relu神經網路後我們得到了User Vector。User Vector一方面會用於模型線上服務,另一方面會通過一個Softmax層,Softmax會輸出當前使用者可能觀看候選的百萬級別的視訊的概率,這裡其實變成了一個多分類問題。

現在使用者可能會看這百萬級別的視訊,每個視訊會有一個概率,這些概率值相加為1。這裡有個工程上的問題,因為候選的視訊有百萬級別,那麼相當於是個百萬數量級的多分類,這樣對模型的效果和速度都會有很大的影響。那麼Youtube的工程師是怎麼做的呢?論文中說進行了負取樣(Negative Sampling),並且使用Importance Weighting的方法對取樣進行了校準操作。

這裡通過一個例子來說明負取樣具體怎麼做的。比如我們現在有100W個候選視訊,其實就有100W個類了。現在有個樣本的標籤是class_3,因為模型訓練使用的是Softmax函式,所以模型更新引數會盡量使class_3的Softmax值偏向1,其他99W9999的類的Softmax值輸出偏向0。當我們採用負取樣的時候,如果設定負取樣的數目為9999,那麼相當於遮蔽了99W的類別,這樣模型每次更新會使當前類別對應的Softmax接近1,其他9999個類別的Softmax偏向0,將百萬分類“變”成了一萬分類。通過上面這些工程上的騷操作使得生成候選項模型即使面對百萬數量級的分類下依然能從容的應對模型訓練和模型效果。

經過Softmax之後我們得到了視訊向量Video Vector。這裡又有個工程上的問題,為啥要採用最近鄰搜尋演算法來選擇百級別的視訊?這裡則是從工程和學術的角度做權衡之後的結果。如果直接使用訓練時的模型去預測百萬級別的候選集,模型的時間開銷太大。一個不錯的選擇是我們通過模型分別得到User Embedding和VideoEmbedding之後,通過最近鄰搜尋的方法可以大幅度提升效率。工業中一般是將User Embedding和Video Embedding儲存到Redis這一類記憶體資料庫中。

這裡有的小夥伴好奇這個User Embedding和Video Embedding具體怎麼來的,咱們再細緻的講講。這裡通過一個詳細的例子來說明:

關於User Embedding,當我們的模型訓練完成之後,假如我們用100維度來表示User Embdding,那麼我們隱藏層的最後一層輸出的維度就是100X1維,隱藏層的輸出作為Softmax層的輸入,也就是說Softmax層的輸入就是100X1維,而這個100X1維就是User Embedding。因為使用者的行為是不斷更新的,所以使用者的User Embedding也是不斷更新的,需要實時計算。實際專案中在機器等資源充足的情況下最好能做到User Embedding和Video Embedding高頻度的更新,這樣就能把使用者最新的觀看和搜尋行為都能進入輸入層從而得到反應使用者最新的User Embedding。DNN輸入是使用者當時觀看和搜尋的視訊(相對變化較大的)和使用者畫像(相對穩定的)特徵組合,分別進入三層Relu得到一個100X1維向量,這就是實時的User Embedding;

關於Video Embdding,如果我們候選的視訊有200W的話,那麼我們Softmax的輸出層就是200WX1,因為Softmax是輸出每個視訊被使用者下一次觀看的概率值。所以Softmax層的權重矩陣就是W(100X200W),經過轉置就成了W(200WX100)。因為有200W個視訊,所以是200W行,每個視訊是100X1維,也就得到每個視訊對應的Video Embedding。

這裡得到User Embedding和Video Embedding之後,當我們要計算user_i觀看video_j的概率時,就可以通過兩個100維向量做內積得到。

這裡還涉及到幾個工程方面牛逼的操作:

  • 每個使用者生成固定數量的訓練樣本。在實際場景中,總會出現一些比較活躍的使用者,而這些高度活躍的使用者會對loss產生過度的影響。為了消除這部分影響,我們對每個使用者使用固定的樣本,平等的對待每個使用者;
  • Youtube完全摒棄了使用者觀看視訊的時序資訊,把使用者最近一段時間看的視訊同等對待。這裡其實是容易理解的。當我們推薦的結果過多的受最近觀看或者搜尋的某個視訊,會影響使用者多樣性的體驗。舉個例子來說,就算一個使用者再喜歡王者榮耀的視訊,你不斷的推薦這種型別的視訊,使用者肯定也會審美疲勞的。因為通常來說使用者會有多個興趣,所以我們需要做到在使用者的多個興趣間迴圈,讓使用者感興趣但又不會覺得膩;
  • 對視訊進行Embedding操作時把大量長尾的視訊直接用0向量來代替。這樣做也是基於經典工程和演算法的一次權衡,把大量長尾的視訊截斷,主要目的是節約線上服務寶貴的記憶體資源;
  • Youtube工程師選擇使用者最近一次觀看的視訊作為測試集,主要原因是防止引入未來資訊,從而產生和實際情況不符的資料穿越現象;
  • 資料來源的多樣性。模型不僅用了視訊觀看歷史,而且還用了使用者搜尋。豐富的資料來源可以多維度的刻畫使用者的興趣,這也是我們實際工作中給使用者打標籤非常重要的;
  • 關於候選項模型DNN網路結構的設計,價效比最高的方案是1024Relu->512Relu->256Relu。

關於業務方面還需要說明的是模型優化目標的確定。Youtube推薦系統將使用者觀看時間作為模型優化的目標,這是同時從模型和商業的角度分析得到的結果。模型方面需要反映使用者真實的興趣,選擇觀看時間比點選率或者播放率可能更有效。有時候使用者雖然點了視訊,但是可能看了兩秒覺得沒啥意思,這時如果把點選率當做評價指標,這條樣本就是正例,但實際情況是使用者可能對這條視訊沒啥興趣。但是如果選擇觀看時間則能進一步反應使用者興趣,能在沒興趣的前提下堅持把視訊看完是少之又少的。所以這裡給咱們機器學習工程師的參考意義是開發模型的時候要深入到業務中,畢竟模型最終是服務於業務的。明確模型要優化的目標是成功的一半。

到這裡,咱們完成了生成候選項模型的講解,下面進入第二段精排模型。


4. 精排模型Ranking

圖9 精排模型

精排階段的模型如上圖所示,可以發現精排模型和生成候選項模型非常類似。區別在於特徵工程和最上層部分。論文中其實也有說明,精排階段的DNN模型目的是加入更多的視訊描述特徵、使用者特徵以及使用者和視訊之間關係的特徵,從而真正達到對候選視訊精排的目的。我們同樣是從下往上層層剖析。首先就是最下層的特徵工程,從左到右依次說明:

  • Video Embedding:這裡主要包括Impression Video ID和Watched Video IDS。其中Impression Video ID是當前要計算的視訊的Embedding,Watched Video IDS是使用者最後觀看的N個視訊Embedding的Average;
  • Language Embedding:這裡主要包括User Language和Video Language。其中User Language是使用者語言的Embedding,Video Language是視訊語言的Embedding;
  • Time Since Last Watch:這是使用者最近一次看同類型Channel視訊的時間間隔;
  • #Previous Impressions:這是記錄當前視訊給當前使用者的曝光次數。

其中Time Since Last Watch和#Previous Impression這兩個特徵很好的關注了使用者和視訊之間關係。Time Since Last Watch主要用來關注使用者觀看同類型視訊時間的間隔。這個是從使用者興趣的角度來進行的一種Attention行為。假如使用者才看過“王者榮耀”型別的視訊,那麼該使用者對這一類視訊是有興趣的,所以在後面的觀看列表中新增這一類視訊使用者應該也會喜歡看。這裡涉及到推薦系統需要給使用者打標籤的部分。這個特徵最終的目的就是使用者觀看了某類視訊,對這類視訊就有興趣。之前分享過一篇通過使用者操作手機行為給使用者打標籤的文章廣告系列第一篇統一興趣建模流程,有興趣的小夥伴可以翻來看看。

#Previous Impression特徵則是讓模型注意避免將一個視訊重複曝光給使用者,從而造成無效曝光。感覺這個特徵和上面的Time Since Last Watch是相互作用的關係。上面的特徵是讓給使用者打標,瞭解使用者對某一類視訊感興趣。這個特徵則告訴模型要適度。不能發現使用者對某個視訊感興趣就瘋狂的推薦。這兩個特徵和前面講的我們要讓使用者看視訊時既有興趣,又不會覺得膩。還是比較難的。
值得注意的是上面兩個特徵都進行了歸一化操作。不僅如此,還將歸一化後的特徵進行開方和平方處理後當做了不同的特徵餵給模型。這是簡單有效的工程經驗,通過開方和平方的操作引入了特徵的非線性。從論文反饋的效果來看,這一操作提升了模型離線的評估指標。

下面還是同樣的操作,將這些特徵進行拼接之後餵給模型。後面跟了三層Relu神經網路。然後使用了帶權重的邏輯迴歸函式Weighted Logistic Regression作為輸出層。這裡使用帶權重的邏輯函式主要原因是模型使用了視訊預期觀看時間作為優化目標,可以把觀看時間作為正樣本的權重,在提供線上服務的時候通過e(Wx+b)做預測得到期望觀看時間的近似。

到這裡,咱們完成了精排模型的講解。

 

總結

本篇主要分析Youtube深度學習推薦系統,借鑑模型框架以及工程中優秀的解決方案從而應用於實際專案。首先講了下使用者、廣告主和抖音這一類視訊平臺三者之間的關係:就是平臺將視訊資源作為商品免費賣給使用者,同時將使用者作為商品有償賣給廣告主,僅此而已。平臺想獲取更高的收益就必須提升廣告的轉化效率,而前提是吸引使用者增加觀看視訊的時長,這裡就涉及到視訊推薦的問題。因為Youtube深度學習推薦系統是基於Embedding做的,所以第二部分講了下Embedding從出現到大火的經過。最後一網打盡Youtube深度學習推薦系統。該系統主要分成兩段式,第一段是生成候選項模型,主要作用是將使用者可能感興趣的視訊資源從百萬級別初篩到百級別;第二段是精排模型,主要作用是將使用者可能感興趣的視訊從百級別精挑到幾十級別,然後按照興趣度得分進行排序形成使用者觀看列表。第三部分也是本篇的重點內容。

 

參考資料

1. 《Item2Vec: Neural Item Embedding forCollaborative Filtering》

2. 《Deep Neural Networks for YouTubeRecommendations》

注意:本篇黑色加粗的部分是對實際專案中有借鑑意義的實操經驗,小夥伴們可以重點關注下。

最新最全的文章請關注我的微信公眾號:資料拾光者。

相關推薦

廣告行業那些趣事系列9一網打盡Youtube深度學習推薦系統

最新最全的文章請關注我的微信公眾號:資料拾光者。   摘要:本篇主要分析Youtube深度學習推薦系統,借鑑模型框架以及工程中優秀的解決方案從而應用於實際專案。首先講了下使用者、廣告主和抖音這一類視訊平臺三者之間的關係:就是平臺將視訊資源作為商品免費賣給使用者,同時將使用者作為商品有償賣給廣告主

廣告行業那些趣事系列6BERT線上化ALBERT優化原理及專案實踐(附github)

摘要:BERT因為效果好和適用範圍廣兩大優點,所以在NLP領域具有里程碑意義。實際專案中主要使用BERT來做文字分類任務,其實就是給文字打標籤。因為原生態BERT預訓練模型動輒幾百兆甚至上千兆的大小,模型訓練速度非常慢,對於BERT模型線上化非常不友好。本篇研究目前比較火的BERT最新派生產品ALBE

廣告行業那些趣事系列7實戰騰訊開源的文字分類專案NeuralClassifier

摘要:本篇主要分享騰訊開源的文字分類專案NeuralClassifier。雖然實際專案中使用BERT進行文字分類,但是在不同的場景下我們可能還需要使用其他的文字分類演算法,比如TextCNN、RCNN等等。通過NeuralClassifier開源專案我們可以方便快捷的使用這些模型。本篇並不會重點剖析某

廣告行業那些趣事系列8詳解BERT分類器原始碼

最新最全的文章請關注我的微信公眾號:資料拾光者。   摘要:BERT是近幾年NLP領域中具有里程碑意義的存在。因為效果好和應用範圍廣所以被廣泛應用於科學研究和工程專案中。廣告系列中前幾篇文章有從理論的方面講過BERT的原理,也有從實戰的方面講過使用BERT構建分類模型。本篇從原始碼的角度從整體到區

廣告行業那些趣事系列10推薦系統不得不說的DSSM雙塔模型

摘要:本篇主要介紹了專案中用於商業興趣建模的DSSM雙塔模型。作為推薦領域中大火的雙塔模型,因為效果不錯並且對工業界十分友好,所以被各大廠廣泛應用於推薦系統中。通過構建user和item兩個獨立的子網路,將訓練好的兩個“塔”中的user embedding 和item embedding各自快取到記憶

機器學習深度學習系列連載 第二部分 深度學習(二)梯度下降

梯度下降 Gradient Decent 我們回憶深度學習“三板斧”, 選擇神經網路 定義神經網路的好壞 選擇最好的引數集合 其中步驟三,如何選擇神經網路的好壞呢? 梯度下降是目前,最有效的方法之一。 方法:我們舉兩個引數的例子

機器學習深度學習系列連載 第二部分 深度學習(十六)迴圈神經網路 4(BiDirectional RNN, Highway network, Grid-LSTM)

深度學習(十六)迴圈神經網路 4(BiDirectional RNN, Highway network, Grid-LSTM) RNN處理時間序列資料的時候,不僅可以正序,也可以正序+逆序(雙向)。下面顯示的RNN模型,不僅僅是simple RNN,可以是LSTM,或者GRU 1 B

機器學習深度學習系列連載 第二部分 深度學習(十五)迴圈神經網路 3(Gated RNN - GRU)

迴圈神經網路 3(Gated RNN - GRU) LSTM 是1997年就提出來的模型,為了簡化LSTM的複雜度,在2014年 Cho et al. 提出了 Gated Recurrent Units (GRU)。接下來,我們在LSTM的基礎上,介紹一下GRU。 主要思路是: •

機器學習深度學習系列連載 第二部分 深度學習(十四)迴圈神經網路 2(Gated RNN - LSTM )

迴圈神經網路 2(Gated RNN - LSTM ) simple RNN 具有梯度消失或者梯度爆炸的特點,所以,在實際應用中,帶有門限的RNN模型變種(Gated RNN)起著至關重要的作用,下面我們來進行介紹: LSTM (Long Short-term Memory )

機器學習深度學習系列連載 第二部分 深度學習(十三)迴圈神經網路 1(Recurre Neural Network 基本概念 )

迴圈神經網路 1(Recurre Neural Network 基本概念 ) 迴圈神經網路的特點: • RNNs 在每個時間點連線引數值,引數只有一份 • 神經網路出了輸入以外,還會建立在以前的“記憶”的基礎上 • 記憶體的要求與輸入的規模有關 當然,他的深度不只有一層:

機器學習深度學習系列連載 第二部分 深度學習(十二)卷積神經網路 3 經典的模型(LeNet-5,AlexNet ,VGGNet,GoogLeNet,ResNet)

卷積神經網路 3 經典的模型 經典的卷積神經網路模型是我們學習CNN的利器,不光是學習原理、架構、而且經典模型的超引數、引數,都是我們做遷移學習最好的源材料之一。 1. LeNet-5 [LeCun et al., 1998] 我們還是從CNN之父,LeCun大神在98年提出的模

機器學習深度學習系列連載 第二部分 深度學習(十一)卷積神經網路 2 Why CNN for Image?

卷積神經網路 2 Why CNN 為什麼處理圖片要用CNN? 原因是: 一個神經元無法看到整張圖片 能夠聯絡到小的區域,並且引數更少 圖片壓縮畫素不改變圖片內容 1. CNN 的特點 卷積: 一些卷積核遠遠小於圖片大小; 同樣的pat

機器學習深度學習系列連載 第二部分 深度學習(十)卷積神經網路 1 Convolutional Neural Networks

卷積神經網路 Convolutional Neural Networks 卷積神經網路其實早在80年代,就被神經網路泰斗Lecun 提出[LeNet-5, LeCun 1980],但是由於當時的資料量、計算力等問題,沒有得到廣泛使用。 卷積神經網路的靈感來自50年代的諾貝爾生物學獎

機器學習深度學習系列連載 第二部分 深度學習(九)Keras- “hello world” of deep learning

Keras Kearas 是深度學習小白程式碼入門的最佳工具之一。 如果想提升、練習程式碼能力,還是建議演算法徒手python實現。 複雜的深度神經網路專案還是推薦TensorFlow或者Pytorch Keras是一個高層神經網路API,Keras由純Pyt

機器學習深度學習系列連載 第二部分 深度學習(十八) Seq2Seq 模型

Seq2Seq 模型 Seq2Seq 模型是自然語言處理中的一個重要模型,當然,這個模型也可以處理圖片。 特點是: Encoder-Decoder 大框架 適用於語言模型、圖片模型、甚至是預測 1. RNN相關的生成應用: (1) 作詩 (2) 圖片生成

機器學習深度學習系列連載 第二部分 深度學習(七)深度學習技巧4(Deep learning tips- Dropout)

深度學習技巧4( Dropout) Dropout 在2012年imagenet 比賽中大放異彩,是當時CNN模型奪冠的功勳環節之一。 那什麼是Dropout 我們先直觀的理解: 練武功的時候,訓練的時候腳上綁上重物 等到練成下山的時候: 我們從幾個方面來解

機器學習深度學習系列連載 第二部分 深度學習(八)可以自己學習的啟用函式(Maxout)

可以自己學習的啟用函式(Maxout) 在深度學習中啟用函式有sigma, tanh, relu,還有以後會將到的selu,但是有沒有一個啟用函式不是人為設定的,是機器學出來的呢?對抗網路(GAN)之父Goodfellow,給我們一個肯定的答案。Learnabl

機器學習深度學習系列連載 第二部分 深度學習(十四)迴圈神經網路 2(Gated RNN

迴圈神經網路 2(Gated RNN - LSTM ) simple RNN 具有梯度消失或者梯度爆炸的特點,所以,在實際應用中,帶有門限的RNN模型變種(Gated RNN)起著至關重要的作用,下面我們來進行介紹: LSTM (Long Short-term

機器學習深度學習系列連載 第二部分 深度學習(十八) Seq2Seq 模型

Seq2Seq 模型 Seq2Seq 模型是自然語言處理中的一個重要模型,當然,這個模型也可以處理圖片。 特點是: Encoder-Decoder 大框架 適用於語言模型、圖片模型、甚至是預測 1. RNN相關的生成應用: (1) 作詩 (2) 圖片生成

機器學習深度學習系列連載 第二部分 深度學習(十九) 注意力機制 Attention

注意力機制 Attention 我們以機器翻譯為例,來探究引入注意力機制Attention: 當我們使用Seq2Seq 進行機器翻譯的過程中,最後的輸入對結果影響響度比較大,因為Encode的輸出是在尾部(圖中粉紅色部分)。直覺上想,一段話的翻譯的的過程中,輸