###豪豪豪豪######2020 推薦系統技術演進趨勢瞭解

讀知乎文章《推薦系統技術演進趨勢:從召回到排序再到重排》筆記:

《推薦系統技術演進趨勢:從召回到排序再到重排》這篇文章主要說了下最近兩年,推薦系統技術的一些比較明顯的技術發展趨勢。主要從以下幾個方面介紹:

推薦系統整體架構

召回技術演進趨勢

排序模型技術演進趨勢

重排技術演進趨勢

一、推薦系統整體架構

推薦系統宏觀架構:

推薦系統宏觀結構

細分四階段:

推薦系統細分四階段

二、召回技術演進趨勢

1、傳統:多路召回(每一路召回相當於單特徵排序結果)

傳統召回

2、未來:模型召回(引入多特徵,把單特徵排序拓展成多特徵排序的模型)

(1)模型召回

根據用戶物品Embedding,採用類似Faiss等高效Embedding檢索工具,快速找出和用戶興趣匹配的物品,這樣就等於做出了利用多特徵融合的召回模型了。

理論上來說,任何你能見到的有監督模型,都可以用來做這個召回模型,比如FM/FFM/DNN等,常說的所謂“雙塔”模型,指的其實是用戶側和物品側特徵分離分別打Embedding的結構而已,並非具體的模型。

值得注意的一點是:如果在召回階段使用模型召回,理論上也應該同步採用和排序模型相同的優化目標,尤其是如果排序階段採用多目標優化的情況下,召回模型也應該對應採取相同的多目標優化。同理,如果整個流程中包含粗排模塊,粗排也應該採用和精排相同的多目標優化,幾個環節優化目標應保持一致。因爲召回和粗排是精排的前置環節,否則,如果優化目標不一致,很可能會出現高質量精排目標,在前置環節就被過濾掉的可能,影響整體效果。

通用模型召回

(2)用戶行爲序列召回

用戶行爲序列召回

核心在於:這個物品聚合函數Fun如何定義的問題。這裏需要注意的一點是:用戶行爲序列中的物品,是有時間順序的。理論上,任何能夠體現時序特點或特徵局部性關聯的模型,都比較適合應用在這裏,典型的比如CNN、RNN、Transformer、GRU(RNN的變體模型)等,都比較適合用來集成用戶行爲序列信息。

在召回階段,如何根據用戶行爲序列打embedding,可以採取有監督的模型,比如Next Item Prediction的預測方式即可;也可以採用無監督的方式,比如物品只要能打出embedding,就能無監督集成用戶行爲序列內容,例如Sum Pooling。

(3)用戶多興趣拆分(利用用戶行爲物品序列,打出用戶興趣Embedding的做法)

用戶興趣多embedding拆分

(4)知識圖譜融合召回

根據用戶的興趣實體,通過知識圖譜的實體Embedding化表達後(或者直接在知識圖譜節點上外擴),通過知識外擴或者可以根據Embedding相似性,拓展出相關實體。

知識圖譜融合召回

(5)圖神經網絡模型召回

圖計算召回

CONVOLVE圖示

圖神經網絡的最終目的是要通過一定技術手段,獲得圖中節點的embedding編碼。最常用的embedding聚合工具是CNN,對於某個圖節點來說,它的輸入可以有兩類信息,一類是自身的屬性信息,比如上面舉的微博的例子;另外一類是圖結構信息,就是和當前節點有直接邊關聯的其它節點信息。通過CNN,可以對兩類信息進行編碼和聚合,形成圖節點的embedding。通過CNN等信息聚合器,在圖節點上進行計算,並反覆迭代更新圖節點的embedding,就能夠最終獲得可靠的圖節點embedding信息,而這種迭代過程,其實體現的是遠距離的節點將信息逐步通過圖結構傳遞信息的過程,所以圖結構是可以進行知識傳遞和補充的。

我們可以進一步思考下,圖節點因爲可以帶有屬性信息,比如物品的Content信息,所以明顯這對於解決物品側的冷啓動問題有幫助;而因爲它也允許知識在圖中遠距離進行傳遞,所以比如對於用戶行爲比較少的場景,可以形成知識傳遞和補充,這說明它也比較適合用於數據稀疏的推薦場景;另外一面,圖中的邊往往是通過用戶行爲構建的,而用戶行爲,在統計層面來看,本質上是一種協同信息,比如我們常說的“A物品協同B物品”,本質上就是說很多用戶行爲了物品A後,大概率會去對物品B進行行爲;所以圖具備的一個很好的優勢是:它比較便於把協同信息、用戶行爲信息、內容屬性信息等各種異質信息在一個統一的框架裏進行融合,並統一表徵爲embedding的形式,這是它獨有的一個優勢,做起來比較自然。另外的一個特有優勢,就是信息在圖中的傳播性,所以對於推薦的冷啓動以及數據稀疏場景應該特別有用。

早期的圖神經網絡做推薦,因爲需要全局信息,所以計算速度是個問題,往往圖規模都非常小,不具備實戰價值。而GraphSAGE則通過一些手段比如從臨近節點進行採樣等減少計算規模,加快計算速度,很多後期改進計算效率的方法都是從這個工作衍生的;而PinSage在GraphSAGE基礎上(這是同一撥人做的),進一步採取大規模分佈式計算,拓展了圖計算的實用性,可以計算Pinterest的30億規模節點、180億規模邊的巨型圖,併產生了較好的落地效果。所以這兩個工作可以重點借鑑一下。

總體而言,圖模型召回,是個很有前景的值得探索的方向。

三、排序模型技術演進趨勢

排序技術發展趨勢

模型優化目標則體現了我們希望推薦系統去做好什麼,往往跟業務目標有關聯,這裏我們主要從技術角度來探討,而多目標優化以及ListWise最優是目前最常見的技術進化方向,ListWise優化目標在排序階段和重排階段都可採用,我們把它放到重排部分去講,這裏主要介紹多目標優化;

模型表達能力代表了模型是否具備充分利用有效特徵及特徵組合的能力,其中顯示特徵組合、新型特徵抽取器、增強學習技術應用以及AutoML自動探索模型結構是這方面明顯的技術進化方向;

從特徵和信息角度,如何採用更豐富的新類型特徵,以及信息和特徵的擴充及融合是主要技術進化方向,用戶長短期興趣分離、用戶行爲序列數據的使用、圖神經網絡以及多模態融合等是這方面的主要技術趨勢。

1.1 模型優化目標-多目標優化

推薦系統的多目標優化(點擊,互動,時長等多個目標同時優化)嚴格來說不僅僅是趨勢,而是目前很多公司的研發現狀。對於推薦系統來說,不同的優化目標可能存在互相拉後腿的現象,多目標旨在平衡不同目標的相互影響,而如果多目標優化效果好,對於業務效果的推動作用也非常大。總而言之,多目標優化是值得推薦系統相關研發人員重點關注的技術方向。

從技術角度講,多目標優化最關鍵的有兩個問題。第一個問題是多個優化目標的模型結構問題;第二個問題是不同優化目標的重要性如何界定的問題(超參如何尋優)。

多目標模型架構

2.1 模型表達能力-顯式特徵組合

排序模型發展史-特徵工程發展史

如果歸納下工業界CTR模型的演化歷史的話,你會發現,特徵工程及特徵組合的自動化,一直是推動實用化推薦系統技術演進最主要的方向,而且沒有之一。最早的LR模型,基本是人工特徵工程及人工進行特徵組合的,簡單有效但是費時費力;再發展到LR+GBDT的高階特徵組合自動化,以及FM模型的二階特徵組合自動化;再往後就是DNN模型的引入,純粹的簡單DNN模型本質上其實是在FM模型的特徵Embedding化基礎上,添加幾層MLP隱層來進行隱式的特徵非線性自動組合而已。

顯示特徵組合發展趨勢

2.2 模型表達能力-特徵抽取器的進化

特徵抽取器

從特徵抽取器的角度來看,目前主流的DNN 排序模型,最常用的特徵抽取器仍然是MLP結構,圖像領域的CNN、NLP領域的RNN和Transformer。

MLP結構通常是兩層或者三層的MLP隱層。目前也有理論研究表明:MLP結構用來捕獲特徵組合,是效率比較低下的。

CNN捕獲局部特徵關聯是非常有效的結構,但是並不太適合做純特徵輸入的推薦模型,因爲推薦領域的特徵之間,在輸入順序上並無必然的序列關係,CNN的捕獲遠距離特徵關係能力差的弱點,以及RNN的不可並行處理、所以速度慢的劣勢等。

Transformer作爲NLP領域最新型也是最有效的特徵抽取器,從其工作機制來說,其實是非常適合用來做推薦的。爲什麼這麼說呢?核心在於Transformer的Multi-Head Self Attention機制上。MHA結構在NLP裏面,會對輸入句子中任意兩個單詞的相關程度作出判斷,而如果把這種關係套用到推薦領域,就是通過MHA來對任意特徵進行特徵組合,而上文說過,特徵組合對於推薦是個很重要的環節,所以從這個角度來說,Transformer是特別適合來對特徵組合進行建模的,一層Transformer Block代表了特徵的二階組合,更多的Transformer Block代表了更高階的特徵組合。但是,實際上如果應用Transformer來做推薦,其應用效果並沒有體現出明顯優勢,甚至沒有體現出什麼優勢,基本稍微好於或者類似於典型的MLP結構的效果。這意味着,可能我們需要針對推薦領域特點,對Transformer需要進行鍼對性的改造,而不是完全直接照搬NLP裏的結構。

截一張張老師其他關於Transformer的圖,足以說明Transformer的意義,但現在還不是很懂,哈哈~

Transformer

2.3 AutoML在推薦的應用

AutoML在17年初開始出現,最近三年蓬勃發展,在比如圖像領域、NLP領域等都有非常重要的研究進展,在這些領域,目前都能通過AutoML找到比人設計的效果更好的模型結構。

DNN Ranking Model基本算子

ranking模型對應類型模型結構所在

高效神經架構搜索(Efficient Neural Architecture Search)神經網絡架構的搜索空間可以表示成有向無環圖(DAG),一個神經網絡架構可以表示成DAG的一個子圖

2.4 增強學習在推薦的應用

增強學習其實是比較吻合推薦場景建模的。一般而言,增強學習有幾個關鍵要素:狀態、行爲以及回報。在推薦場景下,我們可以把狀態St定義爲用戶的行爲歷史物品集合;推薦系統可選的行爲空間則是根據用戶當前狀態St推薦給用戶的推薦結果列表,這裏可以看出,推薦場景下,用戶行爲空間是巨大無比的,這制約了很多無法對巨大行爲空間建模的增強學習方法的應用;而回報呢,則是用戶對推薦系統給出的列表內容進行互動的行爲價值,比如可以定義點擊了某個物品,則回報是1,購買了某個物品,回報是5….諸如此類。有了這幾個要素的場景定義,就可以用典型的增強學習來對推薦進行建模。

增強學習在推薦系統的應用

3.1 多模態信息融合

多模態融合,從技術手段來說,本質上是把不同模態類型的信息,通過比如Embedding編碼,映射到統一的語義空間內,使得不同模態的信息,表達相同語義的信息完全可類比。比如說自然語言說的單詞“蘋果”,和一張蘋果的圖片,應該通過一定的技術手段,對兩者進行信息編碼,比如打出的embedding,相似度是很高的,這意味着不同模態的知識映射到了相同的語義空間了。這樣,你可以通過文本的蘋果,比如搜索包含蘋果的照片。

多模態融合

3.2 長期興趣/短期興趣分離

對於推薦系統而言,準確描述用戶興趣是非常重要的。目前常用的描述用戶興趣的方式主要有兩類。一類是以用戶側特徵的角度來表徵用戶興趣,也是最常見的;另外一類是以用戶發生過行爲的物品序列作爲用戶興趣的表徵。

長短期興趣分離

四、重排技術演進趨勢

關於List Wise重排序,可以從兩個角度來說,一個是優化目標或損失函數;一個是推薦模塊的模型結構。

rerank發展趨勢:List Wise

推薦系統裏Learning to Rank做排序,我們知道常見的有三種優化目標:Point Wise、Pair Wise和List Wise。所以我們首先應該明確的一點是:List Wise它不是指的具體的某個或者某類模型,而是指的模型的優化目標或者損失函數定義方式,理論上各種不用的模型都可以使用List Wise損失來進行模型訓練。最簡單的損失函數定義是Point Wise,就是輸入用戶特徵和單個物品特徵,對這個物品進行打分,物品之間的排序,就是誰應該在誰前面,不用考慮。明顯這種方式無論是訓練還是在線推理,都非常簡單直接效率高,但是它的缺點是沒有考慮物品直接的關聯,而這在排序中其實是有用的。Pair Wise損失在訓練模型時,直接用兩個物品的順序關係來訓練模型,就是說優化目標是物品A排序要高於物品B,類似這種優化目標。其實Pair Wise的Loss在推薦領域已經被非常廣泛得使用,比如BPR損失,就是典型且非常有效的Pair Wise的Loss Function,經常被使用,尤其在隱式反饋中,是非常有效的優化目標。List Wise的Loss更關注整個列表中物品順序關係,會從列表整體中物品順序的角度考慮,來優化模型。在推薦中,List Wise損失函數因爲訓練數據的製作難,訓練速度慢,在線推理速度慢等多種原因,儘管用的還比較少,但是因爲更注重排序結果整體的最優性,所以也是目前很多推薦系統正在做的事情。

從模型結構上來看。因爲重排序模塊往往是放在精排模塊之後,而精排已經對推薦物品做了比較準確的打分,所以往往重排模塊的輸入是精排模塊的Top得分輸出結果,也就是說,是有序的。而精排模塊的打分或者排序對於重排模塊來說,是非常重要的參考信息。於是,這個排序模塊的輸出順序就比較重要,而能夠考慮到輸入的序列性的模型,自然就是重排模型的首選。我們知道,最常見的考慮時序性的模型是RNN和Transformer,所以經常把這兩類模型用在重排模塊,這是很自然的事情。一般的做法是:排序Top結果的物品有序,作爲RNN或者Transformer的輸入,RNN或者Transformer明顯可以考慮在特徵級別,融合當前物品上下文,也就是排序列表中其它物品,的特徵,來從列表整體評估效果。RNN或者Transformer每個輸入對應位置經過特徵融合,再次輸出預測得分,按照新預測的得分重新對物品排序,就完成了融合上下文信息,進行重新排序的目的。

 

參考資料:

1、推薦系統技術演進趨勢:從召回到排序再到重排

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

2、模型召回典型工作:

FM模型召回:推薦系統召回四模型之:全能的FM模型

DNN雙塔召回:Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations

3、用戶行爲序列召回典型工作:

GRU:Recurrent Neural Networks with Top-k Gains for Session-based Recommendations

CNN:Personalized Top-N Sequential Recommendation via Convolutional Sequence Embedding

Transformer: Self-Attentive Sequential Recommendation

4、知識圖譜融合召回典型工作:

KGAT: Knowledge Graph Attention Network for Recommendation

RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems

5、圖神經網絡模型召回典型工作:

GraphSAGE: Inductive Representation Learning on Large Graphs

PinSage: Graph Convolutional Neural Networks for Web-Scale Recommender Systems

6、模型多目標優化典型工作:

MMOE:Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts

帕累托最優:A Pareto-Efficient Algorithm for Multiple Objective Optimization in E-Commerce Recommendation

7、顯式特徵組合典型工作:

Deep& Cross: Deep & Cross Network for Ad Click Predictions

XDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems

8、特徵抽取器典型工作:

AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks

DeepFM: An End-to-End Wide & Deep Learning Framework for CTR Prediction

9、對比CNN\RNN\特徵抽取器:https://zhuanlan.zhihu.com/p/54743941

10、AutoML在推薦的應用典型工作:

ENAS結構搜索:AutoML在推薦排序網絡結構搜索的應用

雙線性特徵組合: FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction

11、增強學習在推薦的應用典型工作:

Youtube: Top-K Off-Policy Correction for a REINFORCE Recommender System

Youtube: Reinforcement Learning for Slate-based Recommender Systems: A Tractable Decomposition and Practical Methodology

12、多模態融合典型工作:

DNN召回:Collaborative Multi-modal deep learning for the personalized product retrieval in Facebook Marketplace

排序:Image Matters: Visually modeling user behaviors using Advanced Model Server

13、長短期興趣分離典型工作:

1. Neural News Recommendation with Long- and Short-term User Representations

2. Sequence-Aware Recommendation with Long-Term and Short-Term Attention Memory Networks

14、List Wise重排序典型工作:

1.Personalized Re-ranking for Recommendation

2.Learning a Deep Listwise Context Model for Ranking Refinement



作者:是黃小胖呀
鏈接:
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章