本文转载自微信公众号「大数据DT」,作者刘宇 赵宏宇 刘书斌 孙明珠 。转载本文请联系大数据DT公众号。
用户在意图明确的情况下,能够通过关键词进行搜索。那么,当用户不了解自己真正想要什么的时候,系统该如何给出用户可能想要的结果,满足用户的需求呢?推荐系统能够解决这类问题。
比如用户在找喜欢的音乐,但又没有具体的歌名或者歌手时,很难在短时间内找到真正合适的音乐,这时候就需要分析用户历史行为,进而找出用户可能感兴趣的音乐推荐给用户,这就是推荐系统所需要完成的事情。
01 什么是推荐系统
推荐系统是能找出用户和物品之间联系的信息过滤系统。推荐系统主要有两个显著的特征。
- 主动性:从用户角度考虑,前文提到的搜索引擎都是为了解决信息过载问题而存在的,需要用户提供明确的需求。当用户无法准确描述自己的需求时,搜索引擎就不能够为用户提供精确的服务了。而推荐系统不需要用户提供明确的需求,能够自主地通过分析用户和物品之间的关联数据进行建模,为用户提供可能感兴趣的信息。
- 个性化:推荐系统能够挖掘冷门信息推荐给用户。热门物品通常能够代表大多数人的喜好,冷门物品往往只能代表少数人的个性化需求,但冷门物品所带来的收益可能超过热门物品,所以挖掘长尾冷门信息是推荐系统的方向。
总之,推荐系统推荐的物品通常来说不是对用户有帮助的,就是用户自己感兴趣的。
02 推荐系统应用场景
与搜索系统不同的是,推荐系统主要利用用户的行为数据,分析用户的行为日志,从而提供不同的推荐页面,提高用户的满意度以及网站的点击率和转化率。常见的推荐系统的推荐形式主要有三种:个性化推荐、相关推荐和热门推荐。
- 个性化推荐经常以“猜你喜欢”“发现”等形式在首页出现;
- 相关推荐经常以“相关推荐”“看了又看”等形式放在内容详情页;
- “热门推荐”按照各类数据的统计结果进行推荐。
推荐系统的常见应用场景包括:电子商务、个性化广告、音乐和电影、求职等。
电商领域的推荐系统有很广泛的应用场景。推荐系统可以帮助很多用户在淘宝、天猫上完成消费。相关的推荐功能非常多。以“淘宝”为例,其主要推荐功能有:相关商品、店铺推荐、买了还买、看了还看、猜你喜欢等。
淘宝首页“猜你喜欢”的产品、商品详情页中“看了又看”的产品、订单详情页“你可能还喜欢”展示如图2-3所示。
▲图2-3
淘宝的推荐算法中有基于内容推荐的成分,如推荐系统需要给用户和商品打标签,通过算法匹配推荐商品给用户;还有基于协同思想的方法,根据某顾客以往的购买行为或者通过具有相似购买行为的客群的购买行为给顾客推荐可能喜欢的商品。
在海量音乐中,如何找出我们自己喜欢的音乐呢?推荐系统在这其中扮演着重要的角色。以网易云音乐为例,网易云音乐的主要推荐场景有:每日推荐、歌单推荐、电台推荐等。
“私人FM”和“每日歌曲推荐”是综合了用户听歌记录、收藏的歌曲、歌单、歌手、收看的MV以及本地歌曲等多种因素,再经过多重计算之后给出的相关推荐结果。
网易云音乐还设置了“每日推荐”条目,以便收集用户的每日行为数据,不断地完善和丰富用户画像。“歌单”和“电台”的推荐功能也是一致的,主要收集用户的偏好和行为数据。
同时,网易云音乐的推荐应用中设置了用户自己打标签的功能,即当系统推荐不准确时,用户可以自行标记。
03 推荐系统的分类
推荐系统具有不同的分类方法。常见的分类方法有:按照推荐结果因人而异分类、按照推荐方法分类、按照推荐模型构建方式分类。因为推荐算法是整个推荐系统中最核心部分,所以推荐系统还可以依据推荐算法分类。基于此,推荐系统可以分为基于内容的推荐、基于协同过滤的推荐以及混合推荐方法。
1. 基于内容的推荐
基于内容的推荐策略始于信息检索领域,是搜索领域的重要研究方向。这种方法利用用户已经选择的对象,从候选集中找出与用户已选对象相似的对象作为推荐结果。这一推荐策略是首先提取推荐对象的内容特征,并和用户模型中的用户兴趣匹配。匹配度较高的对象就可以作为推荐结果推荐给用户。
计算推荐对象的内容特征和用户模型中兴趣特征两者之间的相似性是内容推荐策略中的关键步骤。一般采用的最简单的方法为计算两个向量的夹角余弦值。
基于内容的推荐策略的主要部分就是用户特征的描述以及推荐对象内容特征的提取。目前,文本信息的特征提取方法已经趋于成熟,但多媒体信息的特征提取技术还需要进一步探索。图2-6是基于内容的推荐,用户A喜欢具有A、B特征的商品A,而商品C也是A、B类型的,商品C和商品A相似,于是商品C被推荐给用户A。
▲图2-6 基于内容的推荐
基于内容的推荐策略的优点有:
- 简单有效,推荐结果较为直观,可解释性强;
- 没有新推荐对象的冷启动问题;
- 简单的分类方法就能够支持该策略。
缺点有:
- 受推荐对象特征提取能力的限制,对图像、视频、声音等多媒体资源的特征提取以及文本资源的提取不够全面;
- 很难推出新颖的推荐结果,惊喜度指标较低,难以发现用户新的兴趣点;
- 存在新用户的冷启动问题,因为很难发现新用户的兴趣爱好,无法和推荐对象的内容特征进行匹配。
2. 基于协同过滤的推荐
目前,基于协同过滤的推荐是推荐系统中应用最广泛、最有效的推荐策略。它于20世纪90年代出现,促进了推荐系统的发展。协同过滤的基本思想是聚类。
比如,如果周围很多朋友选择了某种商品,那么自己大概率也会选择该商品;或者用户选择了某种商品,当看到类似商品且其他人对该商品评价很高时,则购买这个商品的概率就会很高。
协同过滤又分为三种:基于用户的协同过滤、基于项目的协同过滤和基于模型的协同过滤。
1)基于用户的协同过滤的基本思想是首先找到与目标用户兴趣相似的用户集合,然后找到这个集合中用户喜欢并且没有听说过的物品推荐给目标用户。
图2-7是基于用户的协同过滤的实现逻辑。用户A喜欢商品A和商品C,用户C喜欢商品A、商品C和商品D,用户A和用户C具有相似的兴趣爱好,因此把商品D推荐给用户A。
▲图2-7 基于用户的协同过滤
2)基于项目的协同过滤的基本思想是基于所有用户对推荐对象的评价的推荐策略。如果大部分用户对一些推荐对象的评分较为相似,那么当前用户对这些推荐对象的评价也相似。然后,将相似推荐对象中用户未进行评价的商品推荐给用户。
总之,基于项目的协同过滤就是根据用户对推荐对象的评价,发现对象间的相似度,根据用户的历史偏好将类似的商品推荐给该用户。
图2-8是基于项目的协同过滤的实现逻辑。用户A喜欢商品A和商品C,用户B喜欢商品A、商品B和商品C,用户C喜欢商品A,通过这些用户的喜好可以判定商品A和商品C相似,喜欢商品A的用户同时也喜欢商品C,因此给喜欢商品A的用户C也推荐了商品C。
▲图2-8 基于项目的协同过滤
3)基于模型的协同过滤的基本思想是基于样本用户的喜好信息训练一个推荐模型,然后根据实时的用户喜好信息进行推荐。其和上述两种协同推荐的不同点在于先对已有数据应用统计和机器学习的方法得到模型,再进行预测。常用的方法有机器学习方法、统计模型、贝叶斯模型和线性回归模型等。
基于协同过滤推荐的优点有:
- 可以使用在复杂的非结构化对象上;
- 能够发现用户新的兴趣爱好,给用户带来惊喜;
- 以用户为中心的自动推荐,随着用户数量的增加,用户体验也会越来越好。
缺点在于:
存在冷启动问题,即在没有大量用户数据的情况下,用户可能不满意获得的推荐结果;
存在稀疏性问题,即用户大量增长的同时,评价差异性会越来越大,推荐对象也越来越多,导致大量的推荐对象没有经过用户评价,部分用户无法获得推荐结果,部分推荐对象无法被推荐。
3. 混合推荐方法
各种推荐方法都会存在优缺点。在实际应用中,我们可以采用推荐策略的组合方式,即混合推荐方法。目前,使用最多的混合推荐方法就是把基于内容的推荐和协同过滤推荐组合。根据应用场景的不同,组合的方式也不尽相同,主要有两种混合方式。
- 推荐结果混合:将多种推荐方法产生的结果通过某种方式进行混合计算而产生最终的推荐结果。如何从多个推荐结果中选出推给用户的最终结果成为混合推荐的关键。常见的机制是投票机制,即使用一定的标准对多个结果进行判断,选择其中之一。
- 推荐算法的混合:以某一种推荐策略作为框架,混合另外的推荐策略,如基于协同过滤推荐的框架混合基于内容的推荐策略。
04 搜索与推荐的区别
搜索和推荐都是用户解决信息过载的有效手段,能够帮助用户快速准确地定位到想要的信息。互联网上搜索和推荐这两种方式大量并存,它们之间到底有怎样的区别呢?
1. 按照用户意图是否明确,我们可以将两者进行区分
搜索引擎是一种用户意图明确的信息检索方式,用户能够提供查询关键词,指引搜索引擎查询相关内容。这个过程是用户主动发起的。反之,当用户意图不够明确时,推荐系统就能够满足用户此时的需求。
比如音乐播放器根据用户的喜好和历史行为给出用户推荐列表,电商平台根据购买、浏览等记录给出用户可能喜欢的商品列表,这些都是用户在意图不明确的时候被动接受的内容。也正是因为推荐系统不需要明确的搜索内容,所以能够满足用户难以用文字表述的需求。
2. 两者个性化区别
当用户在输入想要检索的内容时,搜索引擎展示的结果基本固定,个性化程度较低。推荐系统的个性化程度较高,因为推荐并没有一个标准的答案。推荐系统可以根据每位用户的历史观看行为、评分记录等生成一个当下对用户最有价值的结果,这也是推荐系统独特的魅力。
3. 评价标准不同
搜索质量的重要评价标准是能否帮用户快速找到准确的结果,因此搜索引擎的排序算法需要尽量把最好的结果放到前面。总而言之,“好”的搜索算法需要让用户获取信息的效率更高,停留时间更短。
搜索引擎常用的评价指标有:归一化折损累计增益(nDCG)、精准度–召回率(Precision-Recall)等。而推荐系统则希望用户被所推荐的内容吸引,停留更长的时间,有更多的持续性动作。对用户兴趣挖掘的越深,推荐的成功率也就越高。
推荐系统的评价面要更加宽泛,推荐结果的数量也更多,出现的位置、场景也更加复杂。对于Top N推荐,MAP或CTR是普遍的评价方法;对于评分预测问题,RMSE或MAE是常见量化方法。
4. 马太效应和长尾理论
由于用户使用搜索引擎是为了快速找到结果,因此绝大部分用户的点击集中在排列较靠前的结果上,而排列靠后的结果以及翻页后的内容很少被关注。这就是著名的马太效应,即热门物品受到更多的关注,冷门物品则越被遗忘的现象。
长尾理论是指冷门物品的种类远远高于热门物品的种类。在电商领域,如果这些长尾物品被充分挖掘,其带来的价值可能会超过热门物品所带来的价值。
推荐系统能够发现被“遗忘”的非热门的物品,将长尾资源盘活和利用,引起用户的注意,挖掘用户的兴趣,提供给用户更多的选择。而且,依赖热门内容可能会导致潜在客户的流失。
关于作者
刘宇,清华大学硕士,现就职于一家跨境电商公司,任技术总监,主要负责该公司搜索推荐业务以及广告的相关技术开发。目前工作的重点是落地算法在搜索系统、推荐系统、对话系统等具体业务场景下的应用。对机器学习、深度学习、大数据应用与开发等颇有研究。合著有《聊天机器人:入门、进阶与实战》一书。
赵宏宇,本科毕业于东北大学;研究生毕业于RIT,主修AI方向。现就职于猎聘网,主要负责猎聘网推荐排序相关的工作。
刘书斌,本科毕业于东北大学,现就职于美团,资深系统开发工程师。曾在唯品会任职,主要负责搜索工程的架构设计与实现等相关工作,在Elasticsearch方面有丰富的工程实践经验。
孙明珠,硕士毕业于南京航空航天大学,现就职于猎聘网,担任高级算法工程师,负责查询理解、解析、扩展等NLP相关的工作。
本文摘编自《智能搜索和推荐系统:原理、算法与应用》,经出版方授权发布。