CN115994224A - 基于预训练语言模型的钓鱼url检测方法及系统 - Google Patents
基于预训练语言模型的钓鱼url检测方法及系统 Download PDFInfo
- Publication number
- CN115994224A CN115994224A CN202310105616.4A CN202310105616A CN115994224A CN 115994224 A CN115994224 A CN 115994224A CN 202310105616 A CN202310105616 A CN 202310105616A CN 115994224 A CN115994224 A CN 115994224A
- Authority
- CN
- China
- Prior art keywords
- url
- word
- training
- sub
- model
- 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.)
- Pending
Links
- 238000012549 training Methods 0.000 title claims abstract description 80
- 238000001514 detection method Methods 0.000 title claims abstract description 63
- 239000013598 vector Substances 0.000 claims abstract description 71
- 230000011218 segmentation Effects 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 28
- 230000006870 function Effects 0.000 claims description 37
- 238000010276 construction Methods 0.000 claims description 14
- 230000007246 mechanism Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000009466 transformation Effects 0.000 claims description 8
- 230000004913 activation Effects 0.000 claims description 7
- 238000003860 storage Methods 0.000 claims description 5
- 238000010606 normalization Methods 0.000 claims description 3
- 238000011157 data evaluation Methods 0.000 abstract description 3
- 238000000605 extraction Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000010801 machine learning Methods 0.000 description 4
- 238000007476 Maximum Likelihood Methods 0.000 description 2
- 238000002940 Newton-Raphson method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 208000001613 Gambling Diseases 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Machine Translation (AREA)
Abstract
本发明公开一种基于训练语言模型的钓鱼URL检测方法及系统,方法包括:获取URL数据源,构建URL语料库;构建URL分词系统,训练URL分词系统及初始化词嵌入,得到URL初始化子词向量;构建多层网络编码器,基于三元组掩码对多层网络编辑器进行训练,得到模糊掩码语言模型;对模糊掩码语言模型进行微调处理以得到钓鱼URL检测任务模型;将待测URL输入至所述钓鱼URL检测任务模型中,得到检测结果。本发明具有极高的钓鱼网站检测成功率,公开数据评估上识别率达到99%以上;只需要将原始的URL送入到模型中,模型会自动地执行分词、生成词向量、特征提取以及训练;本发明的模型使得准确率提高本发明的模糊掩码语言模型,能够减小预训练的难度。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种基于训练语言模型的钓鱼URL检测方法及系统。
背景技术
网络钓鱼攻击是互联网上最常见的网络攻击,旨在欺骗和窃取互联网用户的隐私信息。通常,攻击者通过电子邮件、社交媒体或其他在线渠道向毫无戒心的用户发送伪装成看似合法页面的钓鱼网站,诱使他们提交银行账户、身份信息或下载恶意软件。近几年,机器学习技术被广泛的应用于的自动化的检测钓鱼URL,从而保护互联网用户免受网络钓鱼攻击。基于机器学习的方法将网络钓鱼检测定义为二元分类问题,通过使用一组有标签的训练样本(由正常URL和网络钓鱼URL构成)训练一个二元分类器来推断互联网上的URL是否与网络钓鱼相关。
目前的反网络钓鱼机器学习方法仍面临诸多挑战。首先,真实的互联网世界中钓鱼URL的数据量与正常URL的数据量是极其不平衡的,而大多数用于分类的机器学习算法都是围绕每个类的示例数量相等的假设而设计的,从而导致建立起来的钓鱼URL检测模型容易出现高的假阳性。其次,为了躲避网络监管,钓鱼URL通常在短暂的活跃之后会通过简单替换字符的方式以新的变体出现。然而,目前的方法由于无法学习URL的语义信息从而难以检测到这些变体。三、目前钓鱼URL检测的严重受限于可用的网络钓鱼数据的规模。
发明内容
本发明针对现有技术中的缺点,提供了一种基于训练语言模型的钓鱼URL检测方法及系统。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种基于训练语言模型的钓鱼URL检测方法,包括以下步骤:
获取URL数据源,构建URL语料库;
基于URL语料库,构建URL分词系统,训练URL分词系统及初始化词嵌入,得到URL初始化子词向量;
构建多层网络编码器,将所述URL初始化子词向量输入至所述多层网络编码器中得到位置编码,得到含有位置编码的子词序列,将含有位置编码的子词序列进行多头注意力信息加工得到注意力分数;
执行掩码语言模型预训练任务:基于三元组掩码对所述多层网络编辑器进行训练,得到模糊掩码语言模型,其中,所述三元组掩码为:基于URL初始化子词向量组合形成三元组嵌入向量进而得到平均嵌入向量;
对所述模糊掩码语言模型进行微调处理以得到钓鱼URL检测任务模型;
将待测URL输入至所述钓鱼URL检测任务模型中,得到检测结果。
作为一种可实施方式,所述URL语料库的表达式如下:
D=unique(D1∪D2∪…∪Dn)
其中,D1,D2,D3,D4…Dn表示不同来源的URL数据源。
作为一种可实施方式,所述基于URL语料库,构建URL分词系统,包括以下步骤:
基于URL语料库生成URL分词系统:初始化种子词汇表,将URL语料库中的URL拆分为单个字符,基于BPE算法将所述单个字符进行合并形成字符块,其中,每个字符、特殊符号都作为种子词汇,生成其他的种子词汇;
训练URL分词系统以及初始化词嵌入。
作为一种可实施方式,所述训练URL分词系统以及初始化词嵌入,包括以下步骤:
基于URL分词系统,计算种子词汇表中每个子词在URL序列中的概率;
假设每个子词被丢弃,则通过最大期望算法获取每个子词被丢弃时产生的损失值;
丢弃最大损失值对应的子词,保留剩余损失值对应的子词;
重复以上步骤,直至最终字典达到预设大小,或直至连续迭代后子词数不发生变化,得到URL词典和分词器;
基于URL词典的索引进行初始化词嵌入,得到URL的初始数字表征。
作为一种可实施方式,所述构建多层网络编码器,包括以下步骤:
所述多层网络编辑器包括12个Transformer编码器,每个Transformer编码器分别包括多头注意力组件和前馈层组件;
当所述URL的初始化嵌入表示平均嵌入向量输入至多层网络编辑器,得到位置编码,所述位置编码为包含序列中特定位置信息的d维向量,定义如下:
将所述位置编码添加到实际嵌入表示之上,进而为输入子词序列配备相应的位置信息,得到含有位置编码的子词序列;
多头注意力组件对含有位置编码的子词序列进行多头注意力信息加工得到注意力分数,将所述注意力分数添加至实际嵌入表示中,Transformer编码器的注意机制通过三个矩阵实现,所述注意机制的计算公式表示如下:
其中,Attention(Q,K,V)表示加权和,Q表示查询,K表示键,V表示值;
前馈层组件包括两个线性变换函数和ReLU激活函数,则所述前馈层组件表示为:FFN(x)=ReLU(xW1+b1)W2+b2
其中,X表示输入,W1,b1,W2,b2分别表示参数。
作为一种可实施方式,所述对所述模糊掩码语言模型进行微调处理,包括以下步骤:
在所述模糊掩码语言预训练模型中加入应用程序网络组件;
通过监督对比学习调整所述应用程序网络组件和模糊掩码语言预训练模型的参数,所述监督对比学习的损失函数表示如下:
交叉熵的损失函数表示如下:
则整体损失函数表示如下:
其中,C表示任务种类,N表示训练样本的批次,xi表示批次中的样本,yi表示批次中的样本的标签,Φ(x)表示Transformer编码器,Φ(x)的输出是隐藏层l2归一化的结果,表示批次中具有相同标签yi的样本总数,θ>0是可调的标量温度参数;c表示yi的标签,yi,c表示ith示例属于类c的概率的模型输出,β表示能进行调整的标量加权超参数。
一种基于训练语言模型的钓鱼URL检测系统,包括获取构建模块、构建分词系统模块、构建编码器模块、执行任务模块、微调处理模块及结果检测模块;
所述获取构建模块,用于获取URL数据源,构建URL语料库;
所述构建分词系统模块,基于URL语料库,构建URL分词系统,训练URL分词系统及初始化词嵌入,得到URL初始化子词向量;
所述构建编码器模块,用于构建多层网络编码器,将所述URL初始化子词向量输入至所述多层网络编码器中得到位置编码,得到含有位置编码的子词序列,将含有位置编码的子词序列进行多头注意力信息加工得到注意力分数;
所述执行任务模块,用于执行掩码语言模型预训练任务:基于三元组掩码对所述多层网络编辑器进行训练,得到模糊掩码语言模型,其中,所述三元组掩码为:基于URL初始化子词向量组合形成三元组嵌入向量进而得到平均嵌入向量;
所述微调处理模块,用于对所述模糊掩码语言模型进行微调处理以得到钓鱼URL检测任务模型;
所述结果检测模块,用于将待测URL输入至所述钓鱼URL检测任务模型中,得到检测结果。
作为一种可实施方式,所述构建编码器模块,被设置为:
所述网络模型包括12个Transformer编码器,每个Transformer编码器分别包括多头注意力组件和前馈层组件;
当所述URL的初始化嵌入表示输入至网络模型后,得到位置编码,所述位置编码为包含序列中特定位置信息的d维向量,定义如下:
将所述位置嵌入添加到实际嵌入表示之上,进而为输入子词序列配备相应的位置信息,得到含有位置信息的子词序列;
所述多头注意力组件对含有位置信息的子词序列进行多头注意力信息加工得到注意力分数,并将注意力分数添加至嵌入表示中,Transformer编码器的注意机制通过三个矩阵实现,所述注意机制的计算公式表示如下:
其中,Attention(Q,K,V)表示加权和,Q表示查询,K表示键,V表示值;
前馈层组件设有两个线性变换函数和ReLU激活函数,所述前馈层组件的计算公式:FFN(x)=ReLU(xW1+b1)W2+b2
其中,X表示输入,W1,b1,W2,b2分别表示参数。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如下所述的方法:
获取URL数据源,构建URL语料库;
基于URL语料库,构建URL分词系统,训练URL分词系统及初始化词嵌入,得到URL初始化子词向量;
构建多层网络编码器,将所述URL初始化子词向量输入至所述多层网络编码器中得到位置编码,得到含有位置编码的子词序列,将含有位置编码的子词序列进行多头注意力信息加工得到注意力分数;
执行掩码语言模型预训练任务:基于三元组掩码对所述多层网络编辑器进行训练,得到模糊掩码语言模型,其中,所述三元组掩码为:基于URL初始化子词向量组合形成三元组嵌入向量进而得到平均嵌入向量;
对所述模糊掩码语言模型进行微调处理以得到钓鱼URL检测任务模型;
将待测URL输入至所述钓鱼URL检测任务模型中,得到检测结果。
一种基于训练语言模型的钓鱼URL检测装置,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下所述的方法:
获取URL数据源,构建URL语料库;
基于URL语料库,构建URL分词系统,训练URL分词系统及初始化词嵌入,得到URL初始化子词向量;
构建多层网络编码器,将所述URL初始化子词向量输入至所述多层网络编码器中得到位置编码,得到含有位置编码的子词序列,将含有位置编码的子词序列进行多头注意力信息加工得到注意力分数;
执行掩码语言模型预训练任务:基于三元组掩码对所述多层网络编辑器进行训练,得到模糊掩码语言模型,其中,所述三元组掩码为:基于URL初始化子词向量组合形成三元组嵌入向量进而得到平均嵌入向量;
对所述模糊掩码语言模型进行微调处理以得到钓鱼URL检测任务模型;
将待测URL输入至所述钓鱼URL检测任务模型中,得到检测结果。
本发明由于采用了以上技术方案,具有显著的技术效果:
本发明具有极高的钓鱼网站检测成功率,公开数据评估上识别率达到99%以上;本发明只需要将原始的URL送入到模型中,模型会自动地执行分词、生成词向量、特征提取以及训练;本发明的方法是完全从URL数据上的驱动出来的预训练模型,是真正的完全基于URL的预训练模型,这使得本发明的模型可以通过自监督的方式从几乎囊括整个互联网分布的数据语料中学习URL的根本特征以及深层的语义特征,从而使得准确率提高本发明的模糊掩码语言模型,它能够减小预训练的难度;在微调时候利用对比学习的手段去增强模型对钓鱼URL和正常URL的差异性区分,只需要几少量的标签数据就可以训练出好的任务模型。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法的整体流程示意图;
图2是本发明系统的整体结构示意图;
图3是本发明模糊掩码语言模型预训练任务示意图;
图4是本发明分词系统技术流程图;
图5是本发明流程的整体框架图。
具体实施方式
下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
实施例1:
一种基于训练语言模型的钓鱼URL检测方法,如图1所示,包括以下步骤:
S100、获取URL数据源,构建URL语料库;
S200、基于URL语料库,构建URL分词系统,训练URL分词系统及初始化词嵌入,得到URL初始化子词向量;
S300、构建多层网络编码器,将所述URL初始化子词向量输入至所述多层网络编码器中得到位置编码,得到含有位置编码的子词序列,将含有位置编码的子词序列进行多头注意力信息加工得到注意力分数;
S400、执行掩码语言模型预训练任务:基于三元组掩码对所述多层网络编辑器进行训练,得到模糊掩码语言模型,其中,所述三元组掩码为:基于URL初始化子词向量组合形成三元组嵌入向量进而得到平均嵌入向量;
S500、对所述模糊掩码语言模型进行微调处理以得到钓鱼URL检测任务模型;
S600、将待测URL输入至所述钓鱼URL检测任务模型中,得到检测结果。
在步骤S100中,URL语料库的表达式如下:
D=unique(D1∪D2∪…∪Dn)
其中,D1,D2,D3,D4…Dn表示不同来源的URL数据源。
在本发明中,爬取互联网上各种不同的URL数据源来构建一个迄今为止规模最大的URL语料库来预训练语言模型。将这个语料库表示为D,将它涵盖的资源表示为Di,D=unique(D1∪D2∪…∪Dn)。D1包含从Common Crawl中提取到的28.5亿个网页的URL;D2总共包含3.3亿万个URL,这些URL是通过爬取在Open PageRank计划中排名前1000万个网站而获得的;D3是一个包含5.382亿个URL的数据集,其中大部分是与色情、赌博、诈骗、钓鱼等相关的过期域;D4是从PhishTank中提取的220万个URL的集合。
在步骤S200中,基于URL语料库,构建URL分词系统,包括以下步骤:
基于URL语料库生成URL分词系统:初始化种子词汇表,将URL语料库中的URL拆分为单个字符,基于BPE算法将所述单个字符进行合并形成字符块,其中,每个字符、特殊符号都作为种子词汇,生成其他的种子词汇;训练URL分词系统以及初始化词嵌入。
而训练URL分词系统以及初始化词嵌入,可以通过以下步骤实现:
基于URL分词系统,计算种子词汇表中每个子词在URL序列中的概率;
假设每个子词被丢弃,则通过最大期望算法获取每个子词被丢弃时产生的损失值;
丢弃最大损失值对应的子词,保留剩余损失值对应的子词;
重复以上步骤,直至最终字典达到预设大小,或直至连续迭代后子词数不发生变化,得到URL词典和分词器;
基于URL词典的索引进行初始化词嵌入,得到URL的初始数字表征。
以上的过程可以理解为以下几个步骤:
1)计算种子词汇表中每一个字词在URL序列中的概率;
2)通过最大期望算法计算出来的每个子词被丢弃会导致的损失值;
3)丢弃具有最大损失值的标记。在步骤3)中,选择根据损失计算丢弃底部一定比例的子词,比如说20%或者30%的子词(当然也可以选择其他数据,在此不再限定);
4)重复1)至3)的步骤,直到达到所需的最终字典大小,或者直到连续迭代后子词数没有变化,可以得到一个URL词典和一个分词器,然后便可以基于URL词典的索引来初始化词嵌入,从而获得URL的初始数字表征。
最大期望算法(Expectation-Maximization algorithm,EM),或Dempster-Laird-Rubin算法,是一类通过迭代进行极大似然估计(Maximum Likelihood Estimation,MLE)的优化算法,通常作为牛顿迭代法(Newton-Raphson method)的替代用于对包含隐变量(latentvariable)或缺失数据(incomplete-data)的概率模型进行参数估计。
如附图4所示,基于从互联网上获取到的超过30亿条URL的语料库,首先构建一个URL分词系统,包括1)将URL字符串看作为是unicode字符流,这使得不需要特殊处理URL中的特殊符号;2)使用BPE算法合并unicode字符并基于合并后的字符串在URL语料库中的频率来生成一个庞大的种子词典;3)基于一元语言模型任务,分别计算每个子词在整个序列中出现的概率,并使用最大期望算法计算丢弃一个特定子词造成的损失;4)根据损失,丢掉一部分子词,将剩下子词作为URL序列的词典;5)基于词典和学习到的语言模型实现自动的分词系统。
在步骤S300中,构建多层网络编码器,包括以下步骤:
所述多层网络编辑器包括12个Transformer编码器,每个Transformer编码器分别包括多头注意力组件和前馈层组件;
当所述URL的初始化嵌入表示平均嵌入向量输入至多层网络编辑器,得到位置编码,所述位置编码为包含序列中特定位置信息的d维向量,定义如下:
将所述位置编码添加到实际嵌入表示之上,进而为输入子词序列配备相应的位置信息,得到含有位置编码的子词序列;
多头注意力组件对含有位置编码的子词序列进行多头注意力信息加工得到注意力分数,将所述注意力分数添加至实际嵌入表示中,Transformer编码器的注意机制通过三个矩阵实现,所述注意机制的计算公式表示如下:
其中,Attention(Q,K,V)表示加权和,Q表示查询,K表示键,V表示值;
前馈层组件包括两个线性变换函数和ReLU激活函数,则所述前馈层组件表示为:FFN(x)=ReLU(xW1+b1)W2+b2
其中,X表示输入,W1,b1,W2,b2分别表示参数。
此构建多层网络编码器步骤采用基础Transformer编码器网络模型实现的,在此采用了12个标准的Transformer编码器从而形成一个深度的大型网络,Transformer编码器网络模型包含两个关键组件:多头注意力组件和前馈层组件。数据流经过各个组件的处理流程如下:
URL的初始化嵌入表示输入到多层网络编辑器模型中,首先会被加上位置编码以获取元素的位置和顺序的基本信息,此位置编码定义了语法,从而定义序列的实际语义。这个位置编码不是一个数字,而是一个包含序列中特定位置信息的d维向量。定义w为元素在输入中的位置,为其对应的编码,d为编码维度,表示产生输出向量的函数,则位置编码的公式如下:
其中,i表示第i个元素在d维位置编码向量中的值,n=10000,0≤k<d/2。这种位置编码方案允许模型毫不费力地参与相对位置,计算出的位置嵌入被添加到实际嵌入表示之上,为输入子词序列配备它们的位置信息。
配置上位置编码的嵌入表示之后进入到多层网络编辑器模型中,被多头注意力组件进行多头注意力信息加工。多头注意力组件使用三个可训练的线性层来计算三个矩阵,称为查询、键和值,生成具有注意力分数的嵌入表示。当数据流经堆栈中后面的Transformer编码器时,每个多头注意力组件都会将自己的注意力分数添加到表示中。注意机制描述了神经网络动态学习序列元素的加权平均值的方式。Transformer编码器中的attention机制就是通过上面提到的三个矩阵来实现的,通常用符号表示为Q(query)、K(key)、V(value)。attention的输出是值的加权和,其中分配给每个值的权重由具有相应键的查询计算得出,计算公式如下:
多头注意力组件之后是一个完全连接的前馈层组件,前馈层组件设有两个线性变换函数和ReLU激活函数,这个前馈层组件在每个位置共享参数,因此对给定序列的每个元素应用单独的、相同的线性变换,其目的是将注意力层的输出投射到更大的空间中,从而更容易分解信息。前馈层组件的计算公式如下:
FFN(x)=ReLU(xW1+b1)W2+b2。
在步骤S400执行掩码语言模型预训练任务中,模糊掩码语言模型是对经典掩码语言模型预训练任务的改进,其目的是使预训练任务更适合URL数据,能更清楚的描述出模糊掩码语言模型的设计意图和实现细节。URL数据包含协议、域名、文件路径以及可能的参数和锚点,由于组成组件的字符极其多样,会导致标记序列的语义关系空间可能非常大,使得在URL数据上的自监督预训练比在文本上更难。而此模糊掩码语言模型通过采用三元组掩码方法缩小了URL数据中的语义空间。如图3所示,采用此种方式可以屏蔽了给定标记序列的3个标记的连续片段,其目标是预测3个连续标记的嵌入平均值。与标准相比掩码语言模型,模糊掩码语言模型消除了标记三元组中标记的顺序关系,从而将原始语义空间减少了6倍。另一方面,三元组方法包含了子词的邻域信息,这也使得基于三元组的模型在上下文预测中更加准确。模糊掩码语言模型预训练任务掩码10%的子词三元组,而不是单个子词,它的训练目标是训练模型能够预测被掩码的三元组。1)原始的URL输入之后进行此向量的初始化;2)利用大小为3的滑动窗口逐个锁定三个连续的子词并逐个求出平均词向量;3)随机掩码平均词向量;4)预测被掩码的向量。
在步骤S500中,对训练好的多层网络编辑器模型进行微调处理以创建钓鱼URL检测任务模型,包括以下步骤:
在模糊掩码语言模型中加入应用程序网络组件,通过监督对比学习调整应用程序网络组件和模糊掩码语言模型的参数,监督对比学习的损失函数表示如下:
交叉熵的损失函数表示如下:
则整体损失函数表示如下:
其中,C表示任务种类,N表示训练样本的批次,xi表示批次中的样本,yi表示批次中的样本的标签,Φ(x)表示Transformer编码器,Φ(x)的输出是隐藏层l2归一化的结果,表示批次中具有相同标签yi的样本总数,θ>0是可调的标量温度参数;c表示yi的标签,yi,c表示ith示例属于类c的概率的模型输出,β表示能进行调整的标量加权超参数。
此过程可以叫做微调过程,在多层网络编辑器模型添加了一个应用程序网络,再使用包含网络钓鱼URL数据和良性URL数据的任务训练集端到端地微调所有的模型参数。考虑到一个好的任务模型需要捕捉一个类中示例之间的相似性以及它们与其他类中示例之间的差异,在此引入了监督对比学习来帮助提高微调预训练的性能,通过计算监督对比学习(SCL)损失函数来实现的,损失函数与交叉熵(CE)的损失函数相结合,形成微调阶段的最终学习目标。对于具有C类的分类任务,训练样本的批次为N;xi,yi分别代表批次中的样本和样本的标签;Φ(x)表示一个编码器,其输出是模型最终隐藏层的l2归一化的结果;表示batch中具有相同标签yi的样本总数;θ>0是一个可调的标量温度参数,控制类的分离;yi,c表示yi的标签;yi,c表示ith示例属于类c的概率的模型输出;β是一个标量加权超参数,针对每个下游任务和设置进行调整,SCL损失函数公式如下:
交叉熵的损失如下:
整体loss是SCL和CE loss的加权平均,如下:
本发明的方法具有极高的钓鱼网站检测成功率,公开数据评估上识别率达到99%以上;能端到端的、即插即用的方法,不需要任何的手工的数据处理,只需要将原始的URL送入到模型中,模型会自动地执行分词、生成词向量、特征提取以及训练;另外,基于URL数据训练出来的预训练模型,使得到的钓鱼URL检测任务模型通过自监督的方式学习URL数据的根本特征以及深层的语义特征,使得钓鱼URL检测任务模型取得更高的准确率;此发明试用于URL数据的预训练方法—模糊掩码语言模型,可以减小预训练的难度;另外,加入了微调过程,在微调的时候利用对比学习的手段增强模型对钓鱼URL和正常URL的差异性区分,只需要极少数的标签数据就可以训练出好的任务模型进而得到钓鱼URL检测任务模型。
实施例2:
一种基于训练语言模型的钓鱼URL检测系统,如图2所示,包括获取构建模块100、构建分词系统模块200、构建编码器模块300、执行任务模块400、微调处理模块500及结果检测模块600;
所述获取构建模块100,用于获取URL数据源,构建URL语料库;
所述构建分词系统模块200,基于URL语料库,构建URL分词系统,训练URL分词系统及初始化词嵌入,得到URL初始化子词向量;
所述构建编码器模块300,用于构建多层网络编码器,将所述URL初始化子词向量输入至所述多层网络编码器中得到位置编码,得到含有位置编码的子词序列,将含有位置编码的子词序列进行多头注意力信息加工得到注意力分数;
所述执行任务模块400,用于执行掩码语言模型预训练任务:基于三元组掩码对所述多层网络编辑器进行训练,得到模糊掩码语言模型,其中,所述三元组掩码为:基于URL初始化子词向量组合形成三元组嵌入向量进而得到平均嵌入向量;
所述微调处理模块500,用于对所述模糊掩码语言模型进行微调处理以得到钓鱼URL检测任务模型;
所述结果检测模块600,用于将待测URL输入至所述钓鱼URL检测任务模型中,得到检测结果。
在一个实施例中,构建编码器模块300被设置为:
所述网络模型包括12个Transformer编码器,每个Transformer编码器分别包括多头注意力组件和前馈层组件;
当所述URL的初始化嵌入表示输入至网络模型后,得到位置编码,所述位置编码为包含序列中特定位置信息的d维向量,定义如下:
将所述位置嵌入添加到实际嵌入表示之上,进而为输入子词序列配备相应的位置信息,得到含有位置信息的子词序列;
所述多头注意力组件对含有位置信息的子词序列进行多头注意力信息加工得到注意力分数,并将注意力分数添加至嵌入表示中,Transformer编码器的注意机制通过三个矩阵实现,所述注意机制的计算公式表示如下:
其中,Attention(Q,K,V)表示加权和,Q表示查询,K表示键,V表示值;
前馈层组件设有两个线性变换函数和ReLU激活函数,所述前馈层组件的计算公式:FFN(x)=ReLU(xW1+b1)W2+b2
其中,X表示输入,W1,b1,W2,b2分别表示参数。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本发明专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
Claims (10)
1.一种基于训练语言模型的钓鱼URL检测方法,其特征在于,包括以下步骤:
获取URL数据源,构建URL语料库;
基于URL语料库,构建URL分词系统,训练URL分词系统及初始化词嵌入,得到URL初始化子词向量;
构建多层网络编码器,将所述URL初始化子词向量输入至所述多层网络编码器中得到位置编码,得到含有位置编码的子词序列,将含有位置编码的子词序列进行多头注意力信息加工得到注意力分数;
执行掩码语言模型预训练任务:基于三元组掩码对所述多层网络编辑器进行训练,得到模糊掩码语言模型,其中,所述三元组掩码为:基于URL初始化子词向量组合形成三元组嵌入向量进而得到平均嵌入向量;
对所述模糊掩码语言模型进行微调处理以得到钓鱼URL检测任务模型;
将待测URL输入至所述钓鱼URL检测任务模型中,得到检测结果。
2.根据权利要求1所述的基于训练语言模型的钓鱼URL检测方法,其特征在于,所述URL语料库的表达式如下:
D=unique(D1∪D2∪…∪Dn)
其中,D1,D2,D3,D4…Dn表示不同来源的URL数据源。
3.根据权利要求1所述的基于训练语言模型的钓鱼URL检测方法,其特征在于,所述基于URL语料库,构建URL分词系统,包括以下步骤:
基于URL语料库生成URL分词系统:初始化种子词汇表,将URL语料库中的URL拆分为单个字符,基于BPE算法将所述单个字符进行合并形成字符块,其中,每个字符、特殊符号都作为种子词汇,生成其他的种子词汇;
训练URL分词系统以及初始化词嵌入。
4.根据权利要求3所述的基于训练语言模型的钓鱼URL检测方法,其特征在于,所述训练URL分词系统以及初始化词嵌入,包括以下步骤:
基于URL分词系统,计算种子词汇表中每个子词在URL序列中的概率;
假设每个子词被丢弃,则通过最大期望算法获取每个子词被丢弃时产生的损失值;
丢弃最大损失值对应的子词,保留剩余损失值对应的子词;
重复以上步骤,直至最终字典达到预设大小,或直至连续迭代后子词数不发生变化,得到URL词典和分词器;
基于URL词典的索引进行初始化词嵌入,得到URL的初始数字表征。
5.根据权利要求1所述的基于训练语言模型的钓鱼URL检测方法,其特征在于,所述构建多层网络编码器,包括以下步骤:
所述多层网络编辑器包括12个Transformer编码器,每个Transformer编码器分别包括多头注意力组件和前馈层组件;
当所述URL的初始化嵌入表示平均嵌入向量输入至多层网络编辑器,得到位置编码,所述位置编码为包含序列中特定位置信息的d维向量,定义如下:
将所述位置编码添加到实际嵌入表示之上,进而为输入子词序列配备相应的位置信息,得到含有位置编码的子词序列;
多头注意力组件对含有位置编码的子词序列进行多头注意力信息加工得到注意力分数,将所述注意力分数添加至实际嵌入表示中,Transformer编码器的注意机制通过三个矩阵实现,所述注意机制的计算公式表示如下:
其中,Attention(Q,K,V)表示加权和,Q表示查询,K表示键,V表示值;
前馈层组件包括两个线性变换函数和ReLU激活函数,则所述前馈层组件表示为:FFN(x)=ReLU(xW1+b1)W2+b2
其中,X表示输入,W1,b1,W2,b2分别表示参数。
6.根据权利要求1所述的基于训练语言模型的钓鱼URL检测方法,其特征在于,所述对所述模糊掩码语言模型进行微调处理,包括以下步骤:
在所述模糊掩码语言预训练模型中加入应用程序网络组件;
通过监督对比学习调整所述应用程序网络组件和模糊掩码语言预训练模型的参数,所述监督对比学习的损失函数表示如下:
交叉熵的损失函数表示如下:
则整体损失函数表示如下:
7.一种基于训练语言模型的钓鱼URL检测系统,其特征在于,包括获取构建模块、构建分词系统模块、构建编码器模块、执行任务模块、微调处理模块及结果检测模块;
所述获取构建模块,用于获取URL数据源,构建URL语料库;
所述构建分词系统模块,基于URL语料库,构建URL分词系统,训练URL分词系统及初始化词嵌入,得到URL初始化子词向量;
所述构建编码器模块,用于构建多层网络编码器,将所述URL初始化子词向量输入至所述多层网络编码器中得到位置编码,得到含有位置编码的子词序列,将含有位置编码的子词序列进行多头注意力信息加工得到注意力分数;
所述执行任务模块,用于执行掩码语言模型预训练任务:基于三元组掩码对所述多层网络编辑器进行训练,得到模糊掩码语言模型,其中,所述三元组掩码为:基于URL初始化子词向量组合形成三元组嵌入向量进而得到平均嵌入向量;
所述微调处理模块,用于对所述模糊掩码语言模型进行微调处理以得到钓鱼URL检测任务模型;
所述结果检测模块,用于将待测URL输入至所述钓鱼URL检测任务模型中,得到检测结果。
8.根据权利要求7所述的基于训练语言模型的钓鱼URL检测系统,其特征在于,所述构建编码器模块,被设置为:
所述网络模型包括12个Transformer编码器,每个Transformer编码器分别包括多头注意力组件和前馈层组件;
当所述URL的初始化嵌入表示输入至网络模型后,得到位置编码,所述位置编码为包含序列中特定位置信息的d维向量,定义如下:
将所述位置嵌入添加到实际嵌入表示之上,进而为输入子词序列配备相应的位置信息,得到含有位置信息的子词序列;
所述多头注意力组件对含有位置信息的子词序列进行多头注意力信息加工得到注意力分数,并将注意力分数添加至嵌入表示中,Transformer编码器的注意机制通过三个矩阵实现,所述注意机制的计算公式表示如下:
其中,Attention(Q,K,V)表示加权和,Q表示查询,K表示键,V表示值;
前馈层组件设有两个线性变换函数和ReLU激活函数,所述前馈层组件的计算公式:FFN(x)=ReLU(xW1+b1)W2+b2
其中,X表示输入,W1,b1,W2,b2分别表示参数。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任意一项所述的方法。
10.一种基于训练语言模型的钓鱼URL检测装置,包括存储器、处理器以及存储在所述存储器中并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310105616.4A CN115994224A (zh) | 2023-01-29 | 2023-01-29 | 基于预训练语言模型的钓鱼url检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310105616.4A CN115994224A (zh) | 2023-01-29 | 2023-01-29 | 基于预训练语言模型的钓鱼url检测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115994224A true CN115994224A (zh) | 2023-04-21 |
Family
ID=85994987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310105616.4A Pending CN115994224A (zh) | 2023-01-29 | 2023-01-29 | 基于预训练语言模型的钓鱼url检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115994224A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775497A (zh) * | 2023-08-17 | 2023-09-19 | 北京遥感设备研究所 | 数据库测试用例生成需求描述编码方法 |
CN117408311A (zh) * | 2023-10-20 | 2024-01-16 | 中国石油大学(华东) | 一种基于CNN、Transformer和迁移学习的小样本恶意网站检测方法 |
-
2023
- 2023-01-29 CN CN202310105616.4A patent/CN115994224A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116775497A (zh) * | 2023-08-17 | 2023-09-19 | 北京遥感设备研究所 | 数据库测试用例生成需求描述编码方法 |
CN116775497B (zh) * | 2023-08-17 | 2023-11-14 | 北京遥感设备研究所 | 数据库测试用例生成需求描述编码方法 |
CN117408311A (zh) * | 2023-10-20 | 2024-01-16 | 中国石油大学(华东) | 一种基于CNN、Transformer和迁移学习的小样本恶意网站检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115994224A (zh) | 基于预训练语言模型的钓鱼url检测方法及系统 | |
CN116450796B (zh) | 一种智能问答模型构建方法及设备 | |
CN109190521B (zh) | 一种基于知识提纯的人脸识别模型的构建方法及应用 | |
CN112232087A (zh) | 一种基于Transformer的多粒度注意力模型的特定方面情感分析方法 | |
CN113821587B (zh) | 文本相关性确定方法、模型训练方法、装置及存储介质 | |
CN116737938A (zh) | 基于微调大模型在线数据网络细粒度情感检测方法及装置 | |
Luan et al. | The uwnlp system at semeval-2018 task 7: Neural relation extraction model with selectively incorporated concept embeddings | |
Zhang et al. | Multifeature named entity recognition in information security based on adversarial learning | |
CN113127737A (zh) | 融合注意力机制的个性化搜索方法和搜索系统 | |
CN115270752A (zh) | 一种基于多层次对比学习的模板句评估方法 | |
Madukwe et al. | A ga-based approach to fine-tuning bert for hate speech detection | |
CN113722439B (zh) | 基于对抗性类别对齐网络的跨领域情感分类方法及系统 | |
Athavale et al. | Predicting algorithm classes for programming word problems | |
CN117521012A (zh) | 基于多模态上下文分层分步对齐的虚假信息检测方法 | |
CN112966507A (zh) | 构建识别模型及攻击识别方法、装置、设备及存储介质 | |
WO2021160822A1 (en) | A method for linking a cve with at least one synthetic cpe | |
CN116684144A (zh) | 一种恶意域名检测方法及装置 | |
CN114091555A (zh) | 图像识别模型的训练方法、装置、电子设备及存储介质 | |
Tan et al. | FN-Net: A deep convolutional neural network for fake news detection | |
CN116167353A (zh) | 一种基于孪生长短期记忆网络的文本语义相似度度量方法 | |
CN113722477B (zh) | 基于多任务学习的网民情绪识别方法、系统及电子设备 | |
CN111274359B (zh) | 基于改进vhred与强化学习的查询推荐方法及系统 | |
CN112669836B (zh) | 命令的识别方法、装置及计算机可读存储介质 | |
Bosc et al. | Learning word embeddings from dictionary definitions only | |
CN114499906B (zh) | 一种dga域名检测方法及系统 |
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 |