一种基于协同过滤模型的混合神经网络推荐系统的制作方法

文档序号:17730812发布日期:2019-05-22 02:50阅读:295来源:国知局
一种基于协同过滤模型的混合神经网络推荐系统的制作方法

本发明属于机器学习领域中的推荐系统研究领域,是一种基于混合神经网络通过协同过滤挖掘用户兴趣偏好来进行推荐的推荐系统。



背景技术:

随着互联网的快速发展与普及,人们面临着琳琅满目的在线内容(如电影、书籍和音乐),导致用户寻找到自己想要的信息需要耗费大量时间,即说到的信息过载现象。为了解决这种现象,推荐系统应运而生。目前,推荐系统已经被广泛地应用于如淘宝、netflix、亚马逊和youtube等国内外电商平台。据报道,80%用户使用netflix的推荐引擎观看电影,youtube的主页推荐超过60%的视频点击。推荐系统在更加方便地服务客户的同时,也大幅度地提高了公司的利润。

推荐系统中最重要的挑战之一就是如何提高算法的准确性。解决这个问题的关键在于需要建一个精确的模型来表示用户与商品之间的关系。例如矩阵分解(matrixfactorization,mf)是分别对用户和商品联合映射到一个潜在空间中,潜在空间中每一个向量代表一个用户或商品,通过潜在因子(隐因子)内积运算预测某一用户对某一商品的兴趣程度。内积运算方法实际上是一个线性模型,而线性方法对用户和商品之间的关系进行建模是不完全的,因为也存在非线性关系。由此,提出了神经协同过滤(neuralcollaborativefiltering,ncf),它利用多层感知器(multi-layerperceptron,mlp)来学习用户和商品之前的非线性关系。

ncf采用塔型的多层感知器,其中每个神经层的节点数是下一个神经层的两倍,当神经网络的深度增加时,算法呈指数级增长,这就造成了神经网络的层数不能太大。而节点数相同的多层感知器可以基本解决这个问题,其中每个神经网络的层数都有相同的节点。但是,对于这种结构而言,可能会出现退化问题,即算法的准确性不会随着神经网络的深度增加而提高,这就使得一个神经网络若是层数加深可能会危及算法的准确性。



技术实现要素:

本发明的发明目的在于:针对上述存在的问题,提供一种由全局神经块和局部神经块组成的混合神经协同过滤的推荐系统,以提升推荐性能。

为实现上述发明目的,本发明使用混合神经协同过滤推荐系统,系统包括以下几个模块:

数据预处理模块:从系统数据库中提取用户对商品的评分信息,并过滤掉对商品的评分数少于预设阈值(例如20)的用户,即通过一个评分商品数阈值将用户分为两类:活跃用户和非活跃用户,仅基于活跃用户构建用户-商品评分矩阵表;

并设置用户对商品是否存在评分的标识符,若存在评分,则将该标识符设置1;否则设置为0;即在该模块中将显反馈的评分转换为隐反馈,如果用户对商品进行了评分,相应的条目将被标记为1,反之,则将条目被标记为0。

再基于用户对商品的标识符构建用户-商品评分矩阵表并存入数据库中,其每一行代表的是一位用户的信息,即用户特征向量(vu);每一列代表了一件商品的信息,即商品特征向量(oi),表中数值代表了对应用户对该商品有无评分。

混合神经协同过滤模块,包括嵌入层、全局神经块和局部神经块构成的混合神经网络;

所述全局神经块采用塔式的多层神经网络,每一层神经网络即为一层全局神经网络层;全局神经网络层从前往后的网络层节点数递减,前一层全局神经网络层的节点数是后一层全局神经网络层的2倍;即全局神经块通过塔式的多层感知器对用户-商品之间的交互(即评分yui,其中下标u表示用户,i表示商品)进行建模;

同时,在相邻两个全局神经网络层中插入一定数量的堆叠的神经网络层,构成两个相邻的全局神经网络层之间的局部神经块;

混合神经协同过滤模块从数据库中读取用户特征向量和商品特征向量,并输入嵌入层;

所述嵌入层基于其上设置的隐向量,分别将户特征向量和商品特征向量映射为稠密向量后,再输出至第一层全局神经网络层;

通过对混合神经网络的训练,获取混合神经网络的层间权重信息;并基于训练好的层间权重信息的得到当前输入的用户特征向量和商品特征向量在混合神经网络的输出信息;即初始化嵌入层的隐向量,通过全连接将稀疏的用户特征向量和商品特征向量变为稠密向量,再将其通过全局神经块及局部神经块对用户-商品的权重wui进行设置,之后通过训练输出混合神经协同过滤模块的最后一层。

优选的,局部神经块采用深度残差神经网络。深度残差网络可以解决退化的问题,其中潜在映射为去拟合一些堆叠层,堆叠层可以近似表示为

评分预测模块:将混合神经协同过滤模块与广义矩阵分解(generalizedmatrixfactorization,gmf)组合在一起,用他们各自最后一层的隐藏层进行全连接,输出用户对商品的预测评分其中下标u表示用户,i表示商品。并基于输出的预测评分构建用户-商品评分预测表并存入到数据库中。由于输入的数据是隐反馈,所以输出的预测评分值则代表用户是否选择了该商品的概率,即1代表用户选择了该商品,反之则没有选择该商品。其中用户-商品评分预测表中每一行代表的是一位用户对所有商品的评分预测信息,每一列代表了一件商品的信息,表中数值的大小在0和1之间,表示用户对商品的预测评分的概率,越接近1则代表用户选择该商品的机会大一些,反之则小。

推荐模块:从数据库中读取用户-商品评分预测表,除开用户已经购买过的商品外,随机抽取一定数量的商品(例如100个商品),在用户未购买的商品中通过评价排序指标按照从高到低的顺序对预测评分进行排序,对于每一位用户而言,选择排序最前的前(例如10)件商品作为当前用户的推荐数据表并予以推荐;同时将用户当前的推荐数据表存储在数据库中。其中推荐数据表中的每一行表示对一位用户的推荐信息,每一列表示商品被推荐的情况。

本发明的发明目的是这样实现的:

本发明用混合神经系统过滤推荐系统,由数据预处理模块、混合神经协同过滤模块、评分预测模块,推荐模块组成。数据预处理模块从数据库中获取原始数据,并将原始数据转化成矩阵的形式;混合神经协同过滤模块通过对多模型同时训练的方式,获得对用户评分的概率值;评分预测模块利用混合神经协同过滤模块与广义矩阵分解组合输出最终的评分预测值,最后将评分预测值作为评分预测结果存储在数据库中;推荐模块利用评分预测模块计算得到的评分预测结果,经过对评测指标的排序向用户进行推荐。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

(1)本发明考虑到用户与商品之间非线性关系的情况下,没有额外信息(如评分时间,用户关系等),使得推荐更加个性化。

(2)本发明在局部神经块加入深度残差网络神来增加全局塔型多层感知机的深度,一定程度上缓解了退化问题并且算法的复杂度也没有显著提高。

(3)本发明使用的算法在用户评分较少的稀疏矩阵中也能有非常不错的推荐效果,可以有效地解决数据稀疏性的问题。

(4)本发明利用不同的结构混合神经网络,使用了更多的神经网络层,预测准确性得到了显著提升并且获得的信息也更加多样化。

(5)本发明方法运用领域广泛,如可用于书籍推荐,音乐推荐,电影推荐等推荐领域。

附图说明

图1是本发明基于混合神经协同过滤的推荐系统各模块协作流程图;

图2是本发明架构图,以深度残差神经网络为例的示意图;

图3是节点数相同的多层感知机构建的局部神经块的示意图;

图4是塔型的多层感知机构建的局部神经块示意图;

图5是深度残差网络的多层感知机构建的局部神经块的示意图;

图6是混合神经网络和广义矩阵分解组合的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。

本发明公开了一种基于协同过滤模型的混合神经网络推荐系统,包括数据预处理模块、混合神经协同过滤模块、评分预测模块,推荐模块和数据库,其中,数据预处理模块从数据库中获取原始数据,并将原始数据转化成矩阵的形式;混合神经协同过滤模块通过对多模型同时训练的方式,获得对用户评分的概率值;评分预测模块利用混合神经协同过滤模块与广义矩阵分解组合输出最终的评分预测值,最后将评分预测值作为评分预测结果存储在数据库中;推荐模块利用评分预测模块计算得到的评分预测结果,经过对评测指标的排序向用户进行推荐。

图1为本发明基于混合神经协同过滤推荐系统各模块协作流程图。本发明共包含4个模块,数据预处理模块、混合神经协同过滤模块、评分预测模块以及推荐模块。

下面将主要结合附图具体介绍本发明基于混合神经协同过滤推荐系统的工作流程。

1.数据预处理模块:数据预处理模块从数据库中按行读取用户对商品的评分信息,每读取一条信息,就将评分放入到用户-商品评分矩阵对应的位置中,读取信息完毕后,再将评过分的元素用1值填充,未评分的元素用0值进行填充,最后将矩阵存入数据库中。

2.混合神经协同过滤模块:混合神经协同过滤模块由全局神经块和局部神经块组成,所组成的网络定义为混合神经网络。全局神经块是由塔型的多层感知器(globallayer1~globallayerx)组成,其中相邻的全局神经网络层中插入堆叠的神经网络层(locallayer1~locallayerz),即局部神经块。如图2所示,其中底层输入层(inputlayer)由用户特征向量vu和商品特征向量oi组成,之后通过输入层上方的嵌入层(embeddinglayer)将稀疏的向量变为稠密的(图中的交叉箭头线表示映射,即稀疏到稠密的映射),进而将嵌入层输入到混合神经协同过滤层(hybridneuralcflayer),最终输出层(outputlayer)输出预测评分值

再将与用户对商品的真实评分yui之间进行最小化训练。本系统的主要方法的计算公式如下:

其中,p∈rm×k,q∈rn×k分别代表用户的隐因子矩阵和商品的隐因子矩阵,其中m表示用户数,n表示商品数,k表示隐因子数,即隐向量数,即通过对用户-商品评分矩阵进行矩阵分解可以得到p和q,为全局神经块,为局部神经块,函数f可以表示为:

其中,φout是输出层的映射函数,表示第x全局神经网络层的映射函数,表示第x局部神经网络层的一系列映射函数,可以用如下公式表示:

其中,代表第x个局部神经块第z层的映射函数,局部神经块共有z层。

使用adaptivemomentestimation(adam)方法求取目标函数的最小值,目标函数如下:

其中,表示已有评分的集合,表示负实例集合,即缺失值集合,wui是神经网络的超参,表示用户商品的权重。

本发明的局部神经块(locallayer1~locallayerz)可以是由节点(神经元)数相同的多层感知器、塔型的多层感知器或深度残差神经网络三种结构组成。

参见图3,以节点数相同的多层感知机构建局部神经块中,每个神经层(locallayer1~locallayerz)都具有相同数量的节点,上一层中的节点与下一层的节点进行全连接。虽然每个局部神经块内的各局部神经网络层的节点数相同,但是相邻的局部神经块依然呈塔型:即第x层全局神经网络层与其后一层全局神经网络层之间的局部神经网络层,与x与其前一层全局神经网络层之间的局部神经网络层相比,节点数逐渐变少。且本具体实施方式中,第x层全局神经网络层后的局部神经块的各层的节点与x层全局神经网络层的节点数相同

在由节点数相同的多层感知器构成的局部神经块中,体系结构可定义为:

......,

......,

其中,pu、qi分别表示经过嵌入层后的用户特征向量和商品用户特征向量,即稠密的用户特征向量和稠密的商品用户特征向量;wx、bx、分别表示第x层全局神经网络层的权重矩阵、偏置向量、激活函数、和输出,其中x=1,2,…,x;wx′,z、b′x,z、分别表示第x层全局神经网络层后的第z层局部神经网络层的权重矩阵、偏置向量、激活函数、和输出,其中z=1,2,…,z;h、aout、b分别表示输出层的权重向量、激活函数和偏置向量,符号()t表示矩阵转置。

参见图4,本发明的局部神经块也可以是塔型的多层感知机,即对于每相邻全局神经网络层中的各局部神经块而言,局部神经块的内部呈塔型,即各局部神经网络层的节点数从前往后逐渐递减;且相邻的局部神经块依然呈塔型。

在塔型的多层感知器的结构中,与全局神经块有相同的神经网络结构:第n-1层神经层的节点数是第n层的两倍,即全局神经网络层后的第1层局部神经网络层的节点数是其最近的全局神经网络层的两倍,其体系结构可定义为:

......,

......,

其中,wx、bx、和zx分别表示第x层全局神经网络层的权重矩阵、偏置向量、激活函数、和输出,其中x=1,2,…,x;w′x,z、b′x,z、分别表示第x层全局神经网络层后的第z层局部神经网络层的权重矩阵、偏置向量、激活函数输出,其中z=1,2,…,z;h、aout、b分别表示输出层的权重向量、激活函数和偏置向量。

此外,本发明的局部神经块还可以由深度残差神经网络组成,如图5所示。图5是深度残差神经网络和全局神经块相组合。在深度残差神经网络结构中,用表示一个底层映射,它可以被几个堆叠的层所匹配,x表示对第一个层的输入。中间这些堆叠的层近似于另一个残差函数其中是求和前全连接网络映射,是从输入到求和后的全连接网络映射。通过深度残差网络,在本发明中该结构可以定义为:

......,

其中,wx、bx、zx和分别表示第x层全局神经网络层的权重矩阵、偏置向量、激活函数、输出、第x层全局网络与局部神经块组合的最终输出和第x个局部神经块里面所有的w的集合,函数表示求和前全连接网络映射,其中x=1,2,…,x;wx′,z、b′x,z、分别表示第x层全局神经网络层后的第z层局部神经网络层的权重矩阵、偏置向量、激活函数、和输出,其中z=1,2,…,z;h、aout、b分别表示输出层的权重向量、激活函数和偏置向量。

3.评分预测模块:

如图6表示了混合神经网络与广义矩阵分解的组合,将它们的最后一个隐藏层连接起来,最后输出用户对商品的预测评分值并将用户-商品评分预测矩阵存入到数据库中。其中,图6中的mfuserverctor表示用户特征向量(矩阵分解),mlpuserverctor表示用户特征向量(多层感知器),mfitemverctor表示商品特征向量(矩阵分解),mlpitemverctor表示商品特征向量(多层感知器),gmflayer表示广义矩阵分解网络层,hybridneumflayer表示混合矩阵神经网络。

本发明中的混合神经协同过滤与广义矩阵分解组合可以定义为:

......,

......,

其中,分别表示用户特征向量vu和商品特征向量oi经广义矩阵分解后的特征向量,分别对应稠密的用户特征向量和稠密的商品用户特征向量。为了节省空间,在局部神经块中,本发明用一个矩阵w来区分多层感知机和深度残差神经网络。以为例,当w=0时,该公式表示多层感知机,当w=i时,该公式表示残差神经网络。

4.推荐模块:推荐模块从数据库中读取预测评分矩阵,对于用户-商品预测评分矩阵的每一行,除开用户已经购买的商品后,在剩下的商品中按预测评分利用排序指标计算出的从高到低对商品进行排序,选择评分最高的前10个商品存放在推荐列中,并将推荐列表存储在数据库中。

实施例

本系统进行推荐工作时,包括下列步骤:

首先,从系统数据库中按行读取用户对商品的评分信息(数据库中存储有用户评分表,每一行表示一个用户,每一列表示不同的商品,表中内容为用户评分值),读取完成后,过滤掉用户对商品的评分少于20个的用户。这是由于此类用户不活跃,不能准确地为其推荐。接着设置评分标识符:如果用户对商品进行了评分,相应的用户商品的评分表将被标记为1;反之,则将被标记为0。从而将评分信息转化为用户-商品评分矩阵表,表中数值代表了对应用户对该商品是否评分,如下表所示:

表1用户对商品的评分表

在表1中可以看到用户user1对商品item1的评分为1,表示该用户对该商品有评价;对item2为0,表示该用户对该用户没有评分。

第二步,将用户-商品评分矩阵表存入到数据库当中。其中用户-商品评分矩阵表中每一行代表的是一位用户的信息,映射为用户特征向量vu;每一列代表了一件商品的信息,即映射为商品特征向量oi,这两个向量分别作为广义矩阵分解和混合神经网络的输入的特征向量。

第三步,分别计算广义矩阵分解的最终值和混合神经网络最后一个隐藏层输出的值,将两者的终值进行全连接。其中,广义矩阵分解就是一般的矩阵分解方法进行了推广,将两个特征向量作为特征矩阵进行计算。而本系统在混合神经网络中分为了两部分,一部分为全局神经块由塔型的多层感知机搭建的,在全局神经块中加入了塔型的神经网络层,这就是局部神经块,神经层是可以随机设置的,这样可以发现用户与商品交互式的一些潜在特征。例如,在15层全连接的全局神经块中,每一层加入两层全连接的局部神经层,并在对局部神经块进行深度残差网络构建,这样比较好的解决了退化问题。本系统采用adaptivemomentestimation(adam)来学习模型中的参数,计算各种参数的自适应学习率,最终输出最终的预测值。

最后,本系统将最后计算出的预测值信息填入到用户-商品矩阵预测表中进行分析,对于用户-商品预测评分矩阵的每一行,除开用户已经购买的商品后,在剩下的商品中按预测值大小,利用排序指标计算出的从高到低对商品进行排序,该预测值是在0到1之间的一个范围,越接近1表示该用户对该商品的喜爱程度越高,排序就越靠前,最终选择预测值最高的前10个商品存放在推荐的列表中,并将推荐列表存储在数据库中

以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。

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