首页 > 编程语言 >传统Item-Based协同过滤推荐算法改进

传统Item-Based协同过滤推荐算法改进

时间:2024-01-29 18:56:03浏览次数:34  
标签:Based 项目 评分 矩阵 用户 Item 算法 最近 相似性

前言

今天要读的论文为一篇于2009年10月15日发表在《计算机研究与发展》的一篇会议论文,论文针对只根据相似性无法找到准确可靠的最近邻这个问题,提出了结合项目近部等级与相似性求取最近邻的新方法;此外针对系统中新加入的项目,因为其上评分信息的匾乏,求得的最近邻往往是不准确的,为此,提出了聚合最近邻和”集体评分”两种改进方法。

摘要

传统Item-Based协同过滤算法根据项目之间的相似性来选取最近邻居。然而,现存的几种相似性度量方法都存在相应的弊端,因此只根据相似性无法找到准确可靠的最近邻。根据对两项目共同评分的用户个数,建立项目近邻等级,提出了结合项目近部等级与相似性求取最近邻的新方法。另外,对于系统中新加入的项目,因为其上评分信息的匾乏,求得的最近邻往往是不准确的。为此,提出了聚合最近邻和”集体评分”两种改进方法。在MovieLens数据集上的实验结果表明,将上述改进应用于传统Item-Based协同过滤推荐算法,推荐质量有明显提升。

传统的item-based协同过滤推荐算法

推荐系统中,数据的核心是一个用户一项目评分矩阵A(m,n),它包含m个用户的集合U={u1, u2, ..., um},和n个项目的集合I={i1, i2, ..., in},元素Rui表示用户u对项目i的评分,若用户u未对项目i评分,则Rui=0.

项目的相似度度量方法

首先我们定义:

  • 对于任意的i∈I,定义项目一评分矩阵A(m,n)中对应于i的列为项目i的评分向量,记为Ui
  • 对于任意的u∈U,定义项目一评分矩阵A(m,n)中对应于u的 行为用户u 的评分向量,记为Iu

余弦相似度

  • 标准的余弦相似度:
    image

  • 修正的余弦相似度
    不同用户存在不同评分尺度的偏见,下面将采取减去对应项目上所有用户的平均评分的方法,来刻画用户对某一项目的评分与“公众意见”的偏差。
    image

相关相似性

根据pearson提出的相关系数来度量项目之间的相似性,定义对项目i和j都有评分的用户集合为Uij

image

选择合适的相似性度量方法,求出项目集I中任意两项目之间的相似性,存入项目相似性矩阵Sim中,显然,Sim是对称矩阵。

最近邻的选取

中心最近邻

中心最近邻,是当前最常用也是最成功的最近邻选取方法。对于任意的i∈I,根据相似性矩阵Sim中其他项目与i的相似性,按从大到小顺序排列,将相应的项目编号存入最近邻矩阵TkNN的相应行中,构成项目i的最近邻集合;即第一最近邻与i的相似性最高,第二最近邻次之,依此类推。

聚合最近邻

聚合最近邻,对于某些新加人的项目,其评分向量与其他项目的评分向量的交集很小,不利于准确地计算相似性。比如说,已知当前项目i的第一最近邻为j,项目k和i被1个用户共同评分,项目t和i没有被共同评过分。这样,在i的最近邻列表中,k排在t前。但此时,若t是j的第一最近邻,那么t
也很有可能是i的最近邻。聚合最近邻的思想就是基于上述考虑。

算法改进

求取最近邻过程的改进—结合使用项目相似性与项目近邻等级

求取最近邻是整个协同过滤算法最关键的一步。最近邻越准确,其推荐结果就越可靠。因为最近邻根据项目相似性矩阵Sim来选取。

产生推荐过程的改进—集体评分

对于新加入的项目,集体评分是一个解决难以找到新加入项目最近邻的好方法。

结尾

好了,今天的论文就先读到这儿了,明天再见喽。

标签:Based,项目,评分,矩阵,用户,Item,算法,最近,相似性
From: https://www.cnblogs.com/wephiles/p/17995008

相关文章

  • 二分算法
    二分算法个人感想洛谷二分题单基本完成,发现二分确实是比较模板的方式解答题目,难点往往是寻找出答案的单调性和如何高效验证答案的正确性。二分个人感觉就是枚举的优化,在时间复杂度上的极大优化,有一种暴力的美.目前发现的不足对题目的理解太浅,有时很难看懂题目的意思,理解有问......
  • 视频汇聚平台智能边缘分析一体机算法分析人员吸烟告警
    在这个科技日新月异的时代,安全和健康已经成为了我们生活中不可忽视的话题。而在众多安全防范措施中,智能边缘分析一体机的出现,无疑为我们的生命财产安全增添了一份强有力的保障。今天,我要讲述的是一个关于智慧与安全的故事,它发生在智能边缘分析一体机算法分析平台上,一个能够精准检测......
  • 视频汇聚平台智能边缘分析一体机算法分析人员吸烟告警
    在这个科技日新月异的时代,安全和健康已经成为了我们生活中不可忽视的话题。而在众多安全防范措施中,智能边缘分析一体机的出现,无疑为我们的生命财产安全增添了一份强有力的保障。今天,我要讲述的是一个关于智慧与安全的故事,它发生在智能边缘分析一体机算法分析平台上,一个能够精准检......
  • 安防视频监控平台LntonAIServer视频算法分析平台算法检测明烟明火预警
    今天,我要讲述的是一个关于智慧与安全的故事,它发生在LntonAIServer视频算法分析平台上,一个能够精准检测明烟和明火预警的高科技平台。想象一下,当夜幕降临,城市的喧嚣渐渐平息,大多数人沉浸在甜美的梦乡时,LntonAIServer却在无声中坚守着它的岗位。它的眼睛不眨不闭,通过高......
  • Rabbit加密算法:保护数据隐私的新选择
    摘要:数据安全是当今信息时代的关键问题之一。为了保护敏感数据免受未经授权的访问和窃取,加密算法起到了至关重要的作用。本文将介绍Rabbit加密算法的优缺点,以及它如何解决现代加密中的一些问题。本文还将提供一个使用Java编写的完整示例,以帮助读者深入了解Rabbit加密算法的实......
  • 算法模板 v1.4.2.20240129
    算法模板v1.1.1.20240115:之前的历史版本已经不可寻,创建了第一份算法模板。v1.2.1.20240116:删除“编译”-“手动开栈”与“编译”-“手动开O优化”;将“编译”-“CF模板”中的第20行代码cin>>T;注释;删除“读写”及其目录下的内容;删除“图论”-“欧拉图”-“混合图”;删除“图论”-......
  • 遗传算法(Genetic Algorithm)
    算法简介遗传算法(GeneticAlgorithm,GA)是一种基于自然选择和遗传操作的随机全局搜索优化算法。它通过模拟自然选择和遗传中发生的复制、交叉(crossover)和变异(mutation)等现象,从任一初始种群(父代)开始,通过随机选择、交叉和变异操作,产生更具有生存优势的子代,使群体不断向搜索空间最......
  • 【算法】004_链表
    哈希表哈希表增删改查是常数时间,但是这个常数时间比较大放入哈希表的东西,如果是基础类型,内部按值传递,内存占用就是这个东西的大小放入哈希表的东西,如果不是基础类型,内部按引用传递,内存占用就是这个东西的内存地址的大小有序表有序表的增删改查是O(logn)级别的放入有序表......
  • RL5 PPO算法
    PPO算法算法是一类典型的算法,既适用于连续动作空间,也适用于离散动作空间。算法是一种基于策略梯度的强化学习算法,由的研究人员等人在年提出。算法的主要思想是通过在策略梯度的优化过程中引入一个重要性权重来限制策略更新的幅度,从而提高算法的稳定性和收敛性。算法......
  • (算法)快速幂运算和取模的基本知识
    引子:在高精度中的麦森数中运用到了快速幂运算求一个数的多少次方可以用到快速幂,原理a^11=a^1*a^3*a^8,而为什么是拆成1,3,8而不是其他的呢,是因为11转化为二进制码是1011,这就分别对应了他的权重,有了这个基本知识后,执行这种类似的运算就可以大幅度减少时间。实现这个代码还需要用到位......