基于半自动编码器的协同过滤推荐算法

2021-03-18 08:03张浩博
计算机工程 2021年3期
关键词:编码器特征提取物品

张浩博,薛 峰,刘 凯

(合肥工业大学计算机与信息学院,合肥 230601)

0 概述

随着互联网的快速发展,网络信息呈指数级增长,如何从海量信息中分析和挖掘潜在有价值的知识或者规律,帮助用户找到感兴趣的信息意义重大。由于主动搜索用户感兴趣内容的方式局限性较大,因此推荐系统应运而生。推荐系统能够快速地从海量信息中过滤出符合用户需求的内容并主动推送给用户,已被广泛应用于电子商务推荐、个性化广告推荐、新闻推荐等诸多领域。

推荐系统主要分为基于协同过滤的推荐系统和基于内容的推荐系统两类[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)所示:

其中,R∈Rm×n表示用户物品交互矩阵,U∈Rm×d表示用户矩阵,V∈Rd×n表示物品矩阵,m表示用户数,n表示物品数,d表示隐式特征的维数表示用户对物品的预测评分矩阵。

基于上述基础矩阵分解模型衍生出一系列矩阵分解的变种算法。例如,文献[18]提出一种融合偏置的奇异值分解(Biased Singular Value Decomposition,Biased SVD)算法,在基础矩阵分解模型上增加了偏置项进一步提高SVD 模型的预测精度。该文作者认为传统矩阵分解模型将所有用户和物品无差别对待,不符合实际情况。以电影推荐为例,若某些用户非常挑剔,则对大部分电影的评分均偏低,此时就需要引入偏置项来消除这些因素的负面影响。Biased SVD 模型的预测评分计算如式(2)所示:

1.2 半自动编码器

自动编码器通常要求输入层和输出层的向量维度相等,但是当输入层和输出层的向量维度不等时,自动编码器就有更加灵活的结构。受此启发,文献[15]提出半自动编码器结构,如图1 所示。

图1 半自动编码器结构Fig.1 Structure of semi-autoencoder

基础的半自动编码器结构与自动编码器结构类似,也包括输入层x∈RS、隐藏层h∈RH以及输出层x′∈RD,其中S、H、D分别表示输入层、隐藏层、输出层的向量维数且满足H

其中,V∈RH×S和V1∈RD×H表示权重矩阵,b∈RH和b1∈RD表示偏置项。当计算损失函数时,半动编码器旨在优化x′与sub(x)的误差。半自动编码器结构具有以下优势:1)通过采样输入的不同子集来灵活地获得输入向量的多种表示;2)由于输入维数大于输出维数,因此可在输入层中添加一些辅助信息。

2 基于半自动编码器的协同过滤推荐

2.1 算法原理

由于用户和物品由很多特征组成,因此这些特征在某种程度上可看作是矩阵分解模型中的隐式向量在其他特征空间中的表示。以电影为例,一部电影有类别、上映年份、演员、导演等结构化特征,还可能有电影海报、电影片段等视觉特征。这些多样的特征对用户和物品的实体表示会有不同的影响,并且可以映射到用户或物品的隐式向量上。本文的目标就是设计一种能够将用户和物品的多样特征与矩阵分解相关联的方法,从而充分利用矩阵分解模型和辅助信息各自的优势来达到更好的推荐效果。由于半自动编码器能够有效提取输入向量的特征,因此本文提出基于半自动编码器的协同过滤推荐算法。

2.2 算法模型

本文提出基于半自编码器的协同过滤推荐算法Semi-Autoencoder MF,其模型结构如图2 所示。

图2 Semi-Autoencoder MF 模型结构Fig.2 Structure of Semi-Autoencoder MF model

在图2 中,用户与物品的相关辅助信息分别通过两个半自动编码器提取两个中间特征,然后利用映射矩阵映射到矩阵分解模型的用户或物品的隐式向量中,通过不断缩小预测评分和真实评分之间的误差进行模型训练。由于模型的用户和物品特征提取部分是对称的,因此本文主要介绍用户特征提取部分的具体过程。

假设向量ui表示用户i对所有物品的评分,向量vj表示所有用户对物品j的评分,xi表示用户i的辅助信息,yj表示物品j的辅助信息。

1)将评分向量ui和用户辅助向量xi拼接得到向量s,将其作为半自动编码器的输入层。

2)向量s经过半自动编码器进行编码得到中间层向量h,然后由h重构输入层的用户对物品的历史评分子集得到输出层,这部分的损失函数如式(7)所示:

3)使用一个映射矩阵M1将中间层h映射到用户的隐含向量上,这样在模型训练时可通过反向传播算法带动半自动编码器的更新,从而使得半自动编码器的特征与矩阵分解模型相关联,实现联合更新。使用映射矩阵实现联合更新的优势在于联合更新能同时根据半自动编码器的特征提取损失函数和矩阵分解损失函数进行模型训练,取得更好的训练效果。

将物品特征提取步骤添加至用户特征提取过程中,就能得到本文Semi-Autoencoder MF 模型的完整结构。Semi-Autoencoder MF 模型的损失函数定义如式(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 所示。

表1 MovieLens-100K 和Book-Crossing 数据集的统计信息Table 1 Statistical information of MovieLens-100K and Book-Crossing datasets

本文从用户和物品的辅助信息中提取相关特征,辅助信息的具体构成如表2 所示。对于MovieLens-100K 数据集,本文将用户辅助信息和物品辅助信息分别编码成30 维和39 维的multi-hot 向量;对于Book-Crossing 数据集,本文将用户辅助信息和物品辅助信息分别编码成10 维和32 维的multihot 向量。本文分别随机采样原始数据集的80%和90%数据项作为训练集,剩余数据项作为测试集。同时,使用均方根误差(Root Mean Square Error,RMSE)作为评价指标评估推荐效果。

表2 MovieLens-100K 和Book-Crossing 数据集的辅助信息Table 2 Auxiliary information of MovieLens-100K and Book-Crossing datasets

3.2 算法性能对比

为验证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%数据项的训练集的实验结果。

表3 6 种算法在MovieLens-100K 数据集上的RMSE 比较Table 3 RMSE comparison of six algorithms on MovieLens-100K dataset

表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 所示。

图3 在MovieLens-100K 数据集上不同隐含向量维度的RMSE 对比Fig.3 RMSE comparison of different hidden vector dimensions on the MovieLens-100K dataset

图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 模型主要由矩阵分解部分及用户和物品特征提取部分组成。β值在Semi-Autoencoder MF 模型中的作用是调节用户、物品特征提取部分的损失函数对整个模型损失函数的影响。为观察特征提取部分对推荐性能的影响,本文对不同β值下的Semi-Autoencoder MF 算法进行对比实验,结果如图5、图6 所示。由图5、图6 可以看出,不同β值对实验结果具有不同影响。当β=0 时,Semi-Autoencoder MF 模型就退化为普通矩阵分解模型。在MovieLens-100K 数据集上,当β=0.1 时Semi-Autoencoder MF 算法性能最佳,在Book-Crossing 数据集上,当β=0.05 时Semi-Autoencoder MF 算法性能最佳。

图5 在MovieLens-100K 数据集上不同β 值的RMSE 对比Fig.5 RMSE comparison of different β values on the MovieLens-100K dataset

图6 在Book-Crossing 数据集上不同β 值的RMSE 对比Fig.6 RMSE comparison of different β values on the Book-Crossing dataset

4 结束语

本文提出一种基于半自动编码器的协同过滤推荐算法Semi-Autoencoder MF。利用半自动编码器良好的特征提取能力对用户和物品的辅助信息进行特征提取,将半自动编码器和矩阵分解模型通过反向传播算法进行联合更新。在MovieLens-100K 和Book-Crossing 公开数据集上的实验结果验证了Semi-Autoencoder MF 算法的有效性。后续可将视觉、文本等领域的模态特征融入Semi-Autoencoder MF 算法中,进一步提升推荐效果。

猜你喜欢
编码器特征提取物品
称物品
“双十一”,你抢到了想要的物品吗?
谁动了凡·高的物品
基于Daubechies(dbN)的飞行器音频特征提取
基于FPGA的同步机轴角编码器
基于双增量码道的绝对式编码器设计
Bagging RCSP脑电特征提取算法
JESD204B接口协议中的8B10B编码器设计
找物品
基于MED和循环域解调的多故障特征提取