基于深度神经网络的推荐算法
周圣盛 I 文
甘世康 I 技术审稿
目录
1. 前言
2. 矩阵分解算法
3. 基于深度神经网络的推荐算法
4. 算法测评
5. 结语
前言
随着移动互联网技术的发展,我们早已进入大数据时代,用户与用户、用户与物品(网页、商品、电影、服务等)之间的交互也变得日益复杂。而潜在的规律就隐藏在这些交互当中,通过挖掘这些潜在信息,系统可以更好的为用户提供个性化服务,从而创造更高的商业利益。推荐系统就是通过用户与用户或者用户与商品之间的交互来挖掘用户与用户或者用户与商品之间的潜在联系,进而为用户提供个性化推荐服务。推荐算法有很多,有基于用户的推荐、基于物品的推荐,也有基于隐语义的推荐。这篇文章着重介绍基于深度神经网络的推荐算法Neural Collaborative Filtering (NCF),阐释NCF如何利用深度神经网络来学习传统推荐算法所无法学习的特征。
矩阵分解算法
首先我们来简单介绍一下矩阵分解算法(Matrix Factorization),MF算法是NCF的基石。
为了能够给用户提供个性化推荐,往往需要预测用户对物品的评分,矩阵分解是当前最流行的评分预测算法之一。给定一个非常大且稀疏的用户-物品评分矩阵m,通过学习两个潜在的矩阵p、q,然后通过这两个矩阵相乘得到一个新的矩阵m'作为预测评分矩阵,这就是矩阵分解,如下图所示:
其中u表示用户(user)、i表示物品(item),f表示潜在因子(latent factor),有了学习到的两个矩阵p、q,我们就可以预测任何一个用户u对任何一个物品i的评分:
有了预测评分,我们可以通过获取用户最感兴趣的电影列表(如评分排名最高的电影列表)来做个性化推荐。这就是矩阵分解算法,矩阵分解比较直观,并且高效,因此也衍生了一系列基于矩阵分解算法的其他评分预测算法,如timeSVD、timeSVD++、eALS等。但是矩阵分解也有它的缺点,从模型公式中我们可以发现,矩阵分解是一个线性模型,它不能学习用户-物品交互中潜在的非线性特征。
基于深度神经网络的推荐算法
NCF是一个基于深度神经网络的推荐算法框架,它定义了一套通用架构,其架构如下图所示:
NCF框架主要定义了四层:
· Input Layer:主要是用户、物品的one-hot encodings,用于作为整个神经网络的输入;
· Embedding Layer:通过学习得到的用户、物品在Latent Space中的向量表示;
· Neural CF Layer:即神经网络层,其每层网络都是fully-connected layer;
· Output Layer:最终预测的评分输出。
NCF的评分预测过程也比较简单,其实就是将用户和物品的one-hot encodings作为输入,然后通过神经网络传播,最终得到预测的评分,其计算公式如下:
这里对整个神经网络的训练采用binary-cross entropy:
NCF是一个通用的框架,其具体的实现有三种:
· Generalized Matrix Factorization (GMF)
· Multi-Layer Perceptron (MLP)
· Neural Matrix Factorization (NeuMF)
让我们来详细解释一下各个具体实现。
GMF
GMF从名字上就可以看出,它是对MF的一次抽象,它的模型如下:
从模型中我们可以看出,GMF只有一层神经网络,这层神经网络将用户、物品的one-hot encodings作element-wise相乘,然后将乘积矩阵作为输入,其输出就是最终的评分。它的计算公式为:
值得注意的一点是,从公式中我们可以发现,如果将神经网络的参数设为矩阵1(即矩阵的每个元素都是数值1),然后将激活函数设为恒等函数,那么GMF恰好能够还原MF。所以可以认为,GMF是基于MF的,并且在MF的基础上提供了扩展。神经网络的参数我们可以看做是对用户、物品隐藏特征的加权,非线性的激活函数(如sigmoid函数)可以捕捉传统MF所不能学习的非线性特征。
MLP
NCF的第二个具体实现是MLP,即多层感知机的实现方式,其模型如下图所示:
MLP与GMF的不同之处有两点:
1. MLP如其名字所示,它有多层神经网络,而GMF只有一层,更多层的神经网络有助于学习更复杂的特征;
2.MLP是将用户、物品one-hot encodings的concatenation作为输入,这样做的好处也是能够让神经网络学习更复杂的特征。
MLP虽然不能像GMF那样还原传统的MF,但是MLP的多层神经网络设计,能够让其学习比GMF能学习到的更复杂的用户、物品交互特征。
NeuMF
NeuMF是NCF的第三个实现,它结合了GMF和MLP,吸取了二者的优势,可以比GMF和MLP更好的表示用户、物品交互行为特征,其结构如下图所示:
从图中我们可以清晰的看出,NeuMF的左侧是GMF,右侧是MLP,然后再将二者的输出做Concatenation,最后再通过一层神经网络来得到最终的评分预测。GMF因为是对MF的扩展,因此可以比较好的捕捉用户、物品之间的线性关系,而MLP由于多层神经网络的贡献,可以学习更多的用户、物品之间非线性关系,而NeuMF通过对二者的结合,既能很好的学习线性关系,也能很好的学习非线性关系,从而做出更准确的评分预测。
算法评测
对NCF的评测,数据集采用MovieLens和Pinterest,数据集特征可参加下表:
从表中我们可以看到,两个数据集中用户与物品的交互都超过了100万次,而且稀疏度都特别大。测评主要针对Hit Ratio (HR)和Normalized Discounted Cumulative Gain (NDCG)来进行,测评结果参见下表:
表中展示的是在两个数据集上,HR和NDCG在TopK为10的时候,随着隐藏向量空间维度变化的曲线。不难发现,采用基于深度学习的推荐算法,其推荐效果得到了不小的提升,这主要归功于深度神经网络对复杂非线性特征的学习能力。
结语
本文详细解释了基于深度神经网络的推荐算法NCF,该算法既能够捕捉用户、商品之间的线性交互特征,也能捕捉用户、商品之间非线性交互特征,弥补了传统MF在非线性特征学习方面的欠缺。该算法也是基于深度学习推荐算法的开山鼻祖,这个算法之后有更多基于深度学习的推荐算法被提出(如CCCFNet、WDL、DeepFM等),也获得了很好的成果。随着深度学习技术的发展,基于深度学习的推荐算法将会越来越成熟,具有越来越强的表现力,为推荐领域注入新的力量。
引用
[1] He, Xiangnan, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu, and Tat-Seng Chua. "Neural collaborative filtering." In Proceedings of the 26th International Conference on World Wide Web, pp. 173-182. International World Wide Web Conferences Steering Committee, 2017.
[2] Koren, Yehuda, Robert Bell, and Chris Volinsky. "Matrix factorization techniques for recommender systems." Computer8 (2009): 30-37.
[3] Zhang, Shuai, Lina Yao, and Aixin Sun. "Deep learning based recommender system: A survey and new perspectives." arXiv preprint arXiv:1707.07435 (2017).
本文版权归作者所有。
新加坡南洋理工CAP组
领取专属 10元无门槛券
私享最新 技术干货