一种基于物品内容特征的改进协同过滤推荐方法与流程

文档序号:15686872发布日期:2018-10-16 21:09阅读:784来源:国知局

本发明涉及商品推荐技术领域,特别是涉及一种基于物品内容特征的改进协同过滤推荐方法。



背景技术:

推荐系统(recommendationsystem,rs),简单来说就是根据用户的日常行为,自动预测用户的喜好,为用户提供更多完善的服务。协同过滤技术是目前推荐系统中最成功和应用最广泛的技术,在理论研究和实践中都取得了快速的发展,它根据用户的历史选择信息和相似性关系,收集与用户兴趣爱好相同的其他用户的评价信息来产生推荐。推荐系统使用了一系列不同的技术,主要可以分为以下两类:基于内容(content-based)的推荐,主要依据的是推荐项的性质。基于协同过滤(collaborativefiltering)的推荐,主要依据的是用户或者物品之间的相似性。而基于协同过滤的推荐系统用可以分为两类:基于物品(item-based)的推荐系统,主要依据的是物品与物品之间的相似性。基于用户(user-based)的推荐系统,主要依据的是用户与用户之间的相似性。



技术实现要素:

本发明所要解决的技术问题是提供一种基于物品内容特征的改进协同过滤推荐方法,能够增加推荐物品的多样性。

本发明解决其技术问题所采用的技术方案是:提供一种基于物品内容特征的改进协同过滤推荐方法,包括以下步骤:

(1)读取数据集,并拆分数据集,获取用户评分记录以及物品点击量数据;

(2)计算物品与物品之间的共现矩阵以及每个物品点击量均值;

(3)计算物品点击量影响因子;

(4)物品相似度与物品点击量影响因子相乘得到改进后的物品相似度,最终生成相似度矩阵;

(5)针对目标用户,找到k个相似的物品,计算用户对相似的物品的兴趣程度;

(6)根据用户对相似的物品的兴趣度进行排序,推荐最感兴趣的前n个物品。

所述步骤(4)中物品相似度计算方式为:其中,n(i)是喜欢物品i的用户数,n(j)是喜欢物品j的用户数,n(u)表示用户喜欢的物品集合,s为物品点击量影响因子。

所述步骤(5)中用户对相似的物品的兴趣程度的计算方式为:其中,puj表示用户u对物品j的兴趣,n(u)表示用户喜欢的物品集合,s(j,k)表示和物品j最相似的k个物品集合,wji表示物品j和物品i的相似度,rui表示用户u对物品i的兴趣。

有益效果

由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明通过引入用户活跃度对数的倒数和物品特征内容影响因子来修正物品相似度,从而有效提高推荐的覆盖率,即增加了推荐物品的多样性。

附图说明

图1是本发明的流程图;

图2是本发明与现有技术在不同k值下的评测指标对比图。

具体实施方式

下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

本发明的实施方式涉及一种基于物品内容特征的改进协同过滤推荐方法,如图1所示,包括以下步骤:读取数据集,并拆分数据集,获取用户评分记录以及物品点击量数据;计算物品与物品之间的共现矩阵以及每个物品点击量均值;计算物品点击量影响因子,该因子与物品之间的点击量差值成反相关;物品相似度与物品点击量因子相乘得到改进后的物品相似度,最终生成相似度矩阵;针对目标用户,找到k个相似的物品,根据兴趣度计算公式计算用户对物品的兴趣程度;最后根据用户对物品的兴趣度排序,推荐最感兴趣的前n个物品。

本实施方式的主要内容如下:

1)物品相似度初步定义:

其中,n(i)是喜欢物品i的用户数,|n(i)∩n(j)|是同时喜欢物品i和物品j的用户数。分母是惩罚物品i和j的权重,因此惩罚了热门物品和很多物品相似的可能性。

2)在得到物品相似度之后,itemcf通过以下公式计算用户u对未产生行为的物品j的感兴趣程度。

其中,puj表示用户u对物品j的兴趣,n(u)表示用户喜欢的物品集合,s(j,k)表示和物品j最相似的k个物品集合(j是这个集合中的某一个物品),wji表示物品j和物品i的相似度,rui表示用户u对物品i的兴趣(对于隐反馈数据集,如果用户u对物品i有过行为,即可令rui=1。)该公式的含义是,和用户历史上感兴趣的物品越相似的物品,越有可能在用户的推荐列表中获得比较高的排名。

3)两个物品之间相似度的产生是由于用户同时对它们都感兴趣,仅仅计算余弦相似度显得过于粗糙。本实施方式引入用户活跃度对数的倒数和物品特征内容(点击量)影响因子s来修正物品相似度wij:

从公式中可以看出,对活跃用户做出了相应的惩罚。

4)利用改进的相似度计算公式计算物品与物品之间的相似度矩阵,并进行归一化处理。

5)最后根据puj计算用户对物品的兴趣程度,并推荐用户最感兴趣的n的物品。

下面通过一个具体的实施例来进一步说明本发明。

相似度计算是协同过滤算法的核心步骤之一,采用不同的相似度计算方式,最终的推荐结果均不一致。但是在实际购物中,有些商品是用户经常需要购买的,比如蔬菜、肉类、常见水果等,如果每个用户每天都喜欢购买一种商品,那么不同种类商品中最热门的两个商品相似度会很高。这类问题被称为哈利波特问题,因为《哈利波特》这本书实在太过于热门。

为了继续优化基于物品的协同过滤算法,本实施例提出了引入与物品相关的内容数据来解决该问题。根据普通用户购物习惯,在登录网上商城首页后,首先会浏览整个商城有哪些商品,然后选择自己需要或者喜欢的商品,最终实际购买的商品并不会很多。但是用户却在购物的过程点击浏览了很多商品,用户的点击量一定程度也反映了该商品的受关注程度。基于上述分析,在计算商品相似度过程中引入商品点击量影响因子。假设物品a和物品b的用户点击量分别是ca和cb,a和b的点击量越相近,物品相似度的影响因子越大,反之,影响因子则变小。为了提高推荐结果的准确性和多样性,在较为冷门的商品中,最应该推荐的是点击量较高的商品。定义商品点击量均值为商品点击量影响因子定义为:

则改进后的物品相似度计算公式为:

如图2所示,与现有技术对比来看,在使得现有算法性能最好的k值下,改进后的推荐方法准确率和召回率相近,但是覆盖率要比现有算法的指标好的多,因此具有良好的应用价值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1