如何优化大规模推荐?下一代算法技术JTM来了
阿里妹導讀:搜索,推薦和廣告是互聯(lián)網(wǎng)內容提供商進行價值創(chuàng)造的核心業(yè)務,在阿里巴巴的電子商務交易平臺上,搜索,推薦和廣告業(yè)務同樣具有舉足輕重的意義和價值。現(xiàn)在,阿里推薦技術又雙叒優(yōu)化了,新的推薦技術,新的體驗,一起來看。
一. 背景
搜索、推薦和廣告看似業(yè)務形態(tài)不同,其實技術組成卻是非常相通的。從推薦的視角看,搜索可以認為是一種帶query相關性約束的推薦,而廣告則是疊加了廣告主營銷意愿(價格)約束的推薦,所以推薦技術的創(chuàng)新對推動搜索、推薦和廣告業(yè)務技術的整體發(fā)展具有基礎性的作用。
從技術演進的角度,推薦算法近年來也在不斷地更新?lián)Q代。從限定在一個有限的歷史興趣范疇內推薦的第一代基于統(tǒng)計的啟發(fā)式規(guī)則方法(代表算法Item-based Collaborative Filtering, Item-CF)到第二代基于內積模型的向量檢索方法,推薦技術打開了候選子集檢索范圍的天花板。然而,向量檢索方法限定了內積模型這種用戶-商品偏好度量方式,無法容納更加先進的打分模型(例如帶有Attention結構的深度網(wǎng)絡)。
為了在全庫檢索和效率約束的基礎上進一步打開推薦技術中模型能力的天花板,此前阿里媽媽精準定向廣告業(yè)務團隊自主提出了新一代任意深度學習+樹型全庫檢索推薦算法(Tree-based Deep Model,TDM),在大規(guī)模推薦問題上取得了顯著的效果提升。最近,該團隊針對大規(guī)模推薦問題的研究取得了最新的成果,介紹了如何通過數(shù)據(jù)驅動的方式,實現(xiàn)模型、索引、檢索算法的聯(lián)合優(yōu)化。基于這一最新研究成果整理的論文,已經(jīng)被NeurIPS 2019會議接收。
二. 現(xiàn)有體系存在的問題
如下圖所示,在大規(guī)模任務中,搜索,推薦和廣告的系統(tǒng)通常由模型,索引和檢索算法三大組件組成。模型計算單個用戶-商品的偏好概率,索引將所有商品有序地組織在一起,檢索算法根據(jù)模型的輸出在索引中召回最終的推薦結果。三者共同決定了召回質量且存在內在聯(lián)系。
然而,以推薦為例,現(xiàn)有的推薦體系對模型索引和檢索的相互聯(lián)系往往沒有做充分的考量。從聯(lián)合調優(yōu)這一視角出發(fā),對現(xiàn)有的幾代推薦體系的代表算法存在問題分析如下:
?
1.在Item-CF中,倒排索引根據(jù)Item之間某種自定義的相似度量建立,檢索過程則是根據(jù)用戶歷史行為在倒排索引中查詢候選集后排序截斷,模型在排序過程中對候選集中的Item根據(jù)某種自定義的規(guī)則進行打分。在系統(tǒng)中,模型和檢索被規(guī)則固化,沒有學習調優(yōu)。
2.在向量檢索的模式中,系統(tǒng)會分別為用戶和商品學習一個向量表達,其內積作為用戶對商品的偏好程度的預測。檢索等價于用戶向量在商品向量集合中的kNN最近鄰檢索,在大規(guī)模問題中,可以采用近似的最近鄰索引結構來加速檢索。在建立向量檢索推薦系統(tǒng)的過程中,模型訓練的目標是準確的預測單個用戶-商品的偏好概率,而kNN檢索索引建立的目標則最小化近似誤差,二者的優(yōu)化方向并不一致。同時,內積形式的偏好預測表達能力有限,無法容納更加先進的打分模型。
3.在TDM中,我們通過交替迭代優(yōu)化模型和樹結構再加之無參數(shù)的逐層beam search檢索過程進行了模型、索引和檢索聯(lián)合優(yōu)化上的實踐和創(chuàng)新。然而在TDM中,模型的優(yōu)化和樹結構索引的學習二者的優(yōu)化目標也不完全一致,這可能導致二者的優(yōu)化相互牽制而導致最終整體效果次優(yōu)。特別是對于樹結構索引,模型訓練樣本的構造和檢索路徑的選擇與樹結構具有更加緊密的聯(lián)系,因此其質量好壞尤為重要。
綜上分析,本文針對當前大規(guī)模推薦方法中存在的問題,提出了一種統(tǒng)一目標下的模型、索引、檢索聯(lián)合優(yōu)化的算法JTM(Joint Optimization of Tree-based Index and Deep Model),打破系統(tǒng)各模塊獨立優(yōu)化帶來的相互掣肘,使得整體推薦效能達到最優(yōu)。
三. 端到端聯(lián)合學習的深度樹匹配推薦技術
JTM繼承了TDM樹結構索引+任意深度用戶-商品偏好打分模型的系統(tǒng)框架,通過聯(lián)合優(yōu)化和層次化特征建模取得了大幅超越TDM的推薦精度。為了更好地理解JTM,我們首先簡單了解一下TDM的原理。
3.1 深度樹推薦模型TDM
推薦系統(tǒng)的任務是從候選集(例如,商品庫)中選出用戶當前偏好的一個子集。當候選集的規(guī)模很大時,如何快速有效地從全庫中做推薦是一個具有挑戰(zhàn)性的問題。TDM創(chuàng)造性地采用樹結構作為索引結構并進一步地令用戶對樹上節(jié)點的偏好滿足下面的近似最大堆性質:
其中 p(l)(n|u) 是用戶 u 對節(jié)點 n 偏好概率的真值,α(l)是第 l 層內偏好概率分布的歸一化項。這樣的建模保證了第 l 層節(jié)點中偏好概率最大的 k個節(jié)點一定包含在第 l?1 層的top-k節(jié)點的子節(jié)點中。基于這一建模,TDM將推薦問題轉換為樹結構中自上而下的層次化的檢索問題。下圖給出了TDM候選子集的生成過程。
首先,候選集中的每個商品都被分配到樹的一個不同葉子節(jié)點上,如圖(b)所示。樹上的非葉子節(jié)點可以看做是它的子節(jié)點集合的一個抽象。圖(a)給出了用戶對節(jié)點的偏好概率的計算過程,用戶信息和待打分的節(jié)點首先被向量化為深度打分網(wǎng)絡(例如,全連接網(wǎng)絡,attention網(wǎng)絡等等)的輸入,網(wǎng)絡的輸出作為用戶對該節(jié)點的偏好概率。在檢索top-k的候選子集即top-k葉子節(jié)點的過程中,我們采用自頂向下的逐層beam search方法。在第l層中,我們只對第l?1層被選中的k個節(jié)點的子節(jié)點進行打分和排序來選擇第l層的k個候選。圖(b)給出了檢索過程的示意。
通過采用樹結構作為索引,對一個用戶的偏好子集進行top1檢索的時間復雜度為O(log(N)),其中 N 為全部候選集的大小。這一復雜度也與用戶偏好打分模型的結構無關。同時,近似最大堆的假設將模型學習的目標轉化為用戶-節(jié)點偏好分布的學習,這使得TDM能夠打破最近鄰檢索模式帶來的內積形式的用戶偏好打分的限制,賦能任意復雜打分模型,從而極大的提升了推薦的準確率。
3.2 JTM中的聯(lián)合優(yōu)化框架
從檢索過程中可以看到,TDM的推薦準確率由用戶偏好打分模型 M 和樹索引結構 T 共同決定,且二者是相互耦合的關系。具體地,給定 n 對正樣本 ,即用戶 u(i)對商品c(i)感興趣,樹結構 T 決定了模型 M 需要選擇哪些非葉子節(jié)點來對用戶 u(i)返回商品c(i) 。在統(tǒng)一目標下聯(lián)合優(yōu)化 M 和 T 能夠避免二者優(yōu)化方向的沖突造成的整體結果次優(yōu)。為此,在JTM中,我們在一個共同的損失函數(shù)下聯(lián)合優(yōu)化 M 和 T 。我們首先構造聯(lián)合優(yōu)化的目標函數(shù)。
記 p(π(c)|u;π)為用戶u對葉子節(jié)點 π(c) 的偏好概率,其中 π(?) 是把候選集中的商品投射到樹的葉子節(jié)點上的投影函數(shù)。π(c) 決定了候選集中的商品在樹結構上的索引順序。如果 (u,c) 是一個正樣本,我們有 p(π(c)|u;π)=1。同時在近似最大堆的假設下,對 π(c) 的所有祖先節(jié)點,其偏好概率也為1,即。其中 bj(?) 是把一個節(jié)點投影到其在第 j 層的祖先節(jié)點的投影函數(shù),lmax 為樹 T 的層數(shù)。記 為模型 M 返回的用戶 u 對節(jié)點 π(c) 的偏好概率的估計值,其中 θ 為模型的參數(shù)。給定 n 對正樣本,我們希望聯(lián)合優(yōu)化 π 和 θ 來擬合上述的用戶對樹上節(jié)點的偏好分布。為此,我們希望 π 和 θ 最小化如下的全局經(jīng)驗損失函數(shù):
在求解中,由于優(yōu)化 π 是一個組合優(yōu)化問題,很難和 θ 用基于梯度的優(yōu)化算法同時優(yōu)化。因此,我們提出交替優(yōu)化 θ 和 π 的聯(lián)合優(yōu)化框架,如下圖所示。優(yōu)化 θ 和 π 的目標一致性促進了整個算法的收斂。事實上,如果模型學習和樹學習能夠同時使得損失函數(shù)下降,那么整個算法一定會收斂,因為 {L(θt,πt)} 是下界為0的單調下降序列。
在模型訓練中,minθL(θ,π) 是為了求解得到每層的用戶-節(jié)點偏好打分模型。得益于樹結構和近似最大堆的性質,我們只需要在模型訓練中擬合訓練集中的用戶-節(jié)點偏好分布,這使得我們可以使用任意復雜的神經(jīng)網(wǎng)絡模型,同時 minθL(θ,π) 可以用流行的算法例如SGD、Adam求解。采樣策略如Noise-contrastive estimation (NCE)可以用來加速計算中的歸一化項。
樹結構學習是在給定模型參數(shù)的情況下求解 maxπ?L(θ,π) ,這是一個組合優(yōu)化問題。事實上,給定樹的形狀時(為了便于表達,我們假定樹的形狀是完整二叉樹。我們提出的優(yōu)化算法可以方便地推廣到多叉樹的情況),maxπ?L(θ,π) 等價于尋找候選集和所有葉子節(jié)點之間的一個最優(yōu)匹配,這進一步等價于一個帶權二部圖的最大匹配。分析過程如下:
若第k個商品ck被分配到第m個葉子節(jié)點 nm 上,即 π(ck)=nm,我們可以計算如下的權重:
為目標商品為 ck 的訓練樣本集合。把樹的葉子節(jié)點和候選集作為頂點,葉子節(jié)點和候選集之間的全連接作為邊,把 Lck,nm 作為 ck 和 nm 之間邊的權重,我們可以構造一個帶權二部圖V ,如2.1節(jié)的流程圖(b)所示。在這種情況下,每個可能的 π(?) 都是 V 的一個匹配,同時我們有
?
C 為所有ck的集合。因此,maxπ?L(θ,π) 等價于求解 V 的最大權匹配。
對于大規(guī)模的候選集,傳統(tǒng)的求解最大權匹配的算法例如匈牙利算法由于復雜度太高而難以使用。即使是最簡單的貪婪算法,計算和存儲所有的權重的成本也是無法接受的。為解決這一問題,我們利用樹結構提出了一種分段式樹學習算法。相比于直接將所有商品分配到葉子節(jié)點中,我們在樹中自上而下地一步步實現(xiàn)商品到節(jié)點的分配。記:
?
為目標商品為 ck 的訓練樣本集合,s 和 e 分別為一個起始和終止層。我們的分段算法,首先通過找到一個最優(yōu)映射 π? 來最大化
,等價于將候選集分配到第d層的所有節(jié)點上。對于一個完整二叉樹來說,每個第d層的節(jié)點應該包含不超過 2lmax?d個商品。這也是一個最大權匹配問題,但由于每個商品可能的分配位置大大減少了,所以可以通過貪婪算法有效求解。然后,在保持每個商品在第 d 層的祖先節(jié)點不變的前提下,即保證?c∈C,bd(π(c))=bd(π?(c)) 的前提下,繼續(xù)將候選集在接下來的d層中進行分配,即優(yōu)化。不斷重復這一過程,直至每個商品被分配到葉子節(jié)點上為止。整個算法的流程如下圖所示:
3.3 層次化用戶興趣表達
本質上,JTM(和TDM)是對推薦系統(tǒng)中索引結構和檢索方式的一種深度改造。樹結構的每一層可以看做是商品不同粒度上的聚合表示,JTM通過樹上自頂向下的逐層相關性檢索,從粗到細地找到用戶信息匹配的最佳候選子集,這也與人類視角選擇偏好商品的過程相契合。通過聯(lián)合考慮模型和索引結構,JTM和TDM將一個復雜的大規(guī)模推薦任務分解為若干個級聯(lián)的子檢索任務,在上層的檢索任務中,只需要在一個更粗的粒度上做圈選,且每層圈選的候選集遠小于候選集全集,其訓練難度將大大縮小。可以預見,當子檢索任務的解足夠理想時,其級聯(lián)后的檢索結果將超越直接在候選集中圈選候選集的效果。
事實上,樹結構本身提供了候選集的一個層次結構,因為每個非葉子節(jié)點都是其所有子節(jié)點的一個學習到的抽象,這啟發(fā)我們在訓練模型 M 做每層的子檢索任務時對用戶行為特征做最利于模型學習的精準層次建模。
具體而言,用戶歷史行為的每個商品都是一個ID類離散特征,在模型訓練中,每個商品和樹上的節(jié)點都被嵌入到一個連續(xù)特征空間并與模型同時優(yōu)化。從每個非葉子節(jié)點是其子節(jié)點的抽象這一點出發(fā),給定用戶行為序列c={c1,c2,?,cm} ,我們提出用 cl={bl(π(c1)),bl(π(c2)),?,bl(π(cm))}聯(lián)合目標節(jié)點以及用戶的其他特征來生成模型 M 在第 l 層檢索的輸入。通過這種方式,用戶行為過的商品在第 l 層的祖先節(jié)點被用作了用戶抽象化的行為序列。這主要帶來了兩方面的好處:
1.層間的獨立性。
傳統(tǒng)的在每層檢索中共用用戶行為序列的embedding會在訓練 M 作為每層的用戶偏好打分模型時引入噪聲,這是因為 M 在每層的訓練目標是不同的。一個直接的解決辦法是在每層賦予每個商品一個單獨的embedding來聯(lián)合訓練。但是這會極大的增加參數(shù)量。我們提出的層次化用戶行為特征使用對應層節(jié)點的embedding生成 M 的輸入,從而在沒有增加參數(shù)總量的同時實現(xiàn)了層間embedding學習的獨立。
2.用戶的精準建模。
M 在檢索過程中逐層選擇最終候選子集的從粗到細的抽象。我們提出的層次化用戶行為特征表達抓住了這一檢索過程的本質,用當前層的節(jié)點對用戶行為進行了適當?shù)某橄?#xff0c;從而增加了用戶偏好的可預測性,減少了過粗或者過細的特征表達帶來的混淆。
四. 實驗效果
4.1 實驗設置
我們使用了Amazon Books和UserBehavior兩個大型公開數(shù)據(jù)集來進行方法的效果評估。Amazon Books是用戶在Amazon上的行為記錄,我們選擇了其中最大的Books這一子類目。UserBehavior為阿里開源的淘寶用戶行為數(shù)據(jù)集。數(shù)據(jù)集的規(guī)模如下:
在實驗中,我們比較了下面幾種方法:
- Item-CF: 基本的協(xié)同濾波算法,被廣泛應用于個性化推薦任務中。
- YouTube product-DNN: 應用于Youtube視頻推薦的向量內積檢索模型。
- HSM: 層次Softmax模型,被廣泛應用于NLP領域,作為歸一化概率計算的一種替代.
- TDM: 我們此前的工作深度樹匹配推薦技術。
- DNN: TDM模型去掉樹結構后的版本。該方法不使用索引結構,在預測時會對全量候選集進行打分,再挑選topk。由于對全量候選集打分的計算復雜度非常高,因此無法實際應用,但可以作為強baseline來進行比較。
- JTM: 本文中提出的聯(lián)合優(yōu)化方法。同時,我們對比了JTM的兩個變種版本,分別為JTM-J和JTM-H。其中,JTM-J為使用了樹結構聯(lián)合優(yōu)化但沒有采用層次化用戶興趣表達的版本;JTM-H相反,其使用了層次化用戶興趣表達,但會使用固定的初始樹結構而不進行聯(lián)合學習。
在所有神經(jīng)網(wǎng)絡模型中,均使用相同的三層全連接網(wǎng)絡作為打分模型。評測方面,我們使用Precision, Recall和F-measure作為性能評測指標,定義如下:
Pu 是對用戶 u召回的商品集合,Gu 是用戶 u感興趣集合的真集。
4.2 比較結果
下表給出了各個方法在兩個數(shù)據(jù)集上的比較結果。相比于效果最佳的baseline方法DNN(計算量太高無法應用于實際),JTM在Amazon Books和UserBehavior上的recall分別取得了45.3%和8.1%的相對提升。
DNN的性能要優(yōu)于YouTube product-DNN,這反應了內積模型的局限性,只通過內積的形式構造用戶對商品的偏好概率無法充分擬合用戶-商品偏好分布。此外,TDM的性能不如DNN,這說明了樹結構優(yōu)化的必要性。
欠佳的樹結構可能導致模型學習收斂到次優(yōu)的結果。特別是對于Amazon Books這種稀疏的數(shù)據(jù),樹上節(jié)點的embedding無法充分學習而不具有顯著的區(qū)分性導致TDM效果不顯著。與之對應的是,通過應用本文提出的層次化用戶興趣表征方法,JTM-J方案在一定程度上解決了粗粒度上的數(shù)據(jù)稀疏性問題,所以對比TDM在Amazon Books數(shù)據(jù)集上取得了十分顯著的提升,通過聯(lián)合優(yōu)化,JTM在所有數(shù)據(jù)集和評測指標上顯著優(yōu)于DNN全量打分的結果,且檢索復雜度也要低得多。
這些結果說明,通過統(tǒng)一目標下聯(lián)合優(yōu)化的方式,JTM能夠學習到更優(yōu)的樹結構和興趣模型。從JTM、JTM-J、JTM-H三者的相互對比來看,可以發(fā)現(xiàn)不管是同一目標下的聯(lián)合學習,還是層次化的用戶興趣表示,都能提升最終的推薦精準度。另外,在JTM的聯(lián)合框架下,樹結構學習和層次化興趣表示疊加,起到了1+1>2的效果。
4.3 樹結構學習收斂性
在基于樹的推薦方法中,樹結構直接影響了訓練時的樣本生成和預測時的檢索路徑。一個好的樹結構,不管是對模型訓練還是興趣檢索,都能發(fā)揮重要的正面作用。下圖中,我們對比了JTM提出的基于統(tǒng)一目標的樹聯(lián)合學習方案,和TDM工作中使用到的基于商品embedding聚類的方案。其中,前三個圖為Amazon Books數(shù)據(jù)集上的效果,后三個圖為UserBehavior數(shù)據(jù)集上的效果
從實驗結果中可以發(fā)現(xiàn),本文提出的JTM方案,在樹結構學習的逐步迭代過程中,能夠穩(wěn)定地收斂到一個更優(yōu)的樹結構。與之對比的是,基于聚類的方案,在迭代最后都會出現(xiàn)類似于過擬合的情況。
五. 總結
JTM給出了一種統(tǒng)一目標下聯(lián)合優(yōu)化深度樹匹配模型的打分模型和樹索引結構的算法框架。在樹結構優(yōu)化中,我們基于樹型結構的特點提出了一種可用于大規(guī)模任務的分層重建算法。在模型優(yōu)化和打分中,基于樹上檢索逐層細化候選集合的本質,我們相應的提出了對用戶行為特征層次化的建模方法。
JTM繼承了TDM打破內積模型的約束,可容納任意深度打分模型的優(yōu)勢。此外,通過聯(lián)合調優(yōu),JTM帶來了顯著的效果提升。JTM徹底解決了歷史推薦系統(tǒng)架構的非最優(yōu)聯(lián)合問題,建立了完全數(shù)據(jù)驅動下端到端索引,模型和檢索聯(lián)合最優(yōu)化的系統(tǒng)組成。進一步的,JTM的提出,是對以user-tag-doc兩段式檢索為基礎的搜索,推薦和廣告現(xiàn)有架構的一次重大技術革新。
原文鏈接
本文為云棲社區(qū)原創(chuàng)內容,未經(jīng)允許不得轉載。
總結
以上是生活随笔為你收集整理的如何优化大规模推荐?下一代算法技术JTM来了的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: K8S环境中NAS卷添加noresvpo
- 下一篇: 5分钟带你看懂 GCanvas渲染引擎的