日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

ng机器学习视频笔记(十四) ——推荐系统基础理论

發布時間:2024/4/17 windows 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ng机器学习视频笔记(十四) ——推荐系统基础理论 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ng機器學習視頻筆記(十三)

——推薦系統基礎理論

?

(轉載請附上本文鏈接——linhxx)

?

一、概述

???????? 推薦系統(recommender system),作為機器學習的應用之一,在各大app中都有應用。這里以用戶評價電影、電影推薦為例,講述推薦系統。

???????? 最簡單的理解方式,即假設有兩類電影,一類是愛情片,一類是動作片,愛情片3部,動作片2部,共有四個用戶參與打分,分值在0~5分。

???????? 但是用戶并沒有對所有的電影打分,如下圖所示,問號表示用戶未打分的電影。另外,為了方便講述,本文用nu代表用戶數量,nm代表電影數量,r(i,j)=1表示用戶j給電影i評價,y(i,j)表示用戶j給電影i的打分(當r(i,j)=1時這里的值才有效)。

????????

?

???????? 前三部是愛情片,用戶Alice給前兩部愛情片都5分,根據直接判斷,其打5分的概率很高。

???????? 下面首先就要解決用機器學習來預測打分的問題,進而討論電影的相關性問題。

?

二、基于內容的推薦系統

1、簡要描述

???????? 還是上面的幾個人和幾個電影,現假設已知每部電影的愛情屬性和動作屬性,分別用x1和x2表示每部電影的這兩個特征值,加上x0=1,則該場景變為線性回歸場景。即需要預測出用戶對每種類型電影的喜好程度矩陣θ,進而在已知某種用戶未打分的電影的特征x的情況下,用θTx預測用戶可能給該電影打分的分值。

???????? 下圖假設已求出用戶的θ=[0 5 0]T,第一個數0對應x0沒有實際意義,第二個數5表示用戶對愛情片的喜歡程度,第三個數0表示用戶對動作片的喜好程度。則可以預測出,該用戶對第三部電影的打分,可能4.95。如下圖所示:

?

?

2、計算單個用戶的θ

???????? 列出類型線性回歸的代價函數,但是在推薦系統中,有一些和線性回歸的代價函數不太一樣的地方:

???????? 1)求和的時候,只計算用戶已經打過分的電影,忽略未打分的電影。未打分的無法參與計算。

2)不需要除以用戶已打過分的電影的數目。這里是常量,忽略對結果影響不大。

?

?

3、計算所有用戶的θ

???????? 每個用戶去計算,要列很多公式,比較繁瑣,這里可以把公式合并,一次性求出所有的用戶對應的θ,即在代價函數的地方,累加上所有用戶,同時正則化項也需要累加。

?

?

???????? 接著,就用梯度下降算法,進行計算。

?

?

???????? 這部分內容和線性回歸完全一致,區別只有代價函數的列式不太一樣,梯度下降部分完全一致。

???????? 這里基于內容的推薦,可以認為給定樣本的特征x,求θ的過程。

?

三、基于用戶評論的預測

???????? 現在考慮到,由于現實中并不一定會給每個電影都有特征標簽,并且特征的數量可能非常多,但是考慮到已經有很多用戶已經打分,現在反求每個電影的特征。

???????? 這里可以理解為給定用戶對不同特征的喜好程度θ,求樣本的特征的過程。如下圖所示:

?

?

???????? 實際求解過程也很簡單,只要把x當作變量,θ當作已知值,反過來列代價函數,進而再用梯度下降求出x即可。

?

?

?

四、協同過濾算法

???????? 上面的兩個問題,有點像雞生蛋還是蛋生雞的問題,可以看出x和θ,只要知道一個內容,就可以求出另一個內容。進而,可以用求出的內容,反過來再優化原來的內容。相當于可以形成一個θ->x->θ->x……的鏈。

???????? 這里,首先由用戶對電影評分,因此可以認為多個用戶對電影的評分,致使計算出電影的特征,而特征又反過來進一步優化對用戶評分的預測。

???????? 對于公式上,考慮將兩個公式整合成一個,再分別對θ和x求偏導數,進行梯度下降,則可以得到θ和x。

???????? 這樣的計算方式,則成為協同過濾算法(collaborative filtering algorithm)。

???????? 公式如下:

?

?

五、向量化實現

???????? 現在回到一開始的問題,怎么判斷兩個電影是否類型相似,進而給用戶推薦相似類型的電影。

???????? 前提條件還是之前的,知道部分用戶對電影的打分,未知電影的類型,如下圖所示:

?

? ? ? ? ?此時,可以用到向量化實現技術(vectorization implementation),簡單來說,即用上面的協同過濾計算出x和θ后,將x和θ都表示成矩陣,并且用xθT得到預測矩陣,可以預測出每個用戶對每種電影的打分,以及預測出電影的特征,矩陣如下圖所示:

?

?

???????? 這個稱為低秩矩陣分解(low rank matrix factorization)。

???????? 此時,要判斷兩個電影是否相似,則很簡單,只要計算電影i和電影j對應的特征矩陣的距離||x(i)-x(j)||,當這個值越小,則表示這兩部電影越相似。

?

六、均值歸一化

1、現有問題

???????? 現考慮一個問題,當來了一個新用戶,他沒有對任何電影打分。此時如果用協同過濾算法,由于其沒有任何的打分,則代價函數中,會只剩下θ平方和正則化項,另外兩項都會為0。

???????? 因此,當需要對θ進行代價函數最小化求解,會得到θ=0時代價函數最小(顯然的事情),結果就是會預測出用戶對所有電影的評分都是0分。這個有違常理。

?

?

2、解決問題

???????? 為了解決問題,引入均值歸一化(mean normalization),步驟如下:

???????? 1)設矩陣Y表示所有用戶對所有電影的打分,為打分的電影用?表示。

???????? 2)在已打分的電影中,計算每個電影的分數均值。計算方式即打分的總數除以打分的總人數。設 這個矩陣為μ。

???????? 3)令Y=Y-μ,得到一個新的矩陣,其中?部分仍為?。

???????? 4)用這個新的Y去進行協同過濾算法,求出x和θ。

???????? 5)此時對于某個用戶,可以預測結果是(θ(j))Tx(i)(i),要加上對應的μ,是因為一開始扣除了μ。

?

?

???????? 根據上述的計算,得出的新用戶的預測結果,會是均值。這個可以簡單的推出,因為結果是(θ(j))Tx(i)(i),而顯然(θ(j))Tx(i)=0(因為這個用戶之前沒有任何預測,θ=0),故只會剩下μ值。

???????? 這樣,對于每一個新用戶,在還沒進行評價之前,會預測其對每個電影的評價是均值,這也就表示給新用戶推薦電影時,會按均值,把均值較高的電影推薦給用戶,這個比較符合常理。

?

七、總結

???????? 這里的推薦系統,可以算是一個引子,只介紹了推薦系統的一些基礎思想,對于真正完整的推薦系統,還有需要內容等待探索。后續我也會繼續這方面的學習。

?

——written by linhxx

?

更多最新文章,歡迎關注微信公眾號“決勝機器學習”,或掃描右邊二維碼。

轉載于:https://www.cnblogs.com/linhxx/p/8412836.html

總結

以上是生活随笔為你收集整理的ng机器学习视频笔记(十四) ——推荐系统基础理论的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。