王晨星,吴 云+,雒晓辉
(1.贵州大学 公共大数据国家重点实验室,贵州 贵阳 550025;2.贵州大学 计算机科学与技术学院,贵州 贵阳 550025)
序列推荐系统(sequence recommendation system,SRS)[1]已成为推荐系统领域的研究热点。基于传统的推荐模型,如KGNCF[2](knowledge graph enhanced neural collaborative filtering)和UILCF[3](user identity lda collaborative filtering),这些模型关注用户和项目之间的静态联系,忽略了用户兴趣的衰减以及偏好的动态变化。基于Markov链的序列推荐模型,如RF-MC[5](factorizing Markov chains),可以学习顺序模式,但存在一定的缺陷:一方面该模型只能捕获点级别的依赖,而忽略了前几个用户行为作为一个整体对下一时刻行为产生的影响。另一方面该模型没有考虑用户在较长时间域内的兴趣对推荐结果产生的影响。基于深度学习的推荐模型如GRU4Rec[5](gate recurrent unit4 recommendation),该模型利用循环神经网络进行序列推荐。然而随着序列长度的增加导致模型无法记忆过长的序列。此外,基于循环神经网络的推荐模型缺乏对局部关联关系进行深层挖掘,这将导致一些重要的行为关系的损失。基于注意力机制[6,7]的推荐模型如NARM[8](neural attentive recommendation machine),该模型忽略了历史交互项之间的局部交互关系以及用户历史点击序列对目标物品的影响。
为了解决以上模型存在的问题,我们提出了一个基于用户行为的长短期序列推荐模型(long and short term sequence recommendation model based on user behavior,UBLSR)。本文主要的贡献如下:①设计了一种多路空洞卷积网络,该网络可以挖掘序列中的局部和全局行为关系,从而提高推荐精度。②利用自注意力网络建模用户短期兴趣在序列内的动态转移,同时考虑目标候选物品对推荐的影响。③设计一个基于邻居用户行为的长期兴趣建模方案,同时融入注意力机制,动态调整每个用户对最终排名的贡献置信度,减少无用特征的干扰。
大量的RNN(recurrent neural network)被用于序列推荐[9,10]。例如GRU4Rec模型,该模型受到循环神经网络结构的限制,假设任何相邻的用户点击行为都一定存在依赖关系,缺乏对噪声用户行为的有效鉴别,因此可能学习到错误的依赖关系。这种限制使得个性化序列推荐表现欠佳,因为在序列推荐问题中,并不是所有相邻的操作都有依赖关系。除此之外GRU4Rec模型无差别地对待所有交互行为,忽略了当前行为中用户的主要意图,导致推荐准确性不高。循环神经网络通过串行的运算方式来学习序列中的时序关系,因此阻碍了模型的并行化,从而降低模型的计算速度。
卷积神经网络(convolutional neural networks,CNN)不假设用户有很强的前后时序关系,并且可以学习特定区域内的局部特征和不同区域之间特征的关系。以往模型重点利用卷积网络来挖掘辅助信息如图像信息、文本信息,而我们的工作着眼于利用卷积捕获访问过的项目的序列信息。Tang等[11]提出了Caser(convolution al sequence embedding recommendation)模型,该模型使用CNN一维水平卷积和垂直卷积在一定程度上解决了以往模型在捕获点级、联合级顺序模式的缺陷,但该模型的水平卷积和垂直卷积都是单组的,扫描到的特征缺乏表示能力。且该模型只适用于浅层网络结构,在建模远程依赖关系或注入大规模数据流时将出现推荐性能下降的问题。而本文设计的多路空洞卷积网络经过不同卷积路径得到的特征图之间的耦合性较低,关注的主要特征不同,可以得到互为补充的特征图,以更完整地表示序列信息,在大规模数据下表现突出。
Yu等[12]提出AFM(attentional factorization machines)模型,该模型通过引入注意力机制,来判断不同特征之间交互的重要性。然而该模型忽略了用户点击顺序信息的重要性,通常会随着物品和用户兴趣的动态变化而失败。Li等提出NARM模型在循环神经网络的基础上借助注意力机制对序列行为中用户的主要意图进行建模。具体的:NARM包含编码器-解码器结构。在编码器中利用门控循环单元对序列特征进行编码,同时借助注意力机制挖掘用户在当前序列中的主要意图,将得到的用户主要意图和序列特征联合送入解码器中计算物品的最终得分。然而该模型忽略了用户点击序列背后潜在历史兴趣跟目标物品之间的关联。
本文提出了一个基于用户行为的长短期序列推荐模型UBLSR。模型结构如图1所示,该模型主要包括序列信息挖掘模块(sequence information mining module,SIMM)、用户短期兴趣建模模块(user short term iterest module,USTIM)、用户长期兴趣增强模块(user long term interest enhancement module,ULIEM)和输出推荐模块(output recommendation module,ORM)。
图1 基于用户行为的长短期序列推荐模型(UBLSR)
首先将目标物品项和用户历史行为的原始特征送入嵌入层转换为嵌入向量,然后将嵌入向量输入序列信息挖掘模块,利用多路空洞卷积网络来挖掘深层用户行为信息;接着将得到用行为信息按长度划分分别送入用户短期兴趣建模模块和用户长期兴趣增强模块中;在用户短期兴趣建模模块中,利用自注意力网络[13]对历史序列和目标物品的动态交互进行建模;在用户长期兴趣增强模块中,利用基于邻居用户的注意力机制建模用户长期兴趣偏好;最终将用户短期兴趣建模模块和长期兴趣增强模块的结果联合送入输出推荐模块,预测下一时刻的用户行为。
将用户历史序列和物品的嵌入向量输入到神经网络中来捕获时序特征。模块结构如图2所示,包含联合卷积层、垂直卷积层、连接层。联合卷积层包含膨胀率为1的空洞卷积层1和膨胀率为2的空洞卷积层2。
图2 序列信息挖掘模块(SIMM)
接下来分别介绍网络的各个部分:
(1)第一层左侧是联合卷积层:本层设计了一种多路空洞卷积网络(multi-channel dilated convolution network,MDCN)对序列信息进行局部感知,实现联合级别序列关系的挖掘。
针对传统ResNet[14]网络在采样和池化过程中的信息丢失问题,我们使用空洞卷积[15]代替普通卷积,相比传统CNN,空洞卷积具有较宽的感受视野和较短距离的梯度传播可以在保持卷积核参数大小不变的同时,增大感受野,从而挖掘到点击序列下更长距离的序列信息。联合卷积层共两层,在网络的第一层和第二层分别用膨胀率为1、2的空洞卷积代替普通卷积。
针对传统ResNet网络在单通路结构下挖掘表现力不足的问题,我们将网络扩展成多通路结构,每层通路条数C设置为8。这种结构使得模型在不增加参数复杂度的前提下学习到更广泛的序列信息,同时增加模型的可扩展能力。模型主要参数见表1。
表1 多通路空洞残差网络主要参数
本文采用残差结构优化信息传递路径,目的是为防止训练过程中的梯度消失。同时参考了Inception[16]的split-transform-merge(分支-改变-合并)思想。
(2)与联合卷积层并列的结构是垂直卷积层:垂直卷积核的横向宽度默认为1,对历史交互序列进行垂直卷积运算,来挖掘点级别的序列关系。
(3)第二层是连接层:将联合卷积层和垂直卷积层的输出向量拼接,联合输入到一个完全连接的神经网络层,以获得更多抽象的表示信息,序列信息挖掘模块的输出公式为
(1)
式中:σ(x) 表示sigmoid函数,W和b表示要学习的参数,E1表示联合卷积层的输出,E2表示垂直卷积层的输出,O表示序列信息挖掘模块的输出。
用户历史点击的顺序信息可以很好地反映一段时间内用户兴趣的动态变化。首先给序列中每个历史交互的向量表示加上位置编码,然后利用自注意力网络来建模用户短期兴趣在序列内的复杂动态转移,这样可以很好地弱化顺序关系同时提升推荐效果。网络结构如图3所示:本文的自注意力网络的查询向量Query的输入为目标物品嵌入向量,关键字向量Key、值向量Value的值均为经序列信息挖掘模块处理后的得到的用户行为信息嵌入向量,短序列层在扫描历史交互序列信息的同时,将目标商品和历史行为序列的关系纳入衡量范围。
图3 用户短期兴趣建模模块(USTIM)
(2)
(3)
(4)
(5)
我们用记忆网络[17]来表示基于邻域的组件,以捕获用户和项目之间的高阶复杂关系,提出了一个用户长期兴趣增强模块,这一层的核心是记忆网络和注意力机制的结合。外部记忆允许编码丰富的特征表征,而注意力机制从交互社群中推断相关物品的特定贡献。记忆组件允许读写操作对内存中复杂的用户和项目关系进行编码。设计一个考虑邻居用户的用户长期偏好表示方案。在以上基础上,借助注意力机制对具有相似偏好的特定用户子集给予更高的权重,形成一个集体邻域摘要。
用户记忆组件:由用户记忆矩阵S、历史交物品记忆矩阵I组成,每个用户u的记忆矩阵su∈S内部存储了特定的用户隐含信息,每个历史交互项目k的记忆矩阵ik∈I内部存储了特定项目的隐含信息。我们设计一个用户偏好向量puk, 其中每个维度pukv是目标用户u和与u具有相似历史交互记录k的邻居用户v之间的相似度
(6)
式中:∀v∈N(k), 其中N(k) 表示为物品k提供隐式反馈的所有用户(邻居)的集合。
基于邻居用户的注意力机制:传统的邻居选择算法在初始化阶段需要指定用户的个数,而在实际场景中,每个用户的社群邻居个数是变化的,因此我们利用注意力机制对相似性更高的邻居用户施加更大的权重。通过注意力机制学习用户邻域的自适应非线性加权,并融合邻居用户的外部记忆矩阵来构建最终的邻域表示
(7)
(8)
其中,在经典的记忆网络中,用户v的嵌入向量cv表示外部记忆。通过加权求和的方式可以得到用户在相关邻域中的长期用户兴趣信息。用户u最终的长期兴趣表示Zuk如下
Zuk=W1yuk+W2(su⊙ik)+b
(9)
式中:⊙是元素乘积,W1、W2和b是我们要学习的参数。
我们设计的UBLSR模型同时对用户的短期兴趣和长期兴趣进行建模,该模型最终将短期兴趣建模模块和长期兴趣增强模块的输出向量整合,如式(10)所示
(10)
其中输出层的权重矩阵用W∈R|I|×2d表示,输出层的偏置项用b表示。最终将拼接好的结果送入sigmoid函数进行预测,结果概率如下所示
(11)
式中:σ(x) 表示sigmoid函数。
所有实验均在Intel Core(TM)i5-4690 CPU @ 3.5 GHz和16 G内存Ubuntu系统中完成。本文模型基于Tensorflow 2.0编写,其中用户和物品的向量维度设置范围如下 {20,30,50,100}, 学习率的探索范围如下 {1,10-1…10-4}, 马尔可夫阶数来自 {1,…,9} 批次大小为 512,dropout率为0.5。
本文在MovieLens(ML)、Gowalla数据集上进行实验,来验证本文设计的模型效果。
MovieLens:一个广泛用于评估协作过滤算法的基准数据集。在实验中使用Movielens-1M(ML-1M)版本。
Gowalla:一个基于位置的社会交流网站,用户通过签到来分享他们的位置,并贴有时间戳的标签。我们遵循与Caser相同的预处理过程:我们将评审或评级的存在视为隐式反馈(即用户与项目交互),用户交互的时序性由时间戳标定,并对ML-1M和Gowalla分别丢弃少于5和15个操作的用户和项目。训练和验证取每个用户序列中前80%的行为,评估模型性能的测试集取其余20%的行为。
我们报告了所有用户的这些值的平均值。N∈{1,5,10}。 其中,当中的第N项为R,Recall(N)=1 时,平均精度(MAP)为所有用户的AP平均值,平均精度(AP)的定义如下
(12)
(13)
(14)
(1)KGNCF[2]:利用图神经网络技术挖掘知识图谱中复杂的用户关系,同时利用神经网络和矩阵分解两者结合的方式进行非时序推荐。
(2)UILCF[3]:利用LDA主题模型缓解传统协同过滤推荐中的冷启动问题,同时利用海明距离建立相似用户评价指标以提高推荐效果。
(3)RF-MC[4]:利用随机森林对用户兴趣标签进行分类以解决个性化推荐过程中的冷启动问题,同时利用一阶马尔可夫链进行序列推荐。
(4)GRU4Rec[5]:利用RNN来建模顺序依赖关系,同时借助用户历史点击行为对下一时刻行为进行推荐预测。
(5)Caser[12]:利用CNN一维水平卷积和垂直卷积挖掘点级、联合级顺序依赖关系,是一种先进的短期序列推荐模型。
(6)NARM[8]:利用两个GRU分别学习用户行为序列的全局和局部信息,并将注意力机制与GRU模型结合进行用户短期兴趣建模。
3.5.1 实验结果比较
对于每种方法,都寻找超参数的最优设置。嵌入层的维度设置范围如下 {20,30,50,100}, 学习率的探索范围如下 {1,10-1…10-4}。 对于Caser和GRU4Rec,马尔可夫阶数来自 {1、…、9}。 对于Caser模型,水平过滤器的高度范围来自 {4,8,16,32 }, 目标数物品数来自 {1,2,3}, 激活函数来自 {sigmod,tanh,Relu}。 以上基准模型和本文模型在评价指标上的对比结果见表2。
江西六国拥有“施大壮”“贵化”“群星”“田园丰”等四大品牌近80种规格的产品,产能达到80余万吨,2012年以来,先后兴建了年产10万吨工业级磷酸一铵和年产4万吨硫酸钾复合肥装置,是业内规格品种最齐全的复合肥生产企业。
表2 模型在两个数据集上的性能比较
通过对数据进行分析得到如下结论:
(1)在MovieLens数据集上,本文设计的UBLSR模型相对对比模型中表现最好的NARM模型,MAP提高了5.5%;precision最大提高了17.22%;recall最大提高了40.9%;在Gowalla数据集上,本文设计的UBLSR模型相对对比模型中表现最好的NARM模型,MAP提高了4.3%;precision最大提高了20.37%;recall最大提高了6.1%。该结果表明本文设计的UBLSR模型可以有效提升模型的推荐精度。
(2)本文设计的UBLSR在推荐过程中将时间序列信息纳入到特征考虑范围,相比非时序推荐模型KGNCF、UILCF表现出更优秀的性能,结果表明用户点击选择的顺序信息至关重要,用户历史交互的顺序信息可以更好地反映用户在一段时间内兴趣的动态变化。
(3)本文提出的UBLSR模型在MovieLens数据集上的MAP值相比于RF-MC提升了58.2%;在Gowalla数据集上的MAP值相比于RF-MC提升了86.5%。原因如下:UBLSR模型在序列推荐的过程中兼顾考虑了序列中出现的单个物品与多个物品分别对用户对下一物品的喜好程度的影响,从而挖掘序列模式下更复杂的关系,而RF-MC模型仅对一阶马尔可夫链进行学习。
(4)本文提出的UBLSR模型在MovieLens数据集上的MAP值相比Caser模型提升了26.2%,在Gowalla数据集上的MAP值相比Caser提升了10.1%。因为Caser无区别地对待所有历史交互物品,而UBLSR在底层模型的基础上添加注意力机制,区别对待历史交互行为。
(5)本文提出的UBLSR模型在MovieLens数据集上的MAP值相比GRU4Rec和NARM模型分别提升了32.1%、5.5%;在Gowalla数据集上的MAP值相比GRU4Rec和NARM分别提升了76.2%、4.3%。原因如下:GRU4Rec算法仅使用循环神经网络生成序列向量。循环神经网络在每次迭代中选取局部最优解,致使模型无法挖掘序列中全局信息。NARM 模型在循环神经网络结构的基础上融合了注意力机制,然而交互过程中的局部信息仍然通过循环神经网络迭代生成,易受到用户短期偏好波动的影响,无法充分捕捉更稳定的长期偏好。而UBLSR通过自注意力网络建模局部动态偏好,同时考虑了目标物品对注意力机制得分的影响,除此之外UBLSR借助长期兴趣增强模块感知用户长期偏好,使得学习到的用户行为信息更加丰富,从而提升推荐效果。
3.5.2 探究向量维度对实验的影响
图4 在Movielens-1M上探究向量维度对MAP的影响
图5 在Gowalla上探究向量维度对MAP的影响
3.5.3 探究历史交互序列长度对实验影响
保持其它最优超参数不变的情况下,改变历史交互长度,观测MAP值的变化,此时MAP衡量了模型从高阶信息中挖掘潜在信息的能力。历史交互长度对推荐效果的影响如图6和图7所示:在相同序列长度下相比对比模型,UBLSR提取信息的能力更强。更长的历史交互序列可以提供更多交互信息,然而当长度超过5时,模型推荐性能反而开始下降。这是合理的,因为早期的历史行为和当前时刻的用户行为相关性较小,可能引入额外的信息和更多的噪声。除此之外,历史序列长度越大,序列中包含的用户无意图行为越多,用户意图越发散,导致物品在注意力机制计算过程中分配的权重趋于平均。最终导致模型难以挖掘用户的主要意图,推荐性能随之下降。
图6 在Movielens-1M上探究历史交互序列长度对MAP的影响
图7 在Gowalla上探究历史交互序列长度对MAP的影响
3.5.4 模型方法的消融实验
为验证本文提出的每个模块的有效性,保持所有超参数在最佳设置下进行对比验证。对于x∈{ u、v、w},X-x表示启用了组件x的UBLSR模型。u为序列信息挖掘模块,v为用户短期兴趣建模模块,w为用户长期兴趣增强模块,Base表示未组装列信息挖掘模块、用户短期兴趣建模模块和用户长期兴趣增强模块的基础推荐模型。例如,X-uv表示组装序列信息挖掘模块和用户短期兴趣建模模块的推荐模型。各个模型在数据集MovieLens-1M上的MAP指标的表现见表3。
表3 组件的有效性分析结果
通过结果得出:
(1)使用了序列信息挖掘模块的推荐模型在MovieLens-1M数据集的MAP指标上对比Base模型最大提升了4.9%,在Gowalla数据集上提升了3.1%。本文设计的多通路空洞残差网络经过不同卷积路径得到的特征图之间的耦合性较低,关注的主要特征不同,可以得到互为补充的特征图,以更完整表示历史序列特征,得到丰富的特征语义表达。由实验可以得出本文提出的序列信息挖掘模块可以解决以往模型在捕获用户历史行为交互过程中表征能力不足的缺陷问题,从而提升序列推荐的性能。
(2)使用了用户短期兴趣建模模块的推荐模型在MovieLens-1M数据集的MAP指标上对比Base模型最大提升了5.2%,在Gowalla数据集上提升了3.5%。本文设计的短期兴趣建模模块可以建模用户点击序列下更深层短期兴趣,设计的自注意力层不但有效建模用户短期历史兴趣,而且考虑了目标候选物品的和历史行为的交互,由实验可以得到本文提出的自注意力,可以解决传统模型建模用户历史兴趣序列无法有效关联目标候选物品的问题,从而提升序列推荐的性能。
(3)使用了用户长期兴趣增强模块的推荐模型在MovieLens-1M数据集的MAP指标上对比Base模型最大提升了4.8%,在Gowalla数据集上提升了1.9%。本文设计的长期兴趣增强模块可以利用所有对项目进行了评级的用户来获得关于现有用户和项目关系的额外见解。其次,借助神经注意力机制根据特定项目调整每个用户对最终排名的贡献置信度,从而提升序列推荐的性能。
对比Base模型,本文设计的UBLSR在MAP指标上最大提升了5.4%,验证UBLSR模型可以有效提升推荐效果。
为提升推荐系统的推荐精度,本文提出了一种基于用户行为的长短期序列推荐模型(UBLSR)。首先,设计了一种多路空洞卷积网络,用来挖掘序列信息下的深层行为特征;接着,利用自注意力网络建模用户短期兴趣在序列内的复杂动态转移。然后,设计了一个考虑邻居用户行为的长期兴趣建模方案,同时融入注意力机制,动态调整每个用户对最终排名的贡献置信度,减少无用特征的干扰。实验结果表明,UBLSR模型在推荐精度上比基准模型有显著的提升,验证了模型方法的有效性。此外,我们的模型也适用于其它相关的序列预测任务。