閱讀195 返回首頁    go 魔獸


基於受限玻爾茲曼機(RBM)的協同過濾

  受限玻爾茲曼機是一種生成式隨機神經網絡(generative stochastic neural network), 詳細介紹可見我的博文《受限玻爾茲曼機(RBM)簡介》, 本文主要介紹RBM在協同過濾的應用。

1. 受限玻爾茲曼機簡單介紹

  傳統的受限玻爾茲曼機是一種如下圖所示, 其由一些可見單元(visible unit,對應可見變量,亦即數據樣本)和一些隱藏單元(hidden unit,對應隱藏變量)構成,可見變量和隱藏變量都是二元變量,亦即其狀態取{0,1}。整個網絡是一個二部圖,隻有可見單元和隱藏單元之間才會存在邊,可見單元之間以及隱藏單元之間都不會有邊連接。

  

 

  將該模型應用到協同過濾需要解決以下兩個問題:

  1. 鑒於RBM中的單元都是二元變量, 如果用這些二元變量來對整數值的評分建模?
  2. 用戶的打分是非常稀疏的, 亦即用戶隻會對很少的物品(比如電影)打分, 如何處理這些缺失的評分?

2. 基於RBM的協同過濾

  R. R. Salakhutdinov等人提出了一種使用RBM來進行協同過濾的方法:

  假設有m個電影, 則使用m個softmax單元來作為可見單元來構造RBM.  對於每個用戶使用不同的RBM, 這些不同的RBM僅僅是可見單元不同, 因為不同的用戶會對不同的電影打分, 所有的這些RBM的可見單元共用相同的偏置以及和隱藏單元的連接權重W. 該方法很好的解決了之前提到的問題:

  1. 使用softmax來對用戶的評分進行建模, softmax是一種組合可見單元, 包含k個二元單元, 第i個二元單元當且隻當用戶對該電影打分為i時才會置為1.
  2. 如果一個用戶沒有對第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

  上一篇:go  Linux下程序啟動之後的初始化---檢查配置文件及讀取日誌配置項的值
  下一篇:go  阿裏雲輕量應用服務器介紹及價格表,支持領券購買抽獎活動。