想要知道常见的推荐算法都有哪些吗?五分钟告诉你全部

我们在上网购物、看小说、买电影票的时候,都会遇到各种各样的推荐,给我们推荐一些我们曾经买过或收藏过的同类型产品,或者是推荐一些我们看过的小说题材相同的小说。那这些产品推荐都是如何实现的呢?

我们今天就来聊聊这些“无聊”的算法。

在互联网的应用中,常用的推荐算法有:协同过滤推荐算法(CollaborativeFilteringRecommendation)、内容推荐算法(Content-basedRecommendation)、相似性推荐算法(SimilarityRecommendation)、关联规则推荐算法(AssociationRuleBasedRecommendaion)。不同的算法都有不同的应用场景,合理的应用这些算法,能够为我们带来更多的经济效益。

协同过滤算法在电子商务领域可以说是炙手可热,很多的电商平台都是使用的它来做的自己平台的商品推荐。

啥是协同过滤呢?

简而言之,就是找到相同兴趣的群体,将这个群体中感兴趣的其他信息推荐给用户。

我们用一个简单的例子来说明这个算法:

这个时候,协同过滤就有用了。

我是用户A,我喜欢看《极品家丁》、《斗破苍穹》、《诛仙》,这些是我的兴趣。怎么定义我的兴趣呢?可以是我看过超过100章的书,可以是我收藏的书,可以是我好评过的书,总之,我们要先行定义一个纬度。

我的兴趣有了,其他用户也会有同样的兴趣,当其他用户的兴趣和我的兴趣相同时,就可以把这些用户感兴趣的书都推荐给我了。

具体的实施步骤如下:

我们先要建立一个大表,X轴就是我们所有的小说(从数据库中可以获得),Y轴就是我们所有的用户(从数据库中可以获得)。

然后我们将每个用户感兴趣的小说在XY的交叉点中都标注出来(在日志中可以获得),也就如下表示:

标注出来以后,我们就可以看到,我这个葛大爷的爱好是《极品家丁》、《斗破苍穹》和《诛仙》,而张大爷和李大爷和我有相同的兴趣爱好。而张大爷和李大爷还比我多看了一些小说,而这多出来的部分,就体现除了协同,也就可以作为对我的推荐了。

下一次,当我打开看小说的APP的时候,系统就可以向我推荐这两本小说了,而我也就有很大的可能性去打开观看。

啥是内容推荐算法呢?

内容推荐算法,其实就是对于用户的历史数据进行分析,抽象出内容的共性,然后根据这些共性进行推荐的算法。

我们也举一个例子来说明一下:

我还是喜欢看小说,我经常通过一些条件来搜索小说,我常常搜索:完本、玄幻、200万字以上。而我搜索的行为,就成了我的历史日志记录。根据我的这些日志记录进行共性的抽象,然后在根据抽象出来的共性内容去搜索小说,然后把这些小说推荐给我。

我通过搜索,选中了3本书并且进行了阅读,而这三次我分别搜索了

我们根据上诉内容进行抽象,可以得到一个最终的结果,就是玄幻、男频、不限、不限的结果,根据这个结果,我们可以去进行搜索,然后按照最新更新或者小说热度对结果集进行排序后推荐给用户,这样,这个结果也能够满足用户的需求。

当然,如果用户查询的次数非常多,导致结果的精度差,我们还可以有其他的一些手段来提高精确度,例如只使用最近3天的查询记录或者只使用最近3次查询记录。

协同过滤推荐算法和内容推荐算法都是需要用户有一定量的历史数据,然后再根据这些历史数据进行分析再进行推荐。

那针对新用户应该怎么办呢?那么相似性推荐算法就能够解决这个问题。

啥是相似性推荐算法?

相似性推荐算法,也叫相似度推荐算法,是通过对物品的特性进行分析,然后找出类似物品进行推荐的一种算法。

在相似性算法中,有一个距离(Distance)的概念,两者的距离越近,表示两者相似性越高,距离越远,则相似性越低。通过这个概念,如果我点击了一个小说,那么系统就可以根据这个小说于其他小说的相似性高低,为我推荐合适的小说了。

而计算这个距离,又有非常多的方式,这也是相似性算法的核心。有欧几里得距离(EucledianDistance)曼哈顿距离(ManhattanDistance)明可夫斯基距离(Minkowskidistance)余弦相似度(CosineSimilarity)等等很多种算法,我这里就不具体讲算法了(我也讲不明白,哈哈,大家有兴趣可以自己百度)。

具体实施步骤如下:

我还是喜欢看小说,我打开了《诛仙》这本书,这本书都有些什么属性呢?

我们为小说设置了8个属性,也就相当于8个维度,我们将《诛仙》这本书的所有属性作为了原点,然后通过距离算法计算这些属性之间的距离,汇总后,总距离最近的,也就是最值得推荐的。

假设:属性相同的距离为0,反之为1。

我们就可以得到distance=f(题材)+f(作者)+f(状态)+……+f(类型);

我们去遍历所有的小说,然后计算这个距离。找到一本《诛仙前传:蛮荒行》的书。这本书的属性有6个都与《诛仙》相同,2个不同。最后我们计算出distance为2,是距离最近的一本书,于是进行了推荐。

我们这里虽然将不同的属性权重都假设相同了,但是在现实中,不同属性的权重是不同的。也由于这个不是基于用户的历史数据来做出的推荐,因此,每个用户的推荐结果也是相同的。

关联规则推荐是电商中使用比较广泛的一种推荐算法,最经典的一个案例就是,把啤酒放在尿布的旁边,能够提升啤酒的销量。

啥是关联规则推荐呢?

要明白关联规则推荐,先要明白关联规则。关联规则就是通过对数据的挖掘和分析,找出物体与物体之间的关联性。而关联规则推荐就是依靠物体之间的关联性进行的一种推荐。

我们还是用我看小说来举例吧

当我找到一本我喜欢看的书的时候,这本书是《诛仙》,我将它加入到了我的书单中,这时,系统就为了推荐了其他几本书(《神墓》、《盘龙》等等),告诉我也可以一起加入到书架中,这种推荐,一般就是关联规则推荐。

关联规则推荐是如何实施的呢?我们再来说一下具体的实施步骤:

首先,我们要找出数据进行分析。

我们把所有的书单都找到,并且将书单中的书都一一列举出来。

然后,就开始计算关联规则的支持度。

什么是支持度(Support)?支持度就是所有书单中,某一本书或者几本书的组合所占的比例。例如:《诛仙》在所有的书单中都存在,那么它的支持度就是100%,《神墓》只在两个书单中有,那么它的支持度就是40%。

单个商品的支持度我们计算出来以后,接下来我们就是需要计算多商品组合的支持度了。我们将商品两两进行组合,来计算支持度,只有在书单中同时出现这个组合时,才进行计算。我们这里有六本书,那么组合的数量就是15种(5+4+3+2+1=15)。

到这里,其实我们已经可以做出推荐了,我们可以将支持度高的书或组合推荐给用户,这样,这个书就更容易被用户所接受。

接下来,我们就要开始计算关联规则的置信度了。

什么是置信度(Confidence)?当用户往书单添加《神墓》的时候,有多大的概率会去添加《盗墓笔记》呢?这个概率就是《神墓》->《盗墓笔记》的置信度。

《神墓》的支持度(S[神])为40%,《神墓》和《盗墓笔记》(S[神->盗])为20%,那么,《神墓》->《盗墓笔记》的置信度就等于50%(S[神->盗]/S[神])

最后,我们就要来分析关联规则的提升度了

根据支持度的计算,我们发现,收藏《盘龙》书的人,100%都会去收藏《诛仙》,那么是不是说,当用户将《盘龙》进行收藏的时候,我们去推荐《诛仙》是最好的呢?

No,不是这样的。我们为什么要去推荐《诛仙》?那是因为我们想提高《诛仙》的阅读量。但是,我们分析数据后发现,虽然在用户收藏《盘龙》的时候去推荐《诛仙》,用户100%会收藏,但是单独推荐《诛仙》,用户也是100%收藏。这个关联规则推荐并不能为《诛仙》带来更高的阅读量,因此用户收藏《诛仙》和收藏《盘龙》的行为是没有直接关系的。

如何来判断关联规则推荐的效果呢?那就是提升度了。

我们用书A->书B的置信度,同书B的支持度做比较,进行计算:

当比值大于1时,代表在收藏书A时推荐书B是有效的;

当比值等于1时,代表在收藏书A时推荐书B是无意义的,两者没有关联;

当比值小于1时,代表在收藏书A时推荐书B是无效的,不如直接推荐书B。

这里只是简单的抛砖引玉的讲了一下这些算法,但是真正的内容还有很多,我也还在持续的学习当中。

THE END
1.大数据的算法有哪些2.聚类算法:聚类算法用于将数据集划分为不同的群组,常见的聚类算法有K均值算法、层次聚类算法和DBSCAN算法等。 3. 关联规则挖掘:关联规则挖掘算法用于发现数据集中的关联关系,常见的关联规则挖掘算法有Apriori算法和FP-growth算法等。 4.推荐系统算法:推荐系统算法用于根据用户的历史行为和偏好,向用户推荐个性化的信息,https://wenku.baidu.com/view/ccc4ae9ff9d6195f312b3169a45177232f60e4e7.html
2.算法工程师必知必会10大基础算法!快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。 事实上,快速排序通常明显比其他Ο(nlogn)算法更快,因为它的内部循环(innerloop)可以在大部分的架构上很有效率地被https://mp.weixin.qq.com/s?__biz=MzAxMzA2MDYxMw==&mid=2651574486&idx=2&sn=147bf60dcce6aea92a70778ed6f90dea&chksm=80572fbcb720a6aadabcdb78d6fd1b608228d05d33a8e75c419b3ce128111c545992b7eed228&scene=27
3.数据挖掘的常见算法有哪些?数据挖掘的常见算法有哪些? 数据挖掘是一种通过从大量数据中提取知识和信息的方法,以支持业务决策、市场分析和科学研究等领域。在数据挖掘过程中,算法是最重要的组成部分之一。以下是常见的数据挖掘算法。 1.分类算法 分类算法是一类用于将数据样本分为不同类别的算法。这些算法通常使用监督学习方法,其中模型基于已标记https://www.cda.cn/bigdata/202782.html
4.常见的经典算法有哪些Python常见的经典算法有哪些 在计算机科学领域,有一些经典算法被广泛应用于各种问题的解决。这些算法经过长期的研究和实践,被证明是高效且有效的。本文将介绍几个常见的经典算法,并提供相应的Python源代码。 一、冒泡排序算法(Bubble Sort) 冒泡排序是一种简单但效率较低的排序算法。它的基本思想是通过相邻元素之间的比较和交https://download.csdn.net/blog/column/12405713/133216600
5.什么是哈希算法?常见的哈希算法有哪些?区块链技术区块链这篇文章主要介绍了什么是哈希算法?常见的哈希算法有哪些?的相关资料,需要的朋友可以参考下本文详细内容介绍 哈希算法是一种数学函数或者算法,它可以将任意长度的数据(称为“消息”)转换为固定长度的字符串(称为“哈希值”或者简称“哈希”)。哈希算法的作用是将数据进行一次性的加密,从而生成一个唯一且不可逆的标识https://www.jb51.net/blockchain/891421.html
6.什么是哈希算法?常见的哈希算法有哪些?常见的哈希算法有哪些? 币界网报道: 哈希算法,也被称为散列算法,是一种将输入数据转换为固定长度的输出值的算法。它通过对输入数据进行一系列复杂的计算和操作,生成一个唯一的哈希值。哈希算法的最大特点是快速和高效,能够快速地确定数据是否被篡改或者检索数据。https://www.528btc.com/college/1695140495130670.html
7.机器学习常见算法类型都有哪些算法是程序员在学习软件编程开发技术的时候需要重点掌握的一个编程开发技术知识,而今天我们就通过案例分析来了解一下,机器学习常见算法类型都有哪些。 1.分类算法 这是一种监督学习方法。有很多算法帮助我们解决分类问题,比如K近邻、决策树、朴素贝叶斯、贝叶斯网络、逻辑回归、SVM等算法。人工神经网络和深度学习也往往用https://www.douban.com/note/782408490/
8.常见的排序算法有哪些?如何实现这些算法?常见的排序算法有哪些?如何实现这些算法? 1.背景介绍 在计算机科学与数学中,排序算法(Sorting algorithm)是一种能将一串资料依照特定排序方式进行排列的一种算法。 最常用到的排序方式是数值顺序以及字典顺序。 有效的排序算法在一些算法(例如搜寻算法与合并算法)中是重要的, 如此这些算法才能得到正确解答。 排序算法也https://www.pianshen.com/article/7707638722/
9.加密算法可以归结为哪几类常见的加密算法有哪些对称加密是指加密和解密使用同一个密钥的加密方式,其中最常见的算法包括DES、3DES、AES等。 2.非对称加密 非对称加密是指加密和解密使用不同密钥的加密方式,常规算法包括RSA、DSA、ECC等。 3.哈希函数 哈希函数是指将任意长度的消息压缩成固定长度摘要的函数,常见算法有MD5、SHA-1、SHA-256等。 https://www.eefocus.com/e/528368.html
10.互联网公司最常见的面试算法题有哪些?? 目录 收起 算法考察趋势 高频题 对于数组,可能会重点考察以下题目:对于链表,可能会重点考察以下https://www.zhihu.com/question/24964987/answer/1848770106
11.互联网公司最常见的面试算法题有哪些?来自爱可可《互联网公司最常见的面试算法题有哪些? - 知乎》 O互联网公司最常见的面试算法题有哪些? - 知乎 ?收藏 127 30 ?41 评论 o p 同时转发到我的微博 按热度 按时间 正在加载,请稍候互联网科技博主 3 公司 北京邮电大学 ü 简介: 北邮PRIS模式识别实验室陈老师 商务合作https://weibo.com/1402400261/EAC0M6nE1
12.常用的加密方式有哪些?采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密。对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。 对称加密的优缺点:优点是算法公开、计算量小、加密速度快、加密效率高,安全、可认证;缺点是BS网络传输关系,密钥过多难维护https://nic.hnuu.edu.cn/10043/2023/0029457.html
13.常见的推荐算法有哪些及它们的优缺点。腾讯云开发者社区常见的推荐算法有哪些及它们的优缺点。 大家好,我是贤弟! 常见的推荐算法包括以下几种: 一、基于内容的推荐算法 基于内容的推荐算法是将用户的历史偏好和物品的属性进行比较,从而为用户推荐相似的物品。算法主要思想是在物品的内容描述中提取特征向量,并计算不同物品之间的相似度,然后推荐与用户过去喜欢的物品相似的https://cloud.tencent.com/developer/news/1278222
14.关于查找有哪些常见的算法?查找算法有两种:一种只作查找操作,我们称之为静态查找。一种在查找过程种同时插入或删除数据元素,我们称之为动态查找。 静态查找 它的功能如下: 查询某个“特定的”数据元素是否在查找表中; 检索某个“特定的”数据元素和各种属性。 常见的查找方法有:顺序查找、折半查找、插值查找、斐波那契查找等,容我细细讲来https://www.jianshu.com/p/6c1afbeb9b96