趋近智
基于内容的推荐系统遵循一个直观的原则:如果用户对某个物品表现出兴趣,他们很可能也会喜欢具有相似特征的其他物品。与依赖其他用户行为的协同过滤不同,基于内容的方法完全侧重于物品本身的属性。这种方法将用户喜欢的物品属性与目录中其他物品的属性进行匹配,从而找到最合适的推荐。
整个过程可以分为三个主要阶段:物品表示、用户画像建模以及生成推荐。让我们依次了解这些阶段。
第一步是将每个物品的属性转化为机器可以理解的格式。这意味着要将物品的属性(例如电影的类型、导演、演员和剧情摘要)转换为称为特征向量或物品画像的数值表示。目录中的每个物品都会有自己的向量,向量中的每个位置都对应一个特定的特征。
例如,电影的类型可以用二进制向量表示,其中 1 表示存在该类型,0 表示不存在。如果我们的系统跟踪 {动作, 喜剧, 科幻} 这几种类型,那么像《银翼杀手》这样的电影可能表示为 [1, 0, 1],而像《超级坏》这样的喜剧片则是 [0, 1, 0]。更复杂的特征(如剧情摘要中的文本)需要使用更高级的技术,例如我们将在本章稍后介绍的 TF-IDF 向量化。
一旦我们有了每个物品的特征向量,接下来的任务就是为每个用户构建一个能够体现其偏好的画像。用户画像本质上是他们产生过正面互动的物品画像的聚合。
创建用户画像最简单的方法是计算他们喜欢的物品特征向量的平均值。如果一个用户对两部动作片的评分很高,那么他们的用户画像向量在“动作”特征上会有很强的信号。这个画像就成了他们口味的概括性表示,直接根据他们消费过的内容构建而成。
在物品画像和用户画像都建立为向量后,最后阶段是生成排序后的推荐列表。这是通过测量用户画像向量与他们尚未看过的每个物品特征向量之间的相似度来实现的。
系统遍历候选物品,计算每个物品与用户画像的相似度得分,然后按得分从高到低对物品进行排序。排序列表中的前 N 个物品即为向用户展示的最终推荐。一种常用的方法是计算余弦相似度,它衡量两个向量之间的夹角。夹角越小,相似度越高,无论向量的大小如何。
下图展示了这个三阶段的工作流。
基于内容的推荐系统工作流,从处理用户历史和物品特征到生成最终的排序列表。
这种基于运行机制的方法使基于内容的过滤具有一些明显的优势。推荐是独立于用户的,这意味着系统不需要来自其他用户的数据即可为当前用户提供推荐。这有助于缓解“新用户”冷启动问题。此外,推荐具有透明性;我们可以通过指出某物品与用户之前喜欢的物品具有共同属性,来解释推荐该物品的原因。
然而,这种方法也有局限性。其有效性完全取决于物品特征数据的质量和完整性。如果元数据稀疏或过于宽泛,系统就无法对物品进行有意义的区分。它还可能导致过度专门化,通过只推荐与过去选择极其相似的物品,将用户困在“信息茧房”中,从而限制了新颖且多样化内容的发现。
接下来,我们将学习如何在代码中实现这些阶段,首先从根据原始元数据创建丰富且信息充足的物品画像这一任务开始。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造