概述
- DPP 的中文翻译是行列式点过程,机器学习领域很早就有关于 DPP 的研究
- DPP 的目标是从一个集合中选出尽量多样化的物品,这与我们重排的目标非常契合
- DPP 是目前推荐系统领域(2022-11-06)公认最好的多样性算法
超平行体
二维空间的超平行体
2 维空间的超平行体就是平行四边形
平行四边形中的点可以表示为:x=α1v1+α2v2x=\alpha_1v_1+\alpha_2v_2x=α1v1+α2v2。下图的红点落在平行四边形的正中心上
系数 α1\alpha_1α1 和 α2\alpha_2α2 的取值范围是 [0,1][0,1][0,1]
三维空间的超平行体
3 维空间的超平行体是平行六面体
平行六面体中的点可以表示为:x=α1v1+α2v2+α3v3x=\alpha_1v_1+\alpha_2v_2+\alpha_3v_3x=α1v1+α2v2+α3v3
系数 α1,α2,α3\alpha_1,\alpha_2,\alpha_3α1,α2,α3 的取值范围是 [0,1][0,1][0,1]
数学定义
- 一组向量 v1,⋅⋅⋅,vk∈Rdv_1,···,v_k \in R^dv1,⋅⋅⋅,vk∈Rd(这些向量是超平行体的边,它们都是 ddd 维向量) 可以确定一个 k 维超平行体:P(v1,⋅⋅⋅,vk)={α1v1+⋅⋅⋅+αkvk∣0≤α1,⋅⋅⋅,αk≤1}P(v_1,···,v_k)=\{\alpha_1v_1+···+\alpha_kv_k|0 \le \alpha_1,···,\alpha_k\le1\}P(v1,⋅⋅⋅,vk)={α1v1+⋅⋅⋅+αkvk∣0≤α1,⋅⋅⋅,αk≤1}
- 要求 k≤dk\le dk≤d,比如 d=3d=3d=3 维空间中有 k=2k=2k=2 维平行四边形,但是在 d=2d=2d=2 维空间不能有 k=3k=3k=3 维的平行六面体
- 如果 v1,⋅⋅⋅,vkv_1,···,v_kv1,⋅⋅⋅,vk 线性相关,则体积 vol(P)=0vol(P)=0vol(P)=0。(例:有 k=3k=3k=3 个向量,落在一个平面上,则平行六面体的体积为 0)
平行四边形的面积
- 两个向量正交:两个向量的点积为 000
平行六面体的体积
衡量物品多样性
- 给定 kkk 个物品,把它们表征为单位向量 v1,⋅⋅⋅,vk∈Rd(d≥k)v_1,···,v_k \in R^d(d \ge k)v1,⋅⋅⋅,vk∈Rd(d≥k)
- 之前说过最好用 CLIP 学到的图文内容进行表征,这些向量都是 ddd 维的,ddd 必须大于等于 kkk。为什么呢?:
- 三维的空间中可以有二维的平行四边形,但是二维空间却不能有平行六面体
- 用超平行体的体积衡量物品的多样性,体积介于 0 和 1 之间
- 如果 v1,⋅⋅⋅,vkv_1,···,v_kv1,⋅⋅⋅,vk 两两正交(多样性好),则体积最大化,vol=1vol=1vol=1
- 如果 v1,⋅⋅⋅,vkv_1,···,v_kv1,⋅⋅⋅,vk 线性相关(多样性差),则体积最小化,vol=0vol=0vol=0
- 把它们作为矩阵 V∈Rd×kV \in R^{d×k}V∈Rd×k
- 设 d≥kd \ge kd≥k,行列式和体积满足:
- 因此,可以用行列式 det(VTV)det(V^TV)det(VTV) 衡量向量 v1,⋅⋅⋅,vkv_1,···,v_kv1,⋅⋅⋅,vk 的多样性