CN117971356A - 基于半监督学习的异构加速方法、装置、设备及存储介质 - Google Patents
基于半监督学习的异构加速方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117971356A CN117971356A CN202410376342.7A CN202410376342A CN117971356A CN 117971356 A CN117971356 A CN 117971356A CN 202410376342 A CN202410376342 A CN 202410376342A CN 117971356 A CN117971356 A CN 117971356A
- Authority
- CN
- China
- Prior art keywords
- semi
- deterministic finite
- finite automaton
- supervised learning
- state machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 230000001133 acceleration Effects 0.000 title claims abstract description 87
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 230000014509 gene expression Effects 0.000 claims abstract description 119
- 238000012549 training Methods 0.000 claims abstract description 36
- 238000004458 analytical method Methods 0.000 claims abstract description 18
- 238000001914 filtration Methods 0.000 claims abstract description 14
- 239000013598 vector Substances 0.000 claims description 87
- 239000011159 matrix material Substances 0.000 claims description 82
- 230000006870 function Effects 0.000 claims description 78
- 238000012512 characterization method Methods 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 21
- 238000010606 normalization Methods 0.000 claims description 12
- 238000013528 artificial neural network Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 238000012216 screening Methods 0.000 claims description 6
- 238000007667 floating Methods 0.000 claims description 5
- 238000005096 rolling process Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010219 correlation analysis Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000007476 Maximum Likelihood Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011897 real-time detection Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011981 development test Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于半监督学习的异构加速方法、装置、设备及存储介质,涉及计算机技术领域,通过本地硬件设备获取数据控制流,以及根据生成正则表达式生成非确定性有限自动机,非确定性有限自动机用于以对数据控制流进行分析和过滤;通过异构设备中基于半监督学习模型对所述非确定性有限自动机进行分析,在非确定性有限自动机成与其所表征的正则表达式成匹配关系时,将非确定性有限自动机配置到对应正则引擎上,对数据控制流进行并行分析和过滤;其中,半监督学习模型基于状态机无向图中已标记节点数据和未标记节点数据进行训练得到,能够更有效地验证非确定性有限自动机是否表示了正则规律,从而在FPGA上实现更加高效的正则表达式匹配。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于半监督学习的异构加速方法、装置、设备及存储介质。
背景技术
目前中央处理器(Central Processing Unit, CPU)以及图形处理器(graphicsprocessing unit, GPU)上的软件解决方案,随着表达式复杂性的增加,很快就会受到计算限制,因此,使用异构硬件加速器件来进行异构加速被广泛应用,一方面可将大数据工作负载卸载到硬件加速卡上进行,可以获得更高的加速比,另一方面也可以释放部分CPU或GPU压力。现场可编程门阵列(Field Programmable Gate Array ,FPGA)是一种常见异构加速卡,在数据中心被大量使用,FPGA可以将正则表达式直接编译为非确定性有限自动机(Nondeterministic Finite Automata,NFA),非确定性有限自动机遇到输入字符串时即时构建匹配路径,可以实现CPU或GPU中软件应用加速。但随着正则表达式复杂度的增加,相应的非确定性有限自动机可能会变得非常庞大和复杂,由于无法验证非确定性有限自动机是否准确表达了与正则表达式内容,高复杂度的正则表达式可能导致生成的非确定性有限自动机不合理,从而导致非确定性有限自动机处理大规模文本数据时匹配效率低,影响异构设备执行加速任务。
发明内容
本发明提供一种基于半监督学习的异构加速方法、装置、设备及存储介质,用以解决相关技术中,由于无法验证非确定性有限自动机是否准确表达了与正则表达式内容,高复杂度的正则表达式可能导致生成的非确定性有限自动机不合理,从而导致非确定性有限自动机处理大规模文本数据时匹配效率低,影响异构设备执行加速任务的缺陷。
本发明提供一种基于半监督学习的异构加速方法,包括:
通过本地硬件设备获取数据控制流,以及根据生成正则表达式生成非确定性有限自动机,所述非确定性有限自动机用于表征所述正则表达式,以对所述数据控制流进行分析和过滤;
通过异构设备接收所述数据控制流和所述非确定性有限自动机,基于半监督学习模型对所述非确定性有限自动机进行分析,在所述非确定性有限自动机成与其所表征的正则表达式成匹配关系时,将所述非确定性有限自动机配置到对应正则引擎上,对所述数据控制流进行并行分析和过滤;
其中,所述半监督学习模型基于状态机无向图中已标记节点数据和未标记节点数据进行训练得到。
根据本发明提供的一种基于半监督学习的异构加速方法,所述基于半监督学习模型对所述非确定性有限自动机进行分析,包括:
将所述非确定性有限自动机转换为状态机无向图结构;
将所述状态机无向图结构以及对应正样本标签和负样本标签输入半监督学习模型,获取所述非确定性有限自动机对应的表征向量;
计算每个表征向量之间的相似度,获取所述非确定性有限自动机中相关性最强的字符/字符串;
获取所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串;
在所述非确定性有限自动机中相关性最强的字符/字符串与所述正则表达式中相关性最强的字符/字符串一致时,判定所述非确定性有限自动机成与其所表征的正则表达式成匹配关系。
根据本发明提供的一种基于半监督学习的异构加速方法,所述将所述非确定性有限自动机转换为状态机无向图结构,包括:
获取所述非确定性有限自动机的状态机拓扑结构;
将所述状态机拓扑结构中一个节点到另一个节点的边作为状态机无向图中的一个边节点;
在状态机无向图中,若两个边节点在所述状态机拓扑结构中通过一个状态相连,则在所述两个边节点之间创建一个无向边;
基于多个边节点和多个无向边,使用图卷积神经网络学习生成状态机无向图结构。
根据本发明提供的一种基于半监督学习的异构加速方法,所述图卷积神经网络包括两个连续的图卷积层,第一图卷积层将所述多个边节点和多个无向边对应的输入特征映射到隐藏特征,所述第二图卷积层将所述隐藏特征映射到输出特征空间,得到状态机无向图结构。
根据本发明提供的一种基于半监督学习的异构加速方法,所述第一图卷积层用于基于所述多个边节点和多个无向边生成邻接矩阵,所述邻接矩阵包括邻近节点的信息,所述第一图卷积层的输出特征包括邻近节点的信息和自身节点的特征。
根据本发明提供的一种基于半监督学习的异构加速方法,所述第二图卷积层用于基于所述邻近节点的信息和自身节点的特征计算度矩阵,并使用所述度矩阵对邻接矩阵进行对称归一化处理;
将归一化后的邻接矩阵与输入特征矩阵相乘,获取所述多个边节点和多个无向边的局部结构特征以及节点间的依赖关系;
根据所述局部结构特征以及节点间的依赖关系构建状态机无向图结构。
根据本发明提供的一种基于半监督学习的异构加速方法,所述使用所述度矩阵对邻接矩阵进行对称归一化处理,包括:
对所述度矩阵进行取次幂操作,将取次幂结果与邻接矩阵进行左乘和右乘以得到对称归一化处理结果。
根据本发明提供的一种基于半监督学习的异构加速方法,所述状态机拓扑结构中每个节点到另一个节点的边上设置有标签,所述将所述非确定性有限自动机转换为状态机无向图结构,还包括:
若所述状态机拓扑结构中有多条边具有相同的标签并且连接到相同的状态,则将所述状态机拓扑结构中的多条边作为一个边节点。
根据本发明提供的一种基于半监督学习的异构加速方法,所述邻接矩阵中元素的数据类型为浮点数类型,所述邻接矩阵中矩阵的元素值为1.0表示节点之间存在连接,0.0表示节点之间无连接。
根据本发明提供的一种基于半监督学习的异构加速方法,所述基于所述多个边节点和多个无向边生成邻接矩阵前,还包括:
将所述状态机拓扑结构中的节点采用列表表示,所述列表用于表征各个节点与邻接矩阵中索引之间的映射关系。
根据本发明提供的一种基于半监督学习的异构加速方法,所述半监督学习模型的训练方法,包括:
获取训练数据集,所述训练数据集包括标记节点数据和未标记节点数据;
将所述训练数据集输入所述半监督学习模型,获取每个节点对应的表征向量;
基于损失函数计算所述表征向量的损失值;
基于所述损失值更新所述半监督学习模型的参数,直到满足训练结束条件,得到训练好的半监督学习模型;
其中,所述损失函数包括监督损失函数和无监督损失函数,所述监督损失函数为交叉熵损失函数,所述无监督损失函数为图拉普拉斯损失函数;
所述基于损失函数计算所述表征向量的损失值,包括:
使用交叉熵损失函数来计算所述标记节点数据对应的表征向量与真实标签之间的差异;
使用图拉普拉斯损失函数对所述未标记节点数据对应的表征向量,利用所述状态机无向图的结构信息,鼓励相邻节点具有相似的特征表示;
将所述监督损失函数和无监督损失函数输出结果进行融合,得到所述表征向量的损失值。
根据本发明提供的一种基于半监督学习的异构加速方法,所述将所述监督损失函数和无监督损失函数输出结果进行融合,包括:
获取超参数,将所述超参数与所述无监督损失函数输出结果的乘积与所述监督损失函数输出结果相加,得到所述表征向量的损失值。
根据本发明提供的一种基于半监督学习的异构加速方法,所述计算每个表征向量之间的相似度,获取所述非确定性有限自动机中相关性最强的字符/字符串,包括:
获取所述非确定性有限自动机中每个节点的表征向量之间的余弦相似度;
将所述余弦相似度最大的两个表征向量对应字符作为所述非确定性有限自动机中相关性最强的字符;
或,将所述余弦相似度大于预设阈值的多个表征向量对应字符作为所述非确定性有限自动机中相关性最强的字符串。
根据本发明提供的一种基于半监督学习的异构加速方法,所述正样本标签和负样本标签获取方法,包括:
根据历史正则表达式样本数据统计不同字符出现的频率;
将出现频率高于预设高频阈值的字符标记为高频词,作为正样本;
将出现频率低于预设低频阈值的字符标记为低频词,作为负样本。
根据本发明提供的一种基于半监督学习的异构加速方法,所述高频阈值与所述低频阈值相同,或,所述低频阈值小于所述高频阈值。
根据本发明提供的一种基于半监督学习的异构加速方法,所述获取所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串,包括:
计算所述正则表达式中的字符生成周围字符的第一条件概率,根据所述第一条件概率获取所述非确定性有限自动机对应的正则表达式的单词向量;或者,计算正则表达式中某一字符的周围字符生成对应字符的第二条件概率,根据所述第二条件概率获取所述非确定性有限自动机对应的正则表达式的单词向量;
基于余弦相似度计算多个单词向量之间的相关性,基于所述相关性筛选出所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串。
根据本发明提供的一种基于半监督学习的异构加速方法,所述本地硬件设备包括:CPU或GPU;所述异构设备包括FPGA,还包括:
所述CPU或GPU通过寄存器将控制指令送入所述FPGA,所述控制指令包括控制开始、复位和地址偏移。
本发明还提供一种基于半监督学习的异构加速装置,包括:
生成模块,用于通过本地硬件设备获取数据控制流,以及根据生成正则表达式生成非确定性有限自动机,所述非确定性有限自动机用于表征所述正则表达式,以对所述数据控制流进行分析和过滤;
分析模块,用于通过异构设备接收所述数据控制流和所述非确定性有限自动机,基于半监督学习模型对所述非确定性有限自动机进行分析,在所述非确定性有限自动机成与其所表征的正则表达式成匹配关系时,将所述非确定性有限自动机配置到对应正则引擎上,对所述数据控制流进行并行分析和过滤;
其中,所述半监督学习模型基于状态机无向图中已标记节点数据和未标记节点数据进行训练得到。
本发明还提供一种终端设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一项所述的基于半监督学习的异构加速方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的基于半监督学习的异构加速方法。
本发明提供的基于半监督学习的异构加速方法、装置、设备及存储介质,通过本地硬件设备获取数据控制流,以及根据生成正则表达式生成非确定性有限自动机,所述非确定性有限自动机用于表征所述正则表达式,以对所述数据控制流进行分析和过滤;通过异构设备接收所述数据控制流和所述非确定性有限自动机,基于半监督学习模型对所述非确定性有限自动机进行分析,在所述非确定性有限自动机成与其所表征的正则表达式成匹配关系时,将所述非确定性有限自动机配置到对应正则引擎上,对所述数据控制流进行并行分析和过滤;其中,半监督学习模型基于状态机无向图中已标记节点数据和未标记节点数据进行训练得到,利用半监督学习模型能够更有效地验证非确定性有限自动机是否表示了正则规律,从而在FPGA上实现更加高效的正则表达式匹配,使得更多的开发人员能够轻松地应用FPGA进行加速应用的开发,推动了基于正则表达式匹配硬件加速技术领域发展。
附图说明
为了更清楚地说明本发明或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于半监督学习的异构加速方法的流程示意图;
图2是本发明实施例提供的设备部署示意图;
图3是本发明实施例提供的非确定性有限自动机拓扑结构示意图;
图4是本发明实施例提供的非确定性有限自动机的状态机无向图结构示意图;
图5是本发明实施例提供的基于半监督学习的异构加速装置的功能结构示意图;
图6是本发明实施例提供的终端设备的功能结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的基于半监督学习的异构加速方法的流程图,如图1所示,本发明实施例提供的基于半监督学习的异构加速方法包括:
步骤101、通过本地硬件设备获取数据控制流,以及根据生成正则表达式生成非确定性有限自动机,所述非确定性有限自动机用于表征所述正则表达式,以对所述数据控制流进行分析和过滤;
步骤102、通过异构设备接收所述数据控制流和所述非确定性有限自动机,基于半监督学习模型对所述非确定性有限自动机进行分析,在所述非确定性有限自动机成与其所表征的正则表达式成匹配关系时,将所述非确定性有限自动机配置到对应正则引擎上,对所述数据控制流进行并行分析和过滤;
其中,所述半监督学习模型基于状态机无向图中已标记节点数据和未标记节点数据进行训练得到。
在本发明实施例中,本地硬件设备包括:CPU或GPU;所述异构设备包括FPGA,还包括:CPU或GPU通过寄存器将控制指令送入所述FPGA,所述控制指令包括控制开始、复位和地址偏移。
在本发明实施例中,CPU或GPU例如部署在型号为NF5266M6存储服务器上,配合型号为F37X加速卡实现异构加速。其工作流程如下:首先,CPU通过直接内存访问(DirectMemory Access,DMA)将数据库的数据传输到FPGA板卡的DDR中。同时,CPU生成正则表达式的NFA,并将NFA的信息形成包含多个正则表达式的帧,每个帧可以包含多个正则,然后将其传送到FPGA板卡的双倍速率同步动态随机存储器(Double Data Rate,DDR)。CPU通过寄存器将必要的控制信息送入FPGA,包括控制开始、复位、地址偏移等。随后,解析帧数据并根据配置信息将不同的NFA配置到不同的正则引擎上。一旦正则引擎配置完成,***开始并行分析和过滤数据帧,并最终将结果进行汇总,通过并行处理数据帧实现硬件加速。
如图2所示,关键硬件组件包括CPU、FPGA板卡的DDR内存、FPGA板卡本身以及正则引擎。数据和控制流从CPU开始,通过DMA传输到FPGA的DDR,然后CPU通过寄存器向FPGA发送控制信息,最后FPGA内部的正则引擎处理数据。其中每个硬件组件的作用包括:
CPU作为***的中心处理单元,负责生成正则表达式的NFA,并控制数据及控制信息的流向。CPU使用DMA将数据从数据库高效传输到FPGA板卡的DDR内存中。DDR内存用于存储从数据库中传输来的数据以及CPU生成的包含正则表达式NFA的帧。FPGA板卡用于通过寄存器接收来自CPU的控制信息,解析帧数据,并将NFA配置到正则引擎上进行数据分析和过滤。正则引擎为FPGA内部的组件,用于并行处理和分析数据帧,执行正则表达式匹配。
由于正则表达式往往很长,而且数量很多,经常需要修改,即便使用程序来自动实现状态机的生成虽然能够提高本构造方案的效率,但是在程序开发和部署过程中仍然需要大量的开发案例验证。然而考虑联机分析处理( On-line Analytical Processing, OLAP)业务数据业务大量且灵活,有限的开发人力和资源,遍历所有可能的正则表达式查询难以实现,缺少一种有效验证基于正则表达式生成的非确定性有限自动机是否合理的方法。
本发明实施例提供的基于半监督学习的异构加速方法,通过本地硬件设备获取数据控制流,以及根据生成正则表达式生成非确定性有限自动机,所述非确定性有限自动机用于表征所述正则表达式,以对所述数据控制流进行分析和过滤;通过异构设备接收所述数据控制流和所述非确定性有限自动机,基于半监督学习模型对所述非确定性有限自动机进行分析,在所述非确定性有限自动机成与其所表征的正则表达式成匹配关系时,将所述非确定性有限自动机配置到对应正则引擎上,对所述数据控制流进行并行分析和过滤;其中,半监督学习模型基于状态机无向图中已标记节点数据和未标记节点数据进行训练得到,利用半监督学习模型能够更有效地验证非确定性有限自动机是否表示了正则规律,从而在FPGA上实现更加高效的正则表达式匹配,使得更多的开发人员能够轻松地应用FPGA进行加速应用的开发,推动了基于正则表达式匹配硬件加速技术领域发展。
基于上述任一实施例,基于半监督学习模型对所述非确定性有限自动机进行分析,包括:
步骤201、将所述非确定性有限自动机转换为状态机无向图结构;
步骤202、将所述状态机无向图结构以及对应正样本标签和负样本标签输入半监督学习模型,获取所述非确定性有限自动机对应的表征向量;
步骤203、计算每个表征向量之间的相似度,获取所述非确定性有限自动机中相关性最强的字符/字符串;
步骤204、获取所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串;
步骤205、在所述非确定性有限自动机中相关性最强的字符/字符串与所述正则表达式中相关性最强的字符/字符串一致时,判定所述非确定性有限自动机成与其所表征的正则表达式成匹配关系。
在本发明实施例中,将所述非确定性有限自动机转换为状态机无向图结构,包括:
步骤2011、获取所述非确定性有限自动机的状态机拓扑结构;
在本发明实施例中,将正则表达式转换为单字符的NFA,使用经典的Thompson 构造法即可,以表达式p(at) (r|n)为例进行说明,转换的NFA的状态机拓扑结构如图3所示,其中,Si为初始状态,Sf为最终的接受状态,ε代表任意的字符。构造 NFA 由软件程序自动生成,构造程序的输入是正则表达式,输出是 NFA 堆栈。
步骤2012、将所述状态机拓扑结构中一个节点到另一个节点的边作为状态机无向图中的一个边节点;
步骤2013、在状态机无向图中,若两个边节点在所述状态机拓扑结构中通过一个状态相连,则在所述两个边节点之间创建一个无向边;
步骤2014、基于多个边节点和多个无向边,使用图卷积神经网络学习生成状态机无向图结构。
在本发明实施例中,状态机拓扑结构中每个节点到另一个节点的边上设置有标签,所述将所述非确定性有限自动机转换为状态机无向图结构,还包括:
若所述状态机拓扑结构中有多条边具有相同的标签并且连接到相同的状态,则将所述状态机拓扑结构中的多条边作为一个边节点。
在本发明实施例中,将原有NFA状态机拓扑结构的边转换成无向图中的节点,并且在状态机无向图中添加无向边来表示原图中边的连接关系,可以通过以下操作:
创建边节点: 每条边在新图中都被视为一个节点。例如,原NFA中从 s0 到 s1 的标签为 'p' 的边将成为新图中的一个节点 p。
创建无向边:在新图中,如果两个边节点在原NFA中通过一个状态相连,则在这两个边节点之间创建一个无向边。例如,如果在原NFA中,标签为 'n' 的边和标签为 'r' 的边都与状态 sf 相连,那么在新图中,边节点 n 和 r 将通过一个无向边相连。
如果原NFA中有多条边具有相同的标签并且连接到相同的状态,我们可以将它们视为同一个节点。例如,如果有两条标签都是 'p' 的边连接到状态 s1,那么在新图中只有一个 p 节点。
如图4所示的NFA状态机无向图中,每个节点代表原始NFA中的一个唯一的边标签。节点之间的连接表示原始NFA中具有公共状态的边。无向图具体描述如下:
节点:ε, p, a, t, r, n;
边:ε 连接到 p,p 连接到 a,p 连接到 t,p 连接到 r,t 连接到 n,r 连接到 n。
对应的邻接矩阵是一个表示节点间连接关系的矩阵。在状态机无向图的邻接矩阵中,如果节点 i 与节点 j 之间有边,那么矩阵的第 i 行第 j 列和第 j 行第 i 列的元素为 1;如果没有边,则为 0。邻接矩阵是对称的,因为状态机无向图中的边没有方向性。邻接矩阵这种表示方法直观且易于操作,特别适用于基于矩阵运算的框架中。在本发明实施例中,通过使用PyTorch可以实现在深度学习框架中表示图结构,PyTorch的强大计算能力和自动微分功能使得它可以用于执行图神经网络等更复杂的图处理任务。
在本发明实施例中,图卷积神经网络包括两个连续的图卷积层,第一图卷积层将所述多个边节点和多个无向边对应的输入特征映射到隐藏特征,所述第二图卷积层将所述隐藏特征映射到输出特征空间,得到状态机无向图结构。
在这个架构中,第一层的输出特征不仅包含邻近节点的信息,还包括自身节点的特征,这些特征在第二层中被进一步处理。第二层图卷积层输出的特征可以用于多种下游任务,如节点分类、图分类等,通过这种结构,能够有效地捕捉图数据中的局部结构特征以及节点间的依赖关系,使得GCN在社交网络分析、分子结构识别等领域得到了广泛的应用。
在本发明实施例中,第一图卷积层用于基于所述多个边节点和多个无向边生成邻接矩阵,所述邻接矩阵包括邻近节点的信息,所述第一图卷积层的输出特征包括邻近节点的信息和自身节点的特征。
在本发明实施例中,邻接矩阵中元素的数据类型为浮点数类型,所述邻接矩阵中矩阵的元素值为1.0表示节点之间存在连接,0.0表示节点之间无连接。
在深度学习模型中,矩阵的元素值使用浮点数类型表示,便于进行梯度计算和参数优化。
在本发明实施例中,基于所述多个边节点和多个无向边生成邻接矩阵前,还包括:
将所述状态机拓扑结构中的节点采用列表表示,所述列表用于表征各个节点与邻接矩阵中索引之间的映射关系。
在本发明实施例中,虽然列表在构建邻接矩阵时没有直接使用,但它有助于提供节点与邻接矩阵中索引之间的映射关系,增加算法对应软件代码的可读性和易理解性。
在本发明实施例中,第二图卷积层用于基于所述邻近节点的信息和自身节点的特征计算度矩阵,并使用所述度矩阵对邻接矩阵进行对称归一化处理;
将归一化后的邻接矩阵与输入特征矩阵相乘,获取所述多个边节点和多个无向边的局部结构特征以及节点间的依赖关系;
根据所述局部结构特征以及节点间的依赖关系构建状态机无向图结构。
在本发明实施例中,使用所述度矩阵对邻接矩阵进行对称归一化处理,包括:
对所述度矩阵进行取次幂操作,将取次幂结果与邻接矩阵进行左乘和右乘以得到对称归一化处理结果。例如,取-0.5次幂。
在本发明实施例中,每个图卷积层都包含一个线性变换,该变换由一个权重矩阵定义,用于将节点的输入特征映射到输出特征。在前向传播中,图卷积层首先向邻接矩阵添加自环,这样每个节点在信息传递时也会考虑自身的特征。然后,计算度矩阵,并使用度矩阵对邻接矩阵进行对称归一化处理。通过对度矩阵取-0.5次幂,然后左乘和右乘邻接矩阵可以确保信息传递过程的平滑性。最后,图卷积层将归一化后的邻接矩阵与输入特征矩阵相乘,然后应用线性变换,并通过激活函数来引入非线性。
基于上述任一实施例,本发明实施例所提供的半监督学习模型的训练方法,包括:
步骤301、获取训练数据集,所述训练数据集包括标记节点数据和未标记节点数据;
在本发明实施例中,训练数据集包括中心词及其对应背景词,或 背景词以及噪声词。数据中一般会出现一些高频词,如“p(at)(r|n)”中的“a”“t”。通常来说,一个高频字符(如“a”)和较低频词(如“p”)同时出现对训练词嵌入模型更有益,将与正则表达式中中心字符距离不超过背景窗口大小的字符作为它的背景词,提取出所有中心字符和它们的背景字符, 每次在整数1和最大背景窗口之间随机均匀采样一个整数作为背景窗口大小。
步骤302、将所述训练数据集输入所述半监督学习模型,获取每个节点对应的表征向量;
步骤302、基于损失函数计算所述表征向量的损失值;
步骤302、基于所述损失值更新所述半监督学习模型的参数,直到满足训练结束条件,得到训练好的半监督学习模型;
其中,所述损失函数包括监督损失函数和无监督损失函数,所述监督损失函数为交叉熵损失函数,所述无监督损失函数为图拉普拉斯损失函数;
所述基于损失函数计算所述表征向量的损失值,包括:
使用交叉熵损失函数来计算所述标记节点数据对应的表征向量与真实标签之间的差异;
使用图拉普拉斯损失函数对所述未标记节点数据对应的表征向量,利用所述状态机无向图的结构信息,鼓励相邻节点具有相似的特征表示;
将所述监督损失函数和无监督损失函数输出结果进行融合,得到所述表征向量的损失值。
在本发明实施例中,将所述监督损失函数和无监督损失函数输出结果进行融合,包括:
获取超参数,将所述超参数与所述无监督损失函数输出结果的乘积与所述监督损失函数输出结果相加,得到所述表征向量的损失值。
在半监督学习中,通常有一小部分标记数据和一大部分未标记数据。对于由NFA构成的状态机无向图结构,可以定义一个结合标记数据和未标记数据的损失函数,以利用图中所有节点的信息。一个典型的半监督学习损失函数包含两部分:一个是监督损失,用于计算标记节点上的预测误差;另一个是无监督损失,旨在利用图的结构信息,通常是通过鼓励在图中相邻的节点具有相似的特征表示。
对于图中的标记节点,使用交叉熵损失函数来计算模型预测和真实标签之间的差异。对于图中没有标记的节点,使用图拉普拉斯损失函数/>来进行计算,则半监督学习的损失函数为:
其中λ是超参数,需要实验确定,在不考虑基于词频生成标签时,可以仅使用作为损失函数对状态机的无向图进行训练学习,此时,向量的生成完全依赖于网络的拓扑结构。
在本发明实施例中,所述计算每个表征向量之间的相似度,获取所述非确定性有限自动机中相关性最强的字符/字符串,包括:
获取所述非确定性有限自动机中每个节点的表征向量之间的余弦相似度;
将所述余弦相似度最大的两个表征向量对应字符作为所述非确定性有限自动机中相关性最强的字符;
或,将所述余弦相似度大于预设阈值的多个表征向量对应字符作为所述非确定性有限自动机中相关性最强的字符串。
在本发明实施例中,基于计算不同单词嵌入向量之间的余弦相似度获取与所述非确定性有限自动机相关性最强的字符。余弦相似度用于衡量高维空间中两个向量的夹角,从而判断它们的相似性。方法的核心是找出与给定单词最相似的单词,通过判断给定单词最相关的词配合基于正则表达式生成的字符串的相关性分析结果,可以判断出强相关状态机生成是否准确,状态机推理是否有问题。
基于上述任一实施例,本发明实施例提供的正样本标签和负样本标签获取方法,包括:
根据历史正则表达式样本数据统计不同字符出现的频率;
将出现频率高于预设高频阈值的字符标记为高频词,作为正样本;
将出现频率低于预设低频阈值的字符标记为低频词,作为负样本。
在本发明实施例中,高频阈值与所述低频阈值相同,或,所述低频阈值小于所述高频阈值。
在本发明实施例中,通过正则表达式样本数据统计不同字符出现的频率,出现频率高于70%的标记为高频词,获得正样本,反之标记为负样本。从大规模的测试信息和状态机模型中提取有价值的信息,更快的地进行正则加速的开发测试。
基于上述任一实施例,所述获取所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串,包括但不限于以下两个方案:
方案一:计算所述正则表达式中的字符生成周围字符的第一条件概率,根据所述第一条件概率获取所述非确定性有限自动机对应的正则表达式的单词向量;
基于余弦相似度计算多个单词向量之间的相关性,基于所述相关性筛选出所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串。
在本发明实施例中,基于正则表达式生成符合要求的字符串,比如“patr”,以部分任意字符为中心,方案一生成周边字符的条件概率为,概率分布符合条件独立性,上述概率密度可以重写为/>,在本模型中,每个字符都有两个向量表示,用于计算对应概率。具体来说,本模型使用向量s和t表示一个字符作为中心字符和周边字符的两个向量,进而估计对应的概率分布/> ,其中正则字符索引集合对应正则匹配过程关心的字符和模式。该索引对应地概率密度为:
其中,表示给定字符/>的情况下,字符/>出现的概率,/>表示字符/>作为周围字符时的向量表示,/>表示字符/>作为中心字符时的向量表示,/>表示/>的转置向量。
基于该似然函数估计模型参数,使用随机梯度对最大似然概率密度取对数进行优化,对向量进行梯度计算:
通过优化以为中心字符的所有上下游字符地概率,计算损失函数的梯度。
经过训练后,输出字单词向量s 被用作相关性分析,当不同字符之间的相关性大于某一阈值(比如相关性大于0.95),判断两字符在状态机中是否连接到的同一个状态,证明其是正则表达式中相关性最强的字符/字符串。
方案二:计算正则表达式中某一字符的周围字符生成对应字符的第二条件概率,根据所述第二条件概率获取所述非确定性有限自动机对应的正则表达式的单词向量;
基于余弦相似度计算多个单词向量之间的相关性,基于所述相关性筛选出所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串。
在本发明实施例中,围绕上下游字符预测中心字符表现,比如“patr”,以部分任意字符为中心,其基于“p”,“a”,“r”的条件概率为P('t'|'p','a','r'),给定上下游正则字符和相关的中心字符的条件概率可以写为:
类似于方案一,向量s和t表示一个字符在正则表达式中作为中心字符和周边字符的两个向量。是大小为K的字符子集,对于字符/>,该字符属于中心字符/>的上下文字符,字符索引集合/>对应正则匹配过程关系的字符或者模式。基于此,模型二的最大似然概率为/>。
基于该似然函数估计模型参数。训练结束后,输出字符的向量t 被用作相关性分析。当字符之间的相关性大于某一阈值(比如相关性大于0.95),设计判断两字符在状态机中是否连接到的同一个状态。比如字符“t”和“n”通过状态“S4”连接,证明其是正则表达式中相关性最强的字符/字符串。
本发明实施例提供的基于半监督学习的异构加速方法,通过引入基于半监督学习的方法,旨在快速开发测试基于FPGA的正则加速方案,以提高计算性能、解决性能瓶颈,并提升对于灵活业务案例的处理效率,对计算性能的提升。通过利用状态机图模型,能够更有效地表示正则规律,从而在FPGA上实现更加高效的正则表达式匹配。这不仅解决了现有技术中在大量正则表达式处理时可能面临的计算性能问题,同时有望为网络安全等领域提供更加强大的工具,提高对威胁的实时检测效果。其次通过采用半监督学习方法,***可以更智能地判断状态机是否准确表示正则规律,从而提高正则加速方案的开发效率。不仅减轻了开发人员在FPGA编程方面的负担,也有望促进正则表达式匹配技术在各领域的更广泛应用。通过提供两种基于相关性的方案,在保持灵活性的同时提供了有效验证和开发的手段。这对于OLAP业务数据业务等领域,其中存在大量灵活案例,具有重要意义。
下面对本发明提供的基于半监督学习的异构加速装置进行描述,下文描述的基于半监督学习的异构加速装置与上文描述的基于半监督学习的异构加速方法可相互对应参照。
图5为本发明实施例提供的基于半监督学习的异构加速装置的功能结构示意图,如图5所示,本发明实施例提供的基于半监督学习的异构加速装置包括:
生成模块501,用于通过本地硬件设备获取数据控制流,以及根据生成正则表达式生成非确定性有限自动机,所述非确定性有限自动机用于表征所述正则表达式,以对所述数据控制流进行分析和过滤;
分析模块502,用于通过异构设备接收所述数据控制流和所述非确定性有限自动机,基于半监督学习模型对所述非确定性有限自动机进行分析,在所述非确定性有限自动机成与其所表征的正则表达式成匹配关系时,将所述非确定性有限自动机配置到对应正则引擎上,对所述数据控制流进行并行分析和过滤;
其中,所述半监督学习模型基于状态机无向图中已标记节点数据和未标记节点数据进行训练得到。
本发明实施例提供的基于半监督学习的异构加速装置,通过本地硬件设备获取数据控制流,以及根据生成正则表达式生成非确定性有限自动机,所述非确定性有限自动机用于表征所述正则表达式,以对所述数据控制流进行分析和过滤;通过异构设备接收所述数据控制流和所述非确定性有限自动机,基于半监督学习模型对所述非确定性有限自动机进行分析,在所述非确定性有限自动机成与其所表征的正则表达式成匹配关系时,将所述非确定性有限自动机配置到对应正则引擎上,对所述数据控制流进行并行分析和过滤;其中,半监督学习模型基于状态机无向图中已标记节点数据和未标记节点数据进行训练得到,利用半监督学习模型能够更有效地验证非确定性有限自动机是否表示了正则规律,从而在FPGA上实现更加高效的正则表达式匹配,使得更多的开发人员能够轻松地应用FPGA进行加速应用的开发,推动了基于正则表达式匹配硬件加速技术领域发展。
在本发明实施例中,分析模块502被配置为:
将所述非确定性有限自动机转换为状态机无向图结构;
将所述状态机无向图结构以及对应正样本标签和负样本标签输入半监督学习模型,获取所述非确定性有限自动机对应的表征向量;
获取所述非确定性有限自动机对应的正则表达式的中心字符向量;
对所述非确定性有限自动机对应的表征向量与所述正则表达式的中心字符向量进行相关性分析,在所述非确定性有限自动机对应的表征向量与所述正则表达式的中心字符向量一致时,判定所述非确定性有限自动机成与其所表征的正则表达式成匹配关系。
在本发明实施例中,将所述非确定性有限自动机转换为状态机无向图结构,包括:
获取所述非确定性有限自动机的状态机拓扑结构;
将所述状态机拓扑结构中一个节点到另一个节点的边作为状态机无向图中的一个边节点;
在状态机无向图中,若两个边节点在所述状态机拓扑结构中通过一个状态相连,则在所述两个边节点之间创建一个无向边;
基于多个边节点和多个无向边,使用图卷积神经网络学习生成状态机无向图结构。
在本发明实施例中,所述图卷积神经网络包括两个连续的图卷积层,第一图卷积层将所述多个边节点和多个无向边对应的输入特征映射到隐藏特征,所述第二图卷积层将所述隐藏特征映射到输出特征空间,得到状态机无向图结构。
在本发明实施例中,所述第一图卷积层用于基于所述多个边节点和多个无向边生成邻接矩阵,所述邻接矩阵包括邻近节点的信息,所述第一图卷积层的输出特征包括邻近节点的信息和自身节点的特征。
在本发明实施例中,所述第二图卷积层用于基于所述邻近节点的信息和自身节点的特征计算度矩阵,并使用所述度矩阵对邻接矩阵进行对称归一化处理;
将归一化后的邻接矩阵与输入特征矩阵相乘,获取所述多个边节点和多个无向边的局部结构特征以及节点间的依赖关系;
根据所述局部结构特征以及节点间的依赖关系构建状态机无向图结构。
在本发明实施例中,所述使用所述度矩阵对邻接矩阵进行对称归一化处理,包括:
对所述度矩阵进行取次幂操作,将取次幂结果与邻接矩阵进行左乘和右乘以得到对称归一化处理结果。
在本发明实施例中,所述状态机拓扑结构中每个节点到另一个节点的边上设置有标签,所述将所述非确定性有限自动机转换为状态机无向图结构,还包括:
若所述状态机拓扑结构中有多条边具有相同的标签并且连接到相同的状态,则将所述状态机拓扑结构中的多条边作为一个边节点。
在本发明实施例中,所述邻接矩阵中元素的数据类型为浮点数类型,所述邻接矩阵中矩阵的元素值为1.0表示节点之间存在连接,0.0表示节点之间无连接。
在本发明实施例中,所述基于所述多个边节点和多个无向边生成邻接矩阵前,还包括:
将所述状态机拓扑结构中的节点采用列表表示,所述列表用于表征各个节点与邻接矩阵中索引之间的映射关系。
在本发明实施例中,分析模块502还被配置为:
获取训练数据集,所述训练数据集包括标记节点数据和未标记节点数据;
将所述训练数据集输入所述半监督学习模型,获取每个节点对应的表征向量;
基于损失函数计算所述表征向量的损失值;
基于所述损失值更新所述半监督学习模型的参数,直到满足训练结束条件,得到训练好的半监督学习模型;
其中,所述损失函数包括监督损失函数和无监督损失函数,所述监督损失函数为交叉熵损失函数,所述无监督损失函数为图拉普拉斯损失函数;
所述基于损失函数计算所述表征向量的损失值,包括:
使用交叉熵损失函数来计算所述标记节点数据对应的表征向量与真实标签之间的差异;
使用图拉普拉斯损失函数对所述未标记节点数据对应的表征向量,利用所述状态机无向图的结构信息,鼓励相邻节点具有相似的特征表示;
将所述监督损失函数和无监督损失函数输出结果进行融合,得到所述表征向量的损失值。
在本发明实施例中,所述将所述监督损失函数和无监督损失函数输出结果进行融合,包括:
获取超参数,将所述超参数与所述无监督损失函数输出结果的乘积与所述监督损失函数输出结果相加,得到所述表征向量的损失值。
在本发明实施例中,所述对所述非确定性有限自动机对应的表征向量与所述正则表达式的中心字符向量进行相关性分析,包括:
获取所述非确定性有限自动机中每个节点的表征向量与所述正则表达式的中心字符向量之间的余弦相似度;
若所述余弦相似度大于预设阈值,判定所述非确定性有限自动机对应的表征向量与所述正则表达式的中心字符向量一致。
在本发明实施例中,所述正样本标签和负样本标签获取方法,包括:
根据历史正则表达式样本数据统计不同字符出现的频率;
将出现频率高于预设高频阈值的字符标记为高频词,作为正样本;
将出现频率低于预设低频阈值的字符标记为低频词,作为负样本。
根据本发明提供的一种基于半监督学习的异构加速方法,所述高频阈值与所述低频阈值相同,或,所述低频阈值小于所述高频阈值。
在本发明实施例中,获取所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串,包括但不限于以下两个方案:
方案一:计算所述正则表达式中的字符生成周围字符的第一条件概率,根据所述第一条件概率获取所述非确定性有限自动机对应的正则表达式的单词向量;
基于余弦相似度计算多个单词向量之间的相关性,基于所述相关性筛选出所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串。
方案二:计算正则表达式中某一字符的周围字符生成对应字符的第二条件概率,根据所述第二条件概率获取所述非确定性有限自动机对应的正则表达式的单词向量;
基于余弦相似度计算多个单词向量之间的相关性,基于所述相关性筛选出所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串。
本发明实施例提供的基于半监督学习的异构加速装置,通过引入基于半监督学习的方法,旨在快速开发测试基于FPGA的正则加速方案,以提高计算性能、解决性能瓶颈,并提升对于灵活业务案例的处理效率,对计算性能的提升。通过利用状态机图模型,能够更有效地表示正则规律,从而在FPGA上实现更加高效的正则表达式匹配。这不仅解决了现有技术中在大量正则表达式处理时可能面临的计算性能问题,同时有望为网络安全等领域提供更加强大的工具,提高对威胁的实时检测效果。其次通过采用半监督学习方法,***可以更智能地判断状态机是否准确表示正则规律,从而提高正则加速方案的开发效率。不仅减轻了开发人员在FPGA编程方面的负担,也有望促进正则表达式匹配技术在各领域的更广泛应用。通过提供两种基于相关性的方案,在保持灵活性的同时提供了有效验证和开发的手段。这对于OLAP业务数据业务等领域,其中存在大量灵活案例,具有重要意义。
图6示例了一种终端设备的实体结构示意图,如图6所示,该服务器可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。存储器630中包括计算机程序、操作***以及获取到的图结构数据,处理器610可以调用存储器630中的逻辑指令,以执行基于半监督学习的异构加速方法,该方法包括:通过本地硬件设备获取数据控制流,以及根据生成正则表达式生成非确定性有限自动机,所述非确定性有限自动机用于表征所述正则表达式,以对所述数据控制流进行分析和过滤;通过异构设备接收所述数据控制流和所述非确定性有限自动机,基于半监督学习模型对所述非确定性有限自动机进行分析,在所述非确定性有限自动机成与其所表征的正则表达式成匹配关系时,将所述非确定性有限自动机配置到对应正则引擎上,对所述数据控制流进行并行分析和过滤;其中,半监督学习模型基于状态机无向图中已标记节点数据和未标记节点数据进行训练得到。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于半监督学习的异构加速方法,该方法包括:通过本地硬件设备获取数据控制流,以及根据生成正则表达式生成非确定性有限自动机,所述非确定性有限自动机用于表征所述正则表达式,以对所述数据控制流进行分析和过滤;通过异构设备接收所述数据控制流和所述非确定性有限自动机,基于半监督学习模型对所述非确定性有限自动机进行分析,在所述非确定性有限自动机成与其所表征的正则表达式成匹配关系时,将所述非确定性有限自动机配置到对应正则引擎上,对所述数据控制流进行并行分析和过滤;其中,半监督学习模型基于状态机无向图中已标记节点数据和未标记节点数据进行训练得到。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (20)
1.一种基于半监督学习的异构加速方法,其特征在于,包括:
通过本地硬件设备获取数据控制流,以及根据生成正则表达式生成非确定性有限自动机,所述非确定性有限自动机用于表征所述正则表达式,以对所述数据控制流进行分析和过滤;
通过异构设备接收所述数据控制流和所述非确定性有限自动机,基于半监督学习模型对所述非确定性有限自动机进行分析,在所述非确定性有限自动机成与其所表征的正则表达式成匹配关系时,将所述非确定性有限自动机配置到对应正则引擎上,对所述数据控制流进行并行分析和过滤;
其中,所述半监督学习模型基于状态机无向图中已标记节点数据和未标记节点数据进行训练得到。
2.根据权利要求1所述的基于半监督学习的异构加速方法,其特征在于,所述基于半监督学习模型对所述非确定性有限自动机进行分析,包括:
将所述非确定性有限自动机转换为状态机无向图结构;
将所述状态机无向图结构以及对应正样本标签和负样本标签输入半监督学习模型,获取所述非确定性有限自动机对应的表征向量;
计算每个表征向量之间的相似度,获取所述非确定性有限自动机中相关性最强的字符/字符串;
获取所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串;
在所述非确定性有限自动机中相关性最强的字符/字符串与所述正则表达式中相关性最强的字符/字符串一致时,判定所述非确定性有限自动机成与其所表征的正则表达式成匹配关系。
3.根据权利要求2所述的基于半监督学习的异构加速方法,其特征在于,所述将所述非确定性有限自动机转换为状态机无向图结构,包括:
获取所述非确定性有限自动机的状态机拓扑结构;
将所述状态机拓扑结构中一个节点到另一个节点的边作为状态机无向图中的一个边节点;
在状态机无向图中,若两个边节点在所述状态机拓扑结构中通过一个状态相连,则在所述两个边节点之间创建一个无向边;
基于多个边节点和多个无向边,使用图卷积神经网络学习生成状态机无向图结构。
4.根据权利要求3所述的基于半监督学习的异构加速方法,其特征在于,所述图卷积神经网络包括两个连续的图卷积层,第一图卷积层将所述多个边节点和多个无向边对应的输入特征映射到隐藏特征,第二图卷积层将所述隐藏特征映射到输出特征空间,得到状态机无向图结构。
5.根据权利要求4所述的基于半监督学习的异构加速方法,其特征在于,所述第一图卷积层用于基于所述多个边节点和多个无向边生成邻接矩阵,所述邻接矩阵包括邻近节点的信息,所述第一图卷积层的输出特征包括邻近节点的信息和自身节点的特征。
6.根据权利要求5所述的基于半监督学习的异构加速方法,其特征在于,所述第二图卷积层用于基于所述邻近节点的信息和自身节点的特征计算度矩阵,并使用所述度矩阵对邻接矩阵进行对称归一化处理;
将归一化后的邻接矩阵与输入特征矩阵相乘,获取所述多个边节点和多个无向边的局部结构特征以及节点间的依赖关系;
根据所述局部结构特征以及节点间的依赖关系构建状态机无向图结构。
7.根据权利要求6所述的基于半监督学习的异构加速方法,其特征在于,所述使用所述度矩阵对邻接矩阵进行对称归一化处理,包括:
对所述度矩阵进行取次幂操作,将取次幂结果与邻接矩阵进行左乘和右乘以得到对称归一化处理结果。
8.根据权利要求4所述的基于半监督学习的异构加速方法,其特征在于,所述状态机拓扑结构中每个节点到另一个节点的边上设置有标签,所述将所述非确定性有限自动机转换为状态机无向图结构,还包括:
若所述状态机拓扑结构中有多条边具有相同的标签并且连接到相同的状态,则将所述状态机拓扑结构中的多条边作为一个边节点。
9.根据权利要求5所述的基于半监督学习的异构加速方法,其特征在于,所述邻接矩阵中元素的数据类型为浮点数类型,所述邻接矩阵中矩阵的元素值为1.0表示节点之间存在连接,0.0表示节点之间无连接。
10.根据权利要求5所述的基于半监督学习的异构加速方法,其特征在于,所述基于所述多个边节点和多个无向边生成邻接矩阵前,还包括:
将所述状态机拓扑结构中的节点采用列表表示,所述列表用于表征各个节点与邻接矩阵中索引之间的映射关系。
11.根据权利要求1所述的基于半监督学习的异构加速方法,其特征在于,所述半监督学习模型的训练方法,包括:
获取训练数据集,所述训练数据集包括标记节点数据和未标记节点数据;
将所述训练数据集输入所述半监督学习模型,获取每个节点对应的表征向量;
基于损失函数计算所述表征向量的损失值;
基于所述损失值更新所述半监督学习模型的参数,直到满足训练结束条件,得到训练好的半监督学习模型;
其中,所述损失函数包括监督损失函数和无监督损失函数,所述监督损失函数为交叉熵损失函数,所述无监督损失函数为图拉普拉斯损失函数;
所述基于损失函数计算所述表征向量的损失值,包括:
使用交叉熵损失函数来计算所述标记节点数据对应的表征向量与真实标签之间的差异;
使用图拉普拉斯损失函数对所述未标记节点数据对应的表征向量,利用所述状态机无向图的结构信息,鼓励相邻节点具有相似的特征表示;
将所述监督损失函数和无监督损失函数输出结果进行融合,得到所述表征向量的损失值。
12.根据权利要求11所述的基于半监督学习的异构加速方法,其特征在于,所述将所述监督损失函数和无监督损失函数输出结果进行融合,包括:
获取超参数,将所述超参数与所述无监督损失函数输出结果的乘积与所述监督损失函数输出结果相加,得到所述表征向量的损失值。
13.根据权利要求2所述的基于半监督学习的异构加速方法,其特征在于,所述计算每个表征向量之间的相似度,获取所述非确定性有限自动机中相关性最强的字符/字符串,包括:
获取所述非确定性有限自动机中每个节点的表征向量之间的余弦相似度;
将所述余弦相似度最大的两个表征向量对应字符作为所述非确定性有限自动机中相关性最强的字符;
或,将所述余弦相似度大于预设阈值的多个表征向量对应字符作为所述非确定性有限自动机中相关性最强的字符串。
14.根据权利要求2所述的基于半监督学习的异构加速方法,其特征在于,所述正样本标签和负样本标签获取方法,包括:
根据历史正则表达式样本数据统计不同字符出现的频率;
将出现频率高于预设高频阈值的字符标记为高频词,作为正样本;
将出现频率低于预设低频阈值的字符标记为低频词,作为负样本。
15.根据权利要求14所述的基于半监督学习的异构加速方法,其特征在于,所述高频阈值与所述低频阈值相同,或,所述低频阈值小于所述高频阈值。
16.根据权利要求2所述的基于半监督学习的异构加速方法,其特征在于,所述获取所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串,包括:
计算所述正则表达式中的字符生成周围字符的第一条件概率,根据所述第一条件概率获取所述非确定性有限自动机对应的正则表达式的单词向量;或者,计算正则表达式中某一字符的周围字符生成对应字符的第二条件概率,根据所述第二条件概率获取所述非确定性有限自动机对应的正则表达式的单词向量;
基于余弦相似度计算多个单词向量之间的相关性,基于所述相关性筛选出所述非确定性有限自动机对应的正则表达式中相关性最强的字符/字符串。
17.根据权利要求1所述的基于半监督学习的异构加速方法,其特征在于,所述本地硬件设备包括:CPU或GPU;所述异构设备包括FPGA,还包括:
所述CPU或GPU通过寄存器将控制指令送入所述FPGA,所述控制指令包括控制开始、复位和地址偏移。
18.一种基于半监督学习的异构加速装置,其特征在于,包括:
生成模块,用于通过本地硬件设备获取数据控制流,以及根据生成正则表达式生成非确定性有限自动机,所述非确定性有限自动机用于表征所述正则表达式,以对所述数据控制流进行分析和过滤;
分析模块,用于通过异构设备接收所述数据控制流和所述非确定性有限自动机,基于半监督学习模型对所述非确定性有限自动机进行分析,在所述非确定性有限自动机成与其所表征的正则表达式成匹配关系时,将所述非确定性有限自动机配置到对应正则引擎上,对所述数据控制流进行并行分析和过滤;
其中,所述半监督学习模型基于状态机无向图中已标记节点数据和未标记节点数据进行训练得到。
19.一种终端设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至17任一项所述的基于半监督学习的异构加速方法。
20.一种非暂态可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至17任一项所述的基于半监督学习的异构加速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410376342.7A CN117971356B (zh) | 2024-03-29 | 2024-03-29 | 基于半监督学习的异构加速方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410376342.7A CN117971356B (zh) | 2024-03-29 | 2024-03-29 | 基于半监督学习的异构加速方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117971356A true CN117971356A (zh) | 2024-05-03 |
CN117971356B CN117971356B (zh) | 2024-06-14 |
Family
ID=90848263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410376342.7A Active CN117971356B (zh) | 2024-03-29 | 2024-03-29 | 基于半监督学习的异构加速方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971356B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843896A (zh) * | 2016-03-22 | 2016-08-10 | 中国科学院信息工程研究所 | 一种多源异构大数据的冗余源协同缩减方法 |
CN109614293A (zh) * | 2018-12-13 | 2019-04-12 | 广东浪潮大数据研究有限公司 | 一种fpga异构加速卡的管理***及方法 |
CN111858461A (zh) * | 2020-07-10 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | Fpga异构加速平台部分重置、***、设备及介质 |
CN113378913A (zh) * | 2021-06-08 | 2021-09-10 | 电子科技大学 | 一种基于自监督学习的半监督节点分类方法 |
WO2021203796A1 (zh) * | 2020-04-09 | 2021-10-14 | 之江实验室 | 一种基于深度半监督多任务学习生存分析的疾病预后预测*** |
CN113672989A (zh) * | 2021-07-30 | 2021-11-19 | 广东浪潮智慧计算技术有限公司 | 区块链关键信息检测方法、***、装置及可读存储介质 |
CN113705635A (zh) * | 2021-08-11 | 2021-11-26 | 西安交通大学 | 基于自适应图的半监督宽度学习分类方法及设备 |
CN115410026A (zh) * | 2022-07-14 | 2022-11-29 | 扬州大学 | 基于标签传播对比半监督学习的图像分类方法与*** |
WO2023000574A1 (zh) * | 2021-07-21 | 2023-01-26 | 浪潮(北京)电子信息产业有限公司 | 一种模型训练方法、装置、设备及可读存储介质 |
CN116911048A (zh) * | 2023-07-27 | 2023-10-20 | 中国舰船研究设计中心 | 一种大型船舶任务***数字孪生模型构建方法 |
-
2024
- 2024-03-29 CN CN202410376342.7A patent/CN117971356B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843896A (zh) * | 2016-03-22 | 2016-08-10 | 中国科学院信息工程研究所 | 一种多源异构大数据的冗余源协同缩减方法 |
CN109614293A (zh) * | 2018-12-13 | 2019-04-12 | 广东浪潮大数据研究有限公司 | 一种fpga异构加速卡的管理***及方法 |
WO2021203796A1 (zh) * | 2020-04-09 | 2021-10-14 | 之江实验室 | 一种基于深度半监督多任务学习生存分析的疾病预后预测*** |
CN111858461A (zh) * | 2020-07-10 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | Fpga异构加速平台部分重置、***、设备及介质 |
CN113378913A (zh) * | 2021-06-08 | 2021-09-10 | 电子科技大学 | 一种基于自监督学习的半监督节点分类方法 |
WO2023000574A1 (zh) * | 2021-07-21 | 2023-01-26 | 浪潮(北京)电子信息产业有限公司 | 一种模型训练方法、装置、设备及可读存储介质 |
CN113672989A (zh) * | 2021-07-30 | 2021-11-19 | 广东浪潮智慧计算技术有限公司 | 区块链关键信息检测方法、***、装置及可读存储介质 |
CN113705635A (zh) * | 2021-08-11 | 2021-11-26 | 西安交通大学 | 基于自适应图的半监督宽度学习分类方法及设备 |
CN115410026A (zh) * | 2022-07-14 | 2022-11-29 | 扬州大学 | 基于标签传播对比半监督学习的图像分类方法与*** |
CN116911048A (zh) * | 2023-07-27 | 2023-10-20 | 中国舰船研究设计中心 | 一种大型船舶任务***数字孪生模型构建方法 |
Non-Patent Citations (1)
Title |
---|
朱常宝;程勇;高强;: "基于半监督深度信念网络的图像分类算法研究", 计算机科学, no. 1, 15 June 2016 (2016-06-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117971356B (zh) | 2024-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200167659A1 (en) | Device and method for training neural network | |
Chu et al. | Neural batch sampling with reinforcement learning for semi-supervised anomaly detection | |
Zheng et al. | Truncated diffusion probabilistic models | |
CN113010683B (zh) | 基于改进图注意力网络的实体关系识别方法及*** | |
US11343325B2 (en) | Systems and methods for estimating typed graphlets in large data | |
CN112131578A (zh) | 攻击信息预测模型的训练方法、装置、电子设备及存储介质 | |
CN112529071A (zh) | 一种文本分类方法、***、计算机设备和存储介质 | |
CN115859302A (zh) | 源代码漏洞检测方法、装置、设备及存储介质 | |
Ke et al. | APGVAE: Adaptive disentangled representation learning with the graph-based structure information | |
Ren et al. | Bayesian neural networks avoid encoding complex and perturbation-sensitive concepts | |
CN114819163A (zh) | 量子生成对抗网络的训练方法、装置、介质及电子装置 | |
Collier et al. | Massively scaling heteroscedastic classifiers | |
Gao et al. | Patchgt: Transformer over non-trainable clusters for learning graph representations | |
CN116702157B (zh) | 一种基于神经网络的智能合约漏洞检测方法 | |
CN117971356B (zh) | 基于半监督学习的异构加速方法、装置、设备及存储介质 | |
Sekiyama et al. | Automated proof synthesis for the minimal propositional logic with deep neural networks | |
CN117971354B (zh) | 基于端到端学习的异构加速方法、装置、设备及存储介质 | |
Paja | Generational feature elimination to find all relevant feature subset | |
CN115544307A (zh) | 基于关联矩阵的有向图数据特征提取与表达方法和*** | |
CN117971355B (zh) | 基于自监督学习的异构加速方法、装置、设备及存储介质 | |
Tjøstheim et al. | Some recent trends in embeddings of time series and dynamic networks | |
CN116527411B (zh) | 数据安全智能防护模型构建方法、装置及协作平台 | |
Chen et al. | Learning to Reweight for Graph Neural Network | |
CN113435113B (zh) | 一种电力***暂态稳定评估方法及装置 | |
Dasgupta et al. | Alpha Elimination: Using Deep Reinforcement Learning to Reduce Fill-In During Sparse Matrix Decomposition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |