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

推荐系统王树森(五)重排多样性提升

重排01:物品相似性的度量、提升多样性的方法_哔哩哔哩_bilibili

github-PPT

前面的讨论中提到 在链路的最后进行重排,重排要插入广告和运营笔记,还要做规则打散,提高推荐的丰富性,比如说一个人特别爱看足球,但也不能一页所有内容全都给他推足球,需要多样性

粗排和精排 目标是对每个物品准确打分(融合reward)但没有考虑物品的相关性。

后处理主要为了提升多样性。从 n 个候选物品中选出 k 个,既要它们的总分高,也需要它们有多样性。

重排01:物品相似性的度量、提升多样性的方法

度量相似性可以通过属性标签向量

·物品属性标签:类目、品牌、关键词等
·下例根据一级类目、二级类目、品牌计算相似度。
·物品i 三个属性分别为:美妆、彩妆、香奈儿。
·物品j 三个属性分别为:美妆、香水、香奈儿。
·两两进行 相似度: sim1(i,j)=1,sim2(i,j)=0,sim3(i,j)=1 再进行加权。

双塔模型 分别对用户和物品计算一个向量;如果拿物品塔输出的向量 去刻画物品相似性。

新物品和长尾物品的点击量比较少,模型学不好。

基于图文内容的向量表征:

对图文笔记 图片用CNN 文字用BERT分别输出一个向量再拼起来。

如何训练 CNN和BERT?

如果外界数据集 迁移到小红书可能效果不好。如果小红书自己数据集 还需要人工标注?

可以CLIP预训练 对于图片一文本二元组,预测图文是否匹配。

优势:无需人工标注 因为大多数笔记中 图片和文字还是强相关的。(天然正负样本)

利用大规模图文对,通过对比学习训练图像编码器和文本编码器,让它们在同一个语义空间里对齐,从而实现跨模态理解

重排02:MMR 多样性算法(Maximal Marginal Relevance)

粗排/精排 给了一个物品本身的reward,后处理要兼具reward和多样性

可以维护一个已经选中的物品集合S,候选项集合R。从R选综合分数最高的加入S

多样性高 就是和S集合中物品最大相似度sim越小越好;对reward和sim进行加权得分MR

S集合累积比较大的时候 因为多样性 已经涵盖各种类型的物体了,这会导致R中物品算出的sim大多为1(都会S中有强相似度的 相当于这一项就无效了)

于是进行一个滑动窗口的操作,只用最新进入S的十个物体 去和R计算相似度。

一举两得 防止S集合过大 使得sim项无效,也降低了计算复杂度。

重排03:业务规则约束下的多样性算法

重排规则:为了用户体验的一些条件约束  如下列例子

1. 最多连续出现 k 篇某种笔记(比如小红书有图文类和视频类 不能全是图文/全是视频)

2. 每 k 篇笔记最多出现 1 篇某种笔记(推广广告等用户不太想经常看到的 不能出现太多)

3. 前 t 篇笔记最多出现 k 篇某种笔记(前t篇特别重要 在用户刷到的最前面 比如小红书的前4为首屏)

原来的上面的MMR算法 是对整个集合R为候选子集。

现在在这些规则下,在挑选max前要先对子集R根据规则筛一遍为R',再对R'找max。

重排04:DPP多样性算法

把物体分别表示为单位向量,夹角越大 相似度越低 多样性越高。

正交则多样性好 线性相关则多样性差,可以建模为 这些单位向量所对应的平行多面体的体积。

  

目标函数写成


 

加上滑动窗口和规则约束;先筛成R' 每次选最近的集合W 新行列式A 就是W∪(i∈R')

求解方法 加最好的 i 使得目标函数最大

 

 后面一项就是Schur 补 si

其中 si 为把 𝑖 加入 𝑆 后的 Schur 补,比较各 𝑖 时,只需比较 

优化计算速度主要来自 可继承的 Cholesky 分解 

    http://www.dtcms.com/a/355293.html

    相关文章:

  • 银河麒麟桌面操作系统:为什么不让root直接登录图形界面?以及如何安全地解决这个问题
  • 英伟达营收和利润均超出市场预期,但盘后一度跌超5%
  • Groovy语法入门
  • [光学原理与应用-321]:皮秒深紫外激光器产品不同阶段使用的工具软件、对应的输出文件
  • 客户案例 | 国际知名内衣品牌x甄知科技,领航IT服务新征程
  • linux 网络:并发服务器及IO多路复用
  • 开发避坑指南(42):Vue3 element ui el-table单选实现方案
  • HTML静态页面实现材积计算器和材积表生成器
  • 动手学深度学习(pytorch版):第七章节—现代卷积神经网络(5)批量规范化
  • 吴炳锡:AI 时代下的湖仓一体化平台建设的思考
  • 从枯燥C++到趣味音乐:我的Windows系统底层探索之旅
  • 公共字段自动填充
  • Foundry工具大全
  • uniapp vue3 canvas实现手写签名
  • 【Node.js从 0 到 1:入门实战与项目驱动】2.4 开发工具推荐(VS Code 、IDEA及插件、终端工具、调试工具)
  • Cesium入门教程(二)环境搭建(HTML版)
  • QT:【第一个QT程序】【信号和槽】
  • 使用uni-app和Canvas生成简易双列表格布局并长按下载到本地
  • 混淆 打包 编译
  • Ovis2.5技术解密:原生分辨率与“反思模式”如何铸就新一代MLLM王者
  • 2024年山东省信息学小学组(CSP-X)第一轮题解
  • 冒泡排序算法详解(python code)
  • Python训练营打卡 DAY 50 预训练模型+CBAM模块
  • Shell 编程基础与实践要点梳理
  • PCIe 5.0 SSD连续读写缓存用完速度会骤降吗?
  • IntelliJ IDEA 反编译JAR包记录
  • Beats与Elasticsearch高效数据采集指南
  • Komo Searc-AI驱动的搜索引擎
  • 控制系统仿真之PID校正1-系统固有属性(四)
  • 【ai编辑器】使用cursor-vip获得cursor的pro版 pro plan(mac)