在一個大規模的推薦系統中,我們可以從三個角度來理解多樣化的推薦結果:
- quality: 供應與用戶興趣匹配
- diversity: 發現/擴展用戶興趣
- fairness: 對長尾和小眾items公平
對於quality, 可以來自用戶歷史興趣, 也可以是用戶興趣的發現和拓展. 我們可以對點擊率, 時長等行為建模, 進而轉化為分類/回歸問題
對於diversity, 我們需要度量items之間的相似性, 例如DPP(determinal point process, 行列式點過程)
本文試圖解決兩個問題: quality和diversity之間如何獲得一個較好的trade-off, 以及如何公平地衡量相似性
outline:
問題1: 如何度量向量集的多樣性, 以及多樣性和質量如何trade off?
將feed中的筆記建模為時間序列, 滑動窗口以獲取不同的候選集合, 然后由embedding向量組成了tensor. 以tensor的奇異值代表候選集的diversity.
最后加上quality部分來trade off.
問題2: 如何公平地度量相似性?
結合CB與CF, 減少CB對先驗知識的依賴, 並對新item和長尾item友好.
實驗結果: CB2CF相比CF能夠提升區分效果, 而SSD能給出diversity的metric, 隨后可與quality trade-off
問題1: 如何度量向量集的多樣性, 以及多樣性和質量如何trade off?
首先需要對feed的items進行時間序列建模:
對於小紅書的用戶, feed可以看作他們觀測到的一個一維時間序列, 每個時刻為一篇筆記(item)
下一步, 我們需要對該時序進行分解.
借鑒時間序列的正交分解:
在經典的時間序列分析中,如西瓜的單價,以銷售時刻為橫軸, 我們可以建立時間序列, 並將其分解為經營成本、季節、噪聲
時間序列可分解為 trend + sesonal + residual(noise).
from statsmodels.tsa.seasonal import seasonal_decompose
類似地, 下面我們嘗試將筆記序列分解成幾個正交的部分, 以衡量多樣性
滑動頻譜分解(Sliding Spectrum Decomposition, SSD)
推薦的item序列$(i_1, \ldots, i_T)$總長度為$T$,
用戶瀏覽窗口大小為$w$, 第一個窗口為$(i_1, i_2, \ldots, i_\omega)$, 窗口滑動步長為1, 最后一個窗口為$i_{T-\omega+1}, i_{T-\omega+2}, \ldots$, i_{T}.
$v$為筆記在embedding空間中的表示, e.g. $v_{i_1}$是item $i_1$的表示. 把每一個窗口的embedding視為一行, 構成了tensor $\chi$.
向量集合的多樣性, 直觀上可以由邊界向量(下圖中的$v_1$和$v_2$)圍成的平行四邊形面積來度量. 而在本問題中, 需要處理多個窗口, 而多個窗口聯合體積是沒有一個直觀定義的.
SSD引入了矩陣的奇異值乘積來表示一個窗口內筆記的體積, 這里的'矩陣'是指tensor$\chi$的一行.
對tensor$\chi$做奇異值分解后得到奇異值$\sigma_{ijk}$, 與每篇筆記的quality結合, 即可得到下面的trade-off目標
其中$Z$是候選集合, $\gamma$是一個平衡系數.
問題2: 如何公平地度量相似性?
上述SSD中,依賴於筆記的embedding向量來衡量多樣性, 所以我們需要構造這些向量
在向量構造時, 其兩兩之間的相似性依需要符合用戶對多樣性的感知, 有兩種直觀的構造思路:
一是基於內容的方法,
即構造一個基於筆記圖片和文字內容的監督任務, 將監督模型的中間層結果作為向量表示
缺點: 依賴大量先驗知識
二是基於協同過濾的方法, 即通過全體用戶的交互歷史, 構造CF向量
缺點: 對長尾興趣和新內容非常不友好
於是該論文研究了下圖所示的content-based to collaborative filter(CB2CF)方法:
該方法通過內容信息預估協同過濾的結果, 在輸入上只使用了內容, 這樣即使新內容也能依賴模型的泛化能力得到較好的結果
在輸出上依賴於全體用戶的協同標注, 使得研究者能夠在統計數據上學習用戶感知的信號
(BERT, inception, MLP???)
實驗結果
在離線實驗中, 研究者比對了CF和CB2CF在長尾上的表現.
在四個高區分度的類目下, 由實驗結果可以看到CB2CF有較好的區分能力:
這里衡量指標為前10個最相似的item里同類的比例.
在線上實驗中, 研究者用SSD與SOTA(state of the art)的DPP模型做了AB實驗, 在市場, 互動, ILAD(曝光多樣性), MRT(用戶平均閱讀類目數, 消費多樣性?)上都取得了一定的收益
在實驗時分為offline evaluation和online A/B test
在A/B test中, 引入了如下4種metric
- 在feed上花的時長
- number of engagements
- Intra-List Average Distance, ILAD: 平均每個用戶的曝光多樣性 (么個用戶的impression集中的不相似度(1-相似度)平均)
- Mean Read taxonomies. MRT: 平均每個用戶click集的種類數
補充:
typical recommendation system
- First, retrieve candidate items from item database
- Followed by a ranking module to measure the point-wise quality of item
- Then high-quality items will be sent to policy module, for further selection and reranking, to build the final recommendation