行列式点过程DPP(推荐多样性提升)算法公式详细推导

行列式点过程(DPP)算法用于从候选集合中选择相关且多样的推荐。通过利用矩阵的行列式性质,选取使得张成体积最大的子集。本文详细推导DPP公式,并介绍一种快速计算方法,利用Cholesky分解进行增量更新,以优化推荐多样性。此外,还提供算法实现及代码示例。
摘要由CSDN通过智能技术生成

论文地址

问题描述

一句话概括:行列式点过程要解决的是,从一个候选集合中挑选出既相关又多样的推荐集合,其中候选集合的元素由两部分组成,一部分是文章和用户的相关性,由一个数字表示,另一部分是一个embedding或者向量代表候选是候选集合元素的content representation,论文中做的是拿到计算结果的一种快速计算方法。

本文主要讲解行列式点过程的公式推导,以及自己对此算法的理解,尽量保证讲解的完整性,最后附代码。

问题拆解

假设L是这么一个矩阵:L=B^{T}*B,其中B的每一列为候选集中商品的归一化后的内容向量与用户的相关性分数的乘积,那每一列即有了内容维度的描述,又有了相关性维度的描述,那么L就可以写成如下的形式:

L_{_{ij}} = <B_{i},B_{j}> = <r_{i}f_{j},r_{j}f_{j}>=r_{i}r_{j}<f_{i},f_{j}>

L=Diag(r_{u})\cdot S\cdot Diag(r_{u}))

其中r为相关性分数,f为内容向量。现在咱们要想从上式中求出能最大化多样性和相关性的子集,就需要借助行列式的性质:矩阵的行列式越大,对应的矩阵中任意两两向量的夹角越接近90度,也就是矩阵张成的体积越大,这样就把问题转化为从

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值