推荐系统的由来,信息过载
互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求,但随着网络的迅速发展而带来的网上信息量的大幅增长,使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息的使用效率反而降低了,这就是所谓的信息超载(information overload)问题。
在这样的情况下,无论是信息消费者还是信息生产者都遇到了很大的挑战:作为信息消费者,如何从大量信息中找到自己感兴趣的信息是一件非常困难的事情;作为信息生产者,如何让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。
为了解决信息过载的问题,已经有无数科学家和工程师提出了很多天才的解决方案,按时间先后,方法为以下三类
- 分类目录
- 搜索引擎
推荐系统
分类目录
定义
分类目录是将网站信息系统地分类整理,提供一个按类别编排的网站目录,在每类中,排列着属于这一类别的网站站名、网址链接、内容提要,以及子分类目录,可以在分类目录中逐级浏览寻找相关的网站。
作用
对网页进行分类,方便查找和检索
使用条件
需要事先明确查找信息所属分类,如分类不清则无法找到相应结果
相关公司
雅虎
hao123
智图期刊导航搜索引擎
定义
搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上采集信息,在对信息进行组织和处理后,为用户提供检索服务,将检索的相关信息展示给用户的系统。
作用
提高人们获取搜集信息的速度,为人们提供更好的网络使用环境。
使用条件
明确要查找的信息,知道关键词,查找什么就搜索什么,当用户无法找到准确描述自己需求的关键词时,搜索引擎就无能为力了
相关公司
谷歌
百度
智图搜索推荐系统
常见的推荐系统
淘宝
京东
今日头条
抖音定义
推荐系统是一种信息过滤系统,用于预测用户对物品的“评分”或“偏好”,把那些最终会在用户(User)和物品(Item)之间产生的连接提前找出来。
作用
在用户没有明确需求时,根源以往的记录,从大量信息中筛选用户最感兴趣的信息进行呈现。
使用条件
推荐系统需要已经存在的连接,从已有的连接去预测未来的连接。
深入了解推荐系统
什么是连接
这里说一下“连接”这个词,这个词含义非常广泛,凡是能够产生关系的都是连接,比如用户对物品做出了一个行为,或者用户的某些属性和物品的属性一样等等,有关系就是连接。
为什么这么说呢?这是基于这么一个事实:万事万物有相互连接的大趋势,比如人和人倾向于有更多社会连接,于是有了各种社交产品;比如人和商品有越来越多的消费连接,于是有了各种电商产品;人和资讯有越来越多的阅读连接,于是有了信息流产品。
这还只是纯数字世界,随着各种物理实体智能化趋势越来越明显,万物互联还会进一步强化。世界是一个数字化的大网,但里面只有两类节点:人和其他。人是互联的终极意义,“其他”统称为物品,物品可能是人、资讯、消费品、服务等。推荐系统就是要在这张巨大的网中,不断去发现那些很可能会和人发生连接的另一类物品节点,让它们和用户真的建立连接。
推荐系统常见分类
以看电影为例,一般来说,我们在想看电影又不知道看什么时,可能会用以下方式决定最终看什么电影。
- 向朋友咨询。我们也许会打开聊天工具,找几个经常看电影的好朋友,问问他们有没有什么电影可以推荐。甚至,我们可以打开微博,发表一句“我要看电影”,然后等待热心人推荐电影。这种方式在推荐系统中称为社会化推荐(social recommendation),即让好友给自己推荐物品。
- 我们一般都有喜欢的演员和导演,有些人可能会打开搜索引擎,输入自己喜欢的演员名,然后看看返回结果中还有什么电影是自己没有看过的。比如我非常喜欢周星驰的电影,于是就去豆瓣搜索周星驰,发现他早年的一部电影我还没看过,于是就会看一看。这种方式是寻找和自己之前看过的电影在内容上相似的电影。推荐系统可以将上述过程自动化,通过分析用户曾经看过的电影找到用户喜欢的演员和导演,然后给用户推荐这些演员或者导演的其他电影。这种推荐方式在推荐系统中称为基于内容的推荐(content-based filtering)。
我们还可能查看排行榜,比如著名的IMDB电影排行榜,看看别人都在看什么电影,别人都喜欢什么电影,然后找一部广受好评的电影观看。这种方式可以进一步扩展:如果能找到和自己历史兴趣相似的一群用户,看看他们最近在看什么电影,那么结果可能比宽泛的热门排行榜更能符合自己的兴趣。这种方式称为基于协同过滤(collaborative filtering)的推荐
什么是好的推荐系统
一个完整的推荐系统一般存在3个参与方(如下图所示):用户、物品提供者和提供推荐系统的网站。
以图书推荐为例,首先,推荐系统需要满足用户的需求,给用户推荐那些令他们感兴趣的图书。
其次,推荐系统要让各出版社的书都能够被推荐给对其感兴趣的用户,而不是只推荐几个大型出版社的书。
最后,好的推荐系统设计,能够让推荐系统本身收集到高质量的用户反馈,不断完善推荐的质量,增加
用户和网站的交互,提高网站的收入。因此在评测一个推荐算法时,需要同时考虑三方的利益,一个好的推荐系统是能够令三方共赢的系统。
但是传统的推荐系统大都是起一个“锦上添花”的作用,一般很少会将其作为核心功能来承载产品。由于推荐系统通常的目标不是帮用户找到相关内容,而是希望用户消费内容,消费越多越好,于是业界逐渐演变出一个比较畸形的认识,“好的推荐系统应该变成一个时间杀手,让用户走进去就不想出来”才是最好的。
搭建推荐系统需要怎样的团队
一个推荐系统复杂度没有上限,但是有最低标准,所以下面在估算推荐系统团队规模时,按照下限来估计,照这个方式建立的团队就叫做“有下限的团队”。
这里先定义团队的角色,既然是组建“有下限团队”,当然按照能省则省的原则。
- 算法工程师,承担的是数据科学家和机器学习工程师的双重职责,主要职责是清洗数据,训练离线推荐模型,开发算法接口,评估指标。
- 后端开发工程师,承担算法之外的开发任务,负责调用推荐 RPC 服务,开发必要的过滤逻辑,API 接口的开发,填充详细字段等。
运维工程师,负责数据库的搭建维护,日志的收集,在线系统的高可用回收用户反馈数据,统一存储日志数据。
本文根据 刑无刀的推荐系统三十六式与项亮的推荐系统实战 整理而来
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。