看了《深度学习推荐系统》这本书里的矩阵分解算法,来总结一下。
1 矩阵分解核心思想
1.1 模型构建
假设我们有如下所示的评分矩阵,ABCD是用户,WXYZ是物品。我们将这个矩阵称为共现矩阵。
W | X | Y | Z | |
---|---|---|---|---|
A | 4.5 | 2.0 | ||
B | 4.0 | 3.5 | ||
C | 5.0 | 2.0 | ||
D | 3.5 | 4.0 | 1.0 |
把共现矩阵分解为两个矩阵相乘的形式,一个是用户矩阵,一个是物品矩阵,如下所示。
用户矩阵:
A | 1.2 | 0.8 |
---|---|---|
B | .1.4 | |
C | 1.5 | 1.0 |
D | 1.2 | 0.8 |
物品矩阵:
W | X | Y | Z |
---|---|---|---|
1.5 | 1.2 | 1.0 | 0.8 |
1.7 | 0.6 | 1.1 | 0.4 |
用户矩阵 X 物品矩阵 = 共现矩阵
将共现矩阵分解为用户矩阵和物品矩阵,并且最大程度保证用户矩阵 X 物品矩阵 = 共现矩阵就是模型构建的全过程和难点
1.2 评分预测
用户向量X物品向量的转置,会得到一个实数,这个实数就是预测的评分。
例如:预测A对W的评分,就是(1.2,0.8)X(1.5,1.7)
因此,矩阵分解可以为所有用户对所有物品进行评分预测,拥有较好的泛化能力。
2 矩阵分解过程
2.1 基本目标函数
目标分解的目标函数如下所示: