用于个性化推荐的条件卷积隐因子模型

2020-04-20 13:13李南星盛益强
计算机工程 2020年4期
关键词:物品卷积条件

李南星,盛益强,倪 宏

(1.中国科学院声学研究所 国家网络新媒体工程技术研究中心,北京 100190;2.中国科学院大学 电子电气与通信工程学院,北京 100049)

0 概述

在信息爆炸时代,推荐系统在缓解信息过载方面发挥着关键作用,并且被许多在线服务,如电子商务、在线新闻和社交媒体网站等广泛采用。个性化推荐系统的关键在于根据用户的历史交互(如显性反馈数据中的评分和隐形反馈数据中的点击)对物品的偏好建模,称为协同过滤[1]。海量数据和数据稀疏是目前推荐系统需要解决的两个主要难题,而基于近邻的协同过滤算法在数据稀疏的情况下,用户或物品之间很难有相同的评分,使用少量的近邻预测评分使得推荐偏差较大[2-3]。因此,基于模型的协同过滤逐渐成为主流的推荐算法,其中主要有矩阵分解(Matrix Factorization,MF)模型[4-5]和神经网络模型。

矩阵分解是各种协同过滤算法常用的一种建模方法,它使用潜在特征的向量来对用户和物品分别进行建模,将用户和物品分别映射到各自的潜在空间,因此用户对物品的交互被建模为向量的内积。潜在因子模型(Latent Factor Model,LFM)是一种矩阵分解算法,由于其能适用于推荐系统场景中稀疏的用户交互数据并有效训练模型,已经成为一种标准推荐算法。目前许多研究工作致力于改进潜在因子模型,例如将其与基于近邻的模型相结合[5]、与物品内容的主题模型相结合[6-7]以及基于用户属性计算用户相似度用于解决数据稀疏问题[8]。尽管潜在因子模型对协同过滤有效,但其直接使用向量内积为用户交互行为建模限制了性能的进一步提升,因为向量内积只是简单地将潜在特征的乘法线性组合,不足以提取用户交互数据的复杂结构。

本文提出一种新的条件卷积方式,将其对用户交互行为进行特征提取,该方式不增加模型的参数量且保留了卷积网络较强的特征提取能力,在推荐过程中融入用户信息和物品信息并将其作为输入,使用隐性反馈数据和显性反馈数据对模型进行验证。

1 相关研究

随着神经网络在自然语言处理[9]、图像处理[10]等领域的广泛应用,将各种神经网络与协同过滤算法相结合并应用于推荐系统中成为近年来的研究热点。与矩阵分解的特征向量内积方式相比,神经网络具有较强的非线性映射能力,并且已经从理论上被证明能够拟合任意连续函数[11]。其中一些研究[7,12-13]将深度神经网络(Deep Neural Networks,DNN)应用于推荐任务并显示出较好的结果,但其主要是将DNN与传统推荐算法相结合:首先运用深度神经网络对数据进行预处理,如物品的文本描述、音乐的音频特征和图像的视觉内容,然后利用基于矩阵分解的协同过滤算法生成推荐。

此外还有一些研究直接基于神经网络模型为用户生成推荐,如CCCFNet[14]通过向量内积的方式提取用户和物品特征。神经协同过滤(Neural Collaborative Filtering,NCF)模型[15]是一个基于广义矩阵分解模型和多层感知器的组合模型,其中广义矩阵分解模型与CCCFNet相比,在向量内积时增加自适应权重,通过加权向量内积的方式提取用户和物品特征,而多层感知器通过加权求和的方式提取用户和物品特征。文献[16]提出的神经社交协同排名(Neural Social Collaborative Ranking,NSCR)方法在NCF的基础上进行改进,引入用户和物品的属性加强用户和物品特征的提取,并提出了配对池化,对用户(或物品)的属性之间进行两两组合。有研究表明,增加用户和物品属性等能够提升推荐系统性能[17]。

CCCFNet与NCF中的广义矩阵分解模型虽然也能使用用户和物品的属性信息加强神经网络对用户和物品特征的提取,但是基于向量内积方式的限制,要求两个向量的维度必须相等,所以不能自由地决定使用属性的个数,而且所能得到的特征组合数量也十分有限。而NCF中的多层感知器使用更加简单的加权求和方式组合特征,因此要求使用一个深度结构的网络才能得到丰富的特征组合。NSCR则是通过配对池化得到更多的组合结果,然而本文研究发现,NSCR所得到的特征组合是用户属性之间的组合以及物品属性之间的组合,而推荐系统所预测的评分是用户与物品之间交互,因此本文使用用户属性与物品属性之间的组合更加有效、合理。此外,NSCR的配对池化只能得到两个属性的组合,而不是更多个属性之间的高阶组合。

与推荐领域不同,计算机视觉领域中主流的特征提取方法是卷积,如ILSVRC(ImageNet Large Scale Visual Recognition Challenge)采用的是152层卷积网络构成的ResNet。卷积神经网络具有3个主要特性:1)可以直接从原始输入提取特征,从而避免了特征工程;2)对缩放、平移、旋转等畸变具有不变性,泛化性很强;3)通过局部视野和权值共享机制大大减少了参数量。因此,本文认为使用卷积替代目前推荐系统常用的向量内积或加权求和等方式来提取用户交互行为的特征是一种值得尝试的做法。但是传统的卷积并不适用于推荐系统,其主要原因是卷积的权值共享机制。当输入的局部特征之间具有较强的相关性时,权值共享机制十分适用。反之当输入在不同区域有不同的特征分布时,泛化性较强的权值共享机制导致需要多层卷积网络对提取的特征进行组合。以人脸识别作为说明,人脸的不同区域(如眼睛与鼻子)的特征分布各异,主流的解决方案是使用局部连接卷积[18](Locally-Connected Convolution)替代卷积,取消权值共享,在不同区域用不同参数计算卷积。局部连接卷积虽然进一步增强了特征提取能力,但同时也增加了大量的模型参数,因此对于用户数和物品数动辄上百万的推荐系统而言并不适用。

2 方法描述

本文提出一种新的卷积方式:条件卷积,以此改进神经协同过滤提取特征能力的不足,并在推荐过程中融入用户信息和物品信息,从而为用户生成个性化推荐结果。

2.1 神经协同过滤

图1 神经协同过滤模型

2.2 条件卷积

图2 条件卷积过程

2.3 条件卷积与常规卷积在推荐系统中的对比

图3 传统卷积提取用户和物品特征的过程

图4 局部连接卷积提取用户和物品特征的过程

图5 条件卷积提取用户和物品特征的过程

2.4 用户与物品属性信息的融入

在神经协同过滤中并没有使用用户和物品属性信息,仅使用用户ID和物品ID作为输入,没有充分利用辅助信息。为此,本文提出一种融入用户和物品属性信息的方法。以MovieLens数据集为例,数据集提供了用户性别、用户年龄段、用户职业、用户邮编、电影名称及电影类别作为辅助信息。需要说明的是,在不同数据集中可以使用的辅助信息不尽相同,不失一般性,本文以选取用户性别、用户职业和电影类别作为示例,如图6所示。

图6 用户和物品属性信息的融入

虽然神经协同过滤也能使用相同的方法融入辅助信息,但由于其广义矩阵分解需要使用基于元素级别的矩阵相乘,因此要求用户特征向量和电影特征向量的长度必须相等,所以,对于需要使用多种辅助信息的复杂推荐系统而言,必须要精心设计每种辅助信息的嵌入层长度。相比之下,本文采用的是条件卷积,不受此限制,使用更加灵活。

2.5 条件卷积隐因子模型

条件卷积隐因子模型如图7所示。对比图1和图7可知,条件卷积隐因子模型与神经协同过滤模型的主要区别如下:1)不使用多层感知器;2)采用条件卷积替代元素级别矩阵相乘;3)融入多种辅助信息。为了更突出条件卷积的性能,本文构建的是仅3层的条件卷积隐因子模型(输入层、嵌入层和条件卷积层)。

图7 条件卷积隐因子模型

与神经协同过滤算法相比,条件卷积隐因子模型的优点有如下3点:

1)对于分别由多个特征组成的物品特征和用户特征而言,不需要限制两者长度相等,与神经协同过滤算法相比可以更灵活地设计各自嵌入层。

2)由于物品特征和用户特征可能是由多个子特征拼接而成的,对两者使用卷积操作能够达到特征组合的目的。假设物品特征fi和用户特征fu分别由N个和M个子特征组成(将长度较长的当输入,另一个当卷积核),即fi=[fi_1,fi_2,…,fi_N],fu=[fu_1,fu_2,…,fu_M],并且每个子特征的向量长度相等,则经过条件卷积后可得到如下的特征组合:CConv(fi,fu)=[…,fi_kfu_1+…+fi_k+Mfu_M,…],k∈[1,N-M]。可知条件卷积可以得到N×M种特征组合,而神经协同过滤所采用的基于元素级别的矩阵相乘只能得到max(N,M)种特征组合,因此条件卷积能够更有效地利用数据集中的辅助信息。

3)与其他推荐算法相比,输入的特征在同样经过嵌入层后,采用条件卷积并不增加模型参数,使其同样适用于较大的数据集或网络结构。

3 实验与结果分析

由于神经协同过滤的推荐性能要优于ItemPop、ItemKNN[19]、BPR[20]和eALS[21]等主流推荐算法[15],因此本文的以下实验不再与这些算法对比。除神经协同过滤外,本文主要与多层感知器、NSCR、CCCFNet对比,因为这些算法分别使用了不同的方式提取用户和物品特征。为了能更全面地评估条件卷积隐因子模型的推荐性能,本文分别在隐性反馈数据和显性反馈数据下进行仿真实验。

本文实验采用由美国明尼苏达大学GroupLens实验室提供的MovieLens-1M数据集,该数据集是验证推荐算法性能最常用的数据集之一[22]。数据集中有1 000 209条用户对电影的评分数据,其中用户数量为6 040,电影数量为3 706,此外还附有这些用户和电影的信息(如用户性别、职业和电影类别等)。

3.1 隐性反馈数据推荐性能比较

3.1.1 数据集与评价标准

为与神经协同过滤等算法进行对比,本文实验中所有算法采用如下设置:

1)使用0或1表示用户是否对电影评分,从而将显性反馈的评分数据转换为隐性反馈的交互行为数据。

2)在划分数据集时,采用leave-one-out策略,即每个用户只保留一条交互行为数据作为测试集,其余作为训练集。在神经协同过滤等算法中测试集是由每个用户在时序上最后一条交互行为构成,本文也采用相同策略。

3)划分所得的训练集中样本均是正样本,因此在训练时随机采样生成负样本增强数据集。

4)将生成推荐结果分成2个步骤:(1)从数据集中用户未评分过的电影列表中随机选取100部电影,加上测试集中的电影组成一个候选集合;(2)使用模型预测用户对候选集合中电影评分过的概率,根据概率进行排序并得到Top-K推荐结果(K<100)。

5)将命中率(Hit Rate,HR)和NDCG(Normalized Discounted Cumulative Gain)作为评估指标。若测试集中用户评分过的电影出现在Top-K推荐结果中,则命中率为1,根据所有用户命中率的平均值可以较好地评估模型的推荐效果。NDCG是根据测试集中的电影在推荐列表中的排位评估推荐性能,排名越高则NDCG指标越高,代表推荐精准度越好。

3.1.2 隐性反馈数据推荐性能比较结果分析

影响神经协同过滤模型性能的关键是嵌入层长度,因此本文实验在不同嵌入层长度下对比推荐命中率和NDCG,命中率结果如图8所示。从图8中可知,当嵌入层长度大于64后,Top-10命中率均趋于饱和甚至有所下降,原因在于过长特征向量在数据量不足情况下容易导致过拟合。而在嵌入层长度越小的情况下,条件卷积隐因子模型相比其他算法的优势就越明显,在嵌入层长度为16时Top-10命中率比神经协同过滤提升了3.11%,原因如2.2节所述,条件卷积能得到用户特征与电影特征间的全部特征组合,从而提高了模型对用户和电影的识别度,NDCG结果如图9所示。从图9中可知,条件卷积隐因子模型要优于神经协同过滤等对比算法。

图8 各算法在不同嵌入层长度下的Top-10推荐命中率

图9 各算法在不同嵌入层长度下的Top-10 NDCG

3.2 显性反馈数据推荐性能比较

3.2.1 数据集与评价标准

本文在隐性反馈数据下验证了条件卷积隐因子模型与神经协同过滤优于多层感知器等算法,因此在显性反馈数据将推荐性能的对比聚焦在条件卷积隐因子模型与神经协同过滤算法上。为能够与神经协同过滤算法更好地对比,本文实验中所有算法采用如下设置:

1)在划分数据集时,采用不放回随机采样策略,训练集和测试集数据量比例为9∶1。

2)使用预测评分与实际评分的均方根误差(Root Mean Squared Error,RMSE)作为评估指标。RMSE指标越低,代表评分预测精准度越好。

3.2.2 显性反馈数据推荐性能比较结果分析

影响神经协同过滤模型性能的关键是嵌入层长度,因此本文实验在不同嵌入层长度下对比RMSE,结果如图10所示。从图10中可知,在评分预测精准度上条件卷积隐因子模型相比神经协同过滤算法有明显的优势,其中当嵌入层长度为32时,神经协同过滤算法的评分预测误差为0.910 6,与条件卷积隐因子模型相比降低了0.022 5,达到了0.888 1。由此可见,条件卷积不仅在隐性反馈数据下有效,而且在显性反馈数据下也是有效的。因为不论使用隐性反馈数据还是显性反馈数据,基于模型的协同过滤算法都是为了学习用户和物品的潜特征,然后基于这些潜特征构建预测模型,区别只在于两者的模型输出形式和评价标准。在使用隐性反馈数据时,模型的输出一般设置成0~1之间的实数值;而在使用显性反馈数据时,模型的输出一般设置成0~5之间的实数值。

图10 两种模型在不同嵌入层长度下的评分预测误差

4 结束语

本文将推荐系统与卷积神经网络相结合,提出一种新的条件卷积方式。给出条件卷积的定义,在推荐过程中融入用户和物品属性信息作为输入,在公开数据集MovieLens下进行的实验结果表明,条件卷积能够增强推荐算法提取用户特征、物品特征以及组合特征的能力,且没有增加额外的参数量。本文研究未探讨条件卷积在推荐系统中的冷启动问题,这将是下一步的研究重点。

猜你喜欢
物品卷积条件
称物品
排除多余的条件
基于3D-Winograd的快速卷积算法设计及FPGA实现
“双十一”,你抢到了想要的物品吗?
选择合适的条件
卷积神经网络的分析与设计
从滤波器理解卷积
谁动了凡·高的物品
基于傅里叶域卷积表示的目标跟踪算法
为什么夏天的雨最多