NOTE这是 b 站王树森推荐系统课程的笔记,记录到了重排,之后的物品冷启动和提分部分我没有学,所以也没有笔记。索引如下:
在粗排、精排每个步骤之后,需要将提取出来的物品进行排序,既需要质量高,又需要多样性好(注意粗排之后也需要)。
怎么突然联想到国外招生的 diversity 要求了(
对图文笔记形式的物品,可以使用 CLIP 模型计算相似度,从而估计多样性。

Maximal Marginal Relevance (MMR) 算法
有 n 个物品,打分为 r1,r2,…,rn,物品 i,j 的相似度为 sim(i,j)
这 n 个物品中选出的物品集合为 S,未选中的物品集合为 R,计算 R 中每一个物品的 marginal relevance 分数:
MRi=θ⋅ri−(1−θ)⋅j∈Smaxsim(i,j)θ 为超参,选择使 MRi 最大的物品从 R 放入 S,反复进行这个操作,直到选出需要数量的物品。
缺点:当 S 非常大时,最大相似性 maxj∈Ssim(i,j) 会很大(接近 1),导致算法退化,多样性变差。可以使用滑动窗口,即使用最近选入的若干物品集合代替全集 S(可以理解为离得远的物品可以相似,因为用户感觉不到这种相似性)。
可以对 S 进行一些规则筛选,以适合具体业务
DPP 算法
给定 k 个物品,表征为单位向量 v1,v2,…,vk∈Rd,d≥k,作为矩阵 V∈Rd×k 的列,可以计算这些向量构成超平行 d 维体的体积 vol(P(v1,…,vk)) 来衡量多样性,而
det(V⊤V)=vol(P(v1,…,vk)2故可以通过计算行列式来衡量多样性,目标函数:
argS:∣S∣=kmaxlogdet(VS⊤VS)应用在 MMR 算法上,就是:
argS:∣S∣=kmaxθ⋅j∈S∑rj+(1−θ)⋅logdet(VS⊤VS)记 AS=VS⊤VS,则 aij=vi⊤vj,使用贪心寻找下一个物品:
argi∈Rmaxθ⋅ri+(1−θ)⋅logdet(AS∪{i})(为了快速求解这个式子有很多数学推导,这里就不记录了)