DropoutNet: 解决推荐系统中冷启动问题
来源:互联网 发布:好的收纳箱 知乎 编辑:程序博客网 时间:2024/05/18 02:17
摘要:隐藏模型称为推荐系统的默认选择,因为他们的好表现以及可拓展性。然而,在此领域的调查主要关注在建模user-item之间的交互,很少隐藏模型为冷启动专门设计。受深度学习启发,提出了基于隐藏模型的神经网络称为DropoutNet来解决推荐系统中冷启动问题。不像现存方法其嵌入额外的基于内容的目标项,我们关注在优化上并展示神经网络模型可以为冷启动有效训练通过dropout.
1 简介
一个通常方法来建立精确推荐模型是协同过滤(collaborative filtering)CF是基于从其他用户得到的偏好信息来对个人偏好做出预测。现存的CF方法主要分成两类:基于近邻和基于模型。基于模型方法特别是隐藏模型是更好的选择,因为它为数据建立更紧密的表达。这些表达为快速检索优化,并能拓展到处理上百万用户。因为这些原因,我们本文关注隐藏方法。隐藏模型是典型地通过应用各种低秩近似来目标偏好矩阵来学习得到。当有很多偏好信息可用时它们表现很好,但在高度稀疏设定下就开始退化。极端稀疏的例子称为冷启动,当对给定的用户或者项目没有偏好信息可用。在这个例子中,唯一方式一个个性化推荐可以通过嵌入额外内容信息来生成推荐。基于隐藏方法不能嵌入内容,所以一堆混合模型被提出【3,21,22】去结合偏好和内容信息。然而大多数混合方法引入了额外目标项并发的学习和推断。并且目标的内容部分是生成式的,强迫模型去解释内容而不是使用内容去最大化推荐精度。
深度神经网络可以不需要特征工程而达到很好的精度,这些结果显示深度学习应该可以有效利用到为推荐系统建模内容。已有使用深度学习应用到CF中【7,22,6,23】很少的调查关于深度学习去解决冷启动问题。
本文提出的模型就是去解决这个间隙。方法是基于冷启动等于缺失数据问题的观察,其中偏好信息是缺失的。隐藏不去使用额外目标项去建模内容,我们协整学习过程去精确为缺失输入决定condition模型。关键的思想:通过应用dropout到输入的mini-batch中,训练DNN去泛化缺失的输入。通过选择一个合适的dropout量我们显示学习基于DNN的隐藏模型是可能的,其表现和热启动相当甚至更好。结果模型比大多数混合方法更简单,使用单个目标函数,共同优化所有成分去最大化推荐精度。
本方法额外优势在于它可以被应用到任何现存的隐藏模型去提供/增强冷启动能力。
2框架
在典型CF问题中有N个用户
在许多领域中我们经常能得到用户和项目的额外信息。对于项目,这个信息可以来自文本、音频、图像形式。对用户我们得到轮廓信息(年龄,性别,位置,设备等等),和社交媒体数据(Facebook)这数据可以提供高度有用的符号对于推荐模型,并在稀疏和冷启动设定中特别有用。应用相关转化后大多数内容信息可以由固定长度特征向量表示。我们使用
3相关工作
大量混合隐藏方法被提出去解决CF中冷启动的问题。一个流行的模型是协同话题回归(collaborative topic regression)CTR【21】,其结合了Latent dirichlet allocation(LDA)【4】和加权矩阵分解(WMF)【13】。CTR插入LDA表达在冷启动中和WMF当偏好可用时,最近一些隐藏方法被提出。协同话题泊松分解CTPF【8】使用相似的插入架构但使用泊松分解【9】代替了LDA和WMF成分。协同深度学习collaborative deep learning(CDL)[22]是另一种方法使用类似架构,其中使用堆积的降噪自编码代替LDA。
图1:Dropout架构图。对于每个用户u,其偏好
这些模型完成较高的表现,他们也有一些共同的缺点。首先他们嵌入偏好和内容成分到目标函数,导致目标函数高度复杂。例如CDL,包含四个目标项并要求调试三个额外的结合权重到WMF和自编码参数。这使得在大数据上调试具有挑战性,其中每个参数设定都是昂贵和耗时的。第二每个模型的方差假设冷启动项不适用于冷启动用户。。大都数在线服务不许频繁增加新用户和项目,因此要求模型同时能处理。原则上推导类似模型杜宇用户和模型共同优化是可行的。一个主要的问题是我们旨在解决的问题是我们是否开发一个简单的冷启动模型,其可应用到用户和项目?
除了CDL, 一堆方法为CF被提出使用DNN。一个早期的方法DeepMusic【7】旨在通过一个隐藏模型使用内容只有DNN来预测隐藏表达。最近【6】描述了Youtube的两级推荐模型,利用用户的session(最近的play和搜索)和轮廓信息(profile information)作为输入的推荐系统。对于项目的隐藏表达在一个给定session中平均化,连接轮廓信息,并传到DNN输出一个依赖于session的隐藏表达。平均项目解决变长的输入问题,但会丢失session的时间信息。为了更精确建模用户的偏好是如何改变的,一个循环神经网络RNN方法被提出【23】。RNN被应用到一次一个项目的序列化,并所有项目之后被处理,隐藏层激活值被用作隐藏表达。
许多这些模型显示使用深度架构到CF的好处。然而,很少调查冷启动和稀疏设定表达当内容信息可用。我们希望深度学习在这些场景中是最有用的,因为它很好的泛化到不同内容类型。我们提出的方法旨在利用这个优点,很像【6】。我们也使用隐藏表达作为偏好特征输入对于用户和项目,并使用内容结合它们,去训练一个混合基于DNN 模型。不像[6]其主要关注在热启动用户,我们开发类似的模型对于用户和项目,并显示如何这些模型可以训练去精确处理冷启动。
4 方法
从输入表达开始,我们旨在开发一个模型其能够处理冷和热启动场景。结果是,输入到模型需要包含内容和偏好信息。一个选择是直接使用R的行和列以它们原来的形式。然而,当用户和项目量增多时矩阵会变大。我们采用类似【6】和【23】的方法,使用隐藏表达作为偏好输入。隐藏模型近似偏好矩阵使用低秩矩阵U和V的乘积:
其中
4.1 模型架构
给定通过偏好-内容输入我们提出去应用DNN模型去映射到新的隐藏空间其嵌入内容和偏好信息。偏好
- DropoutNet: 解决推荐系统中冷启动问题
- 推荐系统中冷启动问题
- 推荐系统解决冷启动问题策略
- 推荐系统解决冷启动问题策略
- 推荐系统冷启动问题
- 推荐系统冷启动问题
- 推荐系统冷启动问题
- 推荐系统-推荐冷启动问题
- 推荐系统中的冷启动问题
- 推荐系统中的冷启动问题
- 推荐系统冷启动问题笔记&Tips
- 推荐系统——冷启动问题
- 机器学习->推荐系统->冷启动问题
- 推荐系统实践之-冷启动问题
- 项亮《推荐系统实践》读书笔记2-推荐系统冷启动问题
- 推荐系统实践---第三章:推荐系统冷启动问题
- 推荐系统冷启动
- 推荐系统中的冷启动和探索利用问题探讨 (上)
- mybatis原理解析---SqlSession运行过程(上)
- ShaderForge插件介绍详解
- 20171219Excel函数(Offset)使用方法记录
- 树的高度
- leetcode题解-147. Insertion Sort List
- DropoutNet: 解决推荐系统中冷启动问题
- Java进阶之路——从初级程序员到架构师,从小工到专家
- 20171213.1
- 源码解析,浅谈spring-data-jpa 中莫名的查询字段不存在问题
- Vim详解
- 如何快速安装Nginx
- 【配置】Elasticsearch安装配置
- 虚拟机和主机ping通与虚拟机连接互联网之间的切换配置方法
- React Ueditor 数据交互