机器学习之推荐系统
我們從一個例子開始定義推薦系統的問題。
假使我們是一個電影供應商,我們有 5 部電影和 4 個用戶,我們要求用戶為電影打分。
基于內容的推薦系統
在一個基于內容的推薦系統算法中,我們假設對于我們希望推薦的東西有一些數據,這 些數據是有關這些東西的特征。
在我們的例子中,我們可以假設每部電影都有兩個特征,如 x1 代表電影的浪漫程度,x2 代表電影的動作程度。
其中 i:r(i,j)表示我們只計算那些用戶 j 評過分的電影。在一般的線性回歸模型中,誤差 項和歸一項應該都是乘以1/2m,在這里我們將m去掉。并且我們不對方差項θ0 進行歸一 化處理。
上面的代價函數只是針對一個用戶的,為了學習所有用戶,我們將所有用戶的代價函數 求和:
協同過濾
在之前的基于內容的推薦系統中,對于每一部電影,我們都掌握了可用的特征,使用這 些特征訓練出了每一個用戶的參數。相反地,如果我們擁有用戶的參數,我們可以學習得出 電影的特征。
注:在協同過濾從算法中,我們通常不使用方差項,如果需要的話,算法會自動學得。 協同過濾算法使用步驟如下:
1. 初始 x(1),x(2),...,x(nm),θ(1),θ(2),...,θ(nu)為一些隨機小值
2. 使用梯度下降算法最小化代價函數
3. 在訓練完算法后,我們預測(θ(j))Tx(i)為用戶 j 給電影 i 的評分
通過這個學習過程獲得的特征矩陣包含了有關電影的重要數據,這些數據不總是人能讀
懂的,但是我們可以用這些數據作為給用戶推薦電影的依據。 例如,如果一位用戶正在觀看電影 x(i),我們可以尋找另一部電影 x(j),依據兩部電影的
特征向量之間的距離||x(i)?x(j)||的大小。
向量化:低秩矩陣分解
在上幾節視頻中,我們談到了協同過濾算法,本節視頻中我將會講到有關該算法的向量 化實現,以及說說有關該算法你可以做的其他事情。
舉例子:
1.當給出一件產品時,你能否找到與之相關的其它產品。
2.一位用戶最近看上一件產品,有沒有其它相關的產品,你可以推薦給他。
我將要做的是:實現一種選擇的方法,寫出協同過濾算法的預測情況。
我們有關于五部電影的數據集,我將要做的是,將這些用戶的電影評分,進行分組并存
到一個矩陣中。
我們有五部電影,以及四位用戶,那么 這個矩陣 Y 就是一個 5 行 4 列的矩陣,它將這
些電影的用戶評分數據都存在矩陣里:
均值歸一化
然后我們利用這個新的 Y 矩陣來訓練算法。如果我們要用新訓練出的算法來預測評分, 則需要將平均值重新加回去,預測(θ(j))T(x(i))+μi 對于Eve,我們的新模型會認為她給每部電影 的評分都是該電影的平均分。
總結
- 上一篇: pyinstaller--将py文件转化
- 下一篇: 大规模机器学习