用于检测数据集合中的异常数据组的方法和设备转让专利

申请号 : CN201810957760.X

文献号 : CN109947814B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄铃段亦涛徐葳班义琨

申请人 : 慧安金科(北京)科技有限公司清华大学

摘要 :

本公开实施例提供了用于检测数据集合中的异常数据组的方法、设备和计算机可读存储介质。该方法包括:从与所述数据集合相对应的图中移除具有低于第一阈值的权重的边;确定所述图中的顶点和剩余的边所能构成的连通子图;分别调整每个连通子图,使得其各自的异常密度值最大化;以及将与经调整的连通子图相对应的数据组确定为所述异常数据组。

权利要求 :

1.一种用于检测数据集合中的异常数据组的方法,包括:从与所述数据集合相对应的图中移除具有低于第一阈值的权重的边;

确定所述图中的顶点和剩余的边所能构成的连通子图;

分别调整每个连通子图,使得其各自的异常密度值最大化;以及将与经调整的连通子图相对应的数据组确定为所述异常数据组。

2.根据权利要求1所述的方法,其中,所述数据集合包括多个用户在一个或多个模式下的数据,以及与所述数据集合相对应的图是通过如下方式确定的:所述图中的顶点与所述多个用户一一对应;以及如果在与所述图中的两个顶点相对应的两个用户的数据之间存在相似性,则在所述两个顶点之间存在一条边。

3.根据权利要求2所述的方法,其中,边的权重由下式给出:其中,

其中,

其中,Si,j表示所述图中顶点i和顶点j之间的边的权重,K表示模式总数,角标k表示与k

第k个模式相关,p (x)表示第k个模式下的所有可能取值中取值为x的概率, 表示用户ui在第k个模式下第a个值的取值, 表示用户uj在第k个模式下第b个值的取值,运算符表示能够定制的相等函数,以及log为对数函数。

4.根据权利要求3所述的方法,其中,所述第一阈值由下式给出:其中,θ是所述第一阈值,C是所述数据集合中的数据记录的总数,以及N表示所述多个用户的总数。

5.根据权利要求1所述的方法,其中,在确定所述图中的顶点和剩余的边所能构成的连通子图之前,所述方法还包括:移除所述图中不具有任何边的顶点。

6.根据权利要求2所述的方法,其中,在确定所述图中的顶点和剩余的边所能构成的连通子图之后且在分别调整每个连通子图,使得其各自的异常密度值最大化之前,所述方法还包括:

从所述图中移除具有低于第二阈值的顶点数的连通子图。

7.根据权利要求6所述的方法,其中,所述第二阈值由下式给出:k

其中,ψ是所述第二阈值,K表示模式总数,N表示所述多个用户的总数,以及q 表示在模式k下的唯一值的数目。

8.根据权利要求1所述的方法,其中,连通子图的异常密度值由下式给出:其中, 表示连通子图 的异常密度值,ui和uj分别表示与用户i和用户j相对应的顶点,表示当前连通子图 的顶点,Si,j表示所述图中与用户i和用户j相对应的顶点之间的边的权重,以及 表示当前连通子图的顶点数。

9.根据权利要求8所述的方法,其中,分别调整每个连通子图,使得其各自的异常密度值最大化包括:

针对每个连通子图执行以下操作:步骤(a):确定当前连通子图中的第一顶点,使得所述当前连通子图在没有所述第一顶点及其关联边的情况下的异常密度值大于等于所述当前连通子图在没有除了所述第一顶点之外的其它任一顶点及其关联边的情况下的异常密度值;

步骤(b):将没有所述第一顶点和关联边的当前连通子图确定为中间连通子图;

针对所述中间连通子图一次或多次重复上述步骤(a)和(b),直到最后的中间连通子图仅有一个顶点为止,以形成一系列中间连通子图;以及将没有移除任何顶点的原来的当前连通子图以及所述一系列中间连通子图中具有最高的异常密度值的连通子图确定为经调整的异常密度值最大化的连通子图。

10.一种用于检测数据集合中的异常数据组的设备,包括:处理器;

存储器,其上存储有指令,所述指令在由所述处理器执行时使得所述处理器执行根据权利要求1~9中任一项所述的方法。

11.一种存储指令的计算机可读存储介质,所述指令在由处理器执行时使得所述处理器执行根据权利要求1~9中任一项所述的方法。

说明书 :

用于检测数据集合中的异常数据组的方法和设备

技术领域

[0001] 本公开大体上涉及数据挖掘领域,且更具体地涉及用于检测数据集合中的异常数据组的方法、设备和计算机可读存储介质。

背景技术

[0002] 网络欺诈已经成为了当代互联网的严重威胁之一。欺诈的目的形形色色,从轻微的试图获取公众注意力到严重的金融诈骗(例如,信用卡盗用)都有。例如,在社交网站或媒
体分享网站上,人们想要通过增加更多的粉丝(关注者或追随者)来增加自身的账户价值。
又例如,在电子商务网站上,欺诈者注册很多账户以滥用网站提供的新用户优惠,或者向正
常用户兜售虚假服务、商品等。因此,需要一种能够检测到这种网络欺诈行为的方案。

发明内容

[0003] 为了至少部分解决或减轻上述网络欺诈问题,提供了根据本公开的用于检测数据集合中的异常数据组的方法、设备和计算机可读存储介质。
[0004] 根据本公开的第一方面,提供了一种用于检测数据集合中的异常数据组的方法。该方法包括:从与所述数据集合相对应的图中移除具有低于第一阈值的权重的边;确定所
述图中的顶点和剩余的边所能构成的连通子图;分别调整每个连通子图,使得其各自的异
常密度值最大化;以及将与经调整的连通子图相对应的数据组确定为所述异常数据组。
[0005] 在一些实施例中,所述数据集合包括多个用户在一个或多个模式下的数据,以及与所述数据集合相对应的图是通过如下方式确定的:所述图中的顶点与所述多个用户一一
对应;以及如果在与所述图中的两个顶点相对应的两个用户的数据之间存在相似性,则在
所述两个顶点之间存在一条边。在一些实施例中,边的权重由下式给出:
[0006]
[0007] 其中,
[0008] 其中,
[0009] 其中,Si,j表示所述图中顶点i和顶点j之间的边的权重,K表示模式总数,角标k表k
示与第k个模式相关,p (x)表示第k个模式下的所有可能取值中取值为x的概率, 表示
用户ui在第k个模式下第a个值的取值, 表示用户uj在第k个模式下第b个值的取值,运
算符 表示能够定制的相等函数,以及log为对数函数。
[0010] 在一些实施例中,所述第一阈值由下式给出:
[0011]
[0012] 其中,θ是所述第一阈值,C是所述数据集合中的数据记录的总数,以及N表示所述多个用户的总数。在一些实施例中,在确定所述图中的顶点和剩余的边所能构成的连通子
图之前,所述方法还包括:移除所述图中不具有任何边的顶点。在一些实施例中,在确定所
述图中的顶点和剩余的边所能构成的连通子图之后且在分别调整每个连通子图,使得其各
自的异常密度值最大化之前,所述方法还包括:从所述图中移除具有低于第二阈值的顶点
数的连通子图。
[0013] 在一些实施例中,所述第二阈值由下式给出:
[0014]
[0015] 其中,ψ是所述第二阈值,K表示模式总数,N表示所述多个用户的总数,以及qk表示在模式k下的唯一值的数目。在一些实施例中,连通子图的异常密度值由下式给出:
[0016]
[0017] 其中, 表示连通子图 的异常密度值,ui和uj分别表示与用户i和用户j相对应的顶点,v表示当前连通子图 的顶点,Si,j表示所述图中与用户i和用户j相对应的顶点之
间的边的权重,以及|v|表示当前连通子图的顶点数。在一些实施例中,分别调整每个连通
子图,使得其各自的异常密度值最大化包括:针对每个连通子图执行以下操作:确定当前连
通子图中的第一顶点,使得所述当前连通子图在没有所述第一顶点及其关联边的情况下的
异常密度值大于等于所述当前连通子图在没有除了所述第一顶点之外的其它任一顶点及
其关联边的情况下的异常密度值;将没有所述第一顶点和关联边的当前连通子图确定为中
间连通子图;针对所述中间连通子图一次或多次重复上述步骤,直到最后的中间连通子图
仅有一个顶点为止,以形成一系列中间连通子图;以及将没有移除任何顶点的原来的当前
连通子图以及所述一系列中间连通子图中具有最高的异常密度值的连通子图确定为经调
整的异常密度值最大化的连通子图。
[0018] 根据本公开的第二方面,提供了一种用于检测数据集合中的异常数据组的设备。该设备包括:处理器;存储器,其上存储有指令,所述指令在由所述处理器执行时使得所述
处理器执行根据本公开第一方面所述的方法。
[0019] 根据本公开的第三方面,提供了一种存储指令的计算机可读存储介质,所述指令在由处理器执行时使得所述处理器执行根据本公开第一方面所述的方法。
[0020] 通过使用本公开实施例的方法、设备和/或计算机可读存储介质,可以准确地自动检测到海量数据中的异常数据组,帮助服务提供商准确地确定需要注意的异常用户组,从
而避免了可能出现的损失、同时节约了大量的运维成本。

附图说明

[0021] 通过下面结合附图说明本公开的优选实施例,将使本公开的上述及其它目的、特征和优点更加清楚,其中:
[0022] 图1是示出了适于使用根据本公开实施例的异常数据组检测方案的示例应用场景的示意图。
[0023] 图2是示出了根据本公开实施例的用于检测数据集合中的异常数据组的示例方法的流程图。
[0024] 图3是示出了针对示例数据集合来应用根据本公开实施例的用于检测数据集合中的异常数据组的方法的各阶段示意图。
[0025] 图4是示出了在使用根据本公开实施例的异常数据组检测方法的情况下的示例结果示意图。
[0026] 图5是示出了将根据本公开实施例的异常数据组检测方案的检测结果与其他方法的检测结果进行比较的示意图。
[0027] 图6是示出了根据本公开实施例的用于检测数据集合中的异常数据组的设备的硬件布置图。

具体实施方式

[0028] 下面参照附图对本公开的部分实施例进行详细说明,在描述过程中省略了对于本公开来说是不必要的细节和功能,以防止对本公开的理解造成混淆。在本说明书中,下述用
于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制公开的范围。参
照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施
例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本
领域普通技术人员应认识到,在不脱离本公开的范围和精神的情况下,可以对本文中描述
的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描
述。此外,贯穿附图,相同的附图标记用于相同或相似的功能、器件和/或操作。此外,在附图
中,各部分并不一定按比例来绘制。换言之,附图中的各部分的相对大小、长度等并不一定
与实际比例相对应。此外,在本公开一些实施例中描述的全部或部分特征也可被应用于其
他实施例中以形成依然落入本申请范围内的新的实施例。
[0029] 此外,本公开并不局限于所涉及的设备的各个具体通信协议,包括(但不限于)2G、3G、4G、5G网络,WCDMA、CDMA2000、TD‑SCDMA系统等,不同的设备可以采用相同的通信协议,
也可以采用不同的通信协议。此外,本公开并不局限于设备的具体操作系统,可以包括(但
不限于)iOS、Windows Phone、Symbian(塞班)、Android(安卓)、Linux、Unix、Windows、MacOS
等,不同的设备可以采用相同的操作系统,也可以采用不同的操作系统。
[0030] 尽管下文中将主要在防止网络欺诈的具体场景中说明根据本公开实施例的用于检测数据集合中的异常数据组的方案,然而本公开不限于此。事实上,本公开的实施例在经
过恰当的调整和修改的情况下,也可以适用于其他各种需要检测具有特定模式的数据组的
情况,例如检测高价值客户等。换言之,只要是需要确定数据组之间的差异的场景,都可以
使用根据本公开实施例的方案。
[0031] 如前所述,网络欺诈已成为了当代互联网的严重威胁之一。因此,欺诈检测就成为了计算机安全领域和数据挖掘领域中的基础课题。尽管存在很多类型的捕捉/检测网络欺
诈的方法,在本公开的一些实施例中,主要关注于通过分析用户日志(也被称为点击流
(click stream))来区分欺诈用户与合法用户。这里提到的日志可以是多模态(multi‑
modal)的,并且可以包含至少两类数据:(1)用户简档,例如地理位置、年龄、电话号码、性别
等;以及(2)用户动作,例如注册、登录、页面查看和购买、以及诸如关注其他用户之类的社
交动作。取决于具体的应用,大多数日志仅包含这些属性的子集。然而,需要注意的是:本公
开不限于此。事实上,在本公开的另一些实施例中,也可以针对除了用户日志之外的其他数
据集合来进行异常数据组检测。
[0032] 相关的根据日志来检测欺诈的方法大致可分为两类。第一类是对单个用户动作进行建模,并利用基于规则的方法或基于机器学习的方法来检测异常的动作序列。然而该类
方案存在至少两个缺陷:(1)需要等待多个动作的发生,并且在检测时已发生了损失;以及
(2)欺诈者可以改变其行为来避开检测,且因此用于检测的序列模式并不持久。
[0033] 更流行的第二类检测技术关注于检测跨多个用户的分组行为。其基本假设是:正常用户会采取各种各样的动作,而欺诈者具有异乎寻常的同步行为。这种同步行为的存在
至少有以下两个原因。首先,对于代理服务器、电话号码、假账号和/或欺诈方案设计等资源
来说,为了减少花费在这些资源上的成本,欺诈者将会尽可能多得重复利用这些资源,且因
此很多欺诈行为具有共享的属性,例如源IP地址或电话号码。其次,为了实现“规模经济”效
应,欺诈者经常使用很多(假)账号来进行同一欺诈(例如,僵尸粉),导致这些账户之间的同
步动作(例如,同时关注某一个人)。
[0034] 基于聚类的欺诈检测是具有挑战性的。首先,由于欺诈方案随时间快速改变,因此通常不会存在大量的有标签欺诈数据来进行检测模型训练。此外,欺诈者经常执行伪装动
作以掩饰他们之间的相似性。因此,在大多数情况下仅能依赖于无监督学习方法。其次,日
志数据在本质上是多模态的,其针对每种模式具有不同的数据类型。很多相关的方法将这
些数据类型编码为特征向量。给定多个离散数据类型(例如,IP地址和电话号码),典型的
one‑hot编码导致了非常高的维数和稀疏的特征向量,使得难以将其应用于无监督算法。此
外,不同的欺诈者在不同的模式子集上表现出同步的行为,且因此不能使用常规的聚类算
法来分析数据。第三,不同的模式可能具有在不同的数据集上大相径庭的分布。例如,IP地
址通常具有泊松分布,而购买的物品则服从幂律分布,这进一步使得模型复杂化。最后(但
并非最不重要的),由于误检将显著影响用户体验,因此让检测结果对于运营商来说可解释
是非常重要的,这使得运营商能够对欺诈情况作出一个可靠的决定。
[0035] 因此,为了至少部分解决或减轻上述问题,提出了根据本公开实施例的用于基于日志数据来检测欺诈组的方案,或更一般地,基于数据集合的图表示来检测其中的异常数
据组的方案。其通过使用捕捉两个用户在特定值(例如,IP地址)上相似的异常程度的信息
来确定它们之间的相似度。此外,将该信息与图级别属性(例如,子图大小及其密度)相结合
以测量用户组的可疑度。然而需要注意的是:欺诈组仅仅是异常数据组的一种,且因此本公
开实施例不限于此。换言之,根据本公开实施例的方案可以适用于检测具有任何特定模式
的异常数据组,而不仅仅是欺诈组。因此,在本文的以下实施例中,在使用“欺诈”等术语时,
可以认为能够将其与“异常”交换使用。
[0036] 此外,根据本公开实施例所设计的异常数据组检测方案在平均运行时间和空间成本相对于用户数量都是线性的。因此,在实际实现中,其可以根据数据的规模进行轻松地扩
缩,而不会随着数据规模变大而使得运行效率降低。
[0037] 图1是示出了适于使用根据本公开实施例的异常数据组检测方案的示例应用场景10的示意图。如图1所示,欺诈用户110可以通过在服务提供商100处注册大量的假账号,来
进行各种欺诈活动。欺诈活动可以包括(但不限于):利用服务提供商100提供的新用户优惠
来大量牟利、向正常用户120提供基于假账号的各种违法服务(例如,买卖僵尸粉)、向正常
用户120进行诈骗活动等等。从而,欺诈用户110不管是对服务提供商100还是对正常用户
120都造成了严重的威胁。为此,服务提供商100需要一种能够根据用户的各种数据(例如,
用户信息、行为数据等)来检测异常用户(或更一般地,异常数据)的方案。
[0038] 具体地,在根据本公开实施例的异常数据组检测方案中,提出了以下概念。作为方案的核心,本公开实施例提出了两种度量:共谋分数(或共谋值)和异常密度分数。这两个度
量能够很好地捕捉到欺诈用户组的图属性和信息理论属性。这两个度量与现有的度量相比
将欺诈组更好地与正常用户区分开,特别是在欺诈组针对不同的模式子集呈现出同步的行
为时。在下文中,将结合具体实施例来详细描述这两个度量。
[0039] 由于大多数欺诈方案被设计用于获取金融利益,因此理解其背后的经济原理将更有助于对其进行检测。事实上,与大多数经济活动一样,对于欺诈者来说,仅在其收益大于
其成本时,欺诈者才有动机去进行欺诈。例如,假的一次性账号(有时也被称为“Sybils”或
“女巫”)是很多类欺诈的关键推动因素。为了让创建这种假账号的成本更高,大多数网站要
求关联用户的电子邮件地址或手机号码。例如,在图1所示实施例中,服务提供商100为了提
高欺诈用户110的欺诈成本,将可能要求用户在注册时提供身份证明、电话号码、联系地址、
电子邮件等一系列信息资源。
[0040] 然而不幸的是,欺诈者已经形成了一条专业的欺诈服务链,其通过暗网可广为传播。这些服务极大地降低了欺诈者的成本。有报告表明25美元可购买150个IP地址,而1000
个移动SIM卡大致需要140到420美元。为了最大化利润,欺诈者经常将这些不同的资源(例
如,手机号码、账户、以及僵尸粉等)重复用于多次欺诈。
[0041] 该资源共享现象已成为欺诈检测的关键要素。考虑到不可避免的资源共享,与合法用户相比,欺诈用户通常表现出不寻常的相似特征。例如,有研究发现了很多手机号码被
重复使用,且观察到很多垃圾邮件代理和僵尸主机的IP地址落入几个特定的范围内。
[0042] 此外,欺诈者的行为同步还有其它原因。欺诈者使用大量账户在较短的时间段内完成若干任务,例如关注同一付费用户、或者建立很多新的账户。这是因为单个任务的经济
利益很小,且只有在数量够大时才能抵消欺诈者的初始投入(例如,开发用于欺诈的软件)。
[0043] 因此,共享的资源以及共同的任务对于欺诈者来说是更基础、更难以避免的行为特征。虽然欺诈者可以快速改变其页面浏览序列以避免对特定模式的检测,但改变资源和
任务共享模式对于欺诈者的经济模型来说会产生严重的影响。
[0044] 从而,可以考虑由于资源复用和共同的任务所导致的欺诈者的明显聚类行为。对此,根据本公开实施例,提出以下作为用于检测欺诈的方案的一些基本事实。
[0045] (1)相似性并不使得用户可疑,但不寻常的相似性会使得用户可疑。具体地,两个用户可以在很多模式下相似,但是在其中一些模式下的相似比在另一些模式下的相似更为
可疑。例如,如果两个用户共享IP地址且都关注同一个随机的“无名氏”(相对于名人而言),
那么这两个用户就非常可疑。然而,如果这两个用户具有相同的性别、城市或关注同一个名
人,那么他们就没那么可疑。换言之,两个用户更有可能是欺诈共谋,不是因为他们相似,而
是因为他们在某个模式下或在某个特定值上相同的概率非常低。本文中,将具有这种相似
行为的用户称为“共谋(complicity)”。
[0046] (2)欺诈组(或欺诈组织)包含不寻常的大量共谋。欺诈者不得不进行相同的行为很多次以实现他/她的规模经济效应。因此,在欺诈者之间预期可以找到很多成对的共谋。
很多文献都指出较大的组大小是欺诈者的关键指示符。对于一些家庭成员来说共享电话号
码可能是正常的,但是当几十个用户共享一个电话号码就没那么正常了。在一些具体示例
中,可以看到欺诈者的组大小从70到667都有,然而很少看到一个正常的组具有20个以上的
用户。
[0047] (3)一个组可疑,不是因为它具有很多条边,而是因为它包含很多相似的不寻常的边。欺诈者通常将大量欺诈账号用于相同任务,且因此该同一欺诈组内的用户以不同寻常
但一致的方式彼此相似。相对而言,即使真实的合法用户类似于某些欺诈者(例如,与欺诈
组织在同一个IP子网中),他或她不太可能在很多模式上与欺诈用户都相似。为了避免被检
测到,欺诈者经常生成掩饰活动,例如让每个假用户关注某个随机人物以降低其一致性。而
良好的欺诈检测算法应当能够对抗这种掩饰行为。
[0048] 在本公开的下述实施例中,将以包含大量用户简档及用户行为在内的日志数据作为输入。因此,本公开一些实施例的目的之一是以无监督的方式将异常组与合法用户相区
别。然而本公开不限于此,而是可以适用于任何需要从大量数据中检测可疑数据组(而不限
于日志数据)的场景。
[0049] 以下将结合图2和图3来详细描述根据本公开实施例的用于检测数据集合中的异常数据组的方法。
[0050] 图2是示出了根据本公开实施例的用于检测数据集合中的异常数据组的示例方法200的流程图。图3是示出了针对示例数据集合来应用根据本公开实施例的用于检测数据集
合中的异常数据组的方法200的各阶段示意图。
[0051] 整体上,根据本公开实施例的方案大体上可以如下工作。首先,可以对日志数据进行扫描并构造初始图。在构造期间,可以最小化需要进一步考虑的边的数目。然后针对每条
边来计算边权重(即,共谋分数),并且动态确定用于滤除较不可疑的边的阈值。换言之,仅
考虑非常不寻常的相似性。然后,计算子图异常密度分数并对其进行过滤。例如,可以找到
所有连通的子图并计算每个连通子图的异常密度分数。然后可以基于该分数对各子图进行
排名并删除具有较低分数的子图。最后,可以对子图一致性进行求精。在上面的步骤之后,
剩余的子图可呈现出明显的聚类行为且因此高度可疑。然而,依然包括了某些个别的合法
用户(例如,偶然共享了IP子网)。因此通过移除单独的顶点来增加内部一致性且随后减少
误报来对聚类进行求精。
[0052] 具体地,在图2所示方法200开始之前,可以先将原始数据集合用图来表示。例如,如图3所示,首先可以将具有N个用户在K个模式下的整个数据集合形成有权重无向图G=
(V,E),其中,V为图G的顶点的集合,而E为图G的边的集合。将每个用户建模为图G的顶点(其
可以是具有K个模式的张量)。换言之,用户与图G的顶点V是一一对应的。此外,如果两个用
户之间存在某种相似性,例如共享某个模式的相同值(例如,具有相同的IP地址、相同的电
话号码等),则可用一条边来连接这两个用户。在本文中,术语“模式”可以被理解为用户的
某一个维度的数据,例如其用户名字、邮箱、手机号、家庭地址、IP地址,又或者可以指的是
用户的行为数据,例如关注某一个人、购买某一种物品等等。换言之,只要是可以用数据反
映出的与用户相关的一种或一类信息,都可以被视为用户的一个维度或模式。
[0053] 此外,ui∈V代表用户,且u产代表ui的第k个模式。注意到: 可以包含一组值,且可使用 来表示第m个值(例如,用户关注过的第m个人、购买过的第m个物品等等)。用
户的该组值可用于捕捉多个动作,例如,如果用户购买多个物品,则可以使用每个 来
表示每个单一物品。ui和uj之间的边ei,j可具有边权重Si,j,即稍后将详细介绍的共谋分数。
这样,通过上述转换,就可以如图3中步骤“格式转换”所示将“原始数据”变形为图3所示的
包含顶点和边在内的图。因此,在图3所示实施例中,目的是找到该图中表示异常组的子图。
如后面将详细描述的,可将单个组或子图定义为 ,其中 。此外,在给定子
图 ,且将其异常密度分数定义为 的情况下,则组中具有较高 的成员更有可能是异
常成员。因此,该目的就变为:在给定图G的情况下,计算按 排名的异常组的列表。
[0054] 因此,根据本公开实施例的用于检测异常数据组的方法200就可包括以下步骤S210~S240。
[0055] S210:移除低权重边
[0056] 将首先详细介绍在本文中使用的术语“共谋分数”。共谋分数可以是被定义用于捕k
捉一对用户之间的不寻常相似的程度的度量。将模式k下取值x的概率表示为p(x),将度量
定义为捕捉ui和uj在模式k下具有相同值x的不寻常性,换言之,ui和uj都取值x的事
件的信息。其具体定义如下公式(1):
[0057]
[0058] 其中, 是可定制的相等运算符,其缺省为与该数据类型相对应的自然相等函数。例如,对于数值数据,可以是算数相等运算;对于字符数据,可以是文本相等运算等等。然
而,如前所述,该相等运算符也可以是根据需要而自行定义的其他运算符。例如,可以认为
在某个值附近指定区间的值都是彼此相等的,等等。
[0059] 从直观上看,如果它们不取相同值x(通常认为这是正常的),则得到的信息为0。此外,针对两个用户共享相同值x的信息与该值的整体概率是有关的。例如,如果两个用户都
在微博上关注了一位名人,则这没什么好惊讶的,但是如果它们都关注了一位“无名氏”,则
他们更为可疑。
[0060] 从而,通过将该信息在所有可能x上求和来定义在ui和uj之间在模式k下的共谋分数(或某个模式的共谋分数):
[0061]
[0062] 为了计算跨所有K个模式的共谋分数(或整体共谋分数或S分数),根据典型的信息属性,可以定义:
[0063]
[0064] 直观上,Si,j越高,则ui和uj越相似。在实践中,S分数表现出较大的方差。例如,共享IP子网和设备ID的用户对可能获得较高的S分数。相对地,正常用户有可能不和任何人共享
这些值,且因此Si,j接近于零。
[0065] 在图3所示实施例中,边权重Si,j越高的边就越粗,相反边权重Si,j越低的边就越细。可以看到,在图3所示实施例中,顶点u1和u2之间、顶点u2和u3之间、顶点u4和u7之间、顶点
u2和u4之间的边权重都相对低,而顶点u1和u4之间、顶点u5、u6、u8、u9之间以及顶点u7和u8之
间的权重都相对高。
[0066] 此外,可以对共谋分数进行扩展,以适应不同的数据类型和分布。
[0067] 首先,注意到可以使用 来表示针对每个模式的可定制的“相等”定义。例如,如果两个用户的IP地址的前24个比特相同,则人们通常将这两个用户定义为共享相同的IP子
网。作为另一示例,对于时间戳而言,人们通常将在范围Δ内的两个时间戳视为相同时间
戳。
[0068] 其次,确定pk(x)是比较麻烦的,因为我们并不总是知道模式k的分布。在该情况下,在一些实施例中,对于具有离散值的模式来说(例如,分类型的模式),可以假设“均匀分
k k k
布”并且简单地对于所有x将p(x)设置为1/q ,其中,q 是模式k的唯一值的数目。例如,如果
模式k的所有可能取值为{1,2,3},则尽管数据集合中出现的模式k的数据可以为{1,1,1,2,
k
2,2,1,1},q依然为3。该近似对于很多欺诈相关属性是适用的,例如通常具有泊松分布的
IP子网和电话号码。
[0069] 然而,对于均匀性的假设并不适用于低熵分布,例如长尾分布,这对于诸如购买的物品或关注的用户之类的模式是常见的。低熵意味着很多用户不论如何都表现得很相似,
而与是否欺诈无关。从直观上来说,对于这种分布,关注名人(分布的头)并不是令人惊讶
的,但是如果他们都关注尾部的某个人则提供了更多的信息。例如,在社交网络中,20%的
用户获得超过80%的关注。在名人及其粉丝之间的密度子图不太可能是欺诈性的。如果模
式k具有长尾分布,则其熵非常低。例如,在超过50个值上均匀分布的熵是3.91,但是具有
90%概率集中在一个值的长尾分布的熵仅为0.71。当发现一个模式下的值具有低熵时,可
k
以计算经验分布(即,直方图),并将其用于计算p (x)。此外,在另一些实施例中,还可以使
k
用其它自定义的p(x)函数。
[0070] 接下来,可以确定用于移除正常边的阈值θ(本文中,有时将其称为“第一阈值”)。具体地,可以在例如图中的所有边中进行迭代,并计算其S分数。如果Si,j<θ,则可以移除相
应边,其中,θ是阈值。可以使用以下公式来确定θ:
[0071]
[0072] 其中,C是数据集合中的事件记录的总数。直观上,θ是两项的乘积:每用户事件的平均数 以及在模式k下的每用户平均信息 因此,可以将θ理解为所有边上的分
数的平均值。此外,在一些实施例中,如果图中某个顶点的度数(degree)变为零,则可以移
除该顶点。一方面,这可以明显降低后续处理量,另一方面也因为我们并不关心与其它用户
不相似的用户。
[0073] 回到图3,在执行了步骤“边/顶点移除”之后,可以看到顶点u1和u2之间、顶点u2和u3之间、顶点u4和u7之间、顶点u2和u4之间的相对低权重的边都被移除,而保留了顶点u1和u4
之间、顶点u5、u6、u8、u9之间以及顶点u7和u8之间的相对高权重的边。此外,由于移除了这些
边之后顶点u2和u3变为没有边的顶点,即其度数变为零,则可将这两个顶点也一并移除。然
而,在另一些实施例中,也可以不删除这两个顶点,而将其分别作为连通子图进行后续处
理。
[0074] S220:确定连通子图
[0075] 然后,可以找到候选的异常数据组。由于已经滤除了很多边,因此有可能将图G分为多个连通组件(即连通子图)。取代使用其他聚类算法,可以使用这些连通子图作为异常
数据组的候选。这是一种合理的选择,不仅是因为连通属性表明其相似度,而且因为使用针
对连通子图的算法来进行计算是高效的。如图3所示,在步骤“连通子图确定”之后,可以将
顶点u1、u4和u5、u6、u7、u8、u9分为两个连通子图,如虚线框所示。
[0076] 此外,在一些实施例中,根据前面提到的基本事实(2),可以仅保留足够大的连通子图且将所有较小的连通子图视为正常的。首先,在一些实施例中,可启发式地确定量值阈
值(本文中,有时将其称为“第二阈值”) 直观上,ψ是模式k的每值用户平均数
之和。因此,可以将ψ理解为连通子图的平均大小。从而在一些实施例中可以移除具有小于ψ
的大小的所有连通子图。如图3所示,在步骤“连通子图滤除”之后,可以将具有低于ψ的顶点
数目的连通子图(u1、u4)从图中加以移除,以仅保留具有较多顶点的连通子图(u5、u6、u7、u8、
u9)。
[0077] 然而,需要注意的是:该滤除步骤不是必需的。换言之,在另一些实施例中,完全可以保留较小的连通子图以供后续处理。例如,在针对高价值客户识别场景时,完全可以保留
较小的连通子图,以避免错过特殊的高价值客户。
[0078] S230:调整连通子图
[0079] 如前所述,取决于数据分布和相等运算符 的定义,由于有些合法用户可能偶然具有连接到一个或多个异常用户的具有不可忽略权重S的边,因此该合法用户可能也被包
括在连通子图中。例如,如图3所示,用户u7仅与用户u8相连,例如由于他们具有相同的IP子
网。然而很明显地,用户与该连通子图中其它用户并不相似,因此他很有可能并不是欺诈
者,而仅仅是普通用户。因此,基于上面基本事实(3),可以通过增加组中所有成员之间的一
致性来消除这种误检。由于欺诈用户共享共同的资源和任务,在它们彼此之间的相似度比
他们与偶然包括的合法用户之间的相似度更高。
[0080] 为此,需要计算异常密度分数。可以通过考虑异常的密度来将合法用户排除在外。在一些实施例中,可通过如下所示将候选子图 的边权重之和除以其顶点数来计算候选子
图 的异常密度分数:
[0081]
[0082] 分数捕捉了连通子图(或组) 的三个度量:边权重S、组大小|v|和边密度前一个度量考虑到了信息理论相似性,而后两个度量考虑到了基于图的聚类特
征。
[0083] 具体地,如果针对每种情况,保持所有其它参数不变,则异常密度分数满足以下三个条件:(1)共谋性:具有较高权重的边导致较高的 ;(2)大小:较大的组具有较高的 ;
以及(3)一致性:聚类越密(密意味着具有更高的总S分数), 越高。附录A给出了对此的证
明。
[0084] 相对地,仅具有图特征或仅具有信息的特征的度量不能满足上面全部三个条件。例如,边密度 并不是良好的度量,因为其并不满足条件(1)。公式(5)中的分子
仅强调了信息,且因此不满足条件(3)。
[0085] 对于组 ,增加 意味着增加组大小并且增加所有顶点之间的一致性。从而,将问题化简为找到 中最大化 的子图 。这是典型的最密子图问题,其可以使用流网络(flow 
network)来求解。然而,难以将其扩展到具有上百万顶点的数据集。因此,在一些实施例中,
提出了一种贪婪算法,其以接近线性的时间来运行。算法1给出了该算法的伪代码。
[0086] 算法1:寻找最大化 的子图(请参见以下伪代码)
[0087]
[0088] 具体来说,针对每个连通子图,可以确定当前连通子图中的第一顶点,使得当前连通子图在没有该第一顶点及其关联边的情况下的异常密度值大于等于当前连通子图在没
有除了该第一顶点之外的其它任一顶点及其关联边的情况下的异常密度值。然而,将没有
第一顶点和关联边的当前连通子图确定为中间连通子图。针对该中间连通子图一次或多次
重复上述步骤,直到最后的中间连通子图仅有一个顶点为止,以形成一系列中间连通子图。
将没有移除任何顶点的原来的当前连通子图以及该一系列中间连通子图中具有最高的异
常密度值的连通子图确定为经调整的异常密度值最大化的连通子图。
[0089] 直观来说,移除顶点ui(及其所有关联边)将图5的分子(记为t)减少了*
其还将分母|v|减少1。在每次迭代时,移除具有最小 值的顶点u,且
在 上贪婪地最大化收益。重复该过程,直到移除所有顶点为止。在算法结束时,其返回在
最大时的剩余顶点集合。该贪婪算法是2‑近似算法,在附录B中给出了证明。
[0090] 回到图3,在经过步骤“连通子图调整”之后,可以看到合法用户u7被排除在异常用户组之外,从而得到最终的异常连通子图(u5、u6、u8、u9)。
[0091] S240:确定异常数据组
[0092] 最终,可以根据所确定的异常连通子图来确定与其相对应的异常数据组。例如,在图3所示实施例中,可以将原始数据集合中与用户(u5、u6、u8、u9)相关联的数据都确定为异
常数据,而将用户组(u5、u6、u8、u9)确定为异常用户组。
[0093] 这样,通过使用根据本公开实施例的用于检测异常数据组的方法,可以准确地自动检测到海量数据中的异常数据组,帮助服务提供商准确地确定需要注意的异常用户组,
从而避免了可能出现的损失、同时节约了大量的运维成本。
[0094] 理论上,在具有N个顶点的图中,存在O(N2)量级的边,且因此用O(KN2)量级的时间来进行图初始化和遍历是平凡的。然而,由于并没有那么多用户彼此相似,因此该图将会非
常稀疏。令M为边的初始数目,则图遍历的成本是O(KM)。在实践中,可以观察到M与N大致在
相同量级上,使得平均图遍历时间相对于N是线性的。在存储器方面,复杂度对于N+M也是线
性的。此外,计算所有共谋分数S的时间对于共享每个模式的相同值的用户对的数目来说是
线性的。假定M是具有在第k个模式上的相同值的用户对的数目,则每模式的S的计算复杂度
是O(M+N),且因此总成本是O(K(M+N))。此外,找到图中的连通子图的成本是O(N),且对于每
个组,其花费O(|ε|)来计算密度。为了使用算法1来改进异常数据组的一致性,针对每个异
常数据组花费O(|ε|log|v|)。由于很有可能|ε|<<|E|,|v|<<|V|,且因此成本较小。
[0095] 总而言之,上述方案的整体复杂度对于图中的顶点数目是线性的。然而更重要的是:所使用的算法是高度并行化的,且因此可以容易地将该方案实现在并行计算平台上,例
如Apache Spark。
[0096] 此外,在一些实施例中,可以将跨所有模式和所有值的信息用作针对用户对的共谋分数。该信息是针对捕捉不寻常的相似性的良好度量。在一个具体实施例中,首先可以从
具有真实标签的真实数据集的单一组中随机采样50个正常用户和50个欺诈用户,并将它们
的逐对共谋分数例如如图4所示绘成热力图。图4中的用户1~50是正常用户,而用户51~
100是欺诈用户。可以观察到正常‑正常用户对和正常‑欺诈用户对之间的共谋分数都非常
低。相对地,欺诈‑欺诈对的分数要高得多,确认了上文中观察到的欺诈用户彼此更加相似
的基本事实。其次,在给定定义的情况下,分数是非负数。从而每个模式仅对整体欺诈分数
做出非负贡献,即引入新的模式不会消除其他模式的贡献,这对于伪装容忍是非常有用的。
再次,为了将不同分数加以结合,可以通过将简单地将信息加起来就实现了结合,这也使得
计算方面更为简单。
[0097] 对于欺诈用户来说,最常见的是其尝试表现得像正常用户一样。考虑以下情况:除了关注付费用户之外,欺诈用户uf还关注某个名人或某个随机用户作为掩饰。如前文提到
的,现有的算法对于这样的掩饰行为并不能做出很好的区分且最终结果表现不好。本公开
实施例的算法对于这样的掩饰行为是具备抵抗力的。首先,掩饰活动并不降低uf自身的S分
数(事实上,S分数从未下降)。其次,其可以增加付费用户的S分数,但是该增加量与对uf自
身的分数的增加量相同。从而使得uf依然是更可疑的。换言之,根据本公开实施例的检测异
常数据组的算法对经过掩饰的欺诈活动(异常)具有较高的抵抗力,同样能够发现异常数据
组或欺诈用户。
[0098] 图5是示出了将根据本公开实施例的异常数据组检测方案的检测结果与其他方法的检测结果进行比较的示意图。
[0099] 如本文中所使用的术语“精确度”指的是在识别出的异常数据组中确实是异常数据的百分比;而术语“召回率”指的是在所有异常数据组中被正确识别出的异常数据组的百
分比。因此,通常随着“召回率”上升,精确度会下降,意味着虽然抓住了更多的异常数据组,
但也有更多的无辜用户被错误识别为异常数据。相对地,在精确度上升的情况下,通常“召
回率”将下降,这意味着虽然被错误识别的无辜用户减少,但同时抓住的异常数据组也减
少。
[0100] 如图5所示,随着召回率的上升,作为对比的CrossSpot算法和SynchroTrap算法的精确度都急剧下降,特别是在召回率0.9以下时。而根据本公开实施例的异常数据组检测方
案直到召回率0.92都能够保持较高精确度。
[0101] 图6是示出了根据本公开实施例的用于检测数据集合中的异常数据组的设备600的硬件布置图。如图6所示,电子设备600可以包括:处理器610、存储器620、输入/输出模块
630、通信模块640和其它模块650。需要注意的是:图6所示实施例仅为说明根据本公开之
用,且因此不对本公开加以任何限制。事实上,该电子设备600可以包括更多、更少或不同的
模块,且可以是单独的设备或分布在多处的分布式设备。例如,该电子设备600可以包括(但
不限于):个人计算机(PC)、服务器、服务器集群、计算云、工作站、终端、平板电脑、膝上型计
算机、智能电话、媒体播放器、可穿戴设备、和/或家用电器(例如、电视、机顶盒、DVD播放器)
等。
[0102] 处理器610可以是负责电子设备600的整体操作的组件,其可以与其他各个模块/组件通信连接,以从其它模块/组件接收待处理数据和/或指令并向其他模块/组件发送经
处理数据和/或指令。处理器610可以是例如通用处理器,例如中央处理单元(CPU)、信号处
理器(DSP)、应用处理器(AP)等。在该情况下,其可以在存储器620中存储的指令/程序/代码
的指示下执行上面根据本公开实施例的用于检测异常数据的方法的各个步骤中的一个或
多个步骤。此外,处理器610也可以是例如专用处理器,例如专用集成电路(ASIC)、现场可编
程门阵列(FPGA)等。在该情况下,其可以根据其电路设计专门执行上面根据本公开实施例
的用于检测异常数据的方法的各个步骤中的一个或多个步骤。此外,处理器610也可以是硬
件、软件和/或固件的任意组合。此外,尽管图6中仅示出了一个处理器610,但实际上处理器
610也可以包括分布在多个地点的多个处理单元。
[0103] 存储器620可以被配置为临时或持久性地存储计算机可执行指令,该计算机可执行指令在由处理器610执行时可以使得处理器610执行本公开中描述的各个方法的各个步
骤中的一个或多个步骤。此外,存储器620还可以被配置为临时或持久性地存储与这些步骤
相关的数据,例如原始数据集合、其相应的图表示数据、异常数据组等。存储器620可以包括
易失性存储器和/或非易失性存储器。易失性存储器可以包括例如(但不限于):动态随机存
取存储器(DRAM)、静态RAM(SRAM)、同步DRAM(SDRAM)、高速缓存等。非易失性存储器可以包
括例如(但不限于):一次性可编程只读存储器(OTPROM)、可编程ROM(PROM)、可擦除可编程
ROM(EPROM)、电可擦除可编程ROM(EEPROM)、掩膜型ROM、闪存ROM、闪存(例如,NAND闪存、NOR
闪存等)、硬盘驱动器或固态驱动器(SSD)、高密度闪存(CF)、安全数字(SD)、微型SD、迷你型
SD、极限数字(xD)、多媒体卡(MMC)、记忆棒等。此外,存储器620也可以是远程存储设备,例
如网络连接存储设备(NAS)等。存储器620也可以包括分布在多个地点的分布式存储设备,
例如云存储器。
[0104] 输入/输出模块630可以被配置为从外部接收输入和/或向外部提供输出。尽管在图6所示实施例中将输出/处模块630示出为单一模块,但实际上其可以是专门用于输入的
模块、专门用于输出的模块或其组合。例如,输出/输出模块630可以包括(但不限于):键盘、
鼠标、麦克风、摄像头、显示器、触摸屏显示器、打印机、扬声器、耳机或任何其他可以用于输
入/输出的设备等。此外,输入/输出模块630也可以是被配置为与上述设备连接的接口,例
如耳机接口、麦克风接口、键盘接口、鼠标接口等。在该情况下,电子设备600可以通过该接
口与外部输入/输出设备连接并实现输入/输出功能。
[0105] 通信模块640可以被配置为使得电子设备600能够与其它电子设备进行通信并交换各种数据。通信模块640可以是例如:以太网接口卡、USB模块、串行线路接口卡、光纤接口
卡、电话线路调制解调器、xDSL调制解调器、Wi‑Fi模块、蓝牙模块、2G/6G/4G/5G通信模块
等。从数据输入/输出的意义上,通信模块640也可以被视为输入/输出模块660的一部分。
[0106] 此外,电子设备600还可以包括其它模块650,包括(但不限于):电源模块、GPS模块、传感器模块(例如,接近传感器、照度传感器、加速度传感器、指纹传感器等)等。
[0107] 然而,需要注意的是:上述模块仅是电子设备600所可能包括的模块的部分示例,根据本公开实施例的电子设备不限于此。换言之,根据本公开其它实施例的电子设备可以
包括更多的模块、更少的模块或不同模块。
[0108] 在一些实施例中,图6所示的电子设备600可以执行结合图2~3所述的各个方法的各个步骤。在一些实施例中,存储器620中存储有指令,该指令在由处理器610执行时,可使
得处理器610执行根据结合图2~3所述的各个方法的各个步骤。
[0109] 至此已经结合优选实施例对本公开进行了描述。应该理解,本领域技术人员在不脱离本公开的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本公开
的范围不局限于上述特定实施例,而应由所附权利要求所限定。
[0110] 此外,在本文中被描述为通过纯硬件、纯软件和/或固件来实现的功能,也可以通过专用硬件、通用硬件与软件的结合等方式来实现。例如,被描述为通过专用硬件(例如,现
场可编程门阵列(FPGA)、专用集成电路(ASIC)等)来实现的功能,可以由通用硬件(例如,中
央处理单元(CPU)、数字信号处理器(DSP))与软件的结合的方式来实现,反之亦然。