推荐系统综述
摘要:用户推荐算法,能够通过数学变量的运算,推测出用户可能喜欢的东西。在信息化社会的今天,优秀的推荐算法无疑降低了用户寻找优质内容的成本,同时也给广告定点推荐提供了良好的解决方案,本文将介绍推荐系统的作用,并对现在主要流行的推荐算法做一些介绍。
介绍:
为了解决互联网时代下的信息超载问题,提出分类目录(雅虎)和搜索引擎(谷歌)但随着数据量的增大,分类目录网站只能涵盖少数热门网站,已无法满足用户需求。因此,搜索引擎诞生了。搜索引擎,用户通过输入关键字,查找自己需要的信息索引擎,用户通过输入关键字,查找自己需要的信息。推荐系统,和搜索引擎一样,是一种帮助用户快速发展有用信息的工具。通过分析用户的历史行为,给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息。推荐系统最早也是最成功应用的就是在电子商务领域,在研究发展和应用中取得了很好的成绩。从上世纪以来其应用的规模也在一步步的放大。很多大型的电商(Amazon等)都在自己的系统中加入了一定的推荐技术。其中,亚马逊从研究到应用,这短短的时间里面35%的销售业绩就是直接来自推荐系统技术本身。现在的常用的推荐系统有:1.基于流行度的算法,2.协同过滤算法,3.基于内容的算法,4.基于模型的算法,5.混合算法
一,推荐算法的作用
在当今的互联网环境下,推荐系统的作用,被越来越多的企业所重视。优秀的推荐算法能够给企业带来新的机遇,互联网时代当中,推荐系统有着以下的一些作用。
1,能够高效的帮助用户找到需要的商品或服务
互联网时代的商品从线下延伸到线上,使得商品的选择成指数级增长。用户往往在选择时,耗费大量的时间、精力。不过,使用推荐系统的平台,能够有效避免这方面的问题,同时,增加平台的收益。
2,去处信息噪声
随着互联网的发展,网络每时每刻都在生产巨量的信息。个人用户要在浩如烟海的互联网寻找有价值的信息,是极其困难的。但是,推荐系统能够帮助用户过滤低价值的信息。
3,对于互联网平台而言,提高了收益率和培养了用户粘性
观察中国的互联网环境,用户对内容的要求越来越高。低质量的内容输出,已经满足不了用户的日常阅读需求。推荐系统则努力迎合用户的需求,秉承用户至上的原则。
4,为广告业带来了机遇
在观看爱奇艺视频的时候,屏幕左下方经常出现男女主人公同款,电视剧商品同款等广告。贴片广告,实现了实时推荐,极大的提高了广告主的收益,同时,提高了用户的观看体验,附加体验。
二,现如今主流的推荐算法介绍
1,基于流行度的推荐算法
基于流行度的推荐算法是最简单的推荐算法,类似于各大新闻、微博热榜等,根据PV、UV、日均PV或分享率等数据来按某种热度排序来推荐给用户。常用的热度有浏览量评论量分享量等
有点:简单粗暴有效,尤其适合刚刚注册的用户
缺点:无法提供个性化的推荐算法
2,****.协同过滤算法
协同过滤算法(Collaborative Filtering, CF)是很常用的一种算法,在很多电商网站上都有用到。CF算法包括基于用户的CF(User-based CF)和基于物品的CF(Item-based CF)。
User-based CF原理:
1,.分析各个用户对item的评价(历史记录)
2,根据用户对Item的评价计算得出所有用户之间的相似度
3,选出与当前用户最相似的N个用户3.对于当前用户评价高的item,找出与之相似度最高的N个item
4,将N个用户评价最高并且当前用户没有浏览过的item推荐给当前用户4.将N个item推荐给当前用户
Item-based CF原理
1,分析各个用户对Item的浏览历史
2,根据history分析出所有item的相似度
3,选出与当前用户最相似的N个用户3.对于当前用户评价高的item,找出与之相似度最高的N个item
4,.将N个用户评价最高并且当前用户没有浏览过的item推荐给当前用户4.将N个item推荐给当前用户
优点: CF算法描述简单,实现容易;推荐结果准;推荐个性化,自动化程度高;能处理复杂的非结构化对象。
缺点: 对于新用户,推荐效果差;推荐数据取决于历史数据集;存在矩阵稀疏问题。
3,基于内容的算法(Content-based Recommenddtion)
CB是建立在项目的内容信息上做出推荐,不需要依据用户对项目的评价,更多的需要依据用机器学习的方法从关于内容的特征描述中得到用户感兴趣的资料。
也就是说需要先开始从大量数据中,提取内容的特征,分类,建立相关特征
CB的过程一般包括以下三步:
1. Item Representation:为每个item抽取出一些特征(也就是item的content了)来表示此item;
2. Profile Learning:利用一个用户过去喜欢(及不喜欢)的item的特征数据,来学习出此用户的喜好特征(profile);
第二个过程实际上是一个典型的监督分类问题,理论上机器学习里分类算法都可以搬进里面,常用的一起分类方法如下:
2.1,****最近邻方法(k-Nearest Neighbor,简称kNN)
对于一个新的item,最近邻方法首先找用户u已经评判过并与此新item最相似的k个item,然后依据用户u对这k个item的喜好程度来判断其对此新item的喜好程度。这种做法和CF中的item-based kNN很相似,差别在于这里的item相似度是根据item的属性向量计算得到,而CF中是根据所有用户对item的评分计算得到。
对于这个方法,比较关键的可能就是如何通过item的属性向量计算item之间的两两相似度,[1]中建议对于结构化数据,相似度计算使用欧几里得距离;而如果使用向量空间模型(VSM)来表示item的话,则相似度计算可以使用cosine。
- 2,****Rocchio算法
Rocchio算法是信息检索中处理相关反馈(Relevance Feedback)的一个著名算
2.3****决策树算法(Decision Tree,简称DT)
当item的属性较少而且是结构化属性时,决策树一般会是个好的选择。这种情况下决策树可以产生简单直观、容易让人理解的结果。而且我们可以把决策树的决策过程展示给用户u,告诉他为什么这些item会被推荐。但是如果item的属性较多,且都来源于非结构化数据(如item是文章),那么决策树的效果可能并不会很好。
2.4. 线性分类算法(Linear Classifer,简称LC)
对于我们这里的二类问题,线性分类器(LC)尝试在高维空间找一个平面,使得这个平面尽量分开两类点。也就是说,一类点尽可能在平面的某一边,而另一类点尽可能在平面的另一边。
5. 朴素贝叶斯算法(Naive Bayes,简称NB)
** NB算法就像它的简称一样,牛逼!NB经常被用来做文本分类,它假设在给定一篇文章的类别后,其中各个词出现的概率相互独立。它的假设虽然很不靠谱,但是它的结果往往惊人地好。再加上NB的代码实现比较简单,所以它往往是很多分类问题里最先被尝试的算法。我们现在的profile learning问题中包括两个类别:用户u喜欢的item,以及他不喜欢的item。在给定一个item的类别后,其各个属性的取值概率互相独立。我们可以利用用户u的历史喜好数据训练NB,之后再用训练好的NB对给定的item做分类。[3]**
3. Recommendation Generation:通过比较上一步得到的用户profile与候选item的特征,为此用户推荐一组相关性最大的item。[2]
推荐的一般过程见下图:
[图片上传失败...(image-ec4436-1541081280682)]
基于内容的推荐算法一般步骤[2]
优点:没有冷启动问题和稀疏矩阵问题;能为具有特殊兴趣爱好的用户进行推荐;技术相当成熟。
缺点:对于过度专业化的问题,采用CBR算法,系统会一直推荐给用户内容密切相关的item,从而失去推荐内容的多样性、丰富性。
4,基于模型的推荐算法
基于模型的推荐算法与基于Memory的推荐算法相对。当数据量特别大时,将用户数据,读入内存,进行运算,开销较大,如果使用基于model的推荐算法,依托于机器学习的model,离线训练,在线推荐,将会减少开销。
常用的模型有:
贝叶斯分类,决策树,神经网络,专家系统,知识推理,矩阵分界,概率模型,图模型,Boosting等
优点:推荐速度快速,准确度高,适用于实时性较高的业务,比如微博,澎湃新闻等。
缺点:属性的组合和筛选取决于模型,如果数据集和模型之间存在较大的差异,推荐效率将大幅度下降。
5,组合推荐算法
在实际的应用场景,使用单一的推荐算法往往会导致推荐结果很差。所以,为了提高推荐效率,常见的做法是,综合多种推荐算法。比如,通过对不同的推荐算法计算出的结果进行加权处理,也可以在不同的计算环节运用不同的算法来混合结果。
三,关于推荐系统的安全性
推荐算法是极其有趣的领域。随着技术的发展,计算机能够准确的知道用户想购买的商品、性格、爱好,推荐系统降低了我们寻找内容的成本。在推荐过程当中由于需要对用户的历史记录进行收集分析,所以我们需要注意用户信息的安全性,Cynthia Dwork于2008年提出差分隐私(Differential Privacy)用于保护数据库查询的安全性[4],随后,差分隐私就应用于推荐系统中,在不特别影响推荐结果的准确性的情况下,大大的提高了用户的安全性[5]。
贡献和感谢
[1]Michael J. Pazzani and Daniel Billsus, Content-Based Recommendation Systems, 2007
[2]Pasquale Lops, Marco de Gemmis and Giovanni Semeraro, Chapter 3 in Recommender Systems Handbook, 2011
[3] Gediminas Adomavicius and Alexander Tuzhilin, Towards the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions
[4]Cynthia Dwork Differential privacy: A survey of results 2008
[5]Frank McSherryMicrosoft Research, Mountain View, CA, USAIlya MironovMicrosoft Research, Mountain View, CA, USA Differentially private recommender systems: Building privacy into the Netflix Prize contendersACM New York, NY, USA 2009