076 基于深度学习的推荐模型之一:受限波兹曼机
这几周我们进入专栏里一个比较大的模块,那就是推荐系统。
上周,我们谈了现代推荐系统的架构体系,帮助你在宏观上对推荐系统的构建有一个更加完整的认识。这周,我们主要来看在推荐系统研究领域里一个比较前沿的话题,那就是如何利用深度学习来提升推荐系统的精度。
今天,我们首先来看一篇经典的文章《受限波兹曼机进行协同过滤》([Restricted Boltzmann machines for collaborative filtering]
受限波兹曼机(RBM)
从严格意义上讲,RBM自身并不是深度模型,在早期对于RBM的使用上,也并没有将其"累加"到很多层从而形成"深度RBM”(Deep RBM)。但是从建模思路上来说,由一层RBM到多层RBM的扩展其实是非常直接的,因此了解RBM的基本思路,对后面理解推荐系统中如何利用深度学习模型进行建模是很有帮助的。
今天我们要介绍的文章发表于2007年的ICML(International Conference on Machine Learning,国际机器学习大会)上。作者群是鲁斯兰·萨拉胡特蒂诺夫(Ruslan Salakhutdinov)、安德烈·尼哈( Andriy Mnih)以及杰弗里·辛顿(Geoffrey Hinton)。
辛顿在近日常常被称作深度学习之父。他不仅算是波兹曼机(Boltzmann Machines)的重要发明人和推动者之一,也和其学生一起把RBM应用到各类数据上,比如RBM在推荐领域的尝试。 2007年的时候,Netflix大赛如火如荼,很多学者都希望把各种模型和思路应用到这个比赛中。而在这个大赛中,有三个重要的思想脱颖而出,影响了后来推荐系统的研究发展。这三个思想分别是:
- 基于矩阵分解的模型;
- 基于RBM的模型;
- 利用集成学习(Ensemble Learning)把大量不同的模型整合起来。
由此可见,RBM对于推荐系统的尝试在当时是非常有新意的。
第一作者鲁斯兰当时在多伦多大学攻读计算机博士,跟随辛顿研究深度学习模型。另外一篇他当时做的工作,是把贝叶斯矩阵分解利用到Netflix大赛中,和我们今天讨论的这篇论文一起,都是他在博士阶段对于推荐系统这个领域所做的重要贡献。目前鲁斯兰在卡内基梅隆大学任教,并兼任苹果公司的人工智能总监一职。
那什么是RBM呢?简单说来,RBM就是由一层隐单元 (Hidden Unit)和一层显单元(Visible Unit)组成的神经网络结构。通常情况下,显单元和隐单元这两层之间是完全连通的。也就是说,对于每一个显单元来说,它都和所有的隐单元联系到一起。 每个隐单元和显单元自身都有一个权重(Weight),并且在每对隐单元和显单元之间的连接上还有一个权重*。所有这些权重都是需要通过训练学习的未知参数。举例来说,如果我们有3个显单元(用于描述3个数据点),5个隐单元。那么我们就有3个权重对应3个显单元,有5个权重对应5个隐单元,然后有15(3*5)个连接权重,这样算下来一共是23个权重。RBM可以针对高斯信号,也就是实数信息,以及伯努利或者二项分布(Binomial Distribution)信号,也就是离散信息,进行建模。
受限波兹曼机在推荐上的应用
当我们对RBM有了一个基本的了解之后,我们来看RBM是怎么应用到推荐系统上的。为了讲解方便,我们这里使用Netflix的例子,也就是对"用户为电影打分"进行建模。
首先,对于每一个用户,我们使用一个单独的RBM来对这个用户进行建模,只不过,每一个RBM都有一样的隐单元数量。在建模的时候,每一个RBM仅仅对当前这个用户曾经打过分的数据进行建模。也就是说,每一个RBM需要建模的数据是不一样的,有的用户对三个电影打过分,有的对十个电影打过分。你可以设想一下,在这样的情况下,整个模型是什么意思。
每个用户有一个独立的RBM,这个RBM负责对这个用户的电影集合进行建模。很显然,这些RBM互相没有关联。那怎么把每个用户的RBM给联系起来呢?作者们做了这样的假设,也就是每个RBM的隐单元是不一样的,这其实可以代表学习到的"用户的偏好”。但是,如果两个用户都对同一个电影打过分,那么,针对这个电影,两个不同的RBM会共享一样的权重。这就是联系两个RBM的核心思想,也就是说,利用RBM对用户电影推荐的核心是"共享相同电影的权重”。
具体说来,每一个显单元都是用户对于某个电影的评价。这里每个显单元都是一个K维的数组,其中只有一个元素是1,其他都是0。这种二元的数组表达,帮助模型来对"用户对于有K种可能的输出"进行建模。隐单元在这篇论文中,也是二元的,只不过,我们事先并不知道隐单元的取值。和刚才介绍的一样,在这样的模型里,需要学习的参数包括显单元的权重、隐单元的权重以及他们之间关系的权重,同一个电影的权重是共享的。
每一个用户都有一个单独的RBM,并且我们在RBM里只对已经评过分的电影进行了建模,因此这个模型并不能直接对未知的电影评分进行预测。需要预测的时候,我们其实是先拿到这个电影的权重,然后看,我们把那个K维的评分数组设置成哪种情况的时候,产生的概率是最大的。也就是说,我们尝试把对于未知的电影评分设置成不同情况,取出现可能性最大的那种评分作为预测结果。很明显,这样做的计算效率并不高。文章中也介绍了如何加速,我们这里就不复述了。 RBM对于推荐系统的建模看上去很简单,但是难点却是如何学习这些未知的权重*。总体说来,RBM无法直接使用类似"最大似然法"或者"递归下降"的方法来对参数进行学习。这其实也是阻碍这类方法广泛使用的一个重要障碍。在最初的论文里,作者们提出了一种CD(Contrastive Divergence,对比散度)方法,这种方法其实是一种简化的MCMC(Markov chain Monte Carlo,马尔科夫蒙特卡洛)方法,用于对RBM进行采样。CD方法具体是如何实现的,我们这里就不展开了。
在Netflix的数据集上,RBM展现了惊人的效果,不仅能够很轻松地击败Netflix自身的算法基线,还比当时提出的单纯的矩阵分解方法要更加优秀。基于此,后来就有了很多RBM的扩展工作。
小结
这周我来为你讲解利用推荐系统的一个重要的问题,就是如何利用深度学习模型来对推荐系统进行建模。今天我们聊了一个最基本的深度学习模型,受限波兹曼机,讨论了如何将其应用在推荐系统中。
一起来回顾下要点:第一,我们介绍了什么是受限波兹曼机;第二,我们讨论了如何把受限波兹曼机应用到推荐场景中。
最后,给你留一个思考题,如果希望在受限波兹曼机里增加其他信息,比如各种用户信息或者电影信息,我们该如何做呢? 参考文献*
- Ruslan Salakhutdinov, Andriy Mnih, and Geoffrey Hinton. Restricted Boltzmann machines for collaborative filtering. Proceedings of the 24th international conference on Machine learning (ICML '07), Zoubin Ghahramani (Ed.). ACM, New York, NY, USA, 791-798, 2007.
文章列表
- 面试AI技术内参-003精读2017年KDD最佳应用数据科学论文
- 面试AI技术内参-075现代推荐架构剖析之三:复杂现代推荐架构漫谈
- 面试AI技术内参-093聊一聊程序化直接购买和广告期货
- 面试AI技术内参-030ACL2018论文精读:什么是端到端的语义哈希?
- 面试AI技术内参-116掌握计算机视觉任务的基础模型和操作
- 面试AI技术内参-018TheWeb2018论文精读:如何从文本中提取高元关系?
- 面试AI技术内参-121计算机视觉领域的深度学习模型(一):AlexNet
- 面试AI技术内参-123计算机视觉领域的深度学习模型(三):ResNet
- 面试AI技术内参-033经典搜索核心算法:语言模型及其变种
- 面试AI技术内参-146数据科学团队必备的工程流程三部曲
- 面试AI技术内参-094归因模型:如何来衡量广告的有效性
- 面试AI技术内参-155人工智能技术选择,该从哪里获得灵感?
- 面试AI技术内参-089广告的竞价策略是怎样的?
- 面试AI技术内参-001聊聊2017年KDD大会的时间检验奖
- 面试AI技术内参-076基于深度学习的推荐模型之一:受限波兹曼机
- 面试AI技术内参-126计算机视觉高级话题(三):产生式模型
- 面试AI技术内参-009如何将深度强化学习应用到视觉问答系统?
- 面试AI技术内参-012精读2017年NIPS最佳研究论文之三:如何解决非完美信息博弈问题?
- 面试AI技术内参-112什么是文档情感分类?
- 面试AI技术内参-045文档理解的重要特例:多模文档建模
- 面试AI技术内参-054机器学习排序算法经典模型:LambdaMART
- 面试AI技术内参-067推荐的Exploit和Explore算法之一:EE算法综述
- 面试AI技术内参-101基础文本分析模型之二:概率隐语义分析
- 面试AI技术内参-147数据科学团队怎么选择产品和项目?
- 面试AI技术内参-149微软研究院:工业界研究机构的楷模
- 面试AI技术内参-074现代推荐架构剖析之二:基于多层搜索架构的推荐系统
- 面试AI技术内参-073现代推荐架构剖析之一:基于线下离线计算的推荐架构
- 面试AI技术内参-000开篇词你的360度人工智能信息助理
- 面试AI技术内参-059简单推荐模型之二:基于相似信息的推荐模型
- 面试AI技术内参-106序列建模的深度学习利器:RNN基础架构
- 面试AI技术内参-117计算机视觉中的特征提取难在哪里?
- 面试AI技术内参-144数据科学家必备套路之三:广告套路
- 面试AI技术内参-114文本情感分析中如何做意见总结和搜索?
- 面试AI技术内参-016TheWeb2018论文精读:如何对商品的图片美感进行建模?
- 面试AI技术内参-结束语雄关漫道真如铁,而今迈步从头越
- 面试AI技术内参-057基于深度学习的搜索算法:局部和分布表征下的搜索模型
- 面试AI技术内参-119基于深度学习的计算机视觉技术(二):基本的深度学习模型
- 面试AI技术内参-078基于深度学习的推荐模型之三:利用深度学习来扩展推荐系统
- 面试AI技术内参-056基于深度学习的搜索算法:卷积结构下的隐含语义模型
- 面试AI技术内参-069推荐的Exploit和Explore算法之三:汤普森采样算法
- 面试AI技术内参-114复盘3自然语言处理及文本处理核心技术模块
- 面试AI技术内参-025ICML2018论文精读:模型经得起对抗样本的攻击?这或许只是个错觉
- 面试AI技术内参-023CVPR2018论文精读:如何从整体上对人体进行三维建模?
- 面试AI技术内参-154在人工智能领域,如何快速找到学习的切入点?
- 面试AI技术内参-017TheWeb2018论文精读:如何改进经典的推荐算法BPR?
- 面试AI技术内参-071推荐系统评测之二:线上评测
- 面试AI技术内参-084雅虎的广告点击率预估模型
- 面试AI技术内参-090如何优化广告的竞价策略?
- 面试AI技术内参-092如何设置广告竞价的底价?
- 面试AI技术内参-107基于门机制的RNN架构:LSTM与GRU
- 面试AI技术内参-148曾经辉煌的雅虎研究院
- 面试AI技术内参-027ICML2018论文精读:优化目标函数的时候,有可能放大了不公平?
- 面试AI技术内参-150复盘6数据科学家与数据科学团队是怎么养成的?
- 面试AI技术内参-138数据科学团队养成:Onsite面试面面观
- 面试AI技术内参-034机器学习排序算法:单点法排序学习
- 面试AI技术内参-036机器学习排序算法:列表法排序学习
- 面试AI技术内参-042如何评测搜索系统的在线表现?
- 面试AI技术内参-058简单推荐模型之一:基于流行度的推荐模型
- 面试AI技术内参-066高级推荐模型之三:优化复杂目标函数
- 面试AI技术内参-070推荐系统评测之一:传统线下评测
- 面试AI技术内参-100基础文本分析模型之一:隐语义分析
- 面试AI技术内参-142数据科学家必备套路之一:搜索套路
- 面试AI技术内参-145如何做好人工智能项目的管理?
- 面试AI技术内参-129数据科学家基础能力之系统
- 面试AI技术内参-143数据科学家必备套路之二:推荐套路
- 面试AI技术内参-057复盘1搜索核心技术模块
- 面试AI技术内参-078复盘2推荐系统核心技术模块
- 面试AI技术内参-082Google的点击率系统模型
- 面试AI技术内参-098LDA变种模型知多少
- 面试AI技术内参-103为什么需要Word2Vec算法?
- 面试AI技术内参-060简单推荐模型之三:基于内容信息的推荐模型
- 面试AI技术内参-077基于深度学习的推荐模型之二:基于RNN的推荐系统
- 面试AI技术内参-134职场话题:数据科学家应聘要具备哪些能力?
- 面试AI技术内参-120基于深度学习的计算机视觉技术(三):深度学习模型的优化
- 面试AI技术内参-118基于深度学习的计算机视觉技术(一):深度神经网络入门
- 面试AI技术内参-140人工智能领域知识体系更新周期只有5~6年,数据科学家如何培养?
- 面试AI技术内参-002精读2017年KDD最佳研究论文
- 面试AI技术内参-006精读2017年EMNLP最佳短论文
- 面试AI技术内参-065高级推荐模型之二:协同矩阵分解
- 面试AI技术内参-086Twitter的广告点击率预估模型
- 面试AI技术内参-087阿里巴巴的广告点击率预估模型
- 面试AI技术内参-104Word2Vec算法有哪些扩展模型?
- 面试AI技术内参-113如何来提取情感实体和方面呢?
- 面试AI技术内参-037查询关键字理解三部曲之分类
- 面试AI技术内参-049PageRank算法的核心思想是什么?
- 面试AI技术内参-109对话系统之经典的对话模型
- 面试AI技术内参-125计算机视觉高级话题(二):视觉问答
- 面试AI技术内参-132数据科学家高阶能力之如何系统提升产品性能
- 面试AI技术内参-026ICML2018论文精读:聊一聊机器学习算法的公平性问题
- 面试AI技术内参-022CVPR2018论文精读:如何研究计算机视觉任务之间的关系?
- 面试AI技术内参-007精读2017年ICCV最佳研究论文
- 面试AI技术内参-038查询关键字理解三部曲之解析
- 面试AI技术内参-048搜索索引及其相关技术概述
- 面试AI技术内参-083Facebook的广告点击率预估模型
- 面试AI技术内参-085LinkedIn的广告点击率预估模型
- 面试AI技术内参-096复盘4广告系统核心技术模块
- 面试AI技术内参-102基础文本分析模型之三:EM算法
- 面试AI技术内参-126复盘5计算机视觉核心技术模块
- 面试AI技术内参-128数据科学家基础能力之机器学习
- 面试AI技术内参-1522017人工智能技术发展盘点
- 面试AI技术内参-124计算机视觉高级话题(一):图像物体识别和分割
- 面试AI技术内参-013WSDM2018论文精读:看谷歌团队如何做位置偏差估计
- 面试AI技术内参-011精读2017年NIPS最佳研究论文之二:KSD测试如何检验两个分布的异同?
- 面试AI技术内参-031经典搜索核心算法:TF
- 面试AI技术内参-047多轮打分系统概述
- 面试AI技术内参-050经典图算法之HITS
- 面试AI技术内参-079广告系统概述
- 面试AI技术内参-080广告系统架构
- 面试AI技术内参-081广告回馈预估综述
- 面试AI技术内参-091如何控制广告预算?
- 面试AI技术内参-097LDA模型的前世今生
- 面试AI技术内参-115什么是计算机视觉?
- 面试AI技术内参-151精读AlphaGoZero论文
- 面试AI技术内参-096如何利用机器学习技术来检测广告欺诈?
- 面试AI技术内参-137数据科学团队养成:电话面试指南
- 面试AI技术内参-153如何快速学习国际顶级学术会议的内容?
- 面试AI技术内参-141数据科学家团队组织架构:水平还是垂直,这是个问题
- 面试AI技术内参-004精读2017年EMNLP最佳长论文之一
- 面试AI技术内参-005精读2017年EMNLP最佳长论文之二
- 面试AI技术内参-052机器学习排序算法经典模型:RankSVM
- 面试AI技术内参-061基于隐变量的模型之一:矩阵分解
- 面试AI技术内参-110任务型对话系统有哪些技术要点?
- 面试AI技术内参-131数据科学家高阶能力之评估产品
- 面试AI技术内参-150聊一聊谷歌特立独行的混合型研究
- 面试AI技术内参-139成为香饽饽的数据科学家,如何衡量他们的工作呢?
- 面试AI技术内参-024CVPR2018论文精读:如何解决排序学习计算复杂度高这个问题?
- 面试AI技术内参-046大型搜索框架宏观视角:发展、特点及趋势
- 面试AI技术内参-029ACL2018论文精读:什么是对话中的前提触发?如何检测?
- 面试AI技术内参-108RNN在自然语言处理中有哪些应用场景?
- 面试AI技术内参-105Word2Vec算法有哪些应用?
- 面试AI技术内参-028ACL2018论文精读:问答系统场景下,如何提出好问题?
- 面试AI技术内参-156内参特刊和你聊聊每个人都关心的人工智能热点话题
- 面试AI技术内参-014WSDM2018论文精读:看京东团队如何挖掘商品的替代信息和互补信息
- 面试AI技术内参-095广告投放如何选择受众?如何扩展受众群?
- 面试AI技术内参-032经典搜索核心算法:BM25及其变种(内附全年目录)
- 面试AI技术内参-019SIGIR2018论文精读:偏差和流行度之间的关系
- 面试AI技术内参-055基于深度学习的搜索算法:深度结构化语义模型
- 面试AI技术内参-043文档理解第一步:文档分类
- 面试AI技术内参-072推荐系统评测之三:无偏差估计
- 面试AI技术内参-008精读2017年ICCV最佳学生论文
- 面试AI技术内参-035机器学习排序算法:配对法排序学习
- 面试AI技术内参-039查询关键字理解三部曲之扩展
- 面试AI技术内参-040搜索系统评测,有哪些基础指标?
- 面试AI技术内参-041搜索系统评测,有哪些高级指标?
- 面试AI技术内参-053机器学习排序算法经典模型:GBDT
- 面试AI技术内参-063基于隐变量的模型之三:分解机
- 面试AI技术内参-064高级推荐模型之一:张量分解模型
- 面试AI技术内参-068推荐的Exploit和Explore算法之二:UCB算法
- 面试AI技术内参-099针对大规模数据,如何优化LDA算法?
- 面试AI技术内参-127数据科学家基础能力之概率统计
- 面试AI技术内参-156近在咫尺,走进人工智能研究
- 面试AI技术内参-021SIGIR2018论文精读:如何对搜索页面上的点击行为进行序列建模?
- 面试AI技术内参-010精读2017年NIPS最佳研究论文之一:如何解决非凸优化问题?
- 面试AI技术内参-122计算机视觉领域的深度学习模型(二):VGG&GoogleNet
- 面试AI技术内参-044文档理解的关键步骤:文档聚类
- 面试AI技术内参-088什么是基于第二价位的广告竞拍?
- 面试AI技术内参-111聊天机器人有哪些核心技术要点?
- 面试AI技术内参-130数据科学家高阶能力之分析产品
- 面试AI技术内参-030复盘7一起来读人工智能国际顶级会议论文
- 面试AI技术内参-015WSDM2018论文精读:深度学习模型中如何使用上下文信息?
- 面试AI技术内参-062基于隐变量的模型之二:基于回归的矩阵分解
- 面试AI技术内参-020SIGIR2018论文精读:如何利用对抗学习来增强排序模型的普适性?
- 面试AI技术内参-133职场话题:当数据科学家遇见产品团队
- 面试AI技术内参-135职场话题:聊聊数据科学家的职场规划