核心要点
UserCF:找行为相似的用户,把他们喜欢的物品推给你
ItemCF:找与你历史交互物品相似的物品(工业界更常用,物品相似度更稳定)
矩阵分解(MF):把用户-物品评分矩阵分解为用户隐向量与物品隐向量,用点积预测偏好
通用难点:冷启动(新用户/新物品无行为)与数据稀疏
标准回答
基于邻域的协同过滤
- UserCF:计算用户间相似度(如余弦、皮尔逊),用相似用户的偏好加权预测目标用户对物品的兴趣。适合用户兴趣稳定、物品更新快的场景。
- ItemCF:计算物品间相似度(共现/被同一批用户喜欢),推荐与用户历史物品相似的物品。物品相似度比用户相似度更稳定、可离线预计算,工业界更常用。
矩阵分解(MF):把稀疏的用户-物品交互矩阵 R 近似分解为 R ≈ P·Qᵀ,P 是用户隐向量、Q 是物品隐向量,预测评分为两向量点积 p_u·q_i。通过最小化已知评分上的误差(加正则)用 SGD/ALS 学习。MF 把高维稀疏共现压缩为低维稠密向量,泛化能力强于纯邻域法。
核心挑战:冷启动(新用户/新物品缺交互无法算相似或隐向量)、稀疏性(大部分用户-物品对无交互)。常用边信息(画像、内容特征)或多路召回缓解。
常见误区
⚠️ 常见踩坑
UserCF 与 ItemCF 不是「谁先算」的区别,而是相似度对象不同;ItemCF 更常用是因为物品数相对稳定、相似度可离线预存,而非精度一定更高。
追问
追问 1:为什么工业界 ItemCF 比 UserCF 更常用?
物品数量相对稳定、物品相似度变化慢,可离线预计算并缓存;而用户量大、兴趣多变,UserCF 实时维护相似用户成本高。此外 ItemCF 推荐结果可解释(「因为你看过 X」)。
追问 2:矩阵分解相比邻域法的优势是什么?
MF 将共现信息压缩到低维隐空间,能挖掘出邻域法看不到的隐式关联,对稀疏矩阵泛化更好,且隐向量可直接做向量召回。邻域法依赖显式共现,稀疏时相似度估计不准。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。