推荐系统

序言:
- 推荐系统在电子商务领域得到普遍的运用
- 推荐系统本质是销售的一部分
- 在便利店,推荐系统是导购牌,类目货架,是老板娘
- 在超市,推荐系统是导购牌,类目货架,是销售员

在电商,推荐系统是什么?
不管在便利店,还是超市,或者电商网站,本质上解决两个问题:
1.帮助用户获得想要的商品
A、用户知道自己想要什么商品,在什么位置 用户主动的行为
直接到货架区域去挑选商品,直接询问销售员商品在哪里
B、用户不知道自己想要什么,比如:逛街兴致。 用户被动的行为
2.帮助商家卖出更多的商品—商品的质量
所有商家中同质同量的商品比较多,如何让不同商家的利益得到保证。
在线下,哪个厂家的商品好卖,我就多进点货。在同等质量保证的而前提下,关系户的货物。
在线上,由于电商网站的利润一般是抽取销售额提成,只有更多的商家参与,才能做大市场和品牌

推荐系统是什么?
为了解信息过载和用户无名却需求的问题,找到用户感兴趣的物品,才有个性推荐系统.其实解决信息过载问题,代表性的解决方案是分类目录和搜索引擎.如hao123,电商首页的分类目录以及百度,360搜索等。,不过分类目录设搜索引擎只能解决用户主动查找信息,即用户知道自己想要什么,并不能解决用户没有明确需求很随便的问题.经典语录是:你想吃什么,随便!面对这种很随便又得罪不起的用户(女友和上帝),只能通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息。比如问问女友的闺蜜,她一般什么时候喜欢吃什么。
这里写图片描述

推荐系统广泛存在于各类网站中,作为一个应用为用户提供个性化的推荐。它需要一些用户的历史数据,一般由三个部分组成: 基础数据.推荐算法系统,前台展示.**基础数据包括很多维度,包括用户的访问,浏览,下单,收藏,用户的历史订单信息,评价信息等很多信息;推荐算法系统主要根据不同的推荐诉求,由多个算法组成的推荐模型;前台展示主要是对客户端系统进行响应,返回相关的推荐信息以供展示**
基础数据主要包括:

- 要推荐物品或内容的元数据,例如关键字,基因描述等;
- 系统用户的基本信息,例如性别,年龄等
- 用户对物品或者信息的偏好,根据应用本身的不同,可能包括用户对物品的评分,用户查看物品的记录,用户的购买记录等。

推荐引擎的分类:
推荐引擎的分类可以根据很多指标进行分区:
- 根据目标用户进行区分:根据这个指标可以分为基于大众行为的推荐引擎和个性化推荐引擎。
1. 根据大众行为的推荐引擎,对每个用户都给出同样的推荐,这些推荐可以是静态的由系统管理员人工设定的,或者基于系统所有用户的反馈统计计算出的当下比较流行的物品。
2. 个性化推荐引擎,对不同的用户,根据他们的口味和喜好给出更加精确的推荐,这时,系统需要了解需推荐内容和用户的特质,或者基于社会化网络,通过找到与当前用户相同喜好的用户,实现推荐。
这是一个最基本的推荐引擎分类,其实大部分人们讨论的推荐引擎都是将个性化的推荐引擎,因为从根本上说,只有个性化的推荐引擎才是更加智能的信息发现过程。

  • 根据数据源区分: 主要是根据数据之间的相关性进行推荐,因为大部分推荐引擎的工作原理还是基于物品或者游湖的相似进行推荐.
    根据系统用户的基本信息发现用户的相关程度,这种被称为基于人口统计学的推荐(Demographic-based Recommendation)
    根据推荐物品或内容的元数据,发现物品或者内容的相关性,这种被称为基于内容的推荐(Content-based Recommendation)
    根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,这种被称为基于协同过滤的推荐(Collaborative Filtering-based Recommendation)。
  • 根据推荐模型进行分区: 可以想象在海量物品和用户的系统中,推荐引擎的计算量相当大的,要实现实时的推荐务必需要建立一个推荐系统.关于推荐模型的建立方式可以分为以下几种:
    基于物品和用户本身的,这种推荐引擎将每个用户和每个物品都当作独立的实体,预测每个用户对于每个物品的喜好程度,这些信息往往 是用一个二维矩阵描述的。由于用户感兴趣的物品远远小于总物品的数目,这样的模型导致大量的数据空置,即我们得到的二维矩阵往往是一个很大的稀疏矩阵。同 时为了减小计算量,我们可以对物品和用户进行聚类, 然后记录和计算一类用户对一类物品的喜好程度,但这样的模型又会在推荐的准确性上有损失。
    基于关联规则的推荐(Rule-based Recommendation):关联规则的挖掘已经是数据挖掘中的一个经典的问题,主要是挖掘一些数据的依赖关系,典型的场景就是“购物篮问题”,通过关联规则的挖掘,我们可以找到哪些物品经常被同时购买,或者用户购买了一些物品后通常会购买哪些其他的物品,当我们挖掘出这些关联规则之后,我们可以基于这些规则给用户进行推荐。
    基于模型的推荐(Model-based Recommendation):这是一个典型的机器学习的问题,可以将已有的用户喜好信息作为训练样本,训练出一个预测用户喜好的模型,这样以后用户在 进入系统,可以基于此模型计算推荐。这种方法的问题在于如何将用户实时或者近期的喜好信息反馈给训练好的模型,从而提高推荐的准确度。

常见的推荐算法:
迄今为止,在个性化推荐系统中,协同过滤技术是应用最成功的技术.目前国内许多大型网站应用这项技术为用户更加智能的推荐内容:
1.基于用户的系统过滤算法
第一代协同过滤技术是基于用户的协同过滤算法,基于用户的系统过虑算法在推荐系统中获得极大的成功,但它有一定的局限性.因为基于用户的协同过滤算法先计算的是用户与用户的相似度,然后将相似度比较的用户A购买的物品推荐给B用户.专业的说法是该算法用最近邻居(nearest-neighbor)算法找出一个用户的邻居集合,该集合的用户和该用户有相似的喜好,算法根据邻居的偏好对该用户进行预测。基于用户的推荐逻辑有两个逻辑问题;冷启动与计算量巨大.基于用户的算法只有已经被用户选择购买的物品才有机会推荐给其它用户.在大型电商网站上来讲,商品的数量实在是太多了,没有被相当数量的用户购买的物品实在是太多了,直接导致没有机会推荐给用户了,这个问题被称之为协同过滤的“冷启动”。
这里写图片描述
2. 基于物品的协同过滤算法
第二代协同过滤技术是基于物品的协同过滤算法,基于物品的协同过滤算法与基于用户的协同过滤算法基本类似。他使用所有用户对武平或者信息的偏好,发现武平的和物品之间的相似度.
这里写图片描述
3. 基于人口统计学的推荐
基于人口统计学的推荐机制(Demographic-based Recommendation)是一种罪易于事项的推荐算法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。基于人口统计学的推荐机制的好处在于:因为不使用当前用户对物品的喜好历史数据,所以对于新用户来讲没有“冷启动(Cold Start)”的问题。这个方法不依赖于物品本身的数据,所以这个方法在不同物品的领域都可以使用,它是领域独立的
- 基于内容的推荐:
基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制,,它的核心思想是根据推荐武平或内容的元数据,发现物品或者内容的相关性,发现物品或者内容的相关性,然后基于用户以往的喜好记录.
但也存才几个问题:

  • 需要对物品进行分析和建模,推荐的质量依赖于对物品模型的完整和全面的程度.
  • 物品的相似度的分析仅仅依赖物品本身的特征,这里没有考虑人对物品的态度
  • 因为需要基于用户以往的喜好历史做出推荐,所以对于新用户有“冷启动”的问题。

    4.混合的推荐机制:
    在现行的 Web 站点上的推荐往往都不是单纯只采用了某一种推荐的机制和策略,他们往往是将多个方法混合在一起,从而达到更好的推荐效果。关于如何组合各个推荐机制,这里讲几种比较流行的组合方法。

  • 加权的混合:

  • 切换的混合:
  • 分区的混合:
  • 分层的混合:
  • 推荐系统引用场景
    Amazon 利用可以记录的所有用户在站点上的行为,根据不同数据的特点对它们进行处理,并分成不同区为用户推送推荐:

  • 今日推荐:通常是根据用户的近期的历史购买后者查看记录,结合当下流行的武平给出得到一折中的推荐.

  • 新产品推荐:采用了基于内容的推荐机制,将一些的新的武平推荐给用户.在方法选择上由于新物品没有大量的用户喜好信息,所以基于内容的推荐能很好的解决这个“冷启动”的问题。
  • 捆绑销售:采用数据挖掘技术对用户的购买行为进行分析,找到经常被一起或同一个人购买的物品集,进行捆绑销售,这是一种典型的基于项目的协同过滤推荐机制
  • 别人购买 / 浏览的商品 (Customers Who Bought/See This Item Also Bought/See): 这也是一个典型的基于项目的协同过滤推荐的应用,通过社会化机制用户能更快更方便的找到自己感兴趣的物品。

数据的减噪和归一化:
收集了用户的行为数据,我们还需要进一步的预处理,其核心的工作就是 减噪和归一化。
减噪:用户行为数据是用户在使用应用过程中产生的,它可能存在大量的噪音和用户的误操作,我们可以通过经典的数据挖掘算法过滤掉行为数据中的噪音,这样可以是我们的分析更加精确。
归一化:如前面讲到的,在计算用户对物品的喜好程度时,可能需要对不同的行为数据进行加权。但可以想象,不同行为的数据取值可能相差很 大,比如,用户的查看数据必然比购买数据大的多,如何将各个行为的数据统一在一个相同的取值范围中,从而使得加权求和得到的总体喜好更加精确,就需要我们 进行归一化处理。最简单的归一化处理,就是将各类数据除以此类中的最大值,以保证归一化后的数据取值在 [0,1] 范围中。
进行的预处理后,根据不同应用的行为分析方法,可以选择分组或者加权处理,之后我们可以得到一个用户偏好的二维矩阵,一维是用户列表,另一维是物品列表,值是用户对物品的偏好,一般是 [0,1] 或者 [-1, 1] 的浮点数值。
找到相似的用户或物品
当已经对用户行为进行分析得到用户喜好后,我们可以根据用户喜好计算相似用户和物品,然后基于相似用户或者物品进行推荐,这就是最典型的 CF 的两个分支:基于用户的 CF 和基于物品的 CF。这两种方法都需要计算相似度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值