一种基于卷积神经网络的图书采购推荐方法及装置与流程

文档序号:20684519发布日期:2020-05-08 18:42阅读:145来源:国知局
一种基于卷积神经网络的图书采购推荐方法及装置与流程

本发明涉及深度学习中自然语言处理技术领域,具体涉及一种基于卷积神经网络的图书采购推荐方法及装置。



背景技术:

图书采访在图书资讯学中,是指图书书籍的采购与访视,是图书馆征集图书的工作,其中“采”是指通过各种渠道进行广泛采集,“访”是指广泛系统地进行研究调查。

现有技术的图书采购方法,一般是通过读者调查采集图书信息,然后结合学科特点进行图书信息的分析整理,再制定图书采购计划,进而进行图书采购。

本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:

现有技术中的方法,通过人工的方式调查采集图书信息,一方面采集效率不高,并且依赖人工的经验进行采集,容易忽略一些信息,导致采集的信息不全面,进而影响制定采购计划的准确性。

由此可知,现有技术中的方法存在效率和准确性不高的技术问题。



技术实现要素:

本发明旨在利用深度学习的方法协助图书馆工作人员筛选图书,并达到提高推荐效率和准确性的目的。

为了实现上述目的,本发明提供了一种基于卷积神经网络的图书采购推荐方法,包括:

步骤s1:获取历史书单数据和历史订单数据;

步骤s2:将历史书单数据与历史订单数据进行匹配,根据匹配结果将历史书单数据中的图书划分为购买和未购买两个类别,作为历史书单数据的标签;

步骤s3:从带有标签的历史书单数据划分出训练集;

步骤s4:将训练集中包含的信息转化为向量的表示形式;

步骤s5:利用训练集对应的向量对预先构建的神经网络模型进行训练;

步骤s6:将待处理图书的信息转换为向量后,传入训练好的神经网络模型,得到待处理图书的采购推荐结果。

在一种实施方式中,步骤s2具体包括:

步骤s2.1:将历史书单数据与历史订单数据进行匹配;

步骤s2.2:如果历史书单数据中包含的图书出现在历史订单数据中,则将历史书单数据中包含图书的类别标记为购买,否则,将历史书单数据中包含图书的类别标记为未够买,得到带有标签的历史书单数据。

在一种实施方式中,步骤s4具体包括:

步骤s4.1:将训练集中包含的信息与预先构建的字典库进行匹配,其中,预先构建的字典库中包含汉字以及其对应的词向量表示;

步骤s4.2:根据匹配情况,将训练集中包含的信息转换为对应的词向量表示。

在一种实施方式中,字典库的构建方法为:

统计历史书单数据中汉字的出现次数;

删除出现次数少于阈值的汉字以及作为停用词的汉字,将剩余的汉字构建字典库。

在一种实施方式中,与汉字对应的词向量表示的构建方法为:

将字典库的大小限制为包含预设数量的汉字;

采用tensorflow库中的初始化方法生成每个汉字对应的词向量。

在一种实施方式中,训练集中包含的信息为文本序列,步骤s4.2具体包括:

将文本序列设置为预设长度;

将文本序列中出现的每个汉字转化为字典库中对应的词向量表示,生成一个词向量矩阵。

在一种实施方式中,训练好的神经网络模型包括一个输入层、至少一个卷积层、一个汇聚层和一个全连接层,在卷积层中设置不同大小的卷积核,步骤s6具体包括:

步骤s6.1:通过输入层对转换后的向量进行处理后送入卷积层;

步骤s6.2:通过卷积层中设置的不同大小的卷积核提取不同长度的特征图;

步骤s6.3:通过汇聚层将不同长度的特征图进行降维处理,得到处理后的特征图;

步骤s6.4:通过全连接层对处理后的特征图进行处理,得到概率值;

步骤s6.5:通过输出层将概率值进行输出;

步骤s6.6:根据输出的概率值大小,获得图书购买推荐结果。

基于同样的发明构思,本发明第二方面提供了一种基于卷积神经网络的图书采购推荐装置,包括:

数据获取模块,用于获取历史书单数据和历史订单数据;

数据匹配模块,用于将历史书单数据与历史订单数据进行匹配,根据匹配结果将历史书单数据的图书划分为购买和未购买两个类别,作为历史书单数据的标签;

数据划分模块,用于从带有标签的历史书单数据划分出训练集;

数据转化模块,用于将训练集中包含的信息转化为向量的表示形式;

训练模块,用于利用训练集对应的向量对预先构建的神经网络模型进行训练;

推荐模块,用于将待处理图书的信息转换为向量后,传入训练好的神经网络模型,得到待处理图书的采购推荐结果。

基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。

基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

本发明提供的一种基于卷积神经网络的图书采购推荐方法,首先,获取历史书单数据和历史订单数据;然后将历史书单数据与历史订单数据进行匹配,根据匹配结果将历史书单数据中的图书划分为购买和未购买两个类别;接着从带有标签的历史书单数据划分出训练集;接下来将训练集中包含的信息转化为向量的表示形式;再利用训练集对应的向量对预先构建的神经网络模型进行训练;最后将待处理图书的信息转换为向量后,传入训练好的神经网络模型,得到待处理图书的采购推荐结果。

本发明将深度学习技术引入到图书采访技术中,提供了一种基于卷积神经网络的图书采购推荐方法,首先根据历史书单数据与历史订单数据的匹配情况,对历史书单数据划分标签,并作为训练集用于后续模型的训练,并将训练集中包含的文本信息转化为向量的表示形式,然后利用训练集对应的向量对预先构建的神经网络模型进行训练;最后则可以利用训练好的神经网络模型进行采购推荐,一方面,本发明提供的方法中通过神经网络模型来进行采购推荐,可以提高效率,另一方面,由于模型的训练集是根据历史书单数据与历史订单数据匹配后选取出的,通过训练集的训练,可以得到效果较好的神经网络模型,从而可以提高推荐的准确性。

进一步地,将文本序列设置为预设长度,并将文本序列中出现的每个汉字转化为字典库中对应的词向量表示,生成一个词向量矩阵,从而进行训练,即用一段有限长度的汉字来表示一本图书的文本特征并对其中所有汉字进行汉字-向量的转换,使得模型能够处理汉字信息。

进一步地,对每一本图书的向量表示用不同的卷积核提取出不同长度的特征映射,使得提取的特征更加多样化,并通过汇聚层对这些特征映射进行降维处理,然后将其拼接到一起最后传入全连接层进行处理,最终得到推荐概率,从而可以进一步提高模型的性能,提高准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种基于卷积神经网络的图书采购推荐方法的流程示意图;

图2为本发明实施例中图书采访推荐的技术框架图;

图3为本发明实施例中数据处理流程图;

图4为本发明实施例中所使用的模型框架示意图;

图5为本发明实施例中一种基于卷积神经网络的图书采购推荐装置的结构框图;

图6为本发明实施例中一种计算机可读存储介质的结构框图;

图7为本发明实施例中一种计算机设备的结构框图。

具体实施方式

本申请人发明人通过大量的研究与实践发现:现有的图书采访推荐一般通过人工来完成,无法保证效率和准确性。为了解决上述问题,本发明将深度学习的思想引入图书采访推荐方法中,提出了一种基于卷积神经网络的图书购买推荐方法。具体应用场景为高校馆图书订购预测,即主要针对专业需求进行采购图书的图书馆,例如武汉大学图书馆;区别于公共馆,主要针对知识普及需求进行采购的图书馆,比如湖北省图书馆等。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本实施例提供了一种基于卷积神经网络的图书采购推荐方法,请参见图1,该方法包括:

步骤s1:获取历史书单数据和历史订单数据。

具体来说,历史书单数据是指所有图书供应商提供的书单信息,历史订单数据是指图书馆购买过的书单信息。

步骤s2:将历史书单数据与历史订单数据进行匹配,根据匹配结果将历史书单数据划的图书分为购买和未购买两个类别,作为历史书单数据的标签。

具体来说,步骤s2是对历史书单数据中的图书打标签,便于后续进行模型的训练。

在一种实施方式中,步骤s2具体包括:

步骤s2.1:将历史书单数据与历史订单数据进行匹配;

步骤s2.2:如果历史书单数据中包含的图书出现在历史订单数据中,则将历史书单数据中包含图书的类别标记为购买,否则,将历史书单数据中包含图书的类别标记为未够买,得到带有标签的历史书单数据。

具体来说,请参见图3,示出了数据处理的具体实现流程,原始书单从历史书单数据中选取,原始订单从历史订单数据选取,分别进行数据清洗后,得到book.json文件和order.json文件(.json文件是一种文件格式,用以存储相应的信息)。进行数据匹配后,则得到历史书单数据中包含的图书的标签,即购买或者未购买,得到的带标签的历史书单数据label.json。

步骤s3:从带有标签的历史书单数据划分出训练集。

具体来说,可以根据标签的类别,对数据集进行划分,标签为购买的作为正样本,未购买的作为负样本,再根据预设比例划分为训练集、验证集和测试集。

其中,测试集可以用于调整模型的超参数和用于对模型的能力进行初步评估,验证集用来评估模最终模型的泛化能力。

步骤s4:将训练集中包含的信息转化为向量的表示形式。

具体来说,为了更好地进行训练,需要将训练集包含的信息转化为向量的表示形式。

在一种实施方式中,步骤s4具体包括:

步骤s4.1:将训练集中包含的信息与预先构建的字典库进行匹配,其中,预先构建的字典库中包含汉字以及其对应的词向量表示;

步骤s4.2:根据匹配情况,将训练集中包含的信息转换为对应的词向量表示。

具体来说,训练集中包含的信息即为文本序列,将汉字作为基本单位,将文本序列与字典库进行匹配,然后得到对应的词向量。字典库可以由一些常用的汉字构成,汉字对应的词向量可以通过现有的工具生成。

在一种实施方式中,字典库的构建方法为:

统计历史书单数据中汉字的出现次数;

删除出现次数少于阈值的汉字以及作为停用词的汉字,将剩余的汉字构建字典库。

具体来说,阈值可以根据实际情况进行设置,例如设置为5次、8次、10次等等,删除一些不常用的汉字以及一些常用做停用词“的”,“了”等,从而剩余的汉字构成字典库。

在一种实施方式中,与汉字对应的词向量表示的构建方法为:

将字典库的大小限制为包含预设数量的汉字;

采用tensorflow库中的初始化方法生成每个汉字对应的词向量。

具体来说,tensorflow是一个基于数据流编程(dataflowprogramming)的符号数学系统,可以应用于各类机器学习(machinelearning)算法的编程实现,本实施方式中,利用tensorflow库中的glorot_normal_intializer()初始化方法生成汉字的词向量,词向量维度设置为64。

在一种实施方式中,训练集中包含的信息为文本序列,步骤s4.2具体包括:

将文本序列设置为预设长度;

将文本序列中出现的每个汉字转化为字典库中对应的词向量表示,生成一个词向量矩阵。

具体来说,预设长度可以根据实际情况进行确定,例如180、200、230等等。当预设长度为200时,则当实际文本序列长度不足200时,则进行补0填充,若实际序列长度超出则把超出的部分截断,最终生成一个200x64的词向量矩阵。本发明通过利用一段有限长度的汉字来表示一本图书的文本特征并对其中所有汉字进行汉字-向量的转换,使得模型能够处理汉字信息。

步骤s5:利用训练集对应的向量对预先构建的神经网络模型进行训练。

步骤s6:将待处理图书的信息转换为向量后,传入训练好的神经网络模型,得到待处理图书的采购推荐结果。

具体来说,待处理图书的信息即待推荐的图书,例如书名等等。

请参见图2,为本发明提供的图书推荐的整体技术框架图,整体包括模型的离线训练以及图书在线推荐两部分。其中,步骤s1~s5对应离线训练部分,步骤s6对应在线推荐部分,cnn-book为本发明采用的神经网络模型的名称。通过神经网络模型的处理,最终可以得到图书的购买推荐概率。

在一种实施方式中,训练好的神经网络模型包括一个输入层、至少一个卷积层、一个汇聚层和一个全连接层,在卷积层中设置不同大小的卷积核,步骤s6具体包括:

步骤s6.1:通过输入层对转换后的向量进行处理后送入卷积层;

步骤s6.2:通过卷积层中设置的不同大小的卷积核提取不同长度的特征图;

步骤s6.3:通过汇聚层将不同长度的特征图进行降维处理,得到处理后的特征图;

步骤s6.4:通过全连接层对处理后的特征图进行处理,得到概率值;

步骤s6.5:通过输出层将概率值进行输出;

步骤s6.6:根据输出的概率值大小,获得图书购买推荐结果。

具体来说,请参见图4,为本发明实施例中所使用的模型框架示意图,其中,最大池化层即汇聚层。

输入层,对图书数据按照7:3的比例随机划分成训练集和测试集,对训练集传入模型中进行训练。

卷积层,至少一层,在卷积层中设置四种不同尺寸的卷积核,其尺寸分别为2,3,4,5。

汇聚层,对前一层提取的不同长度的特征图进行高度提纯,即对前一层提取到的不同长度特征图进行降维处理;

全连接层,对前一层提取的四种特征图拼接之后进行传入全连接层进行拟合,通过softmax函数输出每一本图书的购买概率。

输出层,最终输出图书的购买概率。

通过本发明的方法,只需要将图书书单传入模型,模型会自动输出每一本图书的推荐购买概率。可以大大缓解图书馆工作人员的工作压力,不需要再人工一本一本图书的筛选,也提高了效率。

下面通过一个具体示例,对本发明提供的图书购买推荐方法进行详细介绍。

本示例中所用到的数据集是武汉大学图书馆近几年的图书采购数据,包括两个部分,第一部分是各个书商提供的书单,第二个部分是武汉大学图书馆采购图书的订单。每个书商提供的图书信息格式大同小异,书籍信息均以excel表格形式存储,本示例选取了大多数书商都遵循的信息格式作为标准。

整个实验流程框架如附图2所示,数据处理过程如附图3所示,每一本书的属性信息,同时也是excel书单首行属性依次为isbn、装帧、价格、文种,正题名、副题名、分辑号、分辑题名、第一责任者,第二责任者、版本、出版地、出版社、出版年、页码、尺寸、丛书名、附注、内容介绍、读者对象、主题词、主题复分、形式复分、地理复分、中图分类、版次、第一责任者、第一责任方式、第二责任者、第二责任方式、第一团体责任者、第一团体责任方式、第二团体责任者、第二团体责任方式、编目机构、编目日期、目录期号,共37项属性。

具体实施过程中,本发明将数据集按照7:1.5:1.5的比例划分为训练集,验证集和测试集。用训练集中找到最佳的参数,然后将参数带到测试集中计算loss(损失),选取使得测试集中loss最小的模型参数,最后将选出的模型在验证集上测试模型的泛化能力。实验的环境配置如表1所示:

表1

模型结构如图4所示,卷积神经网络的输入层是由一个文本矩阵(关于模型的各种参数定义见表2参数定义)理好的2016年文本数据集上,对所有书籍的文本表示做了字数统计处理,经过统计计算,文本信息的平均长度为165.7。因此将输入文本信息的长度seq_length设定为200,当输入的文本信息长度超过200时,对超过200的部分进行截断,当输入的文本信息长度不足200时,用0进行填充,其好处是,数值为0的位置,在经过卷积层处理之后仍然是0,再经过汇聚层的时候,不会影响max_pooling操作,因此不会影响最终的结果。embedding_dim为每一个字的维度,设置为64,输入的文本矩阵为200x64。为了加快训练速度,每一批次输入64组数据,设置batch_size=64,为了防止过拟合影响模型的泛化能力,在输入数据之前需要将数据随机打乱。

表2参数定义

卷积层的作用是提取一个局部区域的特征,在该模型中是提取连续n个字组成的文本信息的特征,不同的卷积核相当于不同的特征提取器。

本实施方式中,卷积层中设置了四个不同尺寸大小卷积核,尺寸分别为2、3、4、5,例如当卷积尺寸为5时,即对每5个字做一次卷积,提取一次特征值。使用不同尺寸的卷积核进行卷积操作可以提取到不同长度文本信息的特征。卷积核的初始化使用glorot_uniform_initializer初始化方式。

具体实现过程为:对输入的数据做一维卷积,第x个卷积核的高度为kernel_size_x,宽度设置为与词向量同等宽度embedding_dim,步长设置为1,卷积核的高度意味着每一次对大小为kernel_size的窗口做一次特征提取,一个卷积核就在一个书籍的特征表示句子上滑动,最终会生成[seq_length-kernel_size+1,1]的二维向量,卷积核的数目为num_filters,这样操作下来就会生成[num_filters,seq_length-kernel_size+1,1]的三维向量,也就是卷积核提取到的信息。

汇聚层的主要作用是对输入的特征映射进行压缩,一方面使得特征映射(featuremap)变小,简化网络计算复杂度,另一方面可以进行特征压缩,提取出主要的特征。

由于不同尺寸大小的卷积核获取到的特征映射大小也不一样,特征映射的长度计算举例如下,设置参数seq_length=200,kernel_size_1=2,那么经过卷积之后,特征映射的长度为200-2+1=199,所以卷积核尺寸不同,会计算出不同长度的特征映射,为了使每个尺寸的卷积核所提取的特征占有相同的权重,并且减少模型中的参数,本实施方式在汇聚层使用了max-pooling,选取特征映射中的最大值。这个最大值,既代表一个卷积核提取到的特征,又可以解决因卷积核大小不同所提取到的特征向量大小不同的问题。

全连接层(fullyconnectedlayers,简称fc)在整个卷积神经网络模型中起到“分类器的作用”。前面所使用的卷积层、汇聚层等操作是将原始文本数据映射到隐层特征空间,全连接层则是将前面几层学到的分布式特征表示映射到样本标记空间。

经过上一层汇聚层的高度特征提取后,每个尺寸的卷积核输出了同样大小的特征值,将其拼接到一起,组成一个固定长度的向量,传入到全连接层当中。为了防止过拟合,在模型中使用dropout函数,在深度学习领域中,每次训练的时候,让一半的特征特征检测器(featuredetector)停止工作,这样可以提高模型的泛化能力。

全连接输出的部分使用softmax函数处理,这个函数的作用可以让把全连接层输出的实数映射到(0,1)范围内,且输出的两个值累加起来和为1,即为在标签上的概率输出。当在某个标签上的概率大于0.5时,判定其属于该类,例如在购买标签上的概率大于0.5时,则推荐结果为购买,否则为不购买。

总体来说,本发明提供的方法在数据预处理阶段,利用一段有限长度的汉字来表示一本图书的文本特征并对其中所有汉字进行汉字-向量的转换,使得模型能够处理汉字信息。然后对每一本图书的向量表示用不同的卷积核提取出不同长度的特征映射,使得提取的特征更加多样化,汇聚层对这些特征映射进行高度提纯,然后将其拼接到一起最后传入全连接层进行训练。

采用传统方法如随机森林,支持向量机等方法进行实验,准确度为70%,采用本发明方法在武汉大学图书馆提供的数据集上进行了实际验证,实验结果表明本发明提出的方法在图书采访任务上可以达到85%的准确度。

实施例二

基于同样的发明构思,本实施例提供了一种基于卷积神经网络的图书采购推荐装置,请参见图5,该装置包括:

数据获取模块201,用于获取历史书单数据和历史订单数据;

数据匹配模块202,用于将历史书单数据与历史订单数据进行匹配,根据匹配结果将历史书单数据中的图书划分为购买和未购买两个类别,作为历史书单数据的标签;

数据划分模块203,用于从带有标签的历史书单数据划分出训练集;

数据转化模块204,用于将训练集中包含的信息转化为向量的表示形式;

训练模块205,用于利用训练集对应的向量对预先构建的神经网络模型进行训练;

推荐模块206,用于将待处理图书的信息转换为向量后,传入训练好的神经网络模型,得到待处理图书的采购推荐结果。

由于本发明实施例二所介绍的基于卷积神经网络的图书采购推荐装置,为基于本发明实施例一中基于卷积神经网络的图书采购推荐方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体组曾及其变形,故而在此不再赘述。凡是基于本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。

实施例三

基于同样的发明构思,本申请还提供了一种计算机可读存储介质300,请参见图6,其上存储有计算机程序311,该程序被执行时实现如实施例一中所述的方法。

由于本发明实施例三所介绍的计算机可读存储介质为实施本发明实施例一中基于卷积神经网络的图书采购推荐方法所采用的可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。

实施例四

基于同样的发明构思,本申请还提供了一种计算机设备,请参见图7,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如如实施例一所述的方法。

由于本发明实施例四所介绍的计算机设备为实施本发明实施例一中基于卷积神经网络的图书采购推荐方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一中方法所采用的计算机设备都属于本发明所欲保护的范围。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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