丰富的线上&线下活动,深入探索云世界
做任务,得社区积分和周边
最真实的开发者用云体验
让每位学生受益于普惠算力
让创作激发创新
资深技术专家手把手带教
遇见技术追梦人
技术交流,直击现场
海量开发者使用工具、手册,免费下载
极速、全面、稳定、安全的开源镜像
开发手册、白皮书、案例集等实战精华
为开发者定制的Chrome浏览器插件
首先用一个词就能很好的解释什么叫做基于用户的协同过滤算法:【臭味相投】。虽然是贬义词,但也说明了,具有类似特征的人群,他们喜欢的东西很多也是一样的。因此,在推荐系统中,假设要为A用户推荐物品,可以通过寻找他的“邻居”——与A具有相似兴趣的用户。把那些用户喜欢的,而A用户却不曾听说的东西推荐给A。
但是这么简单粗暴是有问题的,因为很多用户其实完全没有共同喜好的,也就是分子会为0。这么多无意义的计算会给我们增加很大的开销,所以我们应该先做一个预处理,把有关联的用户筛选出来,只计算这些有关联的用户的兴趣相似度。倒排法有效的为我们解决了这个问题:
矩阵中为0的我们就不需要去计算它们的兴趣相似度了。得到用户相似度之后,我们开始计算用户对物品的兴趣度。
用户u对物品i的感兴趣程度公式如下:
上图中,用户B对物品b和d没有过行为,我们来计算用户B对物品b和d的感兴趣程度。
得到用户对物品的兴趣度后,我们使用Top-N推荐。
TOP-N分析法就是通过TOP-N算法从研究对象中得到所需的N个数据,并从排序列表中选取最大或最小的N个数据,这就是一个TOP-N算法。即对所有物品进行P(u,i)计算兴趣度后进行降序,取前N个物品推荐给用户。
假设某天你购买了机器学习书籍,那么淘宝会给你推荐python书籍。因为机器经过判断得出这两者相似度很高,你既然会喜欢机器学习那么理应喜欢python。
基于物品的协同过滤算法就是给用户推荐那些和他们之前喜欢的物品相似的物品。
不过,ItemCF算法并不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为记录计算物品之间的相似度。该算法认为,物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都也喜欢物品B。
喜欢j的人越多,分母越大,权重更低。
用户u对物品j的感兴趣程度计算公式:
此公式与上面基于用户的公式非常相像。S(j,K)表示与j物品最相似的k个物品的集合。N(u)表示用户喜欢的物品集合。Wji表示物品之间的相似度。rui是用户u对物品i的兴趣。(对于隐反馈数据集,如果用户u对物品i有过行为,即可令rui=1。)