基于记忆网络的物品协同过滤推荐的方法技术

技术编号:27460861 阅读:24 留言:0更新日期:2021-02-25 05:18
本文发明专利技术属于推荐系统领域,具体为基于记忆网络的物品协同过滤推荐的方法,首先通过网站下载获取用户曾经交互过的物品和对物品的历史评分数据,进行预处理,转换数据格式,以用户历史曾经交互过的物品集合来标识该用户,并划分为训练集和测试集,额外剔除训练集中存在于用户历史交互过的物品集合中的目标物品,然后搭建记忆网络结构,初始化记忆网络的参数,再将训练集的数据输入到记忆网络中进行训练,直至网络收敛,通过对照实验调节网络中的超参数,获得最佳模型,最后通过测试集数据的预测来检验模型效果,得到用户对目标物品进行交互的概率。本发明专利技术的基于记忆网络的物品协同过滤推荐的方法,大大提高了物品协同过滤方法的预测准确性。测准确性。测准确性。

【技术实现步骤摘要】
基于记忆网络的物品协同过滤推荐的方法


[0001]本文专利技术属于推荐系统领域,具体涉及一种基于记忆网络的物品协同过滤推荐的方法。

技术介绍

[0002]近年来,随着网络的快速发展,电商网站对生活的影响日益增长,伴随而来的是用户对于海量商品的选择困难症。为了使用户能在信息过载的时代迅速过滤掉不合适的商品,同时遴选出最适合用户喜好的商品,推荐系统应运而生。协同过滤作为推荐系统的关键一环,其主要原理为:以用户历史所产生的购买行为作为起点,预测其对于商品集合中未产生的购买行为的物品的购买行为。而基于物品的协同过滤方法作为协同过滤方法的一个主要分支,其主要注重点在于以用户曾经交互过的物品对用户的偏好进行建模。
[0003]目前物品协同过滤方法已经得到了较大的发展,从传统的基于统计的物品协同过滤方法到基于机器学习的物品协同过滤方法如SLIM(short for Sparse Linear Method)再到基于神经网络的物品协同过滤方法如FISM(short for Factored Item Similarity Model)发展到基于深度神经网络的物品协同过滤方法如Deep-ICF(Deep Item-based Collaborative Filtering for Top-N Recommendation)。
[0004]这些方法虽然尝试着以用户的历史购买记录来对用户进行建模,但是由于互联网的方便,每位用户的历史购买记录数据比较庞大,而以往的神经网络缺乏强大的记忆能力,即使是RNN也会因为参数量的限制造成信息的缺失,上述方法往往会因为模型缺乏强大的记忆能力而遗漏信息从而不能很好地对用户进行建模。

技术实现思路

[0005]本专利技术为了应对解决上述技术模型存在的问题缺陷,提出了基于记忆网络的物品协同过滤推荐的方法,其具体技术方案如下:
[0006]基于记忆网络的物品协同过滤推荐的方法,包括如下步骤:
[0007]步骤1:通过网站下载获取用户曾经交互过的物品和对物品的历史评分数据;
[0008]步骤2:对所述评分数据进行预处理,包括剔除异常值、填充缺失值,将评分数据转化为二元值,;
[0009]步骤3:转换数据格式,以用户历史曾经交互过的物品ID集合来标识该用户,并将数据集划分为训练集和测试集,额外剔除训练集中亦存在于用户历史交互过的物品集合中的目标物品;
[0010]步骤4:搭建记忆网络的结构,初始化记忆网络的各种网络参数,设置记忆插槽的大小,将训练集的数据输入到记忆网络中进行训练,直至网络收敛,通过对照实验调节网络中的超参数,获得最佳模型;
[0011]步骤5:通过测试集数据的预测来检验模型效果,得到用户对目标物品进行交互的概率。
[0012]进一步的,所述步骤1具体为:
[0013]步骤1.1:为每位用户以及物品生成一个唯一的编号,以这个编号来标识该用户/物品;
[0014]步骤1.2:获取每位用户的历史交易记录,以及该用户对该物品的评分。
[0015]进一步的,所述步骤2具体为:
[0016]步骤2.1:直接删除数据中存在明显异常值的记录,同时对于没有交互过的物品数据集中并没有记录,但是作为网络的训练输入是需要这种记录的,以0作为填充,表示用户没有购买过该物品;
[0017]步骤2.2:生成用户对物品的评分矩阵,设用户购买过该物品则将评分值标记为1,若未购买过该物品则标记为0,得到一个稀疏矩阵。
[0018]进一步的,所述步骤3具体为:
[0019]步骤3.1:转换数据格式,以用户的历史购买物品ID序列表示该用户,与目标物品一起作为输入数据;
[0020]步骤3.2:将输入数据按照7:3的比例划分为训练集和测试集,额外剔除训练集中用户历史购买物品ID序列中包含的目标物品。
[0021]进一步的,所述步骤4具体为:
[0022]步骤4.1:搭建记忆网络的结构,包括输入层、Attention注意力机制层、记忆模块、输出层,设置记忆网络的层数;
[0023]步骤4.2:初始化网络中的每一个参数,服从正态分布以加速网络的收敛,设置embedding层的维度;
[0024]步骤4.3:采用交叉熵作为损失函数,通过Adam优化方法,将训练集的数据输入到记忆网络中进行训练,循环往复直至模型收敛;所述以交叉熵作为模型的损失函数的公式如下:
[0025][0026]其中,为模型输出的预测值,Θ为网络的参数值,R
+
为正样本集合,R-为负样本集合,u,i分别表示用户和物品;
[0027]步骤4.4:通过对比调参,获取最优参数并保存,所述最优参数包括embedding层的维度,网络的层数,L2正则化系数,非标准Softmax的光滑系数β以及Layer Normalization层的缩放参数。
[0028]进一步的,所述非标准Softmax具体为:
[0029][0030]β称为光滑系数,p
i
为用户交互过的物品,q
j
代表目标物品的特征信息。
[0031]进一步的,所述步骤5具体为:
[0032]步骤5.1:将训练好的预测模型在测试集上对用户与物品的交互概率进行预测;
[0033]步骤5.2:将所有的预测结果同真实值进行对比,以HR和NDCG作为指标,得到模型的性能评估结果;所述HR指标的计算公式为:
[0034][0035]其中的分母是所有的测试集合,分子表示每个用户top-K列表中属于测试集合的个数总和;
[0036]所述NDCG指标的计算公式为:
[0037][0038]其中,IDCG@K为理想情况下DCG@K的最大值,DCG@K的计算公式如下:
[0039][0040]其中r(i)为物品i的相关系数;
[0041]步骤5.3:最终的预测模型用于实际电商项目中对用户的购买行为进行预测。
[0042]本专利技术的基于记忆网络的物品协同过滤推荐的方法,大大提高了物品协同过滤方法的预测准确性。
附图说明:
[0043]图1是本专利技术的方法流程图;
[0044]图2是本专利技术的模型的网络结构图;
[0045]图3是本专利技术的模型与其他模型在MovieLens数据集上的NDCG指标性能比较示意图;
[0046]图4是本专利技术的模型与其他模型在MovieLens数据集上的HR指标性能比较示意图;
[0047]图5是本专利技术的模型与其他模型在Pinterest数据集上的NDCG指标性能比较示意图;
[0048]图6是本专利技术的模型与其他模型在Pinterest数据集上的HR指标性能比较示意图。
具体实施方式
[0049]为了使本专利技术的目的、技术方案和技术效果更加清楚明白,下面结合说明书附图,对本专利技术作进一步详细说明。
[0050]基于记忆网络的物品协同过滤推荐的方法,在MovieLe本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于记忆网络的物品协同过滤推荐的方法,其特征在于,包括如下步骤:步骤1:通过网站下载获取用户曾经交互过的物品和对物品的历史评分数据;步骤2:对所述评分数据进行预处理,包括剔除异常值、填充缺失值,将评分数据转化为二元值,;步骤3:转换数据格式,以用户历史曾经交互过的物品ID集合来标识该用户,并将数据集划分为训练集和测试集,额外剔除训练集中亦存在于用户历史交互过的物品集合中的目标物品;步骤4:搭建记忆网络的结构,初始化记忆网络的各种网络参数,设置记忆插槽的大小,将训练集的数据输入到记忆网络中进行训练,直至网络收敛,通过对照实验调节网络中的超参数,获得最佳模型;步骤5:通过测试集数据的预测来检验模型效果,得到用户对目标物品进行交互的概率。2.如权利要求1所述的基于记忆网络的物品协同过滤推荐的方法,其特征在于,所述步骤1具体为:步骤1.1:为每位用户以及物品生成一个唯一的编号,以这个编号来标识该用户/物品;步骤1.2:获取每位用户的历史交易记录,以及该用户对该物品的评分。3.如权利要求1所述的基于记忆网络的物品协同过滤推荐的方法,其特征在于,所述步骤2具体为:步骤2.1:直接删除数据中存在明显异常值的记录,同时对于没有交互过的物品数据集中并没有记录,但是作为网络的训练输入是需要这种记录的,以0作为填充,表示用户没有购买过该物品;步骤2.2:生成用户对物品的评分矩阵,设用户购买过该物品则将评分值标记为1,若未购买过该物品则标记为0,得到一个稀疏矩阵。4.如权利要求1所述的基于记忆网络的物品协同过滤推荐的方法,其特征在于,所述步骤3具体为:步骤3.1:转换数据格式,以用户的历史购买物品ID序列表示该用户,与目标物品一起作为输入数据;步骤3.2:将输入数据按照7:3的比例划分为训练集和测试集,额外剔除训练集中用户历史购买物品ID序列中包含的目标物品。5.如权利要求1所述的基于记忆网络的...

【专利技术属性】
技术研发人员:僧德文陈光森张琪彦张家铭
申请(专利权)人:杭州电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1