基于对抗网络的商品推荐方法、电子装置及存储介质与流程

文档序号:17187996发布日期:2019-03-22 21:35阅读:224来源:国知局
基于对抗网络的商品推荐方法、电子装置及存储介质与流程

本发明涉及商品推荐技术领域,更为具体地,涉及一种基于对抗网络的商品推荐方法、电子装置及存储介质。



背景技术:

随着网络技术的发展,用户越来越多的通过网络、app等浏览和购买商品,为了方便用户购买商品,可以向用户推荐其可能喜欢的商品。

现阶段单领域推荐系统主要是采用传统的贝叶斯先验/协同过滤算法或是cnn/rnn/dbn等深度学习网络模型实现,虽然这些深度学习模型对于低层的特征提,推荐的准确性有待提高。



技术实现要素:

鉴于上述问题,本发明的目的是提供一种准确学习推荐实体的特征的基于生成对抗网络的推荐方法、电子装置及计算机可读存储介质。

为了实现上述目的,本发明提供一种电子装置,包括存储器和处理器,所述存储器中包括基于对抗网络的商品推荐程序,所述处理器执行所述基于对抗网络的商品推荐程序,所述基于对抗网络的商品推荐程序包括:

采集部,采集用户对商品的行为数据,所述行为数据包括购买数据和浏览数据;

随机输入向量生成部,根据行为数据生成随机输入向量;

对抗网络模型生成部,包括生成器、判别器、更新模块和推荐模块,所述随机输入向量生成部生成的随机输入向量作为所述生成器的输入,得到的随机生成向量作为所述判别器的虚拟输入,采集部采集的行为数据作为判别器的真实输入,通过判别器判断所述真实输入和虚拟输入,输出判定为真实与虚拟的比例,当判别器不收敛时,更新模块发送信号给生成器,驱动生成器更新,将判别器收敛时所述生成器的输出作为推荐模块的推荐序列。

优选地,所述对抗网络模型生成部还包括第一损失模型构建模块,构建判别器的损失模型,通过所述损失模型判断判别器是否收敛。

优选地,所述生成器采用lstm模型,包括输入层、隐含层和输出层,输入层设置有输入门、输出层设置有输出门和遗忘门,还包括:

神经网络构建模块,根据下式(1)-(4)构建输入门输入模型、隐含层输出模型、输出门输出模型和遗忘门输出模型,

si=f(a(s)xi+b(s))(1)

hj=f(a(h)si+b(h))(2)

c=f(a(c)hj+b(c))(3)

y=f(a(y)hj+b(y))(4)

其中,xi为输入层第i个节点的输入,si为xi在输入门的输入,hj为xi在隐含层第j个节点的输出,c为xi在输出门的输出,y为xi在遗忘门的输出,a(s),a(h),a(c),a(y),b(s),b(h),b(c),b(y)皆为待训练的权值参数,s,h,c,y分别表示权值属于输入门、隐含层、输出门和遗忘门;

初始化模块,对神经网络的权值参数进行初始赋值;

训练集和测试集分割模块,对不同用户在设定时间对商品行为数据依次分为第一时间段行为数据和第二时间段行为数据,将第一时间段行为数据作为训练集,第二时间段行为数据作为输出门测试集,将不包括第二时间段行为数据中商品类的随机输入向量作为遗忘门测试集;

训练模块,通过训练集、输出门测试集和遗忘门测试集训练输入门输入模型、隐含层输出模型、输出门输出模型和遗忘门输出模型。

优选地,所述基于对抗网络的商品推荐程序还包括:

数据库,对商品进行聚类编码;

向量转化部,将用户对商品的行为数据根据数据库的编码转化为行为向量,作为所述判别器的真实输入。

此外,为了实现上述目的,本发明还提供一种基于对抗网络的商品推荐方法,包括:

获得用户对商品的行为数据,所述行为数据包括购买数据和浏览数据;

根据行为数据生成随机输入向量;

将随机输入向量和行为数据输入对抗网络模型,所述对抗网络模型包括生成器和判别器,所述随机输入向量输入生成器得到随机生成向量,所述随机生成向量作为判别器的虚拟输入,所述行为数据作为判别器的真实输入;

所述判别器判断所述真实输入和虚拟输入,输出判定为真实与虚拟的比例,判断判别器是否收敛,当判别器不收敛时,驱动生成器更新直至判别器收敛,将所述生成器的随机生成向量作为推荐序列。

优选地,所述对抗网络模型通过构建判别器的损失模型判断判别器是否收敛。

进一步,优选地,所述对抗网络模型还构建生成器的损失模型,判别生成器是否收敛,当生成器或判别器不收敛时,驱动生成器更新及更新判别器和生成器的损失模型,直至生成器和判别器均收敛。

优选地,所述生成器采用lstm模型,包括:

构建输入层、隐含层和输出层,输入层设置有输入门、输出层设置有输出门和遗忘门;

根据下式(1)-(4)构建输入门输入模型、隐含层输出模型、输出门输出模型和遗忘门输出模型,

si=f(a(s)xi+b(s))(1)

hj=f(a(h)si+b(h))(2)

c=f(a(c)hj+b(c))(3)

y=f(a(y)hj+b(y))(4)

其中,xi为输入层第i个节点的输入,si为xi在输入门的输入,hj为xi在隐含层第j个节点的输出,c为xi在输出门的输出,y为xi在遗忘门的输出,a(s),a(h),a(c),a(y),b(s),b(h),b(c),b(y)皆为待训练的权值参数,s,h,c,y分别表示权值属于输入门、隐含层、输出门和遗忘门;

对神经网络的权值参数进行初始赋值;

对不同用户在设定时间对商品行为数据依次分为第一时间段行为数据和第二时间段行为数据,将第一时间段行为数据作为训练集,第二时间段行为数据作为输出门测试集,将不包括第二时间段行为数据中商品类的随机输入向量作为遗忘门测试集;

通过训练集、输出门测试集和遗忘门测试集训练输入门输入模型、隐含层输出模型、输出门输出模型和遗忘门输出模型。

进一步,优选地,所述输入门输入模型、隐含层输出模型、输出门输出模型和遗忘门输出模型的训练执行以下步骤:

根据训练集中的一个样本生成的随机输入向量输入输入门的输入模型,得到输出门和遗忘门的输出向量,各自输出向量分别与所述样本对应的输入门测试集的输入门测试样本和遗忘门测试集的遗忘门测试样本的误差作为该样本此次训练的输出门误差和遗忘门误差,将训练集中的样本和随机输入向量的误差作为输入门误差;

利用输入门误差、输出门误差和遗忘门误差根据下式(5)-(12)更新权值参数,

a'(c)=a(c)+hjec(5)

b'(c)=b(c)+ec(6)

a'(y)=a(y)+hjey(7)

b'(y)=b(y)+ey(8)

a'(h)=a(h)+hj(1-hj)si(9)

b'(h)=b(h)+hj(1-hj)(10)

a'(s)=a(s)+xies(11)

b'(s)=b(s)+es(12)

其中,es、ec和ey分别为输入门误差、输出门误差、遗忘门误差;

开始训练下一个样本,重复上述步骤,直到所有训练集样本训练结束;

判断lstm模型是否收敛,将收敛时的权值参数作为lstm模型的权值参数。

优选地,所述基于对抗网络的商品推荐方法还包括:

构建数据库,对商品进行聚类编码;

将用户对商品的行为数据根据数据库的编码转化为行为向量,根据行为向量生成随机输入向量,将行为向量作为判别器的真实输入。

此外,为了实现上述目的,本发明还提供一种所述计算机可读存储介质中包括基于对抗网络的商品推荐程序,所述基于对抗网络的商品推荐程序被处理器执行时,实现上述基于对抗网络的商品推荐方法的步骤。

本发明所述基于生成对抗网络的推荐方法、电子装置及计算机可读存储介质,对抗网络模型可以对序列数据进行建模从而更准确的学习推荐实体的特征,整体模型的集成度较高。

另外,通过随机输入向量生成推荐序列,对于噪声数据具有很强的容错性,模型收敛效果有一定提升。

附图说明

通过参考以下结合附图的说明,并且随着对本发明的更全面理解,本发明的其它目的及结果将更加明白及易于理解。在附图中:

图1是本发明基于对抗网络的商品推荐方法较佳实施例的应用环境示意图;

图2是图1中基于对抗网络的商品推荐程序较佳实施例的部示意图;

图3是本发明基于对抗网络的商品推荐方法一个较佳实施例的流程图;

图4是本发明基于对抗网络的商品推荐方法另一个较佳实施例的流程图。

在所有附图中相同的标号指示相似或相应的特征或功能。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下将结合附图对本发明的具体实施例进行详细描述。

本发明提供一种基于对抗网络的商品推荐方法,应用于一种电子装置1。参照图1所示,为本发明基于对抗网络的商品推荐方法较佳实施例的应用环境示意图。

在本实施例中,电子装置1可以是服务器、手机、平板电脑、便携计算机、桌上型计算机等具有运算功能的终端设备。

该电子装置1包括存储器11、处理器12、网络接口13及通信总线14。

存储器11包括至少一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器11等的非易失性存储介质。在一些实施例中,所述可读存储介质可以是所述电子装置1的内部存储模块,例如该电子装置1的硬盘。在另一些实施例中,所述可读存储介质也可以是所述电子装置1的外部存储器11,例如所述电子装置1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。

在本实施例中,所述存储器11的可读存储介质通常用于存储安装于所述电子装置1的基于对抗网络的商品推荐程序10、对抗网络模型等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如基于对抗网络的商品推荐程序10等。

网络接口13可选地可以包括标准的有线接口、无线接口(如wi-fi接口),通常用于在该电子装置1与其他电子设备之间建立通信连接。

通信总线14用于实现这些组件之间的连接通信。

图1仅示出了具有组件11-14的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

可选地,该电子装置1还可以包括用户接口,用户接口可以包括输入模块比如键盘(keyboard),可选地用户接口还可以包括标准的有线接口、无线接口。

可选地,该电子装置1还可以包括显示器,显示器也可以称为显示屏或显示模块。

在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(organiclight-emittingdiode,oled)触摸器等。显示器用于显示在电子装置1中处理的信息以及用于显示可视化的用户界面。

可选地,该电子装置1还包括触摸传感器。所述触摸传感器所提供的供用户进行触摸操作的区域称为触控区域。此外,这里所述的触摸传感器可以为电阻式触摸传感器、电容式触摸传感器等。而且,所述触摸传感器不仅包括接触式的触摸传感器,也可包括接近式的触摸传感器等。此外,所述触摸传感器可以为单个传感器,也可以为例如阵列布置的多个传感器。

可选地,该电子装置1还可以包括逻辑门电路,传感器、音频电路等等,在此不再赘述。

在图1所示的装置实施例中,作为一种计算机存储介质的存储器11中可以包括操作系统、以及基于对抗网络的商品推荐程序10;处理器12执行存储器11中存储的基于对抗网络的商品推荐程序时实现如下步骤:

获得用户对商品的行为数据,所述行为数据包括购买数据和浏览数据;

根据行为数据生成随机输入向量;

将随机输入向量和行为数据输入对抗网络模型,所述对抗网络模型包括生成器和判别器,所述随机输入向量输入生成器得到随机生成向量,所述随机生成向量作为判别器的虚拟输入,所述行为数据作为判别器的真实输入;

所述判别器判断所述真实输入和虚拟输入,输出判定为真实与虚拟的比例,判断判别器是否收敛,当判别器不收敛时,驱动生成器更新直至判别器收敛,将所述生成器的随机生成向量作为推荐序列。

在其他实施例中,基于对抗网络的商品推荐程序10还可以被分割为一个或者多个部,一个或者多个部被存储于存储器11中,并由处理器12执行,以完成本发明。本发明所称的部是指能够完成特定功能的一系列计算机程序指令段。参照图2所示,为图1中基于对抗网络的商品推荐程序10较佳实施例的功能部图。所述基于对抗网络的商品推荐程序10可以被分割为:

采集部110,采集用户对商品的行为数据,所述行为数据包括购买数据和浏览数据;

随机输入向量生成部120,根据行为数据生成随机输入向量;

对抗网络模型生成部130,包括生成器131、判别器132、更新模块133和推荐模块134,其中:生成器131的输入为随机输入向量生成部生成的随机输入向量,输出为随机生成向量;判别器132的虚拟输入为所述随机生成向量,真实输入为采集部采集的行为数据,判断所述真实输入和虚拟输入,输出判定为真实与虚拟的比例,直至判别器收敛;更新模块133在判别器不收敛时,发送信号给生成器131,驱动生成器更新,例如根据生成器的输出更新生成器的参数;推荐模块134将判别器收敛时所述生成器的随机生成向量作为推荐序列。

优选地,所述基于对抗网络的商品推荐程序还包括:

数据库140,对商品进行聚类编码;

向量转化部150,将用户对商品的行为数据根据数据库的编码转化为行为向量,作为所述判别器的真实输入。

优选地,所述对抗网络模型生成部130还包括:

第一损失模型构建模块135,构建判别器的损失模型,通过所述损失模型判断判别器是否收敛;

第二损失模型构建模块136,构建生成器的损失模型,通过所述损失模型判断生成器是否收敛,当生成器或判别器不收敛时,更新模块发送信号给生成器、第一损失模型构建模块和第二损失模型构建模块,通过生成器和判别器的输出更新损失模型。

在本发明的一个实施例中,所述生成器131采用lstm模型,包括输入层、隐含层和输出层,输入层设置有输入门、输出层设置有输出门和遗忘门,还包括:

神经网络构建模块1311,根据下式(1)-(4)构建输入门输入模型、隐含层输出模型、输出门输出模型和遗忘门输出模型,

si=f(a(s)xi+b(s))(1)

hj=f(a(h)si+b(h))(2)

c=f(a(c)hj+b(c))(3)

y=f(a(y)hj+b(y))(4)

其中,xi为输入层第i个节点的输入,si为xi在输入门的输入,hj为xi在隐含层第j个节点的输出,c为xi在输出门的输出,y为xi在遗忘门的输出,a(s),a(h),a(c),a(y),b(s),b(h),b(c),b(y)皆为待训练的权值参数,s,h,c,y分别表示权值属于输入门、隐含层、输出门和遗忘门;

初始化模块1312,对神经网络的权值参数进行初始赋值;

训练集和测试集分割模块1313,对不同用户在设定时间对商品行为数据依次分为第一时间段行为数据和第二时间段行为数据,将第一时间段行为数据作为训练集,第二时间段行为数据作为输出门测试集,将不包括第二时间段行为数据中商品类的随机输入向量作为遗忘门测试集;

训练模块1314,通过训练集、输出门测试集和遗忘门测试集训练输入门输入模型、隐含层输出模型、输出门输出模型和遗忘门输出模型。

优选地,所述训练模块包括:

输入单元,将随机输入向量生成部根据训练集中的一个样本生成的随机输入向量输入输入门的输入模型;

误差获得单元,将与输入门的对应的输出门的输出向量和遗忘门的输出向量分别与所述样本对应的输入门测试集的输入门测试样本和遗忘门测试集的遗忘门测试样本的误差作为该样本此次训练的输出门误差和遗忘门误差,将所述样本和随机输入向量的误差作为输入门误差;

权值更新单元,利用输入门误差、输出门误差和遗忘门误差根据下式(5)-(12)更新权值参数,

a'(c)=a(c)+hjec(5)

b'(c)=b(c)+ec(6)

a'(y)=a(y)+hjey(7)

b'(y)=b(y)+ey(8)

a'(h)=a(h)+hj(1-hj)si(9)

b'(h)=b(h)+hj(1-hj)(10)

a'(s)=a(s)+xies(11)

b'(s)=b(s)+es(12)

其中,es、ec和ey分别为输入门误差、输出门误差、遗忘门误差;

第一判断单元,判断训练集样本是否均经过训练,如果存在未经过训练的样本,发送信号给输入单元,如果所有样本均经过训练,发送信号给第二判断单元;

第二判断单元,判断lstm模型是否收敛,如果未收敛,发送信号给更新模块,如果收敛,将收敛时的权值参数作为lstm模型的权值参数。

此外,本发明还提供一种基于对抗网络的商品推荐方法。参照图3所示,为本发明基于对抗网络的商品推荐方法较佳实施例的流程图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。

在本发明的一个实施例中,如图3所示,基于对抗网络的商品推荐方法包括:

步骤s1,获得用户对商品的行为数据,所述行为数据包括购买数据和浏览数据;

步骤s2,根据行为数据生成随机输入向量;

步骤s3,将随机输入向量和行为数据输入对抗网络模型,得到推荐序列,具体地,包括:所述对抗网络模型包括生成器和判别器,所述随机输入向量输入生成器;所述生成器输出随机生成向量;所述随机生成向量作为判别器的虚拟输入,所述行为数据作为判别器的真实输入;所述判别器判断所述真实输入和虚拟输入,输出判定为真实与虚拟的比例,判断判别器是否收敛,当判别器不收敛时,驱动生成器更新直至判别器收敛;将所述生成器的随机生成向量作为推荐序列。

在本发明的一个实施例中,所述对抗网络模型可以通过构建判别器的损失模型判断判别器是否收敛。

另外,所述对抗网络模型还可以构建生成器的损失模型,判别生成器是否收敛,当生成器或判别器不收敛时,驱动生成器更新及更新判别器和生成器的损失模型,直至生成器和判别器均收敛。

此外,所述生成器还可以采用lstm模型。

在本发明的一个优选实施例中,如图4所示,包括:

步骤s10,构建数据库,对商品进行聚类编码;

步骤s20,获得用户对商品的行为数据,所述行为数据包括购买数据和浏览数据;

步骤s30,将用户对商品的行为数据根据数据库的编码转化为行为向量;

步骤s40,根据行为向量生成随机输入向量;

步骤s50,随机输入向量输入生成器;

步骤s60,所述生成器生成随机生成向量;

步骤s70,将随机生成向量作为判别器的虚拟输入,将行为向量作为判别器的真实输入,例如,将随机生成向量设定为0类,将行为向量设定为1类;

步骤s80,将所述虚拟输入和真实输入通过判别器进行判别;

当判别器不收敛时,在步骤s90中,通过判别器和生成器的输出更新判别器的损失模型和生成器的损失模型,并驱动生成器更新,直到判别器收敛;

当判别器收敛时,将收敛时所述生成器的随机生成向量作为推荐序列。

本发明之计算机可读存储介质的具体实施方式与上述商品推荐方法、电子装置的具体实施方式大致相同,在此不再赘述。

在上述各实施例中,所述生成器的损失模型可以根据下式(13)构建

-((1-y)log(1-d(g(z))))+ylogd(x)(13)

其中,d()为判别器的输出,g()为生成器的输出,x为行为向量(行为数据),z为随机输入向量,y为行为向量(行为数据)作为生成器的输入时得到的生成器的输出;

所述判别器的损失模型可以根据下式(14)构建

其中,表示对预测概率相对阈值取整,为0或者1,用于更改梯度方向,阈值为设定值,例如0.5。

另外,上述各实施例中的判别器可以采用lr、svm、knn等,优选地,采用多项式核的svm模型。

在上述各实施例中,所述生成器更新可以根据公式(5)-(12)进行权值参数更新,直至生成器或/和判别器收敛。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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