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

一、发展动机

为解决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、矩阵分解算法缺点

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

相关推荐
List<String> error_P28 分钟前
蓝桥杯最后几天冲刺:暴力大法(一)
算法·职场和发展·蓝桥杯
小毅&Nora36 分钟前
【人工智能】【大模型】大模型“全家桶”到“精兵简政”:企业AI落地的理性进化之路
人工智能·大模型·平安科技
KaneLogger1 小时前
如何把AI方面的先发优势转化为结构优势
人工智能·程序员·架构
冬奇Lab1 小时前
一天一个开源项目(第67篇):OpenClaw-Admin - AI Agent 网关的可视化管理驾驶舱
人工智能·开源·资讯
飞哥数智坊1 小时前
【大纲】TRAE AI 编程入门第四讲——打破编程界限的智能体
人工智能·ai编程·trae
冬奇Lab1 小时前
5种来自谷歌的Agent Skill设计模式:减少Token浪费,精准触发正确行为
人工智能·agent
飞哥数智坊1 小时前
【大纲】TRAE AI 编程入门第三讲——突破边界的 Rules、Memory、MCP、Skills
人工智能·ai编程·trae
桃地睡不着1 小时前
ai安全工具:CyberStrikeAI安装部署与使用
人工智能·安全·渗透测试
Cosolar1 小时前
大模型工具调用输出JSON:凭什么能保证不出错?
人工智能·面试·llm
zxsz_com_cn1 小时前
设备预测性维护模型构建详解与实例:中讯烛龙如何用“数据+算法”破解故障预测难题
人工智能·深度学习·机器学习