9.1 基于内容的推荐系统-机器学习笔记-斯坦福吴恩达教授
基于內容的推薦系統
推薦系統是機器學習最重要的應用之一,你所知道的淘寶、亞馬遜、facebook、豆瓣這些網站都把推薦系統作為了核心。在某個電影資訊的網站,有那么一份用戶對于電影的打分(1 - 5 分),? 代表用戶沒有評價過該電影:
該網站對于每部電影都給出了兩個評價指數,構成了電影的二維特征向量 xxx :
x1=電影的浪漫指數x_1=電影的浪漫指數x1?=電影的浪漫指數x2=電影的動作指數x_2=電影的動作指數x2?=電影的動作指數
假設用戶 iii 對于每個指數的偏好程度由向量 θ(i)θ^{(i)}θ(i) 所衡量,則我們估計該用戶對電影 jjj 的打分為:
y(i,j)=(θ(i))Tx(i)y^{(i,j)}=(θ^{(i)})^Tx^{(i)}y(i,j)=(θ(i))Tx(i)
這就是基于內容的推薦系統,我們根據商品內容來判斷用戶可能對某個商品的偏好程度,本例中,商品內容就是電影具有的一些指數。我們也知道了,推薦系統中兩個重要的維度:人和物。
另外,我們引入 r(i,j)r(i,j)r(i,j) 表示第 iii 個用戶是否對第 jjj 部電影進行了打分:
r(i,j)={1,用戶i對電影j打過分0,otherwiser(i,j)=\begin{cases}1,用戶\ i\ 對電影\ j\ 打過分\\0,otherwise\end{cases}r(i,j)={1,用戶?i?對電影?j?打過分0,otherwise?
目標優化
為了對用戶 jjj 打分狀況作出最精確的預測,我們需要:
min?θ(j)12∑i:r(i,j)=1((θ(j))T?y(i,j))2+λ2∑k=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θ(j)min?21?i:r(i,j)=1∑?((θ(j))T?y(i,j))2+2λ?k=1∑n?(θk(j)?)2
那么對于所用用戶 1,2,...,nu1,2,...,n_u1,2,...,nu? ,我們就需要:
min?θ(1),θ(2),...,θ(nu)=12∑j=1nu∑i:r(i,j)=1((θ(j))Tx(i)?y(i,j))2+λ2∑j=1nu∑k=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θ(1),θ(2),...,θ(nu?)min?=21?j=1∑nu??i:r(i,j)=1∑?((θ(j))Tx(i)?y(i,j))2+2λ?j=1∑nu??k=1∑n?(θk(j)?)2
代價函數 J(θ(1),θ(2),...,θ(nu))J(\theta^{(1)},\theta^{(2)},...,\theta^{(n_u)})J(θ(1),θ(2),...,θ(nu?)) 就為:
J(θ(1),θ(2),...,θ(nu))=12∑j=1nu∑i:r(i,j)=1((θ(j))Tx(i)?y(i,j))2+λ2∑j=1nu∑k=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)^2J(θ(1),θ(2),...,θ(nu?))=21?j=1∑nu??i:r(i,j)=1∑?((θ(j))Tx(i)?y(i,j))2+2λ?j=1∑nu??k=1∑n?(θk(j)?)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)}θ0(j)?:=θ0(j)??αi:r(i,j)=1∑?((θ(j))Tx(i)?y(i,j))x0(i)?
更新權重:更新權重:更新權重:θk(j):=θk(j)?α(∑i:r(i,j)=1((θ(j))Tx(i)?y(i,j))xk(i)+λθk(j)),k≠0\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θk(j)?:=θk(j)??α(i:r(i,j)=1∑?((θ(j))Tx(i)?y(i,j))xk(i)?+λθk(j)?),k?=0
總結
以上是生活随笔為你收集整理的9.1 基于内容的推荐系统-机器学习笔记-斯坦福吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8.7 程序示例--异常检测-机器学习笔
- 下一篇: 9.2 协同过滤-机器学习笔记-斯坦福吴