一种基于内容相似度实时计算的网络数据分类推荐系统的制作方法

文档序号:16783737发布日期:2019-02-01 19:18阅读:142来源:国知局
一种基于内容相似度实时计算的网络数据分类推荐系统的制作方法

本发明属于数据挖掘技术领域,特别涉及一种基于内容相似度实时计算的网络数据分类推荐系统。



背景技术:

互联网的迅速发展,是当今社会最显而易见的大趋势之一。在这个巨大的科技浪潮之下,越来越多的用户将自己的数据(图片、博文等)分享到互联网上同全世界的用户交流。庞大的用户基数产生了超大规模的数据,为了帮助用户归纳自己的数据和检索别人的数据,通常会给用户新提交的一个或一组数据打上一个或多个类别特征标签。因此,如何快速有效的为网络数据进行分类推荐,成为了各大互联网公司和高校所关注的问题。

常见的推荐方法,可以根据推荐依据的不同分为基于内容的推荐模式和协同过滤的推荐模式。其中,协同过滤的推荐模式是利用共同经验值群体的喜好来推荐用户的感兴趣信息,常涉及冷启动问题。在网络数据分类推荐问题中,协同过滤模式更关注数据提交的用户本身,而对网络数据本身的内容不够敏感,难以获得令人满意的准确率。而基于内容的推荐模式则是通过计算内容与已知类别之间的相似度来进行推荐,使得类别推荐与数据本身更加具有相关性。但是,常常因为计算量过大,而难以做到实时响应,影响了用户体验。



技术实现要素:

为了克服上述现有技术的缺点,本发明的目的在于提供一种基于内容相似度实时计算的网络数据分类推荐系统,利用一种快速计算待测目标集合和类别特征标签内已有数据的jaccard相似度的算法作为核心模块,将每个类别抽象成一个特征标签,使得两个集合的jaccard相似度计算,简化为两个特征标签jaccard相似度的计算,减少了冗余计算,大大的提升了系统的响应速度。同时,为了提高算法推荐的精度,借鉴了stacking算法的思想,设置多个特征提取算法子模块作为初级学习器,选择深度神经网络作为一个次级学习习器。先从初始数据集训练出初级学习器,然后“生成”一个新的数据集用于训练次级学习器,在这个新的数据集中,初级学习器的输出被当作样例输入特征,而初始样本的标记仍被当作样例标记,使得本系统可以不断地根据用户的反馈对自身进行优化,提高了系统推荐的准确性。

为了实现上述目的,本发明采用的技术方案是:

一种基于内容相似度实时计算的网络数据分类推荐系统,包括:

系统入口模块,提供一个可以被调用的网络接口,主要实现请求确认,身份验证,通信通道建立和推荐类别结果返回的功能;

特征提取模块,根据不同的输入数据,即待测目标集合,使用多种特征提取算法对待测目标集合中的每个待测目标进行特征提取,构成特征矩阵;

特征相似度计算模块,根据特征矩阵计算待测目标集合的特征标签矩阵,再计算待测目标集合与类别特征标签库中每个类别的特征标签之间的jaccard相似度,得到综合得分矩阵;

类别推荐模块,综合每一类特征下各个类别相似度的打分,给出待测目标集合同各个类别的相似度的最终得分向量,并将排名靠前的几个推荐给用户;

特征标签库更新模块,当用户确定最后推荐类别后,将对应特征标签库的该类别的特征标签进行更新。

所述待测目标集合中包含有多个待测目标,每个目标为一张图片或一段文字,且每个待测目标集合只包含图片待测目标或只包含文字待测目标。

所述系统入口模块中,当用户请求被系统接收到后,确立用户与系统之间的通信通道,接收请求及待测目标集合并检测其合法性,将合法的请求及数据传输给特征提取模块。即,通过一个可调用的网络接口去获取用的类别推荐请求,检测请求的合法性,并在合法的请求发起者之间建立系统与用户之间的数据传输通道。

所述特征提取模块分为多个特征提取算法子模块,每一个子模块对应一种特征提取算法,每一个子模块均依照相同顺序对待测目标集合中的每一个待测目标进行特征提取,并将得到的特征向量按照相同的标号顺序构成特征矩阵,即各个特征提取算法子模块分别生成对应的特征矩阵。

所述特征提取算法可以为hog特征提取算法、lbp特征提取算法或haar特征提取算法等。

所述特征相似度计算模块将每一个特征矩阵生成为一个特征标签矩阵,该特征标签矩阵的大小与特征矩阵中特征向量的个数无关,能够在固定时间内对比含有任意多个待测目标的两个集合的相似度;然后将待测目标集合的特征标签与相应特征算法的类别特征标签库中每个类别特征标签进行比较,计算jaccard相似度,生成该特征提取算法下的类别得分向量,得到综合得分矩阵,即排列成以jaccard相似度为度量指标的类别归属可能性评分矩阵。

所述类别推荐模块将使用深度神经网络,该神经网络输入是综合得分矩阵,得到一个综合各个特征提取算法得到的待测目标类别归属可能性评分向量,以找打分从高到低排序后,输出推荐类别,输出是最终得分向量。

所述特征标签库更新模块根据用户最终选择的分类,根据不同算法提取到的特征标签去更新对应类别特征标签库的对应类别的标签信息,并将其作为真值训练类别推荐模块的神经网络。即,根据用户最终选择的待测目标集合所属类别去更新每个特征提取算法的特征标签库中对应类别的特征标签矩阵,并且将此条信息加入深度神经网络的训练集合中。

与现有技术相比,本发明的有益效果是:

1、使用了一种原创的可以快速准确计算任意两集合内元素jaccard相似度的算法。

2、使用了机器学习的思想,使得系统推荐的准确性可以持续提高。

3、借鉴了stacking算法的思想——使用了多种特征提取算法作为初级学习器,使用深度神经网络作为次级学习器,并将深度学习网络的结果作为最终推荐依据。

综上,本系统可以更加快速、有效的进行网络数据的分类推荐,大大加快了系统的响应速度;同时使用了机器学习的方法,使得整个系统可以随着实际生产环境和用户反馈进行学习,从而提高推荐的正确性。

附图说明

图1为本发明的系统整体结构图。

图2为本发明的系统入口模块流程图。

图3为本发明的特征提取模块流程图。

图4为本发明的特征相似度计算模块流程图。

图5为本发明的类别推荐模块流程图。

图6为本发明的特征标签库更新模块流程图。

具体实施方式

为了让本发明实施的目的、技术方案和优点更佳清楚,下边结合附图和实例详细说明本发明的实施方式。

如图1所示,本发明由五个子系统组成,分别是系统入口模块,特征提取模块,特征相似度计算模块,类别推荐模块,特征标签库更新模块。系统的输入数据为待测目标集合,集合中包含有多个待测目标,每个目标为一张图片或一段文字,同时要求每个待测目标集合只包含图片待测目标或只包含文字待测目标。

首先,系统入口模块接收到类别推荐请求和待检测目标集合,确认请求信息无误后,将数据传递给特征提取模块。特征提取模块包含多个特征提取子模块,每个子模块都有对应的特征提取算法。在每一个特征提取子模块中,都会依照相同的顺序对待测目标集合中的每一个待测目标进行特征提取,并将得到的特征向量按照相同的标号顺序构成特征矩阵。

接着,特征相似度计算模块会将每一个特征矩阵生成一个特征标签矩阵,并将其和类别特征标签库的类别特征标签进行相似度计算,生成一个相似度矩阵。再接着,类别推荐模块会通过深度神经网络将相似度矩阵拟合成一个最终得分向量推荐给用户。

最后,更新模块根据用户的反馈更新系统的各项参数。

本发明各个子系统的详细介绍如下:

1、系统入口模块

主要实现相应网络中对于类别推荐的请求,建立推荐系统和用户之间的通信信道,再接收到请求后检查请求的合法性——包括请求者身份的合法性和请求内容的合法性,然后将合法的请求提交给特征提取模块。

即:1.接收查询请求;2.检测请求的合法性;3.将合法的请求转给。

具体的,参考图2,系统入口模块对用户请求信息的处理过程如下:

系统入口模块提供一个可以被调用的api接口,当用户调用这个api接口的时候,需要同时提供给系统关于这次请求的申请用户、待测目标集合和推荐数目三个信息。当系统接收到这个api调用后,会首先判断申请用户的身份信息是否合法,当判断信息无误后,建立一条专用的信道和用户作为通信手段,然后开始接收待测目标集合信息;当接收完待测信息后,系统会判断待测结合的合法性——比如:是否含有不允许的文件类型;是否有多类型数据混杂的情况等。当确定待测结合合法后,系统就会将申请传递给特征提取模块。

2、特征提取模块

主要使用多个特征提取子模块,分别对待测目标集合进行特征提取,生成各自的特征矩阵。

具体的,参考图3,特征提取模块对待测目标结合的特征提取过程如下:

首先,特征提取模块接收到一个待测目标集合o,待测目标集合中存在n个待测目标oi(i=1,2,...,n)。选取k种适用于该待测目标集合类型的特征提取算法γx(x=1,2,..,k),分别构成特征提取模块的k个特征提取子模块。

接着,在由算法γx所构成的特征提取子模块中,将会依次从待测目标集合提取待测目标oi,然后求得该目标的特征向量

然后,将γx特征算法提取到的所有特征向量依次排列,构成特征矩阵ax:

最后,将特征矩阵ax传递给特征标签生成模块。

3、特征相似度计算模块

主要功能是利用每个特征提取子模块提取到的特征矩阵,借助一种原创的快速求两个目标集合的jaccard相似度的算法,得到在不同特征提取方法下待测目标集合与各个类别之间的jaccard相似度作为待测目标属于某个类别的可能性的度量值。

具体的,参考图4,本发明应用了一种原创的算法,输入是k个特征提取算法各自提取到的特征矩阵ax,通过原创的sigmasim算法:首先将其转换成一个特征标签;然后在γx特征算法的类别特征标签库sx中与每一个可能的类别特征标签sxj进行jaccard相似度计算,计算相似度打分向量最终将k种特征提取算法得到的k个相似度打分向量所构成的得分矩阵v传递给类别推荐模块。

其中,jaccard相似度是常用于比较有限样本集之间的相似性和差异性度量指标,定义为:

jaccard相似度越大,说明集合a与b越相似。

因此,上述快速计算两集合jaccard相似度的sigmasim算法详细描述如下:

以k个特征提取算法各自提取到的特征矩阵ax为输入,特征矩阵ax的每一列代表待测目标集合中的一个待测目标,该矩阵是由本系统的特征提取模块的特征提取子模块在规定的特征提取算法γx提取得到,该矩阵的每一列代表待测目标集合中的一个待测目标。

首先,调用一组预设好的minhash函数hj(j=1,2,...,h),对于每个hj都有一个对应的哈希函数hj,可以将任意整数映射到[0,hmax]之间的一个整数。同时,每个hj的输入为一个0-1向量,返回该向量所有非零维数的哈希值集合的最小值;

对于该组minhash函数,同生成类别特征标签库中每一类的类别特征标签时所使用的minhash函数相同;

接着,统计待测目标集合中各个待测目标在同一个minhash函数hj下,值的分布:

sx[j][hj(axi)]→sx[j][hj(axi)]+1

sx[j][u]含义为在特征提取算法x下,第j个minhash函数,值为u的元素个数;

最后,将该待测目标集合的类别特征标签同算法γk类别特征标签库中的所有类别特征标签进行jaccard相似度计算,生成以jaccard相似度为相似度量的得分向量其中不同特征提取算法γk得到的得分向量构成综合得分矩阵v:

其中sx为待测目标集合在特征提取算法x下的特征标签,为类别集合g在特征提取算法x下的特征标签,h为预设的minhash函数个数,n为待测目标集合内元素个数,ng为类别g现有元素个数,vg为待测目标集合与类别g的相似度得分。

4、类别推荐模块

主要功能是根据综合得分矩阵,通过一个神经网络,得到综合各个特征提取算法后该集合属于某类型的得分。

具体的,参考图5,本发明使用一个深度神经网络去进行最终得分的拟合,该网络输入为一个高维向量。

本发明使用了一个神经网络去通过综合得分矩阵得到一个考虑了各个特征下待测目标集合与类别相似度的客观得分。

5、特征标签库更新模块

主要功能是在用户确定了该集合所述类别后,更新特征标签库中对应类别的特征标签,并将其作为真值训练类别推荐模块的神经网络。

具体的,参考图6,当用户最终将该待测目标集合归为类别j,并告知特征标签库更新模块。

首先(更新标签库),会将每个特征标签库的j类型特征标签更新,公式如下:

sx[j][i]=sx[j][i]+sxnew[j][i]

然后,将待测目标集合作为新的样本训练神经,系统将会在空闲时刻对神经网络进行重新训练。例如,对于待测目标集合o,用户最终选择的类别为j。系统将会保存待测目标集合的得分矩阵v,目标输出为|v1,v2,...,vn|,其中vj=1,其他为0.

至此,系统对一个待测目标集合的类别推荐请求响应完成。

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