机器学习(二十八)— 推荐算法

一、推荐系统目的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来对比效果。 

七、改进

  • 一、打通公司各大业务平台,经过获取其余平台的用户数据,完全解决冷启动问题;
  • 二、在不一样设备上同步用户数据,包括QQID、设备号、手机号等;
  • 三、丰富用户的人口属性,包括年龄、职业、地域等;
  • 四、更完善的用户兴趣状态,方便生成用户标签和匹配内容。

  另外,公司的优点——社交平台也是一个很好利用的地方。利用用户的社交网络,能够很方便地经过用户的好友、兴趣群的成员等更快捷地找到类似用户以及用户可能感兴趣的内容,提升推荐的准确度。

 

参考文献:https://www.cnblogs.com/rongyux/articles/5396844.html

相关文章
相关标签/搜索