基于受限玻尔兹曼机(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)简介

目录
相关文章
|
机器学习/深度学习 数据采集 算法
序列模型算法在上网行为管理中的应用:精度提升的新途径
当我们谈论如何通过序列模型算法来提升上网行为管理的精度时,其实是一种超级有用的工具,可以帮助我们更轻松地识别和管理用户的行为,让网络管理员更加高效地监管网络活动。下面是一些有趣的方法,可以通过序列模型算法来提高上网行为管理的准确性——
183 1
|
机器学习/深度学习 数据采集 搜索推荐
因子分解机介绍和PyTorch代码实现
因子分解机(Factorization Machines,简称FM)是一种用于解决推荐系统、回归和分类等机器学习任务的模型。它由Steffen Rendle于2010年提出,是一种基于线性模型的扩展方法,能够有效地处理高维稀疏数据,并且在处理特征组合时表现出色。它是推荐系统的经典模型之一,并且模型简单、可解释性强,所以搜索广告与推荐算法领域还在被使用。今天我们来详细介绍它并使用Pytorch代码进行简单的实现。
107 0
|
数据可视化 搜索推荐 PyTorch
使用卷积操作实现因子分解机
本文将介绍如何使用卷积操作实现因子分解机器。卷积网络因其局部性和权值共享的归纳偏差而在计算机视觉领域获得了广泛的成功和应用。卷积网络可以用来捕获形状的堆叠分类特征(B, num_cat, embedding_size)和形状的堆叠特征(B, num_features, embedding_size)之间的特征交互。
105 1
|
机器学习/深度学习
受限玻尔兹曼机|机器学习推导系列(二十五)
受限玻尔兹曼机|机器学习推导系列(二十五)
786 0
受限玻尔兹曼机|机器学习推导系列(二十五)
|
机器学习/深度学习 数据采集 自然语言处理
使用向量机(SVM)算法的推荐系统部署实现
使用向量机(SVM)算法的推荐系统部署实现
163 0
|
机器学习/深度学习 算法 搜索推荐
使用向量机(SVM)算法的推荐系统
使用向量机(SVM)算法的推荐系统
204 0
|
人工智能 搜索推荐 TensorFlow
【推荐系统】TensorFlow实现FM特征分解机
【推荐系统】TensorFlow实现FM特征分解机
199 0
|
机器学习/深度学习 自然语言处理 算法
梯度会泄漏训练数据?MIT新方法从梯度窃取训练数据只需几步
梯度交换是现代多机训练常用的通讯方式(分布式训练,联邦学习)。长期以来,人们认为梯度是可以安全共享的,即训练数据不会因梯度交换而泄漏。但是 MIT 的一项研究表明,隐私的训练数据可以通过共享的梯度来获取。
271 0
梯度会泄漏训练数据?MIT新方法从梯度窃取训练数据只需几步
|
存储 设计模式 Oracle
Chainlink预言机基本原理
本文从预言机的概念开始,通过一个简单的获取 ETH 价格的例子,讲解了请求/响应模式的 Chainlink 预言机的基本过程,希望对你理解预言机与 Chainlink 的运行原理有所帮助。
1870 0
|
机器学习/深度学习 算法 图计算
CIKM 18 | 蚂蚁金服论文:基于异构图神经网络的恶意账户识别方法
世界上已知的第一个面向恶意账户检测的图神经网络方法GEM。
3010 0

热门文章

最新文章