在一个大规模的推荐系统中,我们可以从三个角度来理解多样化的推荐结果:
- 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