您的当前位置:首页正文

基于条目流行度的协同过滤推荐优化算法

2020-04-29 来源:好走旅游网


基于条目流行度的协同过滤推荐优化算法

摘 要 传统的基于条目(Item-based)的协同过滤算法在推荐系统中占有着举足轻重的作用,本文提出了一种针对该推荐算法的优化方法,抓住条目在时间维度上的评分变化规律,提出基于条目流行度的相似性计算方法,并通过组合其与条目内容的相似性,来改进传统的条目相似性计算方法。使得计算结果更符合实际场景,更适合在运用在实际推荐系统中,实验结果表明,本文提出的算法由于考虑到时间维度的因素,使得计算结果更加准确,并且可以显著的提高推荐精度。

关键词 协同过滤算法;条目相似性;推荐系统

0引言

近年来,由于电子商务和互联网的快速发展,推荐系统的作用日益突出,目前,几乎所有的电商网站,多媒体网站,社交网站,如淘宝,豆瓣,当当网,QQ,微博等都已经并且正在开发自己的推荐系统,协同过滤推荐算法是目前电商网站,社交网站推荐系统最为常用的推荐算法。考虑到时间维度,本文提出一种针对基于条目协同过滤算法的优化方法。

目前最常用的推荐技术主要包括两类协同过滤推荐算法,一种是基于条目的,一种是基于用户的,本文的优化算法主要是基于条目的协同过滤算法,该方法通过计算用户对不同条目的评分的相似性,在对目标条目的评分的预测时,通过评分的相似性找到目标条目的最近邻,然后通过最近邻项目的已知评分对目标条目进行评分估计。

1现有推荐算法分析

1.1相似性计算方法

常见的相似性计算方法包括:余弦相似性, 相关相似性和修正的余弦相似性。

记sim(i,j)表示条目i,j之间的评分相似性,主要采用以下3种方法进行度量:

Cosine (余弦相似性)

将用户空间看作m维空间,条目评分可以表示成m维向量,对于还没有用户评分的条目,可以设置该用户对该条目的评分为零,条目之间的相似性可以通过多维向量的夹角的的余弦值来表示。

假设共有m个用户,则用户对某条目的评分可以表示成m维向量,假设条

目i、j的评分分别为向量i、j,那么条目i、j的相似度sim(i,j)为

(1)

(1)式中分别用到了向量的内积和向量模的乘积。

Correlation (相关相似性)

假设对条目i、j有评分的用户可以表示为Uij,那么可以通过皮尔逊相关系数来表示条目i、j之间的相似性sim(i,j):

(2)

其中Rc,i和Rc,j分别代表用户c对条目i、j的评分;Ri和Rj分别代表条目i、j的平均评分。

Adjustedcosine (修正的余弦相似性)

由于不同用户对条目的评分可能会参照不同的标准,这样通过余弦相似度计算会使结果不准确,那么可以通过标准化的方法来弥补余弦相似性计算的不足,使用用户c对条目的平均评分Rc替代(2)式中的Ri和Rj,即

(3)

在对项目相似性计算方面研究者也提出了一些改进方法。彭玉等提出基于属性改进的相似性计算方法。李聪等提出通过比较条目的类型来计算相似度。但是,这些方法的思路仍然局限在计算相似度的依据,他们单单参照了条目的评分数据,而未参照用户评分时的场景因素,比如时间因素的影响,用户的品味和评分往往会呈现出时间局限性,即在一段时间内用户的品味可以看作基本不变,同时,根据经验,条目(如电影,歌曲)会呈现出一定的时代特征,即条目的流行程度也会呈现出较强的时间局限性,在计算条目的相似性时非常有必要考虑时间因素。但是,传统的基于条目的协同过滤算法并没有考虑到时间因素。

1.2 Item-based协同过滤算法

Item-based(基于条目)的协同过滤算法在2001年被提出来。其基本思想是:通过寻找目标条目的相似条目,然后根据这些相似条目的已有评分,来预测目标条目的评分,具体可以选取与目标条目最相似的K个条目,然后通过计算这些条目与目标条目的相似度,以相似度为权重,相似条目的评分作为项,使用加权平均来计算预测评分。将目标项目i的相似条目集合用S(i)表示,|S(i)| =K,则用户u对条目i的预测评分Pu,j。可以通过公式(1)计算:

(4)

然而,传统的基于条目的协同过滤算法仍存在许多不足:

1)没有考虑到项目自身属性的相似性,用户的兴趣往往呈密集性,如果两个项目自身属性很相似,用户对其中一个感兴趣,则可以推荐其另一个;

2)没有考虑到用户的心理受时间的约束,用户往往在一段时间内对某种项目感兴趣,可能过一段时间,用户的品味会发生变化;

3)没有考虑到条目流行度受时间的影响,一个条目可能会在一定时间段内流行,在其他时间段不在流行。

基于上述分析,本文提出了一种针对基于条目协同过滤算法的改进算法,其中主要涉及对条目相似度计算法方法的补充,实验结果显示,本文提出的优化算法可以获得更高精度的推荐结果。

2 基于条目流行度的改进的算法

2.1数据结构表示

1)条目评分矩阵

用户对条目的评分可以使用矩阵来表示,其中行代表某一个用户对不同条目的评分,列代表不同用户对某一个条目的评分,用U来表示用户,I表示条目,如表1所示

2)条目内容向量

互联网和电子商务系统中的条目(如电影、音乐、商品)的内容可以表示成向量,例如电影的内容向量可以表示成电影所属的类型向量,也可以将电影的简介进行分词,根据分词向量来表示内容,表示方法往往根据实际情况不同,或者可以将几种方法组合使用,最终都可以转化为向量来表示内容。

本文拟采用(1)中的属性向量来表示内容向量,如下表所示,每个条目可以由表格中对应的每行的向量来表示。

因篇幅问题不能全部显示,请点此查看更多更全内容