hello, 大家好,欢迎来到阿君聊风控,我是阿君(一名有7年互金和电商风控经验的算法工程师)。
作为互联网风控从业人员,我们很难绕开的一个话题就是挖掘作弊团伙。我们一般可以碰到的作弊团伙多种多样,比如:薅羊毛团伙、垃圾注册团伙、欺诈团伙、职业打假人团伙等等,虽然每种团伙的特点不同,作弊方式也不同,但是作为风控算法或者策略工程师,我们需要了解他们的共性,深度理解其背后的原理,才能知己知彼,百战百胜。那么这些团伙的共性是啥?首先他们都是社区,都属于复杂网络,接下来我们就来聊聊什么是复杂网络,以及复杂网络的特性是什么?我们在风控时如何利用这些特性来挖掘作弊团伙,然后打击作弊团伙呢,接下来我们就来讲讲复杂网络和社区发现的那些事。。
一、复杂网络技术的研究趋势:
随着互联网的飞速发展,复杂网络研究的重要性日益凸显。2015年,美国国防部将基于社交网络的人类行为的计算模型研究列入未来重点关注的六大颠覆性基础研究领域之一。复杂网络研究逐渐由“小众”演变成“大众”。尤其是随着人工智能和数据挖掘技术的深入发展,大家会发现各家互联网公司都在招聘图挖掘算法工程师、社区发现算法工程师等,复杂网络技术和社区发现技术也越来越普及。
二、什么是复杂网络?
钱学森对于复杂网络给出了一种严格的定义:具有自组织、自相似、吸引子、小世界、无标度中部分或全部性质的网络称之为复杂网络。言外之意,复杂网络就是指一种呈现高度复杂性的网络
三、复杂网络的特点:
1、小世界特性(六度分割)
也就是说社交网络中的任何一个成员和任何一个陌生人之间所间隔的人不会超过六个
2、特征路径长度(characteristic path length)
在网络中,任选两个节点,连通这两个节点的最少边数,定义为这两个节点的路径长度,网络中所有节点对的路径长度的平均值,定义为网络的特征路径长度。这是网络的全局特征。
3、聚合系数(clustering coefficient)
用实际存在的边数除以最多可能存在的边数得到的分数值,定义为这个节点的聚合系数。所有节点的聚合系数的均值定义为网络的聚合系数。
聚合系数是网络的局部特征,反映了相邻两个人之间朋友圈子的重合度,即该节点的朋友之间也是朋友的程度。
4、无标度特性(2/8分布)
也就是2/8分布:现实世界的网络大部分都不是随机网络,少数的节点往往拥有大量的连接,而大部分节点却很少,节点的度数分布符合幂率分布,而这就被称为是网络的无标度特性(Scale-free)。
高度数节点的存在极大地削弱了网络的鲁棒性,一个恶意攻击者只需选择攻击网络很少的一部分高度数节点,就能使网络迅速瘫痪。因此,无标度网络同时显现出针对随机故障的鲁棒性和针对蓄意攻击的脆弱性
无标度网络具有很强的容错性,但是对基于节点度值的选择性攻击而言,其抗攻击能力相当差
少数Hub点对无标度网络的运行起着主导的作用。从广义上说,无标度网络的无标度性是描述大量复杂系统整体上严重不均匀分布的一种内在性质。
5、社区结构特性(集群特性)
人以类聚,物以群分。复杂网络中的节点往往也呈现出集群特性。
例如,社会网络中总是存在熟人圈或朋友圈,其中每个成员都认识其他成员。
集群程度的意义是网络集团化的程度;这是一种网络的内聚倾向。
连通集团概念反映的是一个大网络中各集聚的小网络分布和相互联系的状况。例如,它可以反映这个朋友圈与另一个朋友圈的相互关系。
不同网络的不同特点:
对于规则网络,任意两个点(个体)之间的特征路径长度长(通过多少个体联系在一起),但聚合系数高(你是朋友的朋友的朋友的几率高)。
对于随机网络,任意两个点之间的特征路径长度短,但聚合系数低。
而小世界网络,点之间特征路径长度小,接近随机网络,而聚合系数依旧相当高,接近规则网络。
复杂网络的小世界特性跟网络中的信息传播有着密切的联系。实际的社会、生态、等网络都是小世界网络,在这样的系统里,信息传递速度快,并且少量改变几个连接,就可以剧烈地改变网络的性能,如对已存在的网络进行调整,如蜂窝电话网,改动很少几条线路,就可以显著提高性能。
四、社区发现技术
通过对复杂网络的特点分析,我们发现其实实际的人类社会是一个整体,地球也不过是一个大的地球村,我们跟世界上的任何人之间的距离也不过间隔了6个人而已。扯远了,如果我们平台足够大,电商平台也好,互金平台也好,只要足够大,服务的人数足够多,那么我们平台上的客户就会组成一个全连接的大图,而黑产也包含在这张大图里,我们如何去从这样一个大图里挖掘出我们要想的作弊团伙,而且不误伤到正常客户呢,根据特点6复杂网络的社区结构特性,也就是说在这张大图里已经存在相互之间连接更紧密,节点之间更相似的子图,那么我们要找的作弊团伙也一定存在于其中,那么我们如何挖掘呢?哈哈,社区发现技术就我们提供了技术支撑。
社区检测(community detection)又被称为是社区发现,它是用来揭示网络聚集行为的一种技术。简单来说,社区发现就是对图进行切分,切分成一个个子图
社区检测实际就是一种网络聚类的方法,这里的“社区”在文献中并没有一种严格的定义,我们可以将其理解为一类具有相同特性的节点的集合。
近年来,社区检测得到了快速的发展,这主要是由于复杂网络领域中的大牛Newman提出了一种模块度(modularity)的概念,从而使得网络社区划分的优劣可以有一个明确的评价指标来衡量。
一个网络不通情况下的社区划分对应不同的模块度,模块度越大,对应的社区划分也就越合理;如果模块度越小,则对应的网络社区划分也就越模糊。
所以模块度其实就是指一个网络在某种社区划分下与随机网络的差异,因为随机网络并不具有社区结构,对应的差异越大说明该社区划分越好。
Newman提出的模块度具有两方面的意义:
1)模块度的提出成为了社区检测评价一种常用指标,它是度量网络社区划分优劣的量化指标;
2)模块度的提出极大地促进了各种优化算法应用于社区检测领域的发展。在模块度的基础之上,许多优化算法以模块度为优化的目标方程进行优化,从而使得目标函数达到最大时得到不错的社区划分结果