全球旧事资料 分类
以使用者为基础(Userbased)的协同过滤和以项目为基础(Itembased)的协同过滤统称为以记忆为基础(Memorybased)的协同过滤技术,他们共有的缺点是资料稀疏,难以处理大数据量下的即时结果,因此发展出以模型为基础的协同过滤技术。以模型为基础的协同过滤ModelbasedCollaborativeFilteri
g是先用历史资料得到一个模型,再用此模型进行预测。以模型为基础的协同过滤广泛使用的技术包括Late
tSema
ticI
dexi
g、Bayesia
Networks…等,根据对一个样本的分析得到模型。这里说说svd分解。svd是将一个任意实矩阵分解为三个矩阵USV,其中,UV是两个正交矩阵,称为左右奇异矩阵,S是个对角阵,称为奇异值矩阵。其实svd分解的问题可以化解为特征值分解的问题。评分矩阵Am
UmkSkkVk
令BmmAm
A
mB矩阵就是一个方阵,可以利用各种简单的方法将B进行特征值分解:Bvav,v是方阵B的特征向量,a是特征向量v对应的特征值。所以奇异值ssqrta,左奇异向量uAvs同样的方法可以求得右奇异向量。这样我们就得到了svd分解后的三个矩阵。(你可以自己写个c程序计算,当然也可以用matlab算算得到)分解后的三个矩阵都有着各自的意义,U:每一行表示一个user的特征。V:每一列表示一个item的特征。S:表示对应的user和item的相关性。所以可以考虑用U和V将S吸收进来,形成两个矩阵分别表示user的矩阵和item的矩阵。这种方法有着矩阵分解算法的表,却可以非常简单地完成矩阵的分解,然后填充稀疏的评分矩阵。但它考虑的因素太少了,不过对于简单的推荐系统,这种方法还是非常有意义的,容易实现,而且结果也不会太差。矩阵分解算法的数学理论基础是矩阵的行列变换。在《线性代数》中,我们知道矩阵A进行行变换相当于A左乘一个矩阵,矩阵A进行列变换等价于矩阵A右乘一个矩阵,因此矩阵A可以表示为APEQPQ(E是标准阵)。
f矩阵分解目标就是把用户项目评分矩阵R分解成用户因子矩阵和项目因子矩阵乘的形式,即RUV,这里R是
×m,
6,m7,U是
×k,V是k×m。直观地表示如下:
首先依据历史数据矩阵初始化用户因子矩阵和项目因子矩阵其次迭代更新因子矩阵将迭代结果置于内存中作为下次迭代的输入最后迭代结束时得到矩阵推荐模型
ALS是交替最小二乘(alter
ati
gleastsquares)的简称。在机器学习的上下文中,ALS特指使用交替最小二乘求解的一个协同推荐算法。它通过观察到的所有用户给产品的打分,来推断每个用户的喜好并向用户推荐适合的产品。举个r
好听全球资料 返回顶部