我通过将矩阵分解为两个矩阵然后使用梯度下降来最小化误差来估计用户项目矩阵中的P
评级Q
。现在,如果我想添加一个新用户,最明显的解决方案是重新训练模型。但是,即使步骤很少,这也需要很多时间。
奇异值分解允许通过计算轻松添加新用户:
user_k = Sigma^(-1) * Ut * user
矩阵分解有类似的东西吗?可以在不重新计算所有内容的情况下添加新用户吗?
我通过将矩阵分解为两个矩阵然后使用梯度下降来最小化误差来估计用户项目矩阵中的P
评级Q
。现在,如果我想添加一个新用户,最明显的解决方案是重新训练模型。但是,即使步骤很少,这也需要很多时间。
奇异值分解允许通过计算轻松添加新用户:
user_k = Sigma^(-1) * Ut * user
矩阵分解有类似的东西吗?可以在不重新计算所有内容的情况下添加新用户吗?
由于您的训练矩阵分解采用梯度下降,我假设您有一些损失函数,其中是 Frobenius 范数的平方或类似的东西。
当您添加一个新用户时(假设的行对应于用户,并且是新用户的行,因此 ' 是并连接)您的目标变为 并且如果您的损失是可以通过对行求和来计算的东西,。
如果您已经训练了以使最小化,那么您可以猜测。
如果您想合并新用户,但不重新计算所有内容,您可以优化并固定或更改