機器學習技法15: 矩陣分解(Matrix Factorization)



上節課介紹了徑向基函數網絡(RBFNet),它實際上是以距離計算相似性的線性融合模型。通過k-Means聚類算法來找到具有代表性的中心點,從而使用RBFNet進一步計算距離。本節課介紹矩陣分解(Matrix Factorization)。

15.1 Linear Network Hypothesis

首先回顧在機器學習基石課程第一節所學:
在這裏插入圖片描述
機器學習的目標是從輸入數據中學習映射關係。並且還舉了網飛的電影評分預測的例子。假設有類似的數據集,只有抽象的特徵和歷史評分,如何讓算法從中學習到用戶的喜好,從而準確預測評分。首先看一下特徵的編碼:
在這裏插入圖片描述
多類別特徵例如ID,血型,編程語言等等;大多數機器學習模型只能處理數值特徵,像線性模型,神經網絡;有個例外是決策樹,可以處理任意特徵,不限於數值特徵。所以在大多數情況下,尤其是深度神經網絡盛行的今天,需要將多特徵轉換爲數字編碼,也就是熟悉的one-hot編碼,也叫作啞變量(dummies)。例如四個類別的one-hot編碼:
在這裏插入圖片描述
接下來看一下神經網絡如何從編碼向量中提取特徵:
在這裏插入圖片描述
對於數據集 DmD_m ,其中包含 nn 個用戶對 mm 步電影的評分。首先對用戶 xnx_n 編碼成one-hot編碼,其對應的期望輸出值爲一個向量 yny_n ,各元素一次對應該用戶 xnx_nmm 步電影的評分 rnmr_{nm},該用戶沒有評過的電影標記爲 “?” 。

如果用神經網絡從這個數據集中提取特徵(爲了簡化計算,不考慮偏差 x0x_0),該模型的網絡結構是 Nd~MN-\tilde{d}-M,其中,NN 表示輸入層樣本個數, d~\tilde{d} 表示隱藏層神經元個數,MM 表示輸出層電影評分個數。輸入數據 (xn,yn)(x_n, y_n),輸出該用戶 xnx_n 對各部電影的預測評分 y1,y2,...,ymy_1,y_2,...,y_m

由於輸入數據是經過編碼的數據,只有一個元素爲1,其餘爲0,也就是說每次只有一個權重向量 wniw_{ni} 與樣本的乘積進入隱藏層神經元進行激活,從效果上來說,激活函數選擇 tanh()tanh() 與選擇 Identity()Identity() 無異,所以可以使用 Identity()Identity() 激活函數。替換之後得到:
在這裏插入圖片描述
修改之後,重新做一些約定:

  • 將兩層權重分別記爲 N×d~N \times \tilde{d}VTV^Td~×M\tilde{d} \times MWW
  • 假設函數 h(x)=WTVxh(x) = W^TVx,其中 xxN×1N \times 1 的列向量,VVd~×N\tilde{d} \times N 的矩陣,WTW^TM×d~M \times \tilde{d} 的矩陣;
  • 每位用戶的評分預測輸出爲 h(xn)=WTvnh(x_n) = W^Tv_nvnv_n 是矩陣 VV 的第 nn 列元素,其尺寸爲 d~×1\tilde{d} \times 1

習題1:
在這裏插入圖片描述


15.2 Basic Matrix Factorization

上一小節介紹了神經網絡模型和假設函數,其中 VxVx 可以看做對用戶的特徵轉換 Φ(x)\Phi(x) ,對於第 mm 部電影,其預測評分爲:
在這裏插入圖片描述
使用平方誤差衡量,其誤差函數 EinE_{in} 爲:
在這裏插入圖片描述
線性網絡本質上是從所有 DmD_m 中學習變換和組合的線性模型。接下來要求出最小化 EinE_{in} 時對應的 VVWW。模型的目標是要讓真實評分和預測評分儘可能相同,即 rnmwmTvn=vnTwmr_{nm} \approx w^T_mv_n = v^T_nw_m,記爲 RVTWR \approx V^TW,這種方式稱爲矩陣分解(Matrix Factorization),矩陣 RR 表示用戶對各電影的評分矩陣。
在這裏插入圖片描述
分解後,VTV^T 表示用戶的特徵,WW 表示某部電影的權重。類似的矩陣分解建模還可以用於其它抽象特徵。
在這裏插入圖片描述
接下來看一下矩陣分解如何學習:
在這裏插入圖片描述
其目標函數有兩組變量需要求解,與上節課求解 k-Means 的方法類似,固定一組變量,求解另一組變量,迭代求解,這種方式稱爲交替最小二乘法(alternating least squares)。其流程是:

  • 固定用戶特徵 vnv_n ,對每部電影做線性迴歸,得到每部電影的 d~\tilde{d} 維特徵值 wmw_m
  • 固定電影特徵 wmw_m ,對每位用戶做線性迴歸,得到每位用戶對電影的特徵 vnv_n

算法流程爲:
在這裏插入圖片描述
交替最小二乘法通常需要隨機選取 vnv_nwnw_n 的初始值;由於每次迭代跟新都能減小 EinE_{in} ,保證了算法的收斂。下面比較上節課所學的線性自動編碼器和矩陣分解的異同點:
在這裏插入圖片描述
二者具有很強的相似性,實際上,線性自動編碼器可以看做完整X的特殊矩陣分解。


習題2:
在這裏插入圖片描述


15.3 Stochastic Gradient Descent

上一小節介紹了迭代最小二乘法求解矩陣分解。本小節介紹隨機梯度下降求解矩陣分解。
在這裏插入圖片描述
隨機梯度下降每次只隨機選取一個樣本,然後在與這個樣本有關的誤差函數上使用梯度下降算法。隨機梯度下降算法的優勢是每次迭代中處理的樣本數量少,效率高;算法實現簡單;容易擴展到其它誤差函數的計算。接下來對誤差求偏導:
在這裏插入圖片描述
容易看出 vn∇v_nwm∇w_m 的形式一致,都是係數乘以殘差 (rnmwmTvn)(r_{nm}− w^T_mv_n),再乘以特徵(wmw_mvnv_n)。SGD for Matrix Factorization的算法流程爲:
在這裏插入圖片描述
在實際應用中,SGD是求解矩陣分解常用的方法。下面看一個實際應用,根據現有數據集,預測未來的趨勢,這是一個與時間有關的預測模型。
在這裏插入圖片描述
臺大在2011的KDDCup中,通過改進SGD算法,即使用先前最後的幾個樣本來進行梯度下降,改進之後取得了不俗的表現。這也告訴我們說,要了解算法的原理與細節,這樣才能在實際應用過程中靈活運用,對算法做出適合業務需求的改進。


習題3:
在這裏插入圖片描述


15.4 Summary of Extraction Models

從第12節課程到本節課程共4節課程,講解了Extraction Models,這個定義是個模糊的概念,實際上其是通過一邊做特徵轉換,一邊做組合的模型。這樣就可以做到提取特徵的同時,還能夠結合各個假設函數的優點。各模型對比如下:
在這裏插入圖片描述
各模型的特徵提取方法如下:
在這裏插入圖片描述
各模型的優缺點如下:
在這裏插入圖片描述


習題4:
在這裏插入圖片描述


Summary

在這裏插入圖片描述
恭喜你成爲Extraction Model的磚家!本節課介紹了矩陣分解。首先介紹了線性網絡的假設,通過編碼的向量中提取特徵;然後介紹了基本的矩陣分解,通過電影評分的例子,介紹了迭代最小二乘法來求解矩陣分解中的待解參數。第三小節介紹了使用梯度下降算法那求解矩陣分解中的待解參數。最後一小節總結了Extraction Model。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章