一、推荐系统目的html
(1)帮助用户找到想要的商品(新闻/音乐/……),发掘长尾算法
(2)下降信息过载网络
(3)提升站点的点击率/转化率机器学习
(4)加深对用户的了解,为用户提供定制化服务工具
二、推荐算法概述学习
推荐算法是很是古老的,在机器学习尚未兴起的时候就有需求和应用了。归纳来讲,能够分为如下5种:字体
1)基于内容的推荐:这一类通常依赖于天然语言处理NLP的一些知识,经过挖掘文本的TF-IDF特征向量,来获得用户的偏好,进而作推荐。这类推荐算法能够找到用户独特的小众喜爱,并且还有较好的解释性。这一类因为须要NLP的基础,本文就很少讲,在后面专门讲NLP的时候再讨论。大数据
2)协同过滤推荐:本文后面要专门讲的内容。协调过滤是推荐算法中目前最主流的种类,花样繁多,在工业界已经有了不少普遍的应用。它的优势是不须要太多特定领域的知识,能够经过基于统计的机器学习算法来获得较好的推荐效果。最大的优势是工程上容易实现,能够方便应用到产品中。目前绝大多数实际应用的推荐算法都是协同过滤推荐算法。网站
3)混合推荐:这个相似咱们机器学习中的集成学习,博才众长,经过多个推荐算法的结合,获得一个更好的推荐算法,起到三个臭皮匠顶一个诸葛亮的做用。好比经过创建多个推荐算法的模型,最后用投票法决定最终的推荐结果。混合推荐理论上不会比单一任何一种推荐算法差,可是使用混合推荐,算法复杂度就提升了,在实际应用中有使用,可是并无单一的协调过滤推荐算法,好比逻辑回归之类的二分类推荐算法普遍。spa
现实应用中,其实不多有直接用某种算法来作推荐的系统。在一些大的网站如Netflix,就是融合了数十种算法的推荐系统。咱们能够经过给不一样算法的结果加权重来综合结果,或者是在不一样的计算环节中运用不一样的算法来混合,达到更贴合本身业务的目的。
4)基于规则的推荐:这类算法常见的好比基于最多用户点击,最多用户浏览等,属于大众型的推荐方法,在目前的大数据时代并不主流。
5)基于人口统计信息的推荐:这一类是最简单的推荐算法了,它只是简单的根据系统用户的基本信息发现用户的相关程度,而后进行推荐,目前在大型系统中已经较少使用。
三、基于内容的推荐算法
对一个给定的用户, 推荐与他以前喜欢的项目在内容上有类似性的其余项目。这种推荐仅须要获得两类信息: 项目特征的描述和用户过去的喜爱信息。
举个栗子,如今系统里有一个用户和一条新闻。经过分析用户的行为以及新闻的文本内容,咱们提取出数个关键字。将这些关键字做为属性,把用户(过去的喜爱)和新闻(新的内容)分解成向量。
以后再计算向量距离,即可以得出该用户和新闻的类似度了,将计算类似度最大的(例如采用余弦计算)内容进行推荐。
这种方法很简单,若是在为一名热爱观看英超联赛的足球迷推荐新闻时,新闻里同时存在关键字体育、足球、英超,显然匹配前两个词都不如直接匹配英超来得准确,系统该如何体现出关键词的这种“重要性”呢?这时咱们即可以引入词权的概念。在大量的语料库中经过计算(好比典型的TF-IDF算法),咱们能够算出新闻中每个关键词的权重,在计算类似度时引入这个权重的影响,就能够达到更精确的效果。sim(user, item) = 文本类似度(user, item) * 词权,将重要的词加大权重。
然而,常常接触体育新闻方面数据的同窗就会要提出问题了:要是用户的兴趣是足球,而新闻的关键词是德甲、英超,按照上面的文本匹配方法显然没法将他们关联到一块儿。在此,咱们能够引用话题聚类:利用word2vec一类工具,能够将文本的关键词聚类,而后根据topic将文本向量化,再根据topic为文本内容与用户做类似度计算。
综上,基于内容的推荐算法可以很好地解决冷启动问题,而且也不会囿于热度的限制,由于它是直接基于内容匹配的,而与浏览记录无关。然而它也会存在一些弊端,好比过分专业化(over-specialisation)的问题。这种方法会一直推荐给用户内容密切关联的item,而失去了推荐内容的多样性。
四、冷启动问题
冷启动问题主要分为3类:
解决方案:
五、上下文信息、社交网络
推荐系统中的上下文信息是指用户访问推荐系统的时间、地点、心情等。介绍时间上下文和地点上下文,让推荐系统可以准确预测用户在某个特定时刻及特定地点的兴趣。推荐系统的实时性和多样性。
社交网络:电子邮件、注册信息、位置数据、论坛讨论组、社交网站。
社会化推荐之因此受到不少网站的重视,主要由于下面的优势:
云音乐使用了3个维度向人们推荐音乐:朋友推荐、人工推荐、智能推荐
六、评估
当推荐算法完成后,怎样来评估这个算法的效果?CTR(点击率)、CVR(转化率)、停留时间等都是很直观的数据。在完成算法后,能够经过线下计算算法的RMSE(均方根偏差)或者线上进行ABTest来对比效果。
七、改进
另外,公司的优点——社交平台也是一个很好利用的地方。利用用户的社交网络,能够很方便地经过用户的好友、兴趣群的成员等更快捷地找到类似用户以及用户可能感兴趣的内容,提升推荐的准确度。
参考文献:https://www.cnblogs.com/rongyux/articles/5396844.html