CleanroomLoCleanroomLo07-18 01:34

【复杂网络】用户画像不应脱离社会关系,谈复杂网络的关键技术和应用实践

本文是11月17日大数据杂谈群分享的内容。

关注“大数据杂谈”公众号,点击“加群学习”,更多大牛一手技术分享等着你。

大家好,我来自天云大数据公司,我叫马敬涛,主要从事数据科学应用方面的工作。

今天我给大家分享的主题是“复杂网络理论及应用”,希望本次分享的内容能给大家带来一些启发,如果内容中有说的不妥的地方也请大家多多包涵并给予指教,多谢!

复杂网络概念及价值

在开始之前,我先澄清一个概念,那就是“复杂网络”和“图”这两个概念的关系,这是我们在分析研究这个领域中所经常遇到的两个名词。

从根源上来讲“复杂网络”和“图”描述是同一种事物,都是由“点”和连接“点”的边所组成的网络,都是研究“点”与“点”之间相互影响的“关联关系”,但侧重点不一样。

“图”是一种数学工具,在数学领域是一门独立的学科,源于十九世纪的著名“歌尼斯堡七桥问题”,并由此诞生的欧拉“图论”,欧拉是著名数学家和“图论”的创始人,他成功的运用“图”的方法解决了“歌尼斯堡七桥问题”。

可以说,“图”或者“图论”是以网络作为研究对象和组织数据,对其进行分析并发现一些规律,提炼出数学算法,从把规律的研究变成可计算化的数学公式,因此,“图论”是侧重于学术理论的,“图论”的算法是普适性的,是数学家们关注的方向。

“复杂网络”源于“图论”,它的侧重点是面向于工程,是将“图论”的理论带入到现实的生活生产中,结合图算法理论、应用场景以及科学技术等方面能力,帮助我们去观察和理解真实的客观世界。

随着大数据技术应用,“大规模复杂网络”或者称之为“大图”的应用能力已成为了现实,举个例子我们现在用的微信,可以构造出一张数亿节点和数十亿条边的复杂网络,节点代表一个人,边就代表人与人之间的朋友关系,微博、电信通话等领域同样如此。

总之,只要是能够对客观世界抽象出网络的场景,都是复杂网络所要研究的领域。

基本概念说完了,下面我们从“还原论”的角度开启“复杂网络”的里程。

我们都知道一个道理,那就是“化繁为简”,把一个复杂的事物或事情,进行拆解,变成多个简单的事物或组成物,通过分析这些简单的再去理解复杂的,这就是“还原论”,它是一套哲学思想,我们不能否认这套哲学思想的价值,这么多年的科学发展都是沿着这套屡试不爽的哲学理论不断前进着,它的贡献是值得歌颂的,而且以后也会继续存在着。

但是,只有“还原论”还是不够的。

因为,自然界是一个复杂系统,并不是一个设计良好并只有一个答案的谜题,如果我们只是孤立的去看待一个事物本身并对其进行拆解研究,会发现,很多问题我们仍然没有得到很好的答案,比如,我们对生命的研究已经进入到了分子理论—“基因理论”,也确实发现不少癌症的致病基因,但是,你能确定“一个有癌症基因的人真的会患癌症吗?”,答案是“不”,

为什么呢? 因为,我们在“还原论”的高速公路上撞上了“复杂性”。

我们所生活的世界,每一草、每一木,每一个人以及每一个事物都不是孤立存在,他们存在于自然界,并自组织成为一个良好、稳定且严格的架构,并且万事万物都是相互存在着联系,并相互影响着,我们看到的每一个现象的发生,都只是一个表象或者结果,个体的改变只是在行使着过程,最重要的更是其背后所蕴藏巨大的复杂性,庆幸的是,科学界已经发现了这个背后的严格架构,并将其抽象出网络的形态,我们见证一个正在酝酿的变革,网络将以前所未有的程度主宰这个新世纪。

讲到这里,希望大家开始有所感悟,能够体会到“网络”这只无形的手,在操控着万事万物的发展变化。

“复杂网络”虽然发展时间不长,但这个概念不是随便说说的,著名的科学家钱学森先生,给出了复杂网络一个严格的定义:具有自组织、自相似、吸引子、小世界、无标度中部分或全部性质的网络称为复杂网络。

复杂网络主要有以下几个特点

第1,结构复杂,不用解释太多,自然界就是复杂的,抽象出来的网络也是复杂的。

第2,网络进化,世界在发展,代表它的网络也是在变化,网络中会不断地产生新的节点,也会产生新的关系,同样,也会在消失着一些节点和关系。今天我们是朋友,明天你们和他们也会成为朋友。

第3,连接多样,连接边不是只代表一种类别的关系,只要能代表事物和事物之间关系的都可以描述成边,只要是属于我们所要研究范畴的。你和她是朋友关系,也可能还存在着同事关系。

第4,动力学复杂性,它代表一种动态的特性,事物之间的影响是可以传播的,一个事物发生了改变,可能会影响与它有关联的其它事物的改变,并将这种改变传播出去,把这种传播变成可计算化,正是动力学所要研究的方向。

第5,多重复杂性结合,正是多种事物相互关联和互相影响,体现出它的变化复杂性和未知性,未来发展趋势,并非一个简单的线性公式所能解释的。

第6,节点的多样性,和连接多样性一样,网络中的节点可以代表任何事物,只要是属于我们所要研究的范畴。

复杂网络存在我们身边。

复杂网络的研究领域非常广泛,小到一个公司内部同事之间的关联关系,大到一个社会所有人之间的关联关系,但是不变的一点就是,只有是能够抽象出由“节点”和“边”所连接的网络的,那就是复杂网络。

接下来,我们聚焦一下,把复杂网络研究聚焦在人的身上。

不论我们做风险分析、还是做精准营销,很多分析研究都会具体体现在人,我们怎么看待一个人?大数据告诉我们,要做客户画像,具体描述每一个人的个性化特征,从而了解每一个人,并提供个性化的服务并采用一些措施。

这些都没错,我们按照传统和现有的分析技术,可以相当详细的描述一个人,例如,我们可以收集客户的基本信息,包括“年龄”、“身高”、“性别”,以及我们还收集他的行为轨迹数据,例如,他的爱不爱看电影,爱看什么电影,什么时候会去看电影,他上不上网,上什么网络,看什么样的网页内容等等。

但是,以上还只是在孤立的看待这个人本身,而忽视了一个重要因素,那就是他的社会关系,因为,每个人所产生的行动很大程度上会受周围人的影响,父母影响孩子,老板影响员工,作家影响读者,朋友影响朋友,其实我们想想,我们实际的生活中,所做的很多事情都在受到我们的朋友、同事、亲属以及领导的影响。我的志同道合的一个好朋友,在用Macbook笔记本电脑,如果我也需要买一台电脑,选择苹果的产品可能性就会很高。周围的同事都在努力工作,我懈怠可能性也不会很大。

如果再对这些网络之间的影响进行量化,并且可计算化,也许我们就可以预测这个人的下一步计划,但前提一定要做到可计算化。

好在“图论”为我们提供了丰富的图算法,帮助我们将抽象出来的复杂网络进行计算,从而挖掘出我们所需要的价值信息,这一点,要归功于“图论”的数学家以及将图计算应用于实际工程生产的业务专家和技术工程师们。

复杂网络的关键技术

之前我介绍了复杂网络概念及价值,接下来我要给大家谈的就是复杂网络的关键技术。

大数据时代的到来,复杂网络研究的数据范围也成规模化发展,面对由数千万甚至数亿节点构成的大规模网络,即时有成型的业务解决方案和相关的算法,但没有一种支撑技术,也是很难解决当下复杂网络应用的问题的。

当下,我们要去解决大规模复杂网络问题,总结一下,需要两点技术,第一,是要使用大数据技术,第二,要改变我们传统分析图所使用的数据结构。

根据我们以往的项目经验,做大规模图分析采用的数据结构主要分为两种,传统的方式,是使用关系型数据库,创新也是最佳的方式是使用矩阵数据结构,这两种结构,都可以在物理层上去表达网络结构模型,从而为上层复杂网络分析提供良好的底层数据支撑。

接下来,我们分析一下,这两种数据结构形态的差异。

关系型数据库,由于其严格的schema定义,一张表所能表达的列数有有限的,最多也不会超过2000列,如果把一张网络存储在关系表中,那么网络种每个节点的边数需要限制在2000条以内,但实际情况并非能控制在2000以内,因为复杂网络是呈幂率分布的,总会有部分节点的边数量超过2000条,因此,如果使用关系型数据库来存储网络,只能每一行存储一条关系对,一个网络中有多少条关系边,就会存储多少行数据。

但换成矩阵的方式来表达网络就不同了,采用的矩阵主要是邻接矩阵,它是把网络中所有的节点按行列布局成一个宽大的方阵,如果两个节点之间有连接关系,则在矩阵上这两个节点的行列交叉位置上置为1,否则为0。

接下来,复杂网络最核心的一个问题就是如何快速的查找出节点的关联关系,再给定一个节点时,需要查找它的1度关联关系,如果在关系型数据库上,则会发生大规模的扫表任务,在一张数十亿条记录的大表中找到与给定节点有关系的记录,计算量非常大,如果查找的关系深度达到1度以上的话,则计算量则呈指数倍上升。

但换成矩阵的形态来查找关联关系则轻松的多,只需一次扫矩阵的行,定位到节点所在的矩阵行位置,则就无需其它计算就能够快速的把指定节点的所有关系找出来。在性能上比使用关系模型快数倍之多。

接下来,我们在看看大数据技术,大数据技术的核心思想就是分布是存储和分布式处理。

既然要用到分布式,就会涉及到对数据的切的过程,只有切成多份的数据,存储在多台集群服务器上,才能够利用多台服务器的计算资源进行高效的分布是处理。

对于大规模网络也是要进行切的过程,但与传统数据切分方式不同,网络的切分是有它的特点的。

主要包括三种切分方式,按点切、按边切和随机切。

按点切,主要是将度值非常高的节点切分成多个子网络,然后分布存储在多台服务器上,避免命中该节点会导致单台服务器负载过大的问题。

按边切,主要是切弱连接,也就是两个连接非常稠密的网络之间的若干条边,这主要是为了避免,切分稠密子网会导致集群服务器之间传输量增大的问题,毕竟以太网的延迟要比主板总线的延迟慢了百万倍。

随机切,主要针对看不出网络分布特征的切法,其实客观世界不存在随机网络,如果只是实验研究的网络,可以采用此类分布方式,从而达到均衡负载,提升网络分析的效率。

复杂网络的应用价值

介绍完关键技术,我们再看看复杂网络的应用价值。

物以类聚,人以群分,众多节点关系稠密的编织在一起,会形成一社群,社群中的节点的相似性极高。就好比我们的朋友圈,朋友圈中人与人之间相互影响较大,相似性极高,可能都是某一个领域的人,也可能是共同志向的人。这就是社团,使用复杂网络分析,可以发现这种社团,从而帮助我们发现潜在的价值信息。例如,潜在客户挖掘、关联群体风险分析。因为当一个群体中发现有部分个体有某种特征,可以推断出该群体其他个体有这种特征的可能性会非常大。

中心性的价值分析,基于网络中节点与节点之间的连接关系,通过中心性的图算法,就可以有效的发现出网络中的核心节点,这些核心节点对网络的影响力极大,发现并掌控这些核心节点,就可以影响网络朝着我们所希望的方向发展或者挖掘到最具有价值的个体。

当我们发现网络中节点与节点之间的影响关系,就可以把它们进行量化,并通过计算的方式模拟并预演未来发展的变化趋势,从而有效地预测并掌控未来的发展走向。例如,流行性疾病传播分析、舆论传播分析、金融风险传播分析。

复杂的关系很难看出其中实质性的关系,通过关系穿透分析,能够帮助我们快速找到节点背后的相关性,梳理出一张实质性网络,透过复杂的表象看到其实质性的问题。

我们聚焦在金融上,通过连接企业之间的关联关系,通过计算,可以帮助我们发现企业关系网背后可能会出现的风险,例如,识别担保圈、发现异常资金往来,从而规避金融风险。

应用场景还会很多,时间的缘故,这里就不再过多地阐述,剩下的时间,我给大家分享一些小概念和资料。

最后,不能脱俗,介绍一下我们公司。

我们有一整套解决大规模复杂网络问题的技术工具和解决方案,简称BDCN

谢谢!

Q&A

Q1:马老师您好,您觉得知识图谱未来的市场怎么样?

马敬涛:我觉得,市场是用户说的算,我们目前接触到的客户,已经有很多对这个领域的探索感兴趣,并且一些传统著名的咨询公司也在和我们探讨这方面的应用,在风险评估方面,他们称为预警的预警。

Q2:复杂网络的集群和机器学习中的clustering analysis是否有 相似的点? 复杂网络在目前的应用情况是怎样的,有很典型的算法吗,或者可以实现的R/Python的包吗?

马敬涛:底层架构可以一样,基于Hadoop+Spark技术,把算法转换为分布式计算,在集群上运行。

两者部分都会涉及迭代计算,机器学习需要先训练,在应用, 复杂网络的算法计算和应用结合在一起。

其实图算法有很多,图的算法程序也有很多,典型的算法,最短路径,度值统计,中心性发现,社团发现,Pagerank(google的),K-壳。但将这些算法程序转换成分布式程序,运行在大数据集群上,是挑战,也是机遇。具体算法原理,我没办法在这里阐述,风险点识别,有一种常用的方法就是算它离其他风险点的距离。三度影响就是阐述这个概念。复杂网络逐步落地还有一段路要走,目前机器学习和深度学习正在热门的阶段。

Q3:矩阵结构数据具体是用什么数据库存储的?

马敬涛:你可以使用NoSQL,图就是一种Nosql的应用场景。

Q4:neo4j是目前最合适的数据库吗?

马敬涛:单机来说,它应该是最主流的,但就我了解,它无法支持大规模图,并且它是个图查询库,不是图计算库。

Q5:比如,一个盗卡的用户,你怎么通过构建图算法,来自动识别他是一个盗卡行为的,能说说你做的具体思路吗?

马敬涛:找风险种子,就是以往欺诈用户所使用的同一个手机号,同一个地址. 然后找到离这些被识别出欺诈风险点的近距离节点,然后通过社团发现再找其他相似点。

Q6:这种只能找到一小部分,一些新的盗卡模式找不出来?

马敬涛:那就是先知道有哪些风险点,再扩散,这样很大一个问题,新的风险模式找不出来,另外样本有限。

样本有限是个关键问题,目前也只能通过引入外部数据,来进一步补全网络。

Q7:目前免费的支持大规模图查询展现的有哪些框架呢?

马敬涛:InfiniteGraph、OrientDB、InfoGrid和HypergraphDB,好像是免费的,不确定噢。

Q8:但是对于一些新的模式,想知道怎么构建一个自动的概率网络,来识别整个网络的问题,这方面你有经验吗?自动的概率网络是什么意思?能详细的说下吗?

马敬涛:可以理解成病毒网络传播,传播的影响权重结合被传播对象的免疫程度,进行量化计算

Q9:复杂网络的计算能力怎么样?中文信息模糊比对组网如何处理?有没有案例?

马敬涛:复杂网络如果基于大数据技术,计算能力可以线性提升的,但要分不同的算法。中文信息模糊比对,通过一些自然语言的处理技术,根据识别的关键词以及实体来进行匹配并建立关系。目前还没有相关的案例。

Q10:社区发现跟聚类差不多,会形成很多的社区,如何能够直接确定这些大社区有问题呢?我们目前用图算法,只是形成一些特征,作为下一步模型分析的输入。

马敬涛:对于社群来说,目前还是根据社团中已知特征节点的比重和离特征节点的距离,来评估潜在点。

其实,现在图计算这块,业务可解释性较弱,但计算出来特征还是作为模型预测的很好特征变量的补充。

现在也是在研究和推进这块,一是社团的计算,二是如何解决大规模网络的社团发现问题。

讲师介绍

马敬涛,天云大数据高级售前工程师,具有近10以上的数据库及大数据行业的从业经验,先后参与并负责完成了多家全国股份制银行、保险公司、电信运营商等客户的数据仓库和大数据项目的建设工作,部分项目的数据规模达百TB级,创新的使用复杂网络技术成功为某知名机构实施了大数据应用项目。

转载自:http://www.sohu.com/a/119515569_470008

程序之家二维码

小额赞赏

000
评论