当前位置:文档之家› 基于用户-项目特征的协同过滤推荐改进算法

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

基于用户-项目特征的协同过滤推荐改进算法朱 珠,辜丽川,舒贵阳,冯娟娟,王 超,陈 卫( 安徽农业大学 信息与计算机学院,安徽 合肥 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 值越小,推荐越精确。

相关主题