個性化重排--Personalized Re-ranking for Recommendation


推薦中的個性化重排--Personalized Re-ranking for Recommendation
這篇文章是阿里在ResSys'19發表的,主要貢獻是在重排序階段,引入了用戶的相關信息,很符合實際場景。

  • PRM的提出

重排主要是對排序后結果的優化,也可以用於二次推薦。考慮到性能原因,典型的排序技術是基於pointwise的,給定一個query,系統對每個物品進行打分,按照打分結果進行排序。pointwise不考慮排序列表中物品之間的相關性,為了解決這個問題,有兩種主流做法:

pairwise和listwise:pairwise和listwise考慮列表中物品間的相關性

建模物品之間的相互作用:基於RNN的方法是目前的SOTA,輸入初始列表,輸出編碼后的列表[2].RNN存在兩個問題,一是距離限制,二是無法有效的對列表中物品進行交互。

直觀上來說,用戶的行為信息也應該被加入到重排,因為不同用戶的傾向性不同。假如用戶更關注價格,重排時價格就需要更多關注。文章提出基於Transformer的個性化重排,

  1. 假如用戶和列表中物品的交互,更加合理
  2. Transformer的self-attention機制有效捕捉特征間的交互,改善了基於RNN方法的缺點
  • 模型細節

先看圖

個性化重排的個性化就體現在加入了用戶個性化向量\(pv\),可以建模用戶個性和物品之間的相互關系。

輸入層

輸入層由三部分組成:原始特征、個性化特征、位置特征

給定初始列表\(\mathcal{S}=\left[i_{1}, i_{2}, \ldots, i_{n}\right]\),原始特征矩陣\(X \in \mathbb{R}^{n \times d_{\text {feature }}}\),\(X\)的每行\(x_i\)對應\(i \in S\)的特征向量。\(P V \in \mathbb{R}^{n \times d_{\mathrm{pv}}}\)是個性化矩陣,由預訓練得到。\(PE \in \mathbb{R}^{\boldsymbol{n} \times\left(d_{\text {feature }}+d_{p v}\right)}\)表示位置編碼,初始列表中物品的位置.

\[E^{\prime \prime}=\left[\begin{array}{c} {x_{i_{1}} ; p v_{i_{1}}} \\ {x_{i_{2}} ; p v_{i_{2}}} \\ {\cdots} \\ {x_{i_{n}} ; p v_{i_{n}}} \end{array}\right]+\left[\begin{array}{c} {p e_{i_{1}}} \\ {p e_{i_{2}}} \\ {\cdots} \\ {p e_{i_{n}}} \end{array}\right] \]

其中\(E^{\prime \prime} \in \mathbb{R}^{n \times\left(d_{\text {feature }}+d_{p v}\right)}\),為了將\(E^{''}\)轉化\(d\)維的\(E\),使用前饋神經網絡轉化下:

\[E=E W^{E}+b^{E} \]

此處有一個疑問,為什么需要做這一步降維?直接將拼接后的向量送入編碼層不可以嗎?

編碼層

編碼層目標在於整合對列表中物品的相互影響,以及用戶行為和列表中物品的相互影響。這里使用了Transformer的編碼部分,可以看圖(a).

輸出層

輸出層使用\(softmax\)輸出一個分數列表,根據分數就可以實現重排。具體來說,

\[\text { Score }(i)=P\left(y_{i} | X, P V ; \hat{\theta}\right)=\operatorname{softmax}\left(F^{\left(N_{x}\right)} W^{F}+b^{F}\right), i \in \mathcal{S}_{r} \]

其中\(F^{\left(N_{x}\right)}\)是Transformer部分的輸出。對應的損失函數為

\[\mathcal{L}=-\sum_{r \in \mathcal{R}} \sum_{i \in S_{r}} y_{i} \log \left(P\left(y_{i} | X, P V ; \hat{\theta}\right)\right. \]

其中\(\mathcal{R}\)是所有用戶的請求的集合。即保證重排后的列表盡可能的符合每個用戶

預訓練個性化向量

預訓練網絡將點擊率作為目標,利用網絡的隱層向量作為個性化向量。就是預訓練模型的經典操作。對應的損失函數

\[\begin{aligned}\mathcal{L}=\sum_{i \in \mathcal{D}}\left(y_{i} \log \left(P\left(y_{i} | \mathcal{H}_{u}, u ; \theta^{\prime}\right)\right)\right.+\left(1-y_{i}\right) \log \left(1-P\left(y_{i} | \mathcal{H}_{u}, u ; \theta^{\prime}\right)\right)\end{aligned} \]

其中\(\mathcal H _u\)表示用戶的歷史行為信息,item表示物品信息,user表示人口統計學信息。可以看出個性化向量的預訓練網絡就是一個CTR預估網絡,因此經典的Wide&Depp,DeepFM等網絡都可以用來做預訓練。

  • 討論
  1. 文章的創新主要是重排階段引入了用戶的相關特征。個人認為可以用於二次推薦,應該有幫助
  2. 輸入層最后那個操作沒有太搞明白,有理解不到位的地方歡迎討論。

references:

Personalized Re-ranking for Recommendation.https://arxiv.org/pdf/1904.06813.pdf


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM