[0049] 为了使本发明的目的、技术方案和技术效果更加清楚明白,下面结合说明书附图,对本发明作进一步详细说明。
[0050] 基于记忆网络的物品协同过滤推荐的方法,在MovieLens数据集和Pinterest数据集上进行训练和测试,以0和1分别标记用户与物品间的交互/非交互;输入数据为一组三元组:(用户,物品,交互/非交互),网络中的记忆模块会学习用户的行为并对用户行为产生记忆,根据用户行为的记忆对用户的喜好进行建模;输出层会根据用户的喜好和目标物品的特性产生预测值从而得到用户对物品的交互概率。然而,直接使用记忆网络对用户偏好进行建模会出现两个问题:
[0051] 1.每个用户购买的物品数量差距较大即购买数量的方差比较大,因此记忆网络中的Attention层难以训练,通过使用Deep‑ICF中的技巧,将标准的Attention改为:
[0052]
[0053] β称为光滑系数,pi为用户交互过的物品,qj代表目标物品的特征信息。
[0054] 2.由于Attention层涉及指数运算,当神经网络层增加时,会出现梯度消失的现象,为此,我们在attention层中添加了一层Layer Normalization层来解决梯度消失的问题,保证模型能被正常训练。
[0055] 如图1和2所示的基于记忆网络的物品协同过滤推荐的方法,包括如下步骤:
[0056] 步骤1:在MovieLens和Pinterest官网上下载获取用户曾经交互过的物品和对物品的历史评分数据;
[0057] 步骤2:对所述用户历史评分数据进行预处理,包括异常值剔除、缺失值填充,将评分数据转化为二元值;
[0058] 步骤3:转换数据格式,以用户历史曾经交互过的物品ID序列集合来标识该用户,并将数据集划分为训练集和测试集,额外剔除亦存在于用户历史交互过的物品集合中的目标物品;
[0059] 步骤4:搭建记忆网络的结构,初始化记忆网络的各种网络参数,设置记忆插槽的大小,将训练集的数据输入到记忆网络中进行训练,直至网络收敛,通过对照实验调节网络中的超参数,获得最佳模型;
[0060] 步骤5:通过测试集数据的预测来检验模型的效果,得到用户对目标物品的交互概率。
[0061] 所述步骤1具体为:
[0062] 步骤1.1:为每位用户以及物品生成一个唯一的编号,以这个编号来标识该用户/物品;
[0063] 步骤1.2:获取每位用户的历史交易记录,以及该用户对该物品的评分。
[0064] 所述步骤2具体为:
[0065] 步骤2.1:直接删除数据中存在明显异常值的记录,同时对于没有交互过的物品数据集中并没有记录,但是作为网络的训练输入是需要这种记录的,所以以0作为填充,表示用户没有购买过该物品;
[0066] 步骤2.2:生成用户对物品的评分矩阵,设用户购买过该物品则将评分值标记为1,若未购买过该物品则标记为0,得到所述矩阵为一个稀疏矩阵。
[0067] 所述步骤3具体为:
[0068] 步骤3.1:转换数据格式,以用户的历史购买物品ID序列表示该用户,与目标物品一起作为输入数据;
[0069] 步骤3.2:将输入数据按照7:3的比例划分为训练集和测试集,训练时额外剔除训练集中用户历史购买物品ID序列中包含的目标物品。
[0070] 所述步骤4具体为:
[0071] 步骤4.1:搭建记忆网络的结构,包括输入层、注意力机制层、记忆模块、输出层,设置记忆网络的层数;
[0072] 步骤4.2:初始化网络中的每一个参数,服从正态分布以加速网络的收敛,设置embedding层的维度;
[0073] 步骤4.3:采用交叉熵作为损失函数,Adam作为优化方法,将训练集的数据输入到记忆网络中进行训练,循环往复直至模型收敛;所述以交叉熵作为模型的损失函数的公式如下:
[0074]+ ‑
[0075] 其中, 为模型输出的预测值,Θ为网络的参数值,R 为正样本集合,R 为负样本集合,u,i分别表示用户和物品;
[0076] 步骤4.4:对比调参,获取最优参数并保存,包括embedding层的维度,网络的层数,L2正则化系数,非标准Softmax的光滑系数β以及Layer Normalization层的缩放参数。
[0077] 所述步骤5具体为:
[0078] 步骤5.1:将训练好的预测模型在测试集上对用户与物品的交互概率进行预测;
[0079] 步骤5.2:将所有的预测结果同真实值进行对比,以HR和NDCG作为指标,得到模型的性能评估结果;所述HR指标的计算公式为:
[0080]
[0081] 其中的分母是所有的测试集合,分子表示每个用户top‑K列表中属于测试集合的个数总和;
[0082] 所述NDCG指标的计算公式为:
[0083]
[0084] 其中,IDCG@K为理想情况下IDCG@K的最大值,IDCG@K的计算公式如下:
[0085]
[0086] 其中r(i)为物品i的相关系数;
[0087] 步骤5.3:最终的预测模型用于实际电商项目中对用户的购买行为进行预测。
[0088] 具体为:用户历史信息以{x1,x2,x3...,xn}的格式输入,xi代表用户购买过的物品,n为用户曾经购买过的物品数量,用户历史信息分别经过记忆模块Ml,Cl,所述Ml,Cl分别为第l层的长期记忆模块和短期记忆模块,用户信息经过所述两个记忆模块的embedding后得到mj,cj向量,mj,cj向量经过Attention注意力机制层运算后得到用户的偏好向量ol,l代表网络的第l层,Target Item经过embedding后得到e向量,e向量包含Target Item的特征信息,e经过Hl的投影运算后与ol得到下一层的e输入,最后一层得到的e即为最后的预测与矩阵W相乘后再经过Sigmoid函数即可得到最后的交互概率。
[0089] 如下表1和表2展现了该模型在8、16、32、64embedding size,1‑4层网络情况下模型取得的HR@10值和NDCG@10值,由此可见,本发明中的方法实现了比较准确的预测效果。
[0090] 表1.HR@10in various embedding sizes and number of hops
[0091]
[0092] 表2.NDCG@10in various embedding sizes and numbers of hops
[0093]
[0094] 综上所述,以上仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。