龙空技术网

推荐系统相关算法介绍

极致编程 198

前言:

眼前朋友们对“推荐算法有哪几类各自的优缺点是什么”大概比较珍视,我们都想要剖析一些“推荐算法有哪几类各自的优缺点是什么”的相关资讯。那么小编同时在网上汇集了一些对于“推荐算法有哪几类各自的优缺点是什么””的相关资讯,希望小伙伴们能喜欢,朋友们一起来了解一下吧!

我们知道,如果我们想买一样东西,可以到附近商店里向售货员购买,他会给你你要买的东西,同时你递给他钱。我们也可以到附近超市里,根据超市里而上方的指示牌找到需要的东西,有的货架上还有很多品牌型号选择,我们就可以选择最喜欢的购买。如果不想出门,可以打开电脑或手机上的淘宝或者京东,通过上面的搜索框输入自己喜欢的商品进行购买,京东最快当天就能送到手,直接在门口签收就可以了,方便快捷。像京东淘宝这种大型的购物网站,商品数量上千万,根据搜索或分类可以找到喜欢的商品。

如果是电影或音乐这种商品,我们也可以搜索自己喜欢的进行欣赏。但是像电影视频或音乐这种商品,主要还是无聊的时候欣赏得多,这些商品满足的用户的精神需求,精神需求不像物质需求,物质需求可以明确是什么需求,可以通过购买哪些商品进行满足,而精神需求就不一样了,精神需求没有明确哪种商品可以满足,比如快乐的时候听什么歌曲合适,即便知道咧哪种类型歌曲合适也不一定所有这种类型的歌曲都能满足你。所以在这时候如果要是有个朋友或其他智能系统根据你的以往经历爱好等信息推荐给你喜欢的歌曲,那准确率就会很高。推荐系统应运而生。推荐系统可以通过收集并分析用户的行为日志,从而建立用户模型,然后再使用不同的推荐算法进行计算。

基于内容的推荐算法

基于内容的推荐最初源自于信息获取领域,他不需要用户对商品的评分,而是分析用户的浏览记录,从浏览记录中分析商品的信息,提取能代表这些商品的特征,从而建立用户的兴趣模型,然后再与被推荐商品的信息进行相似度计算,计算出与用户兴趣最相似的一些商品对其排名,最后形成推荐列表进行推荐。计算被推荐商品和用户兴趣模型的相似度是基于内容推荐的核心,相似度计算一般可以使用简单的余弦定理进行计算。以新闻推荐系统为例,对每一篇新闻提取最能代表此篇新闻的特征词语,可以使用TF-IDF计算代表每篇文章的词语向量。可以使用这种TF-IDF方法计算最能代表每篇文章的词语,然后再使用向量的余弦计算文章与用户兴趣词语最接近的一些文章进行排序推荐。

基于内容的推荐算法优点:①实现简单,容易理解,更加符合用户的思维;②不需要专业领域的知识,只需要获取特征进行计算即可;③不需要用户的评分内容或其他操作,只需要用户的浏览记录就可以实现;④有很多机器学习或数据挖掘方面的分类算法作为支持,方便优化。

基于内容的推荐算法的缺点:①因为基于内容的推荐算法需要被推荐对象的内容信息,但有些商品的内容信息不方便提取,比如音频、视频、图片的这些多媒体数据,他们的内容数据提取耗时,尤其电影这种大文件,如果对其每张图片进行分析的话,势必非常耗时,不方便实现。②因为推荐算法是计算用户兴趣与被推荐对象的相似度,所以每次推荐都会计算他们最相似的进行推荐,所以就很难提升推荐结果的新鲜度,长期就会丧失用户的兴趣。③存在新用户的冷启动问题。如果新加入的用户还没有历史记录,那么就没法进行用户的兴趣建模,从而不能计算用户与被推荐商品的相似度,也就不能够进行推荐。④不同语言描述的用户兴趣模型与被推荐对象的语言描述不一致将会影响相似度的计算,目前还没有很好的方法解决此问题。

协同过滤的推荐算法

协同过滤算法最初是在20世纪90年代被提出的,也是目前应用最为成功的一个算法,不仅在学术界研究活跃,在工业界也应用非常广泛。协同过滤推荐算法主要分为两大类:一个是基于用户的,一个是基于商品的。下面将对两个算法进行详细描述。

1)基于用户的协同过滤推荐算法。最先被提出的推荐算法,标志着推荐系统研究领域的开始。此算法最初应用于邮件过滤系统,后来GroupLens将其应用于新闻推荐上面,并获得了巨大成功,直到现在此算法依然活跃在推荐系统研究和应用领域,使之成为推荐系统最为成功的一个。

我们为了学习推荐系统而加入了一个QQ群,里面很多大牛都是从像我这种小白开始学习的,我们进去都会不时的请教他们:我刚开始学习推荐系统,有什么书或论文可以推荐吗。这时很多大佬都会意味深长地推荐一些书籍或资料给你。我们也会查询看看这些内容是不是自己想要的。然后我们就会购买这些资料。我们之所以相信他们,因为我们都在这个兴趣相同的群里,有相同的研究领域,而且他们都是过来人,知道我们这些小白需要哪些资料进行学习,所以我们才会相信他们。其实这就是一个现实的推荐系统,而且是基于用户的协同过滤推荐。从中我们可以分析要想获取推荐结果,首先要属于统一研究领域的,这些人推荐的才可靠,统一研究领域就是兴趣相似的一些人,这就需要计算用户之间的相似度,然后从这些相似的用户中计算推荐商品值并进行排序,从而得到推荐结果。

基于用户的系统过滤推荐算法主要有两个计算步骤,一个是找到相似用户,越相似的用户,越代表他们的兴趣一致,然后再从相似用户中查找到用户没有记录的商品进行推荐值计算,然后进行排序推荐。用户相似度计算可以使用Jaccard公式简单的计算用户兴趣相似度,如公式2.1。

也可以使用余弦公式进行相似度计算,公式2.2

计算用户相似度后得到用户之间的相似度,然后从最近的k个相似用户中搜集他们的记录形成记录集,然后通过公式2.3计算用户与每个被推荐商品的推荐值。

其中,S(u,K)表示用户u的k个邻居,N(i)是喜欢商品i的用户集,wu。是用户u、v的相似度,rvi表示用户v对物品i的喜好程度,因为这里只是用户对物品是否有过接触,所以这里就是1。通过以上计算过程可以得到每个用户对推荐商品的推荐评分,然后选择评分最高的商品作为推荐商品推荐给用户。

2)基于商品的协同过滤推荐算法。基于用户的协同过滤算法有一个缺点,就是计算用户之间的相似度的复杂度是用户数的平方,我们知道现在的互联网产品亿级用户数都很平常,这对计算用户之间的相似度变得耗时。为了解决这个问题亚马逊提出了“基于商品的协同过滤推荐算法”。基于商品的协同过滤推荐算法推荐给用户的是那些用户之前喜欢的商品相似的商品,通过计算商品的相似度,挑选其中最相似的进行推荐,只是计算商品相似度时不是用的基于内容的相似度二是通过用户的商品记录来计算商品之间的相似度,比如喜欢A商品的用户大都喜欢B,那么A和B就很相似。

基于商品的协同过滤推荐算法主要分为两个步骤:

①计算物品的相似度

②根据用户的历史记录和物品的相似度计算生成推荐列表。

计算物品的相似度可以使用如公式2.4。

N(i)代表对物品i感兴趣的用户数量,N(j)代表对物品j感兴趣的用户数量,公式的含义是既喜欢i的用户又喜欢j的用户数所占的比例大小。计算商品之间的相似度之后再根据用户的商品记录推荐用户相似的商品从而完成推荐。

协同过滤算法的优点有:①复杂的非结构化的商品适合这种类型的推荐,比如电影、音乐、图片等,协同过滤也是最普遍应用的推荐算法;②协同过滤推荐算法能够发现用户意想不到的推荐结果,可以给用户惊喜,提升推荐结果的新鲜度;③不需要专业领域的知识;④用户数据量越多时推荐结果也准确,效果越好。

协同过滤推荐算法的缺点:①存在冷启动问题,新加入的用户没有操作记录,没法进行推荐,这是协同过滤算法的冷启动问题。②推荐效果依赖于用户记录,刚开始时推荐效果差,没有足够的数据进行计算。③传统算法对热衷于推荐热门物品,因为热门物品大多数人都喜欢,这样就不能区分用户喜好了;④在计算用户相似度时一个用户需要与所有用户计算相似度,复杂度O(N²),当用户量大的时候耗时严重。

基于知识的推荐算法

基于知识的推荐算法可以解决协同过滤和基于内容推荐不能解决的问题,协同过滤算法和基于内容的推荐算法各自都有各自的优点,但都需要对大量的用户历史纪录进行分析建模,而很多商品用户是不经常买的,比如用户买房买车等,这些用户并不经常购买的商品就不能使用。还有时间跨度的问题,5年前用户购买电脑等电子设备时所考虑的因素和现在考虑的因素会很不同,随着生活工作的转变和家庭状况的改变,对电脑配置的要求也会变化。这些产品用户购买时往往都会根据自己的需求来选购,比如汽车的颜色x,电脑的内存大小y。以上的情况的形式化协同过滤和基于内容的算法并不能处理。

于是产生了一种新的推荐算法:基于知识的推荐。它不需要用户的使用信息和其他信息,只需要知道用户的需求就可以,也不会产生冷启动的问题。推荐方法或者根据用户的喜好和物品之间的相似度,或者根据确定的规则进行推荐。这种推荐策略也可以成为信息过滤的方式,一种需求可以过滤掉很多不符合的商品,通过会话式的形式进行推荐,具有交互性强的特征。如果没有符合用户需求的商品那么会迫使用户修改需求以便输出合适的产品。

基于约束和基于实例的推荐是两种基本的知识推荐算法。它们的推荐过程类似都是需要先获取用户的需求,再根据用户需求给出推荐结果。不同的地方在于基于约束的推荐需要实现定义好推荐规则,从推荐规则中计算出推荐结果送给用户,而基于实例的推荐会计算用户输入的需求和被推荐产品的相似度进行推荐,相似度越高的越优先被推荐。

混合推荐策略

前面介绍的各种推荐系统各有优缺点,在实际应用推荐系统中,由于数据的特征往往比较多,一种推荐算法一般只能应用其中一部分特征,各种推荐算法用到的特征也会不同,如果各个推荐算法使用不同的特征进行推荐计算并将结果整合到一起,那么这样推荐效果往往会更好而且也可以取其各自所长是整体推荐效果都有提升。

混合算法的设计有多种,但总的来说分为三类:整体式、并行式和流水线式。整体式推荐就是将多个推荐算法整合到一起成为一个整体,使得各个推荐策略各自发挥自己的优势,数据往往从一个推荐算法那里进行增强后再进入另一个推荐算法使得推荐效果更好。另外两种混合策略则需要两个以上算法实现,然后将结果通过不同的组合策略聚集到一起,如加权、交叉、比例等,如图2.3所示。流水线策略就是将多个算法连接起来,上一个算法的输出作为下一个算法的输入,连接可以使用串联和分层混合方式。

标签: #推荐算法有哪几类各自的优缺点是什么