现在,推荐系统已经在电商平台、信息流分发平台、广告平台等等,在处理大量用户信息的时,解决信息过载问题的重要手段。推荐系统是一个较大的系统,而我立身算法角度,谈一谈我对推荐系统中推荐算法的理解与见解。算法
推荐系统通常来说主要分为两个部分:召回部分和排序部分。作了三年的算法后,给个人感受,大部分的场景其实均可以用推荐算法这两个部分来套(固然,具体问题仍是能够具体分析,这里说的只是一种解决问题的套路而已,并非说方法通用)。机器学习
推荐系统发展到如今其实已经有十多年了,这期间有较多的算法被业界精英们纷纷提出,但通过前辈们的大量的实践证实,没有一个算法能够通用的解决全部的问题,这其实也从另一个层面说明,为何推荐系统须要投入一个团队的人力来作这个事情。学习
推荐算法须要解决的问题:大数据
一、将用户须要的商品或者信息在合适的时候推荐给到相应的用户spa
二、冷启动问题blog
三、数据稀疏问题排序
四、算法的稳定性ci
五、大数据问题it
六、多样性和新颖性问题数据挖掘
七、长期兴趣和短时间兴趣的融合
下面主要根据推荐系统的发展历程来讲说推荐系统中推荐算法:
一、基于规则的方法
该方法通常是采用一些人工的先验知识,制定一些规则决定推荐给到用户商品或者广告。最多见的就是热门推荐。这种方法推荐可能必定程度上丢失个性化,由于热门推荐是全局角度来统计的。
二、基于内容的推荐方法
该方法是借助完善的用户画像,根据用户不一样维度的信息来进行推荐,而且借助数据挖掘的方法,了解不一样特征的用户对不一样商品/广告的偏好,以此为推荐结果给到用户。
这种方法存在一个问题是用户的特征可能维度较多,而哪个维度更重要一些是须要必定的先验知识的。
三、基于协同过滤的推荐方法
该方法一般来说通常分为两种:UserBased CF和ItemBased CF
(1)UserBasedCF:该方法是经过用户,找到该用户类似的用户,再根据类似用户的行为,推荐给该用户
(2)ItemBasedCF:该方法是经过用户购买的商品,经过找到该商品类似的商品,将类似的商品推荐给该用户
从上面的介绍能够看出,这两种方法都须要计算类似度(用户类似度或者商品类似度),常见的类似度有Jacarrd距离,Cos距离等。该方法主要的缺点是类似度计算效率比较低。且存在冷启动问题。
四、基于模型的推荐方法
该方法是经过用户对已购买的商品的一个反馈行为获得一个评分矩阵(如:电影评分矩阵),采用矩阵分解的方法进行分解,获得一个user和item矩阵。再来计算用户对商品的偏好。
该方法优势是能够解决数据稀疏性问题,缺点是:前提是用户存在行为数据,已评价的数据。这就存在一个冷启动的问题,即新用户没有任何行为的用户如何给出推荐结果呢?
常见的矩阵分解方法有:SVD,SVD++,ALS等
五、混合推荐
通常稍微复杂推荐系统是包含召回和排序两个过程,而上面介绍的四种方法每每都是在召回的过程当中。而工业界负责的推荐会加上一个精排过程。该过程主要是经过机器学习的方法进行排序。须要用到LTR方法。
即前面四种方法能够做为四路召回,最后再进行精排。
六、评价指标
说了推荐算法的一些方法,最后确定要说一下评价指标:
(1)MAE:平均绝对偏差
(2)MSE&RMSE
(3)Precision:TOPN的精确度
(4)Recall:TOPN的召回率
(5)F1:TOPN的F1指标
(6)AUC:TOPN的AUC
(7)新颖度