张红霞 董燕辉 肖军弼 杨勇进
(中国石油大学(华东)计算机科学与技术学院 青岛 266580)
随着电子商务平台的快速发展,商品数量呈现海量式增长,使得用户很难从海量商品中找到符合自身需求的商品,从而导致平台商品销量增加缓慢。推荐系统为用户提供了个性化的商品推荐,能够主动推送感兴趣的商品,有效提升电商平台的转化收益[1,2]。
近年来基于神经网络建立推荐模型的研究逐渐成为研究热点[3–5]。Cheng等人[6]将线性模型和深度模型结合提出了Wide Deep模型,解决了低阶特征和高阶特征的组合问题。文献[7]利用深度神经网络分别对用户历史行为的嵌入表示进行深度提取构建了召回和排序模型,解决了大规模推荐的实时性问题[8]。Qu等人[9]针对全连接层组合特征的不充分性提出了基于乘积的推荐模型,将输入特征通过乘积层得到更高阶的组合表示,进一步提升了点击率预估表现。但是以上通过组合特征的方法很少考虑到用户行为序列之间的联系[10,11],并且模型的用户表示和商品表示很难确保映射到统一空间[12],进而造成用户兴趣和推荐商品不匹配问题[13],导致推荐商品点击率较低。
Zhou等人[14]将注意力机制引入时序推荐模型,提出的动态兴趣模型解决了用户兴趣变化问题。在此基础上,Zhou等人[15]通过将门控循环单元(Gated Recurrent Unit,GRU)的更新门与注意力相结合,提出了兴趣漂移模型(DREN),解决了用户多兴趣匹配问题。虽然上述模型利用GRU实现了用户历史行为序列建模,但没有考虑用户活跃度[16,17]对用户行为序列表示的影响。
在电商平台中,不同活跃度的用户可能对应着不同的购买模式,直接影响商品推荐的精准度和多样性,如何将用户活跃度引入时序模型提高推荐性能仍具有极大的挑战性[18,19];另一方面,在大规模推荐场景中,需要通过预先计算用户向量和商品向量相似度得到候选商品来提高推荐速度[20,21],这就要求用户表示和商品表示必须映射在统一空间,因此如何进一步提高用户表示和商品表示映射到统一空间至关重要。
针对以上问题,本文提出基于行为延迟共享网络(Behavior Delay Shared Network,BDSN)模型的个性化商品推荐方法,该模型在分析不同用户购买模式的基础上[22],提出行为延迟门控循环神经单元(Behavior Delayed Gated Recurrent Unit,BDGRU),将用户行为活跃度作为影响因素引入用户浏览序列状态表示计算过程。同时将用户表示和商品表示融合到统一空间,以提高模型的推荐性能和可解释性[23]。具体地,首先在GRU的状态值更新过程中引入用户活跃度因子,用以明确应该保留多少先前状态和当前状态,采用BDGRU对用户历史行为建立时序模型,用以提取用户历史行为的时序特征;然后将用户表示和商品表示通过共享网络进一步提取高阶的用户和商品表示,通过共享网络可以保证用户表示和商品表示能够收敛到统一空间,增加模型的可解释性;最后设计BDSN模型实现个性化商品推荐,并在公共数据集上对模型的准确性和可解释性进行验证,结果表明该模型在验证集上的曲线下面积(Area Under Curve,AUC)指标和损失函数均处于最优,在测试集上的AUC指标相较基本模型提高37%,能够有效提升商品推荐的准确性。
本文的主要贡献如下:
(1)提出基于行为延迟共享网络模型的个性化商品推荐方法,结合用户行为活跃度和统一向量表示得到高阶特征表示,有效提升了个性化商品推荐的准确性;
(2)提出了行为延迟门控循环神经单元,在GRU的状态值更新过程中引入了用户活跃度因子,解决了用户活跃度影响购买行为的问题;
(3)本文所提方法在真实数据集上的表现相对于其它方法在推荐性能上有显著提升,验证了提出的方法在推荐问题上的可用性和准确性。
在电商推荐领域,用户活跃度对购买商品的意向具有重要的影响,例如,某用户在某一时间段内浏览商品较频繁即活跃度较高,具有较强的购买行为,推荐的商品应偏向当前商品的相似商品;反之,若用户活跃度较低,则表示用户还没有明确的购买行为,应采用多样化的推荐结果引导用户选择商品。本文将用户活跃度对用户的影响称为行为延迟问题。
给定用户集合U={u1,u2,...,um}和商品集合I={i1,i2,...,in},B={b1,b2,...,bk}是所有用户的行为记录,其中b={u,i,t}表 示某用户u在时刻t浏览某商品i。因此,用户个性化商品推荐是在给定候选商品i和 用户u的 历史行为记录的条件下,依据用户浏览商品的时序特征,计算在未来下一时刻t+1下 用户浏览商品i的概率,然后将结果中浏览概率最大的商品推荐给用户。
在电商个性化推荐领域,所使用的数据包括用户特征文件、商品特征文件、所有用户点击数据等。将这3类文件合并后按照点击时间升序排序并按照用户分组后可以得到每个用户的历史行为数据,其中特征值以分组形式表示。除了某些具有实际意义的特征,通常神经网络不能直接输入这些特征值,需要将这些数据编码转化为特征向量,获取每个组的嵌入表示。嵌入表示可以将无实际意义的标识值表示为低维稠密向量,对于第i个 特征组fi,令Wi=∈ED×Ki代 表第i个嵌入词典,其中D和Ki分别表示特征组个数和第i个特征组的嵌入向量长度,可通过以下的表查找机制获取特征值的嵌入表示:
(1)如果特征值为单一标识ID,即fi=j,则这个特征值的嵌入表示为一个单独的嵌入向量ei=。
(2)如果特征值为一系列标识I D,即fi={j1,...,jk},则这个特征值的嵌入表示为一个嵌入向量列表:
用户行为的频繁程度(即用户活跃度)在一定程度上决定了用户的当前预估行为,传统GRU没有考虑用户的活跃度对于整个用户历史行为状态的影响,BDGRU将用户活跃度引入隐状态的更新阶段,明确指明应该保留多少先前序列和当前时刻的信息,BDGRU结构如图1所示,单元更新门计算公式为
图1 行为延迟门控循环单元结构图
其中,ht-1,分别为传统GRU中t-1时刻的隐藏状态值,t时刻的隐藏状态值,dtt表 示t时刻的活跃度因子。与文献[17]计算用户活跃度的方法不同,本文的用户活跃度为向量形式,计算公式为
其中,ΔT∈LT为用户t时刻行为与t-1时刻行为的时间间隔,LT为用户历史行为长度。从式(4)可以发现,频繁的浏览行为将导致保留更多的t时刻状态,进而推荐相似商品;而浏览行为不频繁将导致保留更多的t时刻之前的状态,进而推荐更加多样化的商品。
为了增加用户表示和商品表示之间的内在关联,本文提出共享表示层使得最终的用户表示和商品表示能够收敛到统一空间,网络结构如图2所示,在多层感知机(MultiLayer Perceptron,MLP)之前设计一个共享网络层得到用户和商品的表示。首先将用户和商品的拼接特征通过单层网络映射为同一大小的用户和商品向量vp,vs∈nc,具体计算公式为:
图2 共享参数向量表示网络结构
其中,ip,is分别表示用户侧的BDGRU的最终状态输出和目标商品侧的商品嵌入表示,Wp∈Rnc×np,Ws∈Rnc×ns分别表示用户侧和商品侧的网络权重矩阵,bp,bs∈nc分别表示用户侧和商品侧的网络偏置矩阵,nc,np,ns分别表示网络隐层单元个数、用户侧网络输入特征大小、商品侧网络输入特征大小。然后将用户和商品向量通过共享网络层得到最终的用户和商品表示,公式如式(7),式(8)所示:
其中,Wc∈RnH×nc,bc∈nH分别表示共享网络层的权重和偏置矩阵,nH为共享网络层的隐层单元数。
基于行为延迟和共享网络的特征提取方法,本文提出了行为延迟共享网络结构模型BDSN。如图3所示,该模型首先通过嵌入表示处理用户和候选商品的基础特征,得到嵌入表示后通过拼接操作得到特征表示,包括用户侧特征和商品侧特征,其中用户侧特征使用BDGRU提取时序特征,然后将用户特征和商品特征通过共享参数网络得到更高阶的统一表示。最终通过计算用户对商品的点击率实现商品推荐,预估点击率计算公式为
图3 BDSN模型结构
在深度点击率预估模型中广泛采用负对数似然函数作为损失函数,利用目标商品作为标签监督模型训练,损失函数计算公式为
其中,x∈D表 示模型的原始输入特征,D为大小为N的训练集,y∈{0,1}表示用户是否点击目标商品,为网络模型的输出,表示用户点击目标商品的概率。
利用BDSN模型构建商品推荐流程,如图4所示,候选商品集包含了所有有效商品,首先从候选商品集和用户行为日志中构造输入数据,然后通过BDSN模型计算出点击率较高的商品生成推荐列表,用户对感兴趣的推荐商品进行点击、浏览、购买。
图4 商品推荐流程图
为了验证所提方法的有效性,本文在公共数据集上比较了BDSN模型与其它点击率预估模型的表现,以评估所提模型的推荐性能;除此之外,还分别设计了BDGRU和共享网络层如何影响用户和商品向量表示的实验,并通过实验结果分析了BDSN有效性的原因。
实验所用数据集来自于天池数据集[24],我们将原始数据集分割为训练集、验证集和测试集3部分,数据详细统计见表1,其中每条记录代表了用户的一次点击行为。为了得到训练集、验证集和测试集,对原始数据按照时间戳进行排序,构造了单个用户的时间行为序列,通过随机策略选择其中的1664个用户作为测试集用户;对于在测试集中的每一条用户行为序列,选择序列的最后一个点击商品作为测试商品,之前的点击行为记录作为历史行为输入序列,构造测试数据;选择序列的倒数第2个点击商品作为验证商品,之前的点击行为记录作为历史行为输入序列,构造验证数据;类似地,将测试集中剩余的序列数据和训练集中数据按照点击商品和历史行为分割整理为模型训练数据。
表1 实验数据集统计信息
为了验证BDSN的点击率预估表现,本文使用曲线下面积AUC和RelaImpr评估指标,其中AUC反映了模型的排序能力,RelaImpr代表了模型的性能提升程度,计算公式为
其中,D+是所有正样本数据集,D-是所有负样本数据集,m+和m-分别表示正、负样本的数量,f(·)是样本x的模型预测结果,x+和x-分别表示数据集中的一条正、负样本,I(·)是指示函数,运算规则为:如果满足条件,函数结果返回1,否则返回0。
其中,A UCbm和A UCmm分别表示基准模型和对比模型。
为了验证延迟共享网络的预测性能,与PNN[9],DNN[7]和WideDeep[6]网络以及注意力兴趣网络DREN[9]进行对比。为了验证BDSN的BDGRU和共享网络是有效的,本文还设计了两个BDSN的变型网络:
(1)GRUSN:将BDSN中的BDGRU替换为传统GRU,网络结构保持不变。
(2)BD-Sep:将BDSN中的共享网络分解为两个独立的网络,分别对应于用户侧和商品侧的网络,其中隐层单元数和深度保持不变,其它网络结构保持不变。
4.3.1 BDSN与其它推荐模型的性能对比
为了说明模型训练时的表现,收集了模型训练时每次迭代验证集产生的点击率计算结果以及损失值变化,如图5所示,折线图的横坐标代表训练集的迭代次数,纵轴表示验证集数据的AUC结果,从图中可以看出,BDSN的最终AUC指标可以达到0.75以上并保持平稳,其它模型在10次迭代之前AUC都保持快速增长,但是之后模型的AUC指标却急速下降。图6中表示模型训练时损失值的变化情况,BDSN在10次迭代之后损失值基本为0,低于其它模型的损失值,其中DIEN模型的损失值在迭代20次之后开始缓慢下降并仍然保持在较高水平。
图5 BDSN与其它对比方法的验证集精确度指标比
图6 BDSN与其它对比方法的训练损失值变化情况
以上结果表明,BDSN在训练过程中可以保持良好的表现,这是因为在训练初期,由于BDSN用户活跃度因子在训练前期对于网络参数具有扰动现象,所以导致网络参数收敛变慢,但是经过约20次迭代训练后,其它网络模型因为过拟合问题导致AUC指标开始下降,而本文提出的延迟共享网络BDSN的AUC指标相对于其它网络模型处于最优且没有出现过拟合问题。
将BDSN与两种BDSN变型以及其它对比模型在测试集上进行了实验,表2 展示了各种模型的实验对比结果,从表中可以看出,BDSN模型的AUC指标达到0.87以上,相对其它模型处于最优,较基准模型DNN提升了37%,GRUSN和BD-Sep的AUC均在0.80以上,提升效果分别为20%和12%,低于其它模型的提升效果。
表2 不同方法模型在测试集上的AUC值
以上结果表明BDSN的测试结果优于其它模型,这是由于BDGRU中的延迟因子可以更好地拟合用户的兴趣以及共享网络限制了网络的过拟合问题;GRUSN的提升幅度为20%,大于BD-Sep的提升幅度,说明向量表示的统一性对模型效果提升更为重要。
4.3.2 BDGRU与传统GRU的对比实验与分析
为了说明BDGRU对于最终状态值输出的影响,在模型训练迭代20次后,分别对BDGRU和传统GRU的最终状态值进行了数值统计,图7展示了BDGRU和传统GRU的最终状态值统计结果,可以看出前者的大部分数据频次都在500次以下,分布更为广泛且明显服从中心极限定理,后者大部分的数据频次都在500次以上,数据分布更集中且服从中间少、两端多的分布特征。
图7 行为延迟门控单元对状态值的影响
以上结果说明BDGRU引入延迟因子可以加强用户序列表示效果,使用户表示更加多样,从而促进BDSN网络整体性能的提高,而传统GRU输出大部分集中在±1,对于后续网络计算只是起到逆转或保持不变的效果,表达能力不及BDGRU。
4.3.3 共享网络层对嵌入表示的影响
为了证明本文提出的用户侧和商品侧共享网络参数共享网络层的有效性,我们选择BDSN和BDSep进行对比实验,通过收集用户和商品的嵌入表示和共享层输出来分析共享网络层对嵌入层和共享层输出的影响。嵌入层实验结果如图8所示,从图中可以发现,基于BDSN得到的用户和商品嵌入表示数值范围在±0.04之内,基本保持一致,而BD-Sep得到的用户和商品嵌入表示数值范围分别为±0.03和±0.06,一致性表现较差;为了更直观地表现相似性,将共享层输出的1×128向量转化为8×16的矩阵并可视化,结果如图9所示,其中框内标识了用户侧和商品侧的相似区域,可以看出两者具有较强的相似性。
图8 共享网络对用户和商品嵌入表示的影响
图9 BDSN用户和商品侧的向量可视化
以上实验结果说明共享网络对于保持用户侧和商品侧的一致性表示具有重要作用,共享机制不仅促进用户和商品嵌入层保持一致性,而且也会影响高阶输出,使共享层后的用户表示和商品表示保持在统一向量空间内,进一步提升BDSN的表示能力。
本文针对用户活跃度及用户物品表示对个性化电商推荐结果的影响,提出了行为共享延迟网络,对行为频繁的用户更加关注近期的物品信息,对行为不频繁的用户更加关注先前的物品信息;提出的用户、物品共享网络结构利用共享参数实现用户侧和物品侧的表示向量收敛到统一空间,本文基于以上两点构建了点击率预估网络模型,并且在真实数据集上与当前先进方法进行了对比实验,并进一步分析了用户活跃度因子和共享网络如何影响网络输出,结果表明本文提出的网络结构可以取得最佳性能指标。
虽然本文提出的方法在电商数据集上可以取得不错的效果,但是对于其它类型的推荐数据的推荐效果还有待进一步研究。下一步计划在本文研究的基础上深入研究用户和时间因素的具体关联关系,以更加高效的方式区分用户类别。