En el estudio de redes complejas , se dice que una red tiene estructura de comunidad si los nodos de la red se pueden agrupar fácilmente en conjuntos de nodos (potencialmente superpuestos) de modo que cada conjunto de nodos esté densamente conectado internamente. En el caso particular de la búsqueda de comunidades no superpuestas , esto implica que la red se divide naturalmente en grupos de nodos con densas conexiones internas y conexiones más dispersas entre grupos. Pero también se permiten comunidades superpuestas . La definición más general se basa en el principio de que es más probable que los pares de nodos estén conectados si ambos son miembros de la misma comunidad(es), y es menos probable que estén conectados si no comparten comunidades. Un problema relacionado pero diferente es la búsqueda de comunidades , donde el objetivo es encontrar una comunidad a la que pertenece un determinado vértice.
En el estudio de redes , como redes de computadoras y de información, redes sociales y redes biológicas, se ha encontrado que ocurren comúnmente varias características diferentes, incluyendo la propiedad de mundo pequeño , distribuciones de grado de cola pesada y agrupamiento , entre otras. Otra característica común es la estructura de la comunidad. [1] [2] [3] [4] [5] En el contexto de las redes, la estructura de la comunidad se refiere a la ocurrencia de grupos de nodos en una red que están más densamente conectados internamente que con el resto de la red, como se muestra en la imagen de ejemplo a la derecha. Esta falta de homogeneidad de conexiones sugiere que la red tiene ciertas divisiones naturales dentro de ella.
Las comunidades suelen definirse en términos de la partición del conjunto de vértices, es decir, cada nodo se coloca en una y solo una comunidad, tal como se muestra en la figura. Esta es una simplificación útil y la mayoría de los métodos de detección de comunidades encuentran este tipo de estructura de comunidad. Sin embargo, en algunos casos, una mejor representación podría ser una en la que los vértices estén en más de una comunidad. Esto podría suceder en una red social donde cada vértice representa a una persona y las comunidades representan a los diferentes grupos de amigos: una comunidad para la familia, otra comunidad para los compañeros de trabajo, una para los amigos del mismo club deportivo, etc. El uso de camarillas para la detección de comunidades que se analiza a continuación es solo un ejemplo de cómo se puede encontrar dicha estructura de comunidad superpuesta.
Algunas redes pueden no tener una estructura comunitaria significativa. Muchos modelos de red básicos, por ejemplo, como el gráfico aleatorio y el modelo de Barabási-Albert , no muestran una estructura comunitaria.
Las estructuras comunitarias son bastante comunes en las redes reales. Las redes sociales incluyen grupos comunitarios (de ahí el origen del término) basados en una ubicación, intereses, ocupación, etc. comunes. [5] [6]
Encontrar una estructura comunitaria subyacente en una red, si existe, es importante por varias razones. Las comunidades nos permiten crear un mapa a gran escala de una red, ya que las comunidades individuales actúan como metanodos en la red, lo que facilita su estudio. [7]
Las comunidades individuales también arrojan luz sobre la función del sistema representado por la red, ya que las comunidades a menudo corresponden a unidades funcionales del sistema. En las redes metabólicas, dichos grupos funcionales corresponden a ciclos o vías, mientras que en la red de interacción de proteínas , las comunidades corresponden a proteínas con funcionalidad similar dentro de una célula biológica. De manera similar, las redes de citas forman comunidades por tema de investigación. [1] Ser capaz de identificar estas subestructuras dentro de una red puede proporcionar una idea de cómo la función y la topología de la red se afectan entre sí. Tal conocimiento puede ser útil para mejorar algunos algoritmos en gráficos como el agrupamiento espectral . [8]
Es importante destacar que las comunidades suelen tener propiedades muy diferentes a las propiedades promedio de las redes. Por lo tanto, si nos centramos únicamente en las propiedades promedio, normalmente pasamos por alto muchas características importantes e interesantes dentro de las redes. Por ejemplo, en una red social dada, pueden existir simultáneamente grupos gregarios y reticentes. [7]
La existencia de comunidades también afecta a diversos procesos, como la propagación de rumores o epidemias, que se producen en una red. Por lo tanto, para comprender adecuadamente estos procesos, es importante detectar las comunidades y estudiar también cómo afectan a los procesos de propagación en diversos entornos.
Finalmente, una aplicación importante que la detección de comunidades ha encontrado en la ciencia de redes es la predicción de enlaces faltantes y la identificación de enlaces falsos en la red. Durante el proceso de medición, algunos enlaces pueden no ser observados por diversas razones. De manera similar, algunos enlaces podrían ingresar falsamente en los datos debido a errores en la medición. Ambos casos son bien manejados por el algoritmo de detección de comunidades ya que permite asignar la probabilidad de existencia de un borde entre un par dado de nodos. [9]
Encontrar comunidades dentro de una red arbitraria puede ser una tarea computacionalmente difícil. El número de comunidades, si las hay, dentro de la red es generalmente desconocido y las comunidades suelen ser de tamaño y/o densidad desiguales. Sin embargo, a pesar de estas dificultades, se han desarrollado y empleado varios métodos para encontrar comunidades con distintos niveles de éxito. [4]
Uno de los algoritmos más antiguos para dividir redes en partes es el método de corte mínimo (y variantes como el corte de proporción y el corte normalizado). Este método se utiliza, por ejemplo, en el equilibrio de carga para computación paralela con el fin de minimizar la comunicación entre nodos de procesadores.
En el método de corte mínimo, la red se divide en un número predeterminado de partes, generalmente de aproximadamente el mismo tamaño, elegidas de modo que se minimice el número de aristas entre los grupos. El método funciona bien en muchas de las aplicaciones para las que fue pensado originalmente, pero no es ideal para encontrar la estructura de la comunidad en redes generales, ya que encontrará comunidades independientemente de si están implícitas en la estructura y encontrará solo un número fijo de ellas. [10]
Otro método para encontrar estructuras de comunidad en redes es el agrupamiento jerárquico . En este método se define una medida de similitud que cuantifica algún tipo (normalmente topológico) de similitud entre pares de nodos. Las medidas de uso común incluyen la similitud del coseno , el índice de Jaccard y la distancia de Hamming entre filas de la matriz de adyacencia . Luego se agrupan los nodos similares en comunidades según esta medida. Hay varios esquemas comunes para realizar la agrupación, los dos más simples son el agrupamiento de enlace simple , en el que dos grupos se consideran comunidades separadas si y solo si todos los pares de nodos en diferentes grupos tienen una similitud inferior a un umbral dado, y el agrupamiento de enlace completo , en el que todos los nodos dentro de cada grupo tienen una similitud superior a un umbral. Un paso importante es cómo determinar el umbral para detener el agrupamiento aglomerativo, lo que indica una estructura de comunidad cercana a la óptima. Una estrategia común consiste en construir una o varias métricas que monitoreen las propiedades globales de la red, que alcanzan su punto máximo en un paso determinado del agrupamiento. Un enfoque interesante en esta dirección es el uso de varias medidas de similitud o disimilitud, combinadas a través de sumas convexas ,. [11] Otra aproximación es el cálculo de una cantidad que monitorea la densidad de aristas dentro de los clústeres con respecto a la densidad entre clústeres, como la densidad de partición, que se ha propuesto cuando la métrica de similitud se define entre aristas (lo que permite la definición de comunidades superpuestas), [12] y se extendió cuando la similitud se define entre nodos, lo que permite considerar definiciones alternativas de comunidades como gremios (es decir, grupos de nodos que comparten un número similar de enlaces con respecto a los mismos vecinos pero no necesariamente conectados entre sí). [13] Estos métodos se pueden extender para considerar redes multidimensionales, por ejemplo cuando tratamos con redes que tienen nodos con diferentes tipos de enlaces. [13]
Otro algoritmo de uso común para encontrar comunidades es el algoritmo de Girvan-Newman [1] . Este algoritmo identifica los bordes de una red que se encuentran entre comunidades y luego los elimina, dejando solo las comunidades en sí. La identificación se realiza empleando la medida de teoría de grafos centralidad de intermediación , que asigna un número a cada borde que es grande si el borde se encuentra "entre" muchos pares de nodos.
El algoritmo de Girvan-Newman arroja resultados de calidad razonable y es popular porque se ha implementado en varios paquetes de software estándar. Pero también se ejecuta lentamente, tomando tiempo O( m 2 n ) en una red de n vértices y m aristas, lo que lo hace poco práctico para redes de más de unos pocos miles de nodos. [14]
A pesar de sus conocidas desventajas, uno de los métodos más utilizados para la detección de comunidades es la maximización de la modularidad. [14] La modularidad es una función de beneficio que mide la calidad de una división particular de una red en comunidades. El método de maximización de la modularidad detecta comunidades buscando en las posibles divisiones de una red una o más que tengan una modularidad particularmente alta. Dado que la búsqueda exhaustiva en todas las divisiones posibles suele ser intratable, los algoritmos prácticos se basan en métodos de optimización aproximada, como algoritmos voraces, recocido simulado u optimización espectral, con diferentes enfoques que ofrecen diferentes equilibrios entre velocidad y precisión. [15] [16] Un enfoque popular de maximización de la modularidad es el método de Louvain , que optimiza iterativamente las comunidades locales hasta que la modularidad global ya no se puede mejorar dadas las perturbaciones en el estado actual de la comunidad. [17] [18] Un algoritmo que utiliza el esquema RenEEL, que es un ejemplo del paradigma de aprendizaje de conjuntos extremos (EEL), es actualmente el mejor algoritmo de maximización de la modularidad. [19] [20]
La utilidad de la optimización de la modularidad es cuestionable, ya que se ha demostrado que la optimización de la modularidad a menudo no detecta grupos más pequeños que cierta escala, dependiendo del tamaño de la red ( límite de resolución [21] ); por otro lado, el panorama de los valores de modularidad se caracteriza por una enorme degeneración de particiones con alta modularidad, cercanas al máximo absoluto, que pueden ser muy diferentes entre sí. [22]
Los métodos basados en la inferencia estadística intentan ajustar un modelo generativo a los datos de la red, que codifica la estructura de la comunidad. La ventaja general de este enfoque en comparación con las alternativas es su naturaleza más basada en principios y la capacidad de abordar inherentemente cuestiones de significación estadística . La mayoría de los métodos en la literatura se basan en el modelo de bloque estocástico [23] así como en variantes que incluyen membresía mixta, [24] [25] corrección de grado, [26] y estructuras jerárquicas. [27] La selección del modelo se puede realizar utilizando enfoques basados en principios como la longitud mínima de descripción [28] [29] (o equivalentemente, la selección del modelo bayesiano [30] ) y la prueba de razón de verosimilitud . [31] Actualmente existen muchos algoritmos para realizar una inferencia eficiente de modelos de bloques estocásticos, incluida la propagación de creencias [32] [33] y el Monte Carlo aglomerativo . [34]
A diferencia de los enfoques que intentan agrupar una red dada una función objetivo, esta clase de métodos se basa en modelos generativos, que no solo sirven como una descripción de la estructura a gran escala de la red, sino que también se pueden utilizar para generalizar los datos y predecir la aparición de enlaces faltantes o espurios en la red. [35] [36]
Los cliques son subgrafos en los que cada nodo está conectado a todos los demás nodos del clique. Como los nodos no pueden estar más estrechamente conectados que esto, no es sorprendente que existan muchos enfoques para la detección de comunidades en redes basados en la detección de cliques en un grafo y el análisis de cómo se superponen. Tenga en cuenta que, como un nodo puede ser miembro de más de un clique, un nodo puede ser miembro de más de una comunidad en estos métodos, lo que da una " estructura de comunidad superpuesta ".
Un enfoque consiste en encontrar los " cliques máximos ", es decir, encontrar los cliques que no son el subgrafo de ningún otro clique. El algoritmo clásico para encontrarlos es el algoritmo de Bron-Kerbosch . La superposición de estos puede utilizarse para definir comunidades de varias maneras. La más sencilla es considerar solo los cliques máximos mayores que un tamaño mínimo (número de nodos). La unión de estos cliques define entonces un subgrafo cuyos componentes (partes desconectadas) definen entonces comunidades. [37] Estos enfoques se suelen implementar en software de análisis de redes sociales como UCInet.
El enfoque alternativo es utilizar camarillas de tamaño fijo . La superposición de estas puede utilizarse para definir un tipo de hipergrafo -regular o una estructura que es una generalización del grafo lineal (el caso cuando ) conocido como un " grafo de camarilla ". [38] Los grafos de camarilla tienen vértices que representan las camarillas en el grafo original mientras que los bordes del grafo de camarilla registran la superposición de la camarilla en el grafo original. La aplicación de cualquiera de los métodos de detección de comunidad anteriores (que asignan cada nodo a una comunidad) al grafo de camarillas asigna entonces cada camarilla a una comunidad. Esto puede utilizarse entonces para determinar la pertenencia comunitaria de los nodos en las camarillas. Nuevamente, como un nodo puede estar en varias camarillas, puede ser miembro de varias comunidades. Por ejemplo, el método de percolación de camarillas [39] define las comunidades como cúmulos de percolación de -camarillas . Para ello, encuentra todas las -camarillas en una red, es decir, todos los subgrafos completos de -nodos. Luego, define dos -cliques como adyacentes si comparten nodos, es decir, esto se utiliza para definir bordes en un gráfico de cliques. Luego, una comunidad se define como la unión máxima de -cliques en la que podemos llegar a cualquier -clique desde cualquier otro -clique a través de una serie de adyacencias de -cliques. Es decir, las comunidades son solo los componentes conectados en el gráfico de cliques. Dado que un nodo puede pertenecer a varios clústeres de percolación de -cliques diferentes al mismo tiempo, las comunidades pueden superponerse entre sí.
Una red se puede representar o proyectar en un espacio latente mediante métodos de aprendizaje de representación para representar un sistema de manera eficiente. Luego, se pueden emplear varios métodos de agrupamiento para detectar estructuras de comunidad. Para espacios euclidianos, se pueden utilizar métodos como la detección de comunidad Silhouette basada en incrustaciones [40] . Para espacios latentes hipergeométricos, se pueden utilizar métodos de agrupamiento basados en densidad modificada, jerárquicos o basados en particiones. [41]
La evaluación de algoritmos para detectar cuáles son mejores para detectar la estructura de una comunidad es todavía una cuestión abierta. Debe basarse en análisis de redes de estructura conocida. Un ejemplo típico es la prueba de los "cuatro grupos", en la que una red se divide en cuatro grupos de igual tamaño (normalmente de 32 nodos cada uno) y se varían las probabilidades de conexión dentro y entre los grupos para crear estructuras más o menos desafiantes para el algoritmo de detección. Estos gráficos de referencia son un caso especial del modelo de partición l plantada [42] de Condon y Karp , o más generalmente de los " modelos de bloques estocásticos ", una clase general de modelos de redes aleatorias que contienen la estructura de la comunidad. Se han propuesto otros puntos de referencia más flexibles que permiten tamaños de grupo variables y distribuciones de grado no triviales, como el punto de referencia LFR [43] [44], que es una extensión del punto de referencia de los cuatro grupos que incluye distribuciones heterogéneas de grado de nodo y tamaño de la comunidad, lo que lo convierte en una prueba más severa de los métodos de detección de la comunidad. [45] [46]
Los benchmarks generados por ordenador que se utilizan habitualmente comienzan con una red de comunidades bien definidas. A continuación, esta estructura se degrada recableando o eliminando enlaces y se hace cada vez más difícil para los algoritmos detectar la partición original. Al final, la red llega a un punto en el que es esencialmente aleatoria. Este tipo de benchmark puede denominarse "abierto". El rendimiento de estos benchmarks se evalúa mediante medidas como la información mutua normalizada o la variación de la información . Comparan la solución obtenida por un algoritmo [44] con la estructura de la comunidad original, evaluando la similitud de ambas particiones.
En los últimos años, varios grupos han obtenido un resultado bastante sorprendente que muestra que existe una transición de fase en el problema de detección de comunidades, mostrando que a medida que la densidad de conexiones dentro de las comunidades y entre comunidades se vuelve cada vez más igual o ambas se vuelven más pequeñas (equivalentemente, a medida que la estructura de la comunidad se vuelve demasiado débil o la red se vuelve demasiado dispersa), de repente las comunidades se vuelven indetectables. En cierto sentido, las comunidades mismas todavía existen, ya que la presencia y ausencia de bordes todavía está correlacionada con las membresías comunitarias de sus puntos finales; pero se vuelve imposible, en teoría de la información, etiquetar los nodos mejor que el azar, o incluso distinguir el gráfico de uno generado por un modelo nulo como el modelo Erdos-Renyi sin estructura de comunidad. Esta transición es independiente del tipo de algoritmo que se utiliza para detectar comunidades, lo que implica que existe un límite fundamental en nuestra capacidad para detectar comunidades en redes, incluso con una inferencia bayesiana óptima (es decir, independientemente de nuestros recursos computacionales). [47] [48] [49]
Considere un modelo de bloques estocástico con nodos totales, grupos de igual tamaño y sean y las probabilidades de conexión dentro y entre los grupos respectivamente. Si , la red tendría estructura de comunidad ya que la densidad de enlaces dentro de los grupos sería mayor que la densidad de enlaces entre los grupos. En el caso disperso, y escala de manera que el grado promedio sea constante:
Entonces resulta imposible detectar las comunidades cuando: [48]