漫谈协同过滤推荐算法(一)

来源:互联网 发布:caffe官网 编辑:程序博客网 时间:2024/06/05 07:47

引言

       当今的信息时代,推荐无处不在:当你在网上浏览一件衣服的时候,它给你推荐搭配的套装;当你想要购买一本图书的时候,它给你推荐相类似的书籍;当你打开手机app想要看场电影的时候,它给你推荐一系列你可能感兴趣的…推荐算法似乎总是可以抓住你的心理,把一些你未接触过的新鲜事物恰如其分的摆到你面前,接下来就来谈谈其中很火爆的一类推荐算法。
       协同过滤推荐,不同于基于内容的推荐,要理解好“协同”这个词,它基于海量的用户与偏好信息进行推荐。当一个人想找部电影来看,想找本书来看,当他有一个明确的目标指向并基于这个指向去寻找适合他的信息,这叫“搜索”;如果没有一个明确的方向,他可能会寻求口味相似朋友的帮助,或者他以前看过某本书某部电影现在寻找相类似的,这就是“推荐”。协同过滤推荐又分为两种:基于用户的协同过滤推荐与基于物品的协同过滤推荐。前者就是你去寻求朋友的帮助,看看他们都喜欢看什么样的电影什么样的书,里面或许有你感兴趣的;后者则是你看了一部喜欢的电影之后还想要看看有没相似的,比如某购书网站的某和你兴趣相似的用户也喜欢某某书。

基于用户的协同过滤推荐

       物以类聚,人以群分,能走到一起的朋友或多或少都会有兴趣相投的部分,基于用户的协同过滤正是利用这点原理:既然我们有着相似的兴趣爱好,那么我喜欢的多半你也会喜欢,那么就不妨推荐给你。明确了这点,接下来就是确定那个和你兴趣相投的人了。如何定义这个兴趣相投呢?很简单的道理,让一个成天看科幻片的人去推荐一部爱情电影想想就是不靠谱的,至少要爱好相一致或者相类似嘛。如果把所有的物品罗列出来,然后让甲和乙分别对这些物品根据他们的喜好打个分,有了这个打分,那么就可以用一个“相似度”的玩意来判断他们是否兴趣相投了。有了相似度以后,就可以在茫茫人海中寻找那个和你三观最一致的人了,然后从他的喜好列表中挨个给你推荐,相信总有一款会合你心水。

基于物品的协同过滤推荐

       前面介绍了通过朋友推荐的情况,可是万一这个人兴趣比较古怪以致于找不到品味相似的人怎么办?这个世界上的人太多,找这个兴致一样的人花了太多时间怎么办?所幸还有另外的推荐算法,如果一个人买了腮红买了口红买了眉笔,那么她多半是个爱美的妹子,这时候你给她推荐一款香水她多半会乐于接受,它是基于这样的原理:一个人喜欢某些东西,那么对于和他的喜好相近的一些事物也有可能喜欢。在这里同样有一个相似度的概念,以化妆品举例,往往妹子们在买一样化妆品比如腮红的时候会和另外一样东西比如口红一起买,那么这两样物品相关性就是比较大的,这样根据历史的数据就可以确定物品间的相似度。有了这个相似度,同样就可以根据你购买过的东西推荐一些相关的商品了。
       以上就是协同过滤算法的主要思想,在下一篇文章中将阐述算法中的具体问题。

0 0