【CV】吴恩达机器学习课程笔记第16章
本系列文章如果沒有特殊說明,正文內容均解釋的是文字上方的圖片
機器學習 | Coursera
吳恩達機器學習系列課程_bilibili
目錄
- 16 推薦系統
- 16-1 問題規劃
- 16-2 基于內容的推薦算法
- 16-3 協同過濾
- 16-4 協同過濾算法
- 16-5 向量化:低秩矩陣的分解
- 16-6 實施細節:均值歸一化
16 推薦系統
16-1 問題規劃
以電影評分預測系統為例,機器學習系統需要預測問號處的值來決定向用戶推薦哪部電影
- nun_unu?表示用戶的數量,這里=4
- nmn_mnm?表示電影的數量,這里=5
- r(i,j)r(i,j)r(i,j):如果用戶jjj已經給電影iii進行評分了的話,r(i,j)=1r(i,j)=1r(i,j)=1
- y(i,j)y^{(i, j)}y(i,j)表示用戶jjj給電影iii的評分(僅在r(i,j)=1r(i,j)=1r(i,j)=1時才有定義)
16-2 基于內容的推薦算法
- 用兩個特征x1x_1x1?和x2x_2x2?分別表示一部電影的浪漫片程度和動作片程度,組合成矩陣并加上x0=1x_0=1x0?=1,比如x(1)=[10.90]x^{(1)}=\left[\begin{array}{l} 1 \\ 0.9 \\ 0 \end{array}\right]x(1)=???10.90????,x(i)x^{(i)}x(i)表示的是第iii部電影的特征向量
- 對每一個用戶jjj都學習出一個參數θ(j)∈R3\theta^{(j)} \in \mathbb{R}^{3}θ(j)∈R3,預測出用戶jjj對電影iii的評價星級為(θ(j))Tx(i)\left(\theta^{(j)}\right)^{T} x^{(i)}(θ(j))Tx(i)
得到推薦算法的代價函數為:
12m(j)∑i:r(i,j)=1((θ(j))?(x(i))?y(i,j))2+λ2m(j)?∑k=1n(θk(j))2\frac{1}{2 m^{(j)}} \sum_{i: r(i, j)=1}\left(\left(\theta^{(j)}\right)^{\top}\left(x^{(i)}\right)-y^{(i, j)}\right)^{2}+\frac{\lambda}{2 m^{(j)}} \cdot \sum_{k=1}^{n}\left(\theta_{k}^{(j)}\right)^{2}2m(j)1?i:r(i,j)=1∑?((θ(j))?(x(i))?y(i,j))2+2m(j)λ??k=1∑n?(θk(j)?)2
其中m(j)m^{(j)}m(j)表示用戶jjj評價了的電影數量
∑i:r(i,j)=1\sum_{i: r(i, j)=1}∑i:r(i,j)=1?表示累加所有滿足r(i,j)=1r(i, j)=1r(i,j)=1的項,變化iii
為了簡化計算,一般去掉m(j)m^{(j)}m(j)項,代價函數變為:
12∑i:r(i,j)=1((θ(j))?(x(i))?y(i,j))2+λ2?∑k=1n(θk(j))2\frac{1}{2 } \sum_{i: r(i, j)=1}\left(\left(\theta^{(j)}\right)^{\top}\left(x^{(i)}\right)-y^{(i, j)}\right)^{2}+\frac{\lambda}{2 } \cdot \sum_{k=1}^{n}\left(\theta_{k}^{(j)}\right)^{2}21?i:r(i,j)=1∑?((θ(j))?(x(i))?y(i,j))2+2λ??k=1∑n?(θk(j)?)2
要優化所有用戶的參數,代價函數改為:
J(θ(1),…,θ(nu))=12∑j=1nu∑i:r(i,j)=1((θ(j))Tx(i)?y(i,j))2+λ2∑j=1nu∑k=1n(θk(j))2J\left(\theta^{(1)}, \ldots, \theta^{\left(n_{u}\right)}\right)=\frac{1}{2} \sum_{j=1}^{n_{u}} \sum_{i: r(i, j)=1}\left(\left(\theta^{(j)}\right)^{T} x^{(i)}-y^{(i, j)}\right)^{2}+\frac{\lambda}{2} \sum_{j=1}^{n_{u}} \sum_{k=1}^{n}\left(\theta_{k}^{(j)}\right)^{2}J(θ(1),…,θ(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
梯度下降更新項如上↑
16-3 協同過濾
由于之前的推薦算法的數據集中是給定了每部電影的特征,而一般一部電影的特征是難以判斷的,所以需要協同過濾
來自動學習特征
調查每位用戶對電影類型的喜好得到參數矩陣θ\thetaθ,比如θ(1)=[050]\theta^{(1)}=\left[\begin{array}{l} 0 \\ 5 \\ 0 \end{array}\right]θ(1)=???050????表示的是用戶1對x1x_1x1?表示的浪漫片有5的喜愛,對x2x_2x2?表示的動作片有0的喜愛,矩陣第一項的存在是因為有x0=1x_0=1x0?=1這一項
根據用戶給出的對一類電影的喜愛程度、用戶給出的對電影的評分,就可以計算每一部電影的特征值
通過上圖的代價函數計算出每一部電影的合適的特征
先猜測一組參數θ\thetaθ,然后計算出電影的特征xxx,再根據此特征計算新的參數θ\thetaθ,再計算出電影的特征xxx,這樣不斷循環,最后就能收斂
16-4 協同過濾算法
去掉x0=1x_0=1x0?=1和θ0=1\theta_0=1θ0?=1,讓x∈Rnx \in \mathbb{R}^{n}x∈Rn,θ∈Rn\theta \in \mathbb{R}^{n}θ∈Rn
把求θ\thetaθ和求xxx的兩個代價函數合起來,得到一個新的不需要像上一節一樣循環往復的代價函數:
J(x(1),…,x(nm),θ(1),…,θ(nu))=12∑(i,j):r(i,j)=1((θ(j))Tx(i)?y(i,j))2+λ2∑i=1nm∑k=1n(xk(i))2+λ2∑j=1nu∑k=1n(θk(j))2J\left(x^{(1)}, \ldots, x^{\left(n_{m}\right)}, \theta^{(1)}, \ldots, \theta^{\left(n_{u}\right)}\right)=\frac{1}{2} \sum_{(i, j): r(i, j)=1}\left(\left(\theta^{(j)}\right)^{T} x^{(i)}-y^{(i, j)}\right)^{2}+\frac{\lambda}{2} \sum_{i=1}^{n_{m}} \sum_{k=1}^{n}\left(x_{k}^{(i)}\right)^{2}+\frac{\lambda}{2} \sum_{j=1}^{n_{u}} \sum_{k=1}^{n}\left(\theta_{k}^{(j)}\right)^{2} J(x(1),…,x(nm?),θ(1),…,θ(nu?))=21?(i,j):r(i,j)=1∑?((θ(j))Tx(i)?y(i,j))2+2λ?i=1∑nm??k=1∑n?(xk(i)?)2+2λ?j=1∑nu??k=1∑n?(θk(j)?)2
上圖是協同過濾算法的全過程:
- 初始化xxx和θ\thetaθ為一個很小的值
- 用梯度下降或其他優化算法最小化代價函數
- 得出最后的xxx和θ\thetaθ即可計算某個用戶未評價的電影的可能的評價星級
16-5 向量化:低秩矩陣的分解
首先把上圖的數據表寫成矩陣YYY
矩陣YYY中的每一個元素都是由公式(θ(j))?(x(i))\left(\theta^{(j)}\right)^{\top}\left(x^{(i)}\right)(θ(j))?(x(i))計算得出的
矩陣XXX和矩陣Θ\ThetaΘ由上圖所示的元素組成,所以矩陣YYY可以表示為Y=XΘTY=X \Theta^{T}Y=XΘT
如何找到跟一部電影相似的另一部電影?
- ∥x(i)?x(j)∥\left\|x^{(i)}-x^{(j)}\right\|∥∥?x(i)?x(j)∥∥?越小,表示電影iii和電影jjj越相似
16-6 實施細節:均值歸一化
如果一位用戶沒有對任何一部電影評分,那么會得出預測他對所有電影的評分都為0的荒謬結果,所以需要均值歸一化
如上圖所示,跟上一節相同的矩陣YYY,求每一部電影的評分均值得到矩陣μ\muμ,然后把矩陣YYY中的每一項都減去矩陣μ\muμ中對應的電影的平均值,得到新的矩陣YYY,按照新的矩陣來學習出θ(i)\theta^{(i)}θ(i)和x(i)x^{(i)}x(i),最后在計算某一個未知的評分時需要用公式(θ(j))?(x(i))+μi\left(\theta^{(j)}\right)^{\top}\left(x^{(i)}\right)+\mu_{i}(θ(j))?(x(i))+μi?,(因為之前平均值被減掉了,所以現在要加回去),這樣預測用戶5時得到的結果就不再時0,而是預測的電影的評分平均值
總結
以上是生活随笔為你收集整理的【CV】吴恩达机器学习课程笔记第16章的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个qq网名男生两个字伤感。
- 下一篇: 【CV】吴恩达机器学习课程笔记第17章