推荐系统分为基于用户和基于物品
举个例子,用户A喜欢给《上海堡垒》打高分,用户B也喜欢给《上海堡垒》高分,我们可以看出A,B臭味相投,A喜欢的电影也可以推荐给B,这就是基于用户的推荐系统。如果A喜欢电影《上海堡垒》,而《上海堡垒》和《富春山居图》很类似,由此推断,用户A也可能喜欢《富春山居图》这是基于物品的推荐系统。
基于用户的协同过滤算法
这里只介绍余弦相似性算法:
下面给出一个例子:
上面分别是A与B和C的余弦相似性,例如:上面的4*5是A,B都看过魔法石,分母是A,B的模。
A,B 的相似度低于A,C。根据我们的判断,A,B的相似度是要大于A,C的。我们仔细看表格,A喜欢的基本上C都不喜欢,而A喜欢的和B喜欢的评分差不多。综上,这种算法是不合理的。
下面我们需要改进这种算法,引入了Pearson相似性算法
Pearson相似性算法
求的平均值,第一行10 表示 4+5+1,3表示看了3部电影(魔法石,火焰杯,凤凰社)
每一行评分减去平均值得到上面那个表格,再对表格来进行上面的余弦相似度算法计算。
基于物品的协同过滤算法
用户A喜欢物品A和C,用户C也喜欢物品A和C。所以我们推测物品A和C有很大的相似度。所以当用户B也喜欢物品A时,而用户B不了解物品C时,我们自动的将物品C推荐给用户B。
下面给出一个例子:
我们用pearson算法计算下面五部电影和哈利波特的相似度,得到右边那个表格,哈利波特和自身是1。
用下面的公式来计算评分:
这里之所以选择阿甘和星际是因为这两部电影相似度和哈利波特是最高的。