为什么需要推荐系统——信息过载

随着互联网行业的井喷式发展,获取信息的方式越来越多,人们从主动获取信息逐渐变成了被动接受信息,信息量也在以几何倍数式爆发增长。举一个例子,PC时代用google reader,常常有上千条未读博客更新;如今的微信公众号,也有大量的红点未阅读。垃圾信息越来越多,导致用户获取有价值信息的成本大大增加,对信息获取的有效性,针对性的需求也就自然出现了。推荐系统应运而生

亚马逊的推荐系统

最早的推荐系统应该是亚马逊为了提升长尾货物的用户抵达率而发明的。已经有数据证明,长尾商品的销售额以及利润总和与热门商品是基本持平的。亚马逊网站上在线销售的商品何止百万,但首页能够展示的商品数量又极其有限,给用户推荐他们可能喜欢的商品就成了一件非常重要的事情。当然,商品搜索也是一块大蛋糕,亚马逊的商品搜索早已经开始侵蚀谷歌的核心业务了。

在亚马逊的商品展示页面,经常能够看见:浏览此商品的顾客也同时浏览。这就是非常典型的推荐系统。

推荐系统与大数据

大数据与云计算,在当下非常热门。不管是业内同事还是其他行业的朋友,大数据都是一个常谈的话题。业内对于大数据的使用其实还处于一个比较原始的探索阶段,前段时间听一家基因公司的CEO说,现在可以将人类的基因完全导出为数据,但这些数据毫无规律,能拿到这些数据,但根本不知道可以干什么。推荐系统也是利用用户数据来发现规律,相对来说开始得更早,运用上也比较成熟。

推荐算法的多样性

推荐算法是非常古老的,在机器学习还没有兴起的时候就有需求和应用了。概括来说,可以分为以下5种:

1)基于内容的推荐(Content-based Recommendation)
这一类一般依赖于自然语言处理NLP的一些知识,通过挖掘文本的TF-IDF特征向量,来得到用户的偏好,进而做推荐。这类推荐算法可以找到用户独特的小众喜好,而且还有较好的解释性。这一类由于需要NLP的基础,本文就不多讲,在后面专门讲NLP的时候再讨论。

2)协同过滤推荐(Collaborative Filtering Recommendation)
本文后面要专门讲的内容。协同过滤是推荐算法中目前最主流的种类,花样繁多,在工业界已经有了很多广泛的应用。它的优点是不需要太多特定领域的知识,可以通过基于统计的机器学习算法来得到较好的推荐效果。最大的优点是工程上容易实现,可以方便应用到产品中。目前绝大多数实际应用的推荐算法都是协同过滤推荐算法。

3)混合推荐(Hybrid Recommendation)
这个类似我们机器学习中的集成学习,博才众长,通过多个推荐算法的结合,得到一个更好的推荐算法,起到三个臭皮匠顶一个诸葛亮的作用。比如通过建立多个推荐算法的模型,最后用投票法决定最终的推荐结果。混合推荐理论上不会比单一任何一种推荐算法差,但是使用混合推荐,算法复杂度就提高了,在实际应用中有使用,但是并没有单一的协调过滤推荐算法,比如逻辑回归之类的二分类推荐算法广泛。

4)基于规则的推荐(Rule-based Recommendation)
这类算法常见的比如基于最多用户点击,最多用户浏览等,属于大众型的推荐方法,在目前的大数据时代并不主流。

5)基于人口统计信息的推荐(Demographic-based Recommendation)
这一类是最简单的推荐算法了,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后进行推荐,目前在大型系统中已经较少使用。

有待改进的推荐系统

推荐系统具有高度复杂性,需要持续地进行改进。可能在同一时间内,需要上线不同的推荐算法,做A/B test。根据用户对推荐结果的行为数据,不断对算法进行优化,改进。要走的路还很长:路漫漫其修远兮,吾将上下而求索。


参考文章:
推荐算法概述
猜你喜欢——-推荐系统原理介绍