问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

推荐系统实战:从协同过滤到矩阵分解

创作时间:
作者:
@小白创作中心

推荐系统实战:从协同过滤到矩阵分解

引用
CSDN
1.
https://blog.csdn.net/m0_54634272/article/details/136413728

推荐系统是现代互联网应用中不可或缺的一部分,它通过分析用户行为和偏好,为用户推荐个性化的内容或商品。本文将从推荐系统的定义、应用、目标、评价方法、常用术语、经典流程、难点与挑战等多个维度,深入探讨推荐系统的核心原理和技术实现,特别是协同过滤和矩阵分解算法在推荐系统中的应用。

推荐系统介绍

什么是推荐系统?

一句话概括,推荐系统就是根据用户的兴趣和行为,向用户推荐他们可能感兴趣的视频、商品等,让用户沉浸其中。

推荐系统的应用

推荐系统的主要应用场景包括个性化推荐、优化用户体验、在海量数据中快速定位以及精准营销。例如:

  • 抖音:通过推荐算法,让用户看到更多感兴趣的视频,增加用户粘性。
  • 京东:在用户购买键盘后,推荐鼠标、鼠标垫等关联商品,提高销售转化率。

为什么需要推荐系统

  • 解决长尾商品销售问题:80%的销售往往来自20%的热门商品,推荐系统可以帮助推广剩余80%的长尾商品。
  • 通过用户行为进行个性化推荐:根据用户的浏览、购买等行为,提供个性化的商品推荐。

推荐系统发展

  • 1998年:亚马逊开始使用简单的协同过滤算法。
  • 2006年:Netflix在线视频竞赛推动了推荐系统的发展。
  • 2015年:深度学习的崛起为推荐系统带来了新的突破。
  • 今天:推荐系统已经成为各大平台的核心技术之一,相关研究和应用层出不穷。

推荐系统的目标

  • Relevance:推荐的内容必须与用户兴趣相关。
  • Novelty:推荐新颖的内容,避免重复。
  • Serendipity:提供意外的惊喜,增加用户的探索欲望。
  • Diversity:保持推荐内容的多样性,避免同质化。

怎样评价推荐系统效果

  • 用户满意度:这是最重要的评价指标。
  • 常规计算损失:如均方根误差(RMSE)。
  • TopK推荐:评估推荐列表中相关商品的比例。
  • 覆盖率:评估推荐系统对长尾商品的覆盖程度。

推荐系统里的常用词

  • Item:推荐系统中的商品或内容单元。
  • Embedding:将高维稀疏数据映射到低维稠密空间的向量表示。
  • 召回:从大量候选商品中筛选出可能与用户兴趣相关的商品。
  • 打分:对召回的商品进行评分,用于后续排序。

推荐系统经典流程

  1. 离线模块:运行较大的模型和算法,定期更新推荐结果。
  2. 近线模块:根据用户实时行为更新推荐结果。
  3. 在线模块:根据业务规则返回最终的推荐结果。

推荐系统的难点与挑战

  • 用户标签和画像的构建:需要广泛收集和分析用户数据。
  • 用户兴趣的变化:随着时间推移,用户兴趣会发生变化。
  • 冷启动问题:新用户或新商品的推荐策略。
  • 特征工程:如何构建有效的特征表示是一个持续的挑战。

涉及技术点分析

  • Embedding方向:如何更好地表示数据,避免使用one-hot编码。
  • NLP方向:基于文本数据的推荐,如LDA、词向量等技术的应用。
  • 知识图谱方向:利用知识图谱增强推荐效果。
  • CV方向:图像和视频数据在推荐系统中的应用。
  • 特征工程与深度学习方向:如何利用深度学习处理高维稀疏数据。

为什么需要深度学习

  • 简化特征工程:深度学习可以自动学习特征,减少人工特征工程的难度。
  • end2end架构:简化模型训练流程。
  • 处理复杂数据:深度学习在处理NLP和图像数据方面具有天然优势。
  • 应对高维稀疏数据:深度学习能够更有效地处理推荐系统中的高维稀疏数据问题。

协同过滤与矩阵分解

矩阵分解中的显式与隐式特征

用户行为
类型
特征
作用
评分
显式
整数量化的偏好
精确反映用户偏好
点击流
隐式
一组用户的点击
反映用户兴趣
购买
隐式
布尔量化的偏好
明确反映用户兴趣

基于用户的协同过滤

基于用户的协同过滤首先计算用户之间的相似度,然后根据相似用户的喜好进行推荐。例如,如果User1喜欢商品1、2、3、4,而User3当前只喜欢商品2、3,且这两个用户相似度较高,那么可以向User3推荐商品1和4。

存在的问题包括数据稀疏性、计算复杂度、用户兴趣变化以及冷启动问题。

基于物品的协同过滤

基于物品的协同过滤首先分析商品之间的相似性,然后根据用户已购买的商品推荐相似商品。例如,如果商品1和3经常一起出现,而User3已经购买了商品2和3,那么可以向User3推荐商品1。

小例子

假设需要预测用户5对商品1的评分(r51),已知用户5对商品2和3的评分分别为2和3,商品2和3之间的相似度分别为0.41和0.59,邻居设置为2,那么可以计算:

$$
R_{51} = \frac{0.41 \times 2 + 0.59 \times 3}{0.41 + 0.59} = 2.6
$$

为什么需要矩阵分解

在大规模推荐系统中,用户-商品矩阵通常非常稀疏且维度很高。例如,一个包含1亿用户和100万商品的矩阵,直接处理非常困难。矩阵分解通过将原始矩阵分解为用户矩阵和商品矩阵,可以更高效地处理这种大规模稀疏矩阵。

矩阵分解

矩阵分解的基本思想是将用户-商品评分矩阵分解为用户矩阵和商品矩阵。假设原始矩阵为m×n(用户×商品),分解后的用户矩阵为m×k,商品矩阵为k×n,其中k是隐向量的维度。

矩阵分解实例

矩阵分解的目标是预测用户对未评分商品的喜好程度。具体实现方法包括:

  1. 隐向量:用户和商品的隐向量表示,通常难以直观理解,但计算机可以很好地处理。
  2. 目标函数:通过最小化预测评分与实际评分之间的差异来优化模型,同时加入正则化项防止过拟合。

后续的改进

为了处理用户和商品的偏置问题,可以在目标函数中加入用户偏置项和商品偏置项。例如,用户偏置项bu表示用户整体评分倾向,商品偏置项bi表示商品整体受欢迎程度。

隐式情况分析

在实际应用中,用户行为数据通常是隐式的,如观看时间、点击次数等。处理隐式反馈时,可以引入置信度概念,通过调整置信度权重来优化模型。

Embedding的作用

Embedding在推荐系统中无处不在,其核心作用是让计算机更好地理解用户和商品的特征。通过将高维稀疏数据映射到低维稠密空间,可以显著提高推荐系统的性能。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号