1.一种基于协同过滤和深度学习的个性化推荐方法,其特征在于,包括以下步骤,
步骤1,获取用户购买商品的历史行为特征数据,并进行预处理,将用户的购买行为按照时间进行排序,排序后的数据称为用户的行为特征序列;
步骤2,个性化推荐系统建模,所述个性化推荐系统包括依次设置的如下部分,
输入层,用于将用户的编码和商品的编码分别表示为用户输入向量和商品输入向量,所述用户的编码包括用户的多热编码和用户的独热编码,所述商品的编码包括商品的多热编码和商品的独热编码;
嵌入层,用于将用户输入向量和商品输入向量降维,得到用户的嵌入向量和物品的嵌入向量;所述用户u的嵌入向量包括其历史购买商品对应的嵌入向量的集合,构成用户u的嵌入特征;所述商品v的嵌入向量包括其历史购买者对应的嵌入向量的集合,构成商品v的嵌入特征;
注意力神经网络,用于对嵌入向量进行加权,包括对于每一个用户计算出其历史购买商品的注意力权重,以衡量用户u偏向于购买哪些物品;对于每一个物品计算出其历史购买者的注意力权重,以衡量物品v偏向于被哪些用户购买;
交互层,用于将加权后的隐向量进行线性和非线性的交互,获取用户和商品之间的显式和隐式关系;
融合层和输出层,用于进行用户对商品的点击率预估,包括对交互层中线性和非线性子部分得到的输出进行融合,得到最后的用户和目标商品之间的交互关系,再据此计算用户购买目标商品的概率,概率越大,则购买的可能性越大;
步骤3,使用用户行为特征序列进行模型的训练和测试,对测试的商品通过点击率的高低进行排序,然后选取前若干项进行推荐。
2.根据权利要求1所述的一种基于协同过滤和深度学习的个性化推荐方法,其特征在于:在步骤1中,需要获取的数据包括所有用户的id值,所有商品的id值,以及所有用户的购买记录,并将用户的购买记录按照购买时间进行排序;选择用户最近一次的购买记录作为模型的测试集,倒数第二次购买记录作为模型的验证集,其余购买记录作为模型的训练集;
构建隐式反馈交互矩阵m,矩阵大小为m×n,m表示用户的数量,n表示商品的数量,矩阵中的数值为1表示用户购买过此商品,数值为0表示用户未购买过此商品;矩阵的第i行表示id值为i的用户的购买记录,矩阵的第j列表示id值为j的商品被购买记录。
3.根据权利要求2所述的一种基于协同过滤和深度学习的个性化推荐方法,其特征在于:在输入层中,针对每一个用户,使用交互矩阵m中其id值对应的行对其进行编码,称之为用户的多热编码;针对每一个商品,使用交互矩阵m中其id值对应的列对其进行编码,称之为商品的多热编码;同时,对每一个用户的id和每一个物品的id进行独热编码表示。
4.根据权利要求3所述的一种基于协同过滤和深度学习的个性化推荐方法,其特征在于:在嵌入层中,采用两个嵌入矩阵来对用户输入向量和商品输入向量进行降维,实现如下,
用于对用户特征降维的嵌入矩阵为p∈rm×k,其中m表示用户的数量,k表示低维空间的维度,用于对商品特征降维的嵌入矩阵为q∈rn×k,其中n表示物品的数量,k表示低维空间的维度;
针对每一个用户u,都能够在嵌入矩阵p中找到其id值对应的嵌入向量tu,然后在嵌入矩阵q中找到用户u的所有历史购买商品的嵌入向量qj∈q,则用户u的嵌入特征表示为
针对每一个商品v,都能够根据其id值,在嵌入矩阵q中找到对应的嵌入向量tv,然后对于商品v的所有历史购买者根据嵌入矩阵p生成对应的嵌入向量pi∈p,其特征表示为
5.根据权利要求4所述的一种基于协同过滤和深度学习的个性化推荐方法,其特征在于:在注意力神经网络中,采用基于单层神经网络的注意力模型;
在注意力模型中,选择采用点积的方式来表示历史项与目标项之间的相似度,然后使用一个带有隐藏层的多层感知器来参数化此相似度,再将输出的参数经过softmax进行归一化得到最后的注意力权重;
得到用户和商品的注意力权重后,基于原始的嵌入矩阵进行加权求和,得到用户和商品的兴趣嵌入向量,表示为eu和ev。
6.根据权利要求5所述的一种基于协同过滤和深度学习的个性化推荐方法,其特征在于:交互层分为两个子部分,其中第一个子部分为线性交互层,采用用户和商品的兴趣嵌入向量之间的点乘操作来挖掘用户和目标商品之间的线性关系,将计算结果olinear作为此部分输出;
第二个子部分为非线性交互层,首先基于级联操作形成用户-商品对的表示形式,然后将此表示向量输入到全连接神经网络中,通过全连接神经网络中的全连接层和激活层建模用户和物品之间的高阶非线性关系,全连接神经网络最后一层的输出ono-linear作为该部分的输出。
在融合层中,将两个子部分得到的输出进行融合,得到最后的用户和目标商品之间的交互关系,再将此关系输入到sigmoid函数中计算用户购买目标商品的概率,概率越大,则购买的可能性越大。计算公式如下:
y′u,v=σ(ht[olinear,ono-linear])+bu+bv
其中bu和bv表示与用户u和商品v的偏差,向量ht表示融合层中的权重向量,σ是sigmoid函数。
7.根据权利要求1或2或3或4或5或6所述的一种基于协同过滤和深度学习的个性化推荐方法,其特征在于:在步骤3中,使用用户行为特征序列进行模型的训练和测试时,模型训练的损失函数采用交叉熵损失,计算公式如下:
其中,y′u,v指模型预测的用户u购买商品v的概率,h+表示用户与购买过的商品构成的交互集合,h-表示用户与未购买过的商品构成的交互集合,θ代表模型参数,λ表示对参数进行l2正则化的控制系数;
在测试模型时,计算得到用户对测试集中的商品和所有未购买商品的购买概率值,将概率值按照大小进行排序,选取排序后的前n个商品作为推荐列表推荐给用户;每次测试时,若测试集中的商品都能在推荐列表中出现且排名越靠前,则说明模型的性能越好。
8.一种基于协同过滤和深度学习的个性化推荐系统,其特征在于:用于实现如权利要求1-7任一项所述的一种基于协同过滤和深度学习的个性化推荐方法。
9.根据权利要求8所述基于协同过滤和深度学习的个性化推荐系统,其特征在于:包括以下模块,
第一模块,用于获取用户购买商品的历史行为特征数据,并进行预处理,将用户的购买行为按照时间进行排序,排序后的数据称为用户的行为特征序列;
第二模块,用于个性化推荐系统建模,所述个性化推荐系统包括依次设置的如下部分,
输入层,用于将用户的编码和商品的编码分别表示为用户输入向量和商品输入向量,所述用户的编码包括用户的多热编码和用户的独热编码,所述商品的编码包括商品的多热编码和商品的独热编码;
嵌入层,用于将用户输入向量和商品输入向量降维,得到用户的嵌入向量和物品的嵌入向量;所述用户u的嵌入向量包括其历史购买商品对应的嵌入向量的集合,构成用户u的嵌入特征;所述商品v的嵌入向量包括其历史购买者对应的嵌入向量的集合,构成商品v的嵌入特征;
注意力神经网络,用于对嵌入向量进行加权,包括对于每一个用户计算出其历史购买商品的注意力权重,以衡量用户u偏向于购买哪些物品;对于每一个物品计算出其历史购买者的注意力权重,以衡量物品v偏向于被哪些用户购买;
交互层,用于将加权后的隐向量进行线性和非线性的交互,获取用户和商品之间的显式和隐式关系;
融合层和输出层,用于进行用户对商品的点击率预估,包括对交互层中线性和非线性子部分得到的输出进行融合,得到最后的用户和目标商品之间的交互关系,再据此计算用户购买目标商品的概率,概率越大,则购买的可能性越大;
第三模块,用于使用用户行为特征序列进行模型的训练和测试。
10.根据权利要求8所述基于协同过滤和深度学习的个性化推荐系统,其特征在于:包括处理器和存储器,存储器用于存储程序指令,处理器用于调用存储器中的存储指令执行如权利要求1-7任一项所述的一种基于协同过滤和深度学习的个性化推荐方法。