随着互联网的快速发展,网络信息呈指数级增长,如何从海量信息中分析和挖掘潜在有价值的知识或者规律,帮助用户找到感兴趣的信息意义重大。由于主动搜索用户感兴趣内容的方式局限性较大,因此推荐系统应运而生。推荐系统能够快速地从海量信息中过滤出符合用户需求的内容并主动推送给用户,已被广泛应用于电子商务推荐、个性化广告推荐、新闻推荐等诸多领域。
推荐系统主要分为基于协同过滤的推荐系统和基于内容的推荐系统两类[1-2]。基于协同过滤的推荐系统利用用户过去对物品的评分或交互历史进行推荐。基于内容的推荐系统则是为每一个用户和物品生成一个画像,然后向用户推荐与其画像最相似的物品集合。基于协同过滤的推荐算法由于具有较好的推荐效果而受到学者的广泛关注。矩阵分解(Matrix Factorization,MF)算法[3-4]是基于协同过滤的推荐算法中的主流算法,其利用用户物品交互矩阵来学习用户和物品特征的隐含向量。然而,在实际应用中,用户物品交互矩阵通常会非常稀疏,从而导致矩阵分解算法的推荐效果不理想,同时矩阵分解算法还存在冷启动问题[5],不适用于新用户和新物品的推荐。为解决上述问题,文献[6-8]提出方法将用户或物品的一些辅助信息融入矩阵分解模型。这些辅助信息包括用户人口统计学信息、物品类别、用户评论等信息,但是这些方法只是将辅助信息作为附加项,在模型训练过程中并没有与矩阵分解算法中的用户、物品隐含向量进行联合更新。此外,由于辅助信息也比较稀疏,如果提取的辅助信息特征质量较差,则会影响矩阵分解算法效果,因此学者们尝试研究性能更好的特征提取模型来得到更具表达力的用户物品隐含向量。
近年来,深度学习技术[9-10]在自然语言处理、图像识别等领域取得了巨大成功,其能从大量数据中发现其中的隐含特征,已有很多学者将深度学习技术应用于推荐系统。文献[11-12]通过受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)、多层感知机(Multi-Layer Perceptron,MLP)等将深度神经网络直接应用于协同过滤算法,但其没有利用辅助信息进一步提升推荐效果。文献[13]提出基于自编码器的协同过滤算法AutoRec,该算法是较早将自编码器应用于推荐系统的算法,此后涌现出一系列基于自编码器的算法,如文献[14]通过自编码器提取物品特征并将其融入矩阵分解模型的物品隐向量中。该算法虽然提升了推荐效果,但会受限于提取出的物品特征质量。文献[15]提出基于半自动编码器的混合推荐算法,将用户交互历史与用户辅助信息向量拼接后通过半自动编码器进行重构以得到缺失评分。虽然该算法使用半自动编码器进行推荐,但是推荐效果提升不明显。文献[16]提出基于边际降噪自编码器的混合协同过滤推荐算法,虽然该算法将辅助信息特征提取融入矩阵分解模型,但其没有利用用户和物品的交互历史,推荐效果还有较大的提升空间。由文献[14-16]研究结果可知:通过深度学习技术提取用户和物品辅助信息,并结合矩阵分解模型进行联合学习具有更好的推荐效果。本文提出一种基于半自动编码器的协同过滤推荐算法Semi-Autoencoder MF,该算法利用半自动编码器提取用户和物品的辅助信息特征,然后将提取出的特征融入矩阵分解模型,使得半自动编码器与矩阵分解模型进行联合更新以提升推荐效果。
1 相关工作 1.1 基于矩阵分解的协同过滤推荐算法矩阵分解算法是运用最广泛的协同过滤推荐算法之一,由于在Netflix[17]主办的推荐系统比赛中取得优异成绩而备受关注。广义上,矩阵分解是指将一个矩阵分解成两个或多个矩阵的乘积。在推荐系统中,矩阵分解是指将高维的用户物品交互矩阵分解成两个低维的用户矩阵和物品矩阵的乘积,如式(1)所示:
| $ \boldsymbol{R}\approx \boldsymbol{U}\times \boldsymbol{V}=\hat{\boldsymbol{R}} $ | (1) |
其中,
基于上述基础矩阵分解模型衍生出一系列矩阵分解的变种算法。例如,文献[18]提出一种融合偏置的奇异值分解(Biased Singular Value Decomposition,Biased SVD)算法,在基础矩阵分解模型上增加了偏置项进一步提高SVD模型的预测精度。该文作者认为传统矩阵分解模型将所有用户和物品无差别对待,不符合实际情况。以电影推荐为例,若某些用户非常挑剔,则对大部分电影的评分均偏低,此时就需要引入偏置项来消除这些因素的负面影响。Biased SVD模型的预测评分计算如式(2)所示:
| $ {\hat{\boldsymbol{r}}}_{ui}=\boldsymbol{\mu }+{\boldsymbol{b}}_{u}+{\boldsymbol{b}}_{i}+{\boldsymbol{q}}_{i}^{\mathrm{T}}{\boldsymbol{p}}_{u} $ | (2) |
其中,
| $ \begin{array}{l}\underset{{\boldsymbol{b}}_{i}, {\boldsymbol{b}}_{u}, {\boldsymbol{q}}_{i}, {\boldsymbol{p}}_{u}}{\mathrm{m}\mathrm{i}\mathrm{n}}\sum _{\left(u, i\mathrm{ }\right)\hat{\boldsymbol{I}}\boldsymbol{R}}{\left({\boldsymbol{r}}_{ui}-\boldsymbol{\mu }-{\boldsymbol{b}}_{u}-{\boldsymbol{b}}_{i}-{\boldsymbol{q}}_{i}^{\mathrm{T}}{\boldsymbol{p}}_{u}\right)}^{2}+\\ \lambda \left\{\sum\limits_{u}\left({\boldsymbol{b}}_{u}^{2}+{‖{\boldsymbol{p}}_{u}‖}^{2}\right)+\sum \limits_{i}\left({\boldsymbol{b}}_{i}^{2}+{‖{\boldsymbol{q}}_{i}‖}^{2}\right)\right\}\end{array} $ | (3) |
自动编码器通常要求输入层和输出层的向量维度相等,但是当输入层和输出层的向量维度不等时,自动编码器就有更加灵活的结构。受此启发,文献[15]提出半自动编码器结构,如图 1所示。
|
Download:
|
| 图 1 半自动编码器结构 Fig. 1 Structure of semi-autoencoder | |
基础的半自动编码器结构与自动编码器结构类似,也包括输入层
| $ \boldsymbol{h}=g(\boldsymbol{V}\boldsymbol{x}+\boldsymbol{b}) $ | (4) |
| $ \boldsymbol{x}\text{'}=f({\boldsymbol{V}}_{1}\boldsymbol{h}+{\boldsymbol{b}}_{1}) $ | (5) |
| $ L(\boldsymbol{x}, \boldsymbol{x}\text{'})={‖f\left(\mathrm{s}\mathrm{u}\mathrm{b}\right(\boldsymbol{x})-\boldsymbol{x}\text{'})‖}^{2} $ | (6) |
其中,
由于用户和物品由很多特征组成,因此这些特征在某种程度上可看作是矩阵分解模型中的隐式向量在其他特征空间中的表示。以电影为例,一部电影有类别、上映年份、演员、导演等结构化特征,还可能有电影海报、电影片段等视觉特征。这些多样的特征对用户和物品的实体表示会有不同的影响,并且可以映射到用户或物品的隐式向量上。本文的目标就是设计一种能够将用户和物品的多样特征与矩阵分解相关联的方法,从而充分利用矩阵分解模型和辅助信息各自的优势来达到更好的推荐效果。由于半自动编码器能够有效提取输入向量的特征,因此本文提出基于半自动编码器的协同过滤推荐算法。
2.2 算法模型本文提出基于半自编码器的协同过滤推荐算法Semi-Autoencoder MF,其模型结构如图 2所示。
|
Download:
|
| 图 2 Semi-Autoencoder MF模型结构 Fig. 2 Structure of Semi-Autoencoder MF model | |
在图 2中,用户与物品的相关辅助信息分别通过两个半自动编码器提取两个中间特征,然后利用映射矩阵映射到矩阵分解模型的用户或物品的隐式向量中,通过不断缩小预测评分和真实评分之间的误差进行模型训练。由于模型的用户和物品特征提取部分是对称的,因此本文主要介绍用户特征提取部分的具体过程。
假设向量
1) 将评分向量
2) 向量
| $ L(\boldsymbol{s}, {\tilde{\boldsymbol{u}}}_{i})={‖f\left(\mathrm{s}\mathrm{u}\mathrm{b}\right(\boldsymbol{s})-{\tilde{\boldsymbol{u}}}_{i})‖}^{2} $ | (7) |
3) 使用一个映射矩阵
将物品特征提取步骤添加至用户特征提取过程中,就能得到本文Semi-Autoencoder MF模型的完整结构。Semi-Autoencoder MF模型的损失函数定义如式(8)所示:
| $ \begin{array}{l}L=\alpha \sum {(\boldsymbol{R}-\boldsymbol{U}\boldsymbol{V})}^{2}+\beta {‖f\left(\mathrm{s}\mathrm{u}\mathrm{b}\right({\boldsymbol{S}}_{u})-\tilde{\boldsymbol{X}})‖}^{2}\mathrm{ }+\\ \beta {‖f\left(\mathrm{s}\mathrm{u}\mathrm{b}\right({\boldsymbol{S}}_{i}\mathrm{ })-\tilde{\boldsymbol{Y}})‖}^{2}+\mathrm{ }{‖{\boldsymbol{M}}_{1}{\boldsymbol{U}}^{\mathrm{T}}-{\boldsymbol{H}}_{u}‖}_{}^{2}+\\ {‖{\boldsymbol{M}}_{2}\mathrm{ }{\boldsymbol{V}}^{\mathrm{T}}-{\boldsymbol{H}}_{i}‖}_{}^{2}+\lambda ({‖\boldsymbol{U}‖}^{2}+{‖\boldsymbol{V}‖}^{2})\end{array} $ | (8) |
在式(8)中,等式右边的第1项代表矩阵分解模型的损失函数,第2项和第3项分别代表使用半自动编码器提取用户特征和物品特征的损失函数,第4项和第5项是将提取的用户和物品特征分别映射到矩阵分解模型的隐式向量上的损失函数,第6项代表正则项。由于各函数都为凸函数,因此式(8)会收敛于全局最优解。
3 实验结果与分析 3.1 实验数据集与设置为验证本文算法的有效性,选取MovieLens-100K和Book-Crossing两个数据集进行实验。MovieLens-100K和Book-Crossing是评估协同过滤推荐算法的常用数据集,其中,MovieLens-100K数据集的评分值为[1, 5]的整数,Book-Crossing数据集的评分值为[0, 10]的整数。这两个数据集的统计信息如表 1所示。
|
下载CSV 表 1 null的统计信息 Table 1 Statistical information of MovieLens-100K and Book-Crossing datasets |
本文从用户和物品的辅助信息中提取相关特征,辅助信息的具体构成如表 2所示。对于MovieLens-100K数据集,本文将用户辅助信息和物品辅助信息分别编码成30维和39维的multi-hot向量;对于Book-Crossing数据集,本文将用户辅助信息和物品辅助信息分别编码成10维和32维的multi-hot向量。本文分别随机采样原始数据集的80%和90%数据项作为训练集,剩余数据项作为测试集。同时,使用均方根误差(Root Mean Square Error,RMSE)作为评价指标评估推荐效果。
|
下载CSV 表 2 null的辅助信息 Table 2 Auxiliary information of MovieLens-100K and Book-Crossing datasets |
为验证Semi-Autoencoder MF算法的有效性,将其与以下推荐算法进行对比:
1) Biased SVD[18]:该算法是在基础MF算法上融合偏置项,提升了推荐准确性。
2) 概率矩阵分解(Probabilistic Matrix Factorization,PMF)[19]:该算法是在基础MF算法上引入概率模型做了进一步优化,其假设用户和物品的隐含向量与用户对物品的评分服从高斯分布。
3) SVD++[20]:该算法是Biased SVD的变种算法,在Biased SVD模型中融入隐式信息,通过用户交互物品表示用户偏好。
4) U-AutoRec[13]:该算法是基于自动编码器结构范式的新型协同过滤推荐算法,其将添加随机噪声的评分矩阵的每一列作为输入层,然后重构此列进而得到评分矩阵中的缺失值。
5) DCF[16]:该算法是一种基于概率矩阵分解和边际降噪自编码器的混合推荐算法。
在Semi-Autoencoder MF算法与上述推荐算法的对比过程中,为保证公平性,基于用户和物品隐含向量的协同过滤推荐算法(PMF、Biased SVD、SVD++、U-AutoRec和DCF)中的隐含向量维度均设为20,每个实验重复5次后取平均值作为最终实验结果。表 3和表 4分别为6种算法在2个数据集上采用80%和90%数据项的训练集的实验结果。
|
下载CSV 表 3 6种算法在MovieLens-100K数据集上的RMSE比较 Table 3 RMSE comparison of six algorithms on MovieLens-100K dataset |
|
下载CSV 表 4 6种算法在Book-Crossing数据集上的RMSE对比 Table 4 RMSE comparison of six algorithms on the Book-Crossing dataset |
由表 3和表 4的实验结果可以看出:1)Semi-Autoencoder MF和DCF比PMF、Biased SVD、SVD++和U-AutoRec的推荐效果更好,这说明将辅助信息融入矩阵分解模型能提升推荐性能;2)Semi-Autoencoder MF比DCF推荐效果更好,这说明使用半自动编码器提取用户和物品的辅助信息特征并融入矩阵分解模型中有助于提升推荐效果。
3.3 超参数对算法性能的影响分析 3.3.1 不同隐含向量维度的实验结果为验证隐含向量维度对性能的影响,本文对比Semi-Autoencoder MF和相关对比算法在不同隐含向量维度下的实验结果。本文将隐含向量维度分别设置为10、20、40和80,在MovieLens-100K和Book-Crossing数据集上的实验结果如图 3、图 4所示。
|
Download:
|
| 图 3 在MovieLens-100K数据集上不同隐含向量维度的RMSE对比 Fig. 3 RMSE comparison of different hidden vector dimensions on the MovieLens-100K dataset | |
|
Download:
|
| 图 4 在Book-Crossing数据集上不同隐含向量维度的RMSE对比 Fig. 4 RMSE comparison of different hidden vector dimensions on the Book-Crossing dataset | |
由图 3、图 4可以看出,随着隐含向量维度的增大,各种算法的RMSE都呈现下降趋势,而Semi-Autoencoder MF算法在有关隐含向量维度实验中的RMSE都优于其他对比算法,充分说明了其性能的优越性。
3.3.2 不同Semi-Autoencoder MF模型主要由矩阵分解部分及用户和物品特征提取部分组成。
|
Download:
|
| 图 5 在MovieLens-100K数据集上不同β值的RMSE对比 Fig. 5 RMSE comparison of different β values on the MovieLens-100K dataset | |
|
Download:
|
| 图 6 在Book-Crossing数据集上不同β值的RMSE对比 Fig. 6 RMSE comparison of different β values on the Book-Crossing dataset | |
本文提出一种基于半自动编码器的协同过滤推荐算法Semi-Autoencoder MF。利用半自动编码器良好的特征提取能力对用户和物品的辅助信息进行特征提取,将半自动编码器和矩阵分解模型通过反向传播算法进行联合更新。在MovieLens-100K和Book-Crossing公开数据集上的实验结果验证了Semi-Autoencoder MF算法的有效性。后续可将视觉、文本等领域的模态特征融入Semi-Autoencoder MF算法中,进一步提升推荐效果。
| [1] |
YUE S, LARSON M, HANJALIC A. Collaborative filtering beyond the user-item matrix: a survey of the state of the art and future challenges[J]. ACM Computing Surveys, 2014, 47(1): 1-45. |
| [2] |
ZHANG Fuguo. Survey of online social network based personalized recommendation[J]. Journal of Chinese Computer Systems, 2014, 35(7): 1470-1476. (in Chinese) 张富国. 基于社交网络的个性化推荐技术[J]. 小型微型计算机系统, 2014, 35(7): 1470-1476. |
| [3] |
SARWAR B, KARYPIS G, KONSTAN J, et al.Application of dimensionality reduction in recommender system-a case study[EB/OL].[2019-10-05]. https://wenku.baidu.com/view/056ed4cd05087632311212d9.html.
|
| [4] |
KOREN Y, BELL R, VOLINSKY C. Matrix factorization techniques for recommender systems[J]. Computer, 2009, 42(8): 30-37. DOI:10.1109/MC.2009.263 |
| [5] |
YU Hong, LI Junhua. Algorithm to solve the cold-start problem in new item recommendations[J]. Journal of Software, 2015, 26(6): 1395-1408. (in Chinese) 于洪, 李俊华. 一种解决新项目冷启动问题的推荐算法[J]. 软件学报, 2015, 26(6): 1395-1408. |
| [6] |
WU Xiyu, CHEN Qimai, LIU Hai, et al. Collaborative filtering recommendation algorithm based on representation learning of knowledge graph[J]. Computer Engineering, 2018, 44(2): 226-232, 263. (in Chinese) 吴玺煜, 陈启买, 刘海, 等. 基于知识图谱表示学习的协同过滤推荐算法[J]. 计算机工程, 2018, 44(2): 226-232, 263. |
| [7] |
SINGH A P, GORDON G J.Relational learning via collective matrix factorization[C]//Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.New York, ACM Press, 2008: 650-658.
|
| [8] |
CHEN Xiaoxia, LU Jing. Dynamic adaptive recommendation algorithm fusing multiple data sources[J]. Computer Engineering, 2018, 44(9): 64-69. (in Chinese) 陈晓霞, 卢菁. 融合多数据源的动态自适应推荐算法[J]. 计算机工程, 2018, 44(9): 64-69. |
| [9] |
HINTON G E, SALAKHUTDINOV R R. Reducing the dimensionality of data with neural networks[J]. Science, 2006, 313(5786): 504-507. DOI:10.1126/science.1127647 |
| [10] |
HINTON G E, OSINDERO S, TEH Y W. A fast learning algorithm for deep belief nets[J]. Neural Computation, 2006, 18(7): 1527-1554. DOI:10.1162/neco.2006.18.7.1527 |
| [11] |
SALAKHUTDINOV R, MNIH A, HINTON G.Restricted Boltzmann machines for collaborative filtering[C]//Proceedings of the 24th International Conference on Machine Learning.New York, USA: ACM Press, 2007: 791-798.
|
| [12] |
HE Xiangnan, LIAO Lizi, ZHANG Hanwang, et al.Neural collaborative filtering[C]//Proceedings of the 26th International Conference on World Wide Web.New York, USA: ACM Press, 2017: 173-182.
|
| [13] |
SEDHAIN S, MENON A K, SANNER S, et al.AutoRec: autoencoders meet collaborative filtering[C]//Proceedings of the 24th International Conference on World Wide Web.New York, USA: ACM Press, 2015: 111-112.
|
| [14] |
ZHANG Shuai, YAO Lina, XU Xiwei.AutoSVD++: an efficient hybrid collaborative filtering model via contractive auto-encoders[C]//Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval.New York, USA: ACM Press, 2017: 957-960.
|
| [15] |
ZHANG Shuai, YAO Lina, XU Xiwei, et al.Hybrid collaborative recommendation via semi-autoencoder[C]//Proceedings of International Conference on Neural Information Processing.Berlin, Germany: Springer, 2017: 185-193.
|
| [16] |
LI S, KAWALE J, FU Y.Deep collaborative filtering via marginalized denoising auto-encoder[C]//Proceedings of the 24th ACM International on Conference on Information and Knowledge Management.New York, USA: ACM Press, 2015: 811-820.
|
| [17] |
BENNETT J, LANNING S.The Netflix prize[C]//Proceedings of KDD Cup and Workshop in Conjunction with KDD.New York, USA: ACM Press, 2007: 35-42.
|
| [18] |
PATEREK A.Improving regularized singular value decom-position for collaborative filtering[EB/OL].[2019-10-05]. https://blog.csdn.net/qq_35771020/article/details/87993625.
|
| [19] |
MNIH A, SALAKHUTDINOV R R.Probabilistic matrix factorization[C]//Proceedings of the 20th International Conference on Neural Information Processing Systems.New York, USA: ACM Press, 2008: 1257-1264.
|
| [20] |
KOREN Y.Factorization meets the neighborhood: a multifaceted collaborative filtering model[C]//Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.New York, USA: ACM Press, 2008: 426-434.
|
2021, Vol. 47

,