推荐系统——入门

1、推荐系统的产生   

        数据的爆炸式增长,使得纷杂的信息呈现在人们眼前。怎么从这么多信息中发现我们想要的信息?传统的搜索引擎在一定程度上解决了这一问题,通过用户指定关键字,在后台进行匹配排序,将用户最可能需要的信息返回给用户。但是并不是所有用户都能将想要获得的信息进行准确描述,也并不是所有的信息 都可以被准确的用几个 关键词定义。于是,推荐系统应运而生。推荐系统是为用户进行个性化推荐的,根据用户以往的行为及偏好,推断出用户可能感兴趣的东西,推荐给用户。推荐系统比你更了解你自己。

 

 

 

2、推荐系统的几种算法

     (1)  基于人口统计学的推荐:根据用户人口统计学上的相似性,找到相似的用户(邻居),用邻居的偏好来推断用户的偏好。

作图示例。

      

   

 

 

 

  

 

(2)基于内容的推荐:根据内容的属性,计算内容的相似度。然后根据用户的历史偏好,向用户推荐相似内容。但是在电子商务平台上非常严重的问题是,在用户已买过了某种商品,基本上短期内是不会再买同类商品的。


缺点:结果的精确度取决于对象的模型维度;存在冷启动问题;

    (3)协同过滤CF

基于内存的协同过滤

        基于用户的协同过滤:指根据品位类似的人的历史偏好,向用户推荐。举个现实生活中的例子,如果你想看电影又不知道该看哪一部,那么你会询问朋友,一般是品位比较近似的朋友。将一个用户对所有对象的偏好做为一个向量,找到相似用户,根据相似用户的历史偏好向用户推荐未表示偏好的对象。


        基于对象的协同过滤:


根据物品间的相似程度来向用户进行推荐。注意,这里两个物品同时被更多的人喜欢那么相似度越高,(也不确切,因为同时被不喜欢的次数多也是一种相似,所以应该说成分数一样的次数越多越相似),而不是内容相似,和基于内容的推荐不同之处在于需要所有用户的历史偏好信息。举个经典例子来说:啤酒与尿布,这两者并不相似,但却关联。计算过程是,将所有用户对同一对象的偏好做为一个向量,计算关联度较高的对象推荐给用户。

特点:不需要知道用户和对象的特征,只需要收集用户对物品的偏好。

 

       不同的系统由于本身的独特性,需要不同的推荐算法,才能取得比较好的性能。对于电子商务平台,商品数远小于用户数,而且商品基本上没有太多变化,那么基于商品的协同过滤比基于用户的协同过滤计算量要小,也更准确。对于新闻、博客这种社交平台,信息每天都在更新,选择基于用户的协同过滤更让人信服。

 

       那么最重要的一点,如何得到用户偏好呢?

       用户偏好是通过用户的行为反应的,不同的用户行为显示的或隐式的反应了用户偏好。常见的用户行为有评分、评论、标签tag、浏览次数等。如下图:

 

       收集到的用户行为数据需要进行预处理:

       去噪:用户行为是用户进行操作的,可能存在操作失误,比如在网络反应比较慢时连续点击某个商品,需要将这些噪声剔除;

       归一化:用户每种行为的数量取值范围相差太多,比如购买次数和浏览次数,那么进行加权的时候浏览次数所占的比重会远高于购买数,所以需要进行归一化操作保证每种行为在同一范围内取值取值,一般是通过将该值除以该类数据中出现的最大值。

       通过将用户对对象的各种行为加权得到用户对该对象的偏好(0-1之间的一个数)。将所有用户对所有对象的偏好组成矩阵,行代表用户,列代表对象,即可得到偏好矩阵。但是这个矩阵是稀疏矩阵,如何存储、计算也是一个问题。看到一个博客上讲到SVD奇异值分解进行降维,举个例子说明,假设物品包含数学书、物理书、语文书,衬衫,外套,手机,pad,那么就可以进行特征提取,将物品分为三类,书籍,服装,电子产品。但在算法里面是完全通过数学方法进行降维的。通过对矩阵相乘不断的拟合,参数调整,将原来巨大的稀疏的矩阵,分解为不同的矩阵,使其相乘可以得到原来的矩阵。

 

另一个问题,怎么计算两向量的相似度呢?

       有多种计算相似度的方法,贴图。

 

得到两两物品的相似度,怎么预测用户u对物品i的评分

选择和物品i最相似的k个物品。可以通过加权和,也可以通过回归分析预测用户u对i的评分。以加权和为例,用户u对物品i的评分等于i和j的相似度*j的评分之和。

 

基于模型的协同过滤:

       上面两种协同过滤推荐又被称为基于记忆的推荐,因为算法需要用户的历史行为信息。还有一种协同过滤,称作基于模型的推荐,是采用机器学习或数据挖掘等算法,用训练数据来学习复杂模式,从而得到学习模型,然后基于学习模型在数据集上进行智能预测。包括贝叶斯网络模型,聚类模型,概率因素模型,隐语义模型,隐因素模型。通俗点说,就是根据一个用户的历史偏好训练出喜好模型,用于预测对其它物品的喜好。

 

3、混合推荐算法:由于每个算法的效果都很难令人满意,一般同时用多个推荐算法进行推荐

       加权(weighted):同时使用多个算法,进行加权求和,权值需要在实验中不断调整,以达到最优;

       变换(switching):根据需要,在不同情况下用最适合的算法,比如看用户和物品的数量

       混合(mixed):多个算法得到的推荐结果分区显示,用户得到比较全面的推荐,可自己进行选择

       特征组合(feature combination):

       级联(cascade):

       特征扩充(feature augmentation):

       元级别:串联的形式,将一个算法得到的结果作为另一个算法的输入

 

4、推荐系统的评价指标:

    推荐系统的评价指标有预测准确度多样性覆盖率新颖度四大类,每种又细分为多个小类

    准确度:是一个可以量化的指标,具体值为预测的分数和真实分数之间的差距。

    多样性:推荐的物品要多样化,不能都是同种物品

    覆盖率:可以预测打分的产品占所有产品的比重。因为可能由于信息不全面,导致无法预测用户对某些产品的喜好。

    新颖度:向用户推荐未购买过的但可能感兴趣的产品,对用户会带来惊喜的产品。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值