一种基于生成对抗网络的时序评分预测方法与流程

专利2022-06-29  80


本发明属于推荐系统技术领域,具体涉及一种基于生成对抗网络的时序评分预测方法。



背景技术:

传统的推荐系统主要采用基于原始的矩阵分解方法的协同过滤,并没有考虑时间信息的作用;而时间信息作为一种重要的上下文信息,反映了用户行为的时间序列模式,也被一些研究者用于辅助推荐算法获得更高的预测精度。例如netfilx竞赛中,xiang等人提出了timesvd算法,该算法将时间效应加入到奇异值分解中去,有效的解决了兴趣偏移问题。但是时间信息大都应用于单次推荐,为了实现系统的长期有效推荐,需要提出新的推荐模型。生成对抗网络是2014年goodfellow提出,结合了数学中极小极大博弈的思想,由生成模型和鉴别模型两部分组成,现已广泛应用于图像生成、多媒体等领域,且成熟模型高达380多个,在图像领域逐渐趋于饱和。irgan首次尝试将生成对抗网络应用于推荐系统,在推荐精度上有所提高,但是其仅仅使用的是传统协同过滤方法,并未考虑时间信息在推荐系统中的应用,导致时间信息的丢失,导致推荐效果没有达到最优,无法实现长期有效推荐。



技术实现要素:

针对现有技术中的上述不足,本发明提供了一种基于生成对抗网络的时序评分预测方法,以解决现有推荐系统中不能长期有效推荐的问题。

为了达到上述发明目的,本发明采用的技术方案为:

一种基于生成对抗网络的时序评分预测方法,包括以下步骤:

s1、对原始数据进行样本抽取和时间特征提取,形成包含时间信息的数据集;

s2、构建生成对抗网络模型中的生成模型和鉴别模型;

s3、基于时序的奇异值分解,得到加入时序信息的生成对抗网络模型;

s4、利用步骤s3得到的加入时序信息的生成对抗网络模型对步骤s1中包含时间信息的数据集进行时序评分预测。

进一步的,所述步骤s1包括以下分步骤:

s1-1、从原始数据库中进行样本抽取,将其按设定比例分为训练集和测试集,并生成特征索引;

s1-2、对数据集中的时间信息进行处理,获取数据集中最小时间戳min_time_stamp以及最大时间戳max_time_stamp,计算出整个数据集的时间跨度num;对于每一条数据,将其时间信息转化为min(num-1,time-min_time_stamp),记为t;

s1-3、将步骤s1-2处理后的时间信息t,结合项目编号i、用户编号u以及评分r组成新的数据集结构(u,i,r,t)。

进一步的,所述步骤s2包括以下分步骤:

s2-1、生成对抗网络中生成模型以及鉴别模型的重定义,将生成模型定义为

其中gθ(u,i)表示生成器预测的用户u与项目i之间的评分,θ为生成模型参数;

将鉴别模型定义为

其中fφ(u,i)表示鉴别器在验证集的基础上计算出的用户u与项目i之间的评分,为鉴别模型参数;

s2-2、根据定义的生成模型以及鉴别模型,生成对抗网络目标函数为

其中e表示期望,x~pdata(x)表示变量x服从真实数据分布,d(i|u,r),g(i|u,r)分别表示生成模型和鉴别模型使用先验概率在给定用户和评分时项目i的概率;

s2-3、对生成对抗网络模型进行求解,相应的生成模型梯度为

其中θg表示生成模型参数,m表示项目总量;

鉴别器梯度为

s2-4、将鉴别模型梯度表示为

其中φ表示鉴别模型参数,z~pz(z)表示变量z服从生成模型分布,gθ(z)表示带有参数θ的生成模型在输入变量z后的输出,σ表示sigmoid函数,fφ(gθ(z))表示带有参数φ的鉴别模型在输入生成器的输出后的输出;

将鉴别模型损失函数表示为

其中表示对于任一用户推荐项目im鉴别模型给出的评分,n表示用户总量;

s2-5、根据原始奇异值分解方法计算用户与项目之间的评分,表示为

其中pu,qi分别表示用户u与项目i的潜在特征向量,b表示项目偏置量。

进一步的,所述步骤s3包括以下分步骤:

s3-1、根据用户喜好随时间变化、用户评分习惯随时间变化、项目受欢迎程度随时间变化、整个社会的偏好随时间变化这四种时间效应分别构建其特征表示矩阵,分别初始化为0矩阵,加入到传统奇异值分解方法中,得到改进的奇异值分解方法表示为

其中bt为时间特征向量,表示社会偏好随时间的变化;xu,zt分别为用户u和时间t的潜在特征向量,表示用户评分习惯随时间的变化;si,yω分别为项目i和时间ω的潜在特征向量,代表项目流行度随时间的变化;gu,k,li,k,ht,k分别为用户u、项目i和时间t的潜在特征向量,表示用户喜好的转变;

s3-2、初始化用户、项目以及时间对应的潜在特征矩阵,重新定义生成模型为

定义鉴别模型为

其中gθ(u,i,t)表示使用改进的奇异值分解方法预测的用户与项目之间的评分,fφ(u,i,t)表示鉴别器使用改进的奇异值分解方法计算出的用户u与项目i之间的评分。

进一步的,所述步骤s4包括以下分步骤:

s4-1、利用步骤s3得到的加入时序信息的生成对抗网络模型中的生成模型预测用户项目之间的相关度,将其生成的序列输入鉴别器;

s4-2、利用步骤s3得到的加入时序信息的生成对抗网络模型中的鉴别模型根据改进的的奇异值分解方法计算输入的用户项目序列评分,进而给用户项目序列打出标签,来鉴别是否为真数据;

s4-3、生成器根据步骤s4-2中得到的标签,进而优化生成器参数集;通过生成模型以及鉴别模型的极小极大博弈,达到生成对抗网络的0-1平衡;

s4-4、得到项目的带有时间信息的预测评分,并根据评分排序进行推荐。

本发明具有以下有益效果:本发明通过将用户项目以及时间信息以其潜在特征矩阵的方式加入到传统奇异值分解方法中,生成了融合时间序列因素的奇异值分解方法,完善了生成模型以及鉴别模型计算相关度的方法,提升了生成对抗网络在推荐时的有效性,使得推荐系统有了记忆效果;本发明结合了生成对抗网络,并将时间序列信息融合进来,提高了推荐精度和推荐质量,进一步实现长期有效推荐。

附图说明

图1是本发明基于生成对抗网络的时序评分预测方法流程示意图。

具体实施方式

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

如图1所示,本发明实施例提供了一种基于生成对抗网络的时序评分预测方法,包括以下步骤s1至s4:

s1、对原始数据进行样本抽取和时间特征提取,形成包含时间信息的数据集;

在本实施例中,步骤s1包括以下分步骤:

s1-1、从原始数据库中进行样本抽取,将其按设定比例分为训练集和测试集,并生成特征索引;

具体而言,本发明在样本抽取后按比例8:2划分训练集和测试集,利用随机抽取样本的特性,使得数据集能够更好的代表某一个时间段的整体情况。

s1-2、对数据集中的时间信息进行处理,方便使用的有效性;获取数据集中最小时间戳min_time_stamp以及最大时间戳max_time_stamp,计算出整个数据集的时间跨度num;对于每一条数据,将其时间信息转化为min(num-1,time-min_time_stamp),记为t;

s1-3、将步骤s1-2处理后的时间信息t,结合项目编号i、用户编号u以及评分r组成新的数据集结构(u,i,r,t)。

s2、构建生成对抗网络模型中的生成模型和鉴别模型;

在本实施例中,步骤s2包括以下分步骤:

s2-1、生成对抗网络中生成模型以及鉴别模型的重定义,将生成模型定义为

其中gθ(u,i)表示生成器预测的用户u与项目i之间的评分,θ为生成模型参数;

将鉴别模型定义为

其中fφ(u,i)表示鉴别器在验证集的基础上计算出的用户u与项目i之间的评分,为鉴别模型参数;

s2-2、根据定义的生成模型以及鉴别模型,生成对抗网络目标函数为

其中e表示期望,x~pdata(x)表示变量x服从真实数据分布,d(i|u,r),g(i|u,r)分别表示生成模型和鉴别模型使用先验概率在给定用户和评分时项目i的概率;

s2-3、对生成对抗网络模型进行求解,相应的生成模型最梯度为

其中θg表示生成模型参数,m表示项目总量;

鉴别器梯度为

s2-4、将鉴别模型梯度表示为

其中φ表示鉴别模型参数,z~pz(z)表示变量z服从生成模型分布,gθ(z)表示带有参数θ的生成模型在输入变量z后的输出,σ表示sigmoid函数,fφ(gθ(z))表示带有参数φ的鉴别模型在输入生成器的输出后的输出;

由于推荐系统中生成模型输出数据为离散的,因此将鉴别模型损失函数表示为

其中表示对于任一用户推荐项目im鉴别模型给出的评分,n表示用户总量;将梯度的计算方式修改为求和方式。

s2-5、根据原始奇异值分解方法计算用户与项目之间的评分,表示为

其中pu,qi分别表示用户u与项目i的潜在特征向量,b表示项目偏置量。

s3、基于时序的奇异值分解,得到加入时序信息的生成对抗网络模型;

在本实施例中,步骤s3包括以下分步骤:

s3-1、考虑到时间信息的重要性,对推荐系统主要有以下四种影响:用户喜好随时间变化;用户评分习惯随时间变化;项目受欢迎程度随时间变化;整个社会的偏好随时间变化;根据四种时间效应分别构建其特征表示矩阵,分别构建其特征表示矩阵,分别初始化为0矩阵,加入到传统奇异值分解方法中,得到适用于生成对抗网络的改进奇异值分解方法表示为

其中bt为时间特征向量,表示社会偏好随时间的变化;xu,zt分别为用户u和时间t的潜在特征向量,表示用户评分习惯随时间的变化;si,yω分别为项目i和时间ω的潜在特征向量,代表项目流行度随时间的变化;gu,k,li,k,ht,k分别为用户u、项目i和时间t的潜在特征向量,表示用户喜好的转变;

进一步将损失函数表示为:

其中k为数据集,rui为数据集中真实评分;在实际实验中,会在损失函数中加入正则化项;

s3-2、初始化用户、项目以及时间对应的潜在特征矩阵,重新定义生成模型为

定义鉴别模型为

其中加入了时间序列信息,gθ(u,i,t)表示使用改进的奇异值分解方法预测的用户与项目之间的评分,fφ(u,i,t)表示鉴别器使用改进的奇异值分解方法计算出的用户u与项目i之间的评分。

s4、利用步骤s3得到的加入时序信息的生成对抗网络模型对步骤s1中包含时间信息的数据集进行时序评分预测。

在本实施例中,步骤s4包括以下分步骤:

s4-1、利用步骤s3得到的加入时序信息的生成对抗网络模型中的生成模型预测用户项目之间的相关度,将其生成的序列(u,i,r,t)输入鉴别器;

具体而言,生成的序列(u,i,r,t)即为用户编号、项目编号、评分以及时间信息。

s4-2、利用步骤s3得到的加入时序信息的生成对抗网络模型中的鉴别模型根据改进的的奇异值分解方法计算输入的用户项目序列评分,进而给用户项目序列打出标签,来鉴别是否为真数据;

s4-3、生成器根据步骤s4-2中得到的标签,进而优化生成器参数集;通过生成模型以及鉴别模型的极小极大博弈,达到生成对抗网络的0-1平衡;

s4-4、得到项目的带有时间信息的预测评分,并根据评分排序进行推荐。

下面对本发明方法的实施过程作进一步详细说明。

本发明中模型层采用半监督学习生成对抗网络,利用生成器生成的样本能力来提升推荐任务的性能,进而提升判别器的泛化能力,关键在于将其中一个网络同时当做分类器和判别器进行训练(从真实数据中识别生成数据)。

本发明中数据集包含两类数据(真序列对和假序列对),双训练(判别/分类)网络会以一个序列对(u,i,r,t)作为输入,将其分入到对应的类别中,多任务联合学习框架包含两个损失,首先是监督学习的损失:

其次是gan判别器的损失:

在训练过程中将这两个损失同时最小化。

本发明中生成器从一致分布中获取噪声,生成模型利用reshape方法将噪声扁平化成一维向量;然后使用三层利用relu为激发函数的对输入层的逆卷积,再使用一层利用tanh为激发函数的卷积层生成对应维度的输出序列。判别器以(u,i)序列对为输入,尝试将结果分为2类。其中一些卷积层使用了leakyrelu以及批规范化,最终利用softmax函数对结果进行分类。

判别器有两个损失函数,一个利用huber损失函数(相较于平方误差损失函数,huber损失在异常点情况下更加健壮);另一个损失用来表示对生成数据进行真伪分类的损失,这个损失函数通过softmax和交叉熵来计算。

生成器和判别器函数都是通过梯度下降法进行优化,并通过梯度裁剪来固话训练。最终监督学习的损失和生成对抗的损失(包含判别器损失和生成器损失)被联合训练,以最终达到总损失的最小化。

在结合时间信息进行预测评分时,参数采用相互迭代原则,对评分预测偏差加入正则化项,表示为

其中||·||2为l2范数,λ为正则化参数,由交叉验证确定。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。


技术特征:

1.一种基于生成对抗网络的时序评分预测方法,其特征在于,包括以下步骤:

s1、对原始数据进行样本抽取和时间特征提取,形成包含时间信息的数据集;

s2、构建生成对抗网络模型中的生成模型和鉴别模型;

s3、基于时序的奇异值分解,得到加入时序信息的生成对抗网络模型;

s4、利用步骤s3得到的加入时序信息的生成对抗网络模型对步骤s1中包含时间信息的数据集进行时序评分预测。

2.如权利要求1所述的基于生成对抗网络的时序评分预测方法,其特征在于,所述步骤s1包括以下分步骤:

s1-1、从原始数据库中进行样本抽取,将其按设定比例分为训练集和测试集,并生成特征索引;

s1-2、对数据集中的时间信息进行处理,获取数据集中最小时间戳min_time_stamp以及最大时间戳max_time_stamp,计算出整个数据集的时间跨度num;对于每一条数据,将其时间信息转化为min(num-1,time-min_time_stamp),记为t;

s1-3、将步骤s1-2处理后的时间信息t,结合项目编号i、用户编号u以及评分r组成新的数据集结构(u,i,r,t)。

3.如权利要求2所述的基于生成对抗网络的时序评分预测方法,其特征在于,所述步骤s2包括以下分步骤:

s2-1、生成对抗网络中生成模型以及鉴别模型的重定义,将生成模型定义为

其中gθ(u,i)表示生成器预测的用户u与项目i之间的评分,θ为生成模型参数;

将鉴别模型定义为

其中fφ(u,i)表示鉴别器在验证集的基础上计算出的用户u与项目i之间的评分,为鉴别模型参数;

s2-2、根据定义的生成模型以及鉴别模型,生成对抗网络目标函数为

其中e表示期望,x~pdata(x)表示变量x服从真实数据分布,d(i|u,r),g(i|u,r)分别表示生成模型和鉴别模型使用先验概率在给定用户和评分时项目i的概率;

s2-3、对生成对抗网络模型进行求解,相应的生成模型梯度为

其中θg表示生成模型参数,m表示项目总量;

鉴别器梯度为

s2-4、将鉴别模型梯度表示为

其中φ表示鉴别模型参数,z~pz(z)表示变量z服从生成模型分布,gθ(z)表示带有参数θ的生成模型在输入变量z后的输出,σ表示sigmoid函数,fφ(gθ(z))表示带有参数φ的鉴别模型在输入生成器的输出后的输出;

将鉴别模型损失函数表示为

其中表示对于任一用户推荐项目im鉴别模型给出的评分,n表示用户总量;

s2-5、根据原始奇异值分解方法计算用户与项目之间的评分,表示为

其中pu,qi分别表示用户u与项目i的潜在特征向量,b表示项目偏置量。

4.如权利要求3所述的基于生成对抗网络的时序评分预测方法,其特征在于,所述步骤s3包括以下分步骤:

s3-1、根据用户喜好随时间变化、用户评分习惯随时间变化、项目受欢迎程度随时间变化、整个社会的偏好随时间变化这四种时间效应分别构建其特征表示矩阵,分别初始化为0矩阵,加入到传统奇异值分解方法中,得到改进的奇异值分解方法表示为

其中bt为时间特征向量,表示社会偏好随时间的变化;xu,zt分别为用户u和时间t的潜在特征向量,表示用户评分习惯随时间的变化;si,yω分别为项目i和时间ω的潜在特征向量,代表项目流行度随时间的变化;gu,k,li,k,ht,k分别为用户u、项目i和时间t的潜在特征向量,表示用户喜好的转变;

s3-2、初始化用户、项目以及时间对应的潜在特征矩阵,重新定义生成模型为

定义鉴别模型为

其中gθ(u,i,t)表示使用改进的奇异值分解方法预测的用户与项目之间的评分,fφ(u,i,t)表示鉴别器使用改进的奇异值分解方法计算出的用户u与项目i之间的评分。

5.如权利要求4所述的基于生成对抗网络的时序评分预测方法,其特征在于,所述步骤s4包括以下分步骤:

s4-1、利用步骤s3得到的加入时序信息的生成对抗网络模型中的生成模型预测用户项目之间的相关度,将其生成的序列输入鉴别器;

s4-2、利用步骤s3得到的加入时序信息的生成对抗网络模型中的鉴别模型根据改进的的奇异值分解方法计算输入的用户项目序列评分,进而给用户项目序列打出标签,来鉴别是否为真数据;

s4-3、生成器根据步骤s4-2中得到的标签,进而优化生成器参数集;通过生成模型以及鉴别模型的极小极大博弈,达到生成对抗网络的0-1平衡;

s4-4、得到项目的带有时间信息的预测评分,并根据评分排序进行推荐。

技术总结
本发明公开了一种基于生成对抗网络的时序评分预测方法,其包括以下步骤:S1、样本抽取以及时间特征提取;S2、构建生成对抗网络模型中的生成模型和鉴别模型;S3、基于时序的奇异值分解,得到加入时序信息的生成对抗网络模型;S4、基于生成对抗网络模型进行时序评分预测。本发明结合了时间序列信息以及生成对抗网络,将得到的新的时序评分预测方法应用到推荐系统中,实现长期有效的推荐,使得推荐精度有所提高。

技术研发人员:王庆先;王超
受保护的技术使用者:电子科技大学
技术研发日:2020.01.15
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-23365.html

最新回复(0)