一文带你掌握推荐系统

本文的主要内容是推荐系统相关的东西,会涵盖推荐系统相关的大部分知识点,对于非技术人员应该是能基本了解推荐系统了 。
建议Mark之后慢慢看,毕竟文章有点长,而且第一遍也不一定能看懂…
本文主要包括推荐系统的相关概念、推荐系统的架构和流程、常见的推荐算法、挖掘、召回、排序、评估和总结这几部分 。
概念部分会简述推荐系统相关的理论知识,架构和流程主要是介绍推荐系统的通用架构和常规的推荐流程 。
算法部分主要是一些常见的推荐算法介绍,挖掘》召回》排序主要是基于推荐流程的详细展开 。
评估部分指的是如何评估一个推荐系统的好坏,总结部分主要是整体内容的回顾,以及一个真实推荐系统的案例 。
可以按照个人兴趣直接跳至对应的小节浏览,也可以按照顺序进行阅读,遇到看不懂的部分建议先跳过,遇到读不下去的情况,建议先Mark…
以下,开始正文部分 。
推荐系统的相关概念
在正式展开文章之前,我们先简单的了解下推荐系统相关的理论知识 。
什么是推荐系统
先来看下Wiki的定义:

一种信息过滤系统,用来预测用户对物品的行为和偏好 。
按照字面意思理解下来,就是帮助过滤信息,预测用户对物品的行为和偏好 。
在今日头条曹欢欢博士的一次分享中提到了这样一个定义:
资讯推荐系统本质上要解决用户,资讯和环境的匹配,y=F(Xi,Xu,Xc)
感觉把这个定义延伸到其他推荐系统上也是成立的,那就是推荐系统本质上要解决用户,物品和环境的匹配问题,帮助建立用户和物品之间的连接 。
回到定义本身,理论上说能实现这个功能的系统都可以称之为推荐系统 。
为什么要有推荐系统
先来回顾一下互联网诞生到目前为止,我们寻找信息方式的变化历程…
最早期的时候,信息是比较稀缺的,那个时候信息比较分散,寻找的效率较低,主要是人找信息 。
后来信息逐渐丰富起来了,有些人或者公司专门把各种信息聚集在一个地方,人们可以通过类目导航进行查找,典型的公司是三大门户 。
再后来信息量越来越大,人工添加的类目已经不能覆盖所有信息了,于是诞生了另外一种信息获取方式——搜索,典型的公司是google、百度 。
再再后来,人与信息的关系从单向的人找信息演变成了现在的双向关系,人在海量的信息中找着自己需要的东西,同时海量的信息也在找合适的人 。
从这个演化过程中,我们可以看到推荐系统的出现有两个重要的前提,一个是信息过载,一个是需求不明确 。
数量有限的情况下根本不需要推荐,用户自己就能浏览完所有的物品 。再往后发展,数量级不大的情况下,人工干预就可以解决,当人工干预也无法解决时,这个时候就需要推荐系统了 。
当用户需求比较明确的时候,用户会倾向于使用搜索,需求不太明确时,基于用户历史的一些行为和偏好给用户推荐一些东西能让用户先留下来,在逛的过程中可能就产生了一些新的诉求 。
从以上的部分可以看到推荐系统是一个多方共赢的存在:
  • 对用户而言,能够发现自己感兴趣的东西,提升用户体验;
  • 对物品而言,能够发掘长尾物品的利用效率,盘活整体资源;
  • 对平台而言,能够获取用户价值和商业价值 。
推荐系统典型的应用场景比如电商类的买了又买、看了又看,社交产品中你可能感兴趣的人,音乐电影中的猜你喜欢,以及一些信息流产品等 。
你需要推荐系统么
既然推荐系统那么好,要不在产品中加一个呗?
在决定如何加一个推荐系统之前,先确定要不要做,以及投入产出比是否合适 。
首先对于不同业务模式,不同阶段的业务需要关注的侧重点是不同的,比如一个工具型产品需要推荐系统么,一个资讯App的早期需要推荐系统么…
其次推荐系统短期内的价值容易被高估,而且搭建起来也是比较费时费力费钱的 。
虽然用一些简单的算法就可以有一定的效果,想进一步提升效果,则需要很大的投入 。
事情都是相对而言的,具体是否需要搭建推荐系统,需结合业务模式、时间点、战略需求、团队能力等多方面因素综合考虑…
推荐系统的架构和流程
这部分主要是关于推荐系统整体的架构以及如何实现推荐流程的 。
通用推荐架构


推荐阅读