个性化推荐(推荐系统)经历了多年的发展,已经成为互联网产品的标配,也是 AI 成功落地的分支之一,在电商(淘宝/京东)、资讯(今日头条/微博)、音乐(网易云音乐/QQ音乐)、短视频(抖音/快手)等热门应用中,推荐系统都是核心组件之一。
今天给大家分享几种常用的推荐算法及其各自优缺点。
个性化推荐(推荐系统)经历了多年的发展,已经成为互联网产品的标配,也是 AI 成功落地的分支之一,在电商(淘宝/京东)、资讯(今日头条/微博)、音乐(网易云音乐/QQ音乐)、短视频(抖音/快手)等热门应用中,推荐系统都是核心组件之一。
推荐算法是整个推荐系统中最核心、最关键的部分,很大程度上决定了推荐系统性能的优劣。目前,主要的推荐算法包括:
- 基于内容推荐
- 基于行为协同过滤推荐
- 基于关联规则推荐
- 基于效用推荐
- 基于知识推荐
- 基于上下文推荐
- 基于深度学习的推荐
- 组合推荐
基于内容的推荐
基于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料。
在基于内容的推荐系统中,项目或对象是通过相关的特征的属性来定义,系统基于用户评价对象 的特征,学习用户的兴趣,考察用户资料与待预测项目的相匹配程度。用户的资料模型取决于所用学习方法,常用的有决策树、神经网络和基于向量的表示方法等。基于内容的用户资料是需要有用户的历史数据,用户资料模型可能随着用户的偏好改变而发生变化。
基于内容推荐方法的优点是:
1)不需要其它用户的数据,没有冷开始问题和稀疏问题。
2)能为具有特殊兴趣爱好的用户进行推荐。
3)能推荐新的或不是很流行的项目,没有新项目问题。
4)通过列出推荐项目的内容特征,可以解释为什么推荐那些项目。
5)已有比较好的技术,如关于分类学习方面的技术已相当成熟。
缺点:
要求内容能容易抽取成有意义的特征,要求特征内容有良好的结构性,并且用户的口味必须能够用内容特征形式来表达,不能显式地得到其它用户的判断情况。
基于行为的协同过滤
协同过滤推荐(Collaborative Filtering Recommendation)技术是推荐系统中应用最早和最为成功的技术之一。它一般采用最近邻技术,利用用户的历史喜好信息计算用户之间的距离,然后利用目标用户的最近邻居用户对商品评价的加权评价值来预测目标用户对特定商品的喜好程度,系统从而根据这一喜好程度来对目标用户进行推荐。
该算法分为基于用户的协同推荐和基于项目的协同推荐。基于用户的协同过滤,将目标用户对项目的历史评价与其他用户匹配,找到相似用户,再将相似用户感兴趣的项目推荐给目标用户。基于项目的协同过滤是指利用项目间的相似性,而非用户间的相似性来计算预测值,从而实施推荐。
协同过滤最大优点是对推荐对象没有特殊的要求,能处理非结构化的复杂对象,如音乐、电影。
和基于内容的过滤方法相比,协同过滤具有如下的优点:
1) 能够过滤难以进行机器自动内容分析的信息,如艺术品,音乐等。
2) 共享其他人的经验,避免了内容分析的不完全和不精确,并且能够基于一些复杂的,难以表述的概念(如信息质量、个人品味)进行过滤。
3) 有推荐新信息的能力。可以发现内容上完全不相似的信息,用户对推荐信息的内容事先是预料不到的。这也是协同过滤和基于内容的过滤一个较大的差别,基于内容的过滤推荐很多都是用户本来就熟悉的内容,而协同过滤可以发现用户潜在的但自己尚未发现的兴趣偏好。
4) 能够有效的使用其他相似用户的反馈信息,较少用户的反馈量,加快个性化学习的速度。
虽然协同过滤作为一种典型的推荐技术有其相当的应用,但协同过滤仍有许多的问题需要解决。
缺点:
存在数据稀疏和冷启动问题
(1)数据稀疏:不同用户的行为交集还是非常小。如果考虑将用户与项目之间已存在的行为关系占系统全部可存在的行为关系的比重来预估稀疏 性,那么据统计,Movielens 数据集的稀疏度是 4.5%,Netflix 是 1.2%,需要说明的是这就已经算非常密的数据了。
(2)冷启动问题就是指在没有大量可参考的有用数据下,对用户设计推荐系统。问题可细致划分为三种:
1)用户冷启动:是指新用户刚开始注册使用,没有可参考的历史数据。
2)项目冷启动:新上架的项目,没有被消费的记录。
3)系统冷启动:系统刚开始发布运行,交易记录中没有任何数据信息。
为了有效解决冷启动问题,匹兹堡大学有学者在基于协同过滤的算法上提出使用社区会员信息来改进推荐系统。因为在线社区的存在就是以特定的相似兴趣为基础,所以通过社区会员信息可以有效提取到用户的兴趣爱好信息,方便建立用户画像。
基于关联规则推荐
基于关联规则的推荐(Association Rule-based Recommendation)是以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。关联规则挖掘可以发现不同商品在销售过程中的相关性,在零售业中已经得到了成功的应用。
核心思想是:从大量的用户行为数据中抽取潜在有用的关联规则,向用户推荐其感兴趣的项目。通俗地说,就是发现项目A和项目B具有的交易关系。比如购买牛奶的同时很多人也会购买面包。
算法的第一步关联规则的发现最为关键且最耗时,是算法的瓶颈,但可以离线进行。其次,商品名称的同义性问题也是关联规则的一个难点。
优点:
- 能发现新兴趣点;
- 不要领域知识。
缺点:
- 规则抽取难、耗时;
- 产品名同义性问题;
- 个性化程度低。
基于效用推荐
基于效用的推荐(Utility-based Recommendation)是建立在对用户使用项目的效用情况上计算的。其核心问题是怎么样为每一个用户去创建一个效用函数,因此,用户资料模型很大 程度上是由系统所采用的效用函数决定的。
基于效用推荐的好处是它能把非产品的属性,如提供商的可靠性(Vendor Reliability)和产品的可得性(Product Availability)等考虑到效用计算中。
优点:
- 无冷开始和稀疏问题;
- 对用户偏好变化敏感;
- 能考虑非产品特性。
缺点:
- 用户必须输入效用函数;
- 推荐是静态的,灵活性差;
- 属性重叠问题。
基于知识推荐
基于知识的推荐技术,首先要预置用户知识和项目知识,然后在明确用户需求的基础上进 行推荐。项目知识依靠于项目本身,所以不同项目的系统,其知识库区别也较大。基于知识的推荐最大好处就是摆脱了对评分数据的依赖,且不存在冷启动问题。
基于知识的推荐可以分为三类:基于KDD(KnowledgeDiscoveryinDatabase)的推荐、基于CBR(CaseBasedReasoning)的推荐和基于知识推理的推荐。
基于KDD的推荐系统是将数据挖据与传统推荐系统相结合,挖掘数据中隐含的有价值知识和信息,以此向用户做出推荐;
基于CBR的推荐系统以确定用户需求为前提,再过滤和选择已有案例,并根据推荐的反馈作出修正调整。
基于知识推理的推荐系统需要三部分知识:用户知识、项目知识和功能知识,采用统一的 知识表示方式来表示用户概要和项目,并采用各种知识推理方法在用户概要和项目之间作出匹配,在此基础上向用户实施推荐。
优点:
- 能把用户需求映射到产品上;
- 能考虑非产品属性。
- 不依赖于用户偏好历史记录,能够即时响应用户的推荐需求,不受用户偏好改变的影响,也不存在冷启动问题。
缺点:
- 知识难获得,专业产品知识库构建难度大;
- 推荐是静态的。
基于上下文的推荐
大多数推荐系统都是研究和处理用户和项目之间的二元关系,而忽略了时间、地点、周围 人等上下文信息。在推荐系统中引入上下文信息,可以有效地提高推荐精度。
将时间上下文信息添加到推荐系统中,可以有效的反映出用户变化的兴趣,也可以看出项目的生命周期以及季节效应。在加入时间信息后,推荐系统从静态演变为动态,用户的行为数据就变为为一组时间序列。
优点:
提高推荐精度。
缺点:
- 数据量大,计算复杂,算法运行效率低。
- 稀疏性、冷启动、隐私与安全方面都存在问题。
基于深度学习的推荐
基于深度学习的推荐是将深度学习技术糅杂在传统的推荐算法(比如基于内容的推荐、协同过滤推荐)之中,或使用无监督学习方法对项目进行聚类,或使用监督学习方法对项目进行分类,是使用多层感知器、卷积神经网络、循环神经网络、递归神经网络等对数据加工处理提取特征。
基于深度学习主要是体现出它使用机器学习的数据处理技术,通过组合低层特征形成更加稠密的高层语义抽象,从而自动发现数据的分布式特征表示,解决了传统机器学习中需要人工设计特征的问题。深度学习技术是要依托于传统推荐技术中,可以说是对传统推荐技术的增强.
该类型推荐多用于处理图像、文本、音频等数据。比如电子商务平台、电影售票系统等,主营项目都会附带有明显的图片介绍,这就可以根据用户当前浏览或是历史购买记录,来获取图片信息,深度学习提取出图像的特征表示,再以此从项目数据库中比对类似特征的图像,从而推荐;像亚马逊这样的网上书店或小说平台,主营项目以文本信息为主。经过深度学习,也可以提取出文本的风格、类型、特色等特征,从而匹配推荐;对于音乐播放器这类的以音频为主系统,先将音频数据变为数字信号,再进行深度学习,用数字信息抽象表示音频特征(舒缓、嘻哈、古典等),从而可训练出用户的听曲风格。
基于深度学习推荐的最优势点就是可针对多种类型的输入数据,都可以提取特征,并训练模型,可以实现多元化的推荐,但是要想得到更好的推荐效果,就需要更长的时间来训练模型。
基于深度学习的推荐系统中的常用神经网络如下:
卷积神经网络:卷积神经网络多用于处理图像数据,所以经常是通过处理分析用户项目的历史图片信息来推荐类似风格和颜色布局图片的其他项目。
循环神经网络:这种神经网络多用于处理序列数据,比如语音识别,要想语义翻译准确,就要根据上文环境,所以循环神经网络在处理这类问题时就具有一定的优势。
优点:
可跨平台进行信息融合,推荐效果较好。
缺点:
学习过程耗时,可解释性差。
组合推荐
由于各种推荐方法都有优缺点,所以在实际中,组合推荐(Hybrid Recommendation)经常被采用。研究和应用最多的是内容推荐和协同过滤推荐的组合。最简单的做法就是分别用基于内容的方法和协同过滤推荐方法去产生一个推荐预测结果,然后用某方法组合其结果。尽管从理论上有很多种推荐组合方法,但在某一具体问题中并不见得都有效,组合推荐一个最重要原则就是通 过组合后要能避免或弥补各自推荐技术的弱点。
在组合方式上,有研究人员提出了七种组合思路:
1)加权(Weight):加权多种推荐技术结果。
2)变换(Switch):根据问题背景和实际情况或要求决定变换采用不同的推荐技术。
3)混合(Mixed):同时采用多种推荐技术给出多种推荐结果为用户提供参考。
4)特征组合(Feature combination):组合来自不同推荐数据源的特征被另一种推荐算法所采用。
5)层叠(Cascade):先用一种推荐技术产生一种粗糙的推荐结果,第二种推荐技术在此推荐结果的基础上进一步作出更精确的推荐。
6)特征扩充(Feature augmentation):一种技术产生附加的特征信息嵌入到另一种推荐技术的特征输入中。
7)元级别(Meta-level):用一种推荐方法产生的模型作为另一种推荐方法的输入。
推荐算法之用户推荐(UserCF)和物品推荐(ItemCF)对比
一、定义
UserCF:推荐那些和他有共同兴趣爱好的用户喜欢的物品;
ItemCF:推荐那些和他之前喜欢的物品类似的物品;
根据用户推荐重点是反应和用户兴趣相似的小群体的热点,根据物品推荐着重与用户过去的历史兴趣,即:
UserCF是某个群体内的物品热门程度;
ItemCF是反应本人的兴趣爱好,更加个性化。
二、新闻类网站采用 UserCF 的原因:
用户大都喜欢热门新闻,特别细粒度的个性化可忽略不计;
个性化新闻推荐更强调热点,热门程度和实效性是推荐的重点,个性化重要性则可降低;
ItemCF需要维护一张物品相关度的表,当物品量更新速度太快时,此表的维护在技术上有难度。新闻类网站对于新用户可直接推荐热门新闻即可。
对于电商、音乐、图书等网站而言,ItemCF的优势更大:
用户的兴趣比较固定和持久;
不需要太过考虑流行度,只需要帮用户发现他研究领域相关物品即可
技术角度考量:
UserCF需要维护一个用户相似度矩阵;
ItemCF需要维护一个物品相似度矩阵。