首页 > 其他分享 >【第一章】好的推荐系统

【第一章】好的推荐系统

时间:2024-04-30 23:12:29浏览次数:22  
标签:推荐 系统 用户 列表 维度 物品 第一章

推荐系统的实验方法

  1. 离线实验
  2. 用户调查
  3. 在线实验
    AB测试: 通过一定的规则将用户随机分成几组,并对不同组的用户采用不同的算法,然后通过统计不同组用户的各种不同的评测指标比较不同算法
  • 优点:可以公平获得不同算法实际在线时的性能指标,包括商业上关注的指标
  • 缺点:周期比较长,必须进行长期的实验才能得到可靠的结果。其次,不同团队同时进行的AB测试可能会互相影响

推荐系统评测的指标:

1. 用户满意度

2. 预测准确度

  • 评分预测:评分预测的预测准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算
    关于RMSE和MAE这两个指标的优缺点,Netflix认为RMSE加大了对预测不准的用户物品评分的惩罚(平方项的惩罚),因而对系统的评测更加苛刻。研究表明,如果评分系统是基于整数建立的(即用户给的评分都是整数),那么对预测结果取整会降低MAE的误差。
  • TOP-N推荐(比评分预测更有现实意义):TopN推荐的预测准确率一般通过准确率(precision)/召回率(recall)度量。

3. 覆盖率

  • 覆盖率(coverage)描述一个推荐系统对物品长尾的发掘能力。一个好的推荐系统不仅需要有比较高的用户满意度,也要有较高的覆盖率。覆盖率为100%的系统可以有无数的物品流行度分布。为了更细致地描述推荐系统发掘长尾的能力,需要统计推荐列表中不同物品出现次数的分布。如果所有的物品都出现在推荐列表中,且出现的次数差不多,那么推荐系统发掘长尾的能力就很好。因此,可以通过研究物品在推荐列表中出现次数的分布描述推荐系统挖掘长尾的能力。如果这个分布比较平,那么说明推荐系统的覆盖率较高,而如果这个分布较陡峭,说明推荐系统的覆盖率较低。

  • 定义方法:信息熵和Gini Index

    • 信息熵:p(i )是物品i的流行度除以所有物品流行度之和。

    • Gini Index:i_j是按照物品流行度p()从小到大排序的物品列表中第j个物品!

    • 推荐系统的马太效应:评测推荐系统是否具有马太效应的简单办法就是使用基尼系数。如果G1是从初始用户行为中计算出的物品流行度的基尼系数,G2是从推荐列表中计算出的物品流行度的基尼系数,那么如果G2 > G1,就说明推荐算法具有马太效应。

4. 多样性

  • 用户兴趣是变化的,广泛覆盖用户的兴趣点有助于让用户在更多的时间内都被推荐符合兴趣的内容
  • 假设s(i,j)∈[0,1]定义了物品i和j之间的相似度,那么用户u的推荐列表R(u)的多样性定义如下:
    • 推荐系统的整体多样性可以定义为所有用户推荐列表多样性的平均值:

5. 新颖性

  • 新颖的推荐是指给用户推荐那些他们以前没有听说过的物品。在一个网站中实现新颖性的最简单办法是,把那些用户之前在网站中对其有过行为的物品从推荐列表中过滤掉。
  • 惊喜度(serendipity):之前不知道用户喜欢这个类别,但是一经推送,用户反馈很好,说明惊喜度高
  • 信任度 用户信任推荐系统有利于促进用户的反馈和交互。可以通过推荐过程透明化和增强基于好友喜欢过的东西推荐来提升

6. 时效性

  • 第一点,推荐系统需要实时地更新推荐列表来满足用户新的行为变化。比如,当一个用户购买了iPhone,如果推荐系统能够立即给他推荐相关配件,那么肯定比第二天再给用户推荐相关配件更有价值。
  • 第二点,实时性的第二个方面是推荐系统需要能够将新加入系统的物品推荐给用户。这主要考验了推荐系统处理物品冷启动的能力

7. 健壮性

任何一个能带来利益的算法系统都会被人攻击,这方面最典型的例子就是搜索引擎。搜索引擎的作弊和反作弊斗争异常激烈,这是因为如果能让自己的商品成为热门搜索词的第一个搜索结果,会带来极大的商业利益。

获取指标的方式:


评测维度

测系统中还需要考虑评测维度,比如一个推荐算法,虽然整体性能不好,但可能在某种情况下性能比较好,而增加评测维度的目的就是知道一个算法在什么情况下性能最好。这样可以为融合不同推荐算法取得最好的整体性能带来参考。一般来说,评测维度分为如下3种。

  • 用户维度 主要包括用户的人口统计学信息、活跃度以及是不是新用户等。
  • 物品维度 包括物品的属性信息、流行度、平均分以及是不是新加入的物品等。
  • 时间维度 包括季节,是工作日还是周末,是白天还是晚上等。

标签:推荐,系统,用户,列表,维度,物品,第一章
From: https://www.cnblogs.com/peterzh/p/18168855

相关文章

  • 操作系统
    操作系统的新质:进程进程(具有动态性、暂时性):一个具有独立功能的程序,在一个数据集合上的一次动态执行过程。操作系统(OS):操作系统是最靠近硬件的软件,有没有高性能是由计算机硬件决定,能否把高性能发挥出来操作系统起着决定性的作用,只有在操作系统的指令,控制下,各种计算机资源才能得到......
  • 操作系统
    处理器管理最基本的功能是处理中断事件和进行处理器调度,负责分配和控制处理器的使用。它确保各个进程能够按照一定的优先级和时间片轮转的方式运行,并处理进程间的同步和互斥问题。存储器管理主要任务是分配和管理计算机的内存资源,保证各作业占用的存储空间不发生矛盾,使它们在自己......
  • 简述微机系统的基本构成
    微型计算机系统组成1、微型计算机系统组成框图2、微型计算机的基本设计思想迄今为止,计算机仍沿用由美籍匈牙利数学家冯.诺依曼首先提出的体系结构。基本设计思想为:①以二进制形式表示指令和数据。②程序和数据事先存放在存储器中,计算机在工作时能够高速地从存储器中取出指令......
  • 计算机操作系统
    操作系统(OperatingSystem,OS)是指控制和管理整个计算机系统的硬件和软件资源,并合理的组织调度计算机的工作和资源ShYLie:机基本子系统是整个系统的核心,对整个系统起监督、管理、控制作用,例如进行复杂的信号处理、控制决策、产生特殊的测试信号,控制整个检测过程等等。此外,利用微机......
  • 基于SSM的校园论坛网站系统毕业设计论文【范文】
    摘要随着信息技术的不断进步与深入应用,校园论坛系统作为高校师生信息交流、知识共享和意见交换的重要网络平台,其作用日益凸显。基于此背景,本毕业设计论文旨在开发一个基于SSM(Spring+SpringMVC+MyBatis)框架的校园论坛系统,以提供高效、稳定且易于维护的交流环境。在系统设计......
  • Vue入门到关门之指令系统
    一、引入在Vue.js中,指令(Directives)是一种特殊的标记,用于向Vue实例提供特殊的行为。指令以v-开头,例如v-if、v-for等。指令的本质就是语法糖,标志位。在编译阶段render函数里,会把指令编译成JavaScript代码。注意:指令都是放在标签上的二、指令1、文本指令(1)v-text......
  • 操作系统
    操作系统(OperatingSystem,简称OS)是一组控制和管理计算机硬件资源的程序,以及用于执行这些程序的用户界面。它负责处理计算机系统的各种基本操作,如处理器管理、内存管理、文件管理、设备管理和用户接口等。操作系统的主要目标是提高计算机系统的资源利用率和效率,为用户提供友好的操......
  • kali系统在hyper-v上的配置
    镜像下载地址下载:将压缩包解压,后找到.bat文件,以管理员身份运行。之后便可以在\(hyper-v\)管理器中看到其虚拟机。汉化处理:在最上面找到终端,点击打开。1.打开终端输入命令:sudodpkg-reconfigurelocales,回车。输密码。第二步:使用键盘键(向下键)一直翻到最后,此处无法使......
  • 操作系统
    1、操作系统的基本概念管理控制计算机软硬件资源、合理组织计算机工作流程以方便用户有效使用计算机的大型程序集合。2、操作系统的四个特性并发性:宏观并行,微观串行;共享性:多个进程共同使用;虚拟性:物理上一个,逻辑上多个;异步性:程序执行的进程不是确定性的。3、操作系统的分类批......
  • 操作系统
    操作系统(缩写:OS)是一种内置的程序,用来协作计算机的各种硬件,以与用户进行交互。它是计算机系统的内核与基石,负责管理电脑硬件与软件资源。操作系统的主要功能包括:处理器管理:安排好处理器的使用权,即在每个时刻处理器分配给哪个程序使用。存储管理:统一安排与管理计算机内存中存放......