天天看點

推薦召回算法之深度樹模型

作者:每日AI

前言

從大規模物料庫中檢索物品并給使用者做推薦,需要的算力是巨大的。阿裡團隊提出了一系列基于樹的深度模型結構,旨在使用對數複雜度完成這個任務,減少算力的消耗。在這個結構中,支援使用者和物品的層次關系建構,而不是将兩者割裂開(例如雙塔結構)。

模型主要思想是通過自上而下周遊樹節點來為每個使用者-節點對做出決策,從粗略到精細地預測使用者興趣。

該模型是一種召回模型,在下圖系統中User-candidates matching的環節發揮作用。召回的核心問題是從大規模候選集合高效檢索topK,算法效率尤為重要。

推薦召回算法之深度樹模型

1 舊有算法及缺陷

基于物品的協同過濾:基于統計的啟發式算法

1. 提前将物品庫中的物品之間的相似度離線計算好,當為使用者推薦時,從使用者曆史行為得到觸發物品(使用者喜歡過的物品等),将庫中與觸發物品相似的物品推薦給使用者。包含使用者行為觸發和物品相似度計算兩個階段。

2. 缺點:該方法根據使用者的曆史行為進行推薦,推薦的新穎性差;并且受限于觸發物品。

粗粒度推薦

1. 推薦類别,再将類别下的物品排序,推薦給使用者。

2. 缺點:該方法當類别下面物品數量多時仍然無法擺脫大量的計算,并且物品類别的劃分往往不是針對推薦定制的,會帶來問題。

内積模型向量檢索[5]:深度學習時代的産物

1. 離線學習物品Embedding;并基于聚類和乘積量化[6]算法為物品建構索引;需要給使用者推薦時,實時計算使用者Embedding,在索引中查找最近的若幹個物品。

2. 這類方法相當于将推薦問題轉換為向量檢索問題:預測階段等價于在内積空間中檢索使用者向量的最近鄰。對于向量檢索問題,通過使用散列化或量化[7]來建構索引,可以保證KNN檢索效率。

3. 缺點:該類方法受限于内積的計算,使用者與物品向量表示之間的内積互動形式嚴重限制了模型的性能。使用深度學習模型取代内積比較好,例如深度興趣網絡(DIN)[8]、深度興趣進化網絡(DIEN)[9]等算法中的做法,不過這類模型不能保證計算效率。

2 TDM 1.0

KDD2018:Learning Tree-based Deep Model for Recommender Systems

推薦召回算法之深度樹模型

1. 葉子節點為商品節點。

2. 使用最大堆樹保證可以使用Beam search檢索的有效性:最大堆樹下目前層的最優TopK孩子節點的父親必然屬于上層的父輩節點最優TopK。

3. 利用深度學習。

3 TDM 2.0

NIPS2019:Joint Optimization of Tree-based Index and Deep Model for Recommender Systems

推薦召回算法之深度樹模型

優化樹的結構:等價于尋找帶權二部圖的最大比對(複雜度高),提出了基于貪心政策的分段式樹學習算法。

4 TDM3.0

ICML2020:Learning Optimal Tree Models Under Beam Search

推薦召回算法之深度樹模型

1. 解決模型線上下訓練和線上進行檢索服務時存在目标偏差的問題:

  • 線下訓練時,是逐層的多分類問題。
  • 線上Serving時,對樹進行Beam Search,關心的是檢索得到的Top-k結果是否是最優的(使用召回率等衡量名額)。

2. 這篇文章設計方法将線上檢索的目标以及過程考慮到訓練中,保證離線訓練以及線上Serving的一緻性。

5 小結

深度學習是一種工具,算法工程師既要掌握和利用好這個工具,又不能因其限制思路。該系列文章利用樹結構建構深度學習模型,讓人眼前一亮。模型的設計利用了樹這一結構友善控制搜尋複雜度的特點,并且結合了最大堆等資料結構的思想,展現了算法設計的魅力。值得一提的是,模型還具有一定的可解釋性。

參考

1. [1801.02294] Learning Tree-based Deep Model for Recommender Systems (arxiv.org)

2.【推薦系統】Learning Tree-based Deep Model for Recommender Systems_布紙所雲-CSDN部落格:https://blog.csdn.net/XindiOntheWay/article/details/85220342

3. [1902.07565] Joint Optimization of Tree-based Index and Deep Model for Recommender Systems (arxiv.org)

4. [2006.15408] Learning Optimal Tree Models Under Beam Search (arxiv.org)

5. Deep Neural Networks for YouTube Recommendations

6. Product Quantization乘積量化 | RexKing6's Note:https://blog.rexking6.top/2018/10/21/Product-Quantization乘積量化/

7. [1901.00275] Vector and Line Quantization for Billion-scale Similarity Search on GPUs (arxiv.org)

8. [1706.06978] Deep Interest Network for Click-Through Rate Prediction (arxiv.org)

9. [1809.03672] Deep Interest Evolution Network for Click-Through Rate Prediction (arxiv.org)

10. 阿裡媽媽新突破!深度樹比對如何扛住千萬級推薦系統壓力:https://mp.weixin.qq.com/s/pWcFuOecG-dZHZ365clDjg

11. 阿裡深度樹比對召回體系演進:https://mp.weixin.qq.com/s/oDXPN0VQFQEwZoLyNgR2WQ

12. 基于樹的召回架構(三):Learning Optimal Tree Models under Beam Search_pyxiea-CSDN部落格:https://blog.csdn.net/xpy870663266/ article/details/115625977