如何優化大規模推薦?下一代算法技術JTM來了

阿里妹導讀:搜索,推薦和廣告是互聯網內容提供商進行價值創造的核心業務,在阿里巴巴的電子商務交易平臺上,搜索,推薦和廣告業務一樣具備舉足輕重的意義和價值。如今,阿里推薦技術又雙叒優化了,新的推薦技術,新的體驗,一塊兒來看。

一. 背景

搜索、推薦和廣告看似業務形態不一樣,其實技術組成倒是很是相通的。從推薦的視角看,搜索能夠認爲是一種帶query相關性約束的推薦,而廣告則是疊加了廣告主營銷意願(價格)約束的推薦,因此推薦技術的創新對推進搜索、推薦和廣告業務技術的總體發展具備基礎性的做用。git

從技術演進的角度,推薦算法近年來也在不斷地更新換代。從限定在一個有限的歷史興趣範疇內推薦的第一代基於統計的啓發式規則方法(表明算法Item-based Collaborative Filtering, Item-CF)到第二代基於內積模型的向量檢索方法,推薦技術打開了候選子集檢索範圍的天花板。然而,向量檢索方法限定了內積模型這種用戶-商品偏好度量方式,沒法容納更加先進的打分模型(例如帶有Attention結構的深度網絡)。github

爲了在全庫檢索和效率約束的基礎上進一步打開推薦技術中模型能力的天花板,此前阿里媽媽精準定向廣告業務團隊自主提出了新一代任意深度學習+樹型全庫檢索推薦算法(Tree-based Deep Model,TDM),在大規模推薦問題上取得了顯著的效果提高。最近,該團隊針對大規模推薦問題的研究取得了最新的成果,介紹瞭如何經過數據驅動的方式,實現模型、索引、檢索算法的聯合優化。基於這一最新研究成果整理的論文,已經被NeurIPS 2019會議接收。算法

二. 現有體系存在的問題

以下圖所示,在大規模任務中,搜索,推薦和廣告的系統一般由模型,索引和檢索算法三大組件組成。模型計算單個用戶-商品的偏好幾率,索引將全部商品有序地組織在一塊兒,檢索算法根據模型的輸出在索引中召回最終的推薦結果。三者共同決定了召回質量且存在內在聯繫。網絡

然而,以推薦爲例,現有的推薦體系對模型索引和檢索的相互聯繫每每沒有作充分的考量。從聯合調優這一視角出發,對現有的幾代推薦體系的表明算法存在問題分析以下:架構

1.在Item-CF中,倒排索引根據Item之間某種自定義的類似度量創建,檢索過程則是根據用戶歷史行爲在倒排索引中查詢候選集後排序截斷,模型在排序過程當中對候選集中的Item根據某種自定義的規則進行打分。在系統中,模型和檢索被規則固化,沒有學習調優。框架

2.在向量檢索的模式中,系統會分別爲用戶和商品學習一個向量表達,其內積做爲用戶對商品的偏好程度的預測。檢索等價於用戶向量在商品向量集合中的kNN最近鄰檢索,在大規模問題中,能夠採用近似的最近鄰索引結構來加速檢索。在創建向量檢索推薦系統的過程當中,模型訓練的目標是準確的預測單個用戶-商品的偏好幾率,而kNN檢索索引創建的目標則最小化近似偏差,兩者的優化方向並不一致。同時,內積形式的偏好預測表達能力有限,沒法容納更加先進的打分模型。機器學習

3.在TDM中,咱們經過交替迭代優化模型和樹結構再加之無參數的逐層beam search檢索過程進行了模型、索引和檢索聯合優化上的實踐和創新。然而在TDM中,模型的優化和樹結構索引的學習兩者的優化目標也不徹底一致,這可能致使兩者的優化相互牽制而致使最終總體效果次優。特別是對於樹結構索引,模型訓練樣本的構造和檢索路徑的選擇與樹結構具備更加緊密的聯繫,所以其質量好壞尤其重要。函數

綜上分析,本文針對當前大規模推薦方法中存在的問題,提出了一種統一目標下的模型、索引、檢索聯合優化的算法JTM(Joint Optimization of Tree-based Index and Deep Model),打破系統各模塊獨立優化帶來的相互掣肘,使得總體推薦效能達到最優。性能

三. 端到端聯合學習的深度樹匹配推薦技術

JTM繼承了TDM樹結構索引+任意深度用戶-商品偏好打分模型的系統框架,經過聯合優化和層次化特徵建模取得了大幅超越TDM的推薦精度。爲了更好地理解JTM,咱們首先簡單瞭解一下TDM的原理。學習

3.1 深度樹推薦模型TDM

推薦系統的任務是從候選集(例如,商品庫)中選出用戶當前偏好的一個子集。當候選集的規模很大時,如何快速有效地從全庫中作推薦是一個具備挑戰性的問題。TDM創造性地採用樹結構做爲索引結構並進一步地令用戶對樹上節點的偏好知足下面的近似最大堆性質:

其中 p(l)(n|u) 是用戶 u 對節點 n 偏好幾率的真值,α(l)是第 l 層內偏好幾率分佈的歸一化項。這樣的建模保證了第 l 層節點中偏好幾率最大的 k個節點必定包含在第 l−1 層的top-k節點的子節點中。基於這一建模,TDM將推薦問題轉換爲樹結構中自上而下的層次化的檢索問題。下圖給出了TDM候選子集的生成過程。

首先,候選集中的每一個商品都被分配到樹的一個不一樣葉子節點上,如圖(b)所示。樹上的非葉子節點能夠看作是它的子節點集合的一個抽象。圖(a)給出了用戶對節點的偏好幾率的計算過程,用戶信息和待打分的節點首先被向量化爲深度打分網絡(例如,全鏈接網絡,attention網絡等等)的輸入,網絡的輸出做爲用戶對該節點的偏好幾率。在檢索top-k的候選子集即top-k葉子節點的過程當中,咱們採用自頂向下的逐層beam search方法。在第l層中,咱們只對第l−1層被選中的k個節點的子節點進行打分和排序來選擇第l層的k個候選。圖(b)給出了檢索過程的示意。

經過採用樹結構做爲索引,對一個用戶的偏好子集進行top1檢索的時間複雜度爲O(log(N)),其中 N 爲所有候選集的大小。這一複雜度也與用戶偏好打分模型的結構無關。同時,近似最大堆的假設將模型學習的目標轉化爲用戶-節點偏好分佈的學習,這使得TDM可以打破最近鄰檢索模式帶來的內積形式的用戶偏好打分的限制,賦能任意複雜打分模型,從而極大的提高了推薦的準確率。

3.2 JTM中的聯合優化框架

從檢索過程當中能夠看到,TDM的推薦準確率由用戶偏好打分模型 M 和樹索引結構 T 共同決定,且兩者是相互耦合的關係。具體地,給定 n 對正樣本 ,即用戶 u(i)對商品c(i)感興趣,樹結構 T 決定了模型 M 須要選擇哪些非葉子節點來對用戶 u(i)返回商品c(i) 。在統一目標下聯合優化 M 和 T 可以避免兩者優化方向的衝突形成的總體結果次優。爲此,在JTM中,咱們在一個共同的損失函數下聯合優化 M 和 T 。咱們首先構造聯合優化的目標函數。

記 p(π(c)|u;π)爲用戶u對葉子節點 π(c) 的偏好幾率,其中 π(⋅) 是把候選集中的商品投射到樹的葉子節點上的投影函數。π(c) 決定了候選集中的商品在樹結構上的索引順序。若是 (u,c) 是一個正樣本,咱們有 p(π(c)|u;π)=1。同時在近似最大堆的假設下,對 π(c) 的全部祖先節點,其偏好幾率也爲1,即。其中 bj(⋅) 是把一個節點投影到其在第 j 層的祖先節點的投影函數,lmax 爲樹 T 的層數。記 爲模型 M 返回的用戶 u 對節點 π(c) 的偏好幾率的估計值,其中 θ 爲模型的參數。給定 n 對正樣本,咱們但願聯合優化 π 和 θ 來擬合上述的用戶對樹上節點的偏好分佈。爲此,咱們但願 π 和 θ 最小化以下的全局經驗損失函數:

在求解中,因爲優化 π 是一個組合優化問題,很難和 θ 用基於梯度的優化算法同時優化。所以,咱們提出交替優化 θ 和 π 的聯合優化框架,以下圖所示。優化 θ 和 π 的目標一致性促進了整個算法的收斂。事實上,若是模型學習和樹學習可以同時使得損失函數降低,那麼整個算法必定會收斂,由於 {L(θt,πt)} 是下界爲0的單調降低序列。

在模型訓練中,minθL(θ,π) 是爲了求解獲得每層的用戶-節點偏好打分模型。得益於樹結構和近似最大堆的性質,咱們只須要在模型訓練中擬合訓練集中的用戶-節點偏好分佈,這使得咱們可使用任意複雜的神經網絡模型,同時 minθL(θ,π) 能夠用流行的算法例如SGD、Adam求解。採樣策略如Noise-contrastive estimation (NCE)能夠用來加速計算中的歸一化項。

樹結構學習是在給定模型參數的狀況下求解 maxπ−L(θ,π) ,這是一個組合優化問題。事實上,給定樹的形狀時(爲了便於表達,咱們假定樹的形狀是完整二叉樹。咱們提出的優化算法能夠方便地推廣到多叉樹的狀況),maxπ−L(θ,π) 等價於尋找候選集和全部葉子節點之間的一個最優匹配,這進一步等價於一個帶權二部圖的最大匹配。分析過程以下:

若第k個商品ck被分配到第m個葉子節點 nm 上,即 π(ck)=nm,咱們能夠計算以下的權重:

其中

爲目標商品爲 ck 的訓練樣本集合。把樹的葉子節點和候選集做爲頂點,葉子節點和候選集之間的全鏈接做爲邊,把 Lck,nm 做爲 ck 和 nm 之間邊的權重,咱們能夠構造一個帶權二部圖V ,如2.1節的流程圖(b)所示。在這種狀況下,每一個可能的 π(⋅) 都是 V 的一個匹配,同時咱們有

C 爲全部ck的集合。所以,maxπ−L(θ,π) 等價於求解 V 的最大權匹配。

對於大規模的候選集,傳統的求解最大權匹配的算法例如匈牙利算法因爲複雜度過高而難以使用。即便是最簡單的貪婪算法,計算和存儲全部的權重的成本也是沒法接受的。爲解決這一問題,咱們利用樹結構提出了一種分段式樹學習算法。相比於直接將全部商品分配到葉子節點中,咱們在樹中自上而下地一步步實現商品到節點的分配。記:

不斷重複這一過程,直至每一個商品被分配到葉子節點上爲止。整個算法的流程以下圖所示:

3.3 層次化用戶興趣表達

本質上,JTM(和TDM)是對推薦系統中索引結構和檢索方式的一種深度改造。樹結構的每一層能夠看作是商品不一樣粒度上的聚合表示,JTM經過樹上自頂向下的逐層相關性檢索,從粗到細地找到用戶信息匹配的最佳候選子集,這也與人類視角選擇偏好商品的過程相契合。經過聯合考慮模型和索引結構,JTM和TDM將一個複雜的大規模推薦任務分解爲若干個級聯的子檢索任務,在上層的檢索任務中,只須要在一個更粗的粒度上作圈選,且每層圈選的候選集遠小於候選集全集,其訓練難度將大大縮小。能夠預見,當子檢索任務的解足夠理想時,其級聯後的檢索結果將超越直接在候選集中圈選候選集的效果。

事實上,樹結構自己提供了候選集的一個層次結構,由於每一個非葉子節點都是其全部子節點的一個學習到的抽象,這啓發咱們在訓練模型 M 作每層的子檢索任務時對用戶行爲特徵作最利於模型學習的精準層次建模。

具體而言,用戶歷史行爲的每一個商品都是一個ID類離散特徵,在模型訓練中,每一個商品和樹上的節點都被嵌入到一個連續特徵空間並與模型同時優化。從每一個非葉子節點是其子節點的抽象這一點出發,給定用戶行爲序列c={c1,c2,⋯,cm} ,咱們提出用 cl={bl(π(c1)),bl(π(c2)),⋯,bl(π(cm))}聯合目標節點以及用戶的其餘特徵來生成模型 M 在第 l 層檢索的輸入。經過這種方式,用戶行爲過的商品在第 l 層的祖先節點被用做了用戶抽象化的行爲序列。這主要帶來了兩方面的好處:

1.層間的獨立性。

傳統的在每層檢索中共用用戶行爲序列的embedding會在訓練 M 做爲每層的用戶偏好打分模型時引入噪聲,這是由於 M 在每層的訓練目標是不一樣的。一個直接的解決辦法是在每層賦予每一個商品一個單獨的embedding來聯合訓練。可是這會極大的增長參數量。咱們提出的層次化用戶行爲特徵使用對應層節點的embedding生成 M 的輸入,從而在沒有增長參數總量的同時實現了層間embedding學習的獨立。

2.用戶的精準建模。

M 在檢索過程當中逐層選擇最終候選子集的從粗到細的抽象。咱們提出的層次化用戶行爲特徵表達抓住了這一檢索過程的本質,用當前層的節點對用戶行爲進行了適當的抽象,從而增長了用戶偏好的可預測性,減小了過粗或者過細的特徵表達帶來的混淆。

四. 實驗效果

4.1 實驗設置

咱們使用了Amazon Books和UserBehavior兩個大型公開數據集來進行方法的效果評估。Amazon Books是用戶在Amazon上的行爲記錄,咱們選擇了其中最大的Books這一子類目。UserBehavior爲阿里開源的淘寶用戶行爲數據集。數據集的規模以下:

在實驗中,咱們比較了下面幾種方法:

  • Item-CF: 基本的協同濾波算法,被普遍應用於個性化推薦任務中。
  • YouTube product-DNN: 應用於Youtube視頻推薦的向量內積檢索模型。
  • HSM: 層次Softmax模型,被普遍應用於NLP領域,做爲歸一化機率計算的一種替代.
  • TDM: 咱們此前的工做深度樹匹配推薦技術。
  • DNN: TDM模型去掉樹結構後的版本。該方法不使用索引結構,在預測時會對全量候選集進行打分,再挑選topk。因爲對全量候選集打分的計算複雜度很是高,所以沒法實際應用,但能夠做爲強baseline來進行比較。
  • JTM: 本文中提出的聯合優化方法。同時,咱們對比了JTM的兩個變種版本,分別爲JTM-J和JTM-H。其中,JTM-J爲使用了樹結構聯合優化但沒有采用層次化用戶興趣表達的版本;JTM-H相反,其使用了層次化用戶興趣表達,但會使用固定的初始樹結構而不進行聯合學習。

在全部神經網絡模型中,均使用相同的三層全鏈接網絡做爲打分模型。評測方面,咱們使用Precision, Recall和F-measure做爲性能評測指標,定義以下:

Pu 是對用戶 u召回的商品集合,Gu 是用戶 u感興趣集合的真集。

4.2 比較結果

下表給出了各個方法在兩個數據集上的比較結果。相比於效果最佳的baseline方法DNN(計算量過高沒法應用於實際),JTM在Amazon Books和UserBehavior上的recall分別取得了45.3%和8.1%的相對提高。

DNN的性能要優於YouTube product-DNN,這反應了內積模型的侷限性,只經過內積的形式構造用戶對商品的偏好幾率沒法充分擬合用戶-商品偏好分佈。此外,TDM的性能不如DNN,這說明了樹結構優化的必要性。

欠佳的樹結構可能致使模型學習收斂到次優的結果。特別是對於Amazon Books這種稀疏的數據,樹上節點的embedding沒法充分學習而不具備顯著的區分性致使TDM效果不顯著。與之對應的是,經過應用本文提出的層次化用戶興趣表徵方法,JTM-J方案在必定程度上解決了粗粒度上的數據稀疏性問題,因此對比TDM在Amazon Books數據集上取得了十分顯著的提高,經過聯合優化,JTM在全部數據集和評測指標上顯著優於DNN全量打分的結果,且檢索複雜度也要低得多。

這些結果說明,經過統一目標下聯合優化的方式,JTM可以學習到更優的樹結構和興趣模型。從JTM、JTM-J、JTM-H三者的相互對比來看,能夠發現不論是同一目標下的聯合學習,仍是層次化的用戶興趣表示,都能提高最終的推薦精準度。另外,在JTM的聯合框架下,樹結構學習和層次化興趣表示疊加,起到了1+1>2的效果。

4.3 樹結構學習收斂性

在基於樹的推薦方法中,樹結構直接影響了訓練時的樣本生成和預測時的檢索路徑。一個好的樹結構,不論是對模型訓練仍是興趣檢索,都能發揮重要的正面做用。下圖中,咱們對比了JTM提出的基於統一目標的樹聯合學習方案,和TDM工做中使用到的基於商品embedding聚類的方案。其中,前三個圖爲Amazon Books數據集上的效果,後三個圖爲UserBehavior數據集上的效果

從實驗結果中能夠發現,本文提出的JTM方案,在樹結構學習的逐步迭代過程當中,可以穩定地收斂到一個更優的樹結構。與之對比的是,基於聚類的方案,在迭代最後都會出現相似於過擬合的狀況。

五. 總結

JTM給出了一種統一目標下聯合優化深度樹匹配模型的打分模型和樹索引結構的算法框架。在樹結構優化中,咱們基於樹型結構的特色提出了一種可用於大規模任務的分層重建算法。在模型優化和打分中,基於樹上檢索逐層細化候選集合的本質,咱們相應的提出了對用戶行爲特徵層次化的建模方法。

JTM繼承了TDM打破內積模型的約束,可容納任意深度打分模型的優點。此外,經過聯合調優,JTM帶來了顯著的效果提高。JTM完全解決了歷史推薦系統架構的非最優聯合問題,創建了徹底數據驅動下端到端索引,模型和檢索聯合最優化的系統組成。進一步的,JTM的提出,是對以user-tag-doc兩段式檢索爲基礎的搜索,推薦和廣告現有架構的一次重大技術革新。

以前的TDM解決方案已經基於阿里巴巴自研的深度學習平臺X-DeepLearning在 Github 開源,點擊得到Github下載連接,瞭解更多詳情。

阿里媽媽信息流廣告算法團隊常年誠招大數據處理和機器學習算法方向的能人志士!有意者可發簡歷聯繫:zhuhan.zh@alibaba-inc.com。


本文做者:阿里媽媽技術團隊

閱讀原文

本文來自雲棲社區合做夥伴「阿里技術」,如需轉載請聯繫原做者。

相關文章
相關標籤/搜索