编者按:本文是蚂蚁集团 AntV 工程师十吾在 SEE Conf 2022 的演讲内容,文中包括演讲视频以及演讲文字内容,欢迎享用。
大家好,我是来自蚂蚁集团 AntV 的工程师十吾。今天将通过我在图可视化社区混迹若干年,学习和总结到的一个小故事,来逐步介绍图可视化的应用。首先,我将使用图可视分析技术,抽丝剥茧地来分析一个虚构的小故事。然后,总结这个小故事以及我平时的图可视分析项目经历得到图可视分析的一般过程。最后,将回顾图的行业现状和场景。
首先,什么是图(Graph)呢?
这里所说的图不是指中文字面意思上的图画、图像等,也不是指在视觉上看到这种点和边的呈现形式。在离散数学当中,Graph 指的是一种数据结构:实体和关系的集合。通常使用这个表达式描述:G = { V: [v1, v2, …], E: [e1, e2, …] }。其中,V是实体集合;E是实体之间关系的集合。而我们常常看到的点和线的呈现形式,是一种经典的图可视化形式。图可视化是把这种错综复杂的图数据,使用图形化的手段直观地表达在二维平面中,让人们能够便捷地获取数据中洞察的手段。
案例分析
来看这样一个虚构的电信诈骗小故事:65 岁的吴大爷被骗了。根据他所提供的相关信息以及有关部门的调查结果,我们得到了与他相关的几个方面的关系数据,包括他的家庭主要成员、账户最近转账记录、社交媒体最近联络人、以及他所参与的两个老年活动社团。使用这份数据,我们希望通过图可视分析的手段发现风险、保护潜在受害人。
吴大爷说,棋牌社的小张告诉他,有一个投资的渠道可以得到双倍的回报。吴大爷心动了,他找小张尝试投资了 100 元,果然得到了 200 元的回报。于是吴大爷就想投入更大的金额。小张称后续投资需自行联系网友1。吴大爷通过社交媒体联系到网友1,转账 1 万元后,却再联系不上网友1了。他意识到自己很有可能骗了,于是进行了报案。此时,这份数据上数据已经有了一些线索:小张、吴大爷、网友1,这三个是我们关注的节点,也就是种子节点。除了已知的种子节点外,可利用分析手段发现更多种子节点,帮助用户启发对数据的理解。下面有两个分析方法的例子。下图中左边是数据属性的标注,吴大爷所在的小城市里,老年人每月一般不会有太大的收入和支出。我们就把所有的账户节点中,月支出金额大于 2 万的标注为绿色,把月收支总额大于 10 万元的标记为红色。我们看到被标记为红色的节点是商家节点,符合我们的预期。但有一些个人节点,比如说吴大爷、小张、刘大妈、郭大爷,他们的支出金额比较高,这些节点很可能需要我们继续关注。他们也许正在被骗,或者是有其他潜在的风险。下图中右边是节点重要性分析。使用算法计算每个节点在网络中的重要程度,并把重要程度映射到节点大小上。可以发现在这个网络中,除了吴大爷和小张外,还有其他比较大节点,即比较重要的节点。很可能和犯罪诈骗团伙有一定关系,需要继续关注。有了若干个种子节点之后,一般需要对它们进行扩散,即寻找更多相似的种子节点。左图展示了“拥有共同邻居的节点发现”方法,找到与吴大爷拥有共同邻居小张的其他人。这些人可能也有被骗的风险,他们也许正在被骗,也有可能将要被骗。根据这一信息,我们可以进行定点定向的提示和宣传。下图中右边展示了节点相似性算法。我们知道,骗子挑选被骗对象可能存在一定规律。例如和吴大爷在年龄范围、职业、家庭关系、收入情况、爱好等各方面比较相似的节点,很有可能是骗子下一步诈骗的对象。我们可以在更大的数据集当中使用这一方法这一高危人群,对他们进行定点宣传。图的关系结构,使它区别于统计型数据,这也是图更复杂的一大原因。而复杂的关系结构,也能带给我们更多的信息。现在,我们来看如何分析图的结构。已知吴大爷先给小张转账了 100 元;小张回报 200 元;然后吴大爷给王友1转账 1 万元。这几条边我们可以很快地在图上找到,同时也很容易发现这个链路存在闭环,即网友1给小张转账 1600 元。以上几个转账关系,很有可能描述了该诈骗团伙的惯用套路:派出一个线下人员潜入老年活动社团,引诱老年人上钩之后,再介绍给线上的同伙,线上同伙再给以线下人员小金额回报。
上述模式可以抽取成三个节点形成的环路,且环路上还存在平行边。使用该模式在原图上进行模式匹配算法计算,得到了一个相似的结构与刘大妈相关,即可猜测刘大妈很有可能也已经被骗了。当然,在这个虚构的案例中,数据量小且结构清晰,似乎不需要用什么复杂的模式匹配算法,也能用肉眼发现这个相似风险。但如果在下图这样更大、更复杂的数据集上,你是否就很难快速的找到这些我们想要关注的结构了呢?使用模式匹配分析方法,可以快速帮助用户在复杂的数据中找到他感兴趣的图模式结构。通过可视化,我们可以结合机器智能和人脑智能,让用户在此基础上,深入分析和验证这些结构中的各个节点,确定他们是否真正存在风险。结构模式并不是唯一的。在各个场景、各个需求下,不同结构模式可以用于精确表达。例如:
- 在社交网络中,若有 5 个节点形成的全连接图,可以代表这五个人存在非常紧密的关联,可能是一个小社团;
- 在代码依赖关系图上,可以使用若干个节点形成的环路表达循环依赖的关系。在大规模的代码结构图中,使用这种循环依赖的模式可以快速找到循环依赖风险;
- 模式也可以用来描述一个商品。如显卡、内存、CPU 组成的结构可以描述一个机器型号;
- 在投资理财中,模式可帮助用户找到他们感兴趣的投资板块,进行基金推荐。一个用户购买了多支属于同一版块的基金,可能说明了他对该板块有强烈的投资兴趣;
- 在我的生活当中,我也发现了一个有意思的模式。还房贷时,还款金额先要来自公积金的账户,汇入到主贷人和副贷人卡上,副贷人需要汇入主贷人卡上后,由主贷人分别进行商业贷款和公积金贷款还款。这一模式每个月都会重复出现在我的生活中。
不同场景、需求,可能产生不一样的关键图模式。模式中的节点和边也可以配置业务语义的属性条件。所以我们说图模式是不可枚举的。在分析图模式时,一般建议用户结合领域专家经验,边探索边沉淀的方式去绘制一个自己场景所需的模式。再在数据上进行模式匹配计算,找到关心部分,即子结构、子图。图结构还有什么分析方式呢?社区分析可用于分析吴大爷的人际关系网络情况。下图数据结合了吴大爷他所在的社团以及他线上的社交媒体的各个人员,进行人际网络扩张得到的更大的交际网络。节点和边的颜色映射了不同人员扩展出的数据,即节点和边颜色代表来数据的来源渠道。使用一个经典的社区划分算法:LOUVAIN,该图被划分成了几个社区(使用轮廓标记)。可以发现,来自相同渠道的节点很有可能在结构上与其他社区更接近。例如,右侧这个蓝色节点其实与黄色节点在图结构上更相近,于是被划分到了黄色节点所在的社区中。该数据上还有很多类似情况,也值得继续关注。社区划分方法可以帮助用户了解吴大爷人际交际网络的人员组成和划分的情况,以便分片分区进行深入分析。
故事讲完了,回顾来看:通过一些图可视分析的手段,
- 帮助用户找到了吴大爷和小张的共同邻居,他们可能正在被骗。
- 用节点相似性方法,找到了很多类似的高危的人群。
- 发现刘大妈有相同的转账结构模式,她很有可能也已经被骗了。
这些手段帮助我们找到、保护了潜在受害人,进行及时止血和精准教育。现在,我们希望把刚刚这个故事的过程沉淀下来,包括每一步用了什么算法,采用何种配置等,以便结合更多周边数据,复用这个分析的手段发现、预测更多风险,保护更多的受害人。更有甚者,更换算法、配置,也许能让这个分析链路复用到更多场景中。
有没有高效的沉淀方式?
这里使用了图编辑编排的方式,梳理了故事中的分析流程。包括刚开始的请求数据,到种子节点的发现、种子节点的扩散、模式分析、社区分析等。每个地方使用了何种算法、何种配置,也可以在图编排过程中记录下来。完成流程图编排后,将来可以对某一个算法节点更换参数配置。例如,模式匹配在该案例中使用的图模式,可以更换成其他结构。同时,可以指定某个节点作为起始步骤,灌入更多数据进行手动的、或周期性的执行,获取更大范围的结果。
图可视分析的一般过程
相信听完这个小故事,大家应该觉得图可视分析还是有点用、有点意思的。总结这个故事以及我的日常项目经验来看,图可视分析一般有如下的过程,我称之为“图可视分析一条龙”:
- 用户通过 sql、gremlin 等一些查询方法,从后台将数据带条件地获取到前台,如前端页面。前端使用图可视化的手段,将复杂的数据呈现给用户;
- 第一步,找到数据中用户感兴趣的节点,即种子节点。进行已知种子节点的标记,以及更多种子节点的启发;
- 第二步,寻找更多结构上、属性上类似的种子节点,即种子节点的扩散;
- 第三步,从点到线到面地分析图的结构,如图模式、社区情况等。
- 以上三步,是前端帮助用户探索、验证、分析数据的过程。
- 第四步,使用图编辑编排,沉淀分析链路,以便复用。
- 以上是循环往复的过程,可能需要几个步骤重复,最终可到后端更大规模的数据集中进行计算得到更多结果。
最后,回顾图行业的现状和场景。
图是描述这个世界最自然的一种表达。在大量关系数据涌现的今天,也促生了诸多图数据库的诞生。相对于传统型的关系型数据库来说,图数据库对于图数据结构有更好的存储方式,能够快速进行图数据的存储、计算、查询等。这里展示了 2020 年图技术 landscape,从底层技术到上层产品,图已经有非常多的应用了。蚂蚁图基建上,底层有强大的图数据库 GeaBase ,强大的图计算系 GeaFlow 。除此之外,蚂蚁还有非常多其它图基础建设,支撑了上层业务及中台图相关产品。如知识图谱平台、图数据库平台等。上层业务更为大家熟知一些,如智能推荐圈、人保险、财富投资等。举个小例子,在理财方面,可以用下图描述理财师、用户、基金、板块之间的关系。在这个图上,使用前面提到的模式匹配,可以为用户快速推荐感兴趣的基金;使用节点重要性分析,可以帮助理财师找到重点客户,进行更高效客户沟通。
在这些中台产品和上层业务的下面,沉淀的是蚂蚁前端开源技术:图可视化分析引擎 AntV G6 和图可视编排引擎 AntV X6 。它们的存在,使得中台产品和上层业务减少了大量的、专业性重复的建设。在各行各业,图又是如何应用的呢?
- 在社交媒体中,图可用于推荐关注的人、可能认识的人;
- 在企业运营商,图可用于优化商家门店选址问题。或做这样企业血缘图,分析企业架构关系等;
- 在资源管理上,图可用于物联网和存储资源优化、人力资源优化等。如右边的组织网络分析图,分析了公司内部人员的年龄组成、层级组成、业绩分布等。图也可用于编排员工的架构关系;
- 电商中,图可用于购物推荐、优化上下游采买关系、识别这种刷单行为等;
- 再如吴大爷故事所属的反欺诈场景,也是我国目前大力提倡的。图可帮助用户进行分析、取证、监控、止血、教育等;
- 其他蚂蚁内部的例子有:使用图可视化进行服务器持续的异常监控;图数据库上层的应用帮助用户探索、分析、下钻大规模数据;在知识图谱领域帮助用户快速建模与数据分析等。
由此,我们看到在各行各业,图已经发挥了巨大的光和热。我也相信图可视分析技术在将来也能够产生不可限量的价值。欢迎社区中的更多感兴趣的小伙伴加入我们,进行深入的探讨和交流。