一种基于残差网络的序列推荐方法、系统及存储介质
技术领域
本发明涉及推荐系统
技术领域
,具体而言,特别是涉及一种基于残差网络的序列推荐方法、系统及存储介质。背景技术
推荐系统是利用电子商务网站向客户提供商品信息和建议,帮助用户决定应该购买什么产品,模拟销售人员帮助客户完成购买过程。个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。近年来,序列推荐系统(SRSs)这一新兴的研究课题越来越受到人们的关注,与基于协同过滤和基于内容的传统推荐系统(RSs)不同,SRSs试图理解和建模用户的行为序列中的用户与项目之间的交互,以及用户的偏好与项目的流行度随时间的演变,以更精确地描述用户上下文的意图和目标、项目消费趋势,产生更准确、定制化和动态的推荐。但现有推荐系统存在一些不足,比如对用户的兴趣学习不准确,导致推荐性能大打折扣。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种基于残差网络的序列推荐方法、系统及存储介质。设计了多个残差结构的GRU神经网络,将经过GRU神经网络处理后的得到的输出与原始输入拼接,作为下一个GRU神经网络的输入,在处理的过程中还引入了更新门,最后得到的用户的最终兴趣,根据用户的最终兴趣更能表达用户的真实兴趣,使推荐性能得到进一步提高。
本发明解决上述技术问题的技术方案如下:一种基于残差网络的序列推荐方法包括:
步骤S1、通过网络获取用户的原始消费数据,将所述原始消费数据划分序列得到序列段,将所述序列段初始化,得到供GRU神经网络识别的序列数据;
步骤S2、基于残差结构的GRU神经网络,对所述序列数据进行输出处理,将输出的隐藏状态作为用户的全局兴趣;
步骤S3、根据商品级注意力机制,对所述序列数据和所述隐藏状态进行计算得到用户的局部兴趣;
步骤S4、将所述全局兴趣与所述局部兴趣拼接,得到最终兴趣;
步骤S5、通过所述最终兴趣计算用户下一次交互商品的概率分布,根据所述概率分布进行模型训练,得到训练模型,根据训练模型预测用户的下一次交互行为,向用户推荐商品信息。
本发明的有益效果是:将序列数据输入残差结构的GRU神经网络,既丰富了GRU神经网络输入的特征信息,特征信息既包含了用户的原始数据,也包含了经过神经网络处理后的特征信息,提取用户的消费特征信息,可以准确学习用户的消费行为,实现精准的推荐效果。
在上述技术方案的基础上,本发明还可以做如下改进:
进一步,所述原始消费数据包括时间属性;所述步骤S1包括:
将所述原始消费数据根据预设周期划分为一个序列,得到多个序列段,将每个序列段初始化得到序列数据,根据GRU神经网络将所述序列数据展开,所述序列数据可表示为x=(k1,k2,...kn),n表示时间步的大小。
进一步,所述步骤S2具体包括:
S21、根据式(1)对所述序列数据进行首次GRU神经网络输出处理,对应于序列数据顺序得到多个隐藏状态hn′,所述式(1)为hn′=GRU(x),x为序列数据;
S22、根据式(2)将所述序列数据与所述多个隐藏状态hn′的最后一个隐藏状态进行融入处理,得到更新门输出hn,所述更新门输出hn包括用户的原始消费数据和当前消费特征所述式(2)为:
式中,σ为激活函数,W1、W2为权重矩阵,b为偏置向量,为哈达码乘积,x为序列数据,hk为hn′的最后一个隐藏状态;
S23、根据式(3),将所述更新门输出hn与所述序列数据拼接,计算基于残差结构的第二次GRU神经网络输出,得到对应所述序列数据顺序的多个隐藏状态所述式(3)为:式中,x为序列数据,hn为更新门输出;
S24、将所述多个隐藏状态与所述序列数据拼接,计算基于残差结构的第三次GRU神经网络输出,得到对应所述序列数据顺序的多个隐藏状态hn″;
S25、将所述hn″的最后一个隐藏状态作为用户的全局兴趣。
采用上述进一步方案的有益效果是:由于用户不同序列消费的商品数量不同,将GRU神经网络的输出与序列数据拼接做下一个GRU神经网络的输入,其中hk包括用户的当前消费特征,经过三次GRU神经网络的融入过滤,用户的消费数据不但得到有效增加,还丰富了用户的消费特征信息,提高了学习用户消费行为的准确性。
进一步,步骤S3具体包括:
S31、根据式(4)计算得到不同商品的权重,所述式(4)为:
式中,W5、W6为权重矩阵,σ为激活函数,vT表示线性变换,为更新门输出的最后一个隐藏状态值,hq为用户消费第q个商品的GRU神经网络输出;
S32、根据商品级注意力机制函数式(5),对所述不同商品的权重进行计算得到用户的局部兴趣,所述商品级注意力机制函数式(5)为:
式中,atq为不同商品的权重,hq为用户消费第q个商品的GRU神经网络输出。
采用上述进一步方案的有益效果是:因为用户在全局兴趣影响下消费商品,利用商品级的注意力机制,计算消费不同商品的输出权重,与全部兴趣越相关,则权重越大,反之越小。而更新门包含了用户大量的消费特征信息,通过更新门获取用户的局部兴趣,可更多关注与用户全部兴趣相关的消费信息,更少关注与用户全局兴趣无关的消费特征信息,可提高模型提供精准度。
进一步,所述步骤S5包括:
S51、将所述原始消费数据中的商品数据进行转换,转换后的商品数据可表示为z=(z1,z2,...zI);
S52、根据Softmax函数式(6),对所述最终兴趣和转换后的所述商品数据计算得到用户下一次交互商品的概率大小,所述Softmax函数式(6)为:
式中,I为商品的总数量,zy为第y个商品,T为转置,q为任一商品,hl为最终兴趣;
S53、根据交叉熵损失函数式(7)进行模型训练,当输出损失值趋于稳定时,得到训练模型,所述交叉熵损失函数式(7)为:
式中,p'q为用户下一次交互商品的预测概率值,pq为用户下一次交互商品的实际概率值;
S54、根据训练模型预测用户的下一次交互行为,向用户推荐商品信息。
采用上述进一步方案的有益效果是:通过计算用户下一次交互商品的概率大小后,再采用交叉熵损失函数进行模型训练,可提高模型学习用户下一次交互商品的准确性,当输出损失值趋于稳定时,完成模型构成,根据模型预测用户的下一次交互行为,向用户推荐商品信息。
为了解决上述技术问题,本发明还提供一种基于残差网络的序列推荐系统,其特征在于,包括:初始模块、兴趣获取模块和训练模块;
初始模块,用于通过网络获取用户的原始消费数据,将所述原始消费数据划分序列得到序列段,将所述序列段初始化,得到供GRU神经网络识别的序列数据;
兴趣获取模块,用于基于残差结构的GRU神经网络,对所述序列数据进行输出处理,将输出的隐藏状态作为用户的全局兴趣数据;根据商品级注意力机制,对所述序列数据和所述隐藏状态进行计算得到用户的局部兴趣数据;将所述全局兴趣数据与所述局部兴趣拼接,得到最终兴趣;
训练模块,用于通过所述最终兴趣计算用户下一次交互商品的概率分布,根据所述概率分布进行模型训练,得到训练模型,根据训练模型预测用户的下一次交互行为,向用户推荐商品信息。
进一步,所述初始模块包括:
所述原始消费数据包括时间属性;
将所述原始消费数据根据预设周期划分为一个序列,得到多个序列段,将每个序列段初始化得到序列数据,根据GRU神经网络将所述序列数据展开,所述序列数据可表示为x=(k1,k2,...kn),n表示时间步的大小。
进一步,所述兴趣获取模块包括:
全局兴趣获取单元:根据式(1)对所述序列数据进行首次GRU神经网络输出处理,对应于序列数据顺序得到多个隐藏状态hn′所述式(1)为hn′=GRU(x),x为序列数据;
根据式(2)将所述序列数据与所述多个隐藏状态hn′的最后一个隐藏状态进行融入处理,得到更新门输出hn,所述更新门输出hn包括用户的原始消费数据和当前消费特征所述式(2)为:
式中,σ为激活函数,W1、W2为权重矩阵,b为偏置向量,为哈达码乘积,x为序列数据,hk为hn′的最后一个隐藏状态;
根据式(3)将所述更新门输出hn与所述序列数据拼接,计算基于残差结构的第二次GRU神经网络输出,得到对应所述序列数据顺序的多个隐藏状态所述式(3)为:式中,x为序列数据,hn为更新门输出;
将所述多个隐藏状态与所述序列数据拼接,计算基于残差结构的第三次GRU神经网络输出,得到对应所述序列数据顺序的多个隐藏状态hn″;将所述hn″的最后一个隐藏状态作为用户的全局兴趣;
局部兴趣获取单元:根据式(4)计算得到不同商品的权重,所述式(4)为:
式中,W5、W6为权重矩阵,σ为激活函数,vT表示线性变换,为更新门输出的最后一个隐藏状态值,hq为用户消费第q个商品的GRU神经网络输出;
根据商品级注意力机制函数式(5),对所述不同商品的权重进行计算得到用户的局部兴趣,所述商品级注意力机制函数式(5)为:
式中,atq为不同商品的权重,hq为用户消费第q个商品的GRU神经网络输出;
最终兴趣获取单元:将所述用户的全局兴趣与所述用户的局部兴趣拼接得到用户的最终兴趣。
附图说明
图1为本发明一实施例提供的一种基于残差网络的序列推荐方法的流程图;
图2为本发明一实施例提供的一种基于残差网络的序列推荐方法的GRU神经网络输出的最后一个隐藏状态示意图;
图3为本发明一实施例提供的一种基于残差网络的序列推荐方法的整体框架示意图;
图4为本发明一实例提供的一种基于残差网络的序列推荐系统的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例一
如图1所示,一种基于残差网络的序列推荐方法,包括如下步骤:
步骤S1、通过网络获取用户的原始消费数据,将所述原始消费数据划分序列得到序列段,将所述序列段初始化,得到供GRU神经网络识别的序列数据;
步骤S2、基于残差结构的GRU神经网络,对所述序列数据进行输出处理,将输出的隐藏状态作为用户的全局兴趣;
步骤S3、根据商品级注意力机制,对所述序列数据和所述隐藏状态进行计算得到用户的局部兴趣;
步骤S4、将所述全局兴趣与所述局部兴趣拼接,得到最终兴趣;
步骤S5、通过所述最终兴趣计算用户下一次交互商品的概率分布,根据所述概率分布进行模型训练,得到训练模型,根据训练模型预测用户的下一次交互行为,向用户推荐商品信息。
在本实施例中,将序列数据输入基于残差结构的GRU神经网络,既丰富了GRU神经网络输入的特征信息,特征信息既包含了用户的原始数据,也包含了经过神经网络处理后的特征信息,提取用户的消费特征信息,可以准确学习用户的消费行为,实现精准的推荐效果。
优选的,作为本发明的一个实施例,所述原始消费数据包括时间属性,所述步骤S1包括:
将所述原始消费数据根据预设周期划分为一个序列,得到多个序列段,将每个序列段初始化得到序列数据,根据GRU神经网络将所述序列数据展开,所述序列数据可表示为x=(k1,k2,...kn),n表示时间步的大小。
其中,所述预设周期推荐预设7天为一个周期。
其中,所述原始消费数据包括用户消费过的所有商品信息集合;其中,所述时间步表示GRU神经网络展开后的长度。
优选的,作为本发明的一个实施例,所述步骤S2具体包括:
S21、根据式(1)对所述序列数据进行首次GRU神经网络输出处理,对应于序列数据顺序得到多个隐藏状态hn′,如图2所示,将所述序列数据x=(k1,k2,...kn)输入到GRU神经网络,对应输出多个隐藏状态;所述式(1)为hn′=GRU(x),x为序列数据;
S22、根据式(2)将所述序列数据与所述多个隐藏状态hn′的最后一个隐藏状态进行融入处理,得到更新门输出hn,所述更新门输出hn包括用户的原始消费数据和当前消费特征,所述式(2)为:
式中,σ为激活函数,W1、W2为权重矩阵,b为偏置向量,为哈达码乘积,x为序列数据,hk为hn′的最后一个隐藏状态;
S23、根据式(3)将所述更新门输出hn与所述序列数据拼接,计算基于残差结构的第二次GRU神经网络输出,得到对应所述序列数据顺序的多个隐藏状态所述式(3)为:式中,x为序列数据,hn为更新门输出;
S24、将所述多个隐藏状态与所述序列数据拼接,计算基于残差结构的第三次GRU神经网络输出,得到对应所述序列数据顺序的多个隐藏状态hn″;
S25、将所述hn″的最后一个隐藏状态作为用户的全局兴趣。
其中,根据公式:将所述多个隐藏状态与所述序列数据拼接,得到对应所述序列数据顺序的多个隐藏状态hn″。
本实施例中,由于用户不同序列消费的商品数量不同,将GRU神经网络的输出与序列数据拼接作为下一个GRU神经网络的输入,其中hk包括用户的当前消费特征,经过三次GRU神经网络的融入过滤后,用户的消费数据不但得到有效增加,还丰富了用户的消费特征信息,提高了学习用户消费行为的准确性。
优选的,作为本发明的一个实施例,所述步骤S3具体包括:
S31、根据式(4)计算得到不同商品的权重,所述式(4)为:
式中,W5、W6为权重矩阵,σ为激活函数,vT表示线性变换,为更新门输出的最后一个隐藏状态值,hq为用户消费第q个商品的GRU神经网络输出;
S32、根据商品级注意力机制函数式(5),对所述不同商品的权重进行计算得到用户的局部兴趣,所述商品级注意力机制函数式(5)为:
式中,atq为不同商品的权重,hq为用户消费第q个商品的GRU神经网络输出。
其中,根据公式:得到更新门输出为更新门输出的最后一个隐藏状态值,式中为hn″的最后一个隐藏状态,即用户的全局兴趣;
其中,根据公式:hq=GRU(xq)得到用户消费第q个商品的GRU神经网络输出hq。
本实施例中,因为用户在全局兴趣影响下消费商品,利用商品级的注意力机制,计算消费不同商品的输出权重,与全部兴趣越相关,则权重越大,反之越小。而包含了用户大量的消费特征信息,通过获取用户的局部兴趣,可更多关注与用户全部兴趣相关的消费信息,更少关注与用户全局兴趣无关的消费特征信息,可提高推荐系统的精准度。
优选的,作为本发明的一个实施例,所述步骤S5具体包括:
S51、将所述原始消费数据中的商品数据进行转换,转换后的商品数据可表示为z=(z1,z2,...zI);
S52、根据Softmax函数式(6),对所述最终兴趣和转换后的所述商品数据计算得到用户下一次交互商品的概率大小,所述Softmax函数式(6)为:
式中,I为商品的总数量,zy为第y个商品,T为转置,q为任一商品,hl为最终兴趣;
S53、根据交叉熵损失函数式(7)进行模型训练,当输出损失值趋于稳定时,得到训练模型,所述交叉熵损失函数式(7)为:
式中,p'q为用户下一次交互商品的预测概率值,pq为用户下一次交互商品的实际概率值;
S54、根据训练模型预测用户的下一次交互行为,向用户推荐商品信息。
其中,将用户的全局兴趣与用户的局部兴趣拼接得到用户的最终兴趣hl。
其中,向用户推荐商品信息是通过信息流的方式将商品信息推荐给用户。
本实施例中,计算用户下一次交互商品的概率大小后,再采用交叉熵损失函数进行模型训练,可提高模型学习用户下一次交互商品的准确性,当输出损失值趋于稳定时,完成模型构成,根据模型预测用户的下一次交互行为,向用户推荐商品信息。
实施例二
为了便于理解,本实施例以一个较为具体的例子对基于残差网络的序列推荐方法进行说明,如图3所示,基于残差网络的序列推荐方法包括:
S1、将用户序列数据x首次输入GRU神经网络,经过更新门输出隐藏状态序列hn;
S2、所述隐藏状态序列hn与所述用户序列数据x拼接后第二次经过GRU神经网络输出得到隐藏状态序列所述隐藏状态序列与所述x拼接后第三次经过GRU神经网络输出得到全局兴趣和最后一个隐藏状态
S3、通过注意力机制,所述最后一个隐藏状态与第q个商品的GRU神经网络输出hq得到局部兴趣hj;
S4、将所述全局兴趣与局部兴趣hj拼接得到最终兴趣hl;
S5、根据Softmax函数,对所述最终兴趣hl和原始消费数据转换的商品数据计算,得到用户下一次交互对应商品的概率;
S6、根据概率分布进行模型训练,完成对用户的推荐。
其中,原始消费数据包括用户消费过的所有商品信息集合;原始消费数据展开后得到用户序列数据。
实施例三
本实施例提供一种残差网络的序列推荐系统,如图4所示,包括:初始模块、兴趣获取模块和训练模块;
初始模块,用于通过网络获取用户的原始消费数据,将所述原始消费数据划分序列得到序列段,将所述序列段初始化,得到供GRU神经网络识别的序列数据;
兴趣获取模块,用于基于残差结构的GRU神经网络,对所述序列数据进行输出处理,将输出的隐藏状态作为用户的全局兴趣数据;根据商品级注意力机制,对所述序列数据和所述隐藏状态进行计算得到用户的局部兴趣数据;将所述全局兴趣数据与所述局部兴趣拼接,得到最终兴趣;
训练模块,用于通过所述最终兴趣计算用户下一次交互商品的概率分布,根据所述概率分布进行模型训练,得到训练模型,根据训练模型预测用户的下一次交互行为,向用户推荐商品信息。
优选的,作为本发明的一个实施例,所述初始模块包括:
所述原始消费数据包括时间属性;
将所述原始消费数据根据预设周期划分为一个序列,得到多个序列段,将每个序列段初始化得到序列数据,根据GRU神经网络将所述序列数据展开,所述序列数据可表示为x=(k1,k2,...kn),n表示时间步的大小。
优选的,作为本发明的一个实施例,所述兴趣获取模块包括:
全局兴趣获取单元:根据式(1)对所述序列数据进行首次GRU神经网络输出处理,对应于序列数据顺序得到多个隐藏状态hn′所述式(1)为hn′=GRU(x),x为序列数据;
根据式(2)将所述序列数据与所述多个隐藏状态hn′的最后一个隐藏状态进行融入处理,得到更新门输出hn,所述更新门输出hn包括用户的原始消费数据和当前消费特征所述式(2)为:
式中,σ为激活函数,W1、W2为权重矩阵,b为偏置向量,为哈达码乘积,x为序列数据,hk为hn′的最后一个隐藏状态;
根据式(3)将所述更新门输出hn与所述序列数据拼接,计算基于残差结构的第二次GRU神经网络输出,得到对应所述序列数据顺序的多个隐藏状态所述式(3)为:式中,x为序列数据,hn为更新门输出;
将所述多个隐藏状态与所述序列数据拼接,计算基于残差结构的第三次GRU神经网络输出,得到对应所述序列数据顺序的多个隐藏状态hn″;将所述hn″的最后一个隐藏状态作为用户的全局兴趣;
局部兴趣获取单元:根据式(4)计算得到不同商品的权重,所述式(4)为:
式中,W5、W6为权重矩阵,σ为激活函数,vT表示线性变换,为更新门输出的最后一个隐藏状态值,hq为用户消费第q个商品的GRU神经网络输出;
根据商品级注意力机制函数式(5),对所述不同商品的权重进行计算得到用户的局部兴趣,所述商品级注意力机制函数式(5)为:
式中,atq为不同商品的权重,hq为用户消费第q个商品的GRU神经网络输出;
最终兴趣获取单元:将所述用户的全局兴趣与所述用户的局部兴趣拼接得到用户的最终兴趣。
在本实施例还提供一种基于残差网络的序列推荐系统,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,当所述处理器执行所述计算机程序时,以实现如一种基于残差网络的序列推荐方法的步骤,在此不再一一赘述。
本实施例还提供一种存储介质,存储介质包括存储有一个或者多个计算机程序,一个或者多个计算机程序可被一个或者多个处理器执行,以实现如上各实施例中的基于残差网络的序列推荐方法的步骤,在此不再一一赘述。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明实施例所提供的技术方案进行了详细介绍,本专利中应用了具体个例对本发明实施例的原理以及实施方式进行了阐述,以上实施例的说明只适用于帮助理解本发明实施例的原理;以上仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:模型训练方法及相关系统、存储介质