zoukankan      html  css  js  c++  java
  • 推荐系统小结

    推荐系统(RecSys)作为电子商务中一个非常火的应用。主要是为了帮助用户发现可能感兴趣的东西,这样的就叫做个性化推荐系统;而广告商还能够利用结果将内容投放给可能会对它们感兴趣的用户,这就成了个性化广告。比較著名的推荐系统有亚马逊,被RWW(读写网)称为“推荐系统之王”,你从亚马逊买了一本书以后。会发现它会常常向你的邮箱发一些相关的书籍,这个有时比較恼人,呵呵;此外还要电影和视频站点,像YouTube和Hulu等会美国比較著名的视频站点;个性化音乐网络电台。像国际的Pandora和Last.fm以及国内的豆瓣电台。社交网络,如Facebook等;个性化阅读。如GoogleReader等。个性化邮件和个性化广告等。

    架构

    主流的推荐系统的架构例如以下图:


    而动态推荐系统的架构例如以下:


    关于推荐系统的架构,这几篇文章写得不错,这里mark一下。

    推荐系统的架构,

    http://www.cnblogs.com/kobedeshow/p/3569525.html?

    utm_source=tuicool

    淘宝推荐系统。

    http://www.biaodianfu.com/taobao-recommendation-system.html?

    utm_source=tuicool

    InfoQ上关于Hulu的视频推荐系统架构经验。

    Hulu推荐系统构建经验谈,

    http://www.infoq.com/cn/presentations/hulu-recommendation-system-construction-experiences/


    算法

    推荐系统的实现算法,依照使用的数据,主要分为下面三种算法:

    −      协同过滤:用户的行为数据,像点击、评分、购买等;

    −      内容过滤:用户内容属性和物品内容属性。

    −      社会化过滤:用户之间的社交网络关系,如朋友、关注关系等。

    依照模型划分,主要有下面三种:

    −      近期邻模型:基于用户/物品的协同过滤算法。

    −      Latent Factor Model:基于矩阵分解的模型;

    −      图模型:二分图模型,社会网络图模型等。

    除了推荐系统自身的问题,像冷启动、数据的稀疏性问题等,另一个须要关注的问题,就是推荐系统的时间效应问题。比較常见的时间效应问题主要反映在用户兴趣的变化、物品流行度的变化以及商品的季节效应。即以下主要考虑三个问题,怎样建立动态用户兴趣模型。怎样建立用户长期兴趣和短期兴趣的动态用户兴趣模型,还有站点时效性对用户行为和推荐系统设计的影响。

    考虑到推荐系统的时间效应问题,能够将协同过滤所使用的数据集归结为一个四元组。即{用户。物品。行为,时间},那么如今就面临一个问题,怎样通过研究用户的历史行为和兴趣爱好。预測用户将来的行为和喜好。

    须要解决下面三个问题:动态评分预測、动态Top-N推荐、时效性的影响。

    对于第一个问题,动态评分预測问题。

    数据集能够选用比較直观的显性反馈数据集。即(用户,物品,评分,时间)。研究是这样一个问题,给定用户u,物品i,时间t,预測用户u在时间t对物品i的评分r。

    对于该类问题,相关的算法已经有了非常多的研究,与时间无关的评分预測问题算法主要有下面几种:

    −      基于用户/物品的协同过滤算法;

    −      基于矩阵分解的模型LatentFactor Model;

    −      受限波尔兹曼机RBM。

    与时间相关的评分预測问题算法主要是基于以下两种想法:

    −      用户会喜欢和他们近期喜欢的物品相似的物品;

    −      用户会喜欢和他们兴趣相似的用户近期喜欢的物品。

    当然上面的这些算法是提出来了。可是有些地方有待优化。

    上述算法须要考虑的时间效应问题主要有下面几个方面:

    用户兴趣的变化,比方说:年龄增长,从青年长成中年壮年;生活状态的变化,由曾经的学生到踏上工作岗位;社会热点问题的影响。奥运会等。

    此外还有季节效应问题。一些在夏季非常流行的。在秋冬季节未必就非常流行。

    怎样解决上述问题,提出优化还有待进一步思考。

    对于动态Top-N推荐问题。数据集选用的是不太直观的隐性反馈数据集,{(用户。物品。时间)},研究的是这种一个问题,给定用户u,时间t。预測用户u在时间t可能会喜欢的物品列表R(u)。在这方面的相关研究也非常成熟,有基于邻域的协同过滤算法,主要分为两种,一种是ItemCF。推荐给用户那些跟他们之前喜欢的物品类似的物品;另一种是UserCF。推荐给用户那些跟他们兴趣相似的用户喜欢的物品。还有基于评分数据的Top-N推荐算法,该想法的思路是推荐给用户那些他们可能评分最高的物品。

    该想法都是环绕用户的兴趣展开的,须要考虑到,用户兴趣分为短期兴趣和长期兴趣,短期兴趣的特点是暂时、易变。长期兴趣的特点是长久、稳定。用户的短期兴趣可能会转化为长期兴趣,所以须要在推荐时综合考虑长期兴趣和短期兴趣。该问题的解决有待进一步思考。

    对于时效性的影响,每一个在线系统都是一个动态系统,但它们有不同的演化速率。

    比方说,新闻。博客演化的非常快,但音乐,电影的系统演化的却比較慢。这就带来这样一个问题,不同演化速率的系统须要不同类型的推荐算法,怎样解决该问题。也是应该进一步深入思考的。






  • 相关阅读:
    Odoo Documentation : Fields
    Odoo models.py BaseModel
    Odoo Documentation : Environment
    Odoo Documentation : Recordsets
    Odoo中使用的部分表名及用途
    Odoo启动过程
    6779. Can you answer these queries VII
    1874 素数和最大
    3150 Pibonacci数
    2817 Tangent的愤怒
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7068895.html
Copyright © 2011-2022 走看看