摘要:社会网络,由许多节点(node)构成,节点通常是指个人或组织,节点之间发生着社会关系 。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

社会网络,由许多节点(node)构成,节点通常是指个人或组织,节点之间发生着社会关系 。社会关系包括朋友关系、同学关系、生意伙伴关系、种族信仰关系等,这些关系构成了节点与节点之间的连接(edge),有的单向联系,有的是双向联系。节点和有向边的交织构成了社会网络。我们把这社会网络用计算机图形展现出来,就形成了社会关系图谱。

社会关系图谱有一些基本的计算指标,用来表示社会关系网络中每个节点的重要性、社交广泛性等。大家可以关注我们的公众号,在后台回复“社会网络”,我们会告诉大家不同的计算指标定义。本文中要用到的几个重要定义为:度、连入度、连出度、模块化。大家也可以在下文中找到他们的定义。

前菜~~


在实战开讲前,先举一个小的案例来帮助大家理解。在组织关系管理中,我们可以用其来衡量小群体中人物特征,比如谁是意见领袖,大家都只听他的;比如谁是交际花,大家都喜欢找她聊天;比如谁是沉默的羔羊,不喜欢跟任何一个人交往等等。

如下图,通过日均聊天频次,展示了我们部门九个人的关系图谱。图中有九个点,对应的是九位同事,圆圈点大小对应聊天信息量(即:度,即节点A和所有人聊天的次数),圆圈点的颜色代表了节点聚类。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

这么来看的话,whq和ccl就是这个team的核心人物,属于社会关系网络中的中心层,用粉色的圆圈表示了出来。绿色的圆圈是外圈的四位同事,与核心人物联系不太紧密,彼此的聊天信息量较少。咦,右下角的zxg小朋友是怎么回事?

开荤啦~~


那么在电商中如何运用呢?笔者最近在做黑名单研究,突然想起来这个神奇的图谱工具之运用的。

目的说明:如何有效打击电商作弊用户,所谓擒贼先擒王?

电商行业有一个通病,就是喜欢首单给优惠,而且力度大大的有。这就导致了囤货的黄牛们喜欢注册多个账号,用新人身份获取优惠。而恰恰阿里等互联网公司能自由注册虚拟手机号码,又加剧了黄牛党们的注册风。这些互联网小号普通的电商公司是识别不了的,因此也无法做注册屏蔽。那么后果就是,一个主体账户拥有了无数个小账户,通过小账户下单获取优惠,囤货更优惠,再打折出手也会赚的金银满钵。

因此我们需要找出大账户和小账户之间的关联,判定主体作弊账户,一举歼灭小号账户,打击黄牛账号。那如何图形化呈现账号与账号之间的关联呢?就需要用到社会关系网络图。

关系网络图的制作,给大家介绍一个简单好用效果又十足的利器,那就是Gephi!

跟着我一起来学Gephi~

Step1. 下载和安装

Gephi的官网上可以免费下载和安装http://www.softpedia.com/get/Science-CAD/Gephi.shtml。

需要同步安装的还有Java。

安装过程无任何痛点。

Step 2. 数据准备和导入 →重点来了

Gephi需要两个数据表:节点(node)表和边(edge)表。节点表存放的是各个主体,边表存放的是主体之间的关系。Gephi对节点表和边表的列名称有严格的要求,而且最常用的格式是CSV,准备数据的时候要按照它要求的列名称准备数据。

题外话,我认为,数据准备是否妥当,是我们开始使用软件的最关键的一步~ 实际上,好多软件都对数据准备有严格的要求,比如用R做购物车分析的时候,是用basket列维度准备数据,还是用basket行维度准备,不同维度的数据所用到的命令是不一样的。所以我每次介绍技术篇的时候,都特别详细地交待数据准备格式。

那么在我这个案例中:

节点表就是各个账户,必要的列名称为id,Lable,weight。id为userA, userB,userC等等,使用各账户的年度订单量来表示权重(weight)。Lable就是id的中文或英文名称,也可以和id列数值一样。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

边表就是各个主体账户之间的关系表,必要的列名称为source、target和weight。Source是源账户名称,target是目标账户,weight表示两者之间的权重。源和目标账户是可以互相替换身份的,称为有向图,在图形中有箭头的指向来代表源和目标的关系。

如果userA(source)通过userB(target)账户下过单,那么认为userA和B之间是有关系的,而且是有向向量。userA和B关系的权重(weight我采用的是订单量,即userA通过userB账户下了多少单。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

节点表和边表CSV格式整理完之后,通过gephi的这两个步骤,完成数据导入工作。完成之后,大家别忘了再次检查下数据,是否有null值,是否有重复值等。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

温馨提醒,边表中出现的无论是source还是target中的user_id,都需要包含在节点表格中。否则,gephi会自动帮你在节点表中进行补充,lablel,weight等值将做空值处理。

Step 3. 图形整理 →繁琐的来了

导入完数据之后,可以移步到左上的“概览”。“概览”包含六个工作区:左上的外观、左下的布局,中间的画布,右上的描述、右侧中部统计和过滤。如果数据导入成功,在画布区域会自动出现关系图谱。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

乱蓬蓬的是不是~

图形整理破费一些功夫,需要研究者根据自己的目的多次调整。在此,我介绍一些基本的功能,具体的大家可以在基础版本上自由摸索。

² 左上—外观,是个万花筒:

布局,也就是调整下颜色呀,字体呀,标签的大小等等。分为节点和边,分别可以调整颜色、尺寸、字体颜色和标签大小。这四个调整的icon在外观的右上角。

调整可以统一调整,也可以根据不同数值的表现进行分区调整。做条理清晰的关系图谱最好是使用数值设定。根据连出度、连入度、度、其他统计指标的数值,来对图形中的圆圈尺寸、色彩、标签的尺寸和色彩进行调整。布局是需要多次调整的,而且是需要结合着统计、滤波的参数调整下,而多次调整。

圆圈尺寸的调整:这个步骤可以实现圆圈尺寸随着度值大小而变大或减小,尺寸最大为50,最小为10。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

圆圈颜色的调整:这个步骤可以实现圆圈的着色随着连出度值大小而变化,可以自由选择颜色,和着色的深浅。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

同样的操作还可以处理边的颜色、尺寸。总之简单的摸索之后,你的画布估计是这样子的:

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

还是有些乱乱的是不是。现在我们要做一个重要的优化。

² 左下--布局,是个魔法师

布局的作用是让画布中各圆圈合理分布,可以选择Force Atlas 来让画布自动调整到最佳位置。可以看下动图,布局让发生关系的圆圈吸引在一起,让关系较弱的圆圈边缘排放。可以调整下斥力强度和吸引强度来调试画布的布局。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

下面是布局在运行的动态图,能看到节点的运动轨迹。还可以不断的调整斥力和吸引强度,来让各节点的布局更加清爽。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

(GIF动画)

² 右下—滤波,call me 清理大叔

虽然经过了布局,但整个画布的重点还是不清晰。我们可以通过过滤一些不重要的点,让重要的点清晰可见。

那我们就能使用到滤波这个功能啦。

滤波可以对节点做过滤,也可以对边做过滤。

节点过滤:在属性中,可以做到节点的过滤,可以通过节点的lable、weight做等于、范围值、非空等过滤。

如下图,就是通过节点的weight进行了范围的过滤,过滤掉了低weight值的节点,让这个图形不重要的节点变少。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

在右上有一个“上下文”,展示的节点量、边量,做完过滤之后,这块会展示过滤后的量和占比。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

做完了过滤之后,仍然可以继续执行布局的自动运行,直到节点的排列符合你的目的。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

上图中,你还可以任意拖拽某个节点,让其更直观的展示。另外,在画布的下方,粗体的T是标签是否展示,这个比较常用。只有让其展示标签,才能在外观中进行标签的尺寸、颜色设定。

至此,我相信你已经能跟着葫芦画个瓢出来了。

但是,细心的读者发现,我还有一部分没介绍到,统计。这块是和滤波合并在左中部位的。

² 左中—统计

统计的作用是计算社会网络的重要指标,如平均度、图密度,还能进行模块化,对节点进行聚类。具体的统计指标定义大家可以关注公众号,在后台回复“社会网络”。

统计的两大作用:

1. 统计之后的指标,直接呈现在数据资料的节点表里。是一种数据计算存储。

2. 统计之后的指标,可以在外观的数值设定中使用,比如我们计算好模块化之后,可以让其根据不同的模块,进行圆圈着色。下图是根据模块化(modularity class)计算结果,分颜色展示的社会关系群组。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

 

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

这个分了群组的图是不是比上一步的图好看多啦?没有么??那只能怪作者的烂审美了。

看到这里的小伙伴,肯定大家都跃跃欲试了。别急呀,还有最后一步啦。

Step4. 图形导出

点击左上的“预览”,然后选择标签、边的设定值,然后点击刷新,就能呈现预览图。然后左下角有个保存图片的功能。

Gephi的实战又美观的运用 — 用社会关系图谱筛选作弊用户-数据分析网

如果大家足够细心,就能发现,我明明选择了呈现标签,为何画布上没有标签显示呢?

我相信大家在实验的过程中也能遇到这个问题,我就留给大家自己去解决吧~ 嘿嘿嘿。

花花绿绿的图终于结束了!


结论:

从上图中,可以看到绝大多数的账户都是孤零零呈现,这是属于正常账户的表现形式。只有标有颜色的群组是互相之间发生联系的,也就是说这几个账户之间肯定有一个主要人员在操控。那么这几组账户就是我们所要找的“黑名单”用户,而且能发现几簇uid都是关联在一起的,这也是关系图所带给我们的超越数字的感受。

今天的篇幅略长,还要一些小的icon没有介绍到,大家可以自己摸索。作者也是第一次上手练习,互相切磋,共同进步。

来源:微信公众号【霞光里18号】