文章目錄
上節課介紹了徑向基函數網絡(RBFNet),它實際上是以距離計算相似性的線性融合模型。通過k-Means聚類算法來找到具有代表性的中心點,從而使用RBFNet進一步計算距離。本節課介紹矩陣分解(Matrix Factorization)。
15.1 Linear Network Hypothesis
首先回顧在機器學習基石課程第一節所學:
機器學習的目標是從輸入數據中學習映射關係。並且還舉了網飛的電影評分預測的例子。假設有類似的數據集,只有抽象的特徵和歷史評分,如何讓算法從中學習到用戶的喜好,從而準確預測評分。首先看一下特徵的編碼:
多類別特徵例如ID,血型,編程語言等等;大多數機器學習模型只能處理數值特徵,像線性模型,神經網絡;有個例外是決策樹,可以處理任意特徵,不限於數值特徵。所以在大多數情況下,尤其是深度神經網絡盛行的今天,需要將多特徵轉換爲數字編碼,也就是熟悉的one-hot編碼,也叫作啞變量(dummies)。例如四個類別的one-hot編碼:
接下來看一下神經網絡如何從編碼向量中提取特徵:
對於數據集 ,其中包含 個用戶對 步電影的評分。首先對用戶 編碼成one-hot編碼,其對應的期望輸出值爲一個向量 ,各元素一次對應該用戶 對 步電影的評分 ,該用戶沒有評過的電影標記爲 “?” 。
如果用神經網絡從這個數據集中提取特徵(爲了簡化計算,不考慮偏差 ),該模型的網絡結構是 ,其中, 表示輸入層樣本個數, 表示隱藏層神經元個數, 表示輸出層電影評分個數。輸入數據 ,輸出該用戶 對各部電影的預測評分 。
由於輸入數據是經過編碼的數據,只有一個元素爲1,其餘爲0,也就是說每次只有一個權重向量 與樣本的乘積進入隱藏層神經元進行激活,從效果上來說,激活函數選擇 與選擇 無異,所以可以使用 激活函數。替換之後得到:
修改之後,重新做一些約定:
- 將兩層權重分別記爲 的 和 的 ;
- 假設函數 ,其中 爲 的列向量, 爲 的矩陣, 爲 的矩陣;
- 每位用戶的評分預測輸出爲 , 是矩陣 的第 列元素,其尺寸爲 。
習題1:
15.2 Basic Matrix Factorization
上一小節介紹了神經網絡模型和假設函數,其中 可以看做對用戶的特徵轉換 ,對於第 部電影,其預測評分爲:
使用平方誤差衡量,其誤差函數 爲:
線性網絡本質上是從所有 中學習變換和組合的線性模型。接下來要求出最小化 時對應的 和 。模型的目標是要讓真實評分和預測評分儘可能相同,即 ,記爲 ,這種方式稱爲矩陣分解(Matrix Factorization),矩陣 表示用戶對各電影的評分矩陣。
分解後, 表示用戶的特徵, 表示某部電影的權重。類似的矩陣分解建模還可以用於其它抽象特徵。
接下來看一下矩陣分解如何學習:
其目標函數有兩組變量需要求解,與上節課求解 k-Means 的方法類似,固定一組變量,求解另一組變量,迭代求解,這種方式稱爲交替最小二乘法(alternating least squares)。其流程是:
- 固定用戶特徵 ,對每部電影做線性迴歸,得到每部電影的 維特徵值 ;
- 固定電影特徵 ,對每位用戶做線性迴歸,得到每位用戶對電影的特徵 。
算法流程爲:
交替最小二乘法通常需要隨機選取 和 的初始值;由於每次迭代跟新都能減小 ,保證了算法的收斂。下面比較上節課所學的線性自動編碼器和矩陣分解的異同點:
二者具有很強的相似性,實際上,線性自動編碼器可以看做完整X的特殊矩陣分解。
習題2:
15.3 Stochastic Gradient Descent
上一小節介紹了迭代最小二乘法求解矩陣分解。本小節介紹隨機梯度下降求解矩陣分解。
隨機梯度下降每次只隨機選取一個樣本,然後在與這個樣本有關的誤差函數上使用梯度下降算法。隨機梯度下降算法的優勢是每次迭代中處理的樣本數量少,效率高;算法實現簡單;容易擴展到其它誤差函數的計算。接下來對誤差求偏導:
容易看出 和 的形式一致,都是係數乘以殘差 ,再乘以特徵( 或 )。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。