1.一种融合协同过滤与Embedding技术的混合推荐方法,其特征在于,包括步骤:
S1:数据预处理,先将数据进行处理,对数据进行清洗和将数据转化为指定的格式;
S2:用 ALS 算法训练隐语义模型,根据用户评分表和商品数据集计算用户商品推荐矩阵;
S3:网络节点的向量化,采用Embedding 中的node2vec模型实现节点向 量化,添加商品的侧面信息,完成了商品的向量化之后,计算商品对应特征向量间的余弦值,然后进行推荐,将距离目标商品最近的商品推荐给用户,步骤3.1:构建网络结构,先根据商品浏览序列构造网络,由于浏览序列在时间上存在先后关系,所以形成的网络结构图是一个有向图,其中节点表示不同商品,边表示此对商品在同一序列中存在共现,箭头的指向表示浏览的顺序,边权重表示两者在所有序列中共现的次数;
步骤3.2:采用node2vec实现节点向量化,在网络结构图的基础上,运用node2vec算法对节点进行向量化,在此之前需要完成模型的参数设置,设置模型随机游走的步长walk length,对于每个节点的游走次数为num walks,随机游走的两个转移概率分别设为 节点向量的维数dim,向量训练时采用Skip‑Gram模型,设置其训练窗口的大小window size,迭代次数iter,最终得到商品的向量表示;
步骤3.3:添加商品的侧面信息,侧面信息包括商品品牌、归属种类、线上评分,侧面信息是对商品信息的补充,将侧面信息加入到商品的向量表示中,如果原本的商品向量维数为X,加入的方式是采用不同的权值加入作为商品向量的新属性,通过比较聚类效果,最终将这三个指标以λ1、λ2、λ3的权值分别补充为商家的第X+1维、X+2维和X+3维,最终得到的商维数为X+3维,前X维表示商品的原有属性,后三维表示商品的侧面补充信息;
步骤3.4:匹配相似商品,完成了商品的向量化之后,针对商品间的相似性进行向量度量,在所构成的空间中实现相似商品的合并聚类,此时两个节点间的相似度便转化为两个向量之间相似度问题,在空间中,距离越近表示差异越小,距离越远表示差异越大,根据向量之间距离的度量标准,此处采用向量间的余弦值作为度量标准,通过测量两个向量间的夹角与矢量长度,该方法定义两个向量之间的余弦值为:,
其中 表示两个不同的商品向量,表示向量之间的夹角,
由以上公式刻画出的是两个商品向量在空间上的位置距离,两个商品向量之间的余弦值越大说明两者在空间上的距离越近,相似性越高,反之亦然,每个商品由此可以得到余弦值,每个值表示其余商品与该商品的相似度,最后筛选出每个商品对应余弦值排名前N 的商品作为最相似商品的匹配序列,然后按照从小到大的顺序进行 Top‑N 推荐;
S4:对ALS算法和 Node2vec算法的推荐结果进行加权组合,得到最终的混合推荐结果。
2.如权利要求1所述的融合协同过滤与Embedding技术的混合推荐方法,其特征在于,步骤1.1:将用户—服饰评分数据集按照 8:2 的比例随机的分为训练集和测试集,训练集用于对 ALS 的模型进行训练,测试集用于计算 RMSE 和MAE的值和验证推荐算法的准确性;
步骤1.2:将训练集转换为一个 Rating()类型的 RDD,并保存在内存中,在训练 ALS模型时使用,将数据集中的商品名提取出来,将所有的商品名保存在一个 Array[]类型的RDD,并保存在内存中,在 node2vec 生成商品名对应的维度时使用。
3.如权利要求1所述的融合协同过滤与Embedding技术的混合推荐方法,其特征在于,步骤2.1:从数据库的用户评分表中读取用户ID uid,商品ID pid作为用户评分数据集;
步骤2.2:通过ALS算法训练隐语义模型,首先进行模型的参数定义:隐特征向量的维度rank、迭代次数iterations、正则化系数λ,其中rank代表了模型的复杂度,是指每个用户特征和每个商品特征有几个特征值;iterations是模型训练的次数,给定一个训练上限;λ是防止过拟合参数;
步骤2.3:从数据库加载用户评分表,随机切分数据集划分为训练集和测试集,将 80%的数据作为训练集,20%的数据作为测试集;
步骤2.4:使用均方根误差RMSE和平均绝对误差MAE作为模型的评估标准,即计算预测评分和真实评分之间的误差;
步骤2.5:通过ALS算法训练隐语义模型model并得到预测评分,分别往模型传入参数trainData、rank、iterations和λ,基于预测评分和真实评分之间的误差求RMSE和MAE;
步骤2.6:通过调整参数值,选取值RMSE和MAE最小的参数作为模型优化的选择,RMSE和MAE取值越小就代表在测试集上表现越好;
步骤2.7:经训练计算得到最佳参数,即隐语义模型优化完成;
步骤2.8:获取用户推荐矩阵,基于用户和商品的隐特征向量计算预测评分,根据评分高低得到用户的推荐列表;
步骤2.9:计算用户ID uid,商品ID pid的笛卡尔积,产生(uid,pid)的元组,得到用户‑商品的空评分矩阵;
步骤2.10:调用通过ALS算法训练的隐语义模型中predict方法,将空评分矩阵传入得到用户‑商品的预测评分;
步骤2.11:通过filter函数过滤出预测评分大于 0 的项,然后基于用户ID uid做分组聚合得到评分列表;
步骤2.12:对于列表里的预测结果按预测分值进行排序,返回值最大的K个商品作为当前用户的推荐结果。
4.如权利要求1所述的融合协同过滤与Embedding技术的混合推荐方法,其特征在于,对ALS算法和 Node2vec算法的推荐结果进行加权预测推荐,预测推荐的公式如下所示:,
其中, ,Aresult为基于 ALS 评分预测的推荐, Nresult 为基于node2vec 下商品间距离大小的推荐, 为基于 ALS 的推荐结果和基于Node2vc的推荐结果在最终的推荐结果中所占的比重,根据两种推荐结果所占的权重大小,得到两种推荐算法最终推荐结果。