「看一看」推薦模型揭秘!微信團隊提出實時Look-alike算法,解決推薦系統多樣性問題

2021-02-15 AI前線

論文作者 |  Yudan Liu, Kaikai Ge, Xu Zhang, Leyu Lin,騰訊微信事業群

AI 前線導讀:Look-alike 是廣告領域經典的推薦算法,擁有定向能力強、用戶擴展精準等優點。本文在微信看一看的推薦場景下對傳統 look-alike 進行了改造,使之更適合高時效性的資訊推薦系統。本論文題為《Real-time Attention based Look-alike Model for Recommender System》,已被 KDD 19 接收。

更多優質內容請關注微信公眾號「AI 前線」(ID:ai-front)

Fig.0. 微信看一看

微信看一看面向全體微信用戶,每天有數百萬新聞、視頻和公眾號文章藉由個性化推薦系統完成分發。在微信看一看,我們將各類深度學習算法廣泛應用到了推薦系統的各個環節中。新聞資訊、運營專題和小眾文章由於缺少歷史行為或者傾向長尾,往往曝光效率不高,對此我們提出 RALM 模型嘗試解決這個問題。

現階段,Deep Learning 已經在推薦領域中廣泛應用,深度模型如 Youtube DNN/WND/DeepFM 等在傳統的個性化召回 /CTR 排序都取得了不錯的效果,但仍有一些覆蓋效果不佳的場景。對於傳統的推薦模型來說,item 的歷史行為特徵對於 pCTR 的影響很大,這也造成模型推薦結果總體趨熱(當然大多數場景下熱文是大家都愛看的)。因此而來的副作用就是內容體系的馬太效應沒有得到充分緩解,一些優質的長尾內容,比如運營新聞專題、冷門類目精品等受到打壓,無法得到高效的投放。

要解決這個問題,我們不妨思考傳統推薦模型的建模思路,大致如下:

獲取樣本:user, item, label。這裡以資訊推薦舉例,label 即是否點擊(0/1)。注意,這條樣本是最原始的信息,包含這一行為的所有信息量;

拆解特徵:直接使用行為樣本信息損失當然是最低的,但那意味著失去泛化性。所以我們需要引入用戶畫像、語義信息、統計信息作為 user/item 的表達;

訓練權重:擬合樣本,學習各特徵權重

由上可以看到,從 1 到 2 有一個信息損失的過程。特別是對於 item 的歷史行為信息,並沒有很完整的表示方式。傳統模型裡一個 point-wise 的樣本用 itemid、統計信息(歷史點擊率 / 點擊次數 / 標籤點擊率等等)表徵 item 行為,但無論是 itemid 還是點擊率 / 點擊次數,都是傾向於頭部歷史行為豐富 item 的特徵,這也是為什麼前文說的馬太效應未被緩解。

綜上所述,我們需要的是一個能精準建模 item 歷史行為的模型。Look-alike 是廣告領域流行的一類方法,其核心思想是針對某個 item,先根據歷史行為圈定一部分種子用戶,然後通過模型尋找與種子用戶相似的人群,為他們推薦該 item。

Fig.1. Look-alike 算法原理

由於 look-alike 充分利用了 item 的所有行為信息,因此在定向挖掘長尾內容受眾上具有獨特的優勢。然而相較於廣告系統,我們的資訊推薦有如下差異:

內容時效性要求高,一條新聞投放資訊生命周期一般不超過一天;

候選集更新頻率高,一天可能有幾十上百萬條新內容出現。

傳統的廣告 look-alike 包括 similarity based models (LSH/user embedding) 和 regression based models (LR/xgboost/MLP),在廣告系統中都得到過驗證,但不太適用於資訊推薦。這些模型往往都是針對每個 item 訓練一個模型(或者每個 itemid 訓練一個 embedding) ,當 item 候選集增加時,模型都需要首先積累樣本,然後重訓或增量更新,這對於高時效性高頻率更新的資訊推薦系統來說是難以接受的。

總結下來,我們最後需要的模型應具備如下特點:

實時擴展用戶,無需更新模型,讓資訊第一時間觸達受眾;

保證推薦的準確性和多樣性;

支持在線預測。

基於以上,我們提出了 RALM(Realtime Attention-based Look-alike Model) 模型,它通過 user representation learning 表達用戶的興趣狀態,通過 Look-alike learning 學習種子用戶群體信息以及目標用戶與種子用戶群的相似性,從而實現實時且高效的受眾用戶擴展和內容觸達。

RALM 模型能實現實時擴散的核心在於,我們使用種子用戶的特徵來代替 item 的歷史行為特徵,從而將常規 user-item 的模型轉換成了 user-users 模型,這意味著任何在系統中有過行為的 item ,都能被表示為 I = Eseeds= f({E(u1), E(u2), ..., E(un)}),其中 un ∈ U,U 為系統用戶全集;Eseeds 是 item 種子用戶集合的表示。

RALM 的訓練包含兩部分:User Representation learning 和 Look-alike learning。User Representation learning 的任務是學習 E(un);Look-alike learning 的任務則是基於 E(un) 學習 Eseeds。

Fig.2. RALM 算法流程

2.1. User Representation learning

User Representation learning 的任務是學習用戶的高階表示,目的是對繁雜的多域低階特徵做抽象,儘可能全面地表達用戶在系統中的狀態,便於後續模型的利用。這裡可以是個多任務學習,或者輸出不同向量空間的多個 embeddings。

我們改進了 Youtube DNN 模型,針對點擊樣本訓練了一版模型,取最後一層隱層作為用戶行為 embedding,供後續使用。模型細節計劃在 CF 優化專題裡詳細說明,在此不再贅述。

Fig.3. 用戶行為表示學習

從 User Representation learning 得到 user embedding 後,我們將其作為 user 特徵,學習種子用戶到目標用戶的關係,即上文提到的 user-users model。

Fig.4. Look-alike learning

模型結構比較簡單,是一個雙塔結構。左邊稱為「seeds tower」,以種子用戶的 embeddings 作為輸入,經過一層空間轉換(全連接 +pRELU),然後分別經過一個 self-attention 單元和一個 productive attention 單元,pooling 後輸出向量;模型右邊結構稱為「target tower」,目標用戶 embedding 輸入後經過空間轉換(與 seeds tower 共享參數),直接與左邊向量計算 cosine 相似度。

為了計算種子用戶群體和目標用戶的相似度,我們需要首先把多個用戶向量 pooling 成一條。Average 是常用的 pooling 方式,但取均值的結果是趨向群體的中心,也就是大眾化的興趣,丟失了群體中的離群點和個性化興趣。而一個群體中,必然只有一部分用戶是和目標用戶興趣相仿的。基於這些假設,我們加入了 local attention unit,激活種子用戶群的局部興趣點,並且學習到一個和目標用戶緊密關聯的用戶群表達方式,公式如下:

Fig.5. Attention units

這是一個乘法注意力,Wl ∈ Rhxh 表示轉換矩陣,Es 表示種子用戶,Eu 表示目標用戶,Elocal 為種子用戶的 local info。

當 item 有 n 個種子用戶時,計算 attention 需要 n * h * h 次乘法計算,當 n 很大時,計算耗時也會水漲船高,不利於在線預測。為了減少計算次數,我們在這引入聚類。我們用 K-means 把種子用戶聚成 k 個類簇,然後令種子用戶向量按最近類簇中心聚合成 k 個向量,最後再計算 attention。這樣一來,計算次數就從 n * h * h 減少至 k * h * h,k 只是一個很小的常數。在我們的實踐中,k 取 20 是性能與效果的最佳折中點。注意,由於 attention 前的空間轉換矩陣是可學習的,所以輸入向量也是會變的,因此最好每隔一定 batch 數迭代更新 K-means 的 k 個聚類中心,減少聚類帶來的信息損失。

除了個性化信息,用戶群體還有共性的、與自身組成相關的全局信息。因此我們引入 global attention unit 來捕獲這部分群體信息。

Wg ∈ Rsxn 表示全連接矩陣,Eglobal 為種子用戶的 global info。本質上這是一個 self-attention,與群體分布更相似的興趣將會被提取出來。最終我們令 Elocal , Eglobal 分別與 Eu 求 cosine,加權求和即得到目標用戶與種子用戶的相似度分數。

RALM 是個多分類任務(目標用戶屬於哪一個種子用戶群),我們用 negative sampling 的方式採多正多反(點擊 item 的種子用戶做正例,隨機採負例),使用多組交叉熵作為模型 loss 函數。  

RALM 模型框架現在已經部署在微信看一看,整體流程如下:

Fig.6. 系統架構圖

離線訓練包括 User Representation learning 和 Look-alike learning,最終輸出 look-alike 模型參數和 Eu。模型參數可加載到內存,全量用戶的 Eu 可存到 kv cache。

在線異步處理主要是針對需要快速更新的數據進行準實時的更新和計算,節約線上請求耗時。包括兩部分:拉取用戶點擊日誌,更新線上候選集 item 的種子用戶,預計算 Elocal(因為這部分與目標用戶無關);計算 K-means 類簇中心。以上兩部分通過詞典系統推送到線上內存。

線上服務首先拉取當前請求 user 的 Eu,然後遍歷候選集 item,分別得到各 item 的種子用戶 embedding,計算 local/global attention(已預計算),加權得到最終的相似度。相似度分數可以作為後續模型的特徵分,也可以通過卡閾值的方式控制曝光。

在 RALM 中,我們用 user 特徵來表示 item,取代 item 的語義、id、統計類特徵,一方面可以得到 item 完整的歷史行為表達,另一方面對缺乏豐富統計特徵的 item 更加友好。

對於用戶,我們用高階連續特徵作為用戶特徵,而沒有使用用戶的其他離散特徵。是因為如果用低階特徵來表達用戶群體,那麼我們只能採取統計的方式來構造特徵,這會丟失群體大部分信息。而經過表示學習的高階特徵其實已經包含了用戶各類低階特徵的交叉,能更加全面地表達用戶的信息。並且高階特徵有泛化性,避免表達陷入歷史數據的記憶。

Look-alike learning 的模型很簡單,而輸入的用戶特徵又只有一種連續特徵,因此很容易受到 User Representation 模型的影響,產生過擬合。我們採取的方式是共享兩邊全連接層的參數,並且加入 dropout,讓模型結構更簡單,一定程度上能走得更遠。

另外,引入 stacking 的思路,將不同學習目標的其他用戶表示 embeddings(如泛興趣、關係鏈) concat 作為輸入特徵,共同訓練是我們下一步目標,在 stacking model 中,這也是一個防止模型被帶偏、讓學習更充分的方法。

雖然 RALM 計算相似度並不需要太多種子用戶,但在 item 初次投放時(種子用戶為 0),我們仍需多 item 做初始曝光以獲得最初的種子用戶。線上我們使用語義特徵與用戶畫像做了簡單的 MLP 預估點擊率作為曝光策略,當積累足夠量(100 以上)種子用戶後即可進入 RALM 的正常預測流程。

RALM 實現了可實時擴展用戶的 look-alike 算法,它通過 User Representation learning 和 Look-alike learning 捕捉種子用戶群的 local/global 信息,並學習用戶群與目標用戶的相似度表示,更好地發掘長尾內容的受眾用戶。通過離線評估和線上 A/B test,RALM 在曝光、CTR、多樣性等指標上均取得了更好的效果。註:論文中只用了少量特徵學習 representation,效果會打折扣。

附錄是 RALM 論文,歡迎大家交流和賜教。

[1].Real-time Attention Based Look-alike Model for Recommender System:https://arxiv.org/abs/1906.05022

本文授權轉載自知乎,原文連結:

https://zhuanlan.zhihu.com/p/71951411

7 月 12 日 18:30-21:10,來自 Google 的技術專家將與你相約深圳 Google Cloud 技術之夜,近距離觸摸 AI 與雲原生的技術未來,【掃描下方二維碼】或【點擊閱讀原文】即可免費報名參加!  

相關焦點

  • 論文解讀|微信看一看實時Look-alike推薦算法
    作者丨gongyouliu編輯丨lily來源 | 授權轉載自大數據與人工智慧(ID:ai-big-data)微信看一看的精選文章推薦(見下面圖1)大家應該都用過,微信團隊在今年發表了一篇文章來專門介紹精選推薦的算法實現細節(Real-time
  • 深度學習在推薦領域的應用:Lookalike 算法
    像Facebook 這樣通過一群已有的用戶發現並擴展出其他用戶的推薦算法就叫Lookalike,當然英特並不清楚Facebook 的算法細節,而各個公司實現Lookalike 的方式也各有不同。這裡也包括騰訊在微信端的廣告推薦上的應用、Google 在YouTube上推薦感興趣視頻等。
  • 微信「看一看」多模型內容策略與召回
    在微信AI背後,技術究竟如何讓一切發生?今天我們將放送微信AI技術專題系列「微信看一看背後的技術架構詳解」的第二篇——《微信看一看內容召回》。看一看介紹相信對於不少人而言微信已經成為獲取資訊的主要場景。
  • 螞蟻金服核心技術:百億特徵實時推薦算法揭秘
    阿里妹導讀:本文來自螞蟻金服人工智慧部認知計算組的基礎算法團隊,文章提出一整套創新算法與架構,通過對TensorFlow底層的彈性改造,解決了在線學習的彈性特徵伸縮和穩定性問題
  • 怎麼給海量商品設計推薦系統?阿里蓋坤團隊提出深層樹結構檢索模型
    最近蓋坤團隊的一篇新論文《Learning Tree-based Model for Recommender Systems》也介紹了他們在推薦系統算法設計方面的新進展。雷鋒網 AI 科技評論把論文內容介紹如下。
  • 推薦系統rerank模型梳理&論文推薦
    作者:憶昔,阿里首猜推薦算法工程師,歡迎勾搭交流,email: yufei.fyf@alibaba-inc.com一個標準的工業推薦系統通常由三個階段依次組成:召回、排序和重排。一直以來,召回和排序得到了持續的關注和長足的發展。
  • 揭秘微信「看一看」 是如何為你推薦的
    在過去的幾年裡,質量控制作為微信看一看推薦的基石,我們在不斷的迭代升級中積累了一定的技術和經驗。本文主要跟大家分享一下總體框架的設計思路,以及如何通過平臺通用化來解決組合爆炸的問題。文章為了儘可能的給讀者描述一個完整質量控制體系的框架,這裡既有技術上,架構上考慮,也會有產品上,業務上的考慮。
  • 騰訊微信AI算法專家錢橋直播課:推薦系統搭建最難的三個挑戰
    這是一場完完全全的實戰,承接上期闕文暉老師的「推薦系統架構從0到1」,針對搭建推薦系統時面臨的挑戰,從數據視角、以多案例的形式在線給出有效可行的解決方案。這次實戰由90後清華學霸、微信AI算法專家錢橋開講!
  • 推薦系統解構
    由於移動網際網路時代用戶每時每刻都會產生海量信息,伴隨著大數據技術的快速發展,使得企業能夠迎合用戶的痛點,分析用戶喜好,進行商品推薦。推薦系統誕生的益處:從用戶角度,推薦系統可以緩解信息過載帶來的時間成本;從企業角度,可以幫助企業進行精準營銷,解決長尾營銷,最大化收益。因此推薦系統的好壞對於網際網路企業來說至關重要。
  • 揭秘:騰訊阿里京東推薦系統架構如何設計?
    在推薦系統的典型架構中主要分為三個方面:召回、排序、生成推薦列表。大致的步驟為:首先從客戶提供的數百億內容中選出數千召回的內容,然後進行機器學習推薦模型排序,最後再基於場景進行去重、多樣性控制、加權,生成最終的推薦列表。談到推薦系統的搭建時,程曉澄認為主要包括線上請求、線下數據流閉環、數據分析、算法實驗等幾個方面。
  • Bandit算法與推薦系統
    那麼,有算法能夠很好地對付這些問題嗎?當然有!那就是Bandit算法。Bandit算法來源於歷史悠久的賭博學,它要解決的問題是這樣的[1]:一個賭徒,要去搖老虎機,走進賭場一看,一排老虎機,外表一模一樣,但是每個老虎機吐錢的概率可不一樣,他不知道每個老虎機吐錢的概率分布是什麼,那麼每次該選擇哪個老虎機可以做到最大化收益呢?
  • 推薦系統產品與算法概述
    目前深度學習算法、強化學習算法、遷移學習算法也在推薦系統中得到大規模採用。 基於模型的推薦算法基於用戶歷史行為數據、標的物metadata、用戶畫像數據等構建一個機器學習模型,利用數據訓練模型,求解模型參數。最終利用該模型來預測用戶對未知標的物的偏好。下面圖12就是基於模型的推薦系統模型訓練與預測的流程。
  • 微信的機器學習與人工智慧應用實踐
    這是 lookalike 人群定向系統的大致流程,我們從種子包裡過濾出我們自己系統裡面的重合用戶也就是這裡的目標用戶,同時從全量用戶的其他用戶中採樣出一些用戶作為對比用戶,再從用戶畫像系統裡提取出用戶特徵,這樣我們有了一個
  • 多樣性算法在58部落的實踐和思考
    然而,推薦結果的質量是通過多個維度來衡量的,越來越多研究表明,僅依賴準確度的推薦已經不能對用戶的體驗和滿意度有所提升,反而容易促進信息繭房的產生。於是,如何在準確性和多樣性之間進行權衡和協同優化,從而提高業務的整體數據指標成為了現在推薦系統的又一個優化方向。
  • Lookalike算法教你深度學習挖掘高相似度人群
    雖然目前廣告系統都提供了豐富定向接口:人口學、LBS/地域、興趣,行為,再營銷等等,但是依然很難滿足很多廣告主的個性化需求。如果要為每個廣告主定製化標籤,不僅周期長、成本高,而且很難通用。Lookalike會對種子人群各個維度的特徵(人口基礎屬性、社交屬性、行為屬性等)進行全方位分析。 高潛力用戶難尋、精準與規模之間難取平衡點是廣告主所面臨的兩個主要難題,核心仍在於對大規模潛在用戶的有效觸及。
  • 超越Google 快手落地業界首個萬億參數推薦精排模型
    精準的推薦系統模型是很多網際網路產品的核心競爭力 個性化推薦系統旨在根據用戶的行為數據提供「定製化」的產品體驗。國民級短視頻App快手 每天為數億用戶推薦百億的視頻 遇到的挑戰之一是推薦系統模型如何精準地描述與捕捉用戶的興趣。如今業內採用的解決方案通常為結合大量數據集和擬合參數來訓練深度學習模型 如此一來讓模型更加逼近現實情況。
  • 資源 | 主要推薦系統算法總結及Youtube深度學習推薦算法實例概括
    為使其簡單化,Statsbot 團隊為現有的主要推薦系統算法準備了一份概述。協同過濾協同過濾(CF)及其變式是最常用的推薦算法之一。即使是數據科學的初學者,也能憑之建立起自己的個性化電影推薦系統,例如,一個簡歷項目。
  • 扒一扒頭條系的推薦系統 | 整理
    推薦系統的技術架構模型的訓練上,頭條系大部分推薦產品採用實時訓練。實時訓練省資源並且反饋快,這對信息流產品非常重要。用戶需要行為信息可以被模型快速捕捉並反饋至下一刷的推薦效果。線上目前基於storm集群實時處理樣本數據,包括點擊、展現、收藏、分享等動作類型。模型參數伺服器是內部開發的一套高性能的系統,目前頭條的推薦算法模型在世界範圍內也是比較大的,包含幾百億原始特徵和數十億向量特徵。
  • 從模型到部署,FPGA該怎樣加速廣告推薦算法
    早上起床打開音樂 APP,會有今日歌單為你推薦一些歌曲。地鐵上閒來無事,刷一刷抖音等短視頻,讓枯燥的時光變得有趣。睡前打開購物 APP,看一看今天是不是有新品上架。不知不覺大家已經習慣了這些 APP,不知道大家有沒有留意到為什麼這些 APP 這麼懂你,知道你喜歡聽什麼音樂,喜歡看什麼類型的短視頻,喜歡什麼樣的商品?
  • 高維多目標進化算法和推薦系統的多樣性維持:行列式點過程的跨界應用
    Chen, "ANew Many-Objective Evolutionary Algorithm Based on Determinantal Point Processes," in IEEE Transactions on Evolutionary Computation 高維多目標優化(many-objective optimization)一個很難但是也不是沒有解決方案的問題