CN110929840A - 使用滚动窗口的连续学习神经网络系统 - Google Patents
使用滚动窗口的连续学习神经网络系统 Download PDFInfo
- Publication number
- CN110929840A CN110929840A CN201910891810.3A CN201910891810A CN110929840A CN 110929840 A CN110929840 A CN 110929840A CN 201910891810 A CN201910891810 A CN 201910891810A CN 110929840 A CN110929840 A CN 110929840A
- Authority
- CN
- China
- Prior art keywords
- interaction data
- data
- analysis computer
- neural network
- pseudo
- 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
- 238000005096 rolling process Methods 0.000 title claims abstract description 36
- 238000013528 artificial neural network Methods 0.000 title claims description 70
- 230000003993 interaction Effects 0.000 claims abstract description 421
- 238000004458 analytical method Methods 0.000 claims abstract description 266
- 239000011159 matrix material Substances 0.000 claims abstract description 89
- 238000000034 method Methods 0.000 claims abstract description 67
- 238000003062 neural network model Methods 0.000 claims abstract description 38
- 238000012360 testing method Methods 0.000 claims description 35
- 238000010801 machine learning Methods 0.000 claims description 34
- 238000012549 training Methods 0.000 claims description 22
- 230000004044 response Effects 0.000 claims description 17
- 238000011156 evaluation Methods 0.000 claims description 8
- 238000013527 convolutional neural network Methods 0.000 claims description 3
- 230000000306 recurrent effect Effects 0.000 claims description 3
- 239000013598 vector Substances 0.000 description 58
- 230000008569 process Effects 0.000 description 28
- 230000006870 function Effects 0.000 description 21
- 238000004891 communication Methods 0.000 description 14
- 230000015654 memory Effects 0.000 description 14
- 230000009466 transformation Effects 0.000 description 7
- 230000004913 activation Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 238000007418 data mining Methods 0.000 description 5
- 238000003066 decision tree Methods 0.000 description 5
- 238000013136 deep learning model Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000002922 simulated annealing Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000116 mitigating effect Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- FMFKNGWZEQOWNK-UHFFFAOYSA-N 1-butoxypropan-2-yl 2-(2,4,5-trichlorophenoxy)propanoate Chemical compound CCCCOCC(C)OC(=O)C(C)OC1=CC(Cl)=C(Cl)C=C1Cl FMFKNGWZEQOWNK-UHFFFAOYSA-N 0.000 description 1
- 208000001613 Gambling Diseases 0.000 description 1
- 102000007474 Multiprotein Complexes Human genes 0.000 description 1
- 108010085220 Multiprotein Complexes Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004138 cluster model Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002996 emotional effect Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4016—Transaction verification involving fraud or risk level assessment in transaction processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/102—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种公开方法、一种分析计算机确定与用于随时间推移而发生的交互的交互数据相关联的滚动窗口。所述分析计算机可以检取用于在所述滚动窗口中发生的交互的交互数据。然后,所述分析计算机可以基于历史交互数据生成伪交互数据。所述分析计算机可以任选地嵌入用于在所述滚动窗口内发生的所述交互的所述交互数据和所述伪交互数据以形成交互数据矩阵。然后,所述分析计算机可以使用所述交互数据矩阵形成神经网络模型,所述神经网络模型是从所述滚动窗口中的所述交互数据和所述伪交互数据导出的。
Description
相关申请交叉引用
本申请是2018年9月20日提交的第62/734,149号美国专利申请的非临时申请,所述美国专利申请的全文以引用的方式并入本文中。
背景技术
网络攻击正变得越来越动态和自动化。可以跟踪和分析网络攻击以预测未来的攻击。然而,在使用所有先前数据执行完整的数据分析之前,可能会发生新的网络攻击。虽然自动化学习可以解决一些问题,但这些模型会随时间推移而偏移。为了应对这种威胁,需要一种自动化解决方案来监控传入的数据。
本发明的实施例单独地和共同地解决了这种问题和其它问题。
发明内容
一个实施例涉及一种方法,包括:由分析计算机确定与用于随时间推移而发生的交互的交互数据相关联的滚动窗口;由所述分析计算机检取用于在所述滚动窗口中发生的交互的交互数据;由所述分析计算机基于历史交互数据生成伪交互数据;以及由所述分析计算机使用用于在所述滚动窗口内发生的交互的所述交互数据和所述伪交互数据形成神经网络模型。
另一个实施例涉及一种分析计算机,包括:处理器;耦合到所述处理器的计算机可读介质,所述计算机可读介质包括可由所述处理器执行以实施方法的代码,所述方法包括:确定与用于随时间推移而发生的交互的交互数据相关联的滚动窗口;检取用于在所述滚动窗口中发生的交互的交互数据;基于历史交互数据生成伪交互数据;以及使用用于在所述滚动窗口内发生的交互的所述交互数据和所述伪交互数据——交互数据矩阵——形成神经网络模型。
关于本发明的实施例的更多细节可以见于具体实施方式和附图说明。
附图说明
图1示出根据实施例的示例监控系统。
图2示出根据一些实施例的分析计算机的示例框图。
图3示出说明根据实施例的学习过程的示例图。
图4示出根据实施例的监控方法的示例流程图。
图5示出说明根据一些实施例的动态嵌入确定方法的示例流程图。
图6示出说明根据一些实施例的伪交互数据生成方法的示例流程图。
具体实施方式
在论述实施例之前,可以进一步详细地描述一些术语。
“机器学习模型”可以包括人工智能的应用,它向系统提供了从经验中自动地学习和改进而无需明确地被编程的能力。机器学习模型可以包括一组软件例程和参数,它们可以基于“特征向量”或其它输入数据预测过程的输出(例如,计算机网络攻击者的标识、计算机的认证、基于用户搜索查询的合适推荐等)。可以在训练过程中确定软件例程的结构(例如,子例程的数量和它们之间的关系)和/或参数的值,所述训练过程可以使用正被建模的过程的实际结果,例如,不同类的输入数据的标识。机器学习模型的示例包括支持向量机(SVM)、通过在不同分类的输入之间建立间隙或边界来对数据进行分类的模型,以及神经网络,即,通过响应于输入而激活来执行功能的人工“神经元”的集合。在一些实施例中,神经网络可以包括卷积神经网络、递归神经网络等。
“模型数据库”可以包括可以存储机器学习模型的数据库。机器学习模型可以以各种形式存储在模型数据库中,所述形式是例如定义机器学习模型的参数或其它值的集合。模型数据库中的模型可以与传达所述模型的某个方面的关键字相关联地存储。例如,用于评估新闻文章的模型可以与关键字“新闻”、“宣传”和“信息”相关联地存储在模型数据库中。服务器计算机可以访问模型数据库并从模型数据库检取模型,修改模型数据库中的模型,从模型数据库删除模型,或将新模型添加到模型数据库。
“特征向量”可以包括表示某个对象或实体的一组可测量属性(或“特征”)。特征向量可以包括以数组或向量结构形式用数字表示的数据的集合。特征向量还可以包括可以被表示为数学向量的数据的集合,可以对所述数学向量执行例如标量积的向量运算。可以从输入数据确定或生成特征向量。特征向量可以用作机器学习模型的输入,使得机器学习模型产生某种输出或分类。基于输入数据的性质,可以以各种方式实现特征向量的构造。例如,对于将单词分类为正确拼写或错误拼写的机器学习分类器,对应于例如“LOVE”的单词的特征向量可以被表示为向量(12,15,22,5),它对应于输入数据字中的每个字母的字顺索引。对于更复杂的“输入”,例如人类实体,示例性特征向量可以包括例如人的年龄、身高、体重、相对幸福的数值表示等的特征。可以在特征存储区中以电子方式表示和存储特征向量。此外,可以将特征向量归一化,即,使特征向量具有单位量值。例如,可以将对应于“LOVE”的特征向量(12,15,22,5)归一化为大约(0.40,0.51,0.74,0.17)。
“滚动窗口”可以包括时间范围。在一些实施例中,滚动窗口可以包括期间可能会发生数据(例如,交互数据)的时间范围。例如,滚动窗口可以包括过去的小时、日、周、月等的范围。在一些实施例中,滚动窗口可以包括开始时间和结束时间。在其它实施例中,滚动窗口可以包括预定数量的数据的范围。例如,第一滚动窗口可以包括前500个数据项目,第二滚动窗口可以包括数据项目501到1000等。
“交互”可以包括互惠作用或影响。“交互”可以包括各方、各装置和/或各实体之间的通信、联系或交换。示例交互可以包括装置对由服务器计算机托管的安全网页的登录尝试。额外示例交互包括两方之间的交易和两个装置之间的数据交换。在一些实施例中,交互可以包括用户请求访问安全数据、安全网页、安全位置等。在其它实施例中,交互可以包括付款交易,在所述付款交易中,两个装置可以交互以促进付款。
“交互数据”可以包括与交互相关联的数据。交互数据可以包括表示交互和/或与交互相关联的任何合适的数据。在一些实施例中,用于随时间推移而发生的交互的交互数据可以包括时间戳和实体标识符(例如,用户标识符、IP地址等)。交互数据的示例可以是网页登录尝试数据。在一些实施例中,交互数据可以包括HTTP标头数据包数据。HTTP标头数据包数据可以包括例如授权、浏览器类型、连接、日期、预期、已转发、来自、主机、警告等的数据字段。
“伪交互数据”可以包括类似于交互数据的数据。在一些实施例中,伪交互数据可以包括与交互数据相似的数据元素。例如,如果交互数据包括IP地址和日期,则伪交互数据也可以包括IP地址和日期。在一些实施例中,伪交互数据可以包括被确定为与当前交互数据相似的历史交互数据。在其它实施例中,伪交互数据可以包括生成的交互数据。
“历史交互数据”可以包括过去的交互数据。例如,未包括在当前滚动窗口内的交互数据(例如,其时间戳在滚动窗口的开始时间之前)可以是历史交互数据。
“拓扑图”可以包括由边缘连接的不同顶点的平面中的图的表示。拓扑图中的不同顶点可以被称为“节点”。每个节点可以表示事件的特定信息,或可以表示实体或对象的简档的特定信息。可以由一组边缘E使节点彼此相关。“边缘”可以被描述为由作为图G=(V,E)的子集的两个节点构成的无序对,其中G是包括由一组边缘E连接的一组顶点(节点)V的图。例如,拓扑图可以表示交易网络,在所述交易网络中,表示交易的节点可以由边缘连接到与交易相关的一个或多个节点,例如表示装置、用户、交易类型等的信息的节点。边缘可以与被称为“权重”的数值相关联,所述数值可以被分配给两个节点之间的成对连接。边缘权重可以被识别为两个节点之间的连接强度和/或可以与距离或成本相关,因为其常常表示从一个节点移动到下一个节点所需的数量。
“子图(subgraph或sub-graph)”可以包括由较大图的元素的子集形成的图。元素可以包括顶点和连接边缘,且子集可以是在用于较大图的节点和边缘的整个集合当中选择的节点和边缘的集合。例如,可以通过随机采样图数据来形成多个子图,其中每个随机样本可以是子图。每个子图可以与由相同较大图形成的另一个子图重叠。
“社区”可以包括图中的在组内密集连接的一组节点。社区可以是子图或其部分/衍生物,且子图可以是或可以不是社区和/或包括一个或多个社区。可以使用图学习算法从图识别社区,例如用于绘制蛋白质复合物的图学习算法。使用历史数据识别的社区可以用于对新数据进行分类以进行预测。例如,识别社区可以用作机器学习过程的一部分,其中可以基于信息元素彼此的关系来做出关于信息元素的预测。
术语“节点”可以包括表示指定信息的离散数据点。节点可以由边缘在拓扑图中彼此连接,所述边缘可以被分配被称为边缘权重的值,以便描述两个节点之间的连接强度。例如,第一节点可以是表示网络中的第一装置的数据点,且第一节点可以在图中连接到表示网络中的第二装置的第二节点。连接强度可以由边缘权重定义,所述边缘权重对应于可以在两个节点之间快速且容易地传输信息的程度。边缘权重还可以用于表达从一个状态或节点移动到下一个状态或节点所需的成本或距离。例如,第一节点可以是表示机器的第一位置的数据点,且第一节点可以在图中连接到用于机器的第二位置的第二节点。边缘权重可以是从第一位置移动到第二位置所需的能量。
“服务器计算机”可以包括功能强大的计算机或计算机集群。例如,服务器计算机可以是大型主机、小型计算机集群或作为单元运行的一组服务器。在一个示例中,服务器计算机可以是耦合到网络服务器的数据库服务器。服务器计算机可以包括一个或多个计算设备,且可以使用各种计算结构、布置和编译中的任一种来服务于来自一个或多个客户端计算机的请求。
“存储器”可以包括可存储电子数据的任何合适的一个或多个装置。合适的存储器可以包括非暂时性计算机可读介质,其存储可由处理器执行以实施所需方法的指令。存储器的示例可以包括一个或多个存储器芯片、磁盘驱动器等。此类存储器可以使用任何合适的电、光和/或磁操作模式来操作。
“处理器”可以是指任何合适的一个或多个数据计算装置。处理器可以包括一起工作以实现所需功能的一个或多个微处理器。处理器可以包括CPU,所述CPU包括至少一个高速数据处理器,适于执行用于执行用户和/或系统生成的请求的程序组件。所述CPU可以是微处理器,例如AMD的速龙(Athlon)、钻龙(Duron)和/或皓龙(Opteron);IBM和/或摩托罗拉(Motorola)的PowerPC;IBM和索尼(Sony)的Cell处理器;英特尔(Intel)的赛扬(Celeron)、安腾(Itanium)、奔腾(Pentium)、至强(Xeon)和/或XScale;和/或类似的处理器。
实施例可以允许连续地学习和重建机器学习模式。分析计算机可以确定与用于随时间推移而发生的交互的交互数据相关联的滚动窗口。在确定滚动窗口之后,分析计算机可以检取用于在滚动窗口中发生的交互的交互数据。然后,分析计算机可以基于历史交互数据生成伪交互数据,然后嵌入用于在滚动窗口内发生的交互的交互数据和伪交互数据以形成交互数据矩阵。然后,分析计算机可以使用交互数据矩阵形成神经网络模型。
作为说明性示例,交互数据可以包括登录尝试(例如,登录到安全网页的尝试)。分析计算机可以确定长度为1周的滚动窗口,然后检取与在1周内发生的登录尝试相关的数据。分析计算机还可以检取与在滚动窗口之前可能已发生的先前登录尝试相关的数据(例如,历史交互数据)。先前登录尝试可能已发生在过去的2个月、6个月、1年等。分析计算机可以例如基于与先前登录尝试相关的数据中的趋势生成与伪登录尝试相关的数据。例如,分析计算机可能确定先前登录尝试指示欺诈性登录尝试通常会在晚上由特定浏览器类型执行并源自相似的位置。可以选择与此类趋势相关联的过去登录尝试以用作伪登录尝试。然而,应理解,分析计算机可以确定先前登录尝试中的任何合适的趋势。
在创建伪登录尝试之后,分析计算机可以任选地嵌入当前登录尝试以及伪登录尝试以形成交互数据矩阵,所述交互数据矩阵可以用向量空间表示当前登录尝试和伪登录尝试。然后,分析计算机可以使用交互数据矩阵形成神经网络模型。例如,分析计算机可以训练神经网络,所述神经网络可以预测给定登录尝试是欺诈性还是非欺诈性登录尝试。
在训练神经网络时利用当前登录尝试和伪登录尝试可以考虑到已增大了预测能力的结果模型。例如,伪登录尝试可以通过引入与特定趋势相关的数据来强调那些趋势。
这解决了欺诈者和安全系统可以对另一方的行动做出反应时的问题,这种反应会导致涉及博弈论(game theory)的情形(例如,理性决策者之间存在策略性交互的情形)。例如,欺诈者可能从第一地理位置执行欺诈性登录尝试。因此,可以更改安全系统,使得源自第一地理位置的登录尝试比源自其它地理位置的登录尝试更特殊地被细致审查。欺诈者然后可能会改变他们的策略,且可能例如执行IP欺骗。欺诈者可能修改IP地址,使得对于安全系统来说,登录尝试似乎是源自第二地理位置。再次,可以更改安全系统,使得源自第二地理位置的登录尝试比源自其它地理位置的登录尝试更特殊地被细致审查。然而,如果实施这些更改(例如,确定细致审查特定地理位置)的模型分析当前数据,则它们可能会停止细致审查来自第一地理位置的登录尝试。因此,只是对欺诈者当前正在做的事情做出反应且可能并不合乎需要。
用于解决上述问题的另一种选项可能是使用所有历史数据和在当前滚动窗口内的所有数据(例如,当前交互数据)。然而,使用所有历史交互数据和当前交互数据来训练神经网络会花费很长时间,因为需要处理大量数据。如果神经网络花费太长时间来训练,则它就不能对例如可能在较小的时间尺度发生的网络攻击做出反应。
I.系统
图1示出监控系统100,其包括分析计算机102、交互数据数据库104、数据接收计算机106、多个远程客户端108-112,以及请求客户端114。分析计算机102可以与交互数据数据库104和请求客户端114进行操作通信。交互数据数据库104可以与数据接收计算机106进行操作通信。数据接收计算机106可以与多个远程客户端108-112进行操作通信。
监控系统100的组件可以经由包括通信网络的任何适当的手段彼此通信。消息和其它通信可以呈加密或未加密的形式。通信网络可以是以下中的任何一个和/或组合:直接互连;互联网;局域网(LAN);城域网(MAN);作为互联网上节点的运行任务(OMNI);安全自定义连接;广域网(WAN);无线网络(例如,采用例如但不限于无线应用协议(WAP)、I-模式等的协议);等。装置与计算机之间的消息可以使用安全通信协议来传输,所述安全通信协议是例如但不限于文件传输协议(FTP);超文本传输协议(HTTP);安全超文本传输协议(HTTPS)、安全套接字层(SSL)等。
出于说明简单起见,图1中示出了一定数量的组件。然而,应理解,本发明的实施例可以包括多于一个每种组件。
多个远程客户端108-112可以包括第一远程客户端108、第二远程客户端110和第N远程客户端112。远程客户端可以包括任何合适的装置(例如,个人计算机、服务器计算机、笔记本电脑、智能手机等)。例如第一远程客户端108的远程客户端可以与数据接收计算机106进行交互。例如,数据接收计算机106可以托管安全网页。远程客户端可以尝试登录到安全网页(例如,与数据接收计算机106交互)。在一些实施例中,登录尝试可以是成功登录尝试、欺诈性登录尝试、失败登录尝试等。
数据接收计算机106可以被配置或编程成将交互数据存储在交互数据数据库104中。数据接收计算机106可以从远程客户端接收数据。例如,数据接收计算机106可以接收HTTP标头数据包和/或与登录尝试相关联的任何其它合适的数据。数据接收计算机106可以将交互数据(例如,HTTP标头数据包)存储在交互数据数据库104中。在一些实施例中,数据接收计算机106可以将交互数据转发到中间计算机,所述中间计算机可以将交互数据存储在交互数据数据库104中。
交互数据数据库104可以包括任何合适的数据库。数据库可以是常规的、容错的、关系的、可扩展的安全数据库,例如可从OracleTM或SybaseTM商业上获得的数据库,或在一些实施例中可从其它开源替代方案(例如,MySQL等)商业上获得的数据库。交互数据数据库104可以存储交互数据。
分析计算机102可以被配置或编程成分析交互数据。例如,在一些实施例中,分析计算机102可以确定与用于随时间推移而发生的交互的交互数据相关联的滚动窗口。分析计算机102可以从交互数据数据库104检取在滚动窗口中发生的交互数据。分析计算机102还可以基于历史交互数据生成伪交互数据。在一些实施例中,分析计算机102可以基于历史交互数据中的一个或多个数据趋势生成伪交互数据。可以在本文中所描述的任何合适的事项中确定一个或多个趋势。例如,分析计算机102可以基于被表示为历史交互数据的交互之间的相似性将历史交互数据集群成社区组。作为说明性示例,在交互数据可以包括登录尝试的情况下,可以将历史交互数据集群成IP地址欺骗社区(其可以包括由欺骗IP地址执行的登录尝试)、可信社区(其可以包括可信登录尝试)、网络攻击社区(其可以包括由装置网络针对安全网页执行的登录尝试)等。
分析计算机102还可以嵌入用于在滚动窗口内发生的交互的交互数据以及伪交互数据以形成交互数据矩阵。然后,分析计算机102可以使用交互数据矩阵形成神经网络模型。
在一些实施例中,分析计算机102可以将神经网络模型存储在模型数据库中。在此后的任何合适的时间,分析计算机102可以从请求客户端114接收包括请求数据的请求消息。在一些实施例中,请求消息可以包括例如使分析计算机102对包括交互数据的请求数据执行分析的请求。在其它实施例中,请求消息可以向分析计算机102请求预测。请求客户端114可以包括可以被配置成向分析计算机102请求信息的任何合适的计算机。
分析计算机102可以确定对请求消息的响应消息。响应消息可以包括由神经网络模型基于请求数据输出的响应数据。然后,分析计算机102可以将响应消息提供给请求客户端114。
图2示出根据一些实施例的示例性分析计算机200的框图。分析计算机200可以包括存储器202、处理器204、网络接口206和计算机可读介质208。计算机可读介质208可以包括多个软件模块。计算机可读介质208可以包括伪交互数据生成模块208A、嵌入模块208B和机器学习模块208C。然而,应理解,计算机可以包括任何其它合适的模块(例如,数据库通信模块、滚动窗口确定模块等)。
分析计算机200可以与交互数据数据库210进行操作通信。交互数据数据库210可以与交互数据数据库104相似,这里不需要重复其细节。
存储器202可以用于存储数据和代码。存储器202可以在内部或在外部耦合到处理器204(例如,基于云的数据存储装置),且可以包括易失性和/或非易失性存储器的任何组合,例如RAM、DRAM、ROM、闪存或任何其它合适的存储器装置。例如,存储器202可以存储加密密钥、交互数据、权重值等。
计算机可读介质208可以包括可由处理器204执行以执行方法的代码,所述方法包括:由分析计算机确定与用于随时间推移而发生的交互的交互数据相关联的滚动窗口;由分析计算机检取用于在滚动窗口中发生的交互的交互数据;由分析计算机基于历史交互数据生成伪交互数据;以及由分析计算机使用用于在滚动窗口内发生的交互的交互数据和伪交互数据形成神经网络模型。
伪交互数据生成模块208A可以包括可由处理器204执行以生成伪交互数据的代码或软件。伪交互数据可以包括类似于交互数据的数据。在一些实施例中,伪交互数据可以包括与交互数据相似的数据元素。例如,如果交互数据包括IP地址、主机、时间和已转发,则伪交互数据也可以包括IP地址、主机、时间和已转发。在其它实施例中,伪交互数据可以包括被确定为与当前交互数据相似的历史交互数据。在其它实施例中,伪交互数据可以包括生成的交互数据。伪交互数据生成模块208A结合处理器204可以基于存储在交互数据数据库210中的历史交互数据以任何合适的方式生成伪交互数据。
例如,伪交互数据生成模块208A结合处理器204可以确定历史交互数据中的一个或多个数据趋势。可以在本文中所描述的任何合适的事项中确定一个或多个趋势。例如,分析计算机200可以使用历史交互数据执行学习过程。分析计算机200可以例如基于被表示为历史交互数据的交互之间的相似性将历史交互数据集群成社区组。关于将数据集群成社区组的更多细节,请参阅[Fortunato,Santo.的“图中的社区检测(Community detection ingraphs)”,物理报告486.3-5(2010):75-174],此文献以引用的方式并入本文中。伪交互数据生成模块208A结合处理器204可以基于一个或多个数据趋势(例如,在社区组中识别)生成多个伪交互以形成伪交互数据。
在一些实施例中,多个伪交互可以包括被确定为在当前交互数据(例如,在滚动窗口内发生的交互数据)的阈值相似性量内的历史交互。在其它实施例中,多个伪交互可以包括与被确定为在当前交互数据的阈值相似性量内的历史交互相似的数据元素(例如,IP地址、主机、已转发等)。本文中参考图6论述根据一些实施例的关于生成伪交互数据的更多细节。
嵌入模块208B可以包括可由处理器204执行以嵌入交互数据和伪交互数据的代码或软件。在一些实施例中,嵌入可以包括将输入数据变换为输出数据,同时维持输入数据相对于其它输入数据的基本意义。嵌入模块208B结合处理器204可以以任何合适的方式执行嵌入过程(例如,嵌入)。嵌入模块208B结合处理器204可以将离散和/或分类变量映射到连续数的向量或矩阵。在一些实施例中,嵌入过程的结果(例如,嵌入式交互数据和伪交互数据)可以被称为嵌入。嵌入可以是低维的、习得的连续向量表示。为了构造交互数据和伪交互数据的表示,嵌入模块208B结合处理器204可以利用嵌入神经网络和受监督的任务来学习嵌入。在一些实施例中,来自嵌入过程的这些结果矩阵(例如,交互数据矩阵)中的单独维度通常可能没有固有的意义。代替地,分析计算机200可以利用向量之间的位置和距离的整体模式。
例如,如果具有包括电影评论的集合中使用的50,000个单词的输入数据(例如,输入到嵌入模块208B),则嵌入模块208B结合处理器204可以使用被训练成预测评论的感情化的嵌入神经网络来学习每个单词的100维嵌入。词汇中的与正面评论相关联的单词,例如“杰出”或“优秀”,可以在嵌入空间中较接近,因为神经网络已习得这些单词均与正面评论相关联。
由嵌入模块208B结合处理器204确定的嵌入可以是神经网络的在训练期间被调整以使受监督的任务的损失最小化的参数或权重。尽管在受监督的机器学习任务中,目标通常是训练模型以对新数据进行预测,但在此嵌入模型中,可能不会进一步使用预测。嵌入模块208B结合处理器204可以确定嵌入权重(例如,交互数据和伪交互数据作为连续向量的表示)。关于嵌入的更多细节,请参阅[Alon、Uri等人的“code2vec:学习分布式代码表示(code2vec:Learning distributed representations of code)”,关于编程语言的ACM会议录,3.POPL(2019):40],其中确定了代码片段的嵌入,此文献以引用的方式并入本文中。
机器学习模块208C可以包括可由处理器204执行以训练机器学习模型(例如,神经网络模型)的代码或软件。在一些实施例中,机器学习模块208C可以含有定义机器学习模型的代码,以及可以使处理器204能够训练机器学习模型的代码。经过训练的机器学习模型可以接受特征输入并确定每个输入向量的输出(例如,分类、预测等)。机器学习模块208C结合处理器204可以基于算法使用合适的机器学习模型,所述算法包括但不限于:神经网络、决策树、支持向量方法和K均值算法。
例如,机器学习模块208C结合处理器204可以基于被称为“训练数据”的样本数据构建数学模型,以做出预测或决策,而无需明确被编程成执行此任务。在一些实施例中,机器学习模块208C结合处理器204可以训练神经网络。神经网络可以是基于被称为人工神经元的被连接单元或节点的集合的模型。每个连接(例如,边缘)可以从节点向另一个节点传输信息(例如,信号)。接收信号的节点可以处理所述信号,然后向连接到所述节点的额外节点发信号。在一些实施例中,节点之间的连接处的信号可以包括实数,且每个节点的输出可以由其输入之和的某种非线性函数计算。节点和边缘可以具有随着学习进行而调整的权重。权重可以增大或减小边缘处的信号强度。在一些实施例中,节点可以具有阈值,使得仅在聚合信号超过所述阈值时才发送信号。神经网络的不同层可以对其输入执行不同种类的变换。此外,信号可以大概在横穿中间层(例如,隐藏层)之后从第一层(例如,输入层)行进到最后层(例如,输出层)。在一些实施例中,机器学习模块208C结合处理器204可以训练神经网络,如参考图3所描述。
网络接口206可以包括可以允许分析计算机200与外部计算机通信的接口。网络接口206可以使分析计算机200能够与另一个装置(例如,请求客户端等)进行数据通信。网络接口206的一些示例可以包括调制解调器、物理网络接口(例如以太网卡或其它网络接口卡(NIC))、虚拟网络接口、通信端口、个人计算机存储卡国际协会(PCMCIA)插槽和卡等。由网络接口206启用的无线协议可以包括Wi-FiTM。经由网络接口206传递的数据可以呈信号的形式,所述信号可以是电学、电磁、光学或能够由外部通信接口接收的任何其它信号(统称为“电子信号”或“电子消息”)。可以包括数据或指令的这些电子消息可以经由通信路径或信道提供在网络接口206与其它装置之间。如上文所提到,可以使用任何合适的通信路径或信道,例如,电线或电缆、光纤、电话线、蜂窝链路、射频(RF)链路、WAN或LAN网络、互联网或任何其它合适的介质。
II.方法
实施例可以使用本文中所描述的系统和设备来基于交互数据至少创建机器学习模型。图3-4描述了此类方法的一些示例。在一些实施例中,分析计算机可以分别包括图1的分析计算机102或图2的分析计算机200。
根据一些实施例,分析计算机可以基于交互数据的动态嵌入来连续地重建深度学习模型,所述交互数据包括例如HTTP标头数据包。在一些实施例中,分析计算机可以创建可以实时学习的AI系统。先前机器学习模型(例如,深度学习器等)可能在处理交互数据时存在问题,因为所述数据可能来自许多不同的分布和群体。实时评估不同分布的传统神经网络会过度拟合数据。在一些实施例中,分析计算机可以预先设置信息空间的一些平滑(例如,通过嵌入交互数据)。分析计算机可以将嵌入式数据(例如,交互数据矩阵)馈送到学习器中。
A.神经网络
分析计算机可以嵌入交互数据以形成如本文中所描述的交互数据矩阵。然后,分析计算机可以将交互数据矩阵输入到例如神经网络中。图3示出根据一些实施例的学习过程。如图所示,人工神经网络300包括一系列层,每个层表示一组节点。例如,节点310可以是交互数据302的第一向量(例如,包括交互的数据元素的向量)的第一元素。相似地,节点312可以是交互数据302的第一向量的第二元素,而节点314可以是交互数据302的第一向量的第N元素。
第一向量可以包括与第一次登录尝试相关联的数据。例如,第一向量的第一元素(例如,在节点310处)可以包括IP地址。第一向量的第二元素(例如,在节点312处)可以包括浏览器类型。第一向量的第N元素(例如,在节点314处)可以包括主机。
在一些实施例中,在训练神经网络之前,分析计算机可以嵌入输入交互数据。例如,边缘320、322和324可以示出交互数据的嵌入。可以嵌入作为整体的交互数据302,且可以将结果向量在输入层304处输入到神经网络中。可以用嵌入神经网络(未在图3中具体示出)执行嵌入过程,下文进一步详细地描述了嵌入过程。
作为说明性示例,交互数据302的第一交互数据可以包括三个数据元素。三个数据元素可以是IP地址“123.01.02.3456”、浏览器类型“browser_A1”和主机“en.example.org.”。交互数据302可以例如经由嵌入神经网络(例如,可以嵌入数据的神经网络)而嵌入。嵌入神经网络可以将输入交互数据302的元素映射到值的向量。如上文所提到,嵌入神经网络未在图3中具体示出。
例如,输入到嵌入神经网络中的数据可以包括[123.01.02.3456,browser_A1,en.example.org]。在一些实施例中,输入交互数据302的数据元素可以以任何合适的方式拆分,例如,经由NGram拆分。例如,分析计算机可以确定将上述交互数据302拆分成[123_01,01_02,02_3456,123,01,02,3456,browser_A1,browser,A1,en,example,org,en.example.org]。此数据可以输入到嵌入神经网络中。对应于输入数据的输出向量可以由嵌入神经网络确定,且可以包括例如[1.2,3.4,1.0]。在一些实施例中,输出向量[1.2,3.4,1.0]可以被称为嵌入。所有输出向量的集合可以被称为交互数据矩阵,因为矩阵的每个列或行可以包括一个输出向量。应理解,即使边缘320、322和324示出了交互数据302和输入层304的节点之间的一对一连接,但在一些实施例中,嵌入过程可以将输入数据元素卷积。关于嵌入的更多细节,请参阅[Alon、Uri等人的“code2vec:学习分布式代码表示(code2vec:Learning distributed representations of code)”,关于编程语言的ACM会议录,3.POPL(2019):40],其中确定了代码片段的嵌入,此文献以引用的方式并入本文中。
在其它实施例中,在边缘320、322和324处,分析计算机可以分别对第一元素、第二元素和第N元素进行重新加权。分析计算机可以以本领域技术人员所知的任何合适的方式对交互数据302的元素进行加权。在一些实施例中,交互数据302的每个向量可以被单独加权,然后单独输入到输入层304中,如图3所示。在边缘322处,分析计算机可以对第二元素进行重新加权。
在这一系列层的一个侧存在输入层304。输入层304包括在本文中被称为输入节点的一组节点(例如,节点330、332和334)。这些输入节点中的每个输入节点可以映射到对象模型的特定特征或对象模型自身。在一些实施例中,每个“特征”实际上可以包括其它特征的组合。例如,特征可以包括多个数据点、与那些数据点相关联的标签(例如,区域标签)、数据点相对于对象模型的其余部分的位置,或任何其它合适的特征。例如,在一些实施例中,特征可以是嵌入交互数据的结果,如本文中所描述。
在这一系列层的另一个侧的是输出层308。输出层308可以包括多个输出节点。每个输出节点可以映射到与特定类别的对象相关联的对象模型。在一些实施例中,每个输出节点可以映射到与作为输入提供的对象模型相关联的多个区域中的一个区域。作为说明性示例,输出层308可以包括两个节点(例如,节点370-372)。节点370可以对应于“欺诈”的输出,而节点372可以对应于“非欺诈”的输出。然而,应理解,输出层308可以包括任何合适数量的节点(例如,2个、5个、10个、100个等)。
一个或多个隐藏层306可以分离输入层304和输出层308。这一组隐藏层306可以包括“N”个隐藏层,其中“N”是大于或等于1的整数。每个隐藏层又还可以包括在本文中被称为隐藏节点的一组节点。
在隐藏层306的一个侧,隐藏节点(例如,节点350、352和354)互连到输入节点。每个输入节点可以连接到连接到输入层304的隐藏层的每个隐藏节点。在隐藏层306的另一个侧,隐藏节点连接到输出节点。每个输出节点可以连接到连接到输出层308的隐藏层的每个隐藏节点。换句话说,每个输入节点连接到隐藏层中的最接近输入层304的每个隐藏节点,且每个输出节点连接到隐藏层中的最接近输出层308的每个隐藏节点。输入节点不直接互连到输出节点。如果存在多个隐藏层,则输入节点仅互连到最近的隐藏层的隐藏节点。这些隐藏节点又互连到下一个隐藏层的隐藏节点,依此类推。
互连可以表示关于两个互连节点而习得的一条信息。相比而言,隐藏节点与输出节点之间的连接可以表示特定于输出节点的习得的一条信息。可以向互连分配可以调谐的数字权重(例如,基于训练数据集),从而使人工神经网络300适应于输入且能够“学习”。
通常,隐藏层306允许关于输入层304的输入节点的知识在输出层308的输出节点之间共享。为此,可以通过隐藏层306将激活函数应用于输入节点。在示例中,激活函数可以是非线性的。可以使用不同的非线性激活函数,包括例如整流函数。激活函数可以包括任何合适的激活(例如,阶跃函数、逻辑函数、双曲正切函数(Tanh function)、整流线性单元(ReLU)、柔性最大值传输函数(softmax)等)。
人工神经网络300还可以使用一个或多个成本或损失函数来找到最佳解决方案(例如,最佳激活函数)。最佳解决方案可以表示没有解决方案的成本低于最佳解决方案的成本的情形。在示例中,成本函数包括均方误差函数,所述均方误差函数使在示例对内的输出与目标值之间的均方误差最小化。在一些实施例中,使用梯度下降来使成本函数最小化的反向传播算法可以用于训练人工神经网络300。使用反向传播算法,将输出值与正确答案进行比较,以计算某种预定义误差函数的值。在一些实施例中,然后经由各种技术通过网络反馈误差。使用此信息,算法可以调整每个连接的权重,以便将误差函数的值缩减某一小量。在其它实施例中,人工神经网络300可以是自动编码器神经网络,其中在训练期间将输入和输出都提供给人工神经网络,且自动编码器学着重构其输入。
在所描绘的人工神经网络300中,可以生成预测模型,使得隐藏层306保留用于训练人工神经网络300的一组输入值和输出值的信息(例如,特定变量值和/或变换函数)。此保留的信息可以应用于新交互数据,以便识别交互数据为欺诈性或非欺诈性的可能性。在一些实施例中,可以对具有已知分类(例如,欺诈性或非欺诈性)的样本训练人工神经网络300。例如,人工神经网络300可以用于使用包括多个已知欺诈性输入样本和已知非欺诈性输入样本的输入来生成预测模型,其中结果经过优化以使欺诈性样本的结果距欺诈性中心之间的距离最小化,并使非欺诈性样本的结果距所述中心之间的距离最大化。在此示例中,结果预测模型可以应用于原始交互数据输入,以便关于已知样本的结果生成所述交互数据输入的结果。
通过说明,可以既使用已知欺诈性样本又使用非欺诈性样本作为输入来训练如图3所描绘的神经网络。此示例中的每个输出节点可以表示位于超空间内的结果。当新交互数据被呈现为经过训练的神经网络的输入时,神经网络将输出可以基于其在超空间内的位置而评估的结果。
B.监控方法
图4示出根据实施例的监控方法的流程图。将在分析计算机分析交互数据的背景下描述图4所示的方法。交互数据可以包括例如对安全网页的登录尝试。登录尝试可能是欺诈性登录尝试或可信登录尝试。分析计算机可以创建深度学习器(例如,神经网络),所述深度学习器可以预测欺诈性登录尝试,例如,可能在网络攻击期间发生的欺诈性登录攻击。然而,应理解,所述方法可以应用于其它情况和用例。
在步骤404之前,数据接收计算机可以从例如远程客户端接收交互数据。例如,数据接收计算机可以托管安全网页。远程客户端可以尝试访问安全网页。在登录尝试期间,数据接收计算机可以接收与登录尝试相关联的任何合适的数据。例如,所接收的交互数据可以包括HTTP标头数据包的数据。HTTP标头数据包可以含有例如以下的数据:IP地址、浏览器类型、已转发(例如,通过HTTP代理连接到web服务器的客户端的原始信息)、主机(例如,服务器的域名(用于虚拟托管),以及服务器正在侦听所处的TCP端口号。在一些实施例中,如果端口是所请求的服务的标准端口,则可以省略端口号)、警告(例如,关于实体主体可能出现的问题的一般警告)等。交互数据还可以包括时间戳。请求中的主机标头字段可以提供来自目标URL的主机和端口信息,从而使原始服务器能够在服务于对单个IP地址上的多个主机名的请求时区分资源。欺诈性实体(例如,欺诈者)可能会尝试欺诈性地登录到网页。在步骤404处,数据接收计算机可以将交互数据存储在交互数据数据库中。
在步骤406处,分析计算机可以确定与用于随时间推移而发生的交互的交互数据相关联的滚动窗口。滚动窗口可以允许分析计算机检取交互数据的特定部分。分析计算机可以从交互数据数据库检取用于在滚动窗口中发生的交互的交互数据。滚动窗口可以是针对任何合适的时间长度,例如,一个月、一周、一天等。在一些实施例中,分析计算机还可以筛选已使用滚动窗口获得的交互数据。
在一些实施例中,在步骤408处,在检取在滚动窗口内发生的交互数据之后,分析计算机可以确定一个或多个误差矩阵。一个或多个误差矩阵可以表示可以在嵌入过程期间(例如,在步骤414处)使用以嵌入交互数据的权重。可以确定一个或多个误差矩阵,如图5进一步详细地所描述。一个或多个误差矩阵可以指示例如由经过训练的模型创建的预测中存在多少误差。一个或多个误差矩阵可以用于变换输入交互数据。以此类方式变换交互数据以得到低误差的经过训练的模型的误差矩阵可以是最佳误差矩阵,且可以被存储。嵌入可以包括将离散变量映射到连续数的向量。在神经网络的背景下,嵌入可以包括离散变量的低维的、习得的连续向量表示。神经网络嵌入可以很有用,因为它们可以缩减分类变量的维度,并有意义地表示变换空间中的类别。分析计算机可以确定交互数据的最佳嵌入。例如,分析计算机可以执行动态时间图嵌入过程。
在一些实施例中,在动态嵌入过程期间,分析计算机可以将输入数据(例如,在滚动窗口内发生的交互数据)表示为包括经由边缘连接的多个节点的图。在一些实施例中,交互数据可以作为图而存储。关于图数据和图数据库模型的更多细节,请参阅[Angles、Renzo和Claudio Gutierrez的“图数据库模型调查(Survey of graph database models)”,ACM计算调查(CSUR)40.1(2008):1],此文献以引用的方式并入本文中。
在一些实施例中,分析计算机可以使用例如NGram拆分交互数据(例如,IP地址)的一个或多个数据元素。NGram可以是来自给定文本或数据样本的n个项目的连续序列。作为说明性示例,分析计算机可以接收原始数据字段“123.01.02.3456”,其可以是IP地址。例如,IP地址的NGram可以是“123_01,01_02,02_3456,123,01,02,3456”。然后,分析计算机可以确定邻接矩阵和次数矩阵,如本领域技术人员所知。邻接矩阵可以是方阵,其可以表示有限图。邻接矩阵的元素可以指示图中的多对顶点(例如,节点)是否邻接。次数矩阵可以是对角矩阵,其可以含有关于每个顶点的次数的信息—即,附接到每个顶点的边缘的数量。邻接矩阵和次数矩阵可以允许分析计算机对图数据(例如,交互数据)执行分析。
在一些实施例中,然后,分析计算机可以基于时间和误差矩阵将变换函数应用于边缘权重。时间矩阵可以包括基于对应交互的时长的权重。例如,分析计算机可以向较新近的数据提供较大的权重。以此方式,分析可以更加强调在滚动窗口内发生的数据中的较新近的数据。可以以任何合适的方式确定误差矩阵。例如,可以使用模拟退火过程确定误差矩阵,所述模拟退火过程可以确定最佳解决方案。
分析计算机可以执行如图5进一步详细地所描述的模拟退火过程。作为本文中详细地所描述的图5的概述,模拟退火过程可以包括不受监督的深度学习器(例如,受限制的玻尔兹曼机器等),其可以用于从输入数据创建社区组。受限制的玻尔兹曼机器(RBM)可以是生成式随机人工神经网络,其可以学习遍及其一组输入的概率分布。社区组可以用于在原始图中的顶点之间创建新链接。例如,分析计算机可以将变换应用于邻接矩阵。变换可以包括将时间矩阵应用于邻接矩阵。然后,分析计算机可以创建模型,例如,梯度提升树,其可以预测交互数据是否是欺诈性交互数据。然后,分析计算机可以使用样本数据集评估结果模型的性能。分析计算机可以基于性能分析来确定每个输入交互数据的残差误差值。分析计算机还可以确定总误差。在一些实施例中,总误差可以被确定为均方误差(MSE)。如果总误差超出预定误差阈值,则分析计算机可以确定存储误差矩阵。否则,分析计算机可以迭代所述过程。例如,分析计算机可以使用从残差误差确定的误差矩阵变换交互数据,使用变换后的交互数据创建新模型。如果MSE满足预定阈值,或在一些实施例中,如果达到最大迭代,则所述过程可以结束。
在步骤410处,在一些实施例中,可以选择最佳N个误差矩阵并将其存储在数据库中。例如,所存储的误差矩阵可以满足本文中进一步详细地所描述的动态嵌入过程的要求。分析计算机可以存储误差矩阵,所述误差矩阵产生包括最低总误差的神经网络。通过这样做,分析计算机可以存储误差矩阵,所述误差矩阵在用于变换输入交互数据时可以用于训练神经网络,从而得到低误差模型。稍后,可以在步骤414处嵌入交互数据期间稍后使用为最佳N个误差矩阵的这些误差矩阵。在一些实施例中,分析计算机还可以将经过训练的嵌入神经网络与所存储的误差矩阵相关联地存储。
在步骤412处,分析计算机可以生成伪交互数据。除了当前交互数据之外,伪交互数据还可以允许分析计算机包括表示随时间推移的趋势的额外交互数据。在一些实施例中,伪交互数据可以由伪交互数据生成器生成。在一些实施例中,分析计算机可以基于历史交互数据生成伪交互数据。在一些实施例中,分析计算机可以确定历史交互数据中的一个或多个数据趋势,所述一个或多个数据趋势包括在滚动窗口内和外发生的交互。分析计算机可以基于一个或多个数据趋势生成多个伪交互以形成伪交互数据。
在一个说明中,分析计算机可以通过确定历史交互数据的IP地址的社区组生成伪交互数据,其中社区组包括通常与欺诈性登录尝试相关联的IP地址。在此示例中,趋势可以是这些IP地址通常执行欺诈性登录尝试。然后,分析计算机可以生成包括社区组中包括的IP地址的伪交互数据。在一些实施例中,用于随时间推移而发生的交互的交互数据可以包括时间戳和实体标识符(例如,可以识别实体的IP地址)。分析计算机可以为伪交互创建包括时间戳和实体标识符的伪交互数据,使得伪交互数据可以模仿交互数据。例如,分析计算机可以创建具有在滚动窗口内发生的时间戳的伪交互数据。
参考图6论述关于伪交互数据生成的更多细节。作为本文中详细地所描述的图6的概述,可以从全体的不受监督的深度学习模型导出数据。可以用几个不同的时间窗口生成模型。可以通过移除在先前预定义中止阈值内稳定地评分的数据(在相似集群组中出现的记录)来筛选数据。使用全体的学习器,可以基于来自预定时间段(例如,过去的三周)的欺诈趋势生成集群组。可以基于历史交互数据是否在新近交互数据的同一个集群组内选择历史交互数据。可以使用例如加权信息向量距离分数筛选历史交互数据(例如,以确定历史交互数据的哪些交互与当前交互数据的交互最相似)。然后可以选择最匹配的历史交互数据,且在一些实施例中,修改最匹配的历史交互数据以符合当前交互数据(例如,编辑历史交互数据的时间戳,使得其落入当前滚动窗口内)。可以将所选择的历史交互数据包括为伪交互数据。然后,当重建模型时,可以将数据添加为欺诈性伪交互。例如,如果IP地址的特定社区与正在成为趋势(例如,当前正在发生)的欺诈模式类型强烈地相关联,则分析计算机可以使用那些IP地址生成欺诈性伪交互数据。欺诈的示例可以是交易欺诈、登录欺诈、垃圾邮件欺诈等。
例如,由分析计算机生成的伪交互数据可以包括欺诈模式,例如“用英语表达的源自位置A的夜间网络攻击”,其可以与8个IP地址相关联。欺诈模式可以经由社区组来确定,所述社区组可以包括与欺诈趋势相关联的8个IP地址,且可以指示IP地址共享位置代码、语言代码等。8个IP地址可以与执行网络攻击相关联,其中欺诈模式可以指示如果一个IP地址开始登录尝试,则其它7个通常也将很快执行登录尝试。这种欺诈趋势可以用于包括到当前交互数据中,以便不忘记共同执行欺诈的8个IP地址。伪交互数据可以包括包括先前可能由这8个IP地址发生的登录尝试的交互数据。例如,分析计算机可以将以下8次登录尝试包括为伪交互数据:1)[时间:23:10,主机:www.example.com,位置:A,语言:英语],2)[23:11,www.example.com,A,英语],3)[23:12,www.example.com,A,英语],4)[23:12,www.example.com,A,英语],5)[23:12,www.example.com,A,英语],6)[23:13,www.example.com,A,英语],7)[23:13,www.example.com,A,英语],以及8)[23:13,www.example.com,A,English]。然而,应理解,伪交互数据可以包括更多或更少的数据元素,如此示例中所示。
在步骤414处,在检取在滚动窗口内发生的交互数据以及生成伪交互数据之后,分析计算机可以嵌入用于在滚动窗口内发生的交互的交互数据和伪交互数据以形成交互数据矩阵。交互数据矩阵的每个列或行(取决于实施方案)可以对应于交互。在一些实施例中,分析计算机可以将交互数据和伪交互数据嵌入N次,在步骤410处确定的一个或多个误差矩阵中的每个误差矩阵一次。例如,分析计算机可以使用一个或多个误差矩阵中的每个误差矩阵嵌入交互数据,且在一些实施例中,可以使用一个或多个相关联的嵌入神经网络嵌入交互数据。例如,分析计算机可以将交互数据输入到嵌入神经网络中以嵌入所述数据。如果未执行步骤408-410,则分析计算机可以基于可以是预定的一个误差矩阵嵌入交互数据。
作为说明性示例,对于与登录尝试相关的交互数据,可以嵌入来自http标头数据包的数据。例如,可以通过将八位字节拆分成单独的列来嵌入IP地址数据。可以通过基于空间拆分数据分量来嵌入浏览器类型数据。可以通过拆分由八位字节分隔的‘for’和‘to’IP地址来嵌入已转发数据。可以通过将域名拆分成分量并在适当的情况下进行自然语言解析来嵌入主机数据。可以通过按空间拆分来嵌入警告数据。然而,应理解,可以确定其它嵌入方案,且它们可能不会产生交互数据的输入数据元素的一对一表示(例如,嵌入过程可能或可能不将输入交互数据的数据元素卷积)。
例如,第一IP地址“123.01.02.3456”可以由[123_01,01_02,02_3456,123,01,02,3456](例如,经由Ngram)表示。第二IP地址“123.01.02.9999”可以由[123_01,01_02,02_9999,123,01,02,9999]表示。出于简单起见,第一IP地址可以被表示为[0,1,2,3,4,5,6],而第二IP地址可以被表示为[0,1,7,3,4,5,8]。嵌入这两个IP地址可以被输入为例如Embedding(9,2,input_length=7)。第一自变量(9)可以是训练集(例如,第一IP地址和第二IP地址)中的不同条目或可能值(例如,0、1、2、3、4、5、6、7、8)的数量。第二自变量(2)可以指示嵌入向量的大小(例如,输出向量将多长,或输出—在这种情况下,每输出向量将有2个元素)。input_length自变量可以指示每个输入序列(例如,向量)的大小(例如,输入向量中有多少个元素)。一旦网络已被训练,就可以获得嵌入层的权重,在这种情况下,所述权重具有大小(9,2)(例如,每输入向量9个元素,且每输出向量2个元素)且可以被示出为下表1,表1可以用于将输入映射到嵌入向量。
IP地址分量 | 索引 | 嵌入 |
123_01 | 0 | [1.1,3.4] |
01_02 | 1 | [1.2,2.1] |
02_3456 | 2 | [0.9,3.4] |
123 | 3 | [2.8,2.8] |
01 | 4 | [0.7,3.1] |
02 | 5 | [3.2,2.0] |
3456 | 6 | [2.5,1.2] |
02_9999 | 7 | [1.2,4.0] |
9999 | 8 | [2.6,1.5] |
表1:示例嵌入
在此示例中,第一IP地址与第二IP地址之间的唯一差异是后四位数。如上表所示,神经网络的输出可以产生相似的嵌入,尽管数字自身非常不同。这四位数可以共享共同的属性,例如它们可以与由连接到同一个子网的同一个人操作的不同装置相关联。例如,在上表中,IP地址分量“3456”和“9999”可以分别产生嵌入[2.5,1.2]和[2.6,1.5],且可以指示它们可以共享共同的属性。“3456”和“9999”可以分别指定与使用同一个子网的同一个人相关联的移动电话和笔记本电脑,且此示例中的“同一个人”可以是共同的属性。
通过使用嵌入作为学习模型的输入,可以在提供给学习模型的输入数据中反映相似的数据(420,下文对其进一步详细地描述),使得以更准确且有效的方式训练学习模型。换句话说,相似的数据可以反映数据中的某种基本意义,且可以将所述基本意义赋予随后使用的学习模型。
表1的IP地址分量、索引和对应嵌入示出了示例嵌入,然而,应理解,可以由分析计算机确定任何合适的输出嵌入。此外,输入可以包括作为整体的交互数据,而不是仅仅包括上述示例中的IP地址。
在步骤416处,在嵌入数据(例如,在滚动窗口内发生的交互数据以及伪交互数据)之后,分析计算机可以确定测试样本并将测试样本与数据的其余部分分开。例如,分析计算机可以分离交互数据矩阵的10%、20%、30%、40%、50%等。分析计算机可以分离交互数据矩阵的子组以形成测试样本。分析计算机可以以本领域技术人员所知的任何合适的方式分离测试样本。在步骤418处,可以将测试样本存储在测试数据数据库中。可以将测试样本与训练样本分离,以便稍后评估用训练样本训练的模型。
在步骤420处,在存储测试样本之后,分析计算机然后可以使用数据重建深度学习模型。例如,分析计算机可以使用交互数据矩阵形成神经网络模型。分析计算机可以以任何合适的方式形成神经网络模型。神经网络可以是卷积神经网络、递归神经网络等。例如,在一些实施例中,分析计算机可以基于交互数据的交互数据矩阵的向量(例如,HTTP标头数据包数据)构建深度学习模型。
例如,分析计算机可以用交互数据矩阵中的未包括在测试样本中的交互数据矩阵训练神经网络。例如,交互数据矩阵的每个列或行(取决于实施方案)可以对应于交互向量。可以将每个向量输入到神经网络中以供训练。基于训练,分析计算机可以确定部分地定义神经网络模型的多个神经网络权重。例如,分析计算机可以训练神经网络,如图3所示。然后,分析计算机可以使用测试样本评估神经网络模型。在步骤422处,分析计算机可以将所重建的深度学习模型(例如,神经网络模型)存储在候选数据库中。
在步骤424处,在将神经网络模型存储在候选数据库中之后,分析计算机可以使用来自测试数据数据库的测试数据评估候选数据库中的神经网络模型。分析计算机可以以任何合适的方式用测试数据评估神经网络模型。分析计算机可以将测试数据输入到神经网络模型中以确定输出。例如,分析计算机可以输入登录尝试数据。神经网络模型可以将输入登录尝试数据预测(例如,分类)为欺诈性或非欺诈性。在一些实施例中,分析计算机可以确定模型的分布和/或拟合是否存在偏移。
在步骤426处,分析计算机可以基于评估确定模型是否是可接受的。例如,分析计算机可以确定神经网络模型是否准确地将输入登录尝试数据预测为欺诈性或非欺诈性。分析计算机可以基于模型的预测准确度确定模型是否是可接受的。例如,如果模型准确地预测输入登录尝试数据的70%、80%、90%、95%、99%等,则分析计算机可以确定模型是可接受的。
如果分析计算机确定模型是不可接受的,则分析计算机可以丢弃不可接受的模型并结束过程。在一些实施例中,如果其它模型存储在候选数据库中,则分析计算机可以对存储在候选数据库中的每个其它模型重复步骤424-426。如果分析计算机确定模型是可接受的,则分析计算机可以进行到步骤428。在步骤428处,分析计算机可以将神经网络模型存储在当前模型数据库中。
在任何合适的时间,在步骤430处,分析计算机可以接收包括请求数据的请求消息。分析计算机可以从任何合适的外部计算机(例如,图1的请求客户端114)接收请求消息。在一些实施例中,请求数据可以包括新交互数据(例如,包括时间戳、IP地址、主机等的登录尝试)。
在步骤432处,在接收到请求消息之后,分析计算机可以确定对请求消息的响应消息。响应消息可以包括由神经网络模型基于请求数据输出的响应数据。例如,分析计算机可以确定新交互数据是否指示欺诈性登录尝试。作为另一个示例,在一些实施例中,分析计算机可以确定与一个或多个IP地址相关联的一个或多个实体是否将尝试欺诈性登录尝试的预测。
在步骤434处,分析计算机可以将响应消息传输到请求客户端。在接收到响应消息后,请求客户端就可以快速地能够对欺诈性登录尝试(如果被分析计算机确定为欺诈性)做出反应。通过能够更精确地预测欺诈性登录尝试,可以更有效且快速地识别网络攻击。因此允许更快且更明确地采用攻击缓解策略来对抗网络攻击。
C.动态嵌入
图5示出根据一些实施例的动态嵌入确定方法。在一些实施例中,图5所描述的方法可以由分析计算机执行,如本文中所描述。可以在图4的步骤408处执行动态嵌入确定方法。在动态嵌入过程期间,分析计算机可以确定交互数据的最佳嵌入。例如,在步骤502-518期间,分析计算机可以在将交互数据输入到模型中之前变换所述数据以训练和测试模型。可以经由例如误差矩阵应用变换。分析计算机可以稍后基于模型的性能的评估重新确定误差矩阵。在一些实施例中,如果性能不良(例如,总误差高),则分析计算机可以将模型的误差矩阵应用于交互数据,然后训练和评估下一个模型。分析计算机可以重复此过程,直到模型的预测的总误差超出预定阈值。在这种情况下,可以存储模型的误差矩阵,且稍后将其用于在图4的步骤414处嵌入输入数据,因为所述误差矩阵是可以应用于输入数据使得结果模型的总误差低的最佳误差矩阵。
在步骤502处,分析计算机可以为从交互数据数据库检取的交互数据(例如,在图4的步骤406处)创建初始误差矩阵。例如,交互数据可以呈包括多个节点的图的形式,这些节点经由边缘而连接。分析计算机可以生成初始误差矩阵,所述初始误差矩阵可以包括具有预定值(例如,1)的数据元素。初始误差矩阵的大小可以与交互数据的大小相似(例如,邻接矩阵和/或次数矩阵的大小)。在一些实施例中,分析计算机可以基于与数据元素对应交互相关联的时间戳对误差矩阵中的数据元素进行加权。可以由例如基于对应交互的时间的线性降级函数对误差矩阵中的数据元素进行加权。以此类方式,分析计算机可以基于交互数据的交互发生了多久对初始误差矩阵进行加权。
作为说明性示例,分析计算机可以首先利用可以描述当前嵌入策略的误差矩阵来嵌入数据。最初,分析计算机可能不知道由最佳误差矩阵表示的最佳误差嵌入策略。因而,分析计算机可以确定创建初始误差矩阵,其中每个元素可以等于值1。
在步骤504处,在创建初始误差矩阵之后,分析计算机可以将交互数据的一部分拆分成测试样本。例如,分析计算机可以将交互数据拆分成第一部分和第二部分。第一部分可以是测试样本。第二部分可以是训练样本。在一些实施例中,第二部分相比于第一部分可以包括更多的交互数据。然而,应理解,任何合适百分比的交互数据可以包括到第一部分中。在步骤506处,分析计算机可以将测试样本存储到测试样本数据库中。
在步骤508处,在存储测试样本之后,分析计算机可以用交互数据训练一个或多个模型。具体地说,分析计算机可以用交互数据的第二部分(例如,训练样本)训练一个或多个模型。一个或多个模型可以包括任何合适的模型,例如,在一些实施例中,一个或多个模型可以包括决策树。如本领域技术人员所知,分析计算机可以部分地通过使用训练样本和预定义目标特征进行梯度树提升来创建决策树。预定义目标特征可以包括用于决策树的任何合适的目标(例如,确定输入交互数据是否为欺诈性或非欺诈性)。
在步骤510处,在训练一个或多个模型之后,分析计算机可以用从测试样本数据库检取的测试样本评估一个或多个模型。例如,分析计算机可以将测试样本的交互数据输入到模型中。所述模型,例如,决策树,可以确定输入交互数据是否可以被分类为“欺诈”或“非欺诈”或其它合适的预定义目标特征。
在步骤512处,在用测试样本评估一个或多个模型之后,分析计算机可以更新误差矩阵以及确定总误差。可以以任何合适的方式确定总误差。例如,在一些实施例中,总误差可以是均方误差(MSE)。可以基于来自每个输入交互数据的评估的残差更新误差矩阵。例如,统计或机器学习模型中的残差可以包括数据的观测值(例如,观测到的欺诈性或非欺诈性登录尝试)与数据的预测值(例如,欺诈性或非欺诈性登录尝试的预测)之间的差。残差可以是评估模型的质量时使用的诊断度量。在一些实施例中,残差可以被称为误差。在一些实施例中,分析计算机可以根据残差的量值和/或残差是否形成模式来检查残差。
例如,对于残差都是0的情形,模型完美地预测。残差与0相隔得越多,模型的准确度就越低。在线性回归的情况下,残差平方和越大,R平方统计量就越小,其它都相等。在平均残差不为0的情况下,暗示着模型可能有系统偏差(即,始终过度预测或预测不足)。对于残差含有模式的情形,模型可能是定性错误的,因为它无法解释交互数据的某种属性。
可以基于与对应交互数据相关联的残差更新误差矩阵的元素。例如,当提供可信登录尝试时,神经网络可能会错误地预测欺诈性登录尝试。可以基于来自可信登录尝试的错误预测的残差更新误差矩阵的与可信登录尝试相关联的元素。
在步骤514处,在更新误差矩阵和总误差之后,分析计算机可以确定总误差是否超出预定阈值。总误差可以超出阈值(例如,取决于阈值的度量,大于或等于阈值,或小于或等于阈值)。如果分析计算机确定总误差未超出(例如,满足评估标准),则分析计算机可以进行到步骤516,在步骤516期间,分析计算机可以基于评估变换交互数据。如果分析计算机确定总误差超出预定阈值,则分析计算机可以进行到步骤518。
在步骤516处,在确定模型的总误差未超出预定阈值之后,则分析计算机可以使用误差矩阵变换交互数据。以此方式,可以使用从先前模型确定的残差来修改输入交互数据。然后,分析计算机可以用变换后的交互数据重复步骤508-512。分析计算机可以将步骤508-516执行任何合适的次数,直到在步骤514处模型的总误差超出预定阈值,或直到已执行最大迭代次数。通过变换输入交互数据,分析计算机可以确定哪个误差矩阵最准确地嵌入输入交互数据。
在步骤518处,分析计算机可以存储对应于在步骤514处总误差超出预定阈值的模型的误差矩阵。在一些实施例中,分析计算机可以存储对应于总误差超出预定阈值的一个或多个模型的一个或多个误差矩阵。在一些实施例中,分析计算机还可以存储与误差矩阵相关联的嵌入神经网络。
在存储一个或多个误差矩阵(其可能是最佳误差矩阵)之后,在步骤414处,分析计算机可以利用至少一个误差矩阵嵌入包括当前交互数据的交互数据(例如,在滚动窗口内发生的交互数据)和伪交互数据。例如,误差矩阵可以表示用于变换输入数据(例如,交互数据)使得结果模型比从未变换的数据训练的其它模型更准确地预测目标变量(例如,欺诈)的最佳方式。
D.伪交互数据生成器
图6示出根据一些实施例的伪交互数据生成方法。在一些实施例中,图6所描述的方法可以由分析计算机执行,如本文中所描述。例如,在一些实施例中,分析计算机可以确定历史交互数据中的一个或多个数据趋势,所述一个或多个数据趋势包括在滚动窗口内和外发生的交互。然后,分析计算机可以基于一个或多个数据趋势生成多个伪交互以形成伪交互数据。在一些实施例中,确定一个或多个趋势还可以包括将至少历史交互数据集群成一个或多个社区组。一个或多个社区组中的每个社区组可以包括表示具有相似特性的交互的数据。
在步骤602处,分析计算机可以从交互数据数据库检取交互数据。分析计算机可以检取历史交互数据,所述历史交互数据可以与可能在所确定的滚动窗口(例如,在图4的步骤406)之前发生的时间戳相关联地存储。在一些实施例中,分析计算机可以检取所有历史交互数据。在其它实施例中,分析计算机可以检取在多个历史滚动窗口内发生的历史交互数据。每个历史滚动窗口可以具有与步骤406的滚动窗口相同的大小(例如,2天、1周等)。例如,分析计算机可以采样来自10个历史滚动窗口的历史交互数据。多个历史滚动窗口可以允许分析计算机采样历史交互数据,且因此不使用所有存储数据执行数据处理,使用所有存储数据执行数据处理可能会计算上昂贵。在其它实施例中,分析计算机可以将权重应用于每个历史滚动窗口的历史交互数据。例如,分析计算机可以在更大程度上对较新近的数据进行加权。分析计算机可以对历史滚动窗口的历史交互数据进行加权,以强调历史交互数据中的较旧或新趋势。在一些实施例中,如果在先前迭代中创建了多于一个先前模型,则分析计算机可以运行多于一个先前模型。
在步骤604处,在检取历史交互数据之后,分析计算机可以执行先前创建的模型,其中历史交互数据作为输入。在一些实施例中,先前创建的模型可以包括深度学习器,所述深度学习器可以将数据集群成社区组。例如,分析计算机可以执行集群模型,所述集群模型可以集群所输入的历史交互数据。分析计算机可以将特性上相似的数据点集群在一起。例如,第一交互可以与包括IP地址“1234”、日期“01/01/2019”、时间“23:50”、浏览器“browser_A”、主机“www.example.org”的交互数据相关联。第二交互可以与包括IP地址“2345”、日期“01/02/2019”、时间“23:55”、浏览器“browser_A”、主机“www.example.org”的交互数据相关联。可以基于相似特性来集群用于第一交互的交互数据和第二交互数据,例如,由于针对同一个主机并使用相似浏览器在深夜发生的尝试欺诈。然而,应理解,可以基于任何相似性来集群交互数据。
在步骤606处,分析计算机可以评估先前模型的性能。分析计算机可以使用任何合适的度量来评估先前模型的性能。例如,分析计算机可以确定分类准确度、对数损失、混淆矩阵、曲线下面积(AUC)、F1分数、平均绝对误差、均方误差等。在一些实施例中,分析计算机可以使用向量距离分数确定在用历史交互数据执行时哪些数据(例如,历史交互数据)和先前模型最稳定。分析计算机可以确定每个先前模型的稳定性分数。
在步骤608处,在评估先前模型的性能之后,分析计算机可以基于先前模型的性能对历史交互数据进行加权。分析计算机可以以任何合适的方式对历史交互数据进行加权。例如,在一些实施例中,分析计算机可以基于稳定性分数的倒数对历史交互数据进行加权。
例如,如果模型性能良好(例如,准确地预测例如欺诈的目标变量),则相比于模型性能不良(例如,未准确地预测例如欺诈的目标变量)的情况,分析计算机可以将历史交互数据加权较小的量。可以基于模型的性能对历史交互数据进行加权,因为如果数据从先前模型被创建时起已大体上改变,则模型性能将不良,且可以根据所述改变对数据进行加权。
在一些实施例中,在对历史交互数据进行加权之后,如果需要额外历史交互数据,则分析计算机可以检取历史交互数据的额外随机样本,例如作为测试样本以用于评估(例如,在步骤612处)在步骤610处训练的新模型。在其它实施例中,测试样本可以是重新加权的历史交互数据的子集。测试样本可能不用于训练模型,但可能稍后用于评估模型被训练的良好程度。
在步骤610处,在对历史交互数据进行加权之后,分析计算机可以创建N个新模型。N个新模型可以包括对加权的历史交互数据训练的机器学习模型(例如,神经网络)。分析计算机可以以本文中所描述的任何合适的方式训练N个新模型。
在步骤612处,在训练N个新模型之后,分析计算机可以评估N个新模型的性能。分析计算机可以以本文中所描述的任何合适的方式评估N个新模型的性能。例如,分析计算机可以利用测试样本确定向量距离分数,以确定哪些模型对于测试样本来说最稳定。在一些实施例中,分析计算机可以以与步骤606处的评估相同或相似的方式确定新模型性能的良好程度。例如,分析计算机可以确定新模型预测例如欺诈的目标变量的良好程度。经常接收可信登录尝试数据但然后将所述数据预测为欺诈性的模型可能具有不良的性能。
在步骤614处,分析计算机可以基于在步骤612处确定的新模型性能存储新模型。例如,在一些实施例中,分析计算机可以按稳定性分数对新模型进行排序,并基于Y的预定义值(例如,1、2、3、10等)选择前Y个模型。然后,分析计算机可以将排名最高的新模型存储在模型数据库中。在步骤602-614的未来迭代中,可以将新模型视为先前模型。分析计算机可以存储性能最佳的新模型。
在步骤616处,分析计算机可以用数据集作为输入来执行新模型,所述数据集包括历史交互数据以及在滚动窗口内发生的交互数据(例如,如在步骤406处所检取)。分析计算机可以以本文中所描述的任何合适的方式执行新模型。例如,为了确定伪交互数据,分析计算机可以用所检取的历史交互数据和在滚动窗口内发生的交互数据执行模型数据库中的模型。分析计算机可以基于标准(例如,为由所确定的社区组识别的趋势的一部分)确定哪些历史交互数据与当前交互数据相似。可以将在例如共享社区组方面最相似的历史交互数据包括为要用于训练机器学习模型(例如,在步骤420处)的伪交互数据。步骤618-624描述了可以包括到伪交互数据中的历史交互数据的确定和选择。
在步骤618处,在用历史交互数据和在滚动窗口内发生的交互数据执行新模型之后,分析计算机可以将在滚动窗口内发生的交互数据与历史交互数据匹配。例如,新模型可以基于数据点之间的相似性将数据集群成社区组。分析计算机可以确定在滚动窗口内发生的任何交互数据是否与任何历史交互数据匹配(例如,在阈值相似性量内)。例如,分析计算机可以使用向量距离分数(或任何其它合适的相似性度量)确定数据社区组之间的差异。
在步骤620处,分析计算机可以确定匹配的社区组内的每个交互数据的相似性分数。例如,在步骤618处,可以将欺诈性历史交互社区组和欺诈性当前社区组匹配。然后,在步骤620处,分析计算机可以确定欺诈性历史交互社区组的每个历史交互数据与欺诈性当前社区组的在滚动窗口内发生的每个交互数据之间的相似性分数。相似性分数可以是如本文中所描述的任何合适的相似性分数。在一些实施例中,相似性分数可以是向量距离分数,其可以是例如历史交互数据的欺诈性登录尝试与当前交互数据的欺诈性登录尝试之间的向量空间中的距离。
在步骤622和624处,在确定相似性分数之后,分析计算机可以基于相似性分数对交互数据进行排序,并将前X个匹配的历史交互数据包括到伪交互数据中。前X个匹配的历史交互数据可以包括排序最高(例如,相似性分数最高)的历史交互数据。换句话说,分析计算机可以包括最接近地将当前交互数据中的趋势匹配到伪交互数据中的历史交互数据。在一些实施例中,伪交互数据可以包括可能已发生欺诈的交互(例如,欺诈性登录尝试)。将这些伪交互包括到用于训练机器学习模型(例如,在步骤420处)的交互数据中可以引入额外数据,以包括历史交互数据中随时间推移而发生并继续到当前交互数据中的趋势。以此类方式,当确定预测或其它合适的机器学习模型输出时,结果训练模型可能不会忘记历史交互数据中的这些总体趋势。
III.实验改进
如本文中所描述,针对不包括伪交互数据的使用的模型评估实施例。用作交互数据的数据集包括来自与KDD-99第五届知识发现和数据挖掘国际会议(KDD-99 The FifthInternational Conference on Knowledge Discovery and Data Mining)共同举办的第三届国际知识发现和数据挖掘工具竞赛(Third International Knowledge Discoveryand Data Mining Tools Competition)的KDD网络入侵数据集。
A.数据
KDD网络入侵数据集用于测试根据实施例的系统和方法。这是与KDD-99第五届知识发现和数据挖掘国际会议共同举办的第三届国际知识发现和数据挖掘工具竞赛所使用的数据集。所述数据集包括被称为入侵或攻击的“坏”连接,以及“好”正常连接(例如,非欺诈性连接)。此数据库含有要审核的标准数据集,其包括军事网络环境中模拟的各种入侵。关于所述数据集,请参阅http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html。
B.方法
首先,分析计算机提取了30%的“坏”数据样本和10%的“好”数据样本。然后,分析计算机运行了全体的图学习器,以基于“坏”数据创建社区组。根据图模型,使用向量距离分数推荐了“坏”模式,以找到与30%的样本中找到的模式相似的“坏”模式以生成伪交互数据。接下来,生成了两个模型,一个模型使用30%的“坏”数据和10%的好数据,第二模型将模拟“坏”攻击与30%的“坏”数据混合。两个模型都使用了梯度提升树。对于性能测试,分析计算机使用了新的10%的“好”和“坏”样本。
C.结果
下表2说明了用不包括伪交互数据的数据集和确实包括伪交互数据的数据集实施的模型的精确度和召回率。精确度可以被确定为:
精确度=真正/(真正+假正)
召回率可以被确定为:
召回率=真正/(真正+假负)
精确度 | 召回率 | |
不具有伪交互数据的数据集 | .63 | .47 |
具有伪交互数据的数据集 | .72 | .69 |
表2:实验结果
本公开的实施例具有许多优点。表2说明了当利用如本文中所描述的伪交互数据时相比于当不使用伪交互数据时精确度和召回率两者的改进。因而,本公开的实施例允许分析计算机利用伪交互数据来更精确地预测交互数据(例如,登录尝试数据)是否为欺诈性。通过能够更精确地预测欺诈性登录尝试,可以更有效且快速地识别网络攻击。因此允许更快且更明确地采用攻击缓解策略来对抗网络攻击。
本公开的实施例具有优于使用所有数据来训练模型的情况的优点。例如,虽然另一个选项可能是使用所有历史数据和在当前滚动窗口内的所有数据(例如,当前交互数据),但使用所有历史交互数据和当前交互数据来训练神经网络会花费很长时间,因为需要处理大量数据。如果神经网络花费太长时间来训练,则它就不能对例如可能在较小的时间尺度发生的网络攻击做出反应。
另外,本公开的实施例具有优于仅使用来自当前滚动窗口的当前数据来训练模型的情况的优点。例如,欺诈者和安全系统可以对另一方的行动做出反应,这种反应会导致涉及博弈论的情形(例如,理性决策者之间存在策略性交互的情形)。欺诈者可能从第一地理位置执行欺诈性登录尝试。因此,可以更改安全系统,使得源自第一地理位置的登录尝试比源自其它地理位置的登录尝试更特殊地被细致审查。欺诈者然后可能会改变他们的策略,且可能例如执行IP欺骗。欺诈者可能修改IP地址,使得对于安全系统来说,登录尝试似乎是源自第二地理位置。再次,可以更改安全系统,使得源自第二地理位置的登录尝试比源自其它地理位置的登录尝试更特殊地被细致审查。然而,如果实施这些更改(例如,确定细致审查特定地理位置)的模型分析当前数据,则它们可能会停止细致审查来自第一地理位置的登录尝试。因此,只是对欺诈者当前正在做的事情做出反应。
尽管以特定顺序示出或描述了上述流程图和过程流程中的步骤,但应理解,本发明的实施例可以包括具有呈不同顺序的步骤的方法。另外,可以省略或添加步骤,且它们仍可以在本发明的实施例中。
本申请中所描述的任何软件组件或功能可被实施为要使用例如Java、C、C++、C#、Objective-C、Swift的任何合适计算机语言或例如Perl或Python的脚本语言,使用例如常规的或面向对象的技术由处理器执行的软件代码。软件代码可以作为一系列指令或命令存储在计算机可读介质上以供存储和/或传递,合适的介质包括随机存取存储器(RAM)、只读存储器(ROM)、例如硬盘驱动器或软盘的磁性介质,或例如光盘(CD)或数字通用盘(DVD)的光学介质、闪存存储器等。计算机可读介质可以是此类存储或传输装置的任何组合。
此类程序还可以使用适应于经由包括因特网的符合多种协议的有线、光学和/或无线网络进行传输的载波信号来编码和传输。因此,根据本发明的实施例的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可以与兼容装置一起封装或与其它装置分开地提供(例如,经由因特网下载)。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)上或单个计算机产品内,且可存在于系统或网络内的不同计算机产品上或不同计算机产品内。计算机系统可以包括用于将本文中所提及的任何结果提供给用户的监控器、打印机或其它合适的显示器。
以上描述是说明性的而不是限制性的。在本领域技术人员阅读了本公开后,本发明的许多变化将变得显而易见。因此,本发明的范围不应参考以上描述来确定,而是应参考待决的权利要求以及其完整范围或等效物来确定。
在不偏离本发明的范围的情况下,任何实施例的一个或多个特征可以与任何其它实施例的一个或多个特征组合。
如本文中所使用,除非明确指示有相反的意思,否则使用“一个”、“一种”或“所述”旨在指示“至少一个”。
Claims (20)
1.一种方法,包括:
由分析计算机确定与用于随时间推移而发生的交互的交互数据相关联的滚动窗口;
由所述分析计算机检取用于在所述滚动窗口中发生的交互的交互数据;
由所述分析计算机基于历史交互数据生成伪交互数据;以及
由所述分析计算机使用用于在所述滚动窗口内发生的交互的所述交互数据和所述伪交互数据形成神经网络模型。
2.根据权利要求1所述的方法,其中所述滚动窗口包括期间发生所述交互数据的时间范围,且其中所述方法还包括:
由所述分析计算机嵌入用于在所述滚动窗口内发生的所述交互的所述交互数据和所述伪交互数据以形成交互数据矩阵,且其中使用所述交互数据矩阵形成所述神经网络模型。
3.根据权利要求2所述的方法,其中生成所述伪交互数据还包括:
由所述分析计算机确定所述历史交互数据中的一个或多个数据趋势,所述一个或多个数据趋势包括在所述滚动窗口内和外发生的交互;以及
由所述分析计算机基于所述一个或多个数据趋势生成多个伪交互以形成所述伪交互数据。
4.根据权利要求3所述的方法,其中确定所述一个或多个数据趋势还包括:
由所述分析计算机将至少所述历史交互数据集群成一个或多个社区组,其中所述一个或多个社区组中的每个社区组包括表示具有相似特性的交互的数据。
5.根据权利要求4所述的方法,其中形成所述神经网络模型还包括:
由所述分析计算机拆分所述交互数据矩阵的一部分以形成测试样本;
由所述分析计算机将所述测试样本存储到数据库中;
由所述分析计算机用未包括在所述测试样本中的所述交互数据矩阵训练神经网络;
基于所述训练,由所述分析计算机确定部分地定义所述神经网络模型的多个神经网络权重;
由所述分析计算机使用所述测试样本评估所述神经网络模型;以及
基于所述评估,由所述分析计算机将所述神经网络模型存储在模型数据库中。
6.根据权利要求5所述的方法,其中所述神经网络为卷积神经网络或递归神经网络。
7.根据权利要求1所述的方法,还包括:
确定一个或多个误差矩阵;以及
用机器学习模型和所述一个或多个误差矩阵嵌入用于在所述滚动窗口内发生的所述交互的所述交互数据和所述伪交互数据以形成交互数据矩阵,且其中形成所述神经网络模型包括使用所述交互数据矩阵来形成所述神经网络模型。
8.根据权利要求7所述的方法,其中确定所述一个或多个误差矩阵还包括:
由所述分析计算机使用用于在所述滚动窗口内发生的所述交互的所述交互数据的第一部分训练模型;
由所述分析计算机使用用于在所述滚动窗口内发生的所述交互的所述交互数据的第二部分评估所述模型;
由所述分析计算机基于所述评估确定误差矩阵和总误差;
由所述分析计算机确定所述总误差是否超出预定误差阈值;以及
如果所述总误差超出所述预定误差阈值,则由所述分析计算机将所述误差矩阵存储在数据库中。
9.根据权利要求1所述的方法,还包括:
由所述分析计算机将所述神经网络模型存储在模型数据库中。
10.根据权利要求9所述的方法,还包括:
由所述分析计算机接收包括请求数据的请求消息;以及
由所述分析计算机确定对所述请求消息的响应消息,所述响应消息包括由所述神经网络模型基于所述请求数据输出的响应数据。
11.一种分析计算机,包括:
处理器;
耦合到所述处理器的计算机可读介质,所述计算机可读介质包括能由所述处理器执行以实施一种方法的代码,所述方法包括:
确定与用于随时间推移而发生的交互的交互数据相关联的滚动窗口;
检取用于在所述滚动窗口中发生的交互的交互数据;
基于历史交互数据生成伪交互数据;以及
使用用于在所述滚动窗口内发生的交互的所述交互数据和所述伪交互数据形成神经网络模型。
12.根据权利要求11所述的分析计算机,还包括:
耦合到所述处理器的伪交互数据生成模块;
耦合到所述处理器的嵌入模块;以及
耦合到所述处理器的机器学习模块。
13.根据权利要求11所述的分析计算机,其中生成所述伪交互数据还包括:
确定所述历史交互数据中的一个或多个数据趋势,所述一个或多个数据趋势包括在所述滚动窗口内和外发生的交互;以及
基于所述一个或多个数据趋势生成多个伪交互以形成所述伪交互数据。
14.根据权利要求11所述的分析计算机,其中用于随时间推移而发生的交互的所述交互数据包括时间戳和实体标识符,且其中用于伪交互的所述伪交互数据包括时间戳和实体标识符。
15.根据权利要求11所述的分析计算机,其中所述交互是登录尝试并包括时间戳、IP地址和浏览器类型,其中当实体尝试登录到安全网页时发生登录尝试。
16.根据权利要求15所述的分析计算机,其中基于历史交互数据生成所述伪交互数据还包括:
确定历史交互数据的相似登录尝试的社区组,其中所述社区组包括通常与欺诈性登录尝试相关联的IP地址;以及
生成至少包括所述社区组中所包括的IP地址的所述伪交互数据。
17.根据权利要求11所述的分析计算机,其中所述方法还包括:
使用所述神经网络模型确定与一个或多个IP地址相关联的一个或多个实体是否将尝试欺诈性登录尝试的预测。
18.根据权利要求11所述的分析计算机,其中所述方法还包括:
从请求客户端接收包括请求数据的请求消息,其中所述请求数据包括新交互数据;
由所述分析计算机确定对所述请求消息的响应消息,所述响应消息包括由所述神经网络模型基于所述新交互数据输出的响应数据;以及
将所述响应消息提供给所述请求客户端。
19.根据权利要求11所述的分析计算机,其中所述方法还包括:
确定一个或多个误差矩阵;以及
用机器学习模型和所述一个或多个误差矩阵嵌入用于在所述滚动窗口内发生的所述交互的所述交互数据和所述伪交互数据以形成交互数据矩阵,且其中形成所述神经网络模型包括使用所述交互数据矩阵来形成所述神经网络模型。
20.根据权利要求19所述的分析计算机,其中确定所述一个或多个误差矩阵还包括:
使用用于在所述滚动窗口内发生的所述交互的所述交互数据的第一部分训练模型;
使用用于在所述滚动窗口内发生的所述交互的所述交互数据的第二部分评估所述模型;
基于所述评估确定误差矩阵和总误差;
确定所述总误差是否超出预定误差阈值;以及
如果所述总误差超出所述预定误差阈值,则将所述误差矩阵存储在数据库中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862734149P | 2018-09-20 | 2018-09-20 | |
US62/734,149 | 2018-09-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110929840A true CN110929840A (zh) | 2020-03-27 |
Family
ID=67997365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910891810.3A Pending CN110929840A (zh) | 2018-09-20 | 2019-09-20 | 使用滚动窗口的连续学习神经网络系统 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11481622B2 (zh) |
EP (1) | EP3627400A1 (zh) |
CN (1) | CN110929840A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112751671A (zh) * | 2020-12-30 | 2021-05-04 | 华南农业大学 | 一种基于树型奇偶机的新型密钥交换方法 |
US20220164798A1 (en) * | 2020-11-20 | 2022-05-26 | Royal Bank Of Canada | System and method for detecting fraudulent electronic transactions |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11941491B2 (en) | 2018-01-31 | 2024-03-26 | Sophos Limited | Methods and apparatus for identifying an impact of a portion of a file on machine learning classification of malicious content |
US10880944B2 (en) * | 2018-08-24 | 2020-12-29 | Hewlett Packard Enterprise Development Lp | Detecting network connectivity anomalies with presence analysis |
US11947668B2 (en) | 2018-10-12 | 2024-04-02 | Sophos Limited | Methods and apparatus for preserving information between layers within a neural network |
US11218494B2 (en) * | 2019-07-26 | 2022-01-04 | Raise Marketplace, Llc | Predictive fraud analysis system for data transactions |
JP2022552320A (ja) * | 2019-10-16 | 2022-12-15 | ピーディーエフ ソリューションズ,インコーポレイテッド | 累積予測による機械学習変数選択および根本原因発見 |
US20220036219A1 (en) * | 2020-07-29 | 2022-02-03 | Jpmorgan Chase Bank, N.A. | Systems and methods for fraud detection using game theory |
EP3975092A1 (en) * | 2020-09-29 | 2022-03-30 | MasterCard International Incorporated | Method and system for detecting fraudulent transactions |
US20220207295A1 (en) * | 2020-12-31 | 2022-06-30 | The Toronto-Dominion Bank | Predicting occurrences of temporally separated events using adaptively trained artificial intelligence processes |
US20220237285A1 (en) * | 2021-01-26 | 2022-07-28 | EMC IP Holding Company LLC | Cyber immunity system as a biological self-recognition model on operating systems |
CN112905656A (zh) * | 2021-01-29 | 2021-06-04 | 重庆理工大学 | 一种融合时序网络的动态社区发现系统 |
US12010129B2 (en) * | 2021-04-23 | 2024-06-11 | Sophos Limited | Methods and apparatus for using machine learning to classify malicious infrastructure |
US20230214822A1 (en) * | 2022-01-05 | 2023-07-06 | Mastercard International Incorporated | Computer-implemented methods and systems for authentic user-merchant association and services |
US20240168918A1 (en) * | 2022-11-22 | 2024-05-23 | Truist Bank | Systems for cluster analysis of interactive content |
US11977515B1 (en) | 2022-11-22 | 2024-05-07 | Truist Bank | Real time analysis of interactive content |
EP4398152A1 (en) * | 2023-01-04 | 2024-07-10 | British Telecommunications public limited company | Analytics platform optimisation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090192855A1 (en) * | 2006-03-24 | 2009-07-30 | Revathi Subramanian | Computer-Implemented Data Storage Systems And Methods For Use With Predictive Model Systems |
US20170103340A1 (en) * | 2015-10-09 | 2017-04-13 | Fair Isaac Corporation | Method for Real-Time Enhancement of a Predictive Algorithm by a Novel Measurement of Concept Drift Using Algorithmically-Generated Features |
US20170185585A1 (en) * | 2015-12-28 | 2017-06-29 | Staples, Inc. | Learning a Vector Representation for Unique Identification Codes |
US20170262852A1 (en) * | 2016-03-10 | 2017-09-14 | Amadeus S.A.S. | Database monitoring system |
US20180068395A1 (en) * | 2016-09-07 | 2018-03-08 | American Express Travel Related Services Company, Inc. | Systems and Methods for an Automatically-Updating Fraud Detection Variable |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9137033B2 (en) * | 2003-03-18 | 2015-09-15 | Dynamic Network Services, Inc. | Methods and systems for monitoring network routing |
US8533224B2 (en) * | 2011-05-04 | 2013-09-10 | Google Inc. | Assessing accuracy of trained predictive models |
US10032180B1 (en) * | 2012-10-04 | 2018-07-24 | Groupon, Inc. | Method, apparatus, and computer program product for forecasting demand using real time demand |
US10484406B2 (en) * | 2015-01-22 | 2019-11-19 | Cisco Technology, Inc. | Data visualization in self-learning networks |
GB201515384D0 (en) * | 2015-08-28 | 2015-10-14 | Status Today Ltd | User and user group network monitoring |
US10290040B1 (en) * | 2015-09-16 | 2019-05-14 | Amazon Technologies, Inc. | Discovering cross-category latent features |
US20170214708A1 (en) * | 2016-01-25 | 2017-07-27 | Acalvio Technologies, Inc. | Detecting security threats by combining deception mechanisms and data science |
US9919217B2 (en) * | 2016-03-08 | 2018-03-20 | Electronic Arts Inc. | Dynamic difficulty adjustment |
US11036526B2 (en) * | 2016-12-05 | 2021-06-15 | Google Llc | Automatically selecting and distributing recordings of applications executing on computing devices over networked environments |
US10409367B2 (en) * | 2016-12-21 | 2019-09-10 | Ca, Inc. | Predictive graph selection |
US10346762B2 (en) * | 2016-12-21 | 2019-07-09 | Ca, Inc. | Collaborative data analytics application |
US9930180B1 (en) * | 2017-04-28 | 2018-03-27 | Afiniti, Ltd. | Techniques for behavioral pairing in a contact center system |
US20190362222A1 (en) * | 2018-05-22 | 2019-11-28 | Adobe Inc. | Generating new machine learning models based on combinations of historical feature-extraction rules and historical machine-learning models |
US20200202272A1 (en) * | 2018-12-20 | 2020-06-25 | Genesys Telecommunications Laboratories, Inc. | Method and system for estimating expected improvement in a target metric for a contact center |
US20210397940A1 (en) * | 2020-06-10 | 2021-12-23 | Nvidia Corporation | Behavior modeling using client-hosted neural networks |
US20220358366A1 (en) * | 2021-05-04 | 2022-11-10 | Meta Platforms, Inc. | Generation and implementation of dedicated feature-based techniques to optimize inference performance in neural networks |
-
2019
- 2019-09-17 EP EP19197802.2A patent/EP3627400A1/en active Pending
- 2019-09-20 CN CN201910891810.3A patent/CN110929840A/zh active Pending
- 2019-09-20 US US16/577,047 patent/US11481622B2/en active Active
-
2022
- 2022-09-14 US US17/944,661 patent/US11645528B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090192855A1 (en) * | 2006-03-24 | 2009-07-30 | Revathi Subramanian | Computer-Implemented Data Storage Systems And Methods For Use With Predictive Model Systems |
US20170103340A1 (en) * | 2015-10-09 | 2017-04-13 | Fair Isaac Corporation | Method for Real-Time Enhancement of a Predictive Algorithm by a Novel Measurement of Concept Drift Using Algorithmically-Generated Features |
US20170185585A1 (en) * | 2015-12-28 | 2017-06-29 | Staples, Inc. | Learning a Vector Representation for Unique Identification Codes |
US20170262852A1 (en) * | 2016-03-10 | 2017-09-14 | Amadeus S.A.S. | Database monitoring system |
US20180068395A1 (en) * | 2016-09-07 | 2018-03-08 | American Express Travel Related Services Company, Inc. | Systems and Methods for an Automatically-Updating Fraud Detection Variable |
Non-Patent Citations (1)
Title |
---|
SAKTI SAURAV ET AL: "Online anomaly detection with concept drift adaptation using recurrent neural networks", DATA SCIENCE AND MANAGEMENT OF DATA, pages 78 - 87 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220164798A1 (en) * | 2020-11-20 | 2022-05-26 | Royal Bank Of Canada | System and method for detecting fraudulent electronic transactions |
CN112751671A (zh) * | 2020-12-30 | 2021-05-04 | 华南农业大学 | 一种基于树型奇偶机的新型密钥交换方法 |
Also Published As
Publication number | Publication date |
---|---|
US11645528B2 (en) | 2023-05-09 |
US20200097817A1 (en) | 2020-03-26 |
US11481622B2 (en) | 2022-10-25 |
US20230004808A1 (en) | 2023-01-05 |
EP3627400A1 (en) | 2020-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110929840A (zh) | 使用滚动窗口的连续学习神经网络系统 | |
US20210326389A1 (en) | Dynamic graph representation learning via attention networks | |
US11403643B2 (en) | Utilizing a time-dependent graph convolutional neural network for fraudulent transaction identification | |
CN115185736B (zh) | 基于图卷积神经网络的微服务调用链异常检测方法及装置 | |
US20220253856A1 (en) | System and method for machine learning based detection of fraud | |
US11868861B2 (en) | Offline security value determination system and method | |
CN113011895B (zh) | 关联账户样本筛选方法、装置和设备及计算机存储介质 | |
CN112733995B (zh) | 训练神经网络的方法、行为检测方法及行为检测装置 | |
CN111612041A (zh) | 异常用户识别方法及装置、存储介质、电子设备 | |
CN116615736A (zh) | 经由光卷积进行的动态图节点嵌入 | |
CN112995414B (zh) | 基于语音通话的行为质检方法、装置、设备及存储介质 | |
WO2019213425A2 (en) | System and method including accurate scoring and response | |
CN113657993A (zh) | 信用风险识别方法、装置、设备及存储介质 | |
WO2019143360A1 (en) | Data security using graph communities | |
US11735188B2 (en) | System and method for detecting fraud rings | |
CN116843400A (zh) | 基于图表示学习的区块链碳排放交易异常检测方法和装置 | |
CN112487406A (zh) | 一种基于机器学习的网络行为分析方法 | |
CN111144453A (zh) | 构建多模型融合计算模型的方法及设备、网站数据识别方法及设备 | |
Ganji et al. | Shuffled shepherd political optimization‐based deep learning method for credit card fraud detection | |
US20230325630A1 (en) | Graph learning-based system with updated vectors | |
Rani et al. | Detection of Cloned Attacks in Connecting Media using Bernoulli RBM_RF Classifier (BRRC) | |
Hariri et al. | Developing a Model to Detect Malicious URLs using Different Classification Algorithms | |
US12061622B1 (en) | Apparatus and method for communications associated with one or more data sets | |
US11928128B2 (en) | Construction of a meta-database from autonomously scanned disparate and heterogeneous sources | |
CN114022270B (zh) | 资产数据处理方法、相关设备及介质 |
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 |