用户对项目的评分矩阵,可以转化为一个用户因子矩阵和项目因子矩阵
分解时,中间是有一个特征数量d的。
比如我们把我们的项目定义为更适合男性观看还是女性观看这样的特征。
同样我们的用户也是分为男性跟女性的。
又比如说我们的电影是分为喜剧,恐怖片等。
而我们的用户又可以分为喜欢喜剧还是恐怖片等,这些都可以作为因子。
然后用用户因子矩阵点乘项目因子矩阵,就可以逼近我们的评分矩阵。
用隐式因子分解-隐语义模型的条件:
用户和物品之间的相关度,能通过一个低维线性模型来解释。
那么怎么求用户的隐因子矩阵和项目的隐因子矩阵呢?
也就是求近似评分矩阵的低秩矩阵,我们有两种办法(构造模型参数进行学习)
1,梯度下降算法,分别对这两个矩阵求偏导,然后求解
2,交叉最小二乘法(ALS),首先固定我们的user矩阵,然后求解我们的user矩阵,然后再固定我们的item矩阵,然后求解我们的user矩阵,不断进行迭代,知道我们的算法收敛。