湖南做网站问磐石网络专业,网站开发顶岗周记,网站设计深圳公司,官方微信免费下载安装转载自 常用的推荐算法解析1. 前言随着互联网技术和社会化网络的发展#xff0c;每天有大量包括博客#xff0c;图片#xff0c;视频#xff0c;微博等等的信息发布到网上。传统的搜索技术已经不能满足用户对信息发现的需求#xff0c;原因有多种#xff0c;可能是用户…转载自 常用的推荐算法解析1. 前言随着互联网技术和社会化网络的发展每天有大量包括博客图片视频微博等等的信息发布到网上。传统的搜索技术已经不能满足用户对信息发现的需求原因有多种可能是用户很难用合适的关键词来描述自己的需求也可能用户需要更加符合他们兴趣和喜好的结果又或是用户无法对自己未知而又可能感兴趣的信息做出描述。推荐引擎的出现可以帮用户获取更丰富更符合个人口味和更加有意义的信息。个性化推荐根据用户兴趣和行为特点向用户推荐所需的信息或商品帮助用户在海量信息中快速发现真正所需的商品提高用户黏性促进信息点击和商品销售。推荐系统是基于海量数据挖掘分析的商业智能平台推荐主要基于以下信息
l热点信息或商品
l用户信息如性别、年龄、职业、收入以及所在城市等等
l用户历史浏览或行为记录
l社会化关系2. 个性化推荐算法
2.1. 基于人口统计学的推荐基于人口统计学的推荐机制Demographic-based Recommendation是一种最易于实现的推荐方法它只是简单的根据系统用户的基本信息发现用户的相关程度然后将相似用户喜爱的其他物品推荐给当前用户。首先系统对每个用户都有一个用户 Profile 的建模其中包括用户的基本信息例如用户的年龄性别等等然后系统会根据用户的 Profile 计算用户的相似度可以看到用户 A 的 Profile 和用户 C 一样那么系统会认为用户 A 和 C 是相似用户在推荐引擎中可以称他们是“邻居”最后基于“邻居”用户群的喜好推荐给当前用户一些物品。
这种基于人口统计学的推荐机制的好处在于
l因为不使用当前用户对物品的喜好历史数据所以对于新用户来讲没有“冷启动Cold Start”的问题。
l这个方法不依赖于物品本身的数据所以这个方法在不同物品的领域都可以使用它是领域独立的domain-independent。然后这个方法的缺点和问题就在于这种基于用户的基本信息对用户进行分类的方法过于粗糙尤其是对品味要求较高的领域比如图书电影和音乐等领域无法得到很好的推荐效果。另外一个局限是这个方法可能涉及到一些与信息发现问题本身无关却比较敏感的信息比如用户的年龄等这些用户信息不是很好获取。2.2. 基于内容的推荐基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制它的核心思想是根据推荐物品或内容的元数据发现物品或者内容的相关性然后基于用户以往的喜好记录推荐给用户相似的物品。这种推荐系统多用于一些资讯类的应用上针对文章本身抽取一些tag作为该文章的关键词继而可以通过这些tag来评价两篇文章的相似度。
这种推荐系统的优点在于
l易于实现不需要用户数据因此不存在稀疏性和冷启动问题。
l基于物品本身特征推荐因此不存在过度推荐热门的问题。然而缺点在于抽取的特征既要保证准确性又要具有一定的实际意义否则很难保证推荐结果的相关性。豆瓣网采用人工维护tag的策略依靠用户去维护内容的tag的准确性。2.3. 基于关联规则的推荐基于关联规则的推荐更常见于电子商务系统中并且也被证明行之有效。其实际的意义为购买了一些物品的用户更倾向于购买另一些物品。基于关联规则的推荐系统的首要目标是挖掘出关联规则也就是那些同时被很多用户购买的物品集合这些集合内的物品可以相互进行推荐。目前关联规则挖掘算法主要从Apriori和FP-Growth两个算法发展演变而来。基于关联规则的推荐系统一般转化率较高因为当用户已经购买了频繁集合中的若干项目后购买该频繁集合中其他项目的可能性更高。该机制的缺点在于
l计算量较大但是可以离线计算因此影响不大。
l由于采用用户数据不可避免的存在冷启动和稀疏性问题。
l存在热门项目容易被过度推荐的问题。2.4. 基于协同过滤的推荐协同过滤是一种在推荐系统中广泛采用的推荐方法。这种算法基于一个“物以类聚人以群分”的假设喜欢相同物品的用户更有可能具有相同的兴趣。基于协同过滤的推荐系统一般应用于有用户评分的系统之中通过分数去刻画用户对于物品的喜好。 协同过滤被视为利用集体智慧的典范不需要对项目进行特殊处理而是通过用户建立物品与物品之间的联系。目前协同过滤推荐系统被分化为两种类型基于用户(User-based)的推荐和基于物品(Item-based)的推荐。2.4.1. 基于用户的推荐基于用户的协同过滤推荐的基本原理是根据所有用户对物品或者信息的偏好评分发现与当前用户口味和偏好相似的“邻居”用户群在一般的应用中是采用计算“K-Nearest Neighboor”的算法然后基于这 K 个邻居的历史偏好信息为当前用户进行推荐。这种推荐系统的优点在于推荐物品之间在内容上可能完全不相关因此可以发现用户的潜在兴趣并且针对每个用户生成其个性化的推荐结果。缺点在于一般的Web系统中用户的增长速度都远远大于物品的增长速度因此其计算量的增长巨大系统性能容易成为瓶颈。因此在业界中单纯的使用基于用户的协同过滤系统较少。2.4.2. 基于物品的推荐基于物品的协同过滤和基于用户的协同过滤相似它使用所有用户对物品或者信息的偏好评分发现物品和物品之间的相似度然后根据用户的历史偏好信息将类似的物品推荐给用户。基于物品的协同过滤可以看作是关联规则推荐的一种退化但由于协同过滤更多考虑了用户的实际评分并且只是计算相似度而非寻找频繁集因此可以认为基于物品的协同过滤准确率较高并且覆盖率更高。同基于用户的推荐相比基于物品的推荐应用更为广泛扩展性和算法性能更好。由于项目的增长速度一般较为平缓因此性能变化不大。缺点就是无法提供个性化的推荐结果。两种协同过滤在基于用户和基于物品两个策略中应该如何选择呢其实基于物品的协同过滤推荐机制是 Amazon 在基于用户的机制上改良的一种策略因为在大部分的 Web 站点中物品的个数是远远小于用户的数量的而且物品的个数和相似度相对比较稳定同时基于物品的机制比基于用户的实时性更好。但也不是所有的场景都是这样的情况在一些新闻推荐系统中也许物品也就是新闻的个数可能大于用户的个数而且新闻的更新程度也有很快所以它的相似度依然不稳定。所以推荐策略的选择其实也和具体的应用场景有很大的关系。基于协同过滤的推荐机制是现今应用最为广泛的推荐机制它有以下几个显著的优点
l它不需要对物品或者用户进行严格的建模而且不要求物品的描述是机器可理解的所以这种方法也是领域无关的。
l这种方法计算出来的推荐是开放的可以共用他人的经验很好的支持用户发现潜在的兴趣偏好。然后而它也存在以下几个问题
l方法的核心是基于历史数据所以对新物品和新用户都有“冷启动”的问题。
l推荐的效果依赖于用户历史偏好数据的多少和准确性。
l在大部分的实现中用户历史偏好是用稀疏矩阵进行存储的而稀疏矩阵上的计算有些明显的问题包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。
l对于一些特殊品味的用户不能给予很好的推荐。
l由于以历史数据为基础抓取和建模用户的偏好后很难修改或者根据用户的使用演变从而导致这个方法不够灵活。3.推荐系统与广告投放互联网上的主题广告推广例如百度推广google adsense的目标在于实现一个面向用户的个性化广告投放系统。通过把个性化推荐算法在广告投放中的应用就实现了我们个性化广告投放的目标。那么这种演变是如何实现的呢在互联网中例如百度拥有大量的网页信息而主题广告推广的对象不是用户而是某一类型的页面。通过类比每种网页类型对应于推荐系统中的一个用户而每一个广告就对应于推荐系统中的一个物品网页类型用户对广告物品的评分则可以用该网页类型中投放广告时的点击情况来计算这样就构成了一个user-item-rating的矩阵。也就是通过协同过滤算法可以实现对不同类型的网页进行广告推荐。此外实际应用协同过滤算法来进行广告投放也存在一个些问题。例如协同过滤中的“冷启动”问题也就是新增广告条目的推荐需要额外考虑同时也需要考虑用户对广告的接受程度广告库存率等问题。4. 业界个性化推荐系统
4.1. YahooResarch - Web-ScaleRecommendation Systems2011推荐系统论坛中来自Yahoo的Yehuda Koren分享了他对于互联网中推荐系统的经验。在中简单介绍了目前广泛流行的协同过滤推荐机制另外分析了一些推荐系统中值得注意的一些问题
lBias Matters在实际的应用中用户并不是随机地选择物品去打分而是只选择那些和他们兴趣相关的物品打分绝大多数用户往往忽略了去给那些没有兴趣的物品打分。Koren通过分析Netflix Prize数据Koren发现用户对视频的评分变化中Bias可以解释其中的33%而个性化只能解释其中的10%剩下的57%暂时还得不到解释。
lEliciting user feedbackKoren的目标是解决推荐系统的cold-start问题例如Yahoo Movie中对于新用户很难预测他们的喜好对视频的评分。那么可以选一些视频让新用户打分从而获取他们的兴趣数据。在此过程中使用了决策树模型来引导用户评分可以用尽量少的视频最大程度地了解用户兴趣。
lEstimating confidence in recommendations在推荐系统中我们需要对被推荐物品的可信度进行估计从而得出更为可信的物品来进行推荐。Koren在这里提出了基于概率的可信度计算方法也就是根据对评分用户对物品的概率预测然后利用熵标准方差或是Gini不纯度等概率分布来对物品可信度进行评估。
4.2. 淘宝推荐系统淘宝推荐系统的目标就是要为各个产品提供商品店铺人类目属性各种维度的推荐。它的核心就是以类目属性和社会属性为纽带将人商品和店铺建立起联系。淘宝的宝贝推荐原则
l基于内容的和关联规则
l全网优质宝贝算分
l根据推荐属性筛选TOP
l基于推荐属性的关联关系
l采用搜索引擎存储和检索优质宝贝
l加入个性化用户信息根据用户的购买和收藏记录产生可推荐的关联规则。对优质宝贝的算分需要考虑商品的相关属性包括描述评价名称违规收藏人气累计销量UV以及PV等等。此外推荐系统根据用户的浏览收藏购买行为以及反馈信息在Hadoop上来计算用户带权重的标签用于进行个性化推荐。那么淘宝是如何利用个性化推荐的结果呢下图展示了淘宝基于个性化推荐的5W营销系统在个性化推荐之上淘宝还实现了基于内容的广告投放。由于个性化推荐出来的物品是用户所感兴趣的可以想象基于此之上的广告投放也应该会行之有效。众所周知淘宝具有海量的数据和商品问题这里列举了淘宝数据的一些参数超过8亿种在线商品100万产品4万属性等等。在淘宝实现推荐系统可能遇到的各种各样的难题其中有
l商品种类繁多生命周期短很难及时收集到足够多的点击或购买数据这使得基于用户行为的推荐方法比如基于物品的推荐方法发挥空间有限。
l因为商品是由卖家而非网站登记的数据的规范性差这又给基于内容的推荐带来了很大的困难。
l8亿种商品中重复的商品种类应该非常多需要尽量避免推荐重复种类的商品给用户但在数据规范性差、区分度差的情况下如何归并重复商品种类这本身也是个很大的难题。
l大多数推荐系统只需要考虑如何满足买家的需求在淘宝还要考虑卖家的需求。4.3. 豆瓣的推荐引擎 - 豆瓣猜豆瓣网在国内互联网行业美誉度很高这是一家以帮助用户发现未知事物为己任的公司。它的“豆瓣猜”是一种个性化的推荐其背后采用了基于用户的协同过滤技术。那么豆瓣猜是如何向我们推荐产品的呢首先确定什么样的产品适合推荐豆瓣猜提出选择”具有媒体性的产品 (Media Product)“来进行推荐即选择多样、口味很重要、单位成本不重要同时能够广泛传播 (InformationCascade)的产品接着在对真实的数据集进行定量分析后进一步得出应该是条目增长相对稳定、能够快速获得用户反馈数据稀疏性与条目多样性、时效性比较平衡的产品才是适合推荐的产品。
其次豆瓣网的推荐引擎面对高成长性的挑战通过降低存储空间近似算法与分布式计算的设计来实现对基于用户的协同过滤推荐系统的线性扩展。最后针对当前推荐系统面临的问题包括倾向于给出平庸的推荐有信息无结构以及缺乏对用户的持续关注等黑盒推荐问题。豆瓣提出了分为 PredictionForecastingRecommendation 三个阶段的下一代推荐系统并探讨了一种下一代推荐引擎的构想——基于用户行为模型的、有记忆的、可进化的系统。4.4. Hulu的个性化推荐Hulu是一家美国的视频网站它是由美国国家广播环球公司NBC Universal和福克斯广播公司Fox在2007年3月共同投资建立的。在美国Hulu已是最受欢迎的视频网站之一。它拥有超过250个渠道合作伙伴超过600个顶级广告客户3千万的用户3亿的视频以及11亿的视频广告。广告是衡量视频网站成功与否的一个重要标准。事实证明Hulu的广告效果非常好若以每千人为单位对广告计费Hulu的所得比电视台在黄金时段所得还高。那么是什么让Hulu取得了这样的成功呢通过对视频和用户特点的分析Hulu根据用户的个人信息行为模型和反馈设计出一个混合的个性化推荐系统。它包含了基于物品的协同过滤机制基于内容的推荐基于人口统计的推荐从用户行为中提炼出来的主题模型以及根据用户反馈信息对推荐系统的优化等等。此个性化推荐系统也进而成为了一个产品用于给用户推荐视频。这个产品通过问答的形式与用户进行交互获取用户的个人喜欢进一步提高推荐的个性化。Hulu把这种个性化推荐视频的思想放到了广告投放中设计出了一套个性化广告推荐系统。那么这种广告系统是如何实现个性化的呢
lHulu的用户对广告拥有一定控制权在某些视频中你可以根据自己的喜好选择相应的广告或者选择在开头看一段电影预告片来抵消广告。
lHulu收集用户对广告的反馈意见评分例如某个广告是否对收看用户有用
l根据人口统计的信息来投放广告。例如分析Hulu用户的年龄性别特征来同方不同的视频及广告。
l根据用户的行为模式进一步增加广告投放的准确性。