具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
BP(Back Propagation)神经网络是目前应用广泛的神经网络模型之一,是一种按误差逆传播算法训练的多层前馈网络,能学***方和最小。本发明通过BP神经网络的算法,帮助预测不同用户群体对新文件的评分,给评分高的用户群体推荐该文件。
在本发明的一个实施例中,如图1所示,一种基于BP神经网络的文件推荐方法,包括:
步骤S100根据预设的分类条件对待分类用户进行分类,得到不同的用户群;
步骤S200分别获取每个用户群各自对应的训练样本数据;
步骤S300分别建立每个用户群各自对应的BP神经网络;
步骤S400根据每个用户群各自对应的训练样本数据,分别对所述用户群各自对应的BP神经网络进行训练,得到训练好的所述用户群各自对应的BP神经网络模型;
步骤S500将预测样本数据输入训练好的每个用户群各自对应的BP神经网络模型,分别得到每个用户群各自对应的BP神经网络模型对所述预测样本数据的输出量;
步骤S600选择所述输出量大于预设阈值的BP神经网络模型所对应的用户群,向其推荐所述预测样本数据对应的文件。
具体的,所述预设的分类条件包括用户基本信息,或用户常看的文件类型;所述的用户基本信息包括用户的年龄层次、或性别、或职业、或爱好;所述用户常看的文件类型,可以为军事新闻、技术类、娱乐资讯、财经金融等;所述待分类用户,包括***所有的注册用户,或***活跃用户(即活跃度值达到预设活跃度值的用户)。
通常用户在注册时,会输入基本信息,客户端把这些用户基本信息、以及后续用户的文件查阅情况,包括所查阅的文件、评分、下载情况等进行记录并保存到数据库,根据用户的历史阅读情况可得出用户常看的文件类型。
所述的训练样本数据是根据用户群历史的文件浏览信息获得,每个用户群有各自对应的训练样本数据和BP神经网络,并且对各自对应的BP神经网络的训练也是各自独立的;所述训练好的BP神经网络模型,当隐含层神经元的数量在训练中不调整时,是指经所有的训练样本数据训练完毕,得到的BP神经网络模型;当隐含层神经元的数量在训练中调整时,是指经训练后,所获得的误差最小的BP神经网络模型。
所述预测样本数据是根据待推荐的文件得到,其所对应的文件,包括文本文件,和/或音频文件,和/或视频文件。将预测样本数据输入到每个用户群各自对应的BP神经网络模型,得到的输出量反映了每个用户群对待推荐的文件的偏好。
步骤S600中的所述预设阈值根据BP神经网络模型的输出量的可能范围来定,比如,如果BP神经网络模型的输出量的范围在0-100之间,则可将预设阈值设为80,或以上;步骤S600也可以选择所述输出量最大的BP神经网络模型所对应的用户群,向其推荐所述预测样本数据对应的文件。
优选地,所述步骤S200包括:
步骤S210分别获取每个用户群对应的所有文件浏览信息,以及,每个所述文件浏览信息对应的下载量;
步骤S220根据所述文件浏览信息和预设特征属性,分析得到每个文件浏览信息对应的文件特征向量;
步骤S230将同一个用户群对应的所有文件浏览信息各自对应的文件特征向量组成所述用户群的训练样本集;
步骤S240根据每个文件浏览信息对应的下载量,得到每个所述下载量对应的评分值;
步骤S250将同一个用户群对应的所有下载量各自对应的评分值组成所述用户群的评分集;
步骤S260将同一个用户群对应的所述训练样本集和所述评分集作为所述用户群的训练样本数据,从而得到不同的用户群的所述训练样本数据。
具体的,所述预设特征属性是从文件的特征属性中选取,以一个文件数据库为例,将文件的特征属性划分为文件分类、文件性质、关键词、文件格式、价格这五个属性。文件分类包含数学、计算机、文学、经济。文件性质包含教材、观点、指南、论文。关键词包含SQL、基础、边际效应、几何。文件格式包含PDF、DOC、音频、视频。文件价格包含免费、5个积分、>5个积分。这里我们用4位二进制来表示上面属性的值。假设选上面五个属性为预设特征属性,则一篇关于“SQL基础知识大全”的免费PDF文档所对应的文件特征向量为[0100,0010,1100,1000,1000]。假设选上面前三个属性为预设特征属性,则一篇关于“SQL基础知识大全”的免费PDF文档所对应的文件特征向量为[0100,0010,1100]。特征属性的值可以用各种进制表示,除了二进制外,也可以用十进制表示。
所述下载量对应的评分值可以根据下载量和预设函数计算得到,如Mi=f(Di),其中用户对文件i的评分定义为Mi,且文件i的下载量为Di,f()为预设函数;所述预设函数可以是线性函数,或对数函数,或其他,建议根据经验选取。
优选地,所述步骤S300还包括:
步骤S310根据所述预设特征属性的数量,确定输入层神经元的数量;
步骤S320根据所述评分值,确定输出层神经元的数量为1;
步骤S330根据以下公式确定隐含层神经元的数量:
其中,n为输入层神经元的数量,m为输出层神经元的数量,a为1到10之间的常数;
步骤S340根据所述输入层神经元的数量、所述输出层神经元的数量和所述隐含层神经元的数量,分别建立每个用户群各自对应的BP神经网络。
优选地,所述文件特征向量为所述文件特征向量对应的用户群的BP神经网络的输入量;所述评分值为所述评分值对应的所述下载量对应的所述文件特征向量对应的用户群的BP神经网络的输出量。
具体的,根据步骤330计算的隐含层神经元的数量是一个范围,根据经验选取其中一个值,比如,以5个预设特征属性为例,BP神经网络的基本结构为:输入层神经元的数量为5,输出层神经元的数量为1,隐含层神经元的数量根据公式计算在3~12之间,凭经验定隐含层神经元的数量为5,BP神经网络结构如图5所示,其中F1-F5表示文件的5个特征属性,R表示输出量。
优选地,所述步骤S400包括:
步骤S410选择一个未训练好的BP神经网络模型的用户群;
步骤S420从所述用户群对应的训练样本数据随机选取一部分作为第一样本数据,剩余的作为第二样本数据;
步骤S430将所述用户群对应的BP神经网络根据所述第一样本数据进行训练,得到所述用户群对应的参考BP神经网络模型;
步骤S440将所述用户群对应的第二样本数据的训练样本集输入到所述用户群对应的参考BP神经网络模型中,分别获取参考BP神经网络模型对训练样本集所包含的每个文件特征向量所对应的输出值;
步骤S450根据各所述输出值、各所述输出值对应的所述文件特征向量对应的评分值,得到误差值;
步骤S460判断所述误差值是否小于预设误差值;若是,则将所述参考BP神经网络模型作为所述用户群对应的训练好的神经网络模型;
步骤S470若否,则更改隐含层神经元的数量,并跳转到步骤S430;
步骤S480判断是否所有用户群都有各自对应的训练好的BP神经网络模型;
步骤S490若否,则选择另一个未训练好的BP神经网络模型的用户群,并跳转到步骤S420。
具体的,以4个用户群、5个预设特征属性为例,根据预设特征属性的数量,可以得到每个用户群各自对应的BP神经网络的基本结构:输入层神经元的数量为5,输出层神经元的数量为1,隐含层神经元的数量根据公式计算在3~12之间,初始设隐含层神经元的数量为3;初始每个用户群各自对应的BP神经网络基本结构是相同的,接下来对每个用户群各自对应的BP神经网络进行训练。
首先选择一个用户群,从该用户群对应的训练样本数据选取一部分作为第一样本数据,第一样本数据所占的比例理论上可随意设置,但如果偏低,如30%,会影响所得到的BP神经网络性能,建议80%以上,通常训练的样本越多,得到的模型性能更佳;取第一样本数据进行训练,训练完后,得到参考BP神经网络模型;接着用第二样本数据检测参考BP神经网络模型的误差,所述误差,比如按如下公式计算:
其中k对应第k个用户群,Ek为第k个用户群的误差值,Mk为第k个用户群的第二样本数据的样本总数,rki为第k个用户群第i个训练样本所对应的文件特征向量输入到参考BP神经网络模型所得到的输出值,Rki为第k个用户群第i个训练样本所对应的文件特征向量所对应的评分値。
如果所述误差不小于预设误差值,则隐含层神经元的数量加1,重新开始训练;如此,直至参考BP神经网络的误差在预设误差值之内,或达到隐含层神经元数量的最大值;若全部遍历完,仍未找到误差在预设误差值之内的参考BP神经网络时,则选择误差最小时所对应的隐含层神经元数目作为最终的隐含层神经元数量。以上是针对一个用户群的处理过程,判断所有用户群是否遍历完,若无,则选择下一个用户群,进行上述类似处理。
隐含层神经元的数量的调整遍历,可以按照预设规则来选择隐含层神经元的数量,例如:也可以从所允许的最大值开始,初始隐含层神经元的数量设为最大值,按递减方式遍历。所述预设误差值,可根据BP神经网络的输出量的最大值来定,比如,百分制的评分値,最大取值为100,预设误差值可设为最大值的5%,这表明在预设误差值之内的BP神经网络模型的误差在最大值的5%之内。
在本发明的另一个实施例中,如图2所示,一种基于BP神经网络的文件推荐方法,包括:
步骤S100根据预设的分类条件对待分类用户进行分类,得到不同的用户群;
步骤S210分别获取每个用户群对应的所有文件浏览信息,以及,每个所述文件浏览信息对应的下载量;
步骤S220根据所述文件浏览信息和预设特征属性,分析得到每个文件浏览信息对应的文件特征向量;
其中,所述文件特征向量为所述文件特征向量对应的用户群的BP神经网络的输入量;
步骤S230将同一个用户群对应的所有文件浏览信息各自对应的文件特征向量组成所述用户群的训练样本集;
步骤S240根据每个文件浏览信息对应的下载量,得到每个所述下载量对应的评分值;
其中,所述评分值为所述评分值对应的所述下载量对应的所述文件特征向量对应的用户群的BP神经网络的输出量;
步骤S250将同一个用户群对应的所有下载量各自对应的评分值组成所述用户群的评分集;
步骤S260将同一个用户群对应的所述训练样本集和所述评分集作为所述用户群的训练样本数据,从而得到不同的用户群的所述训练样本数据;
步骤S310根据所述预设特征属性的数量,确定输入层神经元的数量;
步骤S320根据所述评分值,确定输出层神经元的数量为1;
步骤S330根据以下公式确定隐含层神经元的数量:
其中,n为输入层神经元的数量,m为输出层神经元的数量,a为1到10之间的常数;
步骤S340根据所述输入层神经元的数量、所述输出层神经元的数量和所述隐含层神经元的数量,分别建立每个用户群各自对应的BP神经网络;
步骤S410选择一个未训练好的BP神经网络模型的用户群;
步骤S420从所述用户群对应的训练样本数据随机选取一部分作为第一样本数据,剩余的作为第二样本数据;
步骤S430将所述用户群对应的BP神经网络根据所述第一样本数据进行训练,得到所述用户群对应的参考BP神经网络模型;
步骤S440将所述用户群对应的第二样本数据的训练样本集输入到所述用户群对应的参考BP神经网络模型中,分别获取参考BP神经网络模型对训练样本集所包含的每个文件特征向量所对应的输出值;
步骤S450根据各所述输出值、各所述输出值对应的所述文件特征向量对应的评分值,得到误差值;
步骤S460判断所述误差值是否小于预设误差值;若是,则将所述参考BP神经网络模型作为所述用户群对应的训练好的神经网络模型;
步骤S470若否,则更改隐含层神经元的数量,并跳转到步骤S430;
步骤S480判断是否所有用户群都有各自对应的训练好的BP神经网络模型;
步骤S490若否,则选择另一个未训练好的BP神经网络模型的用户群,并跳转到步骤S420;
步骤S500将预测样本数据输入训练好的每个用户群各自对应的BP神经网络模型,分别得到每个用户群各自对应的BP神经网络模型对所述预测样本数据的输出量;
步骤S600选择所述输出量大于预设阈值的BP神经网络模型所对应的用户群,向其推荐所述预测样本数据对应的文件。
具体的,假设预设的分类条件为客户的年龄层次,按此将所有注册用户分为小于20岁的、介于20-50岁之间的、50岁以上的三个用户群,根据每个用户群对应的所有文件浏览信息,得到每个用户群所浏览文件根据特征属性所得到的文件特征向量组成的训练样本集和根据每个文件的下载量得到的评分集;
以5个预设特征属性为例,根据预设特征属性的数量,可以得到每个用户群各自对应的BP神经网络的基本结构:输入层神经元的数量为5,输出层神经元的数量为1,隐含层神经元的数量根据公式计算在3~12之间,初始设隐含层神经元的数量为3;初始每个用户群各自对应的BP神经网络基本结构是相同的,接下来对每个用户群各自对应的BP神经网络进行训练。
首先选择一个用户群,从该用户群对应的训练样本数据选取一部分作为第一样本数据,第一样本数据所占的比例理论上可随意设置,但如果偏低,如30%,会影响所得到的BP神经网络性能,建议80%以上,通常训练的样本越多,得到的模型性能更佳;取第一样本数据进行训练,训练完后,得到参考BP神经网络模型;接着用第二样本数据检测参考BP神经网络模型的误差,所述误差,比如按如下公式计算:
其中k对应第k个用户群,Ek为第k个用户群的误差值,Mk为第k个用户群的第二样本数据的样本总数,rki为第k个用户群第i个训练样本所对应的文件特征向量输入到参考BP神经网络模型所得到的输出值,Rki为第k个用户群第i个训练样本所对应的文件特征向量所对应的评分値。
如果所述误差不小于预设误差值,则隐含层神经元的数量加1,重新开始训练;如此,直至参考BP神经网络的误差在预设误差值之内,或达到隐含层神经元数量的最大值;若全部遍历完,仍未找到误差在预设误差值之内的参考BP神经网络时,则选择误差最小时所对应的隐含层神经元数目作为最终的隐含层神经元数量。以上是针对一个用户群的处理过程,判断所有用户群是否遍历完,若无,则选择下一个用户群,进行上述类似处理。
隐含层神经元的数量的调整遍历,也可以从所允许的最大值开始,初始隐含层神经元的数量设为最大值,按递减方式遍历。所述预设误差值,可根据BP神经网络的输出量的最大值来定,比如,百分制的评分値,最大取值为100,预设误差值可设为最大值的5%,这表明在预设误差值之内的BP神经网络模型的误差在最大值的5%之内。
在本发明的另一个实施例中,如图3所示,一种基于BP神经网络的文件推荐***,包括:
用户分类模块10,用于根据预设的分类条件对待分类的用户进行分类,得到不同的用户群;
数据获取模块20,与所述用户分类模块10电连接,所述数据获取模块20用于分别获取每个用户群各自对应的训练样本数据;
模型构建模块30,与所述用户分类模块10和所述数据获取模块20电连接,所述模型构建模块30用于分别建立每个用户群各自对应的BP神经网络,以及,用于根据每个用户群各自对应的训练样本数据,分别对所述用户群各自对应的BP神经网络进行训练,得到训练好的所述用户群各自对应的BP神经网络模型;
数据预测模块40,与所述模型构建模块30电连接,所述数据预测模块40用于将预测样本数据输入训练好的每个用户群各自对应的BP神经网络模型,分别得到每个用户群各自对应的BP神经网络模型对所述预测样本数据的输出量;
文件推荐模块50,与所述数据预测模块40电连接,所述文件推荐模块50用于选择所述输出量大于预设阈值的BP神经网络模型所对应的用户群,向其推荐所述预测样本数据对应的文件。
具体的,所述预设的分类条件包括用户基本信息,或用户常看的文件类型;所述的用户基本信息包括用户的年龄层次、或性别、或职业、或爱好;所述用户常看的文件类型,可以为军事新闻、技术类、娱乐资讯、财经金融等;所述待分类用户,包括***所有的注册用户,或***活跃用户(即活跃度值达到预设活跃度值的用户)。
通常用户在注册时,会输入基本信息,客户端把这些用户基本信息、以及后续用户的文件查阅情况,包括所查阅的文件、评分、下载情况等进行记录并保存到数据库,根据用户的历史阅读情况可得出用户常看的文件类型。
所述的训练样本数据是根据用户群历史的文件浏览信息获得,每个用户群有各自对应的训练样本数据和BP神经网络,并且对各自对应的BP神经网络的训练也是各自独立的;所述训练好的BP神经网络模型,当隐含层神经元的数量在训练中不调整时,是指经所有的训练样本数据训练完毕,得到的BP神经网络模型;当隐含层神经元的数量在训练中调整时,是指经训练后,所获得的误差最小的BP神经网络模型。
所述预测样本数据是根据待推荐的文件得到,其所对应的文件,包括文本文件,和/或音频文件,和/或视频文件。将预测样本数据输入到每个用户群各自对应的BP神经网络模型,得到的输出量反映了每个用户群对待推荐的文件的偏好。
所述预设阈值根据BP神经网络模型的输出量的可能范围来定,比如,如果BP神经网络模型的输出量的范围在0-100之间,则可将预设阈值设为80,或以上;文件推荐模块50也可以用于选择所述输出量最大的BP神经网络模型所对应的用户群,向其推荐所述预测样本数据对应的文件。
优选地,所述数据获取模块20包括:
获取子模块21,用于分别获取每个用户群对应的所有文件浏览信息,以及,每个所述文件浏览信息对应的下载量;
预处理子模块22,用于根据所述文件浏览信息和预设特征属性,分析得到每个文件浏览信息对应的文件特征向量;以及,用于将同一个用户群对应的所有文件浏览信息各自对应的文件特征向量组成所述用户群的训练样本集;以及,用于根据每个文件浏览信息对应的下载量,得到每个所述下载量对应的评分值;以及,用于将同一个用户群对应的所有下载量各自对应的评分值组成所述用户群的评分集;以及,将同一个用户群对应的所述训练样本集和所述评分集作为所述用户群的训练样本数据,从而得到不同的用户群的所述训练样本数据。
具体的,所述预设特征属性是从文件的特征属性中选取,参考例子与对应方法实施例中的举例相同,在此不再累述。
所述下载量对应的评分值可以根据下载量和预设函数计算得到,如Mi=f(Di),其中用户对文件i的评分定义为Mi,且文件i的下载量为Di,f()为预设函数;所述预设函数可以是线性函数,或对数函数,或其他,建议根据经验选取。
优选地,所述模型构建模块,进一步用于根据所述预设特征属性的数量,确定输入层神经元的数量;以及,根据所述评分值,确定输出层神经元的数量为1;以及,根据以下公式确定隐含层神经元的数量:
其中,n为输入层神经元的数量,m为输出层神经元的数量,a为1到10之间的常数;以及,
用于根据所述输入层神经元的数量、所述输出层神经元的数量和所述隐含层神经元的数量,分别建立每个用户群各自对应的BP神经网络。
优选地,所述文件特征向量为所述文件特征向量对应的用户群的BP神经网络的输入量;所述评分值为所述评分值对应的所述下载量对应的所述文件特征向量对应的用户群的BP神经网络的输出量。
具体的,所述根据公式确定的隐含层神经元的数量是一个范围,根据经验选取其中一个值,比如,以5个预设特征属性为例,BP神经网络的基本结构为:输入层神经元的数量为5,输出层神经元的数量为1,隐含层神经元的数量根据公式计算在3~12之间,凭经验定隐含层神经元的数量为5,BP神经网络结构如图5所示,其中F1-F5表示文件的5个特征属性,R表示输出量。
优选地,所述模型构建模块30包括:
设置子模块31,用于选择一个未训练好的BP神经网络模型的用户群;
训练子模块32,用于从所述用户群对应的训练样本数据随机选取一部分作为第一样本数据,剩余的作为第二样本数据;以及,将所述用户群对应的BP神经网络根据所述第一样本数据进行训练,得到所述用户群对应的参考BP神经网络模型;以及,将所述用户群对应的第二样本数据的训练样本集输入到所述用户群对应的参考BP神经网络模型中,分别获取参考BP神经网络模型对训练样本集所包含的每个文件特征向量所对应的输出值;
计算子模块33,用于根据各所述输出值、各所述输出值对应的所述文件特征向量对应的评分值,得到误差值;
判断子模块34,用于判断所述误差值是否小于预设误差值;若是,则将所述参考BP神经网络模型作为所述用户群对应的训练好的神经网络模型;若否,则更改隐含层神经元的数量;
所述判断子模块,进一步用于判断是否所有用户群都有各自对应的训练好的BP神经网络模型;
所述设置子模块,进一步用于选择另一个未训练好的BP神经网络模型的用户群。
具体的,以4个用户群、5个预设特征属性为例,根据预设特征属性的数量,可以得到每个用户群各自对应的BP神经网络的基本结构:输入层神经元的数量为5,输出层神经元的数量为1,隐含层神经元的数量根据公式计算在3~12之间,初始设隐含层神经元的数量为3;初始每个用户群各自对应的BP神经网络基本结构是相同的,接下来对每个用户群各自对应的BP神经网络进行训练。
首先选择一个用户群,从该用户群对应的训练样本数据选取一部分作为第一样本数据,第一样本数据所占的比例理论上可随意设置,但如果偏低,如30%,会影响所得到的BP神经网络性能,建议80%以上,通常训练的样本越多,得到的模型性能更佳;取第一样本数据进行训练,训练完后,得到参考BP神经网络模型;接着用第二样本数据检测参考BP神经网络模型的误差,所述误差,比如按如下公式计算:
其中k对应第k个用户群,Ek为第k个用户群的误差值,Mk为第k个用户群的第二样本数据的样本总数,rki为第k个用户群第i个训练样本所对应的文件特征向量输入到参考BP神经网络模型所得到的输出值,Rki为第k个用户群第i个训练样本所对应的文件特征向量所对应的评分値。
如果所述误差不小于预设误差值,则隐含层神经元的数量加1,重新开始训练;如此,直至参考BP神经网络的误差在预设误差值之内,或达到隐含层神经元数量的最大值;若全部遍历完,仍未找到误差在预设误差值之内的参考BP神经网络时,则选择误差最小时所对应的隐含层神经元数目作为最终的隐含层神经元数量。以上是针对一个用户群的处理过程,判断所有用户群是否遍历完,若无,则选择下一个用户群,进行上述类似处理。
隐含层神经元的数量的调整遍历,可以按照预设规则来选择隐含层神经元的数量,例如:也可以从所允许的最大值开始,初始隐含层神经元的数量设为最大值,按递减方式遍历。所述预设误差值,可根据BP神经网络的输出量的最大值来定,比如,百分制的评分値,最大取值为100,预设误差值可设为最大值的5%,这表明在预设误差值之内的BP神经网络模型的误差在最大值的5%之内。
在本发明的另一个实施例中,如图4所示,一种基于BP神经网络的文件推荐***,包括:
用户分类模块10,用于根据预设的分类条件对待分类的用户进行分类,得到不同的用户群;
数据获取模块20,与所述用户分类模块10电连接,所述数据获取模块20用于分别获取每个用户群各自对应的训练样本数据;
模型构建模块30,与所述用户分类模块10和所述数据获取模块20电连接,所述模型构建模块30用于分别建立每个用户群各自对应的BP神经网络,以及,用于根据每个用户群各自对应的训练样本数据,分别对所述用户群各自对应的BP神经网络进行训练,得到训练好的所述用户群各自对应的BP神经网络模型;
数据预测模块40,与所述模型构建模块30电连接,所述数据预测模块40用于将预测样本数据输入训练好的每个用户群各自对应的BP神经网络模型,分别得到每个用户群各自对应的BP神经网络模型对所述预测样本数据的输出量;
文件推荐模块50,与所述数据预测模块40电连接,所述文件推荐模块50用于选择所述输出量大于预设阈值的BP神经网络模型所对应的用户群,向其推荐所述预测样本数据对应的文件;
所述数据获取模块20包括:
获取子模块21,用于分别获取每个用户群对应的所有文件浏览信息,以及,每个所述文件浏览信息对应的下载量;
预处理子模块22,用于根据所述文件浏览信息和预设特征属性,分析得到每个文件浏览信息对应的文件特征向量;以及,用于将同一个用户群对应的所有文件浏览信息各自对应的文件特征向量组成所述用户群的训练样本集;以及,用于根据每个文件浏览信息对应的下载量,得到每个所述下载量对应的评分值;以及,用于将同一个用户群对应的所有下载量各自对应的评分值组成所述用户群的评分集;以及,将同一个用户群对应的所述训练样本集和所述评分集作为所述用户群的训练样本数据,从而得到不同的用户群的所述训练样本数据;
所述模型构建模块,进一步用于根据所述预设特征属性的数量,确定输入层神经元的数量;以及,根据所述评分值,确定输出层神经元的数量为1;以及,根据以下公式确定隐含层神经元的数量:
其中,n为输入层神经元的数量,m为输出层神经元的数量,a为1到10之间的常数;以及,
用于根据所述输入层神经元的数量、所述输出层神经元的数量和所述隐含层神经元的数量,分别建立每个用户群各自对应的BP神经网络;
所述文件特征向量为所述文件特征向量对应的用户群的BP神经网络的输入量;所述评分值为所述评分值对应的所述下载量对应的所述文件特征向量对应的用户群的BP神经网络的输出量;
所述模型构建模块30包括:
设置子模块31,用于选择一个未训练好的BP神经网络模型的用户群;
训练子模块32,用于从所述用户群对应的训练样本数据随机选取一部分作为第一样本数据,剩余的作为第二样本数据;以及,将所述用户群对应的BP神经网络根据所述第一样本数据进行训练,得到所述用户群对应的参考BP神经网络模型;以及,将所述用户群对应的第二样本数据的训练样本集输入到所述用户群对应的参考BP神经网络模型中,分别获取参考BP神经网络模型对训练样本集所包含的每个文件特征向量所对应的输出值;
计算子模块33,用于根据各所述输出值、各所述输出值对应的所述文件特征向量对应的评分值,得到误差值;
判断子模块34,用于判断所述误差值是否小于预设误差值;若是,则将所述参考BP神经网络模型作为所述用户群对应的训练好的神经网络模型;若否,则更改隐含层神经元的数量;
所述判断子模块,进一步用于判断是否所有用户群都有各自对应的训练好的BP神经网络模型;
所述设置子模块,进一步用于选择另一个未训练好的BP神经网络模型的用户群。
具体的,假设预设的分类条件为客户的年龄层次,按此将所有注册用户分为小于20岁的、介于20-50岁之间的、50岁以上的三个用户群,根据每个用户群对应的所有文件浏览信息,得到每个用户群所浏览文件根据特征属性所得到的文件特征向量组成的训练样本集和根据每个文件的下载量得到的评分集;
以5个预设特征属性为例,根据预设特征属性的数量,可以得到每个用户群各自对应的BP神经网络的基本结构:输入层神经元的数量为5,输出层神经元的数量为1,隐含层神经元的数量根据公式计算在3~12之间,初始设隐含层神经元的数量为3;初始每个用户群各自对应的BP神经网络基本结构是相同的,接下来对每个用户群各自对应的BP神经网络进行训练。
首先选择一个用户群,从该用户群对应的训练样本数据选取一部分作为第一样本数据,第一样本数据所占的比例理论上可随意设置,但如果偏低,如30%,会影响所得到的BP神经网络性能,建议80%以上,通常训练的样本越多,得到的模型性能更佳;取第一样本数据进行训练,训练完后,得到参考BP神经网络模型;接着用第二样本数据检测参考BP神经网络模型的误差,所述误差,比如按如下公式计算:
其中k对应第k个用户群,Ek为第k个用户群的误差值,Mk为第k个用户群的第二样本数据的样本总数,rki为第k个用户群第i个训练样本所对应的文件特征向量输入到参考BP神经网络模型所得到的输出值,Rki为第k个用户群第i个训练样本所对应的文件特征向量所对应的评分値。
如果所述误差不小于预设误差值,则隐含层神经元的数量加1,重新开始训练;如此,直至参考BP神经网络的误差在预设误差值之内,或达到隐含层神经元数量的最大值;若全部遍历完,仍未找到误差在预设误差值之内的参考BP神经网络时,则选择误差最小时所对应的隐含层神经元数目作为最终的隐含层神经元数量。以上是针对一个用户群的处理过程,判断所有用户群是否遍历完,若无,则选择下一个用户群,进行上述类似处理。
隐含层神经元的数量的调整遍历,也可以从所允许的最大值开始,初始隐含层神经元的数量设为最大值,按递减方式遍历。所述预设误差值,可根据BP神经网络的输出量的最大值来定,比如,百分制的评分値,最大取值为100,预设误差值可设为最大值的5%,这表明在预设误差值之内的BP神经网络模型的误差在最大值的5%之内。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。