【协同过滤进化】矩阵分解算法

一、发展动机

为解决UserCF和ItemCF协同过滤算法中头部效应明显,处理稀疏向量能力弱的问题,同时增加模型的泛化能⼒,矩阵分解技术被提出。

二、矩阵分解算法

该⽅法在协同过滤共现矩阵的基础上,使⽤更稠密的隐向量表⽰⽤户和物品,挖掘⽤户和物品的隐含兴趣和隐含特征,在⼀定程度上 弥补了协同过滤模型处理稀疏矩阵能⼒不⾜的问题。

2.1、主要原理

矩阵分解算法则期望为每⼀个⽤户和视频⽣成⼀个隐向量,将⽤ 户和视频定位到隐向量的表⽰空间上,距离相 近的⽤户和视频表明兴趣特点接近,在推荐过程中,就应该把距离相 近的视频推荐给⽬标⽤户。

2.2、如何得到隐向量

在"矩阵分解"的算法框架下,⽤户和物品的隐向量是通过分解协 同过滤⽣成的共现矩阵得到的,这也是"矩阵分解"名字的由来。

矩阵分解算法将m×n维的共现矩阵R分解为m×k维的⽤户矩阵U和k× n维的物品矩阵V相乘的形式。其中m是⽤户数量,n是物品数量,k是隐 向量的维度。k 的⼤⼩决定了隐向量表达能⼒的强弱。k 的取值越⼩, 隐向量包含的信息越少,模型的泛化程度越⾼;反之,k 的取值越⼤,隐向量的表达能⼒越强,但泛化程度相应降低。

此外,k 的取值还与矩 阵分解的求解复杂度直接相关。在具体应⽤中,k的取值要经过多次试 验找到⼀个推荐效果和⼯程开销的平衡点。

2.3、预估评分

基于⽤户矩阵 U和物品矩阵 V,⽤户 u对物品 i的预估评分:其中 pu是⽤户 u 在⽤户矩阵 U 中的对应⾏向量,qi是物品 i 在物 品矩阵 V中的对应列向量。

三、矩阵分解算法评价

在矩阵分解算法中,由于隐向量的存在,使任意的⽤户和物品之间都可以得到预测分值。⽽隐向量 的⽣成过程其实是对共现矩阵进⾏全局拟合的过程,因此隐向量其实 是利⽤全局信息⽣成的,有更强的泛化能⼒;⽽对协同过滤来说,如 果两个⽤户没有相同的历史⾏为,两个物品没有相同的⼈购买,那么 这两个⽤户和两个物品的相似度都将为 0(因为协同过滤只能利⽤⽤户 和物品⾃⼰的信息进⾏相似度计算,这就使协同过滤不具备泛化利⽤ 全局信息的能⼒)。

3.1、矩阵分解算法优点

  • **泛化能⼒强。**在⼀定程度上解决了数据稀疏问题。
  • **空间复杂度低。**不需再存储协同过滤模型服务阶段所需 的"庞⼤"的⽤户相似性或物品相似性矩阵,只需存储⽤户和物品隐向 量。空间复杂度由 n2级别降低到(n+m)·k级别。
  • 更好的扩展性和灵活性。

3.2、矩阵分解算法缺点

与协同过滤⼀样,矩 阵分解同样不⽅便加⼊⽤户、物品和上下⽂相关的特征,这使得矩阵 分解丧失了利⽤很多有效信息的机会,同时在缺乏⽤户历史⾏为时, ⽆法进⾏有效的推荐。

相关推荐
c骑着乌龟追兔子1 分钟前
Day 29 机器学习管道 pipeline
人工智能·机器学习
TL滕1 分钟前
从0开始学算法——第七天(快速排序算法)【面试高频】
笔记·学习·算法·面试·职场和发展·排序算法
努力也学不会java2 分钟前
【docker】Docker Image(镜像)
java·运维·人工智能·机器学习·docker·容器
zhangfeng11333 分钟前
suppr.wilddata.cn 文献检索,用中文搜 PubMed 一种基于大语言模型的智能搜索引擎构建方法
人工智能·搜索引擎·语言模型
952363 分钟前
并查集 / LRUCache
数据结构·算法
大千AI助手4 分钟前
高维空间中的高效导航者:球树(Ball Tree)算法深度解析
人工智能·算法·机器学习·数据挖掘·大千ai助手·球树·ball-tree
新知图书4 分钟前
使用FastGPT知识库构建智能客服的示例
人工智能·ai agent·智能体·大模型应用开发·大模型应用
豐儀麟阁贵5 分钟前
9.2连接字符串
java·开发语言·算法
生信大表哥7 分钟前
GPT-5-Codex VS Gemini 3 VS Claude Sonnet 4.5 新手小白入门学习教程
人工智能·gpt·学习·rstudio·数信院生信服务器
苏小瀚9 分钟前
[算法]---斐波那契数列模型
算法