京公网安备 11010802034615号
经营许可证编号:京B2-20210330
懂你的推荐算法,推荐逻辑是怎样的?
作为一个喜欢思考人生的美男子,我时常感慨,现在这个年代,人们上网获取信息的成本真的好低。智能手机,人手一台,打开3G就能上网,百度一搜,什 么都有。当然百度上搜出来的大多数可能并不是你想要的,但这并不妨碍上面的论点成立。也正是因为成本太低,人们反而不愿意主动取获取信息,于是各种各样的 推荐系统有了大展身手的机会。
推荐在生活中是一个再平常不过的事情,你失业了,有人会给你推荐工作,你失恋了,有人会给你推荐姑娘。但是在我们这个机器远没有人类聪明的时代,这 些事情要是交给机器去做,你就得设计出一套机器能理解的算法出来,这就是所谓的推荐算法。大家看到算法两个字不要慌,以为我又要搬一个大东西出来吓唬人。 你可以把算法看做现实生活中的办事流程,它规定了你第一步干什么,第二步干什么,只要你按它说的做,就可以把事情办好。举个例子,你现在要做一个电影推荐 APP,我们来看下整个过程是怎样的。
在推荐算法中,我们第一步要有一大堆要推荐的东西。也就是说,你的电影首先要足够多,才能满足不同用户的需求。算法再精准,最后发现推导出来的结 果,在你的数据库中并没有,就悲剧了。第二步是要有用户的行为数据。这个也是越多越详细越好。这时候你要把看了哪部电影,看完没有,评价怎么样悄悄的记下 来,上传到后台服务器。经过长期的积累,这些数据将为你以后的精准推荐奠定基础。
有了上面的数据基础,我们就可以进入正题了。推荐算法有不少,我们今天介绍一种最基本的叫做协同过滤算法。它的核心思想是物以类聚,人以群分。具体 可以分为基于用户的协同过滤算法和基于物品的协同过滤算法。我一直觉得专业领域起这种高大上的名字,是用来过滤智商的,因为很多人看到这里就不打算往下看 了,哈哈。
先看第一种基于用户的协同过滤。可以简单理解为我虽然不认识你,但是我通过查看你的朋友圈都是些什么人,根据人以群分的道理,他们喜欢的很可能就是你喜欢的。
假设从历史数据上来看,用户A喜欢《捉妖记》、《大圣归来》,用户B喜欢《栀子花开》、《小时代》,用户C喜欢《捉妖记》。那我们就可以简单认为 AC二人口味相似,可以归到一个朋友圈里,C极有可能也喜欢A所喜欢的《大圣归来》。这是最简单的情况,实际上仅仅用喜不喜欢来评价感兴趣程度是远远不够 的,用户不可能看完还填个调查表选择yes or no,但是会通过一些其他行为比如影评、是否收藏来反应他们的喜欢程度。机器只能理解量化的东西,所以在算法中,这些行为会转化成相应的分数。比如完整看 完的,给3分;看完还给了正面评价的,给5分;看到一半就怒删的,给负10分。这样每个用户都会有一个电影评分表,在计算两个用户相似度的时候,把这些数 据代入下面这种专门计算相似度的公式,就能得到二人口味的相似程度。
现在我们要给用户D推荐电影,分别计算AD、BD、CD的相似度,找到跟D最相似的用户,然后把他喜欢的,都推荐给D,就行了。(下面的公式叫做余弦相似度公式,通过计算n维空间中两个向量的夹角余弦,来表示相似度,大家感受一下就好,感兴趣的可以去问google。)
第二种是基于物品的协同过滤。基本思想是假设甲乙是相似的物品,那么喜欢甲的人,很可能也喜欢乙。还是上面的例子,现在假设用户E喜欢《栀子花开》 和《小时代》,那我们可以推导出,喜欢《栀子花开》的用户(B和E)都喜欢《小时代》,那基本可以确定两部电影是相似的,下回来个用户F,他喜欢《栀子花 开》,那我顺便就把《小时代》推荐给他,他可能比较容易接受。
大家可能要问,我的APP第一天上线,没有这些所谓的用户行为数据怎么推荐啊。这就是推荐算法面临的冷启动问题。这时候可以用基于内容的算法了。你 可以事先把所有电影归个类,战争片归到一起,喜剧片归到一起,动画片归到一起。用户H看了一部喜剧片,你就把所有喜剧片推荐给他。显而易见,这种算法简单 粗暴,当然命中率也最低。
真正的推荐系统会综合运用各种算法,加之机器学习和人工调优的不断改进,所以是非常复杂的。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
一、问题:为什么 ID 会"断号" 很多刚接触 MySQL 的同学都会有一个困惑:表里的主键 ID 是自增的,删了中间几行数据之后,ID 变 ...
2026-10-22一、问题场景:为什么会重复 JOIN 同一个子查询 在写复杂 SQL 时,经常遇到这种需求:同一张表或同一个聚合子查询,要和主表关联 ...
2026-10-22人力资源专员是HR体系的执行入口。招聘信息发布、简历初筛、面试安排、考勤汇总、入离职手续、劳动合同与档案管理,大多由这个岗 ...
2026-10-22人力资源经理问“必学技巧”,真正要解决的不是知识清单不够长,而是时间有限、业务催得紧,学完却用不上。更有效的路径是:先用 ...
2026-10-22内容营销岗位的核心任务,不是“把文案写得更漂亮”,而是围绕目标受众,用持续的内容供给影响认知、推动转化并沉淀复购。它至少 ...
2026-10-22理财经理培训课程很多,难的是判断“先学什么、后学什么、学完能做什么”。与其按课程名称罗列,不如先看岗位任务:客户分层与维 ...
2026-10-22理财经理的知识结构,可以先用一句话概括:合规与产品知识决定“不出错”,客户经营与资产配置决定“够不够专业”,市场研判与数 ...
2026-10-22经济学背景做数据分析,优势不在工具,而在问题意识:供需如何相互作用、成本与收益如何权衡、变量之间是相关还是因果。真正的缺 ...
2026-10-22需要,但要把“需要”理解准确。经济学本身就在处理数据:GDP、物价、就业、企业营收、问卷调研,都是经济分析的原料。真正的区 ...
2026-10-22经济学分析能力不是单一技能,它至少由三层构成:把现实问题转成可检验假设的理论框架能力、用数据与统计方法验证假设的工具能力 ...
2026-10-22金融分析师的知识提升,先补的不是更多模型,而是让结论可复核的底层能力。按任务顺序,大致是四层:财务与业务理解、指标口径管 ...
2026-10-22金融分析师的“通用技能”,指换到不同机构、不同行业组仍用得上的底层能力,而非某家公司内部系统的操作经验。按任务拆,日常要 ...
2026-10-22先给结论:数据分析证书不是金融分析师的准入条件,招聘方也不会因为一张证书就直接判断你能做分析。要不要考,取决于你当前任务 ...
2026-10-22金融分析师的核心技能,不是“会看K线”或“会讲宏观”,而是能把一家公司、一个行业或一类资产,转化为可核查的数据判断与书面 ...
2026-10-22产品经理的知识提升,不是把需求文档、原型、SQL、数据分析、项目管理都学一遍,而是先对准目标岗位的真实任务,找出自己最缺的 ...
2026-10-22产品专员提升工作知识,最有效的方式不是先囤课程,而是围绕日常交付的四件事来补:需求调研与优先级判断、原型与PRD表达、竞品 ...
2026-10-22产品运营专员提升个人能力,常见误区是先把Excel、SQL、Python列成一张学习清单,然后从第一个工具开始学。更有效的做法是先回答 ...
2026-10-22产品运营的能力提升,最怕从“课程目录”出发:今天学增长模型,明天背SQL语法,学完却说不清自己负责的功能为什么激活率低。更 ...
2026-10-22产品经理的技能和影响力不是两条分开的赛道。技能决定你能不能把问题分析清楚、把方案设计对;影响力决定你的判断能否被团队接受 ...
2026-10-22产品经理要学的数据分析能力,不是“会写SQL”或“会用BI工具”这么简单。更准确地说,是围绕需求评估、功能迭代、指标监控、实 ...
2026-10-22