今天給大家介紹一篇阿里在重排(re-rank)方面探索的文章,論文題目為《Revisit Recommender System in the Permutation Prospective》,重點關注排列視角下的重排序過程,其大致思路可以分為兩個階段,第一階段通過beam-search方法尋找候選的物品排列順序,第二階段通過定義的LR(List Reward) 得到最優的排列順序,一起來學習一下。
1、背景
完整的推薦系統大都分為三個階段,召回、排序和重排序。隨著推薦技術的發展,各個階段都有多樣的技術和手段來提升最終的推薦效果。召回和排序階段大都使用point-wise的方法,而在重排序階段,則大都使用list-wise的方法。普遍使用的重排序的過程如下:
1)Ranking:通過排序階段的排序分,得到初始的排序列表
2)Refining:通過list-wise的模型(LSTM/self-attention)對排序分進行調整
3)Re-ranking:基于Refining階段的排序分,以貪婪的方式對列表進行重新排序
但是,上述的過程由于沒有考慮商品排列因素(permutation-variant influence),因此并不是整體最優的。舉個例子來解釋一下什么是permutation-variant influence。如下圖所示,兩個列表A-B-C和B-A-C包含相同的三個物品,但其排列并不相同,用戶對B-A-C排列有交互,而對A-B-C這樣的排列沒有交互,一個可能的原因是,將較貴的B物品放在較為便宜的物品A前面,可以增加用戶對于購買物品A的欲望,那么這種由于排列不同導致用戶反饋不同的影響因素,就稱為permutation-variant influence。
因此,對于重排序來說,一種更好的方式是考慮所有可能的物品排列方式,對每一種排序的結果進行評分,并選擇評分最高的排序結果展示給用戶。但這種方式又帶來了新的挑戰,首先,計算爆炸問題,假設rank階段后有100個物品,重排選擇10個進行展示,那么所有的排列的數量是A10010,復雜度接近O(10010)。其次,在重排序下,需要一種對物品排列好壞進行整體評估的方法,而之前的方法大都是point-wise的評估(如物品的點擊率,轉化率)。
針對上述兩個挑戰,本文提出了一個兩階段的重排序框架PRS(Permutation Retrieve System),接下來一起來介紹下。
2、PRS框架介紹
2.1 整體介紹
PRS(Permutation Retrieve System)框架的整體架構如下圖所示:
可以看到,PRS主要包含兩個階段,分別是PMatch(Permutation-Matching) 和PRank (PermutationRanking)。在PMatch階段,使用 FPSA (Fast Permutation Searching Algorithm)算法,高效生成候選的物品排列方式,在PRank階段,定義了LR(List Reward) metric并使用DPWN (Deep Permutation-Wise Network)對每個候選排列的LR進行評估,選擇LR最高的進行展示。接下來,對兩個階段的細節進行介紹。
2.2 PMatch Stage
在PMatch階段,論文提出了一種permutation-wise和結果導向的beam-search算法,稱為 FPSA (Fast Permutation Searching Algorithm),其示意圖如下圖所示:
離線訓練
離線部分主要訓練兩個模型,分別預測每個物品的pctr和繼續瀏覽的概率pNext。
線上服務
線上主要通過一種目標導向的beam-search方法產生候選的物品排列,其具體的過程如下:
1)對于初始隊列里的每個物品,都會計算其對應的pctr和pNext,為了提升系統的效率,pctr和pNext的計算與ranking階段的模型并行
2)使用beam-search方法生成k個長度為n的候選隊列,由于是beam-search方法,因此共需要n步。在每一步,基于rPV和rIPV對候選隊列進行排序。其中rPV越高,則用戶期望的瀏覽深度越高,rIPV越高,則用戶與列表的交互越多,具體計算過程如下圖:
2.3 PRank Stage
在PRank階段,定義了LR(List Reward) metric并使用DPWN (Deep Permutation-Wise Network)對每個候選排列的LR進行評估。
離線訓練
DPWN模型的結構如下圖所示:
如上圖,DPWN主要通過bi-lstm結構,預測隊列中每個物品的點擊率。具體地,第t個物品經過bi-lstm,得到對應的隱狀態ht:
隨后將隱狀態ht、用戶特征xu和物品特征xvt進行拼接,經過多層神經網絡得到第t個物品的點擊率預測概率:
損失函數為二分類的交叉熵損失。
線上服務
線上通過定義好的LR(List Reward) 對每個候選排列進行評分,來獲得能夠最大化列表收益的物品排列方式。LR這里定義為隊列中每個物品的預測點擊率之和:
3、實驗結果及分析
最后來看一下論文的實驗結果,離線實驗結果來看,PRS框架取得了明顯的收益提升:
從線上A/B測試結果來看,PRS框架線上平均耗時為7.3ms,滿足線上低延時的要求,同時在PV和IPV指標上,都有明顯的提升:
好了,論文就介紹到這里,本文也是從一個新穎的視角對重排序階段做出了較大的改進,感興趣的同學可以閱讀原文~