【自然语言处理NLP】社区发现快速入门(1)

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
简介: 【自然语言处理NLP】社区发现快速入门

社区发现快速入门

参考:https://www.bilibili.com/video/BV1gL411Y7c9/

一、图:关系型数据的一种描述方式

关系型数据,又名“表格数据”,指关系数学模型中以二维表的形式来描述的数据,它以表格形式组织,使用行和列来存储和表示数据之间的关系。

关系型数据可以用实体、属性和边来描述,以**学生表(Students)**为例:

学生ID 姓名 性别 年龄
1 张三 20
2 李四 22
  • 实体:表格中的每一行对应一个实体(如,实体1:学生“张三”;实体2:学生“李四”)
  • 关系:用于描述实体之间的某种关系(如,学生“张三”和学生“李四”是朋友;学生“张三”向学生“李四”发送邮件;学生“张三”、学生“李四”和学生“王五”在同一个班级)
  • 属性:表格中的每一列对应实体的一个属性(如,学生“张三”的属性包括“性别”:男;“年龄”:20)

在图模型中,可以使用图的节点和边来建模关系型数据,关系型数据被建模为图(graphs)或超图(hypergraphs)。

  • 实体——点
  • 关系——边
  • 属性——特征

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zIswjOfa-1690376405047)(assets/image-20230724201507842.png)]

二、图的描述与生成

2.1 图与社区的相关概念

  1. 节点的度(degree):与该节点直接相连的边的数量
  • 度分布:节点的度数的频率分布情况
  • 友谊悖论:在社交网络中,大多数人的朋友数量要比他们自己的朋友数量平均值要高。即,节点邻居的平均度通常高于其自身的度。
  1. 边介数(edge betweenness):通过这条边的所有最短路径的数量,用于衡量图中边的重要性。
  2. 中心性(centrality):一组用于衡量图中节点重要性或影响力的指标。中心性是通过数值化节点与图中其他节点之间的关系,从而评估节点在网络中的位置和影响力。
  • 度中心性(Degree Centrality):度中心性是指一个节点在图中与其他节点直接相连的边的数量。度中心性较高的节点被认为在网络中较为重要,因为它们与更多的其他节点有连接。在无向图中,度中心性等于节点的度;在有向图中,分为入度中心性和出度中心性。
  • 中枢/权威中心性(hub/ authority):中心节点或者权威节点的度中心性
  • 中枢节点:有向图中,出度比较大的节点
  • 权威节点:有向图中,入度比较大的节点
  • 接近中心性(Closeness Centrality):接近中心性测量节点到其他节点的平均距离。距离是指节点之间的最短路径长度【又名测地线(geodesic)】。具有较低平均距离的节点被认为在网络中更为中心,因为它们更容易与其他节点快速地进行交流。
  • 介数中心性(Betweenness Centrality):介数中心性度量节点在图中其他节点之间的重要性。一个节点的介数中心性高表示它在图中扮演着连接不同节点之间的关键角色。介数中心性较高的节点通常在信息传递、通信或资源传递中起到重要作用。
  • 特征向量中心性(Eigenvector Centrality):特征向量中心性考虑了节点本身的重要性以及其直接连接节点的重要性。该指标假设与高度中心性节点直接相连的节点也具有较高的中心性。因此,特征向量中心性可以被视为节点在整个网络中的影响力。
  • PageRank中心性:PageRank是一种特殊的特征向量中心性,最初由谷歌用于对网页进行排名。它将网络视为马尔可夫链,并在网络上进行随机游走,根据节点的传入链接数量和链接的质量来分配节点的排名。
  • Δ中心性(delta-centrality):每对节点之间的最短路径经过该节点的数量被定义为该节点的Δ中心性,用于衡量图中节点对网络连通性的贡献程度。
  1. 连通图(Connected Graph):从图中的任意一个节点出发,都可以通过边沿不同的路径到达图中的任意其他节点的无向图
  • 巨型连通分量(Giant Connected Component,巨片):由大量节点相互连接形成的最大连通子图。它是网络中规模最大的强连通分量。
  • 集团(clique):完全连通的子图。
  • k核(k-core):是G的一个最大连接子图,其中所有节点的度数至少为k
  • 我们可以通过反复删除所有度数小于k的节点来找到k-cores
  • 如果一个节点属于k-core但不属于(k+1)-core,那么这个节点的核心度(coreness)为k
  1. 幂律网络(Scale-free Network):具有幂律分布度数的网络拓扑结构,该网络中,节点的度数(连接数)遵循幂律分布。
  • 幂律分布(Power-law distribution):一种特殊的概率分布,幂律分布的概率密度函数与随机变量的取值 x 成反比,通常用公式f(x)xα来表示,其中 α 是分布的幂律指数(power-law exponent),通常取大于1的正值。
  • BA网络(Barabasi-Albert):一种典型的幂律分布网络,该网络倾向于依附于高度节点,从而形成枢纽,也被称为“富者愈富”。
  1. 小世界网络(Small World Network):一种特殊类型的网络模型,其特点是具有高度的聚集性和较短的平均最短路径长度,这意味着网络中的节点之间通过少数几步就可以相互到达,同时节点之间形成了紧密的聚集群。
  2. 模块度(Modularity):网络分析中用于衡量网络社区结构质量的重要指标。模块度测量了网络社区结构与随机网络相比的紧密程度。它通过比较网络内实际边的数量与随机网络期望边的数量之间的差异来衡量社区结构的优劣。
  • 分辨率:网络或图的粒度或细节程度
  • 基于模块化的算法受到分辨率限制问题的影响

基于模块化的算法是一类用于社区发现的方法,旨在将网络划分为具有高内聚性和低耦合性的社区(也称为模块)。这些算法通常通过最大化网络内部的连接强度(模块度)来寻找最佳的社区划分。

然而,当网络或图的分辨率较低时,也就是说,网络中的节点和边的粒度较大,算法可能会受到限制。这是因为低分辨率下,较小的社区可能无法被准确地识别或者在划分过程中被合并到其他更大的社区中。

换言之,如果网络的分辨率过低,算法可能会将本应是独立的小社区合并成一个更大的社区,导致社区结构的损失和模糊性增加。这会导致算法对具有更细粒度社区结构的网络或图的理解能力下降。

因此,在使用基于模块化的算法进行社区发现时,需要注意网络或图的分辨率,尽量选择适合给定数据结构的算法和参数设置。同时,对于较高分辨率的网络,这些算法往往表现更好,能够更准确地识别出细粒度的社区结构。

  1. 聚类系数(Clustering Coefficient):用于衡量图中节点聚集程度的指标,用于分析节点在网络中形成群组或社区的趋势。
  2. 图传递性(Transitivity):也称为传递性或三角闭包,指在一个网络中形成三角形的可能性,用于衡量图中节点之间三角关系的存在程度。图传递性的计算涉及到网络中的闭合三元组(三角形)。闭合三元组是指在一个网络中,如果节点 A 与节点 B 相连,节点 B 与节点 C 相连,且节点 A 与节点 C 相连,那么就构成了一个闭合三元组。
  3. 内部外部度:定义节点i的内部度为其在子图C内的度,节点i的外部度为其在子图C外部的度,内部度与外部度总和为节点的**总度 **。
  • 强弱社区:内部度>外部度——强社区,内部度<外部度——弱社区

2.2 随机图模型

  1. ER 模型(Erdős-Rényi 模型):通过在节点之间以一定的概率随机连接边来生成图。ER模型生成的随机图的平均度、度分布等特征可以用概率方法进行推导。生成图的过程如下:
  • 定义节点数和边数:首先确定图中节点的数量 n 和边的数量 m。
  • 生成边:随机选择 m 条边,每条边以一定的概率连接两个节点。每对节点之间产生一条边的概率是独立的,且是相同的。
  1. Chung-Lu 模型:用于生成具有特定平均度分布的无标度网络。无标度网络的特点是节点度分布遵循幂律分布,这与许多真实世界的复杂网络中观察到的节点度分布类似。给定一个目标平均度序列{d1, d2, …, dn},其中 di 表示第 i 个节点的度数。生成图的过程如下:
  • 创建节点:首先创建 n 个节点,其中 n 是图中节点的数量。
  • 边的概率分配:为每对节点 i 和 j,计算连接概率 p_ij,该连接概率与节点的目标平均度和节点的度有关。通常使用公式pij=kikj/(2m),其中 k_jkj 分别是节点 i 和 j 的目标平均度,m 是图中边的数量的一半。
  • 随机连接:对于每对节点 i 和 j,以概率pij 连接节点 i 和 j,这里的连接是一个随机过程。
  1. 配置模型(Degree Sequence):Chung Lu模型是边生成的概率模型,生成度序列的期望和原来的相等。对于配置模型,我们为节点指定一个精确的度序列,所有具有n个节点和这个精确度序列的图,被认为是以相同的概率出现的。生成图的过程通常通过以下步骤实现:
  • 创建节点:首先根据节点度序列确定图中节点的数量和每个节点的度,对于每个节点i,我们指定di个残边(stubs,半条边)
  • 随机连接:残边随机互联,直到满足每个节点的度为止。由于随机连接可能会产生自环或重复边,连接过程中不考虑重复连接和自环。

三种模型的区别

  1. ER 模型(Erdős-Rényi 模型):
  • 特点:ER 模型是最早被提出的随机图模型之一,简单且易于理解。它基于连接概率来生成边,可以用于生成具有随机连接的图。ER 模型可以生成稀疏图,适用于一些连接较稀疏的情况。
  • 优点:模型简单,易于实现和理解。适用于生成边稀疏的随机图。
  • 缺点:ER 模型生成的图往往具有较小的最大连通子图,不适用于生成无标度网络,无法产生复杂网络的幂律节点度分布。
  1. Chung-Lu 模型:
  • 特点:Chung-Lu 模型是用于生成无标度网络的随机图模型,可以生成节点度分布遵循幂律分布的图。它通过连接概率和目标平均度来随机连接节点。
  • 优点:能够生成无标度网络,适用于研究幂律节点度分布的复杂网络。
  • 缺点:随机连接的过程可能导致图中存在重复连接和自环的问题。
  1. Degree Sequence 模型:
  • 特点:Degree Sequence 模型是用于生成具有给定节点度序列的随机图的模型。给定一个节点度序列,它通过随机连接节点来生成一个满足该度序列的图。
  • 优点:能够生成满足指定节点度序列的随机图,适用于研究复杂网络的节点度分布特性。
  • 缺点:并非所有给定的节点度序列都能生成合法的图,有些节点度序列可能无法实现。

三、 社区基准模型(benchmark)

社区基准模型是用于评估和比较社区发现算法性能的标准或参照。它为我们提供了一个衡量算法在社区划分上的准确性和效果的基准,帮助我们了解算法的优势和局限性。

为什么要有社区基准模型

  • 测试和比较算法
  • 控制噪音水平、社区规模等
  • 真实图数据很少有真实值(ground-truth)
  • 有ground-truth,但可能与基本假设不一致

常见的基准模型包括:

  1. 种植-分区模型(Planted partitions model)

image.png

  1. LFR模型(Lancichinetti-Fortunato-Radicchi model)
  • 固定节点数 n,设定三个主要参数:(µ 称为噪声水平或混合参数
  • image.png
  • 把每个节点都分配到社区
  • 存在允许重叠社区的变体
  • 可以提供额外参数来限制度分布(平均和最大度)和社区大小(最小和最大)
  • 从配置模型开始,重新连接节点以逼近目标分布
  • 初始阶段可以使用BA等其他模型
  1. LFR 的可扩展性有些受限,一些可扩展的基准模型有:
  • RMAT ,生成具有幂律度数分布的图;在 Graph-500 中使用
  • BTER (Block Two-level ER),生成服从幂律度分布以及社区结构的图
  • SBM(Stochastic Block Model),它也生成具有社区结构的图。——它最简单的定义是种植分区模型的变体。

四、图社区分割

图社区定义:两个基本假设:[Barabasi,Network Science]

  1. 一个网络的社区结构在其布局图中是唯一的。
  2. 一个社区是网络中的一个局部密集连接子图。

3.1 两大聚类方法

图聚类/分割(clustering/partitioning):将顶点分割成相连的子图

模糊聚类(Fuzzy clustering):节点不属于/属于一个或多个群组

参考:https://blog.csdn.net/SL_World/article/details/104423536

  1. K-means(K均值)聚类:一种常见的无监督学习算法,用于将一组未标记的数据样本划分为不同的簇(cluster)。聚类的目标是使同一簇内的样本相似度最大化,而不同簇之间的样本相似度最小化。
  2. 谱聚类(Spectral Clustering):利用数据的相似矩阵的谱(特征值)进行降
  • 它将数据看成空间中的点,点对之间有边相连,距离越远的点对其边权值越小,距离越近的点对其边权值越大。
  • 它将聚类问题转化为切图问题,使得切图后的总代价最小。即子图内点对之间边权值较大,子图间边权值较小。得到切图后子图的个数即为聚类的个数。

K-means聚类和谱聚类的比较

  1. 原理:
  • K-means聚类通过迭代寻找一组聚类中心点,将数据划分为K个簇,使得每个样本点到所属簇的中心点的距离最小。它基于欧氏距离度量样本之间的相似性。
  • 谱聚类是一种基于图论的聚类方法。它将样本数据看作是图上的节点,通过计算节点之间的相似性构建一个相似度矩阵,然后通过对相似度矩阵进行特征分解,选取前K个特征向量对应的特征值,将样本投影到这K维空间中进行聚类。
  1. 聚类结果:
  • K-means聚类将样本分成了K个互不重叠的簇,并且每个样本只属于一个簇。
  • 谱聚类没有硬性的簇划分,它将样本映射到一个低维的空间中,在这个空间里对样本进行聚类。某些情况下,谱聚类可以实现松散的聚类(soft clustering),即样本点可以属于多个簇。
  1. 对数据分布的要求:
  • K-means聚类对数据分布的要求较高,它假设簇是凸的、等方差的,并且每个簇的样本数量相近。
  • 谱聚类对数据分布的要求相对较低,它能够处理非凸的簇、椭圆形簇、大小不同的簇等情况。
  1. 时间复杂度:
  • K-means聚类的时间复杂度较低,在大规模数据集上有较好的可扩展性。
  • 谱聚类的时间复杂度较高,主要耗费在特征分解的计算上,因此在大规模数据集上效率较低。

选择聚类算法应根据具体的问题和数据特点来决定。如果数据符合K-means的假设条件,且需要得到硬性划分的簇,则K-means是一个很好的选择。如果数据分布复杂、非凸或需要软性聚类,谱聚类可能更适合。

3.2 图分区算法

  1. GN算法(Girvan-Newman算法):一种用于检测社区结构的图论算法,其主要目标是发现网络中的重要的连接(边介数),并将网络划分为具有高内聚性和低耦合性的社区。复杂度:O(m2n)【m:边的总数,n:点的总数】步骤:
  • 计算网络中所有边的介数(betweenness),介数表示该边在网络中作为最短路径的桥梁所承担的重要程度。
  • 找到介数最高的边,将其从网络中移除,重新计算剩余边的介数。
  • 重复步骤2和步骤3,直到所有边都被移除。
  1. 在每次移除边的过程中,GN算法会逐渐将网络划分为多个不相交的社区,因为那些连接不同社区的边通常具有较高的介数。这样,每次移除边后,可以得到一个社区划分结果。
  2. CNM算法(Clauset、Newman、Moore):也称为快速贪心算法(Fast Greedy)复杂度:O(n2),稀疏图更少
  • 开始,每个顶点作为一个单独集群
  • 选择最能提高模块度的一对集群(如果有的话),然后合并它们,当没有办法提高模块度的时候停止
  1. Louvain算法:也称为多级算法(Multilevel algorithm)或快速折叠算法(fast unfolding)复杂度:O(nlogn)
  • 开始,每个顶点作为一个单独集群
  • 循环遍历每个顶点,将其移动到模块度增加最多(如果有的话)的邻居社区
  • 重复以上步骤,直到没有任何提升空间为止
  • 将每个社区折叠成一个节点并重新运行上述步骤——另一个层级
  • 当图折叠到单个节点(或者当最后一级没有移动)时停止

  1. Infomap算法:Infomap基于信息论:使用概率随机游走和压缩算法来实现复杂度:O(nlogn)
  • 给定 G 和一个初始化分区方案,尽可能高效地编码随机游走
  • 利用随机游走往往在同一社区中停留更长时间的性质
  • 优化图方程:社区间游走的平均位数+社区内游走的平均位数
  1. 标签传播(label propagation algorithm):复杂度:O(m),此算法速度很快,但并不总能收敛到一个解。
  • 开始,每个顶点作为一个单独集群,有自己的簇标签
  • 循环遍历每个顶点,每个顶点都采用其邻居中最流行的标签(使用随机来打破死锁)
  • 当每个顶点具有与其邻域中最频繁出现的标签相同的簇标签时,算法停止
  1. 其他算法:
  • WalkTrap:一种基于短距离随机游走的分层算法。它的复杂度是O(n2logn)
  • Leading eigenvector(前导特征向量):基于模块化矩阵的谱分解。对于每个双分区,其复杂度为O(n(n+m))
  • Leiden算法:Louvain算法的改进
  • ECG算法:Louvain算法的改进,复杂度较高

【自然语言处理NLP】社区发现快速入门(2)https://developer.aliyun.com/article/1541014

目录
相关文章
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
自然语言处理(NLP)是人工智能和语言学的一个交叉领域,它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
自然语言处理(NLP)是人工智能和语言学的一个交叉领域,它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
6 0
|
4天前
|
自然语言处理 PyTorch API
`transformers`库是Hugging Face提供的一个开源库,它包含了大量的预训练模型和方便的API,用于自然语言处理(NLP)任务。在文本生成任务中,`transformers`库提供了许多预训练的生成模型,如GPT系列、T5、BART等。这些模型可以通过`pipeline()`函数方便地加载和使用,而`generate()`函数则是用于生成文本的核心函数。
`transformers`库是Hugging Face提供的一个开源库,它包含了大量的预训练模型和方便的API,用于自然语言处理(NLP)任务。在文本生成任务中,`transformers`库提供了许多预训练的生成模型,如GPT系列、T5、BART等。这些模型可以通过`pipeline()`函数方便地加载和使用,而`generate()`函数则是用于生成文本的核心函数。
10 0
|
9天前
|
机器学习/深度学习 自然语言处理 搜索推荐
自然语言处理(NLP)技术的详细介绍
自然语言处理(NLP)技术的详细介绍
16 2
|
16天前
|
机器学习/深度学习 自然语言处理 PyTorch
【机器学习】自然语言处理(NLP)领域革命性突破的模型——Transformer
【机器学习】自然语言处理(NLP)领域革命性突破的模型——Transformer
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
自然语言处理(NLP)概述
自然语言处理(NLP)是计算机科学、人工智能和语言学的交叉领域,旨在实现计算机与人类(自然)语言之间的相互理解和交流。背景可以追溯到早期人工智能研究,尤其是试图使计算机能够理解和生成人类语言的努力。
22 1
|
29天前
|
自然语言处理 算法 JavaScript
【自然语言处理NLP】社区发现快速入门(2)
【自然语言处理NLP】社区发现快速入门
55 0
【自然语言处理NLP】社区发现快速入门(2)
|
14小时前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在自然语言处理中的应用与挑战
随着人工智能领域的迅猛发展,深度学习技术已广泛应用于自然语言处理(NLP)中,实现了语义理解、机器翻译和情感分析等任务的显著提升。本文将探讨深度学习在NLP中的具体应用,并分析当前面临的主要挑战,包括数据依赖性问题、模型泛化能力不足以及伦理和隐私问题。通过对这些关键问题的深入讨论,本文旨在为深度学习在NLP领域的未来发展提供洞见和建议。
|
20小时前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在自然语言处理中的应用与挑战
【7月更文挑战第17天】随着人工智能的迅速发展,深度学习已成为解决复杂问题的关键工具。特别是在自然语言处理领域,深度学习技术的应用不仅推动了语言模型的创新,还促进了语音识别、机器翻译等技术的发展。然而,这一领域也面临着数据偏差、模型解释性不足等挑战。本文将探讨深度学习在自然语言处理中的具体应用及其面临的主要挑战,并讨论未来可能的发展方向。
15 5
|
21小时前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在自然语言处理中的应用与挑战
本文深入探讨了深度学习技术在自然语言处理(NLP)领域的应用及其面临的挑战。文章首先概述了NLP的重要性和深度学习技术的基本概念,随后详细分析了深度学习在语音识别、机器翻译、情感分析等方面的成功案例。同时,文章也指出了当前深度学习模型在数据依赖性、模型可解释性以及资源消耗方面的主要挑战,并讨论了未来可能的发展方向。
|
1天前
|
机器学习/深度学习 自然语言处理 算法
深度学习在自然语言处理中的应用与挑战
本文将深入探讨深度学习技术在自然语言处理(NLP)领域的应用及其所面临的挑战。我们将分析深度学习如何改变NLP的传统方法,包括语言模型、机器翻译和情感分析等任务的进步。同时,我们也将讨论数据偏差、模型解释性和资源消耗等挑战,并提出一些解决这些挑战的潜在途径。通过综合最新的研究成果和案例分析,本文旨在为读者提供一个关于深度学习在NLP中作用及未来发展方向的全面视角。