195
魔獸
基於受限玻爾茲曼機(RBM)的協同過濾
受限玻爾茲曼機是一種生成式隨機神經網絡(generative stochastic neural network), 詳細介紹可見我的博文《受限玻爾茲曼機(RBM)簡介》, 本文主要介紹RBM在協同過濾的應用。
1. 受限玻爾茲曼機簡單介紹
傳統的受限玻爾茲曼機是一種如下圖所示, 其由一些可見單元(visible unit,對應可見變量,亦即數據樣本)和一些隱藏單元(hidden unit,對應隱藏變量)構成,可見變量和隱藏變量都是二元變量,亦即其狀態取{0,1}。整個網絡是一個二部圖,隻有可見單元和隱藏單元之間才會存在邊,可見單元之間以及隱藏單元之間都不會有邊連接。
將該模型應用到協同過濾需要解決以下兩個問題:
- 鑒於RBM中的單元都是二元變量, 如果用這些二元變量來對整數值的評分建模?
- 用戶的打分是非常稀疏的, 亦即用戶隻會對很少的物品(比如電影)打分, 如何處理這些缺失的評分?
2. 基於RBM的協同過濾
R. R. Salakhutdinov等人提出了一種使用RBM來進行協同過濾的方法:
假設有m個電影, 則使用m個softmax單元來作為可見單元來構造RBM. 對於每個用戶使用不同的RBM, 這些不同的RBM僅僅是可見單元不同, 因為不同的用戶會對不同的電影打分, 所有的這些RBM的可見單元共用相同的偏置以及和隱藏單元的連接權重W. 該方法很好的解決了之前提到的問題:
- 使用softmax來對用戶的評分進行建模, softmax是一種組合可見單元, 包含k個二元單元, 第i個二元單元當且隻當用戶對該電影打分為i時才會置為1.
- 如果一個用戶沒有對第j個電影評分, 則該用戶的RBM中不存在第j個softmax單元.
該模型如下圖所示:
可是單元V和隱藏單元h的條件概率為:
模型參數的學習過程非常類似於RBM的DC算法:
訓練完模型後, 計算用戶對未評價物品的預測評分的算法為:
3. 條件RBM(Conditional Restricted Boltzmann Machine)
以上的RBM隻用到了用戶對電影的評分, 忽視了另外一種非常重要的信息: 用戶瀏覽過哪些電影(但是沒打分, 或者打分未知), 條件RBM把這種信息也進行了建模:
其中的r是一個m維的向量, ri為1代表用戶對瀏覽過第i個電影, 加入r後的模型的條件概率為:
權重D的學習過程為:
參考文獻:
[1]. Ruslan Salakhutdinov, Andriy Mnih, Geoffrey Hinton. Restricted Boltzmann Machines for Collaborative Filtering. 2007, ICML.
[2]. Gilles Louppe, Pierre Geurts. Collaborative filtering: Scalable approaches using restricted Boltzmann machines.
[3]. 受限玻爾茲曼機(RBM)簡介
最後更新:2017-09-24 18:02:46