基于内容的推荐算法

基于内容的推荐算法

基于内容的推荐算法(content-based recommendations  CB

CB是最早使用的推荐算法,它的思想:根据用户过去喜欢的物品,为用户推荐和他过去喜欢的物品相似的物品。关键在于物品相似性的度量

 

原理大概分为3

1:为每个物品Item构建一个物品的,构建一个物品的属性资料(item profile

2:位每个用户User构建一个用户的喜好资料(User profile

3:计算用户喜好资料与物品属性资料的相似度,相似度高意味着用户肯喜欢这个物品。

 

选择一个想要推荐的用户U,针对用户U遍历以便物品集合,计算出每个物品与用户U的相似度,选出相似度最高的k个物品将他们推荐给用户U

第一步:Item profile

Item是指被推荐的物品(一本书),item profile 是指被推荐物品的详细属性(书的作者、数的类型、出版社、出版时间等等)

 

第二步:Representing Item Profile

例如一本书ABCbook,假设他的item profile 只包含作者,这样items profile就可以如下表示{ABC}(作者A,B,C);

再将items profile映射成程序能够读懂的数据结构,将items profile转换成0,1矩阵,方法如下:

1)先构建一个1位矩阵,n表示全部的作者数量,将所有元素设置为0,即初始化,[0,0,0,0,0……..,0,0,0],一共有n0

2)假设0号元素代表作者A1号元素代表B2号元素代表C3号元素代表D,等等

3)items profile里的内容映射到1维矩阵中,如果书的作者是a1,a2,a3,那么次书的行向量中a1,a2,a3对应的元素分别置1

那么ABCbook0,1矩阵是[1,1,1,0,0,0,0,0,….0,0,0],那么可以看出,ABCbook的作者是0,1,2号元素,即作者A,B,C


第三步:User Profile

建立了item的模型后,就要为用户建模了,就是构造User Profile

这个User Profile就相当于用户的偏好,用户U的偏好可以表示为对各个作者的喜好程度

例:如下一个评书数据(满分5分,对每本书的评分如下,空的表示未评分)

 

Java设计》

《操作系统》

《算法分析》

小李

4

5

3

小刘

 

1

4

可以看出,小李更喜欢《操作系统》和《算法分析》这两本书,假设这两本书的共同点是作者都有A,那么我们可以推出小李可能更喜欢作者A的书,这样就可以构建小李的User Profile,方法如下:

1)算术小李的平均分:avg=(4+5+3)/3=4

2)利用公式算出小李对作者A的喜好程度,xi是所有涉及到作者A的,而且是小李评过分的书的分数,avg就是平均分,n就是所有涉及到作者A的而且是小李评过分的书的数量:((4-4)+(5-4))/2=0.5,也就是说小李对作者A的喜好程度可以用0.5这个数值来反应

3)同样也建立一个1位矩阵,其中的元素表示每个演员的喜好程度[0.5,x,y,……z],表示了小李对作者A的喜好程度为0.5,等等

第四步:计算推荐依据

利用余弦相似度的公式来计算给定用户U和给定的item I之间的距离,余弦相似度越大说明U越可能喜欢I

公式

《基于内容的推荐算法》

其中Ua表示用户U对作者a的喜好值(即User Profile矩阵中作者A对应的值,例如上0.5

其中Ia表示书本的作者是否有a(即Item Profile矩阵中作者a对应的值,如上例1

第五步:推荐

计算小李与每个作者余弦相似度,选择相似度最高的前K个电影,将这K个电影推荐给小李即可。

 

优点:

1)用户独立性:推荐的产生只与当前用户自己的兴趣模型有关,而与其他用户无关,可以避免恶意作弊行为(刷物品排行榜)

2)推荐具有可解释性:推荐的内容都是根据用户之前的行为产生

3)新物品可以得到推荐:只要物品特征与用户兴趣匹配就可以得到推荐

缺点:

1)项目特征很难抽取:比如社交网络中的人的特征以及电影等不好抽取

2)无法得到用户潜在兴趣:推荐只根据用户对项目的历史喜好产生,所以产生的推荐都是与历史项目相似的,无新意

3)无法为新用户直接产生推荐,新用户没有喜好历史,无法建立兴趣模型,也就无法为他推荐


参考:https://www.cnblogs.com/exlsunshine/p/4214357.html

 

 

 

 

 

 

    原文作者:sillyerser
    原文地址: https://blog.csdn.net/qq_39667655/article/details/80115062
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞