在本文中,我们将回顾组织如何集成图形事务和分析处理,然后深入探讨图形算法。我们将提供在权力游戏数据上使用图形算法的示例,以说明如何入门。请注意,部分内容取自我们的 O’Reilly 书籍《图形算法:Apache Spark 和 Neo4j 中的实际示例》,您可以免费下载。
Neo4j 在统一的平台上提供本机图形存储、计算和分析。我们的目标是帮助组织使用连接优先方法揭示人员、流程、位置和系统是如何相互关联的。Neo4j 图形平台支持处理人工智能、欺诈检测、实时建议和主数据的应用程序。
您可能还喜欢:
6 权力博弈的项目管理教训
合并交易和分析处理
一段时间以来,事务和分析处理之间的界限一直模糊不清。在线交易处理(或 OLTP)操作通常是短期活动,如预订机票或贷记帐户。它意味着大量的低延迟查询处理和高数据完整性。这与在线分析处理 (OLAP) 非常不同,后者有助于对具有多个数据源、格式和类型的历史数据进行更复杂的查询和分析。
现代数据密集型应用程序现在将实时事务操作与分析相结合。这种处理合并是由软件的进步以及低成本的大内存硬件推动的。将分析和事务结合在一起,使持续分析成为常规操作的自然组成部分。
现在,我们可以通过使用单一统一平台进行两种类型的处理来简化我们的体系结构。这意味着我们的分析查询可以利用实时数据,并且我们可以简化被描述为混合事务和分析处理 (HTAP) 的分析迭代过程。
混合平台支持事务所需的低延迟查询处理和高数据完整性,同时将复杂分析集成到大量数据上。
图形分析和算法
随着数据日益互联,系统日益复杂,利用数据中丰富且不断发展的关系至关重要。如果您已经在使用 Graph 数据库,则这是将图形分析添加到您的实践中以揭示数据中的结构和预测模式的好时机。
在此最高级别,图形分析用于了解或预测动态组中的行为。这需要了解团队的联系和拓扑。图形算法通过使用专门为使用连接而开发的数学检查网络的总体性质,从而达到此目的。通过这种方法,我们可以了解连接系统的结构并对其流程进行建模。
使用图表,我们可以对从金融市场到 IT 服务的动态环境进行建模,为机器学习找到更多预测元素以打击金融犯罪,或发现社区以提供个性化体验和建议。图形分析有助于我们推断关系并预测行为。
图形算法的类别
图形算法提供了分析连接数据的最有效方法之一,因为它们的数学计算是专门为处理关系而构建的三个经典类别考虑了图形的总体性质:路径查找、中心性和社区检测。但是,其他图形算法(如相似性和链接预测算法)会考虑和比较特定节点。
- 路径查找(和搜索)算法是图形分析和算法以及探索节点之间的路径的基础。这些算法用于识别用于物流规划、成本最低路由和游戏仿真等用途的最佳路由。
- 中心算法可帮助我们了解图形中各个节点的角色和影响。它们很有用,因为它们识别最重要的节点,并帮助我们了解组动态,例如可信度、可访问性、事物传播的速度以及组之间的桥梁。
- 社区算法评估相关的笔记集,查找成员在组内具有更多关系的社区。识别这些相关集可显示节点、隔离组和网络结构的群集。这有助于推断对等组的类似行为或首选项、估计弹性、查找嵌套关系以及准备用于其他分析的数据。
- 相似性算法查看单个节点的相似性。通过比较节点的属性和属性,我们可以识别最相似的实体和分数差异。这有助于构建更个性化的建议,以及开发本体和层次结构。
- 链路预测算法考虑节点和结构元素的邻近性,例如节点之间的潜在三角形,以估计新关系形成或存在未记录连接的可能性。此类算法有许多应用,从药物重新用途到刑事调查。
将图形分析应用于权力游戏
现在,让我们深入探讨在每个人最喜欢的幻想节目”权力的游戏”的数据集上应用图形算法。
纽勒 – 图形算法游乐场
我们将使用 NEuler 图形算法运动场图形应用程序来执行此操作。NEuler 提供了一个直观的 UI,允许用户执行各种图形算法,而无需键入任何代码。这是一个 Neo4j 实验室项目,可帮助人们快速熟悉图形算法并探索有趣的数据。有关该应用程序的详细信息,包括安装说明,可在发布博客文章中找到。
安装 NEuler 后,我们需要加载权力游戏示例图,如下图所示:
此数据集基于安德鲁·贝弗里奇的王权网络,包含不同季节的人物及其交互。
分析权力的游戏
加载数据集后,我们已准备好开始分析它。我们的重点将放在电视节目的第二季,但我们偶尔会展示其他季节的结果进行比较。
我们将使用社区检测算法来查找韦斯特罗斯和中心算法中的用户群集,以查找最重要和最具影响力的字符。
Louvain 模块化算法基于启发式最大化模块化分数来检测网络中的社区。(模块化分数范围从 -1 和 1 作为社区内关系密度的度量,以及外部社区的关系密度。如果我们为权力游戏数据集的第 2 季运行它并可视化输出格式,我们将看到下图:
com.cn/wp-内容/上传/2019/07/n3.png”/*
在左上角紫色簇中,我们可以看到丹妮莉丝组是自己关闭,与其他人断开。该群集中的人没有与其他人互动。我们最初认为数据或算法一定有问题,并运行了另一个社区检测算法”连接组件”来确认我们的发现。
连接组件算法是一种社区检测算法,它根据用户群集之间是否存在任何路径来检测用户群集。如果我们运行该算法,我们将看到以下可视化:
在这里,我们只有两个社区:一个是左边的丹妮莉丝,另一个是右边的绝大多数其他角色。这证实了我们从Louvain模块化算法的发现,如果我们将记忆舒展到第2季,我们会记住丹妮莉丝在远离其他主要角色的岛屿上。
分析社区结构的另一种方法是计算用户属于的三角形数。此图中的三角形表示字符 A 与字符 B 交互,字符 B 与字符 C 交互,字符 C 与字符 A 交互。我们可以在下图中看到三角形的示例:
如果我们运行三角形计数算法并选择表输出格式,我们将看到以下输出:
我们还注意到,此算法返回系数分数。此聚类系数测量邻居与可连接的最大连接情况相比的连接情况。分数为 1 表示我们所有邻居彼此交互。因此,虽然 Joffrey 在整体三角形(原始邻居交互的数量)上得分很高,但我们注意到小指头和 Sansa 的邻居连接的概率(聚类系数)更高。
接下来,我们将使用集中算法来查找重要字符。
中心算法
最简单的中心算法是度中心算法,它测量连接到节点的关系数。我们可以使用此算法查找交互最多的字符。
运行算法时,您将看到以下输出:
Joffrey和提利昂与人数最多的人互动,这告诉我们,第2季的节目主要是基于这些字符。这并不一定意味着这些人物是最具影响力的人物,但他们肯定是那些说了很多话的人!
中间中心算法检测节点对图形中信息流的影响。它通常用于查找节点,这些节点充当从图形的一个部分到另一个部分的桥接。
我们可以使用此算法查找与韦斯特罗斯内的子社区紧密相连的人。如果我们运行算法并选择图表输出类型,我们将看到以下输出:
图表选项将在适用时显示,是查看许多中心算法的好方法,其中排名比实际分数更重要。我们在这里看到,Joffrey已经从学位中心级排名从第1位下降到这里仅排名第6,而Arya已经从学位中心排名从第5位上升到这里排名第1位。
我们还可以回顾第7季,看看事情是如何变化的:
乔恩现在压倒性地排名第一,基于中间的中心。他的得分是下一个人的两倍。他很可能充当了与核心群体以外的人不互动的群体之间的粘合剂,除了与 Jon。
另一个衡量重要性的指标是 PageRank,它衡量的是总体影响,包括间接影响。它不仅会发现那些对自己有重要意义的人,而且那些与更有影响力的人互动的人。
对于上述 PageRank 结果,我们看到一些熟悉的面孔 – Joffrey 和提利昂在度中心度方面也排名靠前,而 Arya 在”中间中心”方面排名第一。请注意,对于其他数据集,尤其是具有复杂关系的数据集,我们可能会看到中心度排名的更多差异。
现在,让我们回到时间,并比较运行 PageRank 在第 1 季,这给出了以下输出:
斯内德显然是这个阶段最具影响力的人物,但不幸的是,它并没有持续!通过比较分段数据(可能按时间、地理或人口统计)的结果,我们可以揭示出更深层次的故事。
最后,让我们通过演示如何在可视化输出格式中结合社区检测结果和中心算法来结束本文。
下图根据节点的 Louvain 模块化群集对节点进行颜色,并根据 PageRank 分数对节点进行大小调整:
现在,我们不仅可以看到群集,还可以看到特定群集中最重要的字符。毫不奇怪,我们了解到丹妮莉丝是隔离群集中最重要的角色。我们还将看到一些其他熟悉的面孔,包括蓝色集群中的阿里亚和泰温,黄色的提利昂、瑟瑟和乔弗里,以及绿色的乔恩。
结论
我们希望您阅读此分析时,像我们撰写过的分析一样有趣。令人着迷的是,你可以通过只看它的元数据来了解这么多关于权力游戏的东西。
如果您想了解有关图形分析及其应用的更多信息,您可以在O’Reilly 图形算法书的免费数字副本中找到 Spark 和 Neo4j 的实际示例和工作代码。