推薦召回算法之深度召回模型串講

導讀:本文來自“深度推薦系統”專欄,這個系列將介紹在深度學習的強力驅動下,給推薦系統工業界所帶來的最前沿的變化。本文將結合作者在工作中的經驗總結,着重於串講推薦召回層的模型變化。

推薦系統的基本架構並不複雜,一般由索引、召回、粗排、精排以及展控幾個部分構成。而其中的召回模塊(也叫Matching、觸發等)則主要負責根據用戶和內容特徵,從衆多的內容庫中找到用戶可能感興趣的內容。一般而言召回模型是多路併發存在的,各路召回模型之間互不影響。本文將重點技術在深度學習技術的驅動下,召回模型的幾大類模型。

Youtube DNN召回

但凡Google工業界出品,必屬精品。這篇論文也不例外,自從2016年提出以來備受萬衆矚目甚至被奉爲推薦領域集算法模型與工業實踐神級大作。雖然在深度學習已經成爲工業界常規操作的今天回頭來看這篇論文的算法架構並不覺得有特別驚豔的地方,但是仍然是工業界效果上當之無愧的主流算法與強有力的baseline。

原始論文主要介紹了Youtube推薦架構的召回和精排各自相應的深度網絡結構兩個部分內容,因爲本文着重串講召回模型所以專注於第一部分召回層的部分。自底向上查看如下的網絡結構:

  1. 特徵輸入層包含了三部分內容:用戶觀看過的video的embedding向量、用戶搜索詞的embedding向量以及用戶的地理位置年齡等靜態特徵;這裏的embedding向量作者是用word2vec類方法預先生成的。
  2. 線下模型訓練階段,三層ReLU神經網絡之後接到softmax層,也就是說在這裏作者建模爲爲用戶推薦下一個感興趣視頻的多分類問題,輸出是在所有候選視頻集合上的概率分佈。
  3. 線上預測階段,考慮到召回的高性能需求首先通過userId找到相應的用戶向量,然後使用KNN類方法找到相似度最高的N條候選結果返回。

可以看出模型整體的思路可以認爲是傳統協同過濾思路的擴展。傳統的UCF強調相似的用戶感興趣的物品也相似;傳統的ICF強調對物品A感興趣的用戶,可能也對物品A相似的物品同樣感興趣。所以傳統的UCF和ICF實際上是分別構造了用戶向量空間和物品向量空間,在任何一個向量空間找到相似性都可以進行推薦。

而YoutubeDNN則學習統一的(用戶、物品)向量空間來代替原來的兩個獨立的向量空間,使用深度網絡將用戶、物品映射到這個統一的低維向量空間來發現學習更高階的用戶物品相似性。

DSSM語義召回

DSSM模型是微軟2013年發表的一個關於query/ doc的相似度計算模型,後來發展成爲一種所謂”雙塔“的框架廣泛應用於廣告、推薦等領域的召回和排序問題中。依然我們自底向上來看一下如下的網絡結構:

  1. 首先特徵輸入層將Query和Doc(one-hot編碼)轉化爲embedding向量,原論文針對英文輸入還提出了一種word hashing的特殊embedding方法用來降低字典規模。我們在針對中文embedding時使用word2vec類常規操作即可;
  2. 經過embedding之後的詞向量,接下來是多層DNN網絡映射得到針對Query和Doc的128維語義特徵向量;
  3. 最後會使用Query和Doc向量進行餘弦相似度計算得到相似度R,然後進行softmax歸一化得到最終的指標後驗概率P,訓練目標針對點擊的正樣本擬合P爲1,否則擬合P爲0;

可以看到DSSM的核心思想就是將不同對象映射到統一的語義空間中,利用該空間中對象的距離計算相似度。這一思路被廣泛應用到了廣告、搜索以及推薦的召回和排序等各種工程實踐中。

RNN序列召回

基於用戶session中的點擊序列進行建模召回有很多種方式,其中使用RNN深度網絡結構來刻畫是其中比較有代表性的一種。相應的網絡結構其實很簡單,如下圖所示。使用用戶session中的點擊序列作爲模型輸入,輸出則爲用戶下次點擊的item相應的得分。

首先,輸入點擊序列中的每一個item都被one-hot編碼,然後緊接embedding層,再然後是N層的GRU單元,經過最後一層全連接層得到用戶下次點擊的item相應的概率。詳細的Demo代碼可以參見:github.com/Songweiping/

TDM深度樹匹配召回

TDM模型是阿里巴巴於2018年提出的新一代深度召回模型,試圖通過結合樹結構搜索與深度學習模型來解決召回的高性能需求與使用複雜模型進行全局搜索與之間的平衡。它將召回問題轉化爲層級化分類問題,藉助樹的層級檢索可以將時間複雜度降到對數級。即認爲用戶對某節點的興趣是大於等於其葉子節點的,所以只需在每層選出topk,且在下一層僅計算上一層選出來的節點相應子節點的興趣,對於規模爲M的語料庫,只需要遍歷 2 * k * logM個分支就可以在完全二叉樹中找到topk的推薦結果。

這樣使用樹層級檢索的好處就是打分模型可以儘可能的複雜對用戶興趣進行精準建模。論文中使用的深度網絡將用戶歷史行爲按時間進行切分,分爲多個時間窗口。每個時間窗口內的每一個item都與樹節點計算關聯性權重,得到attention分佈,然後每個時間窗口內再計算平均權重,接着將多個時間窗口得到的特徵拼接起來,通過三層全連接層以及一層softmax層得到用戶對這個節點感興趣的概率。

訓練過程是首先固定TDM樹,訓練深度網絡得到新的節點向量;然後使用新的向量又可以通過聚類等方法重新構建一個TDM樹;然後再固定TDM樹重新訓練深度網絡,如此迭代優化,最終可以得到一個高性能且穩定的模型。

參考文獻

  1. Deep Neural Networks for YouTube Recommendations
  2. 重讀Youtube深度學習推薦系統論文,字字珠璣,驚爲神文
  3. Learning Deep Structured Semantic Models for Web Search using Clickthrough Data
  4. Session-based recommendations with recurrent neural networks
  5. Learning Tree-based Deep Model for Recommender Systems

本文授權轉載自知乎專欄“深度推薦系統”。原文鏈接:https://zhuanlan.zhihu.com/p/63343894

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章