在上一次中,咱們是先知道電影的特徵,而後經過算法計算出用戶的特徵。下面咱們來考慮一下能不能知道用戶的特徵,讓算法學習出電影的特徵呢?算法
咱們能夠看到,這個算法與以前的算法是同樣的,只不過傳入的特徵不一樣而已。咱們能夠先隨機地求出一些用戶特徵 θ,用這些特徵計算出電影的特徵 x,經過電影的特徵又能更好地計算出用戶的特徵,不斷迭代... 最終會收斂到一個最優的位置,這時用戶的特徵和電影的特徵被計算出來,這種方法就叫協同過濾(Collaborative filtering)。微信
爲了簡化一下這種方法,不讓它進行屢次來回重複,咱們將它合併成一個代價函數,這個代價函數同時傳入電影特徵 x 和用戶特徵 θ:機器學習
它會同時最小化電影特徵 x 和用戶特徵 θ,雖然這個代價函數看起來很長很複雜,可是仔細分析一下你就會發現,這個代價函數就是把以前的兩個代價函數合併起來了而已。編輯器
如何尋找相關聯的電影呢?好比說,你已經知道該用戶對動做電影感興趣,你向他推薦了一部動做電影,用戶看完以後,若是你還想向他推薦動做電影該如何進行處理呢?一種方法就是計算兩個電影特徵的絕對值,若是絕對值比較小,就表明這兩個電影高度相關,你就能夠把這部電影也推薦給該用戶。函數
最後總結一下協同過濾算法:學習
1.隨機初始化一些用戶特徵 θ 和電影特徵 x;spa
2.運用梯度降低最小化代價函數,獲得最佳的用戶特徵 θ 及電影特徵 x;cdn
3.傳入一個用戶特徵,該算法就能夠根據以前的學習成果向該用戶推薦可能感興趣的電影。blog
ps. 本篇文章是根據吳恩達機器學習課程整理的學習筆記。若是想要一塊兒學習機器學習,能夠關注微信公衆號「SuperFeng」,期待與你的相遇。圖片