阿里Tree-based Deep Match(TDM) 學習筆記

閱讀文獻:https://zhuanlan.zhihu.com/p/35030348html

參考文獻:https://www.leiphone.com/news/201803/nlG3d4sZnRvgAqg9.html算法

https://mp.weixin.qq.com/s/sw16_sUsyYuzpqqy39RsdQ網絡

 

阿里Tree-based Deep Match(TDM)框架

 

背景iphone


工業界的技術發展也經歷了幾代的演進,從最初的基於統計的啓發式規則方法,逐漸過渡到基於內積模型的向量檢索方法。如何在匹配階段的計算效率約束下引入更先進的複雜深度學習模型成爲了下一代匹配技術發展的重要方向。ide

 

I)第一代——基於統計的啓發式規則方法函數


經典表明就是Item-based Collaborative Filtering(如下簡稱Item-CF)。首先經過統計計算獲得Item to Item(I2I)的類似關係,其次啓發式地獲取用戶近期行爲做爲Trigger Item集合,用它們進行I2I擴展,最後以某種打分規則對擴展後的Item集合進行排序,截斷獲得TopK。學習


咱們能夠知道這種方法有效的控制了整體計算次數N,由於用戶的Trigger Item集合是有限的,類似關係圈定的候選集合也是有限的。測試


II)第二代——基於內積模型的向量檢索方法ui


以向量距離的方式衡量用戶和商品興趣度的方法,用戶和商品被表示成向量形式,並以此爲基礎創建基於向量聚類的索引結構進一步加速衡量效率,因而這個計算問題變成了在有限時間內是可解的(近似求解),具體實現也落到了向量引擎的範疇。結合公式(1),T表明簡單的向量內積計算時間,而N則經過創建向量索引結構從而控制在O(桶候選集規模)的較小範圍內。

 

公式(1)

 

因此內積式模型和向量引擎成爲了最近幾年匹配領域技術革新的最重要技術(圖像檢索問題最先就是採用的這種方法)。尤爲是去年Facebook的Faiss框架開源。


高階深度學習大部分都不可劃成內積形式,好比CTR預估裏用戶和商品特徵交叉很是有用,大部分不可用內積表示。


在具體實踐中,向量檢索算法要求User和Item可以映射到統一的向量空間。User輸入信息和Item輸入信息通常並不一樣質,如何保證映射到統一目標向量空間下的檢索精度對映射算法提出了嚴格的要求,換言之,統一的向量空間映射對運用向量檢索來解決推薦問題帶來了精度損失的風險。


III)下一代匹配和推薦技術

一種更通用的匹配和推薦算法框架,它容許容納任意先進模型而非限定內積形式,而且可以對全量候選集進行更好的匹配。


技術方案


機率連乘樹並不適用匹配問題:


第二代基於內積模型向量檢索的方案,限定模型結構以實現檢索效率的提高,所以要想進一步釋放模型能力就必須使得總體檢索結構的設計與模型結構的設計解耦(向量內積檢索與內積模型便是一種強耦合關聯)。面對一個複雜問題,人腦常有的一個思考方式是先從大的層面入手,肯定大方向後具體細化。咱們也從這個角度入手,思考是否能夠有一種從粗到細的檢索方式,逐步判斷並細化,最後給出最優推薦。基於這個思考,咱們把探索方向定位在了使用層次化樹結構增長檢索效率上。


一系列的問題要解決:一、樹結構是如何構建的;2,如何基於樹進行匹配建模;三、如何圍繞樹結構實現高效的興趣計算和檢索。


1)HS方法解決了給定上文進行節點機率快速計算的問題,即經過引入Hierarchical Structure避免了對全量候選集的逐一計算和歸一化,直接計算獲得節點機率。而任何貪心的檢索方法如BeamSearch,都沒法保證檢索獲得的TopK是全局最優的,即HS建模方式下每一層的最優連乘並不保證全局最優。


2)與此同時,HS方法在建樹時每每會考慮將某種具備類似關係(語義、詞頻等)的節點靠近組成兄弟。而HS方法在計算路徑機率時把每個節點的機率計算看做是二分類問題,用於判斷接下來選擇哪一個孩子節點繼續走下去。在單層節點上,匹配和推薦要求的是該層上的全局序判別問題,而HS方法解決的是同一父親下兩個孩子節點誰更優的問題。


在採用HS方法進行匹配和推薦的實踐中,包括YouTube團隊在他們的內積模式向量檢索作匹配的文章中提到了他們採用HS方法學習用戶和候選Video的偏好關係,可是效果並不理想。而咱們最早也在阿里媽媽廣告測試集上進行了HS方法的嘗試,效果也不如預期。


最大堆樹的提出和構建:


假定全量候選集中的每個商品都是一個葉子節點,當前用戶對全部葉子節點背後都存在一個真實的興趣度,用表示。咱們並不知道其具體值,只有根據機率採樣出來的樣本(用戶真實反饋)。所以咱們創新性的提出了興趣最大堆樹(Max-heap like Tree)的概念,其定義樹上節點的機率以下:

公式(2)

即用戶對第j層父親節點興趣的偏好幾率正比於用戶對第j+1層孩子節點興趣的偏好幾率最大值。


對於任意一個用戶有行爲的葉子節點採樣i,隱含了葉子層的序:。根據咱們的樹節點機率定義(最大堆性質),能夠向上遞歸推出每層節點機率的序。根據這個序咱們進行負樣本採樣,用深度學習模型基於這個採樣去學習,以逼近最大堆樹上每層的序。


全局分類器的設計理念:


在檢索過程當中,咱們只須要每一層的節點機率序肯定TopK便可,這裏面須要特別說明的是雖然每一層的TopK候選集由上層父親決定,但該層TopK的排序選取自己並不受父輩的影響,也即每一層的TopK排序都是獨立的,父輩的排序分數不參與子輩的排序計算,這一點也是咱們的方案區別與機率連乘樹在計算形式上的不一樣。


以上的綜合設計使得對全庫TopK檢索的計算次數限制在log(候選集規模)量級,有效控制了N的大小,並且單次計算並不要求限定於內積等簡單形式,從而容許其容納更先進的模型。


最大堆樹背後的方法論:


最大堆樹結構定義背後描述的直觀意義是用戶興趣的層次結構,若是用戶對具體的商品感興趣,例如iPhone,那麼用戶對更高層的節點,例如iPhone所在的類別--手機,也是感興趣的。用戶的興趣結構具備自然的層次性。


綜上所述,從最大堆樹結構定義出發,咱們提出了Tree-based Deep Match(如下簡稱TDM)算法框架(圖1)。TDM以淘寶商品體系爲初始化依託,自頂向下構造從粗到細的興趣層次樹(Tree),並在此基礎上應用深度學習網絡進行用戶興趣的推薦建模,賦能單點計算上的複雜模型,運用層次檢索方法實現全量候選上的用戶TopK商品興趣推薦。

 

 

方案細節


一,模型訓練


咱們須要在樹的每一層創建一個全局分類器,計算該層節點機率的序,獲得最優TopK個候選。咱們選擇負樣本採樣(Negative Sampling)的方式進行樣本生成,以最大似然估計的方式對這些分類器進行訓練。


 

相對應的,咱們有損失函數爲:

 

其中,表明用戶u對節點n偏好的真實Label(0或1)。


在實際的樣本構建中,咱們採用了用戶當天的行爲葉子節點及其上溯路徑上的祖先節點爲正樣本,而隨機採樣各個正樣本節點的同層兄弟爲負樣本。在特徵上咱們使用了(0, 8*24)小時的行爲特徵做爲用戶特徵輸入。


二,結果預測


層次檢索算法:對於最終要求K個葉子目標推薦的狀況下,選擇當前層機率最高的K個節點,而後往下層擴展他們的孩子節點,對下層孩子節點進行機率估計,選取機率最高的K個,遞歸計算和選取直至全部路徑都到達葉子層,最後從候選葉子集合(可能大於2K個)中取機率最高的K個返回便可。在TDM的實驗中,層次TopK的檢索被實驗證實是有效的,甚至是優於平層暴力(Brute-force)檢索的,這一點也側面驗證了興趣樹的層次結構能夠有效促進檢索的精度提高.

 

三,樹聯合訓練


在實踐中咱們發現,基於淘寶商品體系爲依託構造的樹所得的TDM模型,在離線評估指標(召回率等)上會顯著的優於隨機構造的樹所得的TDM模型,這一結果印證了樹結構對TDM的巨大影響。咱們在這基礎上進行了樹-模型聯合訓練的迭代實驗,實驗結果證實聯合訓練的模型能夠取得比初始模型更優的效果提高(10%+),具體而言咱們創建了以下的聯合訓練迭代方法:

 

圖3具體展示了樹聯合訓練在離線測試上的效果。

圖3 聯合訓練樹模型和初始樹模型的測試結果對比


實驗效果


咱們在公開數據集MovieLens和阿里媽媽構建的廣告數據集UserBehavior上進行了TDM的實驗對比,評價指標包括精度、召回率、精度召回率調和F1和新穎性等方面。


一,召回率評估


對比效果中咱們能夠看出:


1)不管是MovieLens上仍是UserBehavior上,帶Attention的TDM在召回率上都顯著超越了現有推薦匹配算法,包括YouTube向量檢索方法和Item-CF統計規則方法;


2)在基礎product-DNN版本上引入更復雜和先進的深度模型(節點Embedding進入輸入層和引入Attention)能夠進一步大幅提高召回率。


二,新穎性評估


能夠看到,attention-DNN的TDM方案在所有的指標上都有極大提高,包括相對於普遍使用的Item-CF方案召回率提高292%,相對於業界主流YouTube方案召回率提高34%,而通過樹聯合訓練後Learnt Tree TDM方案效果進一步獲得提高,包括相對於普遍使用的Item-CF方案召回率提高355%,相對於業界主流YouTube方案召回率提高56%。


三,樹結構對效果的促進

圖4 樹檢索和暴力檢索在每一層上的召回率對比


在實驗中咱們發現樹的這種層次化結構能夠更加促進效果的提高。從圖4咱們能夠看到在樹層數達到必定高度(9+)後TopK層次檢索方法(圖2)在召回率上會顯著優於在該層上的暴力檢索方法。究其緣由,咱們認爲TDM的層次化樹檢索有效防止了上層差的節點對下層節點序計算的影響,將下層候選圈定在上層好的(TopK)節點的孩子中,相對於暴力檢索大大下降了序計算的難度,使其具備更好的分類能力,實現召回效果的提高。


PS: 咱們也對TDM進行了系統總結並撰寫成了論文發表於arXiv上,請你們不吝指正! Learning Tree-based Deep Model for Recommender Systems https://arxiv.org/abs/1801.02294

相關文章
相關標籤/搜索