10 | 那些在Netflix Prize中大放异彩的推荐算法
该思维导图由 AI 生成,仅供参考
缘起
矩阵分解
为什么要矩阵分解
1 基础的 SVD 算法
- 深入了解
- 翻译
- 解释
- 总结
Netflix Prize中的推荐算法SVD在推荐系统领域取得了巨大成功。该算法通过矩阵分解解决了评分预测问题,将原始评分矩阵近似分解为两个小矩阵的乘积,得到用户和物品的隐向量。SVD算法的核心在于损失函数的定义和优化算法的选择,通过梯度下降等优化算法对隐向量进行学习和更新,最终得到分解后的矩阵,即用户和物品的隐向量,用于推荐计算。 在SVD算法的基础上,出现了多种改进方案。首先是考虑偏置信息的SVD变种,将用户和物品的评分偏置纳入模型,进一步提高了预测准确性。其次是SVD++,结合用户的隐式反馈行为和属性,进一步完善了模型。最后是考虑时间因素,对评分按照时间加权或划分区间,以适应用户的善变特点。 这些改进方案使SVD算法在Netflix Prize比赛中取得了骄人成绩,成为推荐系统领域的经典算法之一。其优势在于解决了近邻模型存在的相关性和稀疏性问题,提高了推荐的准确性和稳定性。这些技术特点使得SVD算法及其改进方案成为推荐系统领域的重要研究方向,为推荐系统的发展提供了重要的启示和借鉴。 总之,SVD算法及其改进方案在推荐系统领域具有重要意义,为解决评分预测问题提供了有效的技术手段,同时也为推荐系统的发展指明了方向。
《推荐系统三十六式》,新⼈⾸单¥59
全部留言(33)
- 最新
- 精选
- Dan請問老師隱性因子k的個數通常如何決定?
作者回复: 用K-fold确定。
2018-04-0411 - 戏入蝶衣在最基础的svd模型里,如果不添加用户和物品的评分bias,会有什么影响?
作者回复: 一般实际工作中也常常不分离出bias。
2019-05-073 - 愚公移山老师,在SVD++分解中,用户的隐式反馈数据和用户属于是怎样加入到用户物品评分矩阵中的呢?损失函数应该需要这部分数据做监督训练的
作者回复: 就是认为每个隐式反馈对象和每个属性都是一个特征,都对应一个隐因子向量。也就是公式中的xi和ya。
2018-03-272 - 185根据我的理解,损失函数对行为数据是有用的,例如购买物品的数量、观看或者收听的时长、每天打开app的次数等都是和评分类似的数据。 我理解的对吗?
作者回复: 可以这样处理,但又略有不同,下一篇会讲。
2018-03-262 - nebula请问SVD分解,针对新用户、新物品,怎么做更新呢
作者回复: SGD(随机梯度下降)本身就是可以在线更新的。
2018-10-251 - Skye老师,我想问一下,SVD++对于隐式反馈数据,损失函数拟合的rui值是0吗?还有用户行为向量x和用户属性y这个迭代初始值是什么,加上这两个向量,可是损失函数拟合的还是评分,这两个向量好像有点捉摸不透,意义在哪,能否细讲一下
作者回复: 其实就是,每个隐式反馈对象ID都是特征,这些特征背后都有一个k维的隐因子向量。所有这些隐因子向量都是未知参数,同等地位被优化,所以都是随机初始化。
2018-03-261 - leoplodchang老师你好,我想请问下,在假如历史行为的那个章节中,你给出了r的公式,那么损失函数的公式是什么样的呢?直接将r套入么?损失函数的后一部分是什么样的呢?
作者回复: 是的。损失函数还是均方根误差。
2018-10-15 - Skye行为次数可以作为评分,使用损失函数,但是基础的SVD模型缺少负样本,用户没有行为的记录不作为样本计算在内,在隐式反馈场景应该不行。SVD++加入了隐式反馈信息,在这个场景效果就好了。老师,这样理解对吗?
作者回复: 不对。这里讲的全是评分预测,所以没有负样本。
2018-03-26 - jt120行为和评分,只是y不同,公式一样
作者回复: 后面两篇会讲。
2018-03-26 - 写点啥呢请问老师,前面提到的SVD后利用有监督机器学习来得到用户和物品的隐因子向量,那么训练样本是如何获取的呢?有一点疑惑,训练样本已经是用户和物品之间的关系反应,还需要做机器学习么?
作者回复: 训练样本是一部分用户对一部分物品的关系,要预测的是那部分还没有关系的。
2018-03-26