Practical Diversified Recommendations on YouTube with Determinantal Point Processes
概
本文利用 Determinatal Point Process (DPP) 来提高推荐 list 的多样性. 虽然是工业界的产物, 但是感觉还是挺好玩的.
Motivation
-
一般情况, 我们会用如下的方式
来定义在某个 item 的质量 (quality), 其中 表示产生交互 (比如被点击, 被购买) 行为.
-
但是往往相似的 items 具有相近的 quality. 反言之, 如果仅仅根据 quality 进行推荐, 容易重复地推荐类似的 items, 显然这不是一个好的策略. 所以, 在实际中我们还需要考虑推荐列表中物品的相似度, 这可以用如下方式来刻画, 如果 满足
那么可以说 是相似的, 互斥的. 因为上面的不等式说明 是难以同时被选择的.
DPP
-
令 表示所有的 items, 然后我们希望构造一个分布 , 它定义在 之上, 即给定任意 ,
给出了选择 中的 items 的概率. 自然地, 应当满足:
-
且为了满足上述的多样性的需求, 应当更加注重那些高质量但内部相似度较低的子集 .
-
假设我们已经预先设定了指标 用于刻画 items 间的某种关系 (后续会介绍怎么构造是合理的), 则本文采用如下的分布的构造方案:
-
注意到, 行列式实际上行向量所构成的超平行多面体的体积 (here), 我们可以认为行列式越大, 那么所选的子集 的'覆盖' 范围越大, 那么推荐效果越好.
-
举一个二维的例子:
有
如果 代表质量, 代表相似度, 那么 越大说明 这一子集质量高, 多样性也好.
-
作者给出了两种策略用来构建 :
-
Kernel parameterization:
通过调节 可以控制推荐尽可能小而美 (较大的 ) 或者大而粗 (较小的 ). 不过缺点是 过大可能导致 不是半正定的, 此时需要我们每次重新将矩阵 project 到半正定的空间中去, 这不是一个好办法 (费时费力).
-
Deep Gramain Kernels 则是自动学习这样的一个矩阵:
大致流程如下:
-
-
很容易发现, 在这种情况下搜索一个大小为 的子集是一个 NP-hard 的问题, 所以作者在实际上使用中是采用一种贪心算法. 即每次选择一个 item 使得
注: 贪心算法其实不需要计算实际的概率, 不过我在论文中看到了一个很有趣的性质:
很有趣, 通过对角拆分应该是好证明的.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix