[机器学习-推荐算法]基于内容的推荐算法
现在广泛使用的比较多的推荐算法包括基于内容的推荐算法,基于协同过滤的推荐算法以及基于图形的推荐算法、基于融合的推荐算法等。下面讲的是基于内容推荐。
基于内容的推荐算法的原理大概分为3步:
- 为每个物品构建一个物品的属性资料。
- 为每个用户构建一个用户的喜好资料。
- 计算用户喜好资料与物品属性资料的相似度,相似度高意味着用户可能喜欢这个物品,相似度低则一般意味着用户对这个物品一般般或是不喜欢。
1.物品的属性资料
拿电影来举例,一个电影的属性资料可以是它的类型、演员名单、导演名单、上映时间等等。
2.用户的喜好资料
用户喜好资料可以通过系统的显示反馈和隐式反馈获得,通常包括用户的在线浏览记录,观看/购买记录,评价等。还是拿电影来举例,用户有历史观看记录,我们可以通过用户的历史观看记录获取到电影的属性资料,看哪些出现的次数比较多。比如我们可以获取到“浪漫”,”喜剧“等关键词。
3.计算用户喜好资料与物品属性资料的相似度
一个用户的喜好资料和一个物品的属性资料几乎不可能是完全相同的。拿电影来举例,一个电影的属性资料可以有几十个甚至更多,想要完全一样还是比较困难的。所以要对相似度进行一个计算。
计算推荐依据:
利用余弦相似度的公式来计算给定的User “U”和给定的Item “I”之间的距离。余弦相似度的值越大说明U越有可能喜欢I。
余弦相似度的具体计算方法如下:
在电影推荐系统的例子中:
Ua表示,用户U对演员a的喜好值(即User Profiles矩阵中,演员a对应的值)。
Ia表示,电影I是否包含演员a(即Item Profiles矩阵中,演员a对应的值)。
4.存在的问题
(1)因为要基于用户的喜好来做出判断,所以在不了解用户的时候会存在一定的问题,对于新用户有“冷启动”的问题。
(2)一个用户的喜好是会随着时间的改变而改变的,可能这个用户这段时间喜欢这种类型的,下一段时间就喜欢另外一种类型的,所以还要考虑兴趣迁移的问题。
参考博客:
(1)https://www.cnblogs.com/bluemapleman/p/9277202.html