《推荐系统:技术、评估及高效算法》一3.2 基于内容的推荐系统的基础

简介:

本节书摘来自华章出版社《推荐系统:技术、评估及高效算法》一书中的第3章,第3.2节,作者 [ 美]弗朗西斯科·里奇(Francesco Ricci)利奥·罗卡奇(Lior Rokach)布拉哈·夏皮拉(Bracha Shapira)保罗 B.坎特(Paul B.Kantor),更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.2 基于内容的推荐系统的基础

基于内容的推荐系统通过分析一系列用户之前已评分物品的文档和(或)描述,从而基于用户已评分对象的特征建立模型或个人信息[63]。个人信息是用户兴趣的结构化描述,并且被应用在推荐新的感兴趣的物品中。推荐的主要处理过程是将用户个人信息的特征和内容对象的特征相匹配,结果就是用户对某个对象感兴趣程度的评价。如果这份个人信息准确地反映了用户的偏好,信息访问处理过程则能带来巨大的优势。例如,通过判断这个用户是否对指定网页感兴趣,以及在不感兴趣的情况下阻止显示,从而达到有效过滤搜索结果的效果。

3.2.1 基于内容的推荐系统的高层次结构

基于内容的信息过滤系统需要描述物品和生成用户个人信息的恰当技术,以及一些能够比较用户个人信息和物品描述的策略。一个基于内容的推荐系统的高层次结构如图3.1所示。推荐的过程有三个阶段,每一阶段都由独立的部件控制。

image

内容分析器:当信息没有结构化时(如文本),某些预处理阶段需要抽取相关的结构化信息。这个部件的主要功能就是将来自信息源的对象(如文档、网页、新闻、产品描述等)的内容表示成恰当的格式,以便于下一阶段的处理。数据对象经过特征抽取技术的分析,目的是将原始信息空间转换到想要的物品描述格式(如将网页表示成关键词向量)。这样的描述格式作为信息学习器和过滤组件的输入。

信息学习器:这个模块收集了有关用户偏好的数据特征,并试图去泛化这些数据,从而构建用户特征信息。泛化策略通常是通过机器学习技术实现的[61],它可以从用户过去喜欢的或不喜欢的物品中推断出一个用户的兴趣模型。例如,网页推荐的信息学习器可以实现相关的反馈方法[75],通过学习技术将正负样例向量组合到一个表示用户特征的模型向量中。训练样本是由用户提供的具有正负反馈的网页。

过滤组件:这个模块将用户个人信息和物品在表示空间进行匹配,利用用户个人信息来推荐相关物品。这个组件的结果是一个二元的或者连续型的相关性判断(使用某种相似度来计算[42]),后者能生成一个潜在感兴趣物品的排名清单。在上面提过的例子中,这种匹配是通过计算原型向量和物品向量的余弦相似度得到的。

推荐步骤的第一个阶段是由内容分析器完成的,它通常是借鉴了信息检索系统的技术[80,6]。来自信息源的物品描述经过内容分析器,从非结构化的文本中抽取特征(如关键词、n-grams、概念等),从而得到结构化的物品描述,并储存在被表示物品库中。

为了结构化和更新活跃用户ua(必须为其提供推荐的用户)的个人信息,该用户对物品的偏好反应是通过某些渠道收集并记录在反馈库中的。这些被称作注释[39]或反馈的相互作用和物品的相关描述一起被用在模型学习的过程中,这些信息对实际中预测新的相关物品的表示非常有用。因此,即使没有提供任何反馈,用户也可以清晰地定义他们自己感兴趣的领域作为初始的个人信息。

通常情况下,我们能够区分这两种类型的相关性反馈:正面的信息(用户喜欢的特征)和负面的信息(用户不感兴趣的特征[43])。

两种不同的技术都能用来记录用户的反馈。当系统要求用户明确评价物品时,这项技术通常称作“显式反馈”;反之,则称作“隐式反馈”,由于反馈来自监控和分析用户的行为,所以它不需要任何活跃用户的参与。

确切的评价能够表明用户对一个物品相关或感兴趣的程度[74]。主要有三种方式来得到显式的相关性反馈:

喜欢/不喜欢:利用一个简单的二元化评分刻度,将物品分成“相关的”或“不相关的”两大类,如[12]。

评分:经常用来评价物品的一个离散的数值刻度,详情参见文献[86]。当然,标记化的评价也可以映射到数值刻度,如在Syskill&Webert[70]中一样,把用户对网页的评价划分为热门、一般、冷门。

文本评论:收集并展示单一物品的评论给用户,使其成为用户加快决策过程的一种方式,详情参见文献[72]。例如,在Amazon或eBay上,用户的反馈可以帮助其他用户判断一件物品是否被大众所接受。文本评论是有益的,但是这些评论也会对用户造成负担,因为她必须阅读和理解每条评论,并决定哪些评论是正面的哪些是负面的,以及这些评论的程度。文献[71]从情感计算研究领域中提出的先进技术,使得基于内容的推荐系统能够自动执行这种分析。

即使数值/符号刻度的可采纳性会增加用户的认知负荷,而且也许不能完全得到用户对物品的评价,显式反馈仍然具有简单的优点。隐式反馈的方法是基于对用户在某样物品上的特定行为进行相关性评分赋值,如保存、删除、印刷、收藏等。这个方法的主要优点是不需要用户的直接参与,当然偏差是可能发生的,如在阅读的时候被电话打断。

为了建立活跃用户ua的个人信息,必须定义用户ua的训练集TRa。TRa是一个成对的〈Ik,rk〉的集合,其中rk是用户对物品描述Ik的评分。给定一组有评分的物品描述,信息学习器通过监督式学习算法生成一个预测模型——用户信息,用户信息通常存储在信息资源库里,并被之后的过滤组件所使用。给定一个新的物品描述,通过比较存储在用户信息资源库里的用户偏好和表述物品的特征,过滤组件将会预测活跃用户是否对它感兴趣。过滤组件通常会实现根据用户个人信息相关性的程度对潜在感兴趣物品进行排序的策略。排名靠前的物品会形成一个推荐列表La,并被推荐给用户ua。用户的品味通常时刻改变,因此必须维护最新的变更,并提供给信息学习器去自动更新用户个人信息。通过让用户表明对La中的物品满意与否,能从生成的推荐中收集到更深层次的反馈。在收集了这些反馈后,学习过程将在新的训练数据集上再次执行,并将学习的结果应用于生成用户的最新兴趣。随着时间的推移,“反馈—学习”的循环迭代使得该系统可以考虑到用户偏好的动态变化。

3.2.2 基于内容过滤的优缺点

基于内容的推荐与基于协同过滤的推荐相比有以下优点:
用户独立性:基于内容的推荐仅使用当前用户提供的评分来构建自己的个人信息。而协同过滤的方法需要其他用户的评分,来发现该用户最近的近邻,例如,由于对相同的物品评分相似而品味相似的用户。这时,只有当前用户最近邻很喜欢的物品才有可能推荐给当前用户。

透明度:通过显式地列出使得物品出现在推荐列表中的内容特征或描述,可以解释推荐系统是如何工作的。这些物品特征是决定是否信任该推荐的指标。相反,协同过滤系统是一个黑盒子,对一个推荐物品的唯一解释是相似品味的未知用户喜欢过该物品。

新物品:基于内容的推荐系统在没有任何用户评分的情况下也可以进行推荐。因此,新物品没有第一次评分会影响协同过滤推荐系统,因为协同过滤推荐系统仅依赖于用户的偏好产生推荐。所以只有当一个新物品被一系列用户评分之后,系统才可能推荐它。

尽管如此,基于内容的推荐系统也有以下一些缺点:
可分析的内容有限:基于内容的推荐技术有一个天然的限制,即与推荐对象相关的特征数量和类型上的限制,不管是自动还是手动的。领域知识一般是必需的,例如,对于电影推荐,系统需要知道电影的演员、导演,有时候领域本体也是需要的。当分析的物品内容信息不足以区分哪些物品是用户喜欢的、哪些物品是用户不喜欢的时候,没有任何基于内容的推荐系统可以给出合适的推荐。有些解释只能获取物品内容的某些方面,但是还有很多别的方面也能影响用户体验。举个例子,在玩笑或者诗词里,没有足够的词频信息去为用户兴趣建模,这时,情感计算的技术就会更适用。此外,对于网页来说,文本特征抽取技术完全忽略其美学特征和附加的多媒体信息。

总之,不论是手动还是自动为物品分配特征,都不足以定义物品不同的特点,而这些特点被证明对提取出用户兴趣是必要的。

过度特化:基于内容的推荐在本质上无法发现一些出人意料的物品。系统建议的物品和用户的个人信息高度匹配的时候,给用户的推荐也将会是与已有的评分物品相似的物品。这个缺点主要是由于基于内容的系统产生的推荐物品在新颖性上的缺陷,称作惊喜度问题。举例来说,当一个用户只评价了Stanley Kubrick导演的电影,那么她得到的推荐就只有这种类型的电影。一个“完美”的基于内容的技术可能很少发现任何新颖的东西,这限制了使用它的应用程序的范围。

新用户:在一个基于内容的推荐系统可以真正理解用户偏好且给出准确的推荐之前,需要收集足够的评分。因此,当只有很少的评分可用的时候,即对于新用户来说,系统不能提供可靠的推荐。

接下来,将就采用何种策略来处理对上面提出的问题,进行介绍和讨论。更具体地,会阐述利用常识和特定领域的知识来提高内容解释的新技术(3.3.1.3节~3.3.1.4节)。通过提供新的特征可能有助于克服传统的内容分析方式的限制,如WordNet[60,32]或Wikipedia概念,帮助物品用一种更准确透明的方式进行推荐。此外,将推荐过程中用户定义词典,如大众分类,作为扩展词表加入考虑并进行整合的过程,将在3.4.1节进行介绍。

使用惊喜度推荐,即新颖性很高的用户感兴趣的物品,来满足用户的可能方式将作为解决过度特化问题的解决方案进行分析(3.4.2节)。

最后,将会介绍克服新用户问题的各种不同策略。其中,当在特定用户的评分很少或者没有的情况下推荐时,社区用户所提供的社交标签可以作为推荐的反馈应用到系统中(3.4.1.1节)。

相关文章
|
3月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
142 1
|
4月前
|
机器学习/深度学习 数据采集 搜索推荐
Python基于深度学习算法实现图书推荐系统项目实战
Python基于深度学习算法实现图书推荐系统项目实战
207 3
|
5月前
|
机器学习/深度学习 搜索推荐 算法
推荐系统的算法与实现:深入解析与实践
【6月更文挑战第14天】本文深入探讨了推荐系统的原理与实现,包括用户和项目建模、协同过滤、内容过滤及混合推荐算法。通过收集用户行为数据,系统预测用户兴趣,提供个性化推荐。实践中,涉及数据处理、建模、算法选择及结果优化。随着技术发展,推荐系统将持续改进,提升性能和用户体验。
|
30天前
|
机器学习/深度学习 算法 搜索推荐
django调用矩阵分解推荐算法模型做推荐系统
django调用矩阵分解推荐算法模型做推荐系统
23 4
|
5月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
5月前
|
搜索推荐 算法 小程序
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
基于Java协同过滤算法的图书推荐系统设计和实现(源码+LW+调试文档+讲解等)
|
6月前
|
机器学习/深度学习 数据采集 人工智能
构建一个基于AI的推荐系统的技术探索
【5月更文挑战第23天】本文探讨了构建基于AI的推荐系统的关键技术,包括数据收集、预处理、特征工程、推荐算法(如协同过滤、内容过滤、深度学习)及结果评估。通过理解用户行为和偏好,推荐系统能提供个性化建议。实现步骤涉及确定业务需求、设计数据方案、预处理、算法选择、评估优化及系统部署。随着技术进步,未来推荐系统将更加智能。
|
29天前
|
机器学习/深度学习 人工智能 搜索推荐
用AI技术打造个性化新闻推荐系统
【10月更文挑战第7天】本文将介绍如何使用AI技术构建一个个性化的新闻推荐系统。我们将从数据收集、处理,到模型训练和优化,最后实现推荐系统的全过程进行讲解。通过这篇文章,你将了解到如何利用机器学习和深度学习技术,为用户提供精准的新闻推荐。
40 0
|
3月前
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
235 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
3月前
|
数据采集 机器学习/深度学习 人工智能
利用AI技术实现个性化新闻推荐系统
【8月更文挑战第31天】 本文将介绍如何利用AI技术实现一个个性化的新闻推荐系统。我们将使用Python语言和一些常用的机器学习库,如scikit-learn和pandas,来构建一个简单的推荐系统。这个系统可以根据用户的阅读历史和兴趣偏好,为他们推荐相关的新闻文章。我们将从数据预处理、特征提取、模型训练和结果评估等方面进行详细的讲解。
下一篇
无影云桌面