introduction
Recommender system (RS) is a useful information €ltering tool for guiding users in a personalized way of discovering products or services they might be interested in from a large space of possible options.
数据稀疏性、冷启动是推荐系统的两大问题。
这篇survey的主要贡献如下:
•对基于深度学习技术的推荐模型进行了系统评估。
•概述了最先进的研究并总结了它们的优点和局限性。
•讨论未解决的问题,新趋势和未来方向。
TERMINOLOGY AND BACKGROUND CONCEPTS
三种推荐任务(基于输出形式的不同):
- 概率预测
- 排名预测(top-n推荐)
- 分类:分类任务旨在将候选项目分类为正确的类别以供推荐。
三类推荐模型:
- 协同过滤:通过从user-item的历史交互学习(通过显式(用户先前的评分)或隐式反馈(例如浏览历史))来进行推荐。
- 基于内容的推荐:主要基于user-item辅助信息的,包括文本图像视频。
- 混合推荐系统:包含集中推荐策略的推荐系统。
一些相关的深度学习概念:
其中,DSSM:是一种深度神经网络,用于在共同的连续语义空间中学习实体的语义表示并测量它们的语义相似性。
Restricted Boltzmann Machine (RBM) is a two layer neural network consisting of a visible layer and a hidden layer. It can be easily stacked to a deep net. Restricted here means that there are no intra-layer communications in visible layer or hidden layer.
Neural Autoregressive Distribution Estimation (NADE) [57, 108] is an unsupervised neural network built atop autoregressive model and feedforward neural network. It is a tractable and ecient estimator for modelling data distributions and densities.
CLASSIFICATION SCHEME AND ANALYSIS
上图表现了本文对推荐模型的从两个维度上的分类。
从神经网络模型的角度(单类神经网络或神经网络之间的组合)
又将基于深度学习的推荐模型分为两大类:使用单一深度学习技术的模型和深度复合模型(包含两种或更多种深度学习技术的推荐系统)。- 使用单一深度学习技术的模型。 如上图所示,在这个类别中,模型分为八个子类别,与上述八种深度学习模型相一致:MLP,AE,CNN,RNN,DSSM,RBM,NADE和GAN的推荐系统。 使用深度学习技术决定了这些推荐模型的优势和应用场景。 例如,MLP可以轻松模拟用户和项目之间的非线性交互; CNN能够从异构数据源(如文本和视觉信息)中提取本地和全球的表示形式; RNN使得推荐系统能够模拟评价数据的时间动态性和内容信息的有序性; DSSM能够执行用户和项目之间的语义匹配。
- 深层复合模型。 一些基于深度学习的推荐模型利用多种深度学习技术。 动机是,不同的深度学习技术可以相互补充,并使一个更强大的混合模型。 上图中8种深度学习技术有许多可能的组合,并非全部都已被利用。
从模型的组合角度(神经网络与传统推荐模型的组合)
通过考虑将传统推荐模型与深度学习相结合还是仅依靠深度学习技术对模型进行分类。- 组合深度学习和传统推荐模型:在这里又分了Tightly coupled和Loosely coupled。直观上来看就是模型的参数是同时训练的就是Tightly。如果要是分开训练就是Loosely。
- 只依靠深度学习推荐
具体划分如下图:
然后作者对已有的推荐工作做了一些统计,如下图:
其他的还有一些被引用数量的统计,不同领域推荐(例如电影、音乐、POI等方向)的统计等等…
DEEP LEARNING BASED RECOMMENDER SYSTEM
1. MLP
仅依靠MLP
NCF:
推荐就是用户特征和物品特征的交互。
神经协同过滤(NCF)旨在捕捉用户和项目之间的非线性关系。
NCF模型图如下:
这是模型的函数以及目标函数。
因为输出是1或0,也可以使用sigmoid函数将输出固定在1 0 之间,因此目标函数可以修改为交叉熵形式:
扩展:CCCFNet:
Wide & Deep Learning: