当前位置: 首页 > news >正文

【王树森推荐系统】重排04:DPP 多样性算法(上)

概述

  • 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,⋅⋅⋅,vkRd(这些向量是超平行体的边,它们都是 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,⋅⋅⋅,αk1}
  • 要求 k≤dk\le dkd,比如 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,⋅⋅⋅,vkRd(dk)
  • 之前说过最好用 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}VRd×k
    在这里插入图片描述
  • d≥kd \ge kdk,行列式和体积满足:
    在这里插入图片描述
  • 因此,可以用行列式 det(VTV)det(V^TV)det(VTV) 衡量向量 v1,⋅⋅⋅,vkv_1,···,v_kv1,⋅⋅⋅,vk 的多样性
http://www.lryc.cn/news/587051.html

相关文章:

  • leetGPU解题笔记(2)
  • CSAPP_第一章:计算机系统漫游读书笔记
  • 从文本中 “提取” 商业洞察“DatawhaleAI夏令营”
  • 通信子网 V
  • Java 内部类详解:从基础到实战,掌握嵌套类、匿名类与局部类的使用技巧
  • 一天速通TypeScript入门基础知识
  • Java反射机制深度解析
  • VsCode的LivePreview插件应用
  • 20250713-day14
  • UNet改进(22):融合CNN与Transformer的医学图像分割新架构
  • 板凳-------Mysql cookbook学习 (十一--------9)
  • ALB、NLB、CLB 负载均衡深度剖析
  • spring cloud负载均衡分析之FeignBlockingLoadBalancerClient、BlockingLoadBalancerClient
  • 【Complete Search】-基础完全搜索-Basic Complete Search
  • 小车避障功能的实现(第八天)
  • 【hivesql 已知维度父子关系加工层级表】
  • SpringBoot3-Flowable7初体验
  • libusb的同步和异步
  • JDBC相关知识点
  • Spring高级特性——反射和动态代理的性能优化
  • Gin框架统一响应与中间件机制学习笔记
  • spring--xml注入时bean的property属性
  • 数据结构 单链表(2)--单链表的实现
  • 【SSM】SpringBoot 实现邮件发送
  • C++--List的模拟实现
  • 代码随想录day29贪心算法3
  • 【编程实践】利用open3d生成物体的最长边方向并可视化
  • cmap=‘brg’ 在编程中的使用指南
  • python代码块的表示方法
  • 2.3 单链表的应用