博客 > 人工智能&数据科学 > 具体业务处理 > 推荐系统 > 排序算法
# 带有多样性的重排 ## 物品相似度的度量 ### 使用业务相关的特征 根据业务相关的特征,直接构造公式计算相似度 ![199252252cb16ca0670e32599f386f33.png](/resources/ccedfa12be5f448ba62a11511e0d5601) ### 使用向量表征 塔模型学习得到的物品向量往往在长尾内容上学习表现不好,因此不适合用于物品间平等地度量相似度。 可使用CLIP算法自监督学习向量表征。 ![52d7b986d011e029ef2d37f210543f92.png](/resources/e7440a35760d4b8f8572e7dccd772882) ![073dc9658864a4bd6ccd670d0c59e350.png](/resources/5c752fa110874246804761006a2122b4) ## MMR(Maximal Marginal Relevance) ![b07c67725ee6ee4b5721dbae1eadfbc7.png](/resources/55a2b6e83a3d41e4bc0f39ecb01e7791) ![0ee407362d5a9f6d6739ee6ca82516e5.png](/resources/1375ff69ec73492dae1bb81fa57d970d) ![fff535e2b02c4bf05e94bb38f0f37f5b.png](/resources/a3f4e8fc96e54a50912872f5cc18b661) ### 滑动窗口优化 ![9588a1c0771a2607f701b3374498bd0f.png](/resources/ead83daa612a46d3a0e8c51906337e3a) ### 结合人工规则 ![49878e2bae3f30b400a0f1955ecccc3c.png](/resources/764ca2d86ce4483caa00be4dfe96c481) ## DPP ### 数学基础 对于一个 $n$ 维空间内,由 $k$ 个向量组成的集合 $S$ 或矩阵 $\bold V_S$($k \le n$),其构成的超平行体 $P(S)$ 的体积 $vol(P(S))$有如下规律: - 当 $S$ 中的向量两两正交,$vol(P(S))$ 有最大值 - 当 $S$ 线性相关,$vol(P(S))$ 有最小值$0$ 因此可以用 $vol(P(S))$ 作为优化目标,提升候选物品向量组的多样性(不相关性) ![79ebdedf081aa5afe89a6de6e51d3f17.png](/resources/f92fa52b3a354dd8bba2f2d0b7f3a04e) $vol(P(S))$ 有一种简单的计算方式: $$ vol(P(S)) = det(\bold V_S^T\bold V_S) $$ 令 $\bold A_S = \bold V_S^T\bold V_S$, 使用Cholesky分解: $$ \bold A_S = \bold L\bold L^T $$ 其中 $L_{k\times k}$ 为下三角矩阵,则计算又可简化为: $$ \begin{align*} vol(P(S)) &= det(\bold V_S^T\bold V_S) \\ &= det(\bold A_S) \\ &= det(\bold L\bold L^T) \\ &= det(\bold L)\space det(\bold L^T) \\ &= (\prod_{i\in 1,2, \dots, k} \bold L_{ii})^2 \end{align*} $$ ### 算法实现 ![eb6790b1613cfa3a992b4cc4a5367276.png](/resources/979097ef9887467ca8c8e8a615c588dc) ![d35ba467326ad1432108223bdb9b3c96.png](/resources/32823888864d4e7fab3871e90592f0f5) ### 滑动窗口与人工规则 与MMR一样,DPP也可以简单地引入滑动窗口优化或人工规则。