matlab 低秩矩阵分解,14.4 向量化:低秩矩阵分解

这篇博客探讨了如何使用低秩矩阵分解方法处理用户对电影的评分数据。通过将稀疏的评分矩阵转化为内容矩阵`X`和用户偏好矩阵`Θ`,并进行矩阵乘法得到预测评分,从而实现推荐系统的参数获取。这种方法既方便编程,又节省内存,是推荐系统中的关键技术。
摘要由CSDN通过智能技术生成

将用户对电影的评分表格:

| Movie/User | Alice\(1\) | Bob\(2\) | Carol\(3\) | Dave\(4\) |

| :---: | :---: | :---: | :---: | :---: |

| Love at last | 5 | 5 | 0 | 0 |

| Romance for ever | 5 | ? | ? | 0 |

| Cute puppies of love | ? | 4 | 0 | ? |

| Nonstop car chases | 0 | 0 | 5 | 4 |

| Swords vs. karate | 0 | 0 | 5 | ? |

* * * * *

用矩阵表示:

```[math]

Y =

\begin{bmatrix}

5 & 5 & 0 & 0 \\

5 & ? & ? & 0 \\

? & 4 & 0 & ? \\

0 & 0 & 5 & 4 \\

0 & 0 & 5 & 0

\end{bmatrix}

```

* * * * *

用预测来描述这个矩阵:

```[math]

Predicated =

\begin{bmatrix}

(\theta^{(1)})^T x^{(1)} & (\theta^{(2)})^T x^{(1)} & \cdots & (\theta^{(n_u)})^T x^{(1)} \\

(\theta^{(1)})^T x^{(2)} & (\theta^{(2)})^T x^{(2)} & \cdots & (\theta^{(n_u)})^T x^{(2)} \\

\vdots & \vdots & \vdots & \vdots \\

(\theta^{(1)})^T x^{(n_m)} & (\theta^{(2)})^T x^{(n_m)} & \cdots & (\theta^{(n_u)})^T x^{(n_m)}

\end{bmatrix}

```

* * * * *

令:

```[math]

X =

\begin{bmatrix}

(x^{(1)})^T \\

(x^{(2)})^T \\

\vdots \\

(x^{(n_m)})^T

\end{bmatrix},

\Theta =

\begin{bmatrix}

(\theta^{(1)})^T \\

(\theta^{(2)})^T \\

\vdots \\

(\theta^{(n_u)})^T

\end{bmatrix}

```

* * * * *

即`$ X $`的每一行描述了一部电影的内容,`$ \theta^T $`的每一列描述了用户对于电影内容偏好程度,亦即,将原来稀疏的矩阵分解为了`$ X $`和

`$ \theta $`。现在预测可以写为:

```[math]

Predicated = X \Theta^T

```

* * * * *

用这个方法求取`$ X $`和`$ \theta $`,获得推荐系统需要的参数,称之为**低秩矩阵分解**,该方法不仅能在编程时直接通过向量化的手法获得参

数,还通过矩阵分解节省了内存空间

* * * * *

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值