一种基于GRU神经网络的推荐方法和系统技术领域
本发明涉及系统推荐技术领域,具体涉及一种基于GRU神经网络的推荐方法及系
统。
背景技术
当前,网络服务商为用户提供了诸如新闻、商品、图片、视频、音频、文档等(以下统
一简称为物品)的在线服务。为了更好的为用户提供服务,服务提供商会记录用户的历史行
为,例如记录用户购买(使用)过哪些物品、对物品的评价、点击、转发、评论等。如何有效利
用记录的用户历史行为,为用户提供准确的推荐,是推荐系统面临的重大挑战,主要表现
在:
第一,虽然用户历史行为有助于了解用户偏好,并为用户推荐物品提供了重要信
息。但是多种多样的用户行为具有诸多不同的含义。如何合理利用这些信息是推荐系统面
临的重要问题。
第二,用户行为发生的时间顺序反映了用户偏好的变化过程,也是推荐系统需要
考虑的重要因素,需要加以合理利用。
因此,如何有效的利用记录的多种用户行为,为用户提供准确的推荐,是本领域人
员急待解决的问题。
发明内容
有鉴于此,有必要提供一种能够有效的利用记录的多种用户行为从而为用户提供
准确推荐的方法及系统。
一种基于GRU神经网络的推荐方法,所述基于GRU神经网络的推荐方法包括以下步
骤:
S1、收集用户对物品的历史行为,并建立GRU神经网络;
S2、按照行为发生时间对每一个用户记录的历史行为进行先后排序;并针对每一
个用户生成相应的训练样本;
S3、根据训练样本对GRU神经网络进行训练,确定GRU神经网络中的权重矩阵;
S4、根据训练后的GRU神经网络为每一个用户生成推荐列表。
一种基于GRU神经网络的推荐系统,所述基于GRU神经网络的推荐系统包括以下功
能模块:
用户行为收集模块,用于收集用户对物品的历史行为,并建立GRU神经网络;
训练样本生成模块,用于按照行为发生时间对每一个用户记录的历史行为进行先
后排序;并针对每一个用户生成相应的训练样本;
权重矩阵确定模块,用于根据训练样本对GRU神经网络进行训练,确定GRU神经网
络中的权重矩阵;
推荐列表生成模块,用于根据训练后的GRU神经网络为每一个用户生成推荐列表。
本发明提供一种基于GRU神经网络的推荐方法和系统,其采用GRU神经网络模型对
用户行为建模并用于推荐系统,通过结合BP算法或BPTT算法和本发明的神经网络结构,构
建针对推荐系统的GRU神经网络模型学习方法,根据推荐系统的特点对GRU神经网络进行训
练,建立独有神经网络结构,从而根据新的神经网络结构为不同用户生成与其兴趣爱好相
对应的推荐列表。所述推荐方法和系统通过采用GRU神经网络从用户历史行为中学习用户
偏好,并据此为用户提供推荐服务。通过GRU神经网络特有的递归结构,能够基于时间序列
对不同类型的用户行为进行统一表示;且GRU神经网络能够进行多尺度时间序列分析,能够
更精确的表示具有较大随机性的用户行为。
附图说明
图1是本发明所述基于GRU神经网络的推荐方法的流程图;
图2是本发明所述基于GRU神经网络的推荐方法的GRU神经网络推荐模型;
图3是图1中步骤S3的子流程图;
图4为图1中步骤S33的子流程图;
图5是本发明所述基于GRU神经网络的推荐系统的结构框图;
图6是图5中权重矩阵确定模块的子结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对
本发明进行进一步详细说明,应当理解,此处所描述的具体实施例仅仅用以解释本发明,并
不用于限定本发明。
如图1所示,本发明实施例提供一种基于GRU神经网络的推荐方法,所述基于GRU神
经网络的推荐方法包括以下步骤:
S1、收集用户对物品的历史行为,并建立GRU神经网络;
S2、按照行为发生时间对每一个用户记录的历史行为进行先后排序;并针对每一
个用户生成相应的训练样本;
S3、根据训练样本对GRU神经网络进行训练,确定GRU神经网络中的权重矩阵;
S4、根据训练后的GRU神经网络为每一个用户生成推荐列表。
其中,所述GRU神经网络包括输入层、隐藏层以及输出层,其中,所述输入层的输入
包括用户信息u(t)、用户t时刻的行为信息a(t)以及用户时刻行为t的目标物品信息v(t),
所述隐藏层的输出包括t时刻隐藏层的输出s(t)、t-1时刻隐藏层的输出s(t-1)以及t时刻
替代隐藏层g,所述输出层的输出包括t时刻输出层的输出o(t)。
具体的,如图2所示,在一个网络推荐系统中,设u(t)为GRU神经网络输入层的一个
输入向量,用于表示用户信息,对于有m个用户的推荐系统,设第i个用户有m个元素,其中第
i个元素为1,其它元素为0;
a(t)为输入层的一个输入向量,用于表示用户t时刻的行为,对于能够处理l种用
户行为的推荐系统,第j种用户行为表示为一个有l个元素的向量,其中第j个元素为1,其它
元素为0;
v(t)是输入层的一个输入向量,用于表示用户t时刻行为的目标物品,对于有n个
物品的推荐系统,第k个物品表示为一个有n个元素的向量,其中第k个元素为1,其它元素为
0;
s(t-1)是输入层的一个有h个元素输入向量,用于表示t-1时刻隐藏层的输出,h为
隐藏层维数;优选的,隐藏层维数h取值为[100,200]中的整数。
s(t)是一个h×1的向量,表示t时刻隐藏层的输出。
如图2所示,所述GRU神经网络还包括重置门r和更新门z,t时刻重置门r的输出是
一个h×1的向量,其计算方法如下:
r=σ(Qru(t)+Wra(t)+Vrv(t)+Xrs(t-1))
其中,Qr,Vr,Wr,Xr分别表示输入层u(t)、a(t)、v(t)、s(t-1)连接到隐藏层重置门r
的权重矩阵;σ是sigmoid函数,σ(x)=1/(1+e-x);
所述更新门z的输出的计算方法如下:
z=σ(Qzu(t)+Wza(t)+Vzv(t)+Xzs(t-1))
其中,Qz,Vz,Wz,Xz分别表示输入层u(t)、a(t)、v(t)、s(t-1)连接到隐藏层更新门z
的权重矩阵。
图2中的g是替代隐藏层,替代隐藏层的输入是当前的输入层、上一时刻的隐藏层
和当前重置门的输出,t时刻替代隐藏层g的输出是一个h×1的向量,其计算方法为:
其中,Q,V,W,X分别表示输入层u(t)、a(t)、v(t)、s(t-1)连接到替代隐藏层g隐藏
层的权重矩阵。
s(t)是t时刻隐藏层的输出,是一个h×1的向量,其值与当前更新门、当前替代隐
藏层和上一时刻的隐藏层有关,其计算方法为:
其中,表示按对应元素相乘。
o(t)是一个n×1的向量,表示t时刻输出层的输出,o(t)的第k个元素表示用户喜
欢第k个物品的概率,o(t)计算方法为:
o(t)=softmax(Ys(t))
其中,Y是隐藏层连接到输出层的权重矩阵,softmax函数定义为:
如图3所示,所述步骤S3包括以下分步骤:
S31、随机生成权重矩阵;
S32、检查收敛条件,即检查迭代次数是否达到上限;或目标函数的值是否不再减
小;如果不满足收敛条件,则进行步骤S33;反之则确定了GRU神经网络中的权重矩阵,进行
步骤S4;
S33、根据每一个用户的训练样本对GRU神经网络进行训练,更新GRU神经网络中的
权重矩阵;
具体的,采用交叉熵(Cross entropy)做为待优化的目标函数,即:
其中,ti是第t时刻的训练样本中的物品编号,迭代次数上限为K
≤100。
如图4所示,所述步骤S33包括以下分步骤:
S331、计算目标函数相对于权重矩阵的梯度;即
和
S332、更新所有权重矩阵。
以权重矩阵Y为例,更新方法为:其它权重矩阵均按照此方法更
新。其中学习率α的取值为0.001;
基于上述一种基于GRU神经网络的推荐方法,本发明还提供一种基于GRU神经网络
的推荐系统,如图5所示,所述基于GRU神经网络的推荐系统包括以下功能模块:
用户行为收集模块,用于收集用户对物品的历史行为,并建立GRU神经网络;
训练样本生成模块,用于按照行为发生时间对每一个用户记录的历史行为进行先
后排序;并针对每一个用户生成相应的训练样本;
权重矩阵确定模块,用于根据训练样本对GRU神经网络进行训练,确定GRU神经网
络中的权重矩阵;
推荐列表生成模块,用于根据训练后的GRU神经网络为每一个用户生成推荐列表。
其中,如图6所示,权重矩阵确定模块包括以下子模块:
随机生成子模块,用于随机生成权重矩阵;
收敛检查子模块,用于检查收敛条件,即检查迭代次数是否达到上限;或目标函数
的值是否不再减小;
网络训练子模块,用于根据每一个用户的训练样本对GRU神经网络进行训练。
具体如表1所示,本发明的方法与其它方法在MovieLen(1M)数据集上的比较结果
见表1。其中Test=10表示每一个用户选最后10个评分做为测试数据,其它做为训练数据。
Test=20表示每一个用户选最后20个评分做为测试数据, 其它做为训练数据。D=16表示
隐藏层维数为16。D=32表示隐藏层维数为32。在不同实验参数配置下重复实验5次。表中列
出了在不同实验参数配置下的F1@10和F1@20均值和标准差(括号中的数值)。最佳值用黑体
标明。可以看到,本方法在不同实验条件下都取得了最佳结果,而且比次优结果有至少30%
的提升。
F1得分度量了推荐结果相对于用户实际喜欢的物品的准确程度,计算方法如下:
其中,prediciton_set是预测的结果,reference_set用户实际喜欢的物品集合。
|·|表示集合中元素的个数。
F1@10表示推荐结果中前10个物品的F1得分,F1@20表示推荐结果中前20个物品的
F1得分。
表1本发明的方法与其它方法在MovieLen(1M)数据集上的比较
本发明所述基于GRU神经网络的推荐方法和系统,其采用GRU神经网络 (Gated
recurrent units based neural network)从用户历史行为中学习用户偏好,并据此为用
户提供推荐服务。所述GRU神经网络结构能够方便的对不同类型的用户行为进行统一表示,
其特有的递归结构特别适用于对时间序列编码。更重要的是,GRU神经网络能够自动进行多
尺度时间序列分析,这一特点使得GRU神经网络能够自适应的在合适的时间尺度上分析用
户的历史行为,更为合理的表示具有较大随机性的用户偏好。
与传统的递归神经网络相比,GRU神经网络增加了GRU层,该层包括图一中的重置
门r、更新门z、替代隐藏层g。在递归神经网络中增加GRU层能够使神经网络既学习到训练样
本中短时依赖关系,又能学习到长期依赖关系。推荐系统中,用户的某些偏好是长期不变
的,因此用户行为隐藏了长期不变的先后依赖关系。而有些用户偏好是短期的。因此,分析
推荐系统中用户行为需要同时考虑长期和短期依赖关系。GRU神经网络正是针对此问题而
设计的。另外,传统的递归神经网络在使用基于梯度下降的算法训练时(例如BPTT算法)容
易产生梯度消失问题(gradient vanishing problem).在传统的递归神经网络中增加GRU
层能够有效的解决此问题。
以上装置实施例与方法实施例是一一对应的,装置实施例简略之处,参见方法实
施例即可。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他
实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元
及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和
软件的可互换性,在上述说明中已经按照功能性一般性地描述了各示例的组成及步骤。这
些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专
业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不
应超过本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执
行的软件模块,或者二者的结合来实施。软件模块可以置于随机储存器、内存、只读存储器、
电可编程ROM、电可檫除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公
知的任意其他形式的存储介质中。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述 的具
体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人
员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很
多形式,这些均属于本发明的保护之内。