数据结构论坛

首页 » 分类 » 分类 » 使用DeepWalk从图中提取特征
TUhjnbcbe - 2024/5/3 16:41:00

目录

数据的图示不同类型的基于图的特征节点属性局部结构特征节点嵌入DeepWalk简介在Python中实施DeepWalk以查找相似的Wikipedia页面数据的图示

当你想到“网络”时,会想到什么?通常是诸如社交网络,互联网,已连接的IoT设备,铁路网络或电信网络之类的事物。在图论中,这些网络称为图。

网络是互连节点的集合。节点表示实体,它们之间的连接是某种关系。

例如,我们可以用图的形式表示一组社交媒体帐户:

节点是用户的数字档案,连接表示他们之间的关系,例如谁跟随谁或谁与谁是朋友。

图的用例不仅限于社交媒体!我们还可以使用图和网络表示其他类型的数据(并且在本文中我们将介绍一个独特的行业用例)。

为什么我们将数据表示为图?

为什么不仅仅使用典型的数据可视化技术来可视化数据?为什么要更复杂并学习新概念?下面我们会给出答案。

图数据集和数据库可帮助我们应对在处理结构化数据时面临的若干挑战。这就是为什么当今的主要科技公司,例如Google,Uber,Amazon和Facebook使用某种形式的图的原因。

让我们以一个例子来理解为什么图是数据的重要表示形式。看下图:

这是一小部分Facebook用户(a,B,C,D,E,F,G)的数据集。图像的左半边包含这个数据的表格形式。每一行代表一个用户和他/她的一个朋友。

右半部分包含代表同一组用户的图。该图的边缘告诉我们,连接的节点是Facebook上的朋友。现在,让我们解决一个简单的查询:

“找到用户A的朋友和用户A朋友的朋友。”

查看表格数据和上面的图。哪种数据形式更适合回答此类查询?

使用图来解决该问题要容易得多,因为我们只需要遍历从节点A长度为2的路径(ABC和ADF),即可找到朋友和朋友的朋友。

因此,图可以轻松捕获节点之间的关系,这在常规数据结构中是一项艰巨的任务。现在,让我们看看使用图可以解决什么样的问题。

基于图的特征的不同类型

为了解决上述问题,我们无法将图直接提供给机器学习模型。我们必须首先从中创建特征,然后模型将使用这些特征。

此过程类似于我们在自然语言处理(NLP)或计算机视觉中所做的过程。我们首先从文本或图像中提取数字特征,然后将这些特征作为输入提供给机器学习模型:

从图中提取的特征可以大致分为三类:

节点属性:我们知道图中的节点代表实体,并且这些实体具有自己的特征属性。我们可以将这些属性用作每个节点的特征。例如,在航空公司航线网络中,节点将代表机场。这些节点将具有飞机容量,航站楼数量,着陆区等特征。2.局部结构特点:节点的度(相邻节点的数量),相邻节点的平均度,一个节点与其他节点形成的三角形数,等等。节点嵌入:上面讨论的特征仅包含与节点有关的信息。它们不捕获有关节点上下文的信息。在上下文中,我指的是周围的节点。节点嵌入通过用固定长度向量表示每个节点,在一定程度上解决了这个问题。这些向量能够捕获有关周围节点的信息(上下文信息)

用于学习节点嵌入的两个重要的现代算法是DeepWalk和Node2Vec。在本文中,我们将介绍并实现DeepWalk算法。

DeepWalk简介

要了解DeepWalk,重要的是要正确理解词嵌入及其在NLP中的使用方式。我建议在下面的文章中仔细阅读Word2Vec的解释:

1
查看完整版本: 使用DeepWalk从图中提取特征