CN103559622A - 基于特征的协同过滤推荐方法 - Google Patents

基于特征的协同过滤推荐方法 Download PDF

Info

Publication number
CN103559622A
CN103559622A CN201310330389.1A CN201310330389A CN103559622A CN 103559622 A CN103559622 A CN 103559622A CN 201310330389 A CN201310330389 A CN 201310330389A CN 103559622 A CN103559622 A CN 103559622A
Authority
CN
China
Prior art keywords
user
article
feature
scoring
collaborative filtering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310330389.1A
Other languages
English (en)
Inventor
周水庚
关佶红
李丹青
朱晓然
周晔
王海清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Focus Technology Co Ltd
Original Assignee
Focus Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Focus Technology Co Ltd filed Critical Focus Technology Co Ltd
Priority to CN201310330389.1A priority Critical patent/CN103559622A/zh
Publication of CN103559622A publication Critical patent/CN103559622A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明属于信息技术中的推荐系统领域,特别适合于在Internet环境下基于电子商务平台的推荐应用。针对现有协同过滤方法存在的不足,提出一个新的基于特征的协同过滤方法。新方法充分考到用户在商品购买中普遍存在的针对物品特征的好恶,可以在使用较少用户/产品的邻居的情况下获得比传统协同过滤方法更准确的推荐结果,使推荐系统更加贴近网站用户的潜在需求。整体来说,新方法是一个高效的、适用范围广的协同过滤推荐方法。

Description

基于特征的协同过滤推荐方法
技术领域
本发明属于信息技术中的推荐系统技术领域,特别适合于Internet环境下基于电子商务的推荐应用。 
背景技术
网上购物的出现和急速发展在给人们提供了更丰富更多样的产品信息的同时,也让人们在面对众多选择时犹如大海捞针,难以找到自己真正想要的产品。对这种信息过载的最流行也是最有效的解决方案就是推荐系统。推荐系统可以自动向客户推送个性化的产品以减少客户的浏览时间提高购物效率。推荐系统的本质就是基于客户的历史记录预测一个顾客对某个产品的评价,根据预测的结果向客户推荐他可能感兴趣或者评价高的产品。一个推荐系统往往只推荐同类产品,比如推荐书、音乐或者电影等。通常的推荐系统都是提供个性化推荐,不同的客户群体接收到的推荐不一样;也有非个性化的推荐系统,比如推荐排行前十名的图书或者CD。推荐系统在基于评分的网站应用十分广泛,如亚马逊、Youtube、Netflix、Yahoo、Last.fm、Imdb等。越来越多的公司也开始开发自己的推荐系统,如Netflix是一个在线电影租凭的网站,他们曾经举办了一个比赛,第一个将Netflix推荐系统的效率提高10%的团队可以获得100万美金。 
除了在工业界,学术界里也有很多探讨推荐系统的会议和研讨会,例如成立于2007年的ACM Recommender Systems(RecSys)现在已成为每年都举行的首要的探讨推荐系统的会议。推荐系统的集会也频繁的出现在数据库、信息系统和自适应系统领域的会议中,如ACM SIGIRSpecial Interest Group on Information Retrieval(SIGIR),Internationa Conference on Information and Knowledgement Management(CIKM),User Modeling,Adaptationand Personalization(UMAP)和ACM Special Interest Group on Management of Data(SIGMOD)等。很多学术期刊也特别开设一个板块刊登推荐系统的最新研究进展,如AI Communications(2008)、IEEE Intelligent Systems(2007)、 InternationalJournal of Electronic Commerce(2006)、International Journal of ComputerScience and Applications(2006)、ACM Transactions on Computer-HumanInteraction(2005)和ACM Transactions on Information Systems(2004)等等。 
Herlocker等定义了11种推荐系统可以实现的功能。推荐系统的功能和信息检索系统很像,一方面他们有满足客户需求的基本功能,推荐系统帮助客户找到与其历史记录相关的产品,信息检索系统帮助客户找到与查询相关的文档;另一方便,推荐系统推荐给客户之前没有注意到但是可能感兴趣的新事物,信息检索系统也有相关的功能,如google的手气不错。推荐系统的功能可以归纳为以下三个方面: 
1)推荐 
●帮助用户发现可能喜欢的新产品; 
●帮助用户找到和自己兴趣相同的用户; 
●帮助一个用户群体找到他们感兴趣的产品; 
●为用户推荐的物品做出解释,这些推荐是基于用户的哪些行为而给出的。 
2)预测 
●帮助客户评价产品是好是坏。 
3)有条件限制的推荐 
●根据客户给出的限定条件作出符合条件的推荐,如价格低于50元的书籍等等。 
推荐系统里最主要的两个概念就是物品(Item)和用户(User)。物品是指被推荐的产品,通常具有属性和特征,如电影有导演、演员、类型、国家等,唱片有歌手、发行公司、发行年份等,通过这些属性我们可以了解一个产品吸引客户的价值在哪里。用户是指使用推荐系统的客户,同样具有一系列属性,在人口学推荐系统中,用户有年龄、性别、所属地区等属性;而在协同过滤的推荐系统中,客户被描述成对一系列物品的打分向量;在一个网页推荐系统中,客户则被描述成网页的历史浏览模式。 
比较常见的推荐算法分成六类: 
1)基于内容的推荐算法:推荐给客户与他以前喜欢的产品相似的产品。产品之间的相似度是根据产品的特征和属性计算的。比如电影之间的相似度根据导演,演员和类型计算,《唐伯虎点秋香》和《大内密探零零发》的相似度显然比和《十面埋伏》的相似度高,如果一个客户喜欢《唐伯虎点秋香》,那一定有很高的可能性喜欢 《大内密探零零发》。 
2)协同过滤(Collaborative Filtering)推荐算法:将和客户品味相似的用户喜欢的产品推荐给客户。客户之间相似度是根据客户历史打分记录计算的。1个给《唐伯虎点秋香》5分的客户A和一个给《唐伯虎点秋香》4分的客户B相似度比一个给《唐伯虎点秋香》1分的客户C要高,那么客户B打5分的另一部电影《大内密探零零发》客户A可能也会打5分。 
3)基于人口学的推荐算法:根据客户的年龄,性别,国家,职业等信息进行推荐。 
4)基于知识的推荐算法:比较著名的有基于案例推理的算法和基于约束的算法。这两种算法都是收集用户的需求,然后计算出满足需求的推荐结果。 
5)基于社区的推荐算法:根据客户的朋友们的偏好进行推荐。这种算法的含义是“告诉我你的朋友是谁,我就能知道你是谁”。人以类聚,物以群分,人们会根据各自的品位自动形成一个社区。这种基于社交网络的推荐研究还处于起步阶段,实验的结果有好有坏。 
6)混合型推荐算法:这种算法将以上5种算法结合起来,利用一个算法的长处去补另一个算法短处。例如协同过滤算法有一个问题就是冷启动,当一个产品新加入系统的时候没有用户打分信息,系统无法进行推荐,而基于内容的推荐则没有这种困扰。所以对新加入的产品进行基于内容的推荐,对于有打分信息的产品进行协同过滤推荐。 
在以上介绍的推荐算法中,协同过滤是现在效果最好也是运用最广泛的算法。协同过滤,顾名思义是指依据别人的意见来过滤评价产品的过程。想象这样一个场景,最近出了一部新电影,你不知道应不应该去看,恰好你的朋友们看过了这部电影,告诉你这部电影值得一看,你也许就会进电影院去看这部电影;又或者你发现有一个朋友推荐过的电影你都觉得不错,当有新的电影上映的时候,你会直接去征求那个朋友的意见。协同过滤算法弥补了基于内容算法的缺陷:有一些产品很难描述表示。更重要的是,协同过滤是基于产品质量进行推荐的,基于内容算法仅仅是依据内容相似而忽略了人们对其的评价。协同过滤还可以推荐内容不尽相同然后用户也会感兴趣的产品。 
接下来,具体介绍协同过滤算法。 
1、问题定义 
推荐系统里主要有2个实体:用户和物品。用户通过对物品进行评分表现他的兴趣偏好,可以表示成一个矩阵,任一个用户-物品的值对应着该用户对该物品的已知评分。如图:表示了3个用户对4个物品的打分矩阵,评分集为{1,2,3,4,5},空白表示该用户没有对当前物品评过分。真实数据中大部分的用户-物品对都是空白,这样的矩阵实际上是十分稀疏的,大部分用户都只给很少一部分物品评过分。推荐系统的任务就是预测矩阵中所有空白处的值。如下,表1协同过滤示例。 
  I1 I2 I3 I4 I5
U1 4   4 2
U2   1 2 1 5
U3 4   5 5  
这里给出协同过滤推荐算法的形式化定义。用户集用大写字母U表示,物品集用大写字母I表示,所有可能的评分集用R表示。某一特定用户用小写u表示,u∈U,某一特定物品用小写i表示,i∈I,每个用户对每个物品最多有一个评分,用rui表示。对物品i评过分的用户集合用Ui表示,同样的,用户u评过分的物品集集合用Iu表示。用户u和用户v共同评过分的物品集用Iuv表示,Iuv=Iu∩Iv;同时评价过物品i和物品j的用户集用Uij表示,Uij=Ui∩Uj。推荐系统要解决的任务主要是预测和推荐。预测是指对某个特定的用户u,给定一个特定的物品i∈I\Iu,我们找到一个函数f:U×I—R用来预测用户u对物品i的评分f(u,i)。推荐是指对某个特定的用户u,推荐给u物品集Ir
Figure BDA00003598399500041
Ir足由f(u,i*)由高到低的N个组成i*,又叫做top-N推荐。 
准确率是最通用的用于衡量一个推荐算法的标准。准确率衡量了一个推荐系统的预测评分与用户的实际评分的差别。用于衡量准确率的方法主要有平均绝对偏差 MAE(Mean Absolute Error)和RSME(Root Mean Squared Error)。MAE计算系统预测评分和实际评分的平均差,公式为 
MAE = Σ i = 1 N | p i - r i | N
RSME是MAE的变种, 
RSME = Σ i = 1 N ( p i - r i ) 2 N
其中N为物品的个数,pi为物品i的预测评分,ri为物品i的实际评分。 
2、协同过滤算法 
这里我们所谓协同过滤算法即是基于邻居的协同过滤算法,其中心思想是人们往往听取和自己兴趣品位相同的人的意见,而摒弃和自己偏好不同的人的意见。以表1为例,当我们想要预测U1是否会喜欢I3,我们发现U2和U1共同评价过I4和I5,但评分很不相同;相反的,U3和U1共同评价过I1和I4,而且评分很相似,所以在预测U1对I3的评分时,应该参考U3的评分而不是U2的评分。 
2.1基于用户的协同过滤算法 
1)预测公式 
基于用户的协同过滤算法通过计算与用户u最相似且对物品i评过分的用户集Ni(u)对物品i的评分来预测u对i的评分。我们用Wuv来表示用户u和用户v之间的相似度,那么用KNN(k最近邻)算法可以计算k个和用户相似度Wuv最高得用户集Ni(u)。所以u对i的预测评分可以用u的k个最近邻居对i的评分的平均值表示,即 
p ui = Σ v ∈ N i ( u ) r vi | N i ( u ) |
但是公式N没有考虑到与u相似度高的用户的评分应该给予更高地权重,通过将用户的相似度乘以他的评分来解决这个问题,再除以总相似度来归一化。即 
p ui = Σ v ∈ N i ( u ) W u v r vi Σ v ∈ N i ( u ) | W uv |
然后公式N没有考虑用户对同一等级的评价有不同的评分标准,有的用户很严格,3分对他来说就是很高的评价,而有的用户给绝大多数物品都是4分以上。所以需要将用户的评分进行规范化处理,设规范化函数h(rui),即 
p ui = h - 1 ( Σ v ∈ N i ( u ) w uv h ( r vi ) Σ v ∈ N i ( u ) | w uv | )
2)评分规范化 
比较常用的规范化函数有mean-centering和z-score。 
mean-centering的中心思想是将用户的评分与用户所有评分的平均值比较来决定该评分是正值还是负值: 
h ( r ui ) = r ui - r u ‾
预测公式变为: 
p ui = r u ‾ + Σ v ∈ N i ( u ) w uv h ( r vi - r v ‾ ) Σ v ∈ N i ( u ) | w uv |
z-score不仅将评分与评分均值相比较,还考虑到用户评分的变化范围。比如A和B的评分均值都是3,A的评分变化范围从1到5,而B给出的所有评分都是3。所以当B对一个物品给出5分时比A给出5分更有价值。z-score在mean-centering的基础上再除以u的评分标准差。 
h ( r ui ) = r ui - r u ‾ σ u
预测公式为: 
p ui = r u ‾ + σ u Σ v ∈ N i ( u ) w uv ( r vi - r v ‾ ) / σ v Σ v ∈ N i ( u ) | w uv |
然后在某些情况下,对评分进行规范化不一定能得到正面的效果。当某个用户的评分记录很少时,他的评分标准差可能为0,那么预测结果会有很大偏差。对于不是过于稀疏的数据,评分规范化会使算法的预测效果变好。当规范化函数不能提高算法效果时,我们可以利用另外一种叫做基于偏好的过滤算法来解决这个问题。因为即使用户打分规模不一样,但对物品喜好的相对顺序不会改变,预测相对的偏好可以避免对评分进行规范化。 
3)相似度函数 
相似度函数在协同过滤算法有着举足轻重的地位,它同时影响着算法的准确度和效率。在信息检索中,很常用的相似度算法是cosine相似度,通常用来计算2个文档向量间的相似度。用cos来计算用户间的相似度, 
cos ( u , v ) = Σ i ∈ I uv r vi r ui Σ i ∈ I u r ui 2 Σ j ∈ I v r vj 2
协同过滤算法中最通用的相似度函数是皮尔逊相关函数。皮尔逊函数在计算用户评分相似度时去除了用户评分均值方差不同的问题。 
PC ( u , v ) = Σ i ∈ I uv ( r vi - r v ‾ ) ( r ui - r u ‾ ) Σ i ∈ I uv ( r vi - r v ‾ ) 2 Σ j ∈ I uv ( r uj - r u ‾ ) 2
乍一看,这跟在cosine函数上运用z-score很像,但是后者计算了u和v所有评分的方差,而PC只计算了u和v共同评分的方差。 
另一个很著名的相似度函数是spearman rank correlation,PC直接利用评分数据进行计算,而SRC利用这些评分的排名计算,从而避免了评分规范化。 
SRC ( u , v ) = Σ i ∈ I uv ( k vi - k v ‾ ) ( k ui - k u ‾ ) Σ i ∈ I uv ( k vi - k v ‾ ) 2 Σ j ∈ I uv ( k uj - k u ‾ ) 2
其中kui表示物品i在用户u的评分列表中的排位,
Figure BDA00003598399500074
表示用户u的排位均值。当用户的评分数据很少时,u和v只有一个共同评分的物品且评分相同时,算法认为2个用户完全相似,那么在对u预测其他物品时v的权值非常高,这会导致预测结果的不准确。2个用户的相似度比较基于越多的共同评分数据,计算出的结果就越可信。而以当一个相似度是通过很少的评分比较计算得出时,我们应该减少其权值。在significance weighting中,当用户共同评分的物品数小于γ时,相似度则变为: 
SW ( u , v ) = min { | I uv | , γ } γ × W uv
当用户共同评分物品数|Iuv|<γ时,用户权值减少为原来的而当|Iuv|>γ时,用户的权值保持不变。有时候,物品的评分变化范围也有参考意义。比如《泰坦尼克号》这部电影的评分都很高,所以2个用户都给《泰坦尼克号》评5分的价值不如2个用户都给一部褒贬不一地电影相同评分价值高。同时关注单个物品的评分比关注所有物品的评分更有意义。2个用户都给《泰坦尼克号》评5分并不能说明他们品位相 同,而都给《十面埋伏》评5分则在一定程度上说明2个用户都是武侠迷。FWPC(frequency weighed pearson correlation)借鉴了信息检索中Idf倒排文档频率的概念,引进倒排用户评分概率,对每个物品i的IUF值就是: 
IUF ( i ) = log | U | | U i |
在计算2个用户u和v之间的相似度时乘上每个物品i的倒排用户评分概率: 
FWPC ( U , V ) = Σ i ∈ I uv IUF ( i ) ( r vi - r v ‾ ) ( r ui - r u ‾ ) Σ i ∈ I uv IUF ( i ) ( r vi - r v ‾ ) 2 Σ j ∈ I uv IUF ( j ) ( r uj - r u ‾ ) 2
4)邻居选择 
现实中的推荐系统都运行在巨大的数据集上,为每个用户对去计算相似度是昂贵且不现实的,所以我们需要选择出最有价值的邻居进行计算。选择邻居的方法主要有以下两种: 
(1)top k:对每个用户只保留相似度最高的N个邻居,N的选择十分重要,当N太大,计算量太大,选择前N个变得没有意义;N太小,会减少算法的覆盖度,有些物品永远不会有机会被推荐。k的选择需要通过训练数据和测试数据交叉验证得出。 
(2)基于阈值的过滤:对每个用户保留相似度高于的阈值的邻居,而不是固定N个。然而这个阈值很难确定。 
2.2基于物品的协同过滤算法 
1)预测公式 
基于用户的协同过滤算法参考相似的用户的评分预测评分,而基于物品的协同过滤算法则参考相似的物品收到的评分预测评分。我们用Wij来表示物品i和物品j之间的相似度,那么用KNN(k最近邻)算法可以计算k个用户u评过分且和物品i相似度Wij最高得物品集Nu(i)。所以u对i的预测评分可以用i的k个最近邻的评分的加权平均值表示,即 
p ui = Σ j ∈ N u ( i ) w ij r uj Σ j ∈ N u ( i ) | w ij |
同样需要将用户的评分进行规范化处理,设规范化函数h(rui),即 
p ui = h - 1 ( Σ j ∈ N u ( i ) w ij h ( r ui ) Σ j ∈ N u ( i ) | w ij | )
2)评分归一化 
mean-centering的规范化函数:将用户u对物品i的评分减去i的评分均值 
h ( r ui ) = r ui - r i ‾
预测公式变为: 
p ui = r 1 ‾ + Σ j ∈ N u ( i ) w ij h ( r uj - r j ‾ ) Σ j ∈ N u ( i ) | w ij |
z-score在mean-centering的基础上再除以i的评分标准差。 
h ( r ui ) = r ui - r 1 ‾ σ i
预测公式为: 
p ui = r i ‾ + σ i Σ j ∈ N u ( i ) w ij ( r ui - r j ‾ ) / σ j Σ j ∈ N u ( i ) | w ij |
3)相似权重计算 
同样的,计算用户相似度的函数可以用于计算物品相似度。 
cos ( i , j ) = Σ u ∈ U ij r ui r uj Σ u ∈ u i r ui 2 Σ u ∈ I j r uj 2
PC ( i , j ) = Σ u ∈ I ij ( r ui - r 1 ‾ ) ( r uj - r j ‾ ) Σ u ∈ U ij ( r ui - r 1 ‾ ) 2 Σ u ∈ U ij ( r uj - r j ‾ ) 2
SRC ( i , j ) = Σ u ∈ U ij ( k ui - k 1 ‾ ) ( k ui - k j ‾ ) Σ u ∈ U ij ( k ui - k 1 ‾ ) 2 Σ u ∈ U ij ( k uj - k j ‾ ) 2
SW ( i , j ) = min { | U ij | , γ } γ × W ij
FWPC ( i , j ) = Σ u ∈ U ij IUF ( i ) ( r ui - r i ‾ ) ( r uj - r j ‾ ) Σ u ∈ U ij IUF ( i ) ( r ui - r i ‾ ) 2 Σ u ∈ U ij IUF ( j ) ( r uj - r j ‾ ) 2
然而当给一个特定用户预测评分时,用户的评分变化往往比物品的评分变化更有预测性。所以XX提出一个皮尔逊相似度函数的变形,叫adjusted cosine,皮尔逊函 数将评分与物品评分均值比较,AC则将评分与用户评分均值比较。 
AC ( i , j ) = Σ u ∈ I ij ( r ui - r u ‾ ) ( r uj - r u ‾ ) Σ u ∈ U ij ( r ui - r u ‾ ) 2 Σ u ∈ U ij ( r uj - r u ‾ ) 2
4)邻居选择 
理论上,我们可以离线计算所有物品对的相似度存储,算法复杂度为O(n2),和基于用户的算法一样,可以通过选择最高K个相似度物品和基于阈值选择大于阈值的物品减少计算量。 
发明内容
针对现有技术中存在的问题,本项发明提出一种新的协同过滤方法,即基于特征的协同过滤(Feature-based Collaborative Filtering,简称CFC)方法。该新方法可以弥补现有方法的不足,提高推荐的准确率。 
本发明的技术方案为:一种基于特征的协同过滤推荐方法,其步骤如下: 
1)根据物品的特征,把原有的物品-用户打分矩阵投影到不同的物品特征上,得到多个聚合的特征-用户打分矩阵; 
2)对于每一个用户,统计其在各个特征上的打分的方差。方差越大,说明用户对该特征的取值有偏向(喜欢或不喜欢); 
3)按照传统协同过滤方法,基于各个特征-用户打分矩阵,预测用户对某新物品的打分值; 
4)利用2)中获得的特征打分方差,对3)计算得到的打分预测值进行加权平均,得到用户给该物品的最终打分预测值; 
5)基于4)得到的各物品的最终打分预测值,进行物品推荐。 
实验结果表明,新方法可以在使用比较少的用户/物品邻居情况下,获得比传统协同过滤方法更准确的推荐结果。 
附图说明
图1用户-物品矩阵到用户-特征矩阵的映射; 
图2用户的演员特征评分分布1; 
图3用户的演员特征评分分布2; 
图4基于用户的方法和基于物品的方法MAE随着邻居大小的变化; 
图5基于用户的方法和基于用户的特征方法MAE随着邻居大小的变化; 
图6基于物品的方法和基于物品的特征方法MAE随着邻居大小的变化; 
图7四种特征矩阵MAE随着邻居大小的变化。 
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细阐述。 
英文专有词及缩写词对应中文含义 
Recommendation system(RS) 推荐系统
Recommendation algorithm(RA) 推荐算法
Collaborative filtering(CF) 协同过滤
Feature-based Collaborative Filtering(FCF) 基于特征的协同过滤
E-commerce(EC) 电子商务
User 用户
Item 产品
Feature 属性
User based filtering 基于用户的过滤
Item base filtering 基于产品的过滤
Mean absolute error(MAE) 平均绝对误差
1、基于特征的协同过滤方法设计 
在基于内容的推荐方法中,对物品进行特征提取,通过计算物品特征的相似度来为用户推荐与其购买过的物品相似的物品。而在协同过滤的推荐方法中,则依据与用户评分模式类似的用户的喜好进行推荐,完全忽略了物品的内容特征。时下主流的推荐系统所推荐的物品包括书籍,电影,音乐等等,而这些物品有一个共通的特点是,它们的特征有固定的模式,如书籍的特征包括书名,作者,出版社,出版年份,书籍领域等等;电影的特征包括电影名,导演,编剧,演员,发行年份,制作商,所属国家,电影类型等等;音乐的特征包括歌曲名,专辑名,歌手名,唱片公司,发行年份,音乐类型等等。事实上人们的评分潜在上是基于这些特征进行评分的,如某个用户特别喜欢周润发的电影,那么每部周润发的电影他都会评分很高;或者某个用户很喜欢看推理小说,那么东野圭吾的小说他都会给很高的评分。当预测用户对某个物品的评分时,我们首先学习用户历史上对各个特征的喜好即平均评分,然后分析当前物品的特征,同样利用协同过滤推荐方法进行推荐,只不过这里的矩阵由用户-物品矩阵换成了用户-特征矩阵。 
假设物品的特征集为F={f1,f2,f3,…fr},一共r个特征,fx是指所有物品在特征X上的取值的集合,fx={fx1,fx2,…fxj},用Fj表示物品j所含有的特征集。如当物品为电影时取4个特征,F={f演员,f国家,f导演,f类型},其中 
f演员={所有电影中出现过的演员}, 
f类型={所有电影的类型}, 
f国家={所有电影所属的国家}, 
f导演={所有电影的导演}, 
F非诚勿扰={冯小刚,葛优,舒棋,中国,喜剧}。 
我们将用户-物品矩阵投射到用户-特征矩阵上,如附件图1。对每个特征fx,有用户-特征X矩阵设为Mx,矩阵中第i行第j列的值为用户i评分过的所有电影中含有特征fxj的评分均值: 
M ij x = AV G f xj ∈ F j r ij .
所以对每一个特征矩阵,都可以运用前面的协同过滤方法得到一个预测评分,这样我们得到了一组预测评分,P={p^1,p^2,…p^r}。而对于每个特征f_x,用户在该特征所有取值的评分曲线是十分有研究价值的。当一个用户对该特征上某个取值评分很突出时,比如用户特别喜欢几个演员,对这几个演员演过的电影评分都很高,对其他演员的偏好则没那么明显,那么这条特征评分分布将会出现一段偏离均值线的区域;或者用户在演员上并没有特别的偏好,那么这条特征评分分布可能就并没有出现大起大落的区域。图2是userID为1的用户在特征演员上的评分分布,可以看出大部分的点是分布在均值附近的,除了少数演员的评分很低,偏离了均值线,说明了该用户 不喜欢某些演员。图3显示用户2的特征评分分则都离评分均值线很近,说明了用户2在演员这一特征上偏好并不明显。 
计算得出用户1的演员评分标准差为1.27,用户2的演员评分标准差为1.04。.所以,评价一个用户在某个特征上是否有特别的偏好可以用用户的特征评分曲线的波动来判断,即该用户的特征评分标准差。用户的特征评分标准差越高,特征评分曲线波动就越大,说明该用户在该特征上的偏好越明显,则该特征矩阵的预测分的权值则越高。 
最后,物品的预测评分为各个特征预测评分的加权平均值,设SD(i,x)表示用户i在特征x上的预测评分标准差,则有: 
p ui = Σ x = 1 x = r SD ( i , x ) p x Σ x = 1 x = r SD ( i , x )
2、方法推荐效果测试 
选取知名的movielens数据集,当训练/测试比为0.8时,实验可以取得最好的结果。首先在训练集上计算出模型,再对测试集进行预测并与真实评分比较。将新推荐方法与传统的基于物品的协同过滤方法和基于用户的协同过滤方法作比较。 
图4显示了基于物品和基于用户这2大传统协同过滤方法在在邻居数目变化下的推荐效果。 
图5显示了基于用户的方法和基于用户特征方法的对比实验结果,基于用户的特征方法对邻居数并不敏感,它的MAE值随着邻居的增加并没有明显的变化,一直维持在0.85左右,在邻居数为140时达到最低点0.8377。基于用户的方法在邻居数初始为10时错误率特别高达到3.4921,当邻居数在160以内时,基于用户的特征方法的错误率大大小于基于用户的方法效果。随着邻居数的增加,基于用户的方法效果趋于稳定,在邻居数为400时达到最低点0.6915,好于基于用户的特征方法。 
图6显示了基于物品的方法和基于物品特征方法的对比实验结果,基于物品的特征方法如基于用户的特征方法一样其MAE值随着邻居的增加并没有明显的变化,同样维持在0.85左右,在邻居数为180时达到最低点0.8370。基于物品的方法在邻居初始设置为10时MAE值为1.4684,当邻居数在60以内时,基于物品的特征方法的错误率大大小于基于物品的方法效果。随着邻居数的增加,基于物品的方法效果趋于稳定,在邻居数为100时达到最低点0.6837,效果明显好于基于物品的特征方法。 
图7显示了四种方法的综合对比实验结果。可以看出只需计算很少的邻居数量, 基于特征的方法就能给出较高的精确结果,而传统的邻居方法都需要计算更多的邻居数据,才能得出与基于特征方法相同的结果。然而传统的邻居方法在计算足够多的邻居数据后,可以得到比基于特征方法好的结果。 
本领域技术人员可以对本发明的实施例进行各种改动和变型而不会脱离本发明的精神和范围。倘若本发明实施例中的这些修改和变型属于本发明权利要求及其等同的范围之内,则本发明中的实施例也包含这些改动和变型在内。 

Claims (4)

1.一种基于特征的协同过滤推荐方法,其特征在于:
步骤一、根据物品的特征,将原有的物品-用户打分矩阵投影到不同的物品特征上,得到多个聚合的特征-用户打分矩阵;
步骤二、对于每一个用户统计其在各个特征上打分的方差,并用该方差值刻画用户对该特征的好恶程度,方差越大,表明用户对该特征的取值有越强偏向;
步骤三、基于各个特征-用户打分矩阵,预测用户对某新物品的打分值;
步骤四、利用步骤二各特征上打分的方差,对步骤三计算得到的打分预测值进行加权平均,得到用户对该物品的最终打分预测值;
步骤五、基于最终的打分预测值,进行物品推荐。
2.根据权利要求1所述的协同过滤推荐方法,其特征在于:
步骤一中,特征-用户打分矩阵,对每个特征fx,特征-用户X矩阵设为Mx,矩阵中第i行第j列的值为用户i评分过的含有特征fxj的评分均值:
M ij x = AV G f xj ∈ F j r ij . .
3.根据权利要求2所述的协同过滤推荐方法,其特征在于:
步骤三中,每一个特征矩阵,运用协同过滤方法均得到一个预测评分,这样得到一组预测评分,P={p^1,p^2,…p^r}。
4.根据权利要求3所述的协同过滤推荐方法,其特征在于:物品的预测评分为各个特征预测评分的加权平均值,设SD(i,x)表示用户i在特征x上的预测评分标准差,则有:
p ui = Σ x = 1 x = r SD ( i , x ) p x Σ x = 1 x = r SD ( i , x ) .
CN201310330389.1A 2013-07-31 2013-07-31 基于特征的协同过滤推荐方法 Pending CN103559622A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310330389.1A CN103559622A (zh) 2013-07-31 2013-07-31 基于特征的协同过滤推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310330389.1A CN103559622A (zh) 2013-07-31 2013-07-31 基于特征的协同过滤推荐方法

Publications (1)

Publication Number Publication Date
CN103559622A true CN103559622A (zh) 2014-02-05

Family

ID=50013862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310330389.1A Pending CN103559622A (zh) 2013-07-31 2013-07-31 基于特征的协同过滤推荐方法

Country Status (1)

Country Link
CN (1) CN103559622A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063589A (zh) * 2014-06-16 2014-09-24 百度移信网络技术(北京)有限公司 一种推荐方法以及系统
CN104077351A (zh) * 2014-05-26 2014-10-01 东北师范大学 基于异构信息网络的内容提供方法及系统
CN104881499A (zh) * 2015-06-19 2015-09-02 中国石油大学(华东) 一种基于属性评分缩放的协同过滤推荐方法
CN104899321A (zh) * 2015-06-19 2015-09-09 中国石油大学(华东) 一种基于项目属性评分均值的协同过滤推荐方法
CN104992181A (zh) * 2015-06-29 2015-10-21 昆明理工大学 一种根据图书馆用户习惯的实时图书推荐方法
CN105989106A (zh) * 2015-02-12 2016-10-05 广东欧珀移动通信有限公司 一种基于兴趣相似度的推荐方法及装置
CN106202474A (zh) * 2016-07-14 2016-12-07 Tcl集团股份有限公司 一种对象推荐方法和装置
CN106227884A (zh) * 2016-08-08 2016-12-14 深圳市未来媒体技术研究院 一种基于协同过滤的在线打车推荐方法
WO2017118328A1 (zh) * 2016-01-04 2017-07-13 腾讯科技(深圳)有限公司 推送信息粗选排序方法、装置和计算机存储介质
CN107220382A (zh) * 2017-06-28 2017-09-29 环球智达科技(北京)有限公司 数据分析方法
CN109447713A (zh) * 2018-10-31 2019-03-08 国家电网公司 一种基于知识图谱的推荐方法及装置
CN109754316A (zh) * 2018-12-29 2019-05-14 深圳Tcl新技术有限公司 产品推荐方法、产品推荐系统及存储介质
CN109934673A (zh) * 2019-02-25 2019-06-25 校宝在线(杭州)科技股份有限公司 一种基于推荐系统的智能销售线索分配方法
CN110134874A (zh) * 2019-04-18 2019-08-16 上海大学 一种优化用户相似度的协同过滤方法
CN110795634A (zh) * 2019-10-31 2020-02-14 秒针信息技术有限公司 商品推荐方法、装置、计算机设备和可读存储介质
CN113744021A (zh) * 2021-02-08 2021-12-03 北京沃东天骏信息技术有限公司 一种推荐方法、装置、计算机存储介质及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609523A (zh) * 2012-02-10 2012-07-25 上海视畅信息科技有限公司 基于物品分类和用户分类的协同过滤推荐算法
WO2012142748A1 (en) * 2011-04-19 2012-10-26 Nokia Corporation Method and apparatus for providing feature-based collaborative filtering
CN102968506A (zh) * 2012-12-14 2013-03-13 北京理工大学 一种基于扩展特征向量的个性化协同过滤推荐方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012142748A1 (en) * 2011-04-19 2012-10-26 Nokia Corporation Method and apparatus for providing feature-based collaborative filtering
CN102609523A (zh) * 2012-02-10 2012-07-25 上海视畅信息科技有限公司 基于物品分类和用户分类的协同过滤推荐算法
CN102968506A (zh) * 2012-12-14 2013-03-13 北京理工大学 一种基于扩展特征向量的个性化协同过滤推荐方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
胡新明: "基于商品属性的电子商务推荐系统研究", 《中国博士学位论文全文数据库(经济与管理科学辑)》, 15 July 2013 (2013-07-15) *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077351A (zh) * 2014-05-26 2014-10-01 东北师范大学 基于异构信息网络的内容提供方法及系统
CN104077351B (zh) * 2014-05-26 2017-01-25 东北师范大学 基于异构信息网络的内容提供方法及系统
CN104063589A (zh) * 2014-06-16 2014-09-24 百度移信网络技术(北京)有限公司 一种推荐方法以及系统
CN104063589B (zh) * 2014-06-16 2018-01-16 百度移信网络技术(北京)有限公司 一种推荐方法以及系统
CN105989106A (zh) * 2015-02-12 2016-10-05 广东欧珀移动通信有限公司 一种基于兴趣相似度的推荐方法及装置
CN104881499A (zh) * 2015-06-19 2015-09-02 中国石油大学(华东) 一种基于属性评分缩放的协同过滤推荐方法
CN104899321A (zh) * 2015-06-19 2015-09-09 中国石油大学(华东) 一种基于项目属性评分均值的协同过滤推荐方法
CN104992181A (zh) * 2015-06-29 2015-10-21 昆明理工大学 一种根据图书馆用户习惯的实时图书推荐方法
WO2017118328A1 (zh) * 2016-01-04 2017-07-13 腾讯科技(深圳)有限公司 推送信息粗选排序方法、装置和计算机存储介质
CN106202474A (zh) * 2016-07-14 2016-12-07 Tcl集团股份有限公司 一种对象推荐方法和装置
CN106227884B (zh) * 2016-08-08 2019-12-03 深圳市未来媒体技术研究院 一种基于协同过滤的在线打车推荐方法
CN106227884A (zh) * 2016-08-08 2016-12-14 深圳市未来媒体技术研究院 一种基于协同过滤的在线打车推荐方法
CN107220382A (zh) * 2017-06-28 2017-09-29 环球智达科技(北京)有限公司 数据分析方法
CN109447713A (zh) * 2018-10-31 2019-03-08 国家电网公司 一种基于知识图谱的推荐方法及装置
CN109754316A (zh) * 2018-12-29 2019-05-14 深圳Tcl新技术有限公司 产品推荐方法、产品推荐系统及存储介质
CN109754316B (zh) * 2018-12-29 2022-07-29 深圳Tcl新技术有限公司 产品推荐方法、产品推荐系统及存储介质
CN109934673A (zh) * 2019-02-25 2019-06-25 校宝在线(杭州)科技股份有限公司 一种基于推荐系统的智能销售线索分配方法
CN110134874A (zh) * 2019-04-18 2019-08-16 上海大学 一种优化用户相似度的协同过滤方法
CN110795634A (zh) * 2019-10-31 2020-02-14 秒针信息技术有限公司 商品推荐方法、装置、计算机设备和可读存储介质
CN113744021A (zh) * 2021-02-08 2021-12-03 北京沃东天骏信息技术有限公司 一种推荐方法、装置、计算机存储介质及系统

Similar Documents

Publication Publication Date Title
CN103559622A (zh) 基于特征的协同过滤推荐方法
Koohi et al. A new method to find neighbor users that improves the performance of collaborative filtering
Sivapalan et al. Recommender systems in e-commerce
CN107833117B (zh) 一种考虑标签信息的贝叶斯个性化排序推荐方法
Bauer et al. Recommender systems based on quantitative implicit customer feedback
CN102411754A (zh) 一种基于商品属性熵值的个性化推荐方法
CN103473354A (zh) 基于电子商务平台的保险推荐系统框架及保险推荐方法
CN101482884A (zh) 一种基于用户偏好评分分布的协作推荐系统
WO2015034850A2 (en) Feature selection for recommender systems
CN102609523A (zh) 基于物品分类和用户分类的协同过滤推荐算法
CN104199896A (zh) 基于特征分类的视频相似度确定及视频推荐方法
CN103136683A (zh) 计算产品参考价格的方法、装置及产品搜索方法、系统
Kommineni et al. Machine learning based efficient recommendation system for book selection using user based collaborative filtering algorithm
Madadipouya et al. A literature review on recommender systems algorithms, techniques and evaluations
US20160012454A1 (en) Database systems for measuring impact on the internet
CN109977299A (zh) 一种融合项目热度和专家系数的推荐算法
Puntheeranurak et al. An Item-based collaborative filtering method using Item-based hybrid similarity
CN105809275A (zh) 一种物品评分预测方法及装置
Levinas An analysis of memory based collaborative filtering recommender systems with improvement proposals
Liu et al. QA document recommendations for communities of question–answering websites
CN110619559A (zh) 基于大数据信息在电子商务中精准推荐商品的方法
Yang et al. Design and application of handicraft recommendation system based on improved hybrid algorithm
Murty et al. Content-based collaborative filtering with hierarchical agglomerative clustering using user/item based ratings
CN114756758B (zh) 一种混合推荐方法和系统
CN110968793A (zh) 基于协同过滤混合填充的用户冷启动推荐算法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140205