推荐算法早在1992的时候就提出来了,但火起来是最近几年的事,随着互联网的发展、物联网的发展,采集数据变得更容易,所在现在有大量的数据供我们使用,推荐算法有了很大的用武之地。比如我们遇到问题的时候使用搜索引擎来查找,google一下或百度一下,然后它们会反馈给我们很多答案信息,其实这也是一个推荐算法的例子。再比如最近我看了捉妖记这部电影,觉得很好看,可以打开豆瓣电影找类似的电影,它有一个喜欢这部电影的人也喜欢……的推荐,这些都是推荐算法的应用
经过这么多年的发展,提出了各种各样的推荐算法,但不管怎样,都绕不开推荐算法的几个基本条件:
现有的条件就是以上这么多,至于实际情况的不同会有不同的衍生,像基于用户的协同过滤算法和基于物品的协同过滤算法就是一些典型的实例。虽然经过这么多年的发展,但其思想都没有变,变化的主要是在计算相似度的衡量标准上。
基于用户的协同过滤算法和基于物品的协同过滤算法两者区别在哪呢?首先先解释下”协同过滤”: 所谓协同就是大家一起帮助啦,过滤就是把大家讨论的结果告诉你,不然原始信息量太大了。很明显啦,两者的区别在于一个是基于用户,一个是基于物品。顾名思义,“基于用户”就是以用户为中心的算法,这种算法强调把和你有相似爱好的其他用户的物品推荐给你,而“基于物品”的算法则强调把和你喜欢物品的相似物品推荐给你。总体来说,都是推荐物品给你,一个推荐的桥梁是用户,另一个是物品。 在运用的时候要根据实际情况的不同,选择是基于基于用户还是基于物品。这里主要是考虑到如果物品比较恒定,比如淘宝网,假如商品信息在一段时间内变化不大,那就可以提前将这些物品的相似度算出保存下来,选择Top5等等,不用每次都进行大量的计算。
不管选择什么距离算法,他们的衡量标准是一致的,具体距离定义大家可以查看资料,推荐看《集体智慧编程》书中的第一章,书中列举了多个实例,也可以参考《机器学习实战》书中的内容,他们讲解的都很好。