论文笔记:IJCAL 2018 Outer Product-based Neural Collaborative Filtering

前言

本文提出了一个新的多层神经网络架构ONCF来执行协同过滤。其想法是使用一个外部产品来显式地建模嵌入空间的维度之间的成对关联。与现有的神经推荐模型相比,通过简单的连接或元素导向的产品将用户嵌入和条目嵌入结合在一起,使用位于嵌入层之上的外部产品,从而得到一个表达更丰富、语义更合理的二维交互图。在外积得到的交互图上面,提出使用卷积神经网络来学习嵌入维数之间的高阶关联。在两个公开的隐式反馈数据上的大量实验证明了ONCF框架的有效性,特别是在多层神经推荐模型的低层次中,使用外部积来建模嵌入维数之间的相关性的积极效果。

论文链接:https://arxiv.org/abs/1808.03912
github:https://github.com/duxy-me/ConvNCF

1. 背景

设计CF模型的关键在于

  • 1)如何表示用户和项
  • 2)如何基于这些表示为它们的交互建模。

矩阵分解(MF)是CF中的一种主要模型,它将用户(或项目)表示为潜在因子(也称为嵌入)的向量,将交互建模为用户嵌入和项目嵌入的内积。它使用一个固定的和数据相关的函数——即内积——作为交互函数。因此,本质上假设嵌入维数(即嵌入空间的维数)是相互独立的,对所有数据点的预测贡献是相等的。这种假设是不切实际的,因为嵌入维度可以解释为项目的某些属性,而这些属性不一定是独立的。同时近年来的研究说明从数据中学习交互函数的做法是高效的。但是用户和物品建模的嵌入维度之间几乎没有关联。尽管根据通用逼近定理,以下MLP在理论上能够学习任何连续函数,但目前的优化技术不能有效地捕捉维数相关性。

基于此在本文提出了一种新的神经协同过滤体系结构,将嵌入维数之间的关联整合到建模中。具体地说,建议使用嵌入层之上的外部积操作,显式地捕获嵌入维度之间的成对关联。将外积得到的相关矩阵称为相互作用映射,为 K × K K\times K K×K矩阵,其中 K K K为嵌入大小。交互图非常适合CF任务,因为它不仅包含了MF中使用的交互信号(其对角元素对应于内积的中间结果),还包含了所有其他的成对关联。交互映射中的这种丰富语义有助于以下非线性层学习可能的高阶维关联。此外,交互映射的矩阵形式使得与有效卷积神经网络(effective convolutional neural network, CNN)学习交互函数成为可能,CNN比全连通的MLP具有更好的泛化性,更容易深入。

综上,本文的贡献如下:

  • 提出了一个新的神经网络框架ONCF,它通过外部积操作对NCF建模来建模嵌入维数之间的成对关联。
  • 在ONCF框架下提出了一个名为ConvNCF的新模型,它利用CNN以分层的方式从局部到全局学习嵌入维数之间的高阶相关性。
  • 对两个公开的内隐反馈数据进行了广泛的实验,验证了ONCF方法的有效性和合理性。
  • 这是第一个使用CNN学习用户嵌入和条目嵌入交互功能的作品。它为探索先进的、快速更新的CNN推荐研究方法打开了新的大门。

2.ONCF

2.1 参数定义

P P P 代表矩阵, p u p_u pu 代表矩阵中某一行的向量 S \mathcal{S} S 代表3D tensor, p u , k p_{u,k} pu,k 代表矩阵中具体的某一个元素 s a , b , c s_{a,b,c} sa,b,c 代表 S \mathcal{S} S ( a , b , c ) (a,b,c) (a,b,c)所代表的元素的值, s a , b s_{a,b} sa,b代表 S \mathcal{S} S中某一片的值

2.2 ONCF framework

在这里插入图片描述
模型的目的是估计用户和物品之间的匹配分数,进而基于此分数矩阵可以得到将物品推荐给用户的个性化推荐列表

2.2.1 Input and Embedding Layer

首先给出用户 u u u 和物品 i i i 的特征,这些特征可以是它们的ID,用户性别,物品种类等等。将他们的特征编码成one-hot向量表示,进而得到 v u U v_u^U vuU v i I v_i^I viI 分别表示用户和物品的特征向量。进而通过学习可以得到它们的嵌入表示,学习方式如下所示
在这里插入图片描述
其中 P ∈ R M × K P \in \mathbb{R}^{M \times K} PRM×K Q ∈ R N × K Q \in \mathbb{R}^{N \times K} QRN×K 分别表示用户特征和物品特征的嵌入矩阵。 K K K M M M N N N分别表示嵌入维度,用户的数量,物品的数量。在纯粹的CF方法中,只有ID作为特征信息来对用户和物品进行描述

2.2.2 Interaction Map

这里是本文的最重要的部分,也是本文的创新点。本文提出使用外部积来对用户嵌入和物品嵌入进行交互图的建模
在这里插入图片描述
其中 E ∈ R K × K E \in \mathbb{R}^{K \times K} ERK×K,其中的每一个元素可以表示为 e k 1 , k 2 = p u , k 1 q i , k 2 e_{k_1,k_2}=p_{u,k_1}q_{i,k_2} ek1,k2=pu,k1qi,k2

本文认为使用外积在以下三个方面更有利:

  • 1)它包含了矩阵分解(MF) - CF的主要方法-它只考虑交互图中的对角元素;
  • 2)考虑到不同嵌入维数之间的相关性,编码的信号比MF多;
  • 3)比简单的拼接操作更有意义,简单的拼接操作只保留嵌入的原始信息,不建模任何相关性。此外,最近有研究表明,明确地对特征嵌入的交互进行建模对于深度学习模型在稀疏数据上推广特别有用,而使用连接则不是最优方法。
  • 4)最后,交互映射的另一个潜在好处在于它的2D矩阵格式——与图像相同。在这方面,交互图中编码的两两相关可以被视为“图像”的局部特征。众所周知,深度学习方法在计算机视觉领域取得了最大的成功,许多强大的深度模型,特别是基于CNN 如ResNet和DenseNet已经被开发用于从二维图像数据中学习。构建一个2D交互映射,也可以将这些强大的CNN模型用于学习推荐任务的交互功能。

2.2.3 Hidden Layers

在建模完交互图之后,在此之上的是多个中间层的堆叠,用于从交互图上提取有关的信息。可以将整个操作抽象成公式 g = f Θ ( E ) g=f_{\Theta}(E) g=fΘ(E),其中 f Θ f_{\Theta} fΘ 多个中间层的模型, Θ \Theta Θ则代表模型的参数, g g g 代表模型最后的输出向量用于最后匹配分数的预测

2.2.4 Prediction Layer

预测层接受当时隐藏层输出的向量 g g g 作为输入,输出预测分数 y ^ u i = w T g \hat{y}_{ui}=w^Tg y^ui=wTg,其中 w w w 是对交互图 g g g 中信号的重新加权

基于此整个模型ONCF的模型参数可以表示为 Δ = { P , Q , Θ , w } \Delta=\{P,Q,\Theta,w\} Δ={P,Q,Θ,w}

2.2.5 Learning ONCF for Personalized Ranking

本文采用BPR损失函数
在这里插入图片描述
其中 λ Δ \lambda_{\Delta} λΔ 为参数正则化以防止过拟合, D \mathcal{D} D D : = { ( u , i , j ) ∣ i ∈ Y u + ∩ j ∉ Y u + } \mathcal{D}:=\{(u,i,j)|i \in \mathcal{Y}^+_u \cap j \not \in \mathcal{Y}_u^+\} D:={(u,i,j)iYu+jYu+},其中 Y u + \mathcal{Y}_u^+ Yu+ 代表被用户访问过产生交互的物品,通过最小化BPR loss来完成整个模型参数的迭代。

2.3 Convolutional NCF

在这里插入图片描述
为了解决MLP的缺点,我们提出使用在交互图上面的CNN来提取信号。由于CNN可以共享权重,它使用的参数比MLP少得多。进而可以轻松地构建比MLP更深入的模型,并有利于学习嵌入维度之间的高阶相关性。图2显示了ConvNCF模型的说明性示例。注意,由于CNN背后的复杂概念(例如,stride, padding等),这里没有给出ConvNCF模型的系统表述。相反,为了不失去一般性,解释了这个特定设置的ConvNCF,因为它在实验中已经证明了良好的性能。从技术上讲,ConvNCF模型可以使用任何CNN结构和参数设置

通过图可以得出输入的交互图为64x64,整个模型具有6个hidden layers,其中每一层具有32个feature maps。在层 l l l 中的 c c c feature map表示为 E l c E^{lc} Elc ,由于采用2x2的卷积核,因此 E 1 c ∈ R 32 × 32 E^{1c} \in \mathbb{R}^{32 \times 32} E1cR32×32 E 2 c ∈ R 16 × 16 E^{2c} \in \mathbb{R}^{16 \times 16} E2cR16×16,每一层的feature maps进行堆叠可以得到三维向量的表示
在这里插入图片描述

其中 b 1 b_1 b1 表示第一层的偏置, T 1 \mathcal{T^1} T1 是三维向量代表经过第一层经过卷积后所有feature maps的堆叠。进而可以得到更一般的形式
在这里插入图片描述
卷积滤波器可以被看作是一个层的“局部连接权矩阵”,因为它在生成该层的所有特征图条目时是共享的。与完全连接层相比,这显著减少了卷积层的参数数量。具体来说,与拥有超过800万个参数的1层MLP相比,上面的6层CNN只有大约2万个参数,小了几个数量级。这使得ConvNCF比MLP更稳定和可推广。

3. 实验

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值