基于用户-项目特征的协同过滤推荐改进算法

合集下载

基于客户顾目的聚类协同过滤组合推荐算法研究

基于客户顾目的聚类协同过滤组合推荐算法研究
际上 , 许多个性化推荐 系统要 对大量 的数据信息进行处理 , 在这些 系统 中一般普通用户购买商品的总量仅 占网站总商品数量的 5 %左 右 , 从而造成 了评价矩阵( 用户一 项矩阵 ) 常稀疏. 非 在大而稀疏的矩阵中, 不仅
难 以找到最近相邻用户集 , 同时在进行相似性计算上也要耗费掉大量的时间和空 间, 而且在大稀疏矩阵中 形成 目标用户的最近相邻用户集时 , 在进行用户间潜在传递关联中往住会造成信息的丢失 。 从而导致推荐
收 稿 日期 :0 1 40 2 1 - -6 0
基金项 目: 广西教育厅科研项 目(0 1 6 X 1 )广 西 自然科学留学回国基金项 目(0 1 XN F 0 8 0 ) 210L 47 ; 2 1G S C 10 5 资助
作者简介: 杨毅 , 实验师, 工学硕士 , 研究方向 : 网格计算与协 同工作 。— a : s 19 @ 6 . m Em it k98 13 0 . lh c
效率不理想.
2 冷启动问题 (o .a )也称 为新项 目问题 ( e .e ) 由于传 统 的协 同过滤推荐是基于邻居用户 ) cl s r : d tt N wi m , t
信息得到 目标用户的推荐 , 在首次出现新 的项 目的时候 , 因为没有用户对新项 目作过评 价 ; 因此 。 单一基于 用户 的协 同过滤无法对它进行 预测评分和推荐. 而且新项 目出现早期 如果 有用户对其评价 , 用户评价也是 较少 的, 推荐的准确度也较差 , 推荐系统对新用户的推荐效果也很差 , 当一个协同过滤推荐 系统刚开始运 行 的情况 。 每个用户在每个项 目上都会面临冷启动问题.
抛c 蛐 = 渤%

!_ c "t .r 二 J Z m, 兰 , , 一 、 ;、

基于协同过滤算法的推荐系统研究

基于协同过滤算法的推荐系统研究

基于协同过滤算法的推荐系统研究一、引言在互联网时代,信息爆炸的背景下,推荐系统一度成为了各大互联网平台必备的技术。

推荐系统通过分析用户历史行为或者使用其他算法,为用户推荐个性化的产品,极大提升了用户体验。

协同过滤算法是推荐系统的核心算法之一,本文将会系统地研究基于协同过滤算法的推荐系统。

二、协同过滤算法协同过滤算法是一种基于用户之间的相似度或物品之间的相似度,来预测用户对物品的评价的算法。

协同过滤算法有两种实现方式:基于用户的协同过滤算法和基于物品的协同过滤算法。

基于用户的协同过滤算法是指通过分析用户历史行为,找出跟目标用户行为最相似的一些用户,然后将这些用户评价高的物品推荐给目标用户。

而基于物品的协同过滤算法则是指通过分析物品的评价数据,找出被目标用户喜欢的物品,然后推荐与这些物品相似的物品给目标用户。

协同过滤算法的优点是适用于各种类型的数据,缺点则在于数据稀疏问题,即对于少有人评价的物品,难以通过协同过滤算法来推荐给目标用户。

三、推荐系统架构设计推荐系统的架构设计分为三个阶段:数据处理、推荐算法和推荐结果的展示。

数据处理阶段主要需要对原始数据进行清洗处理,并将处理后的数据存储到数据仓库中。

推荐算法阶段需要选择适合场景的协同过滤算法,并通过模型训练与优化来提升推荐效果。

最后,推荐结果的展示需要在用户界面上呈现最终的推荐结果,包括推荐物品、推荐理由等。

四、协同过滤算法优化协同过滤算法存在的问题主要有三个:数据稀疏问题、冷启动问题和推荐结果的解释问题。

数据稀疏问题可以通过引入隐语义模型、奇异值分解(SVD)等技术来解决。

隐语义模型是一种通过对物品和用户进行向量表示,并通过矩阵分解找到对应的相似度,来解决数据稀疏问题的模型。

SVD是一种将矩阵分解成三个矩阵的方法,通过优化这三个矩阵,可以得到非常好的预测效果。

冷启动问题则可以通过引入基于内容的推荐算法来解决。

基于内容的推荐算法是一种通过分析物品的内容特征,来推荐类似的物品给目标用户的方法。

推荐系统基于协同过滤

推荐系统基于协同过滤

推荐系统基于协同过滤3. 基于协同过滤的推荐算法(⽤户和物品的关联)协同过滤(Collaborative Filtering,CF)-- ⽤户和物品之间关联的⽤户⾏为数据①基于近邻的协同过滤 基于⽤户(User-CF) --⽤户画像 基于物品(Item-CF) -- 基于内容-特征⼯程②基于模型的协同过滤 奇异值分解(SVD) 潜在语义分析(LSA) ⽀撑向量机(SVM)协同过滤CF -- ⽤户⾏为数据基于内容(Content based,CB)(物品的信息拿不到基于内容就⽆法做了)主要利⽤的是⽤户评价过的物品的内容特征,⽽CF⽅法还可以利⽤其他⽤户评分过的物品内容CF 可以解决 CB 的⼀些局限(⽤户评价可得出物品的好坏,但CF⽆法做出冷启动,基于⼤量数据) 物品内容不完全或者难以获得时,依然可以通过其他⽤户的反馈给出推荐 CF基于⽤户之间对物品的评价质量,避免了CB仅依赖内容可能造成的对物品质量判断的⼲扰 CF推荐不受内容限制,只要其他类似⽤户给出了对不同物品的兴趣,CF就可以给⽤户推荐出内容差异很⼤的物品(但有某种内在联系)分为两类:基于近邻和基于模型①. 基于近邻的推荐基于近邻(基于⽤户之间的关联)的推荐系统根据的是相同“⼝碑”准则是否应该给Cary推荐《泰坦尼克号》?基于⽤户的协同过滤(User-CF)⽤户的⾏为数据基于⽤户的协同过滤推荐的基本原理是,根据所有⽤户对物品的偏好,发现与当前⽤户⼝味和偏好相似的“邻居”⽤户群,并推荐近邻所偏好的物品在⼀般的应⽤中是采⽤计算“K- 近邻”的算法;基于这 K 个邻居的历史偏好信息,为当前⽤户进⾏推荐User-CF 和基于⼈⼝统计学的推荐机制 两者都是计算⽤户的相似度,并基于相似的“邻居”⽤户群计算推荐 它们所不同的是如何计算⽤户的相似度:基于⼈⼝统计学的机制只考虑⽤户本⾝的特征,⽽基于⽤户的协同过滤机制可是在⽤户的历史偏好的数据上计算⽤户的相似度,它的基本假设是,喜欢类似物品的⽤户可能有相同或者相似的⼝味和偏好基于物品的协同过滤(Item-CF)基于项⽬的协同过滤推荐的基本原理与基于⽤户的类似,只是使⽤所有⽤户对物品的偏好,发现物品和物品之间的相似度,然后根据⽤户的历史偏好信息,将类似的物品推荐给⽤户Item-CF 和基于内容(CB)的推荐 其实都是基于物品相似度预测推荐,只是相似度计算的⽅法不⼀样,前者是从⽤户历史的偏好推断,⽽后者是基于物品本⾝的属性特征信息同样是协同过滤,在基于⽤户和基于项⽬两个策略中应该如何选择呢? 电商、电影、⾳乐⽹站,⽤户数量远⼤于物品数量 新闻⽹站,物品(新闻⽂本)数量可能⼤于⽤户数量User-CF 和 Item-CF 的⽐较同样是协同过滤,在 User-CF 和 Item-CF 两个策略中应该如何选择呢?Item-CF 应⽤场景-- ⽤户⾏为数据 -- 主流 基于物品的协同过滤(Item-CF)推荐机制是 Amazon 在基于⽤户的机制上改良的⼀种策略。

协同过滤算法简介

协同过滤算法简介

协同过滤算法简介协同过滤算法是一种常见的推荐算法,它的核心思想是基于用户的历史行为数据,找到具有相似行为模式的用户或物品,通过计算它们之间的相似度,进行推荐。

协同过滤算法不需要事先建立物品或者用户的特征向量,可以适用于不同领域的推荐问题。

1. 基于用户的协同过滤算法基于用户的协同过滤算法,也叫做用户-用户协同过滤算法,它的核心思想是寻找和目标用户相似的其他用户,将这些用户喜欢的物品推荐给目标用户。

这种算法的实现过程通常包括以下步骤:(1)找到和目标用户兴趣相似的其他用户。

(2)将这些用户喜欢的物品进行统计和分析,找到这些物品中目标用户还没有看过的物品。

(3)将这些物品推荐给目标用户。

基于用户的协同过滤算法有一个优点,就是它很容易实现。

但是,这种算法也有一些缺点。

首先,当用户数目非常大时,时间和空间复杂度可能会很高。

其次,由于用户的兴趣爱好可能非常多样化,因此很难找到和目标用户相似的其他用户。

2. 基于物品的协同过滤算法基于物品的协同过滤算法,也叫做物品-物品协同过滤算法,它的核心思想是寻找和目标物品相似的其他物品,并将这些物品推荐给目标用户。

这种算法的实现过程通常包括以下步骤:(1)找到和目标物品相似的其他物品。

(2)将这些物品推荐给目标用户。

基于物品的协同过滤算法的优点是它会同时考虑很多用户的行为数据,而不是仅仅只考虑一个用户的数据。

这种算法的缺点是它相比于基于用户的算法来说较为复杂,并且对于新物品的评估可能会非常困难。

3. 混合协同过滤算法混合协同过滤算法是基于用户的协同过滤算法和基于物品的协同过滤算法的结合。

这种算法的主要思想是将基于用户的协同过滤算法和基于物品的协同过滤算法的结果进行加权平均,从而得到更加准确的推荐结果。

混合协同过滤算法的优点是它能够同时考虑基于物品的协同过滤算法和基于用户的协同过滤算法的结果,从而得到更加准确的推荐结果。

但是,这种算法的缺点也很明显,它需要消耗更多的计算资源,并且需要更多的存储空间。

基于协同过滤算法的音乐推荐系统设计与实现

基于协同过滤算法的音乐推荐系统设计与实现

基于协同过滤算法的音乐推荐系统设计与实现音乐推荐系统是利用计算机科学和人工智能技术来分析用户的音乐偏好,提供个性化的音乐推荐服务的应用程序。

而基于协同过滤算法的音乐推荐系统是其中一种常见且有效的推荐算法。

本文将介绍基于协同过滤算法的音乐推荐系统的设计与实现,并分析其优缺点。

首先,我们需要了解协同过滤算法。

协同过滤算法基于用户行为信息,通过分析用户与其他用户的相似性,推荐与用户兴趣相匹配的音乐。

它主要有两种实现方式:基于用户的协同过滤(User-based Collaborative Filtering)和基于物品的协同过滤(Item-based Collaborative Filtering)。

在设计音乐推荐系统时,首先需要建立用户-音乐评分矩阵。

这个矩阵记录了用户对不同音乐的评分情况。

接着,可以通过计算用户之间的相似度来实现基于用户的协同过滤算法。

常用的相似度计算方法有欧氏距离、余弦相似度等。

通过对相似度高的用户的评分情况加权平均,就可以得到对目标用户可能感兴趣的音乐进行推荐。

另一种实现方式是基于物品的协同过滤算法。

在这种方法中,首先需要计算音乐之间的相似度。

相似度可以使用和用户-音乐评分矩阵类似的方式来计算,只是在这里,我们计算的是不同音乐之间的相似度。

接着,对于目标用户,我们可以通过该用户已经评分过的音乐和其他音乐的相似度来预测用户对其他音乐的评分,并根据预测的评分进行推荐。

在实际实现过程中,还可以结合基于内容过滤的方法,将音乐的特征信息(如流派、歌手、年份等)纳入推荐系统中。

这样可以在协同过滤算法的基础上,进一步提高推荐系统的准确性。

另外,为了解决冷启动问题,还可以引入基于人口统计学数据和个性化用户问卷调查等方法,来获取新用户的兴趣和偏好信息。

基于协同过滤算法的音乐推荐系统具有以下优点:第一,它不需要事先对音乐进行特征提取或人工标注,只需要通过用户行为数据进行计算,更加便捷;第二,协同过滤算法能够挖掘用户之间的隐含关系,发现新的推荐音乐,丰富用户的听觉体验;第三,该算法对于稀疏的数据也有一定的鲁棒性,可以进行有效的推荐。

基于协同过滤算法的音乐推荐系统设计与实现

基于协同过滤算法的音乐推荐系统设计与实现

基于协同过滤算法的音乐推荐系统设计与实现音乐推荐系统在现代社会发挥着越来越大的作用。

从最早的基于简单规则的推荐到现在的机器学习、深度学习等算法的应用,音乐推荐系统已经成为了一项极为复杂和具有挑战性的系统设计任务。

其中,基于协同过滤算法的音乐推荐系统尤为重要。

本文将介绍基于协同过滤算法的音乐推荐系统的设计与实现。

一、协同过滤算法的基本原理协同过滤算法是一种基于用户行为的推荐算法。

其基本思想是通过分析用户的历史行为,找到与其兴趣相似的其他用户,然后向该用户推荐那些其他用户喜欢的项目。

其基本流程如下:1.构建用户项目矩阵用户项目矩阵是协同过滤算法的基本数据结构。

它是一个二维矩阵,其中每一行表示一个用户,每一列表示一个项目。

矩阵中的每个元素表示用户对该项目的评分或者行为。

2.寻找相似用户协同过滤算法的核心是找到与目标用户兴趣相似的其他用户。

常用的相似度计算方法包括欧氏距离、皮尔逊相关系数、余弦相似度等。

3.预测目标用户对项目的评分找到相似用户后,就可以根据这些用户对项目的评分,预测目标用户对项目的评分。

常用的预测方法包括加权平均、基于用户偏好的预测、基于项目偏好的预测等。

4.推荐项目根据预测的评分,可以向用户推荐他们可能感兴趣的项目。

常用的推荐方法包括基于最高评分的推荐、基于用户喜好的推荐、基于项目流行度的推荐等。

二、音乐推荐系统的设计基于协同过滤算法的音乐推荐系统的设计可以分为以下几个步骤。

1.数据收集音乐推荐系统需要大量的数据作为基础。

数据的收集可以通过多种方式,例如爬取音乐网站的数据、购买商业数据、借助API 接口等。

2.数据预处理收集到的音乐数据需要进行预处理,主要包括数据清洗、特征提取、数据标准化等操作。

3.用户模型设计用户模型是音乐推荐系统的核心,它定义了用户的属性、行为和偏好等信息。

用户模型的设计需要考虑多方面因素,例如音乐类型、年龄、性别、地域等。

4.相似度计算相似度计算是音乐推荐系统的核心算法之一。

协同过滤算法的问题及解决方案

协同过滤算法的问题及解决方案

协同过滤算法的问题及解决方案作者:徐丽张新英来源:《魅力中国》2018年第18期摘要:为了能够更好地改进协同过滤技术,适应推荐系统发展的需要,首先要分析协同过滤在实现过程中存在的问题,从而进行有针对性的改进,也就是寻找合理的解决方案关键词:协同过滤;问题;推荐算法一、协同过滤在应用中存在的问题为了能够更好地改进协同过滤技术,适应推荐系统发展的需要,首先要分析协同过滤在实现过程中存在的问题,从而进行有针对性的改进。

通过对协同过滤技术以及推荐系统的研究,我们发现协同过滤技术的实现中存在的问题主要有以下几点。

(一)稀疏性问题协同过滤技术的实现首先需要使用用户—项评价矩阵对用户信息进行表示,尽管这在理论上很简单,但实际上,许多电子商务推荐系统要对大量的数据信息进行处理,而在这些系统中一般用户购买商品的总量占网站总商品量的1%左右,因此造成了评价矩阵(用户-项矩阵)非常稀疏。

在这种数据量大而且又稀疏的情况下,一方面难以找到最近邻居用户集,另一方面进行相似性计算的耗费也会很大。

(二)冷启动问题冷启动问题又称第一评价问题(first- rater),或新物品问题(New-item),从一定角度可以看成是稀疏问题的极端情况。

因为传统的协同过滤推荐是基于相似用户/物品计算来得到目标用户的推荐,在一个新的项目首次出现的时候,因为没有用户对它作过评价,因此单纯的协同过滤无法对其进行预测评分和推荐。

而且,由于新项目出现早期,用户评价较少,推荐的准确性也比较差[25]。

相似的,推荐系统对于新用户的推荐效果也很差。

冷启动问题的极端的案例是:当一个协同过滤推荐系统刚开始运行的时候,每个用户在每个项目上都面临冷启动问题。

(三)可扩展性问题在协同过滤推荐算法中,全局数值算法能及时利用最新的信息为用户产生相对准确的用户兴趣度预测或进行推荐,但是面对日益增多的用户,数据量的急剧增加,算法的扩展性问题(即适应系统規模不断扩大的问题)成为制约推荐系统实施的重要因素。

推荐系统中的协同过滤算法原理及实现步骤

推荐系统中的协同过滤算法原理及实现步骤

推荐系统中的协同过滤算法原理及实现步骤协同过滤算法是一种常用于推荐系统的算法,通过利用用户行为数据和物品属性信息来预测用户对物品的偏好,并推荐给他们可能感兴趣的物品。

本文将介绍协同过滤算法的原理和实现步骤。

一、协同过滤算法原理协同过滤算法基于相似性原理来进行推荐,可以分为两种类型:基于用户的协同过滤和基于物品的协同过滤。

1. 基于用户的协同过滤基于用户的协同过滤算法计算用户之间的相似性,然后根据相似用户的行为来推荐物品。

其核心原理是:如果两个用户在过去的行为中有相似的偏好和兴趣,那么他们在未来的行为中可能也会有相似的偏好和兴趣。

2. 基于物品的协同过滤基于物品的协同过滤算法计算物品之间的相似性,然后根据用户对相似物品的偏好来推荐物品。

其核心原理是:如果一个用户对某个物品有兴趣,那么他可能对与该物品相似的其他物品也有兴趣。

二、协同过滤算法实现步骤协同过滤算法的实现步骤可以分为以下几个步骤:1. 数据预处理在实施协同过滤算法之前,需要对用户行为数据进行预处理。

预处理的目的是清洗数据、处理缺失值和离群值,以及将数据转换为适合算法处理的格式。

2. 计算用户相似度或物品相似度对于基于用户的协同过滤,需要计算用户之间的相似性;对于基于物品的协同过滤,需要计算物品之间的相似性。

相似性可以使用余弦相似度、皮尔逊相关系数等方法进行计算。

3. 预测评分通过用户相似度或物品相似度,预测用户对未评分物品的评分。

对于基于用户的协同过滤,可以根据相似用户的评分加权平均来进行预测;对于基于物品的协同过滤,可以根据用户对相似物品的评分加权平均来进行预测。

4. 推荐物品根据预测的评分,为用户推荐可能感兴趣的物品。

可以根据预测评分的降序排序,选取Top N的物品作为推荐结果。

5. 评估算法效果为了评估协同过滤算法的效果,可以使用常见的评测指标,如准确率、召回率、覆盖率等。

三、总结协同过滤算法是一种常用的推荐算法,可以根据用户行为数据和物品属性信息进行预测和推荐。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于用户-项目特征的协同过滤推荐改进算法朱 珠,辜丽川,舒贵阳,冯娟娟,王 超,陈 卫( 安徽农业大学 信息与计算机学院,安徽 合肥 230036 )摘 要:基于用户的协同过滤推荐算法是当前使用范围最广的推荐算法之一。

传统的协同过滤推荐算法仅依靠用户对项目的打分记录,数据稀疏度高而且来源单一,对用户间相似度测算的可信度影响较大。

针对这一问题,引入用户画像信任度和类别评分差异度两个概念,对传统基于用户的协同过滤推荐算法进行改进,提出一种多维用户相似性计算方法,该算法通过调节用户画像信任度和类别评分差异度在用户相似性计算中的贡献系数,进而影响推荐算法评价指标MAE 的变化,实验结果表明,新算法较原算法在命中率和准确率上有较大提高。

关键词:用户画像; 项目类别; 相似性; 协同过滤中图分类号:TP399 文献标识码:A 文章编号:1673-9639 (2017) 09-0015-05协同过滤推荐算法[1-2]是应用最为广泛的推荐方法之一,在亚马逊网、Netflix 、YouTube 等在线电子商务[3]、移动应用[4]等领域作为个性化信息服务的解决方案,都有较为成功的应用。

随着数据量增大,用户对项目的打分数量有限,每个用户的打分数量通常小于整体待评分项目的1‰,用户-项目打分矩阵数据稀疏等级高,数据重叠性低,严重制约了用户间相似度测算的可信度,降低了推荐算法的性能。

因此,如何通过用户相似性计算为目标用户过滤出可靠的邻居用户成为算法亟待解决的关键问题。

为解决数据稀疏性问题,赵琴琴等[3]依据用户-项目评分矩阵,通过相似度传播,为目标用户寻找更多、更可靠的邻居,并分别从用户和项目两方面寻找用户、项目的相似性。

胡勋等[5]为提高基于共同评分项目的用户相似度计算精度,使用推土机距离实现跨项目的移动用户相似度计算,提出一种将移动用户信任关系与项目评分特融合的协同过滤推荐算法;贾冬艳等基于用户相似度计算的结果,动态选取目标用户的兴趣相似集,并依据用户评分信息计算目标用户与兴趣相似用户的信任度,实现双重邻居选取[1]。

以上处理方式在一定程度上缓和了数据稀疏性问题,但这些方式的数据来源单一,仅依赖于用户对项目的行为记录,没有考虑用户和项目自身特征差异对相似性的影响,用户信任度稳定性较低,往往导致推荐结果的准确率和命中率降低。

为解决上述问题,本文引入“用户画像”和“用户对同一类别项目的评分量”两个度量因子,提出一种改进相似度的协同过滤推荐算法,实验结果证明该方法在准确度等方面有较大改善。

1.相关概念1.1.度量相似性 1.1.1.余弦相似性将用户i 和用户j 的评分向量视为n 维空间向收稿日期:2017-03-22 基金项目:国家自然科学基金项目(31371533);安徽省重大科技专项(16030701092);安徽农业大学2015年度教育改革与发展研究项目(18)。

作者简介:朱 珠(1992-),女,安徽六安人,硕士,研究方向:数据挖掘、机器学习等。

第19卷 第9期 铜仁学院学报 V ol. 19, No. 92017年 9 月 Journal of Tongren University Sep. 2017表示为i和j ,用户相似性通过向量相似度衡量[2],量,以向量夹角余弦值表示,若夹角在区间[0,90]之间,向量间夹角越大,相似性越低。

那么用户i 和j 之间的相似性表示为:(,)cos(,)i jsim i j i j i j ==(1)1.1.2.修正余弦相似性余弦相似性忽略了用户打分尺度的差异,导致相似性计算存在误差。

因此,提出了修正相似性测量方法,在计算中减去用户对项目打分记录的平均值。

设集合ij I 是用户i 和j 共同打分的项目集,改进的用户i 和j相似性计算公式表示为:()()(,)sim i j R R --2)其中:用户i 对项目c 的打分视为,i c R ,用户i 和j 对项目的平均打分分别为i R 和j R 。

1.2.预测评分和推荐提出的算法采用加权预测评分策略:以目标用户平均打分作预测评分基数,根据目标用户的相似邻居集合u NS 中用户打分情况,以用户相似性为权重系数,结合邻居用户对目标项目的评分与邻居用户平均打分偏差加权组合得出预测评分,如下式:,,(,)()(,)uun i n n u u in sim u n NS sim u n NS r r pr ∈∈⋅-=+∑∑(3)其中,,u n r r 是用户u 和n 的平均打分值。

最后对预测评分值降序排列,依次选择前N 个用户未评分的项目推荐给目标用户。

2.算法设计2.1.传统基于用户的协同过滤算法的缺陷 2.1.1.用户间相似性度量不够准确(1)忽略了用户画像对用户相似性的影响。

假设表1中U A 和B U 分别是两个男性和女性用户,依据表1的评分记录显然用户B U 会向用户U A 推荐项目4I ,但如果项目4I 是女士发卡,那么该推荐商品对B U 不适用。

由此可知,单纯依赖用户-项目评分度量用户相似性不够准确,用户对项目的兴趣与用户自身特征有关,如用户性别、年龄等,依据这些特征系统能够描绘出用户形象,因此把用户自身特征信息称为用户画像,用户画像相似性越大,则推荐信任度越高[6,10]。

表1 用户-项目评分矩阵 Tab . 1 The experimental data set1I2I3I4I5IU A 2 4 3 0 4 B U2 43 5 4(2)忽略了用户对不同类别项目[7]的兴趣差异。

用户选择系统中项目,一方面是因为用户兴趣所至,另一方面主要是从实用角度该项目的某个关键特征符合用户需求。

因此,统计用户对不同类别项目的评分次数就是用户对各类项目兴趣程度的标志,由此定义用户类别评分差异度作为用户相似性衡量因素,提高相似性计算精度。

2.1.2.在选取近邻用户时,受到最近邻K 的约束本文采用多种相似性度量因子加权的思想计算用户相似性,虽然进行归一化处理,但是相比于单纯依靠用户-项目评分计算用户相似性值偏大,而K 值只与数据集规模相关,不能区分相似性值变化对用户邻居子集合选取的影响。

因此本文采用设定邻居子集选取阈值的方法筛选邻居用户。

综上所述,用户,A B 的相似性度量因子主要包括:用户,A B 的评分矩阵,用户画像特征以及类别评分差异度,综合以上因子,本文提出一种多维用户相似性计算方法,如下式:(,)(1)(,)(,)(,)r p lsim A B A B A B A B sim sim sim αβαβ=--++ (4)其中,(A,B)r sim ,(A,B)p sim ,(A,B)l sim 分别表示用户间评分相似性、用户画像信任度和类别评分差异度,,αβ分别表示用户画像信任度和类别评分差异度在用户相似性计算中的贡献系数。

2.2.用户画像信任度用户画像是对用户特征的多维刻画,由多个代表用户特征[8]的标签元素构成的标签集合,例如性别、年龄、生活区域等,如图2所示。

集合X 和Y 中元素分别表示用户X 和Y 的画像特征,相交区域表16 铜仁学院学报 2017年示用户X 和Y 共有的画像特征。

所以用户画像信任度可以由用户画像特征文本集合相似性计算得出。

图1 用户画像特征图Fig.1 Representing of users’characters定义1(用户画像信任度):设定n 种用户画像标签,用户A 和B 画像特征文本分别由n 个标签构成,记为A P 和B P 。

用户A 和B 的画像信任度即为文本A P 和B P 的相似度,定义为公式(5):(,)A B pABA B P P simP P⋂=⋃ (5)其中,A B P P 表示用户A 和B 共同画像特征元素数,A B P P 表示用户A 和B 用户画像包含的所有特征数;2.3.类别评分差异度系统中项目依据类别划分,例如电影租赁系统将电影分为恐怖片、动作片、喜剧片等。

现假设项目分为k 类,那么统计m 个用户对k 类项目的评分次数,形成m k ⨯的矩阵,矩阵的行向量代表某一用户对k 类项目的打分向量,因此用户对不同类别评分差异性即为用户类别评分矩阵中行向量间的相似性。

定义2(类别评分差异度):设系统项目分为k 类,不同类别项目记为12{C ,C ,...,C }k C =。

用户A 和B 的项目类别评分向量,依次表示为12{,,...,}AA A Ak cc c c = ,12{,,...,}B B B Bk c c c c =,其中Ai C 、Bi C 分别表示用户A 和B 对i C 类项目打分的次数。

因此用户A 和B 的类别评分差异度表示为公式(6): (,)A B lABA B c c sim cc⋅=(6)其中,公式(6)的值越大,则用户A 和B 的相似性越大。

2.4.用户近邻选取为了消除邻居用户个数K 对推荐结果不确定的影响,在选取用户的最近邻居时,本文引入用户相似性邻居用户选取阈值θ,选取规则如公式(7)表示如下:(){|(,),}S A B sim A B B A θ=>≠ (7)θ的取值决定用户邻居用户集中用户个数。

只有当用户B 与目标用户A 的相似性大于θ时,才能被添加目标用户的邻居子集中。

2.5.算法描述综上所述,本文算法流程如下:Step1.依次计算用户相似性的三个度量因子。

基于用户画像特征集、用户对不同类别项目的评分量数据集以及用户-项目评分矩阵,利用公式(2)、(5)、(6)分别计算用户相似性因子(,)rA B sim ,(,)pA B sim,(,)l A B sim ;Step2.计算多维用户相似性(,)sim A B 。

结合Step1,引入参数,αβ,利用公式(4)计算改进的相似度;Step3.选取最近邻居用户集。

引入最近相似用户选取阈值θ,利用公式(7),形成最近邻居用户集()S i ;Step4.预测评分,利用公式(3)计算目标用户未评分项目的评分。

Step5.实现推荐。

3.结果与分析3.1.类别评分差异度实验数据来自MovieLens 电影评分数据集。

该数据集中包括943个用户对1682部电影的评分记录,评分范围是[1,5],评分喜爱程度与数值大小成正比。

数据集中电影分为18类,包括Action 、Comedy ,数据稀疏度为93.7%。

从数据集中等比例随机抽取5个不同规模的数据集,记为M100、M200、M300、M400和M500,表1是选取数据集的用户数量、项目数量以及稀疏等级等信息。

实验采取4:1模式将每个数据集随机划分为80%训练集和20%测试集。

3.2.评价指标本文选取平均绝对误差MAE 作为评价指标。

MAE 是算法准确度指标[9],通过运算预测评分与用第9期 朱 珠,辜丽川,等,基于用户‐项目特征的协同过滤推荐算法 17户实际打分的差值来衡量,显然差值越小即MAE 值越小,推荐越精确。

相关文档
最新文档