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

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

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

在互联网的应用中,常用的推荐算法有:协同过滤推荐算法(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.想学Python?这里有5个超赞的免费网站等你来试!免费python在线网站5其核心是自然语言处理算法,能够模拟人类写作风格,生成富有创意的故事情节。该工具不仅适用于作家获取灵感,也为喜欢写作的爱好者提供了便捷的创作途径。通过Github等平台,用户可以免费下载及使用相关源码,开启自己的小说创作之旅。 免费python在线观看源码软件 Python是一种强大的编程语言,广泛应用于数据分析、人工智能、网站http://www.zzvcctedu.cn/zixun/138.shtml
2.分享一个学习算法的网站五分钟学算法官方网站文章浏览阅读1.5k次。五分钟学算法:https://www.cxyxiaowu.com/通过动画来理解算法,我觉得很有意思。然后祝程序员生日快乐,永不加班!_五分钟学算法官方网站https://blog.csdn.net/qq_36767214/article/details/102732104
3.五分钟学算法五分钟学算法浏览人数已经达到0,如你需要查询该站的相关权重信息,可以点击"5118数据""爱站数据""Chinaz数据"进入;以目前的网站数据参考,建议大家请以爱站数据为准,更多网站价值评估因素如:五分钟学算法的访问速度、搜索引擎收录以及索引量、用户体验等;当然要评估一个站的价值,最主要还是需要根据您自身的需求以及需要https://www.colabug.com/sites/13534/
4.五分钟学算法链接直达手机查看 GitHub 42000 Star,全球排名 79 。小吴讲算法,图解面试算法,来和程序员小吴一起学算法吧,学习如何刷力扣(LeetCode),掌握如何学习数据结构。五分钟学算法官网,一个算法学习的网站,图解力扣算法,看动画,刷力扣,备面试,跳槽涨薪美滋滋。https://www.toolmao.com/sites/1338.html
5.五分钟学算法官方网站理想股票技术论坛五分钟学算法官方网站,五分钟学算法,官方网站,算法教程,在线学习,编程教程 五分钟学算法官方网站,提供丰富的算法教程,在线学习编程知识,轻松掌握各类算法技巧。 公式法详解与应用实例视频教程 [股票软件指标公式技术交流] 刻骨2010 2024-8-18 相关标签:五分钟学算法官方网站 数学公式软件app 计算题公式法的公式 https://www.55188.com/tag-08617563.html
6.五分钟学算法个人介绍 公众号【五分钟学算法】个人网站:https://www.cxyxiaowu.com 他关注的专题/文集/连载 他喜欢的文章 他创建的专题 LeetCodeAnimation 五分钟学算法 在PPT动画中学算法 从零开始学Swift 他的文集 日记本 新媒体管家发布 五分钟学算法 Python https://www.jianshu.com/u/c6ad3f2ed2d6
7.有哪些高质量的自学网站?再推荐几个同类型网站: 25、五分钟学算法(http://cxyxiaowu.com/) 一个完全免费的算法学习网站。 有很多的算法题和概念解释,甚至面试的攻略,适合新手的学习和进阶。 漫画式的教学,将复杂的内容深入浅出,效果很棒! 26、菜鸟教程(http://runoob.com/) https://www.douban.com/note/767851363/
8.全网最全程序员学习网站汇总,还不赶快收藏地址: 五分钟学算法 简介:有少量非常不错的数据结构、算法相关的内容。 推荐指数:? 13、犬小哈教程网 地址: 犬小哈教程网 简介:少量哈士奇的技术问答漫画很有意思。 推荐指数:? 15、原创技术大联盟 地址: 原创技术大联盟 简介:优秀的技术博主实在太多了,列不完,也看不完,这里有一个导航页https://www.songma.com/news/txtlist_i66992v.html
9.吴师兄学算法五分钟学算法吴师兄学算法 (www.cxyxiaowu.com) 专注于提供数据结构与算法学习的基础知识,涵盖 LeetCode 题解、剑指 Offer 题解、数据结构等内容。它是一个非常有用的资源平台,特别适合那些希望提高编程技能和算法理解能力的学习者。 吴师兄学算法-五分钟学算法_致力于让每个小白都能看懂每一道算法题 https://pidoutv.com/sites/27782.html
10.www.jxmzxx.com{$woaini}>www.jxmzxx.com{$woaini}为了成为内马尔的正牌女友, 布鲁娜签署了多么奇葩的协议? 为了成为内马尔的正牌女友,布鲁娜签署了多么奇葩的协议?虽然布鲁娜比安卡迪是内马尔的女朋友,但她只有内马尔的部分使用权,原因是他们之间签署了一份十分奇葩的恋爱协议,协议允许内马尔和其他女人调情甚至发生关系,但对内马尔有三条约束,分别是不能找应召女郎,不能http://www.jxmzxx.com/appnews/668449.html
11.黑帽SEO技术手法详解,10分钟入门黑帽SEO干货网站黑帽SEO方法主要是研究和利用搜索引擎算法漏洞,其手法不符合主流搜索引擎发行方针规定,优化方法采用的也是搜索引擎禁止的方式去优化网站的,影响搜索引擎对网站排名的合理和公正性。黑帽SEO行为通常也就是一般人们所讲的“搜索引擎作弊行为”,通常的黑帽SEO是利用和放大搜索引擎的现在有的缺陷和漏洞而获取更多的用户访https://www.jxbh.cn/article/2285.html
12.来自凯文·凯利的40条人生建议尝试五分钟里什么也不做。 把这当作你的任务。 你根本完成不了这个任务。 五分钟后, 你将做好准备,渴望工作。 4、 至少每天承认一次“我不知道”, 你将成为一个更好的人。 5、 重要的事, 通常不紧急, 紧急的事, 通常不重要。 要完成重要的事, https://36kr.com/p/2427137908531971
13.BoostKit大数据业界趋势鲲鹏大数据组件增强特性和典型配置鲲鹏BoostKit CDN使能套件聚焦CDN开源组件可用性和CDN缓存节点吞吐量低、时延大等问题,提供CDN主流组件的开源使能和性能调优指南,通过使能鲲鹏处理器内置的RSA加速引擎,对RSA2048算法进行硬件卸载,同时提供了NUMA优化等手段,以便充分发挥鲲鹏处理器多核优势,助力客户CDN缓存节点提供更大吞吐量,实现更低时延。 https://developer.huawei.com/consumer/cn/blog/topic/03898238728230088
14.五分钟搞懂分布式流控算法五分钟搞懂分布式流控算法 流控是一种非常容易描述但却隐藏了很多复杂性的特性。希望本文能够帮助你理解在复杂分布式系统中实现流控所涉及的工具和算法。 流控是任何一个复杂系统都必须考虑的问题,本文介绍并比较了不同的流控算法,从而帮助我们可以基于系统需求和架构选择合适的方案。原文:Distributed Rate-Limiting https://www.51cto.com/article/787388.html
15.《外卖骑手,困在系统里》一文引起了怎样的舆论反响知识库9日19时,另一外卖平台“美团外卖”在微信平台的回应:“系统会给骑手留出8分钟弹性时间”,也是推动舆论对事件持续讨论的重要原因,事件传播量于9月10日8时到达峰。本时段内,除对“多等五分钟功能”话题的讨论外,部分舆论也将焦点放置“困境”本身,“探析外卖骑手的‘算法困境’”“如何解决‘外卖骑手困境’”等https://www.shichangbu.com/know_info/55454.html
16.五分钟技术趣谈浅谈人工智能中的算力算法和数据09/28 08:56 作者:移动Labs 3.2万 阅读需 7 分钟 加入交流群 作者:蒋召召 夏向兰,单位:中国移动智慧家庭运营中心 随着科技的飞速发展,人工智能(Artificial Intelligence,AI)已经成为当今最热门的话题之一。在人工智能的应用中,算力、算法和数据是三个不可或缺的要素,也是生成式人工智能(AIGC)发展的核心。通过https://www.eefocus.com/article/1643953.html
17.五分钟理解KMP算法关键部分五分钟理解KMP算法关键部分 查看原文 字符串 。串中任意个连续的字符组成的子序列称为该串的子串。包含子串的串则称为主串。通常将字符在串中的序号称为该字符在串中的位置。子串在主串钟的位置则以该子串在主串中的第一个字符位置来表示。为了让大家更好的理解。s3等于s5,s2不等于s4。s的长度是17,s3https://www.pianshen.com/article/74992792232/
18.五分钟学会一个高难度算法:希尔排序五分钟学算法五分钟学会一个高难度算法:希尔排序 前言 由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列 ——-《图解数据结构》,主要使用动画来描述常见的数据结构和算法。本系列包括十大排序、堆、队列、树、并查集、图等等大概几十篇。https://www.cnblogs.com/fivestudy/p/10014690.html
19.《每天五分钟计算机视觉:基于YOLO算法精确分类定位图片中的对象楼主 59:07回复0浏览 3 《每天五分钟计算机视觉:基于YOLO算法精确分类定位图片中的对象》我们可以看到https://baa.yiche.com/qichezatan/thread-51416624.html
20.博客中国美东时间12月16日周一进行的第八日线上技术分享直播中,OpenAI宣布,ChatGPT搜索正式全球落地,包括免费用户都登陆即可使用。同时,OpenAI对ChatGPT的搜索功能进行了大量更新。新增的功能包括:实时搜索,OpenAI对搜索的算法进行了深度优化,可在用户提出问题后获取实时内容(分钟级别),包括股票、新闻等。高级语音,在https://www.blogchina.com/