• 推荐算法


    推荐算法越来越多的运用到我们的生活中,特别是在网站中,当你浏览大大小小的网站,你的行为被时刻记录着,并根据一些依据对你推荐一些物品。下面会简单介绍一下推荐算法,后续会继续对这些算法进行补充。

    1.协同过滤算法

    2.基于流行度的算法

    3.基于模型的算法

    4.混合算法

     

    协同过滤算法

    协同过滤算法有两种,一种是基于用户的协同过滤算法,一种是基于物品的协同过滤算法。

    基于用户的协同过滤算法

    该算法主要是找出用户的相似用户,将相似用户浏览或购买而用户没有购买的商品推荐给用户。

    基于用户的协同过滤算法流程如下:

    1.分析各个用户对item的评价(通过浏览记录、购买记录等);

    2.依据用户对item的评价计算得出所有用户之间的相似度;

    3.选出与当前用户最相似的N个用户;

    4.将这N个用户评价最高并且当前用户又没有浏览过的item推荐给当前用户。

    如下图:

    基于物品的协同过滤算法

    基于物品的协同过滤算法原理为在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。基于物品的协同过滤算法原理大同小异,只是主体在于物品:

    1.分析各个用户对item的浏览记录。 依据浏览记录分析得出所有item之间的相似度;

    2.对于当前用户评价高的item,找出与之相似度最高的N个item;

    3.将这N个item推荐给用户。

    如下图:

    基于流行度的算法

    该方法比较简单粗暴,主要是把当前的流行物品或者时间推荐给用户,不考虑用户的偏好,这种算法比较适合应用在新用户上,这类用户没有任何历史数据,可以直接给他们推荐流行的东西,根据用户的点击,再进一步推荐。

    基于模型的算法

    基于模型的方法有很多,用到的诸如机器学习的方法也可以很深,这里只简单介绍下比较简单的方法——Logistics回归预测。我们通过分析系统中用户的行为和购买记录等数据,得到如下表:

         

    表中的行是一种物品,x1~xn是影响用户行为的各种特征属性,如用户年龄段、性别、地域、物品的价格、类别等等,y则是用户对于该物品的喜好程度,可以是购买记录、浏览、收藏等等。通过大量这类的数据,我们可以回归拟合出一个函数,计算出x1~xn对应的系数,这即是各特征属性对应的权重,权重值越大则表明该属性对于用户选择商品越重要。   

    在拟合函数的时候我们会想到,单一的某种属性和另一种属性可能并不存在强关联。比如,年龄与购买护肤品这个行为并不呈强关联,性别与购买护肤品也不强关联,但当我们把年龄与性别综合在一起考虑时,它们便和购买行为产生了强关联。比如(我只是比如),20~30岁的女性用户更倾向于购买护肤品,这就叫交叉属性。通过反复测试和经验,我们可以调整特征属性的组合,拟合出最准确的回归函数。最后得出的属性权重如下:      

           

    基于模型的算法由于快速、准确,适用于实时性比较高的业务如新闻、广告等,而若是需要这种算法达到更好的效果,则需要人工干预反复的进行属性的组合和筛选,也就是常说的Feature Engineering。而由于新闻的时效性,系统也需要反复更新线上的数学模型,以适应变化。

    混合算法

    通常推荐算法中会使用多种算法的融合,往往会得到比单一算法更好的结果,算法融合可以使用加权融合,赋予不同算法不同的权重,从而得到不同的结果。

    总结:

    以上几类推荐算法中,基于流行度的算法比较适合使用在新用户群体中,不需要分析用户行为数据,就可以直接进行推荐。基于用户的协同过滤算法比较适合使用在用户数目较少的情况下,用户数过大会使得计算量过大。基于物品的协同过滤算法比较适合使用在用户数目大的情况下。基于模型的推荐算法,可以使用多种不同的模型来进行推荐,具体需要根据实际情况。在条件允许的情况下,可以使用模型融合算法,或许会得到更好的结果。

    参考博客:https://blog.csdn.net/u010670689/article/details/71513133/

    参考博客:https://blog.csdn.net/xiaokang123456kao/article/details/74735992

     

  • 相关阅读:
    CODING x 百果园 _ 水果零售龙头迈出 DevOps 体系建设第一步
    Nocalhost 亮相 CD Foundation 国内首届 Meetup,Keith Chan 将出席致辞
    做云原生时代标准化工具,实现高效云上研发工作流
    打造数字化软件工厂 —— 一站式 DevOps 平台全景解读
    WePack —— 助力企业渐进式 DevOps 转型
    CODING Compass —— 打造行云流水般的软件工厂
    Nocalhost —— 让云原生开发回归原始而又简单
    CODING 代码资产安全系列之 —— 构建全链路安全能力,守护代码资产安全
    Nocalhost:云原生开发新体验
    使用 Nocalhost 开发 Kubernetes 中的 APISIX Ingress Controller
  • 原文地址:https://www.cnblogs.com/r0825/p/9697962.html
Copyright © 2020-2023  润新知