谷歌云上的图形数据科学——Neo4j AuraDS和Vertex AI

371 阅读8分钟

今年1月,我们在一篇博客中预览了Neo4j和谷歌云顶点AI的合作关系,介绍了在使用Neo4j AuraDS生成图嵌入时,如何利用图来实现更智能的人工智能。

这篇博文获得了很多数据科学家的关注,他们希望通过输入图的知识(图的特征)来放大他们的机器学习(ML)管道,增强ML模型的可预测性。

此后,Neo4j发布了新的2.0版本的Neo4j图形数据科学平台。随着Neo4j AuraDS(图形数据科学即服务解决方案)的普遍使用,这使得在谷歌云上开始使用变得异常简单。

图形为什么重要?

在当今世界,我们以全新的方式与他人或机器连接、交流和互动,这些方式每天都在发展和变化。我们不可能忽视这些人、地、物和事件之间的关系如何标志和影响我们互动的价值和重要性。

最近几年,将图作为一种数据结构变得特别重要。它们改变了我们创造药品的方式,改善了我们发现和打击金融欺诈的方式,为客户提供了更好的建议,并消除了实体及其身份的歧义。

1 Graph Data Science.jpg

图形数据科学使用案例的例子

图和图数据科学使我们能够根据一个数据点的连接或它在网络中的位置找到它的重要性。我们可以使用同样的技术来找到反面--网络中的不寻常之处。这使我们能够通过计算图的特征,更准确地预测接下来会发生什么,这些特征可用于图的原生ML,或输入像Vertex AI这样的工具。

使用图结构来计算算法或创建嵌入,提高了Neo4j和谷歌云客户的机器学习管道的准确性和可靠性。如果你想探索图谱数据科学如何增强你的能力,请查看这些资源和笔记本,它们可以引导你完成Neo4j图谱数据科学的工作实例。

图形数据科学作为一种服务。AuraDS

AuraDS是Neo4j提供的全面管理的图形数据科学服务。Neo4j已经建立了一个完整的平台,使数据科学家能够轻松地开始并将他们的用例从假说变成生产,而不需要软件工程师、数据库经理或IT管理员团队。

2 Graph Data Science.jpg

Neo4j图表数据科学

您可以使用超过65种最先进的图形和机器学习算法,这些算法可以增强您企业的分析和机器学习解决方案。我们将您所有的计算、存储、IO和网络成本包含在一个简单的按小时计算的定价模型中。你可以在谷歌云平台上获得所有云端的图形数据科学的好处。

***"Neo4j AuraDS有一个简单的定价结构,使其易于理解和管理与计算有关的成本。"--*Arcurve公司AI/ML总监Mike Morley

我最喜欢的功能是什么?因为AuraDS是一种管理服务,我们不断地将新的算法、性能改进和错误修复直接推送给你的实例,所以你不必担心繁琐的操作问题。

要开始,创建一个实例是超级简单的。我们引导你完成这个过程,你所需要提供的就是。

  • 节点的数量

  • 关系的数量

  • 你希望使用什么算法类别

3 Graph Data Science.jpg

AuraDS算法类别

这使我们能够根据您希望运行的节点和关系的数量,为您选择的类别中的算法确定正确的实例。当然,随着你的用例的增长或缩小,你可以向上或向下调整你的实例,以满足你的需求,当你不使用它时,你可以暂停它们以节省成本。

如果你不确定和探索,你也可以选择这个选项。随着你对自己的需求越来越熟悉,AuraDS会告诉你何时需要扩大规模来运行特定的算法。

"Neo4j AuraDS是一个伟大的工具,因为我们可以随着时间的推移调整我们的模型,以改善它们。通过Neo4j Graph Data Science,我们将所需的一切都集中在一起--它使我们很容易专注于建立我们的业务,因为该软件很容易与我们现有的工具集和数据科学方法配合。"- Orita公司首席技术官Zack Gow

如何将AuraDS与Vertex AI整合起来

我们已经看到很多客户以多种方式将AuraDS整合到他们的产业中。我们已经将其概念化为一个谱系,以帮助您根据您的需求和机器学习管道的成熟度选择适合您的方式。

如果你以暂时的方式整合AuraDS,那么插入一个成熟的ML管道是非常容易的,因为你正在计算特征并将它们转移到Vertex AI特征存储中。

更为集中的方法使你不仅可以计算图的特征,而且还可以将数据仍然以图的格式保存,这使得你可以快速查询深层路径,并使用Neo4j Bloom等工具进行探索性数据分析。

4 Graph Data Science.jpg

AuraDS的使用频谱

至于你应该从哪里开始,没有错误或正确的答案--这都是由你的架构和业务需求决定的。

***"今天,我们在Google Dataproc中运行Spark作业,使用AuraDS生成的图形功能。我们希望用Vertex AI取代我们目前的架构,以简化我们的开发和部署选项。我们从AuraDS和Vertex AI获得的功能和集成使生成图形功能、开发和管理我们的ML管道以及监控我们的ML模型变得轻而易举。"--*Ortia首席技术官Zack Gow

在我们的工作实例中,我们将使用一个中心方法,我们不仅在AuraDS中存储数据,而且还用FastRP计算我们的图嵌入,并将其输入我们的Vertex AI工作流程。

自上一篇文章以来,我们已经发布了Neo4j图形数据科学的本地Python客户端。这使得与顶点人工智能的整合更加简单,而不需要为查询和转换编写大量的模板代码。你现在可以编写纯Python代码来投射图形,运行算法,并以DataFrames的形式检索结果。你甚至可以从DataFrames直接将你的图投射到内存中,而不需要先将其导入数据库。

5 Graph Data Science.jpg

使用GDS客户端来简化与AuraDS的互动

你可以在这里跟随更新的笔记本,了解更多关于如何使用FastRP生成图的嵌入。

计算好嵌入后,我们现在可以把它们写入CSV,并推送到云存储桶,让谷歌云的顶点人工智能可以使用它。这些步骤详见这里的笔记本。

在顶点人工智能中使用图形特征

6 Graph Data Science.jpg

图的嵌入,显示了图的拓扑结构如何转化为一个固定维度的矢量空间

嵌入表示一个节点在图中的位置以及它与其他节点的互动方式。我们使用向量作为数据结构的原因是,我们可以在谷歌云的顶点AI中使用表格方法来训练机器学习模型。

首先,我们需要从云存储桶中提取数据,并使用它在顶点AI中创建一个数据集。Python的调用看起来像这样。

code_block

[StructValue([(u'code', u'dataset = aiplatform.TabularDataset.create(\r\n display_name="paysim", \r\n gcs_source=os.path.join(\r\n "gs://", STORAGE_BUCKET, STORAGE_PATH, TRAINING_FILENAME\rn )', \r\n)]]

创建了数据集之后,我们就可以在上面训练一个模型。这个Python调用看起来像这样。

code_block

[StructValue([(u'code', u'model = job.run(\r\n dataset=dataset, \r\n target_column="is_fraudster", \r\n training_fraction_split=0.8, \r\n validation_fraction_split=0.1, \r\n test_fraction_split=0.1, \r\n model_display_name="paysim-prediction-model", \r\n disable_early_stopping=False, \r\n budget_milli_node_hours=1000, \r\n) '), (u'language', u') ])

你可以在笔记本中查看该调用的结果。或者,你可以登录到GCP控制台,在顶点人工智能的GUI中查看结果。

顶点人工智能的控制台视图非常棒。它包括ROC曲线和混淆矩阵等整齐的可视化,所以你可以了解你的ML模型是如何表现的。

顶点人工智能还提供了有用的工具来部署训练好的模型。数据集可以被加载到顶点AI的特征存储中。然后,可以部署一个端点。新的预测可以通过调用该端点进行计算。这在这里的笔记本上有详细说明。