算法高级(41)-推荐算法实现

一、推荐系统

【维基百科】推荐系统是一种信息过滤系统,用于预测用户对物品的“评分”或“偏好”。

推荐系统近年来非常流行,应用于各行各业。推荐的对象包括:电影、音乐、新闻、书籍、学术论文、搜索查询、分众分类、以及其他产品。也有一些推荐系统专门为寻找专家、合作者、笑话、餐厅、美食、金融服务、生命保险、网络交友,以及Twitter页面设计。

很多时候简单粗暴的方式往往也是行之有效的:“如果你不知道该推荐什么,那么推荐大家都喜欢的准没错“。像热门榜单、最多观看排行榜等都属于这个问题。

TopN的问题前面已经做过了介绍,本文的侧重点在于,不同的人对于“好”的理解不一样,换句话说也就是偏好不同,所以需要为不同用户推荐他自己感兴趣的内容,即个性化推荐。

个性化推荐的两个主要思想八个字概括之:物以类聚、人以群分。主要的方法及变种应该有很多,像协同过滤、基于内容的推荐、基于标签的推荐等等。

二、个性化推荐算法起源

个性化推荐概念的首次出现是在1995年3月的美国人工智能协会上,由卡耐基梅隆大学的 Robert Armstrong等提出了个性化导航系统 Web Watcher。同时,斯坦福大学的Marko balabanovic等也推出了LIRA——一个个性化推荐系统。自此之后,个性化推荐的研究开始蓬勃发展。

推荐算法的研究起源于20世纪90年代,由美国明尼苏达大学 GroupLens研究小组最先开始研究,他们想要制作一个名为 Movielens的电影推荐系统,从而实现对用户进行电影的个性化推荐。首先研究小组让用户对自己看过的电影进行评分,然后小组对用户评价的结果进行分析,并预测出用户对并未看过的电影的兴趣度,从而向他们推荐从未看过并可能感兴趣的电影。此后, Amazon开始在网站上使用推荐系统,在实际中对用户的浏览购买行为进行分析,尝试对曾经浏览或购买商品的用户进行个性化推荐。根据 enture Beat的统计,这一举措将该网站的销售额提高了35%自此之后,个性化推荐的应用越来越广泛。

三、个性化推荐算法分类

个性化推荐相较于非个性化推荐,即推荐的内容是因人而异的。

推荐算法有很多种,包含基于内容、协同过滤、基于关联规则、基于效用、基于知识、组合推荐等。我们重点说一下前两种。

1.基于内容的推荐算法

原理是用户喜欢和自己关注过的Item在内容上类似的Item,比如你看了哈利波特I,基于内容的推荐算法发现哈利波特II-VI,与你以前观看的在内容上面(共有很多关键词)有很大关联性,就把后者推荐给你,这种方法可以避免Item的冷启动问题(冷启动:如果一个Item从没有被关注过,其他推荐算法则很少会去推荐,但是基于内容的推荐算法可以分析Item之间的关系,实现推荐),弊端在于推荐的Item可能会重复,典型的就是新闻推荐,如果你看了一则关于MH370的新闻,很可能推荐的新闻和你浏览过的,内容一致;另外一个弊端则是对于一些多媒体的推荐(比如音乐、电影、图片等)由于很难提内容特征,则很难进行推荐,一种解决方式则是人工给这些Item打标签。

2.协同过滤算法

原理是用户喜欢那些具有相似兴趣的用户喜欢过的商品,比如你的朋友喜欢电影哈利波特I,那么就会推荐给你,这是最简单的基于用户的协同过滤算法(user-based collaboratIve filtering),还有一种是基于Item的协同过滤算法(item-based collaborative filtering),这两种方法都是将用户的所有数据读入到内存中进行运算的,因此成为Memory-based Collaborative Filtering,另一种则是Model-based collaborative filtering,包括Aspect Model,pLSA,LDA,聚类,SVD,Matrix Factorization等,这种方法训练过程比较长,但是训练完成后,推荐过程比较快。

3.主要推荐方法优缺点

推荐方法 优点 缺点
基于内容推荐 推荐结果直观,容易解释;

不需要领域知识

新用户问题;

复杂属性不好处理;

要有足够数据构造分类器

协同过滤推荐 新异兴趣发现、不需要领域知识;

随着时间推移性能提高;

推荐个性化、自动化程度高;

能处理复杂的非结构化对象

稀疏问题;

可扩展性问题;

新用户问题;

质量取决于历史数据集;

系统开始时推荐质量差;

基于规则推荐 能发现新兴趣点;

不要领域知识

规则抽取难、耗时;

产品名同义性问题;

个性化程度低;

基于效用推荐 无冷开始和稀疏问题;

对用户偏好变化敏感;

能考虑非产品特性

用户必须输入效用函数;

推荐是静态的,灵活性差;

属性重叠问题;

基于知识推荐 能把用户需求映射到产品上;

能考虑非产品属性

知识难获得;

推荐是静态的

四、推荐算法的应用

推荐算法已经应用到了各个领域的网站中,包括图书、音乐、视频、新闻、电影、地图等等。而电子商务的应用近年来逐渐普及,Amazon,当当网,豆瓣图书,淘宝,京东等都使用了电子商务推荐系统,推荐系统不止给这些互联网商家带来了巨大的附加利益,同时也提高了用户满意度,增加了用户黏性。

而最高深的推荐境界是:千人千面。据说微信看一看中的“精选”就会为每个人推荐不同的内容,大家可以关注下。


我的微信公众号:架构真经(id:gentoo666),分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。每日更新哦!

参考阅读:

  1. https://www.zhihu.com/question/20326697
  2. https://zhuanlan.zhihu.com/p/27768663
  3. https://baike.baidu.com/item/推荐算法

你可能感兴趣的:(算法高级)