基于协同过滤和深度学习的个性化推荐方法及系统与流程

文档序号:24532124发布日期:2021-04-02 10:11阅读:422来源:国知局
基于协同过滤和深度学习的个性化推荐方法及系统与流程

本发明涉及互联网中推荐系统的技术领域,具体涉及到一种基于协同过滤和深度学习的个性化推荐方法及系统。



背景技术:

随着人类生活的网络化,网络中的数据量在爆发式的增加,而这些数据中所带有的信息也在与日俱增,在人们的日常网络生活中,越来越多的应用开始关注利用这些信息来改善用户的上网体验,推荐系统应运而生。相应技术也在日益增多,例如:

cn109410001b提供了了一种商品推荐方法、系统、电子设备和存储介质,获取商品的文本词组的权值,并对文本词组进行向量化得到相应的加权文本词向量;通过预设的聚类算法对加权文本词向量进行聚类;在聚类内计算加权文本词向量间的距离,获取预设的高频词元素近似结果;根据预设的高频词元素近似结果,生成相应的商品推荐结果。

cn111523042b涉及用于推荐商品的方法、装置、电子设备和计算机存储介质,基于用户点击商品记录,生成与用户标识相关联的点击商品标识序列;基于当前时间和与商品标识相关联的活动截止时间,确定与商品标识相关联的剩余时间;基于点击商品标识序列和与商品标识相关联的剩余时间,生成商品共现元组,商品共现元组包括点击商品标识序列中的两个商品标识以及权重;基于商品共现元组,生成与商品标识相关联的商品表示;以及基于商品表示之间的相似度,确定与商品标识相关联的推荐商品。由此,在确定推荐商品时考虑商品的活动截止时间,避免推荐商品的时效性问题。

目前,不管是在学术界还是在工业界中,协同过滤算法因为其性能优良和可用性强在推荐系统领域受到广泛关注,基于协同过滤的推荐系统简单来说就是利用用户以往购买行为,过滤出用户可能感兴趣的商品,从而进行商品推荐。其中基于隐语义模型的协同过滤会采用到用户-商品交互矩阵,然后进行矩阵分解或嵌入式等操作来得到用户和商品的隐性特征表示(隐向量),最后将隐向量进行相似度计算,相似度越高,说明用户对商品的兴趣度越大。传统的协同过滤都是采用线性结合的方式来预测用户对商品的喜好。

随着深度学习的不断发展和完善,越来越多的推荐模型将深度神经网络结合到已有的模型中,很好的解决了线性模型只能通过线性函数来进行数据建模的问题,深度学习模型采用深度神经网络帮助模型提取用户和商品的非线性特征关系,学习潜在的用户兴趣,从而更准确地捕捉用户对商品的偏好信息。例如:

cn107038609a提供一种基于深度学习的商品推荐方法,结合深度学习的方法对文本进行细化处理,并将其通过模糊隶属函数进行量化,可将用户的评论转化为对商品各项属性的打分情况,再结合协同过滤方法进行推荐。

注意力模型或者说注意力这种思想已经是深度学习中最重要的思想之一,其最初应用于视觉领域,后来有被用于机器翻译,他可以通过计算注意力权重来告诉模型需要将多少注意力放在相应的信息处。现在越来越多的推荐系统将此类方法引用到自己的模型上,注意力机制不仅可以提高系统的准确度,还可以增强系统的可解释性。就协同过滤的模型来说,采用注意力机制可以计算出用户的历史行为中哪些行为更具有价值,对用户的下一行为产生更大的影响,进而系统可以据此信息提供更准确的推荐服务。

但是,目前大多数存在的基于深度学习的协同过滤推荐模型存在如下问题:

1、当前应用较多的协同过滤模型在计算用户和商品的隐性特征向量时采用嵌入式的方法,在此方法中大多数模型都是将用户和商品表示为独热编码,然后通过嵌入矩阵得到对应的隐向量,这样的方法没有充分利用用户-商品交互矩阵中的信息,例如,用户以往购买过哪些商品,某商品以往被哪些用户购买过,这些通过此编码方式都无法得知,而这些信息在对用户进行个性化推荐时往往非常重要。

2、基于深度学习的推荐模型旨在挖掘用户和商品的非线性特征关系,但是他们往往忽略了在低阶交互中显式编码的协同信号,这些在低阶交互中捕捉的线性特征关系往往也是个性化推荐的关键。

3、利用用户以往购买信息对用户进行商品推荐时,并不是所有商品对用户的下一购买行为的影响程度都是一样的,例如,偏爱电子商品的用户以往购买过鼠标、键盘和帽子,那么,系统就应该更加关注于鼠标和键盘对下一购买行为的影响,但是在很多推荐系统中,这种思想没有得到体现。



技术实现要素:

本发明针对现有模型的不足,提出了一种基于协同过滤和深度学习的个性化推荐方法。该方法改进了传统协同过滤算法对用户和商品编码存在的不足,以及结合深度神经网络,通过注意力神经网络根据不同的用户进行兴趣挖掘,同时根据不同的商品进行用户兴趣划分,最后将带有兴趣偏好的用户和商品向量进行线性和非线性的交互,从而进行更精准的商品推荐,大力提高个性化推荐的准确率和可解释性。

本发明所提供的技术方案是一种基于协同过滤和深度学习的个性化推荐方法,包括以下步骤,

步骤1,获取用户购买商品的历史行为特征数据,并进行预处理,将用户的购买行为按照时间进行排序,排序后的数据称为用户的行为特征序列;

步骤2,个性化推荐系统建模,所述个性化推荐系统包括依次设置的如下部分,输入层,用于将用户的编码和商品的编码分别表示为用户输入向量和商品输入向量,所述用户的编码包括用户的多热编码和用户的独热编码,所述商品的编码包括商品的多热编码和商品的独热编码;

嵌入层,用于将用户输入向量和商品输入向量降维,得到用户的嵌入向量和物品的嵌入向量;所述用户u的嵌入向量包括其历史购买商品对应的嵌入向量的集合,构成用户u的嵌入特征;所述商品v的嵌入向量包括其历史购买者对应的嵌入向量的集合,构成商品v的嵌入特征;

注意力神经网络,用于对嵌入向量进行加权,包括对于每一个用户计算出其历史购买商品的注意力权重,以衡量用户u偏向于购买哪些物品;对于每一个物品计算出其历史购买者的注意力权重,以衡量物品v偏向于被哪些用户购买;

交互层,用于将加权后的隐向量进行线性和非线性的交互,获取用户和商品之间的显式和隐式关系;

融合层和输出层,用于进行用户对商品的点击率预估,包括对交互层中线性和非线性子部分得到的输出进行融合,得到最后的用户和目标商品之间的交互关系,再据此计算用户购买目标商品的概率,概率越大,则购买的可能性越大;

步骤3,使用用户行为特征序列进行模型的训练和测试,对测试的商品通过点击率的高低进行排序,然后选取前若干项进行推荐。

而且,在步骤1中,需要获取的数据包括所有用户的id值,所有商品的id值,以及所有用户的购买记录,并将用户的购买记录按照购买时间进行排序;选择用户最近一次的购买记录作为模型的测试集,倒数第二次购买记录作为模型的验证集,其余购买记录作为模型的训练集;

构建隐式反馈交互矩阵m,矩阵大小为m×n,m表示用户的数量,n表示商品的数量,矩阵中的数值为1表示用户购买过此商品,数值为0表示用户未购买过此商品;矩阵的第i行表示id值为i的用户的购买记录,矩阵的第j列表示id值为j的商品被购买记录。

而且,在输入层中,针对每一个用户,使用交互矩阵m中其id值对应的行对其进行编码,称之为用户的多热编码;针对每一个商品,使用交互矩阵m中其id值对应的列对其进行编码,称之为商品的多热编码;同时,对每一个用户的id和每一个物品的id进行独热编码表示。

而且,在嵌入层中,采用两个嵌入矩阵来对用户输入向量和商品输入向量进行降维,实现如下,用于对用户特征降维的嵌入矩阵为p∈rm×k,其中m表示用户的数量,k表示低维空间的维度,用于对商品特征降维的嵌入矩阵为q∈rn×k,其中n表示物品的数量,k表示低维空间的维度;

针对每一个用户u,都能够在嵌入矩阵p中找到其id值对应的嵌入向量tu,然后在嵌入矩阵q中找到用户u的所有历史购买商品的嵌入向量qj∈q,则用户u的嵌入特征表示为其中表示用户u的历史购买的商品的集合;

针对每一个商品v,都能够根据其id值,在嵌入矩阵q中找到对应的嵌入向量tv,然后对于商品v的所有历史购买者根据嵌入矩阵p生成对应的嵌入向量pi∈p,其特征表示为其中表示物品v的历史购买者的集合。

而且,在注意力神经网络中,采用基于单层神经网络的注意力模型;

在注意力模型中,选择采用点积的方式来表示历史项与目标项之间的相似度,然后使用一个带有隐藏层的多层感知器来参数化此相似度,再将输出的参数经过softmax进行归一化得到最后的注意力权重;

得到用户和商品的注意力权重后,基于原始的嵌入矩阵进行加权求和,得到用户和商品的兴趣嵌入向量,表示为eu和ev。

而且,交互层分为两个子部分,其中第一个子部分为线性交互层,采用用户和商品的兴趣嵌入向量之间的点乘操作来挖掘用户和目标商品之间的线性关系,将计算结果olinear作为此部分输出;

第二个子部分为非线性交互层,首先基于级联操作形成用户-商品对的表示形式,然后将此表示向量输入到全连接神经网络中,通过全连接神经网络中的全连接层和激活层建模用户和物品之间的高阶非线性关系,全连接神经网络最后一层的输出ono-linear作为该部分的输出。

在融合层中,将两个子部分得到的输出进行融合,得到最后的用户和目标商品之间的交互关系,再将此关系输入到sigmoid函数中计算用户购买目标商品的概率,概率越大,则购买的可能性越大。计算公式如下:

y′u,v=σ(ht[olinear,ono-linear])+bu+bv

其中bu和bv表示与用户u和商品v的偏差,向量ht表示融合层中的权重向量,σ是sigmoid函数。

而且,在步骤3中,使用用户行为特征序列进行模型的训练和测试时,模型训练的损失函数采用交叉熵损失,计算公式如下:

其中,y′u,v指模型预测的用户u购买商品v的概率,h+表示用户与购买过的商品构成的交互集合,h-表示用户与未购买过的商品构成的交互集合,θ代表模型参数,λ表示对参数进行l2正则化的控制系数;

在测试模型时,计算得到用户对测试集中的商品和所有未购买商品的购买概率值,将概率值按照大小进行排序,选取排序后的前n个商品作为推荐列表推荐给用户;每次测试时,若测试集中的商品都能在推荐列表中出现且排名越靠前,则说明模型的性能越好。

另一方面,本发明还提供一种基于协同过滤和深度学习的个性化推荐系统,用于实现上所述的一种基于协同过滤和深度学习的个性化推荐方法。

而且,包括以下模块,

第一模块,用于获取用户购买商品的历史行为特征数据,并进行预处理,将用户的购买行为按照时间进行排序,排序后的数据称为用户的行为特征序列;

第二模块,用于个性化推荐系统建模,所述个性化推荐系统包括依次设置的如下部分,输入层,用于将用户的编码和商品的编码分别表示为用户输入向量和商品输入向量,所述用户的编码包括用户的多热编码和用户的独热编码,所述商品的编码包括商品的多热编码和商品的独热编码;

嵌入层,用于将用户输入向量和商品输入向量降维,得到用户的嵌入向量和物品的嵌入向量;所述用户u的嵌入向量包括其历史购买商品对应的嵌入向量的集合,构成用户u的嵌入特征;所述商品v的嵌入向量包括其历史购买者对应的嵌入向量的集合,构成商品v的嵌入特征;

注意力神经网络,用于对嵌入向量进行加权,包括对于每一个用户计算出其历史购买商品的注意力权重,以衡量用户u偏向于购买哪些物品;对于每一个物品计算出其历史购买者的注意力权重,以衡量物品v偏向于被哪些用户购买;

交互层,用于将加权后的隐向量进行线性和非线性的交互,获取用户和商品之间的显式和隐式关系;

融合层和输出层,用于进行用户对商品的点击率预估,包括对交互层中线性和非线性子部分得到的输出进行融合,得到最后的用户和目标商品之间的交互关系,再据此计算用户购买目标商品的概率,概率越大,则购买的可能性越大;

第三模块,用于使用用户行为特征序列进行模型的训练和测试。

或者,包括处理器和存储器,存储器用于存储程序指令,处理器用于调用存储器中的存储指令执行如上所述的一种基于协同过滤和深度学习的个性化推荐方法。

综上所述,本发明对比现阶段已有技术相比,具有如下优点和效果:

1、本发明从用户历史行为数据中挖掘用户和商品的特征表示,对于用户和商品的编码采用其历史购买项和历史购买者,充分挖掘了用户的和商品的协同信号,为捕捉用户的个性化需求提供基础。

2、本发明针对用户隐式反馈数据的特征提出了一种经过注意力神经网络的加权模型,将注意力权重引入到用户偏好学习中,从用户历史购买行为中充分挖掘用户的兴趣所在,从商品历史购买者中挖掘该商品会更吸引哪些用户,从而提高推荐的准确度和可解释性。

3、本发明提供的基于深度学习的推荐方法,将深度神经网络模型与浅层线性模型融合在一起,可以同时捕捉到用户与商品之间的线性交互关系和高阶非线性交互关系,大大提高推荐的准确度。

本发明方案实施简单方便,实用性强,解决了相关技术存在的实用性低及实际应用不便的问题,能够提高用户体验,具有重要的市场价值。

附图说明

图1为本发明实施例基于协同过滤和深度学习的个性化推荐流程图。

图2为本发明实施例隐式反馈用户商品交互矩阵图。

图3为本发明实施例个性化推荐系统模型图。

图4为本发明实施例注意力加权模型图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚明白,现结合附图和实施例详细说明本发明技术方案。应当理解,此处所描述的具体实施案例仅用于解释本发明,并不用于限定本发明。

如图1所示,本实施例所提供的基于协同过滤和深度学习的个性化推荐方法,主要分为三个阶段:首先需要获取用户购买商品的历史行为数据,进行预处理,生成隐式反馈交互矩阵。然后是建模个性化推荐系统,此阶段又包含从交互矩阵中获取用户和商品的输入向量,然后分别生成用户和商品的隐向量,再经过注意力神经网络对隐向量进行加权,加权后的隐向量再进行线性和非线性的交互,从而获取用户和商品之间的显式和隐式关系,最后进行用户对商品的点击率预估。最后一个阶段是使用用户行为特征序列进行模型的训练和测试,对测试的商品通过点击率的高低进行排序,然后选取前n项进行推荐。

本实施例所提供的基于协同过滤和深度学习的个性化推荐方法,具体实现流程包括以下步骤:

步骤1,获取用户购买商品的历史行为特征数据,并进行预处理,将用户的购买行为按照时间进行排序,排序后的数据称为用户的行为特征序列。

在步骤1中,需要获取的数据包括所有用户的id值,所有商品的id值,以及所有用户的购买记录;并将用户的购买记录按照购买时间进行排序;选择用户最近一次的购买记录作为模型的测试集,倒数第二次购买记录作为模型的验证集,其余购买记录作为模型的训练集。

实施例根据收集的用户购买商品的信息,构建一个隐式反馈交互矩阵m。矩阵大小为m×n,m表示用户的数量,n表示商品的数量,矩阵中的数值只有1和0,数值为1表示用户购买过此商品,数值为0表示用户未购买过此商品。矩阵的第i行即表示id值为i的用户的购买记录,矩阵的第j列即表示id值为j的商品被购买记录。

验证集是用来调整模型参数的样本集,测试集是为了测试已经训练好的模型的性能的样本集,为了保证实验的严谨性,验证集和测试集中的用户购买记录在隐式反馈交互矩阵m中都表示为用户未购买过该商品。

如图2所示,实施例建立一个m×n大小的交互矩阵,矩阵的行表示每一个用户的id值,从1到m,表示共有m个用户。矩阵的列表示每一个商品的id值,从1到n,表示共有n个商品,矩阵中的1表示用户购买过某商品,例如第1行第1列,表示用户1购买过1号商品。矩阵中的0表示用户没有购买过某商品,例如第1行第2列,表示用户1没有购买过2号商品。

步骤2,建模个性化推荐系统。如图3所示为本发明提出的个性化推荐系统模型,分为输入层、嵌入层、注意力神经网络、交互层、融合层和输出层,每一层实现的具体步骤如下:

步骤2.1,输入层的设置,用于获得用户商品输入向量,包括将用户和商品的编码表示为用户和商品输入向量,其中用户的编码包括用户的多热编码和用户的独热编码,商品的编码包括商品的多热编码和商品的独热编码,然后将上述四种编码分别用四种向量进行表示,前两者称为用户输入向量,后两者称为商品输入向量。

在步骤2.1中,针对每一个用户,使用交互矩阵m中其id值对应的行对其进行编码,称之为用户的多热编码。针对每一个商品,使用交互矩阵m中其id值对应的列对其进行编码,称之为商品的多热编码。同时,需要对每一个用户的id和每一个物品的id进行独热编码表示。

实施例中,从步骤1中已经得到用户商品交互矩阵m,对于用户u,使用交互矩阵m中第u行对其进行编码,称之为用户的多热编码。针对商品v,使用交互矩阵m中第v列对其进行编码,称之为商品的多热编码。这种编码模式克服了传统的独热编码的不足,通过多热编码可以得知用户以往购买过哪些商品,从而能够挖掘出用户的喜好,也可以得知商品以往被哪些用户购买过,从而得知该商品受哪些用户喜欢。对用户u进行独热编码,该表示得到的是与用户数量相同维度的向量,实施例中维度为m,向量中位置u的值为1,其余位置为0。同理,对商品v进行独热编码表示,该表示得到的是与商品数量相同维度的向量,实施例中维度为n,向量中位置v的值为1,其余位置为0。

步骤2.2,嵌入层的设置,用于将用户输入向量和商品输入向量降维,得到用户的嵌入向量和物品的嵌入向量;所述用户u的嵌入向量包括其历史购买商品对应的嵌入向量的集合,构成用户u的嵌入特征;所述商品v的嵌入向量包括其历史购买者对应的嵌入向量的集合,构成商品v的嵌入特征。嵌入向量即隐向量。

本步骤需要构造两个嵌入矩阵来对用户和商品的特征向量进行降维,用于将高维稀疏向量映射到低维稠密向量,在低维空间中,相似度越高的向量之间的几何距离越小,例如女人、男人和裙子这三个项目的表示向量嵌入到低维空间后,女人和裙子的嵌入向量之间的几何距离比男人和裙子的嵌入向量之间的几何距离会更小。

实施例中,用于对用户特征降维的嵌入矩阵为p∈rm×k,其中m表示用户的数量,k表示低维空间的维度,用于对商品特征降维的嵌入矩阵为q∈rn×k,其中n表示商品的数量,k表示低维空间的维度。r表示实数集。

根据用户的多热编码和用户的独热编码,针对用户u,在嵌入矩阵p中找到其id值对应的嵌入向量tu∈p,即嵌入矩阵p的第u行,其大小为1×k。然后在嵌入矩阵q中找到用户u的所有历史购买商品的嵌入向量qj∈q,则用户u的嵌入特征表示为其中表示用户u的历史购买的商品的集合,用表示集合的大小,即用户曾经购买过的商品的数量,采用j表示历史购买的商品序号。

根据商品的多热编码和商品的独热编码,针对商品v,根据其id值在嵌入矩阵q中找到对应的嵌入向量tv∈q,即矩阵q的第v行,其大小为1×k。然后对于商品v的所有历史购买者根据嵌入矩阵p生成对应的嵌入向量pi∈p,其特征表示为其中表示商品v的历史购买者的集合,用表示集合的大小,即曾经购买过该商品的用户数量,采用i表示购买过该商品的用户序号。

步骤2.3,注意力神经网络设置,用于对隐向量进行加权。

对于每一个用户计算出其历史购买商品的注意力权重,用来衡量用户u偏向于购买哪些物品,对于每一个物品计算出其历史购买者的注意力权重,用来衡量物品v偏向于被哪些用户购买,实施例采用基于单层神经网络的注意力模型。

如图4为使用注意力神经网络对用户u历史购买商品加权的模型图。因为对于商品v的历史购买者加权的方式与之相同,故未提供相应模型图。

在此注意力模型中,选择采用点积的方式来表示两个向量之间的相似度,然后使用一个带有大小为f的隐藏层的多层感知器来参数化此相似度,再将输出的参数进行归一化得到最后的注意力权重。

实施例中,输入为商品v的嵌入向量tv和用户u的嵌入特征表示su,首先采用点积的方式计算tv与su集合中所有向量qj的相似度,然后使用一个带有隐藏层的全连接层来参数化此相似度,即经过一次权重加权后再经过一层激活函数计算,得到参数化后的注意力权重再将这些权重进行归一化得到最后的注意力权重亦即用户u的每一个历史购买商品对购买目标商品v的影响程度,计算公式如下:

其中,a′u,v,*表示au,v,*的中间计算结果,a′u,v,j表示au,v,j的中间计算结果,wu∈rf×k表示注意力权重矩阵,bu∈rf表示注意力偏置向量,表示激活函数,本实施例选择relu激活函数,hu∈rf表示注意力输出向量,上标t表示转置,⊙表示按元素排列的点乘操作。例如,图4中得到注意力权重au,v,j,简化记为得到au,1、au,2等。

同理,针对每一个商品计算出其历史购买者的注意力权重,用来衡量商品v偏向于被哪些用户购买,采用的方法与上述类似。输入为用户u的嵌入向量tu和商品v的嵌入特征表示sv,首先采用点积的方式计算tu与sv集合中所有向量pi的相似度,然后使用一个带有隐藏层的全连接层来参数化此相似度,即经过一次权重加权后再经过一层激活函数计算,得到参数化后的注意力权重再将这些权重进行归一化得到最后的注意力权重针对商品v其历史购买者的注意力权重av,u,i的计算公式如下:

其中,a′v,u,*表示av,u,*的中间计算结果,a′v,u,i表示av,u,i的中间计算结果,wv∈rf×k表示注意力权重矩阵,bv∈rf表示注意力偏置向量,表示激活函数,本实施例选择relu激活函数,hu∈rf表示注意力输出向量,上标t表示转置,⊙表示按元素排列的点乘操作。

得到用户历史购买商品的注意力权重后,基于原始的嵌入矩阵进行加权求和,即将注意力权重与原始对应的商品嵌入向量进行相乘操作,得到了用户历史购买商品加权后的嵌入向量,表示为再将这些向量进行求和,即得到用户的兴趣嵌入向量,表示为eu,计算公式如下:

同理,商品的兴趣嵌入向量ev的计算公式如下:

步骤2.4,交互层设置,用于将加权后的隐向量进行线性和非线性的交互,从而获取用户和商品之间的显式和隐式关系。

实施例中,交互层分为两个子部分,其中第一个子部分为线性交互层,主要采用的是向量之间的点乘操作来挖掘用户和目标商品之间的线性关系,将计算结果作为此部分输出。主要计算公式为:

第二个子部分为非线性交互层,在此部分,首先基于级联操作形成用户-商品对的表示形式,计算公式如下:

其中表示用户与目标商品共同组成的向量表示。然后将此表示向量输入到多层全连接神经网络中,这种结构具有全连接层和激活层,能够建模用户和物品之间的高阶非线性关系。多层全连接神经网络可以表达成计算公式为:

其中,l表示神经网络的第l层,矩阵wl和向量bl分别表示第l层中的权重矩阵和偏置向量,为激活函数,可自定义,本实施例选择relu作为激活函数。假设全连接神经网络一共有l层,将最后一层的输出作为该部分的输出,表示为ono-linear。

步骤2.5,融合层和输出层设置,用于进行用户对商品的点击率预估。

将交互层中两个子部分得到的输出进行融合,得到最后的用户和目标商品之间的交互关系,再将此关系输入到sigmoid函数中计算用户购买目标商品的概率,概率越大,则购买的可能性越大。

实施例中,融合层将步骤2.4中两个子部分得到的输出进行融合,即将向量olinear和ono-linear进行级联。再将级联结果输入到sigmoid函数中计算用户购买目标商品的概率y′u,v。计算公式如下:

y′u,v=σ(ht[olinear,ono-linear])+b1+b2

其中,b1和b2表示与用户u和商品v的偏差,向量h∈r2k表示融合层中的权重向量。σ是sigmoid函数。

步骤3,使用用户行为特征序列进行模型的训练和测试。

实施例在步骤1的预处理阶段,将用户的购买行为按照时间进行排序,排序后的数据称为用户的行为特征序列,使用此用户行为特征序列进行模型的训练和测试,并将数据集划分为训练集、验证集和测试集。

本步骤使用步骤1所得的训练集和验证集进行模型训练及验证,在训练模型时,将用户购买过的商品标记为正样本,最后模型输出结果应该尽可能接近1,将用户未购买过的商品标记为负样本,最后模型的输出结果应该尽可能接近0。为了使模型能够通过训练数据学习到正确的预估用户对商品的购买概率值,需要选择合适的损失函数,判断在训练过程中模型整体的损失值,然后通过优化函数,不断减小损失值,达到模型优化的效果。由于实施例中的推荐结果为预估用户是否会购买推荐的商品,所有模型训练的损失函数采用交叉熵损失,计算公式如下:

其中,y′u,v指模型预测的用户u购买商品v的概率,h+表示用户与购买过的商品构成的交互集合,h-表示用户与未购买过的商品构成的交互集合,θ代表模型参数,泛指网络需要训练的所有参数,在实施例中,包括嵌入层的嵌入矩阵,注意力神经网络中注意力嵌入矩阵,融合层的权重向量以及所有偏置向量。λ表示对参数进行l2正则化的控制系数。

优化函数可以根据实际情况自行选择,例如随机梯度下降、adam、adagard等。

然后使用测试数据进行结果测试,测试数据包括测试集中用户最近一次购买的商品和所有用户未购买的商品,计算得到用户对测试数据中所有商品的购买概率值,将这些概率值按照大小进行排序,排名越靠前说明购买的可能性越大,选取排序后的前n个商品作为推荐列表推荐给用户。例如现在测试数据为1-100号商品,通过模型计算出用户u可能购买1-100号商品的概率值,将这些概率值按照大小进行排序,假设取n=5,这100个商品排在前5位的商品id值为1,3,6,20,38,则最后选取这5个商品推荐给用户u。在测试模型时,如果用户最近一次购买的商品总是出现在推荐列表中,并且位置越靠前,则说明模型的性能越好。

具体实施时,本发明技术方案提出的方法可由本领域技术人员采用计算机软件技术实现自动运行流程,实现方法的系统装置例如存储本发明技术方案相应计算机程序的计算机可读存储介质以及包括运行相应计算机程序的计算机设备,也应当在本发明的保护范围内。

在一些可能的实施例中,提供一种基于协同过滤和深度学习的个性化推荐系统,包括以下模块,

第一模块,用于获取用户购买商品的历史行为特征数据,并进行预处理,将用户的购买行为按照时间进行排序,排序后的数据称为用户的行为特征序列;

第二模块,用于个性化推荐系统建模,所述个性化推荐系统包括依次设置的如下部分,输入层,用于将用户的编码和商品的编码分别表示为用户输入向量和商品输入向量,所述用户的编码包括用户的多热编码和用户的独热编码,所述商品的编码包括商品的多热编码和商品的独热编码;

嵌入层,用于将用户输入向量和商品输入向量降维,得到用户的嵌入向量和物品的嵌入向量;所述用户u的嵌入向量包括其历史购买商品对应的嵌入向量的集合,构成用户u的嵌入特征;所述商品v的嵌入向量包括其历史购买者对应的嵌入向量的集合,构成商品v的嵌入特征;

注意力神经网络,用于对嵌入向量进行加权,包括对于每一个用户计算出其历史购买商品的注意力权重,以衡量用户u偏向于购买哪些物品;对于每一个物品计算出其历史购买者的注意力权重,以衡量物品v偏向于被哪些用户购买;

交互层,用于将加权后的隐向量进行线性和非线性的交互,获取用户和商品之间的显式和隐式关系;

融合层和输出层,用于进行用户对商品的点击率预估,包括对交互层中线性和非线性子部分得到的输出进行融合,得到最后的用户和目标商品之间的交互关系,再据此计算用户购买目标商品的概率,概率越大,则购买的可能性越大;

第三模块,用于使用用户行为特征序列进行模型的训练和测试。

在一些可能的实施例中,提供一种基于协同过滤和深度学习的个性化推荐系统,包括处理器和存储器,存储器用于存储程序指令,处理器用于调用存储器中的存储指令执行如上所述的一种基于协同过滤和深度学习的个性化推荐方法。

在一些可能的实施例中,提供一种基于协同过滤和深度学习的个性化推荐系统,包括可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序执行时,实现如上所述的一种基于协同过滤和深度学习的个性化推荐方法。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1