推荐系统的多样性总结

news/2024/5/19 23:20:28 标签: 推荐算法, 推荐系统多样性

文章目录

  • 1 推荐系统为何需要多样性
  • 2 多样性类型
  • 3 多样性评价指标
  • 4 如何改进多样性
    • 召回阶段——多路融合
    • 排序阶段——多特征建模
    • 重排阶段
  • 不同用户的多样性需求分析

推荐系统的多样性反应了一个推荐列表中内容不相似的程度。通过推荐多样性更高的内容,既能够给用户更多的机会去发现新内容,也能够让推荐系统更容易发现用户潜在的兴趣。

需要注意的是,精确性和多样性是一对Trade Off,提升多样性的代价往往以牺牲准确性为代价,因此如何平衡准确性和多样性是一个需要权衡的地方,或者从另一个角度讲如何在短期目标和长期目标间做平衡。

1 推荐系统为何需要多样性

在推荐系统中,一般主要关注于对用户的兴趣进行建模,推送其兴趣相似的items,这就导致了:

  1. 相似内容扎堆,影响用户体验,过于乏味
  2. 造成“信息茧房”,用户获取信息面过窄,信息为0.
  3. 兴趣宽泛或者表达不明确的用户体验差

多样性一般不作为建模目标,但是通过实践也证明了多样性的提升可以帮助提升时长、点击、用户长期留存等核心业务指标,这些通常需要A/B实验来确定多样性策略的优劣。

2 多样性类型

推荐多样性类型包括个体多样性、总体多样性、时序多样性。
在这里插入图片描述

  1. 个体多样性
    个体多样性从单个用户的视角衡量推荐的多样性,考察系统能够找到用户喜欢的冷门项目的能力。
    个体水平的多样性反映了推荐列表包含的主题数量以及推荐项目在不同主题上分布的均衡性。

  2. 系统多样性
    系统多样性主要强调针对不同用户的推荐应尽可能的不同。也就是所谓的"千人千面"。低系统级别的多样性意味着总是向所有用户推荐热门项目,而忽略长尾项目。因此,系统多样性也被称作长尾推荐。

  3. 时序多样性
    时序多样性是指用户兴趣的动态进化或者用户情景的时变,即与过去的推荐相比,新的推荐体现出的多样性。

评价一个推荐系统的多样性可以从以上三个维度考量。

3 多样性评价指标

1、ILS(intra-list similarity)

ILS主要是针对单个用户,一般来说ILS值越大,单个用户推荐列表多样性越差。ILS主要是针对单个用户,一般来说ILS值越大,单个用户推荐列表多样性越差。
ILS ⁡ ( R ) = 2 k ( k − 1 ) ∑ i ∈ j ≠ i ∈ R ∑ R Sim ⁡ ( i , i ) \operatorname{ILS}(R)=\frac{2}{k(k-1)} \sum_{i \in j \neq i \in R} \sum_{R} \operatorname{Sim}(i, i) ILS(R)=k(k1)2ij=iRRSim(i,i)
其中, i i i j j j 为Item, k k k 为推荐列表长度, Sim ⁡ ( . ) \operatorname{Sim}(.) Sim(.) 为相似性度量。

2、 海明距离(Hamming distance)

H i j = 1 − Q i j L H_{i j}=1-\frac{Q_{i j}}{L} Hij=1LQij
其中, L L L 为推荐列表长度, Q i j Q_{i j} Qij 为系统推荐给用户 i i i j j j 两个推荐列表中相同Item的数量。 H i j H_{i j} Hij 衡量了不同用户间的推荐结果的差异性,其值越大说明不同用户间的多样性程度越高。

3、SSD (self-system diversity)

SSD指推荐列表中没有包含在以前的推荐列表中的比例,主要考崇推荐结果的时序多样性。
SSD ⁡ ( R ∣ u ) = ∣ R / R t − 1 ∣ ∣ R ∣ \operatorname{SSD}(R \mid u)=\frac{\left|R / R_{t-1}\right|}{|R|} SSD(Ru)=RR/Rt1
其中, R t − 1 R_{t-1} Rt1 R R R 的上一次推荐, R / R t − 1 = { x ∈ R ∣ x ∉ R t − 1 } R / R_{t-1}=\left\{x \in R \mid x \notin R_{t-1}\right\} R/Rt1={xRx/Rt1} 。SSD值越小,推荐列表的时序多样性越好。

4、覆盖率 (coverage)

覆盖率是推荐给用户的Item占所有Item的比例,用来衡量对长尾Item的推茯能力。

5、K 次重复率
在一次推荐请求中,同一类别的Item连续出现 K K K 次的比率。

6、Hellinger距离

通过计算生成的topK结果的多样性分布和理想的多样性分布之间的Hellinger距离,来衡量top K 结果多样性的好坏。
H ( P , Q ) = 1 2 ∑ i = 1 k ( p i − q i ) 2 . H(P, Q)=\frac{1}{\sqrt{2}} \sqrt{\sum_{i=1}^{k}\left(\sqrt{p_{i}}-\sqrt{q_{i}}\right)^{2}} . H(P,Q)=2 1i=1k(pi qi )2 .
其中, P = ( p 1 , p 2 , … , p k ) P=\left(p_{1}, p_{2}, \ldots, p_{k}\right) P=(p1,p2,,pk) Q = ( q 1 , q 2 , … , q k ) Q=\left(q_{1}, q_{2}, \ldots, q_{k}\right) Q=(q1,q2,,qk) 为离散概率分布。

4 如何改进多样性

一般在推荐架构中,主要分为三部分,分别是召回,排序和业务策略。其中排序又分为粗排,精排和重排。
在这里插入图片描述

召回阶段——多路融合

只有第一步的召回存在多样性的item,后续的推荐结果中才有可能提升多样性结果。

因此解决推荐系统的多样性问题,首先需要考虑的是召回阶段的多样性。实践中通常使用多路召回保证更多样的内容可以进入后续阶段,工程上可以采用多线程并发召回。
在这里插入图片描述

排序阶段——多特征建模

排序阶段可以融入不同维度的特征进行建模,加入User、Item、环境特征,达到在不同的维度的多样性,一般来讲特征越丰富个性化越强同时多样性越强。

重排阶段

在这里插入图片描述
重排序的本质是最大化list-wise的打分函数
在这里插入图片描述

在相关性和多样性间取得平衡,从运筹学角度来讲是一个典型的组合优化问题,一般也是NP-Hard(不能在有限时间内得到精确最优解)。

多样性优化策略,工业界的代表性方法有:MRR、DPP、PRM等。

参考:https://zhuanlan.zhihu.com/p/264652162

不同用户的多样性需求分析

参考:https://blog.csdn.net/qq_28298991/article/details/80697205

论断:
不同活跃度的用户对推荐结果多样性的需求是不同的
活跃度越大的用户其多样性偏好也应该越大。

对低活跃度用户,他们仅仅交互了少量的物品,其行为数据不足以刻画他们的兴趣偏好,这是应该关注提高他们的推荐准确率,为他们推荐一些热门的物品而不是盲目的提高多样性,在保证一定的准确率后,用户产生更多的交互行为以后,再提高其推荐列表的多样性。

所以,作者提出的多样性问题的解决方式就是,为了平衡推荐结果的多样性和准确率,对低活跃度用户,优先考虑准确率,忽略其推荐多样性,对高活跃度用户,重视推荐列表的多样性水平,可以允许推荐结果的准确率有一定的损失。


http://www.niftyadmin.cn/n/948372.html

相关文章

图神经网络GNN在推荐系统的应用:综述

参考: 论文1: 《Graph Neural Networks in Recommender Systems: A Survey》 https://arxiv.org/pdf/2011.02260.pdf论文2: 《Graph Neural Networks for Recommender Systems: Challenges, Methods, and Directions》 https://arxiv.org/pd…

二叉树前中后层序遍历的总结对比

二叉树结构的定义: # Definition for a binary tree node.class TreeNode:def __init__(self, val0, leftNone, rightNone):self.val valself.left leftself.right right对于以上二叉树,其四种遍历顺序分别是: 中序(左中右&…

Sentence-BERT 语义相似度双塔模型

论文介绍 发表:2019,EMNLP 论文题目:《Sentence-BERT:sentence embeddings using siaese BERT-networks》 论文地址:https://arxiv.org/abs/1908.10084 Github:https://github.com/UKPLab/sentence-transformers 适用领域&#x…

torchserve使用教程(踩坑记录)

1 torch serve介绍 在生产中部署和管理模型通常是机器学习过程中最困难的部分,这项工作包括构建定制的预测 API,对其进行扩展,并加以保护等等。 简化模型部署过程的一种方法是使用模型服务器,即专门设计用于在生产中提供机器学习…

华为云服务器搭建个人网站/博客

1 购买云服务器和域名 服务器: 已经购买了华为云服务器一年的时间,新人价39感觉还挺便宜的。https://www.huaweicloud.com/?localezh-cn 域名: 选择在腾讯云上购买,因为腾讯云提供微信小程序管理你的云资源,支持微信…

三行命令 服务器秒变文件服务器

nohup可以在后台上执行python程序,所以可以根据这一点将云服务器中的某个文件夹作为共享文件夹,通过访问ip地址就可以查看和下载文件,实现文件服务器的目的。 仅需要三步就可以实现 1 进入到文件服务器的某个文件夹 cd /root/Files2 查看p…

基于Torchserve部署SBERT模型<语义相似度任务>

文章目录1 获取模型2 安装torchserve3 封装模型和接口3.1 准备模型3.2 准备接口文件3.3 封装4 部署模型4.1 启动torchserve4.2 模型推理4.3 语义相似度推理相关报错及解决办法查询结果404查询结果503查看logs/tmp/models这是一个关于如何使用TorchServe部署预先训练的HuggingFa…

本地远程访问云服务器的jupyter

文章目录1 服务器安装jupyter1.1 pip install1.2 配置文件1.3 创建登录密码2 SSH映射服务器ip到本地3 关于jupyter的其他问题3.1 启动内核找不到虚拟环境(tf,torch等等)3.21 服务器安装jupyter 1.1 pip install pip install jupyter1.2 配置…