使用深度学习做推荐系统-Neural Collaborative Filtering

He X, Liao L, Zhang H, et al. Neural Collaborative Filtering[C]// International Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 2017:173-182.

Abstract

近年来,深度神经网络在语音识别,计算机视觉和自然语言处理方面取得了巨大的成功。但是,在推荐系统上对深层神经网络的探索研究相对较少。在这项工作中,我们努力开发基于神经网络的技术,以在隐式反馈的基础上解决推荐中的关键问题-协同过滤。
尽管最近有一些工作采用了深度学习来进行推荐,但他们主要是用它来对辅助信息(auxiliary information)进行建模,例如项目的文本描述和音乐的声学特征。在建模协同过滤的关键因素(key factor,用户和项目特征之间的交互)时,他们仍然诉诸于矩阵分解(MF),并将内积(inner product)应用于用户和项目的潜在特征。
通过将 inner product 替换为可以从数据中学习任意函数的神经体系结构,我们提出了一个名为 NCF (Neural network-based Collaborative Filtering,基于神经网络的协同过滤)的通用框架,它是基于神经网络的协同过滤的缩写。 NCF 是通用的,可以在其框架下表达和归纳矩阵分解。为了使 NCF 建模具有非线性效果,我们提出利用多层感知器来学习用户与项目的交互特征。在两个真实(real-world)的数据集上进行的大量实验表明,我们提出的 NCF 框架相对于最新方法有了显着改进。经验证据表明,使用更深层次的神经网络可以提供更好的推荐性能。
Keywords: Collaborative Filtering, Neural Networks, Deep Learning, Matrix Factorization, Implicit Feedback

Introduction

这项工作通过形式化用于协同过滤的神经网络建模方法来解决上述研究问题。我们专注于隐式反馈(implicit feedback),它通过观看视频,购买产品和点击商品等行为间接反映用户的偏好。与显式反馈(explicit feedback,即评分和评论)相比,隐式反馈可以自动进行跟踪,因此更容易为内容提供商收集。但是,利用起来更具挑战性,因为未观察到用户满意度,并且自然缺乏负面反馈。在本文中,我们探讨了如何利用 DNN 建模带噪声的隐式反馈信号的中心主题。
这项工作的主要贡献如下:

  1. 我们提出了一种神经网络体系结构,以对用户和项目的潜在特征进行建模,并设计一种基于神经网络的用于协同过滤的通用框架NCF。
  2. 我们表明,MF可以解释为NCF的一种特殊化,并利用多层感知器赋予NCF建模以高度的非线性。
  3. 我们在两个真实的数据集上进行了广泛的实验,以证明我们的NCF方法的有效性以及对协同过滤进行深度学习的希望。

显示反馈(explicit feedback):用户直接反映其对产品的喜好信息,如评分等等。
隐式反馈(implicit feedback):间接反映出用户对于产品的喜好,如:购买历史、浏览记录、搜索记录等

NEURAL COLLABORATIVE FILTERING

我们首先提出的总体框架NCF,阐述NCF如何学习强调了隐式数据的二进制属性的概率模型。然后,我们展示了,MF能够表达为NCF 的推广(MF矩阵分解模型是NCF的一个特例)。我们探索DNNs在协同过滤上的应用,提出了NCF的一个实例,它采用了多层感知器(MLP)来学习用户-项目交互函数。最后,我们在NCF框架下结合了MF和MLP,提出了一种新的神经矩阵分解模型(neural matrix factorization model);它统一了在建模用户项目潜在结构方面,MF的线性建模优势和MLP的非线性优势。

General Framework

为了允许神经网络对协同过滤进行一个完整的处理,我们采用图2(Figure 2)展示的多层感知机去模拟一个用户项目交互 y u i y_{ui} yui ,它的一层的输出作为下一层的输入。底层输入层包括两个特征向量 v u U \mathbf v^U_u vuU v i I \mathbf v^I_i viI ,分别用来描述用户 u u u 和项目 i i i 。 他们可以进行定制,用以支持广泛的用户和项目的建模,例如上下文感知[28,1],基于内容[3],和基于邻居的构建方式[26]。由于本文工作的重点是纯协同过滤设置,因此我们仅将用户和项目的身份用作输入特征,它使用 one-hot 编码将它们转化为二值化的稀疏向量。注意,我们对输入使用这样的通用特征表示,可以很容易地使用的内容特征来表示用户和项目,以调整解决冷启动问题。

冷启动问题:如何在没有大量用户数据的情况下设计个性化推荐系统并让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题。
分类:
(1)用户冷启动:如何给新用户做个性化推荐
(2)物品冷启动:如何将新物品推荐给可能对其感兴趣的用户。在新闻网站等时效性很强的网站中非常重要。
(2)系统冷启动:如何在一个新开发的网站上设计个性化推荐,从而在网站刚发布时就让用户体验到个性化推荐服务。没有用户,只有一些物品信息

使用深度学习做推荐系统-Neural Collaborative Filtering_第1张图片

在输入层(Input Layer)上方是嵌入层(Embedding Layer)。它是将稀疏表示投影到密集向量(dense vector)的全连接层。在潜在因子模型( latent factor model)的上下文中,可以将获得的用户(项目)嵌入视为用户(项目)的潜在向量。然后将用户嵌入和项目嵌入馈入多层神经体系结构(我们称为神经协作过滤层),以将潜在矢量映射到预测分数。可以自定义神经CF层的每一层,以发现用户与项目交互的某些潜在结构。最后一个隐藏层 X X X 的维度决定了模型的 capability(性能)。最终的输出层是预测得分 y ^ u i \hat y_{ui} y^ui,通过最小化 y ^ u i \hat y_{ui} y^ui 与目标值 y u i y_{ui} yui 之间的逐点损失(pointwise loss)来进行训练。我们注意到,训练模型的另一种方法是执行成对学习(pairwise learning),例如使用贝叶斯个性化排名(Bayesian Personalized Ranking)[27]和基于保证金的损失(margin-based loss)[33]。由于本文的重点是神经网络建模部分,因此我们将扩展留给NCF的逐对学习(pairwise learning)作为未来的工作。

  1. 对于这两种loss,NCF都支持。在文中,使用的是point-wise loss。关于pair-wise loss可以参考BPR论文
  2. 常用的逐点学习方法主要是均方误差(squared loss),但它并不适合处理隐性数据,文中提出了一种逐点学习NCF的概率学方法,特别注重隐性数据的二进制属性。

现在,我们将NCF的预测模型表述为:

y ^ u i = f ( P T v u U , Q T v i I ∣ P , Q , Θ f ) (3) \hat{y}_{u i}=f\left(\mathbf{P}^{T} \mathbf{v}_{u}^{U}, \mathbf{Q}^{T} \mathbf{v}_{i}^{I} | \mathbf{P}, \mathbf{Q}, \Theta_{f}\right)\tag{3} y^ui=f(PTvuU,QTviIP,Q,Θf)(3)

其中 P ∈ R M × K P∈R^{M×K} PRM×K Q ∈ R N × K Q∈R^{N×K} QRN×K,分别表示用户和项目的潜在因子矩阵。和 Θ f Θ_f Θf 表示相互作用函数 f f f 的模型参数。由于函数 f f f 被定义为多层神经网络,因此可以表示为:
f ( P T v u U , Q T v i I ) = ϕ out ( ϕ X ( … ϕ 2 ( ϕ 1 ( P T v u U , Q T v i I ) ) … ) ) (4) f\left(\mathbf{P}^{T} \mathbf{v}_{u}^{U}, \mathbf{Q}^{T} \mathbf{v}_{i}^{I}\right)=\phi_{\text {out}}\left(\phi_{X}\left(\ldots \phi_{2}\left(\phi_{1}\left(\mathbf{P}^{T} \mathbf{v}_{u}^{U}, \mathbf{Q}^{T} \mathbf{v}_{i}^{I}\right)\right) \ldots\right)\right)\tag{4} f(PTvuU,QTviI)=ϕout(ϕX(ϕ2(ϕ1(PTvuU,QTviI))))(4)

Learning NCF

为了学习模型参数,现有的逐点方法(pointwise methods)[14,39]在很大程度上进行平方损失的回归:
L s q r = ∑ ( u , i ) ∈ Y ∪ Y − w u i ( y u i − y ^ u i ) 2 (5) L_{s q r}=\sum_{(u, i) \in \mathcal{Y} \cup \mathcal{Y}^{-}} w_{u i}\left(y_{u i}-\hat{y}_{u i}\right)^{2}\tag{5} Lsqr=(u,i)YYwui(yuiy^ui)2(5)

其中 Y \mathcal Y Y 表示在 Y Y Y中观察到的交互的集合,而 Y − \mathcal Y^- Y表示负实例的集合,可以是所有(或采样自)未观察到的交互; w u i w_{ui} wui 是一个超参数,表示训练实例 ( u , i ) (u,i) (ui) 的权重。虽然可以通过假设观测是从高斯分布中生成的[29]来解释平方损失,但我们指出,它与隐式数据可能不太吻合。这是因为对于隐式数据,目标值必须是二进制的1或0,表示 u u u 是否与 i i i 进行了交互。在下面的内容中,我们提出一种概率方法来学习逐点(pointwise)NCF,该方法特别注意隐式数据的二进制属性。
考虑到隐性反馈的一类性质,我们可以将 y u i y_{ui} yui 的值作为一个标签–1表示项目 i i i 和用户 u u u 相关,否则为 0。这样一来预测分数 y ^ u i \hat y_{ui} y^ui 就代表了项目 i i i 和用户 u u u 相关的可能性大小。为了赋予 NCF 这样的概率解释,我们需要将网络输出限制到 [ 0 , 1 ] [0,1] [01] 的范围内,通过使用概率函数(e.g. 逻辑函数 s i g m o i d sigmoid sigmoid 或者 p r o b i t probit probit 函数)作为激活函数作用在输出层 ϕ o u t \phi_{out} ϕout ,我们可以很容易地实现数据压缩。经过以上设置后,我们这样定义似然函数:
p ( Y , Y − ∣ P , Q , Θ f ) = ∏ ( u , i ) ∈ Y y ^ u i ∏ ( u , j ) ∈ Y − ( 1 − y ^ u j ) (6) p\left(\mathcal{Y}, \mathcal{Y}^{-} | \mathbf{P}, \mathbf{Q}, \Theta_{f}\right)=\prod_{(u, i) \in \mathcal{Y}} \hat{y}_{u i} \prod_{(u, j) \in \mathcal{Y}^{-}}\left(1-\hat{y}_{u j}\right)\tag{6} p(Y,YP,Q,Θf)=(u,i)Yy^ui(u,j)Y(1y^uj)(6)

对似然函数取负对数,我们得到(负对数可以用来表示Loss函数,而且还能消除小数乘法的下溢出问题):
L = − ∑ ( u , i ) ∈ y log ⁡ y ^ u i − ∑ ( u , i ) ∈ y − log ⁡ ( 1 − y ^ u i ) = ∑ ( u , i ) ∈ y ∪ y − y u i log ⁡ y ^ u i + ( 1 − y u i ) log ⁡ ( 1 − y ^ u i ) (7) L=-\sum_{(u, i) \in \mathbf{y}} \log \hat{y}_{u i}-\sum_{(u, i) \in \mathbf{y}^{-}} \log \left(1-\hat{y}_{u i}\right)=\sum_{(u, i) \in \mathbf{y} \cup \mathbf{y}^{-}} y_{u i} \log \hat{y}_{u i}+\left(1-y_{u i}\right) \log \left(1-\hat{y}_{u i}\right)\tag{7} L=(u,i)ylogy^ui(u,i)ylog(1y^ui)=(u,i)yyyuilogy^ui+(1yui)log(1y^ui)(7)

这是最小化NCF方法的目标函数,可以通过执行随机梯度下降(SGD)来完成其优化。细心的读者可能已经意识到,它与二进制交叉熵损失(binary cross-entropy loss,也称为对数损失,log loss)相同。通过对NCF采用概率处理,我们将隐式反馈作为二进制分类问题来解决推荐问题。由于推荐文献中很少研究分类感知对数丢失,因此我们在这项工作中对其进行了探索,并在第4.3节中通过经验证明了其有效性。对于负实例 Y − \mathcal Y^- Y,我们从每次迭代中未观察到的交互中均匀采样它们,并控制采样率 w.r.t。观察到的互动次数。尽管采用非均匀抽样策略(例如,商品偏向性偏向[14,12])可能会进一步提高效果,但我们将探索作为未来的工作。

Generalized Matrix Factorization (GMF)

现在我们展示如何将 MF 解释为 NCF 框架的特例。由于MF是最流行的推荐模型,并且已在文献中进行了广泛研究,因此能够恢复它使NCF可以模仿大量分解模型[26]。
由于对输入层的用户(项目)ID进行了 one-hot 编码,因此可以将获得的嵌入向量视为用户(项目)的潜在向量。令用户潜在向量 p u \mathbf p_u pu P T v u U \mathbf P^T\mathbf v^U_u PTvuU,项目潜在向量 q i \mathbf q_i qi Q T v i I \mathbf Q^Tv^I_i QTviI。我们将第一个神经CF层的映射函数定义为:
ϕ 1 ( p u , q i ) = p u ⊙ q i (8) \phi_{1}\left(\mathbf{p}_{u}, \mathbf{q}_{i}\right)=\mathbf{p}_{u} \odot \mathbf{q}_{i}\tag{8} ϕ1(pu,qi)=puqi(8)

⊙ \odot 表示向量的逐元素乘积。然后,我们将向量投影到输出层:
y ^ u i = a o u t ( h T ( p u ⊙ q i ) ) (9) \hat{y}_{u i}=a_{o u t}\left(\mathbf{h}^{T}\left(\mathbf{p}_{u} \odot \mathbf{q}_{i}\right)\right)\tag{9} y^ui=aout(hT(puqi))(9)

其中 a o u t a_{out} aout h \mathbf h h 分别表示激活函数和边权。直观地,如果我们对 a o u t a_{out} aout 使用恒等函数并将 h \mathbf h h 强制为1的统一向量,则可以精确地恢复MF模型。
在 NCF 框架下,MF 可以很容易地推广和扩展。例如,如果我们允许在没有统一约束的情况下从数据中学习 h \mathbf h h,则将导致 MF 的变体,从而允许潜在维度的重要性发生变化。而且,如果我们对非线性使用 a o u t a_{out} aout 函数,它将把 MF 泛化为一个非线性设置,它可能比线性 MF 模型更具表现力。在这项工作中,我们在 NCF 下实现了 MF 的广义版本,它使用 s i g m o i d sigmoid sigmoid 函数 σ ( x ) = 1 / ( 1 + e − x ) σ(x)= 1 /(1 + e^{-x}) σ(x)=1/(1+ex)作为 a o u t a_{out} aout ,并从具有对数损失的数据中学习 h \mathbf h h(第3.1.1节)。我们将其称为GMF,是广义矩阵分解的缩写。

Multi-Layer Perceptron (MLP)

由于 NCF 采用两种途径来对用户和项目进行建模,因此将两种途径的特征串联起来是很直观的。这种设计已被多模式深度学习工作广泛采用[47,34]。但是,简单地向量级联(concatenation)并不能解决用户和项目潜在特征之间的任何交互,这不足以对协作过滤效果进行建模。为了解决这个问题,我们建议使用标准的 MLP 在连接的向量上添加隐藏层,以了解用户和项目潜在特征之间的交互。从这个意义上讲,我们可以赋予模型很大程度的灵活性和非线性性,以学习 p u p_u pu q i q_i qi 之间的相互作用,而不是 GMF 仅在其上使用固定的元素乘积(element-wise product)的方式。更准确地说,在我们的NCF框架下,MLP模型定义为:
z 1 = ϕ 1 ( p u , q i ) = [ p u q i ] ϕ 2 ( z 1 ) = a 2 ( W 2 T z 1 + b 2 ) … ϕ L ( z L − 1 ) = a L ( W L T z L − 1 + b L ) y ^ u i = σ ( h T ϕ L ( z L − 1 ) ) (10) \begin{aligned} \mathbf{z}_{1} &=\phi_{1}\left(\mathbf{p}_{u}, \mathbf{q}_{i}\right)=\left[\begin{array}{l} \mathbf{p}_{u} \\ \mathbf{q}_{i} \end{array}\right] \\ \phi_{2}\left(\mathbf{z}_{1}\right) &=a_{2}\left(\mathbf{W}_{2}^{T} \mathbf{z}_{1}+\mathbf{b}_{2}\right) \\ & \ldots \\ \phi_{L}\left(\mathbf{z}_{L-1}\right) &=a_{L}\left(\mathbf{W}_{L}^{T} \mathbf{z}_{L-1}+\mathbf{b}_{L}\right) \\ \hat{y}_{u i} &=\sigma\left(\mathbf{h}^{T} \phi_{L}\left(\mathbf{z}_{L-1}\right)\right) \end{aligned}\tag{10} z1ϕ2(z1)ϕL(zL1)y^ui=ϕ1(pu,qi)=[puqi]=a2(W2Tz1+b2)=aL(WLTzL1+bL)=σ(hTϕL(zL1))(10)

其中 W x W_x Wx b x b_x bx a x a_x ax 分别表示第 x x x 层感知器的权重矩阵,偏置矢量和激活函数。对于 MLP 层的激活函数,可以自由选择 s i g m o i d sigmoid sigmoid,双曲正切(tanh)和 R e c t i f i e r Rectifier Rectifier(ReLU)等。我们想分析每个函数:1) s i g m o i d sigmoid sigmoid 将每个神经元限制在 ( 0 , 1 ) (0,1) (0,1) 中,这可能会限制模型的性能;众所周知遭受饱和,当神经元的输出接近 0 或 1 时,神经元就会停止学习。2)尽管 t a n h tanh tanh 是更好的选择并已被广泛采用[6,44],但它只能缓解 s i g m o i d sigmoid sigmoid 的问题。在一定程度上,因为它可以看作是 s i g m o i d sigmoid sigmoid 的重新缩放版本 ( t a n h ( x / 2 ) = 2 σ ( x ) − 1 ) (tanh(x / 2)=2σ(x)-1) (tanh(x/2)=2σ(x)1)。 3)因此,我们选择 R e L U ReLU ReLU,它在生物学上似乎更合理,并且被证明是不饱和的[9];此外,它鼓励稀疏激活,非常适合稀疏数据,并使模型不太可能过拟合。我们的经验结果表明, R e L U ReLU ReLU 的性能比 t a n h tanh tanh 稍好,而 t a n h tanh tanh 则比 s i g m o i d sigmoid sigmoid 更好。
对于网络结构的设计,一种常见的解决方案是遵循塔式模式,其中最下层最宽,每个连续层具有较少数量的神经元(如图2所示)。前提是通过为高层使用少量隐藏单元,他们可以了解数据的更多抽象特征[10]。我们凭经验实现塔式结构,将每个连续的更高层的层大小减半。

Fusion of GMF and MLP

到目前为止,我们已经开发了 NCF-GMF 的两个实例应用了线性内核来建模潜在特征交互,而MLP使用了非线性内核来从数据中学习交互功能。于是出现了一个问题:我们如何在NCF框架下融合GMF和MLP,以便他们可以相互加强以更好地建模复杂的用户间交互?
一个简单的解决方案是让 GMF 和 MLP 共享相同的嵌入层,然后组合其交互功能的输出。这种方式与著名的神经张量网络(NTN)具有相似的精神[33]。具体而言,可以将GMF与一层MLP结合的模型表示为
y ^ u i = σ ( h T a ( p u ⊙ q i + W [ p u q i ] + b ) ) (11) \hat{y}_{u i}=\sigma\left(\mathbf{h}^{T} a\left(\mathbf{p}_{u} \odot \mathbf{q}_{i}+\mathbf{W}\left[\begin{array}{l} \mathbf{p}_{u} \\ \mathbf{q}_{i} \end{array}\right]+\mathbf{b}\right)\right)\tag{11} y^ui=σ(hTa(puqi+W[puqi]+b))(11)

但是,共享 GMF 和 MLP 的嵌入可能会限制融合模型的性能。例如,这意味着GMF和MLP必须使用相同大小的嵌入;对于两个模型的最佳嵌入大小相差很大的数据集,此解决方案可能无法获得最佳集合。
为了为融合模型提供更大的灵活性,我们允许 GMF 和 MLP 学习单独的嵌入,并通过串联它们的最后一个隐藏层来组合这两个模型。图3说明了我们的建议,其建议如下:
ϕ G M F = p u G ⊙ q i G ϕ M L P = a L ( W L T ( a L − 1 ( … a 2 ( W 2 T [ p u M q i M ] + b 2 ) … ) ) + b L ) y ^ u i = σ ( h T [ ϕ G M F ϕ M L P ] ) \begin{aligned} \phi^{G M F} &=\mathbf{p}_{u}^{G} \odot \mathbf{q}_{i}^{G} \\ \phi^{M L P} &=a_{L}\left(\mathbf{W}_{L}^{T}\left(a_{L-1}\left(\ldots a_{2}\left(\mathbf{W}_{2}^{T}\left[\begin{array}{c} \mathbf{p}_{u}^{M} \\ \mathbf{q}_{i}^{M} \end{array}\right]+\mathbf{b}_{2}\right) \ldots\right)\right)+\mathbf{b}_{L}\right) \\ \hat{y}_{u i} &=\sigma\left(\mathbf{h}^{T}\left[\begin{array}{c} \phi^{G M F} \\ \phi^{M L P} \end{array}\right]\right) \end{aligned} ϕGMFϕMLPy^ui=puGqiG=aL(WLT(aL1(a2(W2T[puMqiM]+b2)))+bL)=σ(hT[ϕGMFϕMLP])

其中 p u G \mathbf p^G_u puG p u M \mathbf p^M_u puM 分别表示用户嵌入 GMF 和 MLP 部件;以及 q i G \mathbf q^G_i qiG q i M \mathbf q^M_i qiM 用于项目嵌入的类似符号。如前所述,我们将 R e L U ReLU ReLU 用作 MLP 层的激活函数。该模型结合了 MF 的线性和 DNN 的非线性来对用户项潜在结构进行建模。我们将此模型称为“ NeuMF”,它是神经矩阵分解的缩写。 w.r.t.模型的导数每个模型参数都可以使用标准反向传播进行计算,由于空间限制,此处将其省略。

使用深度学习做推荐系统-Neural Collaborative Filtering_第2张图片
Pre-training

由于 NeuMF 目标函数的不凸性,基于梯度的优化方法只能找到局部最优解。据报道,初始化对于深度学习模型的收敛和性能起着重要作用[7]。由于 NeuMF 是 GMF 和 MLP 的集合,因此我们建议使用 GMF 和 MLP 的预训练模型初始化 NeuMF。
我们首先使用随机初始化训练 GMF 和 MLP,直到收敛为止。然后,我们使用它们的模型参数作为 NeuMF 参数的相应部分的初始化。唯一的调整是在输出层,我们将两个模型的权重与
h ← [ α h G M F ( 1 − α ) h M L P ] \mathbf{h} \leftarrow\left[\begin{array}{c} \alpha \mathbf{h}^{G M F} \\ (1-\alpha) \mathbf{h}^{M L P} \end{array}\right] h[αhGMF(1α)hMLP]

其中 h G M F \mathbf h^{GMF} hGMF h M L P \mathbf h^{MLP} hMLP 分别表示预训练 GMF 模型和 MLP 模型的 h \mathbf h h 向量; α α α 是确定两个预训练模型之间权衡的超参数。
为了从头开始训练GMF和MLP,我们采用了自适应矩估计(Adam)[20],该函数通过对频繁的参数执行较小的更新而对不频繁的参数进行较大的更新来适应每个参数的学习率。与普通的SGD相比,Adam方法在两个模型上的收敛速度都更快,并且减轻了调整学习速度的麻烦。将预训练的参数输入NeuMF后,我们使用香草SGD(而非Adam)对其进行优化。这是因为亚当需要保存动量信息以正确更新参数。由于我们仅使用预训练的模型参数初始化NeuMF,并且放弃保存动量信息,因此不适合使用基于动量的方法进一步优化NeuMF。

EXPERIMENTS

在本节中,我们进行实验的目的是回答以下研究问题:

  • RQ1我们提出的NCF方法是否优于最新的隐式协作过滤方法?
  • RQ2我们建议的优化框架(带有负采样的对数损失)如何用于推荐任务?
  • RQ3更深层次的隐藏单元是否有助于从用户与项目的交互数据中学习?

接下来,我们首先介绍实验设置,然后回答以上三个研究问题。

Performance Comparison (RQ1)

使用深度学习做推荐系统-Neural Collaborative Filtering_第3张图片
Utility of Pre-training
使用深度学习做推荐系统-Neural Collaborative Filtering_第4张图片

Log Loss with Negative Sampling (RQ2)

使用深度学习做推荐系统-Neural Collaborative Filtering_第5张图片

Is Deep Learning Helpful? (RQ3)

使用深度学习做推荐系统-Neural Collaborative Filtering_第6张图片
使用深度学习做推荐系统-Neural Collaborative Filtering_第7张图片

CONCLUSION AND FUTURE WORK

在这项工作中,我们探索了用于协作过滤的神经网络体系结构。我们设计了一个通用框架NCF,并提出了三个实例化 GMF,MLP 和 NeuMF,它们以不同的方式对用户-项目交互进行建模。我们的框架简单而通用。它不限于本文介绍的模型,而是旨在作为开发推荐的深度学习方法的指南。这项工作补充了用于协作过滤的主流浅层模型,为基于深度学习的推荐研究开辟了一条新途径。

将来,我们将研究NCF模型的成对学习器,并将NCF扩展到辅助信息模型,例如用户评论[11],知识库[45]和时间信号[1]。虽然现有的个性化模型主要集中于个人,但是为用户组开发模型很有趣,这有助于社会群体的决策[15,42]。此外,我们对构建多媒体项目的推荐器系统特别感兴趣,这是一项有趣的任务,但在推荐社区中受到的审查相对较少[3]。多媒体项目(例如图像和视频)包含更丰富的视觉语义[16,41],可以反映用户的兴趣。要建立多媒体推荐系统,我们需要开发有效的方法来从多视图和多模式数据中学习[13,40]。另一个新兴方向是探索递归神经网络和哈希方法[46]的潜力,以提供有效的在线推荐[14]。

推荐阅读:
【翻译】Neural Collaborative Filtering–神经协同过滤
【导读】Neural Collaborative Filtering

你可能感兴趣的:(Deep,Learning,RS)