一种基于多GRU层神经网络的推荐方法与系统与流程

文档序号:12734008阅读:579来源:国知局
一种基于多GRU层神经网络的推荐方法与系统与流程

本发明属于系统推荐技术领域,具体包括一种基于多GRU层神经网络的推荐方法和系统。



背景技术:

当前,网络服务商为用户提供了诸如新闻、商品、图片、视频、音频、文档等(以下统一简称为物品)的在线推荐服务。为了更好的为用户提供服务,服务提供商会记录用户的历史行为,形成用户历史行为数据集,用于学习用户偏好,并据此为用户提供推荐服务,用户历史行为数据集有以下几个特点:

第一,用户历史行为数据集中记录了用户的多种行为,例如用户使用过哪些物品、对物品的评价、点击、转发、评论等;

第二,用户历史行为数据集记录了用户行为发生的时间,通常具有较长的时间跨度;

第三,用户历史行为数据集中包含了相当数量的噪声。

针对上述特点,如何有效利用用户历史行为数据集,为用户提供准确的推荐,是推荐系统面临的重大挑战,主要表现在:

第一,多种多样的用户行为具有诸多不同的含义。如何合理利用这些信息是推荐系统面临的重要问题。

第二,用户行为发生的时间顺序反映了用户偏好的变化过程,需要学习用户偏好随时间的变化规律,并加以合理利用。

第三,对噪声数据的处理和利用。

因此,如何有效从多种用户历史行为中学习用户偏好,并据此为用户提供推荐服务是本领域人员亟待解决的问题。



技术实现要素:

针对现有技术的不足,本发明提供了一种包含多个GRU(Gated recurrent units)层的神经网络(neural network),用于从多种用户历史行为中学习用户偏好,并据此为用户提供推荐服务。

一种基于多GRU层神经网络的推荐方法,包括以下步骤:

S1,收集用户对物品的历史行为,每条记录为一个四元组(u,i,a,t),其中u是用户编号,a是行为的类别,i是行为针对的物品的编号,t是行为发生的时间;建立包括输入层、中间层和输出层的GRU神经网络;所述中间层由多个GRU层构成;

S2,按照行为发生时间对每一个用户记录的历史行为进行先后排序;并针对每一个用户生成相应的训练样本;

S3,根据训练样本对GRU神经网络进行训练,确定GRU神经网络中的权重矩阵;

S4,根据训练后的GRU神经网络为每一个用户生成推荐列表。

一种基于多GRU层神经网络的推荐系统,包括以下功能模块:

用户行为收集模块,用于手机用户对物品的历史行为,并建立包括输入层、中间层和输出层的GRU神经网络;所述中间层由多个GRU层构成;

训练样本生成模块,用于按照行为发生时间对每一个用户记录的历史行为进行信后排序;并针对每一个用户生成相应的训练样本;

权重矩阵确定模块,用于根据训练样本对多GRU层神经网络进行训练,确定GRU神经网络种的权重矩阵;

推荐列表生成模块,用于根据训练后的多GRU层神经网络的输出为每个用户生成推荐列表。

与现有技术相比,本发明具有以下优点:

本发明提供的具有多个GRU层的神经网络结构能够方便的对不同类型的用户行为进行统一表示。同时,GRU神经网络特有的递归结构,特别适用于对时间序列编码。因此,能够反映用户偏好随时间变化的情况。此外,GRU神经网络能够自动进行多尺度时间序列分析,使得GRU神经网络能够自适应的在合适的时间尺度上分析用户的历史行为,更为合理的表示具有较大随机性的用户偏好。此外,多GRU层神经网络属于一种深度学习(Deep Learning)模型,此类模型具有较强的特征选择能力,因而能够应对历史行为中存在噪声的问题。

附图说明

图1是一种基于多GRU层神经网络的推荐方法流程图

图2是多GRU层神经网络推荐模型

图3是第0层GRU的结构

图4是第l层GRU的结构

图5是多GRU层神经网络参数学习流程图

图6是一种基于多GRU层神经网络的推荐结构框图

具体实施方式

为了使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

如图1所示,本发明实施例提供一种基于多GRU层神经网络的推荐方法,包括以下步骤:

S1,收集用户对物品的历史行为,每条记录为一个四元组(u,i,a,t),其中u是用户编号,a是行为的类别,i是行为针对的物品的编号,t是行为发生的时间;建立包括输入层、中间层和输出层的GRU神经网络,如图2所示;所述中间层由多个GRU层构成;

S2,按照行为发生时间对每一个用户记录的历史行为进行先后排序;并针对每一个用户生成相应的训练样本;

S3,根据训练样本对GRU神经网络进行训练,确定GRU神经网络中的权重矩阵;

S4,根据训练后的GRU神经网络为每一个用户生成推荐列表。

其中输入层的输入包括:

用户信息u(t):表示t时刻的用户向量,对于有m个用户的推荐系统,第i个用户表示为一个m×1的向量,其中第i个元素为1,其它元素为0;

t时刻用户行为信息a(t):表示t时刻用户的行为,对于能够处理l种用户行为的推荐系统,第j种用户行为表示为一个l×1的向量,其中第j个元素为1,其它元素为0;

t时刻用户行为的目标物品信息v(t),表示t时刻用户行为的目标物品,对于有n个物品的推荐系统,第k个物品表示为一个n×1的向量,其中第k个元素为1,其它元素为0;

所述输出层的输出包括t时刻输出层的输出o(t),o(t)是一个n×1的向量,表示t时刻多GRU层神经网络的输出,o(t)的第k个元素表示用户喜欢第k个物品的概率,o(t)计算方法为:

o(t)=softmax(YsL(t))

其中,Y是第L个GRU层GRUL连接到输出层的权重矩阵,

构成中间层的每个所述GRU层均包括重置门r、更新门z、t时刻输出s(t)、t-1时刻输出s(t-1)以及替代隐藏层g;每个GRU层的t时刻输出si(t)(i=0,1,...,L)为该层的输出,其为一个h×1的向量,h为GRU层的维数,h取值为[100,200]中的整数。

构成中间层的第0个GRU层GRU0,如图3所示,的重置门r0为一个h×1的向量,t时刻重置门r0的计算方法为:

其中,分别表示输入层u(t)、a(t)、v(t)、s0(t-1)连接到GRU0中的重置门r0的权重矩阵;σ是sigmoid函数,σ(x)=1/(1+e-x);

GRU0的更新门z0为一个h×1的向量,t时刻更新门z0的计算方法为:

其中,分别表示输入层u(t)、a(t)、v(t)、s0(t-1)连接到GRU0中的更新门z0的权重矩阵;

GRU0的替代隐藏层g0为一个h×1的向量,t时刻g0的计算方法为:

其中,分别表示输入层u(t)、a(t)、v(t)、s0(t-1)连接到GRU0中的替代隐藏层g0的权重矩阵;表示按对应元素相乘;

t时刻GRU0的输出s0(t)为一个h×1的向量,其计算方法为:

构成中间层的第l(l=1,2,...,L)个GRU层GRUl,如图4所示,的重置门rl为一个h×1的向量,t时刻重置门rl的计算方法为:

其中,分别表示u(t)、a(t)、v(t)、sl(t-1)、sl-1(t)连接到GRUl中的重置门rl的权重矩阵;

GRUl的更新门zl为一个h×1的向量,t时刻更新门zl的计算方法为:

其中,分别表示u(t)、a(t)、v(t)、sl(t-1)、sl-1(t)连接到GRUl中的更新门zl的权重矩阵;

GRUl的替代隐藏层gl为一个h×1的向量,t时刻gl的计算方法为:

其中,分别表示u(t)、a(t)、v(t)、sl(t-1)、sl-1(t)连接到GRUl中的替代隐藏层gl的权重矩阵;

t时刻GRUl的输出sl(t)为一个h×1的向量,其计算方法为:

步骤S3具体包括以下子步骤,如图5所示:

S31,随机产生权重矩阵和Y,做为初始解;

S32,检查收敛条件:检查迭代次数是否达到上限或目标函数的值是否不再减小;若满足收敛条件时结束步骤3;否则进行步骤S33;所述目标函数为ti其中第t时刻的训练样本中的物品编号;迭代次数上限为K≤100;

S33,对步骤2中排序后的每一个训练样本,按照BP(backpropagation)算法或者BPTT(back propagation through time)算法,更新权重矩阵和Y。

步骤S4具体为对每一个用户U及其最后一个训练样本v(tn),a(tn),以及对应上一时刻的GRU层的输出sl(tn-1),(l=0,1,...,L),计算o(tn);取o(tn)最大的前k个元素,其编号即为要推荐的物品编号。

基于上述一种基于多GRU层神经网络的推荐方法,本发明还提供一种基于多GRU层神经网络的推荐系统,如图6所示,包括以下功能模块:

用户行为收集模块,用于手机用户对物品的历史行为,并建立包括输入层、中间层和输出层的GRU神经网络;所述中间层由多个GRU层构成;

训练样本生成模块,用于按照行为发生时间对每一个用户记录的历史行为进行信后排序;并针对每一个用户生成相应的训练样本;

权重矩阵确定模块,用于根据训练样本对多GRU层神经网络进行训练,确定GRU神经网络种的权重矩阵;

推荐列表生成模块,用于根据训练后的多GRU层神经网络的输出为每个用户生成推荐列表。

本发明与现有技术的区别:

第一,与已有的方法相比,本发明提供的神经网络采用GRU做为中间层,并且包含多个GRU层。

第二,本发明根据推荐系统的特点设计了具有针对性的多GRU层神经网络模型。

本发明的方法与其它方法在MovieLen(1M)数据集上的比较结果见表1。其中Test=10表示每一个用户选最后10个评分做为测试数据,其它做为训练数据。Test=20表示每一个用户选最后20个评分做为测试数据,其它做为训练数据。D=16表示隐藏层维数为16。D=32表示隐藏层维数为32。在不同实验参数配置下重复实验5次。表中列出了在不同实验参数配置下的F1@10和F1@20均值和标准差(括号中的数值)。最佳值用黑体标明。可以看到,本方法在不同实验条件下都取得了最佳结果,而且比次优结果有至少20%的提升。

表1 本发明的方法与其它方法在MovieLen(1M)数据集上的比较

在本说明书的描述中,术语“一个实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

说明书中未阐述的部分均为现有技术或公知常识。本实施例仅用于说明该发明,而不用于限制本发明的范围,本领域技术人员对于本发明所做的等价置换等修改均认为是落入该发明权利要求书所保护范围内。

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