使用最广泛的推荐算法主要分为三类:协同过滤、基于内容的过滤和混合方法。 协同过滤分析用户与项目的交互以寻找模式,而基于内容的过滤则利用项目属性。 混合方法结合了这些方法来解决局限性。 以下是每种类别中流行的算法的细分。
协同过滤和矩阵分解 协同过滤 (CF) 根据用户行为推荐项目。 例如,如果用户 A 和用户 B 具有相似的偏好,则可以推荐用户 A 喜欢但用户 B 尚未看到的项目。 这包括用户-用户 CF(比较用户)和项目-项目 CF(比较项目,例如亚马逊的“购买此商品的顾客也购买了”)。 一个关键的限制是新用户或项目的“冷启动”问题。 为了解决用户-项目矩阵中的稀疏性,矩阵分解(例如,奇异值分解)将矩阵分解为表示用户偏好和项目特征的潜在因素。 这在 Netflix Prize 竞赛中被广泛使用,通过对评级中的隐藏模式进行建模来提高预测准确性。
基于内容和混合方法 基于内容的过滤使用项目特征(例如,类型、标签)来推荐相似的项目。 例如,电影推荐系统可能会推荐与用户之前喜欢的电影具有相同导演或类型的电影。 诸如 TF-IDF 或词嵌入(例如,Word2Vec)之类的技术可以量化项目描述之间的相似性。 但是,这依赖于高质量的元数据,而元数据可能并不总是存在。 诸如加权混合之类的混合模型结合了协同信号和基于内容的信号。 例如,Netflix 将观看历史记录(协同)与类型偏好(基于内容)相结合,以使推荐多样化。 另一种方法是特征堆叠,其中交互数据和项目特征都被馈送到单个模型中。
高级技术:神经网络和分解机 现代系统通常使用神经网络来捕获非线性模式。 神经协同过滤 (NCF) 用深度学习层替换传统的矩阵分解,以对用户-项目交互进行建模。 YouTube 使用深度神经网络从观看历史记录和用户上下文中生成视频嵌入。 分解机 (FM) 通过对成对的特征交互进行建模来处理稀疏数据,使其对于具有附加信息(例如,用户人口统计信息)的场景有效。 对于大型系统,双塔模型(用于用户和项目的单独网络)可以从数十亿项目的目录中进行高效检索,正如 Spotify 的播放列表推荐中所见。 这些方法平衡了准确性和可扩展性,使其适用于实际应用。