9.1 基于内容的推荐系统-机器学习笔记-斯坦福吴恩达教授

基于内容的推荐系统

推荐系统是机器学习最重要的应用之一,你所知道的淘宝、亚马逊、facebook、豆瓣这些网站都把推荐系统作为了核心。在某个电影资讯的网站,有那么一份用户对于电影的打分(1 - 5 分),? 代表用户没有评价过该电影:
9.1 基于内容的推荐系统-机器学习笔记-斯坦福吴恩达教授
该网站对于每部电影都给出了两个评价指数,构成了电影的二维特征向量 xx

x1=x_1=电影的浪漫指数x2=x_2=电影的动作指数

9.1 基于内容的推荐系统-机器学习笔记-斯坦福吴恩达教授
假设用户 ii 对于每个指数的偏好程度由向量 θ(i)θ^{(i)} 所衡量,则我们估计该用户对电影 jj 的打分为:

y(i,j)=(θ(i))Tx(i)y^{(i,j)}=(θ^{(i)})^Tx^{(i)}

这就是基于内容的推荐系统,我们根据商品内容来判断用户可能对某个商品的偏好程度,本例中,商品内容就是电影具有的一些指数。我们也知道了,推荐系统中两个重要的维度:

另外,我们引入 r(i,j)r(i,j) 表示第 ii 个用户是否对第 jj 部电影进行了打分:
r(i,j)={1 i  j 0otherwiser(i,j)=\begin{cases}1,用户\ i\ 对电影\ j\ 打过分\\0,otherwise\end{cases}

目标优化

为了对用户 jj 打分状况作出最精确的预测,我们需要:

minθ(j)12i:r(i,j)=1((θ(j))Ty(i,j))2+λ2k=1n(θk(j))2\min_{\theta^{(j)}} \frac12 \sum_{i:r(i,j)=1} ((\theta^{(j)})^T-y^{(i,j)})^2 + \frac \lambda 2 \sum_{k=1}^n(\theta^{(j)}_k)^2

那么对于所用用户 1,2,...,nu1,2,...,n_u ,我们就需要:

minθ(1),θ(2),...,θ(nu)=12j=1nui:r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2j=1nuk=1n(θk(j))2\min_{\theta^{(1)},\theta^{(2)},...,\theta^{(n_u)}}= \frac12 \sum_{j=1}^{n_u} \sum_{i:r(i,j)=1} ((\theta^{(j)})^Tx^{(i)}-y^{(i,j)})^2 + \frac \lambda 2 \sum_{j=1}^{n_u} \sum_{k=1}^n(\theta^{(j)}_k)^2

代价函数 J(θ(1),θ(2),...,θ(nu))J(\theta^{(1)},\theta^{(2)},...,\theta^{(n_u)}) 就为:

J(θ(1),θ(2),...,θ(nu))=12j=1nui:r(i,j)=1((θ(j))Tx(i)y(i,j))2+λ2j=1nuk=1n(θk(j))2J(\theta^{(1)},\theta^{(2)},...,\theta^{(n_u)}) = \frac12 \sum_{j=1}^{n_u} \sum_{i:r(i,j)=1} ((\theta^{(j)})^Tx^{(i)}-y^{(i,j)})^2 + \frac \lambda 2 \sum_{j=1}^{n_u} \sum_{k=1}^n(\theta^{(j)}_k)^2

参数更新

我们使用梯度下降法来更新参数:

更新偏置(插值):θ0(j):=θ0(j)αi:r(i,j)=1((θ(j))Tx(i)y(i,j))x0(i) \theta_0^{(j)}:=\theta_0^{(j)} - \alpha \sum_{i:r(i,j)=1} ((\theta^{(j)})^Tx^{(i)}-y^{(i,j)})x_0^{(i)}

更新权重:θk(j):=θk(j)α(i:r(i,j)=1((θ(j))Tx(i)y(i,j))xk(i)+λθk(j)),k0 \theta_k^{(j)}:=\theta_k^{(j)} - \alpha (\sum_{i:r(i,j)=1} ((\theta^{(j)})^Tx^{(i)}-y^{(i,j)})x_k^{(i)} + \lambda\theta_k^{(j)}),\quad\quad k\ne0