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


    1、推荐系统目的

    (1)帮助用户找到想要的商品(新闻/音乐/……),发掘长尾

    (2)降低信息过载

    (3)提高站点的点击率/转化率

    (4)加深对用户的了解,为用户提供定制化服务

    2、推荐算法概述

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

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

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

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

      现实应用中,其实很少有直接用某种算法来做推荐的系统。在一些大的网站如Netflix,就是融合了数十种算法的推荐系统。我们可以通过给不同算法的结果加权重来综合结果,或者是在不同的计算环节中运用不同的算法来混合,达到更贴合自己业务的目的。

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

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

    3、基于内容的推荐算法

      对一个给定的用户, 推荐与他之前喜欢的项目在内容上有相似性的其他项目。这种推荐仅需要得到两类信息: 项目特征的描述和用户过去的喜好信息。

      举个栗子,现在系统里有一个用户和一条新闻。通过分析用户的行为以及新闻的文本内容,我们提取出数个关键字。将这些关键字作为属性,把用户(过去的喜好)和新闻(新的内容)分解成向量。

      之后再计算向量距离,便可以得出该用户和新闻的相似度了,将计算相似度最大的(例如采用余弦计算)内容进行推荐。

      这种方法很简单,如果在为一名热爱观看英超联赛的足球迷推荐新闻时,新闻里同时存在关键字体育、足球、英超,显然匹配前两个词都不如直接匹配英超来得准确,系统该如何体现出关键词的这种“重要性”呢?这时我们便可以引入词权的概念。在大量的语料库中通过计算(比如典型的TF-IDF算法),我们可以算出新闻中每一个关键词的权重,在计算相似度时引入这个权重的影响,就可以达到更精确的效果。sim(user, item) = 文本相似度(user, item) * 词权,将重要的词加大权重。

      然而,经常接触体育新闻方面数据的同学就会要提出问题了:要是用户的兴趣是足球,而新闻的关键词是德甲、英超,按照上面的文本匹配方法显然无法将他们关联到一起。在此,我们可以引用话题聚类:利用word2vec一类工具,可以将文本的关键词聚类,然后根据topic将文本向量化,再根据topic为文本内容与用户作相似度计算。

      综上,基于内容的推荐算法能够很好地解决冷启动问题,并且也不会囿于热度的限制,因为它是直接基于内容匹配的,而与浏览记录无关。然而它也会存在一些弊端,比如过度专业化(over-specialisation)的问题。这种方法会一直推荐给用户内容密切关联的item,而失去了推荐内容的多样性。

    4、冷启动问题

      冷启动问题主要分为3类:

    • 用户冷启动,即如何给新用户做个性化推荐
    • 物品冷启动,即如何将新的物品推荐给可能对它感兴趣的用户
    • 系统冷启动,即如何在一个新开发的网站(没有用户,没有用户行为,只有部分物品信息)上设计个性化推荐系统,从而在网站刚发布时就让用户体会到个性化推荐

      解决方案:

    • 推荐热门排行榜,等到用户数据收集到一定的时候,再切换为个性化推荐;
    • 利用用户注册信息;
    • 用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐那些和这些物品相似的物品;
    • 采用专家标注;
    • 利用物品的内容信息,物品冷启动;
    • 利用用户在其他地方已经沉淀的数据进行冷启动;
    • 利用用户的手机等兴趣偏好进行冷启动,比如安装的软件等

    5、上下文信息、社交网络

      推荐系统中的上下文信息是指用户访问推荐系统的时间、地点、心情等。介绍时间上下文和地点上下文,让推荐系统能够准确预测用户在某个特定时刻及特定地点的兴趣。推荐系统的实时性和多样性。

      社交网络:电子邮件、注册信息、位置数据、论坛讨论组、社交网站。

      社会化推荐之所以受到很多网站的重视,主要因为下面的优点:

    • 好友推荐可以增加推荐的信任度,好友往往是用户最信任的,用户往往不一定信任计算机的智能,但会信任好朋友的推荐
    • 社交网络可以解决冷启动问题,当一个新用户通过新浪微博账号登录网站时,可以从社交网站中获取用户的好友列表,然后给用户推荐好友在网站上喜欢的物品。从而在没有用户行为记录时就给用户提供较高质量的推荐结果,部分解决了推荐系统的冷启动问题

      云音乐使用了3个维度向人们推荐音乐:朋友推荐、人工推荐、智能推荐

    6、评估

      当推荐算法完成后,怎样来评估这个算法的效果?CTR(点击率)、CVR(转化率)、停留时间等都是很直观的数据。在完成算法后,可以通过线下计算算法的RMSE(均方根误差)或者线上进行ABTest来对比效果。 

    7、改进

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

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

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

  • 相关阅读:
    Linux初级入门(一)
    教育行业----精华网址汇总
    乐高教育版45544零件---分类识别
    乐高ev3编程---书籍选择
    机器人 乐高ev3 arduino 控制器等
    scratch----回家过年
    Scratch2.0例—接苹果
    scratch2绘图编辑器使用--总结
    在舞台上跳舞
    教学设计--我是飞行员
  • 原文地址:https://www.cnblogs.com/eilearn/p/9488425.html
Copyright © 2020-2023  润新知