這裡以電影推薦的栗子來說明什麼是推薦系統。nu
代表使用者的數量 nm
代表電影的數量
r(i,j) 如果使用者給電影評過分,則r(i,j)=1 y(
ij)代表使用者i給電影j的評分 mj
代表使用者j評過分的電影總數 θ(
j)代表使用者j的引數向量 x(
i)代表電影i的特徵向量
如圖所示,推薦系統能夠幫我們自動地填上這些缺失的數值,然後向使用者推薦新的他可能感興趣電影 。
1、基於內容的的推薦(給定 x 求 θ 或者給定 θ 求 x)
對每個使用者使用不同的線性回歸模型進行擬合,並**使用者對其餘電影的評價。對於使用者 j 和電影 i,我們**評分為: (θ
(j))
tx(i
) (1)已知電影特徵 x 求使用者的引數 θ
優化目標為:
minθ1,其中,i:r(i,j) 表示只計算評過分的電影。…,θn
uminθ1
,…,θ
nu12
∑nuj
=1∑i
:r(i
,j)=
1((θ
(j))
tx(i
)−y(
i,j)
)2+λ
2∑nu
j=1∑
nk=1
(θ(j
)k)2
如果用梯度下降法來求解最優解,梯度下降的迭代更新公式為:
θ((2)已知使用者的引數 θ 求電影特徵 xj)0:=
θ(j)
0−α∑
i:r(
i,j)
=1((
θ(j)
)tx(
i)−y
(i,j
))x(
i)0
θ(j)
k:=θ(
j)k−
α(∑i
:r(i
,j)=
1((θ
(j))
tx(i
)−y(
i,j)
)x(i
)k+λ
⋅θ(j
)k)
優化目標為:
minx1,2、協同過濾如果我們既沒有使用者的引數,也沒有電影的特徵,這兩種方法都不可行了,協同過濾演算法可以同時學習這兩者。…,xn
mminx1
,…,x
nm12
∑nmj
=1∑i
:r(i
,j)=
1((θ
(j))
tx(i
)−y(
i,j)
)2+λ
2∑nm
j=1∑
nk=1
(x(j
)k)2
代價函式優化為:
j(使用梯度下降的迭代更新公式為:x(1)
,…,x
(nm)
,θ1,
…,θn
u)=1
2∑i:
r(i,
j)=1
((θ(
j))t
x(i)
−y(i
,j))
2+λ2
∑nmj
=1∑n
k=1(
x(j)
k)2+
λ2∑n
uj=1
∑nk=
1(θ(
j)k)
2
x(可以通過反覆使用兩個迭代更新公式,先求最小化的 x,再求最小化的 θ ,再求最小化的 x …的方法達到乙個很不錯的值。i)k:=
x(i)
k−α(
∑i:r
(i,j
)=1(
(θ(j
))tx
(i)−
y(i,
j))θ
(i)k
+λx(
j)k)
θ(j)k
:=θ(j
)k−α
(∑i:
r(i,
j)=1
((θ(
j))t
x(i)
−y(i
,j))
x(i)
k+λθ
(j)k
)
首先是隨機初始化,給 x(
1),…
,x(n
m),θ
1,…,
θnu 賦一些隨機小值,其次是最小化代價函式,得到最優的 x 和 θ(一般使用梯度下降法),最後根據得到的引數,**使用者j給電影i的評分( (θ
(j))
tx(i
) )。
3、均值歸一化
如果存在新使用者,沒有為任何電影評分,如何為其推薦電影呢?這裡的解決辦法是對要對每個電影的得分平均化,使每個電影的得分被歸一化到0,最後每個電影的得分為用實際得分減去平均得分。
對於新使用者,我們會認為他給每個電影的評分都是平均分,即0分。使用新得到的y矩陣來訓練演算法,最後**的評分應該為 (θ
(j))
tx(i
)+μi
斯坦福機器學習筆記五
有時候發現訓練出來的模型誤差很大,會有很多解決辦法。例如 增加更多的訓練樣本,減少特徵數目,增加特徵數目,增加多項式特徵,減小或增大正則化引數 的值 但是這些嘗試往往會浪費很多時間,所有這裡提出了一種機器學習診斷法。1 資料的分配 將資料分為三部分,訓練集 60 交叉驗證集 20 和測試集 20 利...
斯坦福機器學習筆記十二
由於大規模資料集求最優解,計算量非常大,對於這樣的問題,如果能夠將資料集分配給多台計算機,讓每台計算機處理資料集的乙個子集,然後將計算結果彙總再求和,這樣的方法叫做對映簡化。如果任何學習演算法能夠表達為,對訓練集的函式求和,那麼就能將這個任務分配給多台 計算機 或者同一臺計算機的不同cpu核心 以達...
斯坦福機器學習筆記 1
邏輯回歸與線性回歸 線性回歸主要應用於連續性的模型,邏輯回歸主要用於解決分類問題,的結果通常是非0即1。今天的課程主要 的是如何預防過擬合。主要有兩種方法 1 減少特徵數目 通過在cost function後加一些額外的term,來減少某些個別特徵的權重 2 regularization 正則化 減...