推荐系统概述

推荐系统

  推荐系统的属于咨询过滤的一种应用。推荐系统能够将可能喜好的咨询或实物(例如:电影、电视节目、音乐、书籍、新闻、图片、网页)推荐给使用者。

  推荐系统首先收集用户的历史行为数据,然后通过预处理的方法得到用户-评价矩阵,再利用机器学习领域中相关推荐技术形成对用户的个性化推荐。有的推荐系统还搜集用户对推荐结果的反馈,并根据实际的反馈信息实时调整推荐策略,产生更符合用户需求的推荐结果。

推荐系统的作用

  1. 将网站的浏览者转为购买者或者潜在购买者(购物车);

  2. 提高购物网站的交叉销售能力和成交转化率;

  3. 提高客户对网站的忠诚度和帮助用户迅速找到产品。

推荐系统的表现形式

  1. Browsing:客户提出对特定商品的查询要求,推荐系统根据查询要求返回高质量的推荐;

  2. Similar Item:推荐系统根据客户购物篮中的商品和客户可能感兴趣的商品推荐类似的商品;

  3. Email:推荐系统通过电子邮件的方式通知客户可能感兴趣的商品信息;

  4. Text Comments:推荐系统向客户提供其他客户对相应产品的评论信息;

  5. Average Rating:推荐系统向客户提供其他客户对相应产品的等级评价 ;

  6. Top-N:推荐系统根据客户的喜好向客户推荐最可能吸引客户的N件产品 ;

  7. Ordered Search Results:推荐系统列出所有的搜索结果,并将搜索结果按照客户的兴趣降序排列。

推荐技术分类

  1. 基于用户统计信息的推荐;

  2. 基于其他客户对该产品的平均评价,这种推荐系统独立于客户,所有的客户得到的推荐都是相同的(Non-Personalized Recommendation);

  3. 基于产品的属性特征(Attributed-Based Recommendation);

  4. 根据客户感兴趣的产品推荐相关的产品(Item-to-Item Correlation);

  5. 协同过滤,推荐系统根据客户与其他已经购买了商品的客户之间的相关性进行推荐(People-to-People Correlation)。

推荐系统的数据分类

  1. explicit(显式):能准确的反应用户对物品的真实喜好,但需要用户付出额外的代价。如:用户收藏、用户评价。

  2. Implicit(隐式):通过一些分析和处理,才能反映用户的喜好。如:用户浏览、用户页面停留时间、访问次数。

推荐引擎的数据源

一般情况下,推荐引擎所需要的数据源包括:

  • 要推荐物品的元数据;

  • 系统用户的基本信息

  • 用户对物品或者信息的偏好,根据应用本身的不同,可能包括对物品的评分,用户查看物品的记录,用户的购买记录等。

基于人口统计学的推荐

  简单的根据系统用户的基本信息发现用户相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。

基于人口统计学的推荐机制的好处在于:

  1. 因为不使用当前用户对物品的喜好历史数据,所以对于新用户来讲没有“冷启动(Cold Start)”的问题。

  2. 这个方法不依赖于物品本身的数据,所以这个方法在不同物品的领域都可以使用,它是领域独立的(domain-independent)。

  这种基于用户的基本信息对用户进行分类的方法过于粗糙,尤其是对品味要求较高的领域,比如图书,电影和音乐等领域,无法得到很好的推荐效果。

基于内容的推荐

  基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制,它的核心思想是根据推荐物品或内容的元数据,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品。

  这种基于内容的推荐机制的好处在于它能很好的建模用户的口味,能提供更加精确的推荐。但它也存在以下几个问题:

  1. 需要对物品进行分析和建模,推荐的质量依赖于对物品模型的完整和全面程度。在现在的应用中我们可以观察到关键词和标签(Tag)被认为是描述物品元数据的一种简单有效的方法。

  2. 物品相似度的分析仅仅依赖于物品本身的特征,这里没有考虑人对物品的态度。

  3. 因为需要基于用户以往的喜好历史做出推荐,所以对于新用户有“冷启动”的问题。

基于协同过滤的推荐

  原理是根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐。基于协同过滤的推荐可以分为三个子类:基于用户的推荐(User-based Recommendation),基于项目的推荐(Item-based Recommendation)和基于模型的推荐(Model-based Recommendation)。

基于用户的协同过滤推荐

  基于用户的协同过滤推荐的基本原理是,根据所有用户对物品或者信息的偏好,发现与当前用户口味和偏好相似的“邻居”用户群,在一般的应用中是采用计算“K- 邻居”的算法;然后,基于这 K 个邻居的历史偏好信息,为当前用户进行推荐。

  基于用户的协同过滤推荐机制和基于人口统计学的推荐机制不同的是如何计算用户的相似度,基于人口统计学的机制只考虑用户本身的特征,而基于用户的协同过滤机制可是在用户的历史偏好的数据上计算用户的相似度,它的基本假设是,喜欢类似物品的用户可能有相同或者相似的口味和偏好。

基于项目的协同过滤推荐

  基于项目的协同过滤推荐的基本原理也是类似的,只是说它使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。

  基于项目的协同过滤推荐和基于内容的推荐其实都是基于物品相似度预测推荐,只是相似度计算的方法不一样,前者是从用户历史的偏好推断,而后者是基于物品本身的属性特征信息。

基于模型的协同过滤推荐

  基于模型的协同过滤推荐就是基于样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好的信息进行预测,计算推荐。

基于协同过滤的推荐机制是现今应用最为广泛的推荐机制,它有以下几个显著的优点:

  1. 它不需要对物品或者用户进行严格的建模,而且不要求物品的描述是机器可理解的,所以这种方法也是领域无关的

  2. 这种方法计算出来的推荐是开放的,可以共用他人的经验,很好的支持用户发现潜在的兴趣偏好

而它也存在以下几个问题:

  1. 方法的核心是基于历史数据,所以对新物品和新用户都有“冷启动”的问题。

  2. 推荐的效果依赖于用户历史偏好数据的多少和准确性。

  3. 在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。

  4. 对于一些特殊品味的用户不能给予很好的推荐。

  5. 由于以历史数据为基础,抓取和建模用户的偏好后,很难修改或者根据用户的使用演变,从而导致这个方法不够灵活。

Amazon 利用有它大量历史数据的优势,量化推荐原因。

  在网络数据爆炸的年代,如何让用户更快的找到想要的数据,如何让用户发现自己潜在的兴趣和需求,无论是对于电子商务还是社会网络的应用都是至关重要的。

  推荐引擎只是默默的记录和观察你的一举一动,然后再借由所有用户产生的海量数据分析和发现其中的规律,进而慢慢的了解你,你的需求,你的习惯,并默默的无声息的帮助你快速的解决你的问题,找到你想要的东西。

原文地址:https://www.cnblogs.com/ST-2017/p/10468294.html