垃圾信息的检测方法、设备和存储介质与流程

文档序号:22967365发布日期:2020-11-19 21:41阅读:160来源:国知局
垃圾信息的检测方法、设备和存储介质与流程

本发明属于信息安全技术领域,具体涉及一种垃圾信息的检测方法、设备和存储介质。



背景技术:

垃圾短信和垃圾邮件等垃圾信息困扰着大部分互联网用户群体。现有技术中,通常使用关键字匹配或者朴素贝叶斯分类方法对垃圾信息进行检测,这种检测方法虽然识别率较高,但考虑的仅是单个字或词对检测结果的影响,不涉及句子之间和上下文意思的理解,因此对一些金融诈骗、钓鱼邮件等故意逃避使用特定关键字的信息,拦截效果不是很好,存在漏识别问题;而对一些运营推广、客户营销、账单通知等含有特定关键字的信息又存在假识别的问题。

因此,如何降低垃圾信息的漏识别率、假识别率是本领域技术人员亟待解决的技术问题。



技术实现要素:

本发明的主要目的是提供一种垃圾信息的检测方法、设备和存储介质,以解决现有技术中垃圾信息的漏识别率高、假识别率高的问题。

针对上述问题,本发明提供了一种垃圾信息的检测方法,包括:

将待检测信息输入预先训练的bert识别模型的编码层进行编码,得到所述待检测信息对应的编码特征向量;

将所述待检测信息对应的编码特征向量输入预先训练的bert识别模型的解码层进行解码,并利用所述解码层对应的判决模型,计算所述待检测信息对应的编码特征向量对应的概率;

若所述概率大于或等于预设概率,确定所述待检测信息为垃圾信息。

进一步地,上述所述的垃圾信息的检测方法中,利用预先训练的bert识别模型的编码层对待检测信息进行编码,得到所述待检测信息对应的编码特征向量之前,还包括:

将获取的原始样本数据输入预设的bert预训练模型中的编码层进行编码,得到所述原始样本数据对应的编码特征向量;

利用所述原始样本数据对应的编码特征向量对bert预训练模型中解码层对应的判决模型进行k折交叉训练,得到对应于k组验证数据的k组模型参数;

根据所述k组模型参数和k组验证数据,计算对应于k组验证数据的k组误差数据;

根据所述k组误差数据,确定所述判决模型的优化参数;

根据所述判决模型的优化参数,对所述判决模型进行优化,得到优化bert预训练模型作为所述bert识别模型。

进一步地,上述所述的垃圾信息的检测方法中,利用所述原始样本数据对应的编码特征向量对bert预训练模型中解码层对应的判决模型进行k折交叉训练,得到对应于k组验证数据的k组模型参数,包括:

将所述原始样本数据对应的编码特征向量划分为k组,得到k组样本向量数据;

遍历地将所述k组样本向量数据中的其中一组样本向量数据作为验证数据,并将k-1组样本向量数据作为训练数据,利用训练数据对所述判决模型进行训练,得到对应于各组验证数据的模型参数。

进一步地,上述所述的垃圾信息的检测方法中,根据所述k组模型参数和k组验证数据,计算对应于k组验证数据的k组误差数据,包括:

利用k组模型参数下的判决模型,对k组验证数据进行预测,得到k组验证数据的k组概率;

根据k组验证数据的k组概率,确定k组验证数据对应的k组预测结果;

根据k组验证数据和k组预测结果,确定k组误差数据。

进一步地,上述所述的垃圾信息的检测方法中,所述将获取的原始样本数据输入预设的bert预训练模型中的编码层进行编码,得到所述原始样本数据对应的编码特征向量之后,还包括:

锁定所述编码层的参数。

进一步地,上述所述的垃圾信息的检测方法中,根据所述k组误差数据,确定所述判决模型的优化参数,包括:

根据所述k组误差数据,计算各组模型参数的权重;

根据所述权重对所述k组模型参数进行加权平均,得到平均模型参数作为所述判决模型的优化参数。

进一步地,上述所述的垃圾信息的检测方法中,所述判决模型包括全连接神经网络的损失函数或带核函数的支持向量机的损失函数。

进一步地,上述所述的垃圾信息的检测方法中,若所述判决模型包括全连接神经网络的损失函数,对bert预训练模型中解码层对应的判决模型进行k折交叉训练,得到对应于k组验证数据的k组模型参数之前,还包括:

若所述原始样本数据的数目小于预设阈值,在所述全连接神经网络的损失函数中添加正则化项,以更新所述全连接神经网络的损失函数。

本发明还提供一种垃圾信息的检测设备,包括存储器和处理器;

所述存储器上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述垃圾信息的检测方法的步骤。

本发明还提供给一种存储介质,其上存储有计算机程序,所述计算机程序被控制器执行时实现如上所述垃圾信息的检测方法的步骤。

与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:

应用本发明的垃圾信息的检测方法,通过将待检测信息输入预先训练的具有强大的字和句子的语义表示功能的bert识别模型的编码层,以便提取待检测信息对应的编码特征向量,实现了单个字或词与待检测信息的上下文建立很好地编码联系,提高了单个字或词的检测结果的准确性,这样,再利用预先训练的bert识别模型的解码层进行解码后,由解码层对应的判决模型,能够较准确地计算出待检测信息对应的编码特征向量对应的概率,进而能够根据计算的概率较准确的检测出出待检测信息为垃圾信息。采用本发明的技术方案,能够降低垃圾信息的漏识别率、假识别率。

本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明的垃圾信息的检测方法实施例的流程图;

图2为本发明的垃圾信息的检测装置实施例的结构示意图。

具体实施方式

以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。

bert(bidirectionalencoderrepresentationfromtransformers,transformer的双向编码表示)预训练模型:bert预训练模型利用maskedmodel实现了语言模型的双向性,证明了双向性对语言表示预训练的重要性。bert预训练模型是真正意义上的双向语言模型,每个词可以同时利用该词的上下文信息。bert预训练模型是第一个微调模型在sentence-level和tokenlevel自然语言任务都达到了最好效果。证明了pre-trainedrepresentations可以缓解了不同任务对特殊模型结构的设计需求。bert在11个自然语言处理任务上达到了最好效果。并在bert的extensiveablations证明了“bert的双向性”是一个重要的创新。bert预训练模型实现了文本到动态字向量的转化,增强了文本向量的语义信息,从而具有强大的字和句子的语义表示功能。

实施例一

为解决现有技术中存在的上述技术问题,本发明实施例提供了一种垃圾信息的检测方法。

图1为本发明的垃圾信息的检测方法实施例的流程图,如图1所示,本实施例的垃圾信息的检测方法具体可以包括如下步骤:

100、将待检测信息输入预先训练的bert识别模型的编码层进行编码,得到待检测信息对应的编码特征向量;

在一个具体实现过程中,由于bert预训练模型具有强大的字和句子的语义表示功能,本实施例中,可以将bert预训练模型与深度学习技术相融合,预先训练识别垃圾信息的bert识别模型。

具体地,bert识别模型的训练过程如下:

a、将获取的原始样本数据输入预设的bert预训练模型中的编码层进行编码,得到原始样本数据对应的编码特征向量;

本实施例中,可以收集海量数据,并由人工对海量数据进行垃圾信息或非垃圾信息标注,得到原始样本数据,其中垃圾信息对应的数据可以标注为0,非垃圾信息对应的数据可以标注为1。将得到的原始样本数据输入预设的bert预训练模型中的编码层进行编码,得到原始样本数据对应的编码特征向量,可以记为1*d维的向量v。其中,本实施例中可以预先设置bert预训练模型的参数,初始化bert预训练模型,bert预训练模型的参数至少包括迭代次数,学习步长,权重衰减,选择的激活函数,是否使用dropout等。根据实际应用需要,还可设置最大序列长度、批处理数据量大小、随机失活等参数。当数据集越小时,bert模型分类的效果对于模型参数的选择越敏感。在本发明技术方案中优选地,学习率2e-5,随机失活0.1,迭代次数6。

例如,句子s=[w1,w2,...,wi,...,wn]由n个单词组成,目标词t=[wi,wi+1,...,wi+m-1]由m个单词组成,且目标词t是句子s的子集;句子s经过分词处理后得到的句子表示为sr:sr=[x0,x1,x2,...,xi′,...,xn′,xn′+1];该句子中的目标词表示为tr:tr=[xi′,xi′+1,...,xi′+m′-1]且tr∈sr;其中,x0和xn′+1分别表示[cls]标签和[sep]标签对应的词向量,[cls]标签是指:bert预训练模型在分词中所添加的分类标签,[sep]标签是指:bert模型在句子结尾添加的句子结束标签。sr经过bert预训练模型的多层转换网络后,得到最后一层中关于目标词tr的编码结果表示为trvec:trvec=[vi′,vi′+1,...,vi′+m′-1],trvec∈rm×d,trvec是目标词tr的向量表示,其中r表示向量空间,长度为m′,d表示向量的维度;对trvec进行最大池化处理后得到编码特征向量v,v=max{trvec,dim=0},v∈r1×d

需要说明的是,在得到原始样本数据对应的编码特征向量之后,可以锁定编码层的参数,以便在后续提取待检测信息的编码特征向量时,在同一参数下提取,保证待检测信息的编码特征向量与原始样本数据对应的编码特征向量的一致性。

在实际应用中,可以实时获取用户接收到的数据作为海量数据,并可以根据用户的行为对用户接收到的数据进行自动标注,以减少人工标注成本。具体地,用户接收到某一数据后,可以获取用户对该数据的浏览时长,以便获知用户对接收的数据的感兴趣度,对于感兴趣度较低的数据,可以默认为垃圾数据,或者再设定一种其他类型的数据。例如,用户对某种类型的短信总是直接标记为已读或者打开后就关闭,说明用户对这类短信感兴趣度比较低,可以将其认定为垃圾数据或者其他类型数据,若用户对另一类短信打开查看时,打开的时长超过预设时长,说明用户对这类短信内容比较感兴趣,可以认为非垃圾信息,这样可以实现自动标注,且能够更加用户的喜好对垃圾信息进行个性化检测、拦截。

b、利用原始样本数据对应的编码特征向量对bert预训练模型中解码层对应的判决模型进行k折交叉训练,得到对应于k组验证数据的k组模型参数;

在一个具体实现过程中,可以将bert预训练模型中解码层设置为一个深度学习算法对应的函数,此处可以称为解码层对应的判决模型,这样,可以将原始样本数据对应的编码特征向量作为bert预训练模型中解码层对应的判决模型的输入信息,并进行k折交叉训练,得到对应于k组验证数据的k组模型参数。例如,判决模型包括全连接神经网络的损失函数或带核函数的支持向量机的损失函数。

具体地,可以将原始样本数据对应的编码特征向量划分为k组,得到k组样本向量数据;遍历地将k组样本向量数据中的其中一组样本向量数据作为验证数据,并将k-1组样本向量数据作为训练数据,利用训练数据对判决模型进行训练,得到对应于各组验证数据的模型参数。

例如,k可以为4,这样前3组样本向量数据作为训练数据,将第4组样本向量数据作为验证数据,将判决模型的参数设置为随机数,利用训练数据对判决模型进行训练,这样就得到对应于该组训练数据的一组模型参数。利用相同方法,遍历地将每一组数据均作为训练数据,那么将得到对应于各组训练数据的模型参数,即共得到4组验证数据的模型参数。

本实施例中,若判决模型为全连接神经网络的损失函数,全连接神经网络的神经元个数未向量v的第二个维度d,并加上一个偏置,对应地,神经网络权重参数维度为(d+1)*1维。在对全连接神经网络的损失函数进行训练时,可以利用交叉熵crossentropy计算损失函数,进行反向传播算法,更新模型的权值参数,进行迭代运算。若判决模型为带核函数的支持向量机(supportvectormachine,svm)的的损失函数,则训练目标转换为寻找svm的最优分割超平面,转化为解二次规划问题即可。

需要说明的是,本实施例中,若判决模型包括全连接神经网络的损失函数,且原始样本数据的数目小于预设阈值,可以在所述全连接神经网络的损失函数中添加正则化项,以更新所述全连接神经网络的损失函数,从而防止模型过拟合。

c、根据k组模型参数和k组验证数据,计算对应于k组验证数据的k组误差数据;

具体地,可以利用k组模型参数下的判决模型,对k组验证数据进行预测,得到k组验证数据的k组概率;根据k组验证数据的k组概率,确定k组验证数据对应的k组预测结果,如是预测结果可以包括垃圾信息和废垃圾信息;这样,可以根据k组验证数据和k组预测结果,确定k组误差数据。例如,k组验证数据为垃圾数据,但是识别出来的为非垃圾数据,说明存在误差,经过计算后可以得到k组误差数据。

d、根据k组误差数据,确定判决模型的优化参数;

具体地,可以根据k组误差数据,计算各组模型参数的权重;根据权重对k组模型参数进行加权平均,得到平均模型参数作为判决模型的优化参数。例如,可以将k组误差数据的倒数进行归一化来计算各组验证数据的权重。其中,如果验证数据的误差数据越小,那么该组验证数据的权重就将越大。

e、根据判决模型的优化参数,对判决模型进行优化,得到优化bert预训练模型作为bert识别模型。

在得到判决模型的优化参数后,即可以对判决模型进行优化,得到优化bert预训练模型作为bert识别模型。

在一个具体实现过程中,在进行垃圾信息进行检测时,可以将待检测信息输入预先训练的bert识别模型的编码层进行编码,得到待检测信息对应的编码特征向量。具体地得到待检测信息对应的编码特征向量的过程与前述过程相同,详细请参考上述相关记载,在此不再赘述。

101、将待检测信息对应的编码特征向量输入预先训练的bert识别模型的解码层进行解码,并利用解码层对应的判决模型,计算待检测信息对应的编码特征向量对应的概率;

本实施例中,可以将待检测信息对应的编码特征向量输入预先训练的bert识别模型的解码层进行解码,并利用解码层对应的判决模型,计算待检测信息对应的编码特征向量对应的概率。

102、若待检测信息对应的编码特征向量对应的概率大于或等于预设概率,确定待检测信息为垃圾信息。

具体地,预设概率优选为0.5。本实施例中,若待检测信息对应的编码特征向量对应的概率大于或等于0.5,确定待检测信息为垃圾信息,否则若待检测信息对应的编码特征向量对应的概率小于0.5,确定待检测信息为非垃圾信息。

本实施例的垃圾信息的检测方法,通过将待检测信息输入预先训练的具有强大的字和句子的语义表示功能的bert识别模型的编码层,以便提取待检测信息对应的编码特征向量,实现了单个字或词与待检测信息的上下文建立很好地编码联系,提高了单个字或词检测结果的准确性,这样,再利用预先训练的bert识别模型的解码层进行解码后,由解码层对应的判决模型,能够较准确地计算出待检测信息对应的编码特征向量对应的概率,进而能够根据计算的概率较准确的检测出出待检测信息为垃圾信息。采用本发明的技术方案,能够降低垃圾信息的漏识别率、假识别率。

在一个具体实现过程中,在确定待检测信息为垃圾信息后,可以对待检测信息进行拦截,并通知用户,用户在看到通知后,还可以对垃圾信息进行确认,如果确实为垃圾信息,可以不做任何操作,如果用户反馈为非垃圾信息,可以根据用户反馈信息,对bert识别模型进行优化。

需要说明的是,本发明实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本发明实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。

实施例二

为解决现有技术中存在的上述技术问题,本发明实施例提供了一种垃圾信息的检测装置。

图2为本发明的垃圾信息的检测装置实施例的结构示意图,如图2所示,本实施例的垃圾信息的检测装置可以包括编码模块20、计算模块21和确定模块22。

编码模块20,用于将待检测信息输入预先训练的bert识别模型的编码层进行编码,得到待检测信息对应的编码特征向量;

具体地,bert识别模型的训练过程如下:

a、将获取的原始样本数据输入预设的bert预训练模型中的编码层进行编码,得到原始样本数据对应的编码特征向量,并锁定编码层的参数;

b、利用原始样本数据对应的编码特征向量对bert预训练模型中解码层对应的判决模型进行k折交叉训练,得到对应于k组验证数据的k组模型参数;

具体地,将原始样本数据对应的编码特征向量划分为k组,得到k组样本向量数据;遍历地将k组样本向量数据中的其中一组样本向量数据作为验证数据,并将k-1组样本向量数据作为训练数据,利用训练数据对判决模型进行训练,得到对应于各组验证数据的模型参数。其中,判决模型包括全连接神经网络的损失函数或支持向量机的核函数。若原始样本数据的数目小于预设阈值,在全连接神经网络的损失函数中添加正则化项,以更新全连接神经网络的损失函数。

c、根据k组模型参数和k组验证数据,计算对应于k组验证数据的k组误差数据;

具体地,利用k组模型参数下的判决模型,对k组验证数据进行预测,得到k组验证数据的k组概率;根据k组验证数据的k组概率,确定k组验证数据对应的k组预测结果;根据k组验证数据和k组预测结果,确定k组误差数据。

d、根据k组误差数据,确定判决模型的优化参数;

具体地,根据k组误差数据,计算各组模型参数的权重;根据权重对k组模型参数进行加权平均,得到平均模型参数作为判决模型的优化参数。

e、根据判决模型的优化参数,对判决模型进行优化,得到优化bert预训练模型作为bert识别模型。

计算模块21,用于将待检测信息对应的编码特征向量输入预先训练的bert识别模型的解码层进行解码,并利用解码层对应的判决模型,计算待检测信息对应的编码特征向量对应的概率;

确定模块22,用于若概率大于或等于预设概率,确定待检测信息为垃圾信息。

上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

实施例三

为解决现有技术中存在的上述技术问题,本发明实施例提供了一种垃圾信息的检测设备。

本实施例中的垃圾信息的检测设备,包括存储器和处理器;

存储器上存储有计算机程序,计算机程序被处理器执行时实现上述实施例的垃圾信息的检测方法的步骤。

实施例四

为解决现有技术中存在的上述技术问题,本发明实施例提供了一种存储介质。

本发明实施例提供的存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例的垃圾信息的检测方法的步骤。

可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。

需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的保护范围,仍须以所附的权利要求书所界定的范围为准。

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