1.07k likes | 1.25k Views
Grafos aleatorios con grados prefijados. Dado lo fácil que es hacer cálculos con ER, se ha intentado generalizarlo. Idea : fijar a priori la distribución de grados.
E N D
Grafos aleatorios con grados prefijados Dado lo fácil que es hacer cálculos con ER, se ha intentado generalizarlo. Idea : fijar a priori la distribución de grados. Una forma de hacerlo es asociar a cada nodo su grado "deseado", y poner una arista entre dos nodos con probabilidad proporcional al producto de sus grados deseados. ¿Cómo se comportan los grafos aleatorios con una distribución p0, p1, ... (pi=1) prefijada de grados?
Grafos aleatorios con grados prefijados "A critical point for random graphs with a given degree sequence" Molloy & Reed, Random Structures and Algorithms 6, 161-179 (1995) Un grafo aleatorio que tenga pin nodos con grado i (con n grande, ), tendrá una componente gigante cuando O, si lo que tenemos es la secuencia k1, k2,... de grados de los nodos, entonces la condición es que
Grafos aleatorios con grados prefijados • Por debajo de ese umbral, hay muchas componentes conexas, de tamaños O(log n). • Para scale free de exponente : • La componente gigante aparece para < 3.4788. • El grafo es conexo para < 2. • [En la mayoría de las redes en que se ha medido , está entre 2 y 3; a veces bajo 2].
Grafos aleatorios con grados prefijados • Función generadora: • Dada una distribución de probabilidad discreta p0, p1, p2, ..., la función generadora es Gp(x)=pkxk. • Verifica, entre otras cosas, • Sirve para diversos trucos.
Grafos aleatorios con grados prefijados Un ejemplo de truco: Tomemos una arista al azar, y escojamos al azar uno de sus extremos. La probabilidad de que sea un nodo de grado k es proporcional a kpk [¿por qué?]. Consideremos entonces la variable aleatoria "grado del nodo alcanzado". Su función generadora es
Grafos aleatorios con grados prefijados Si dividimos por x, tenemos la función generadora de algo. ¿De qué? Pues de la variable aleatoria "grado del nodo al que llegué, menos 1". De modo que si llego a un nodo por una arista escogida al azar, la distribución de prob. de la cantidad de otras aristas que encuentro allí tiene función generadora También se usa f.g. para estudiar otras cosas (e.g., el tamaño de la comp. conexa en que se encuentra un nodo escogido al azar).
Grafos aleatorios con grados prefijados • Una aplicación de f.g. (de un artículo de S. Strogatz). • Considera los directorios de las 1000 primeras empresas listadas por Fortune. • Miramos el grafo bipartito, directorios/directores. • De ahí se puede sacar la distribución de la cantidad de directorios en los que alguien participa, y de la cantidad de gente en los directorios. • ¿Habrán “cábalas”, grupos de gente que acapara directorios?
Grafos aleatorios con grados prefijados "q", unimodal, cercana a normal, tal vez suma de normales "p", exponencial
Grafos aleatorios con grados prefijados Escogemos un director al azar y vemos la cantidad total de gente con la que se encuentra en reuniones (sumando todos los directorios en que participa). O sea, es el grado del director en el grafo de co-directores (inducido por la red bipartita). Sea r la distribución de esa variable.
Grafos aleatorios con grados prefijados Supongamos que la estructura es aleatoria : una red típica del conjunto de redes bipartitas con distribuciones p y q. En cond-mat/0007235, Newman, Strogatz y Watts derivan la función generadora de r como
Grafos aleatorios con grados prefijados Como se conocen p y q empíricos, se puede evaluar esa expresión. O mejor aún, se puede derivar k veces y evaluar en 0. Así se obtiene la probabilidad de que el director comparta reuniones con un total de k personas.
Grafos aleatorios con grados prefijados Coincide con lo observado. No es así en películas y papers, hay desviación. Ahí el nivel de clustering no viene sólo del grafo bipartito.
Grafos aleatorios con grados prefijados Otra opción: Construir un grafo conexo que tenga exactamente la secuencia de grados (d1,d2,...dm). Sin perder generalidad suponemos d1 d2 ... dm Es posible construir un grafo con esa secuencia si y sólo si la suma es par y además Es posible construirlo conexo ssi además se tiene
Grafos aleatorios con grados prefijados • Suponiendo entonces que se puede: • Asigno a los nodos su "grado pendiente" ei, inicialmente con valor di. • Mientras haya un nodo con valor ei>0 • Escojo el nodo k con ei mínimo. • Pongo ek aristas entre él y los k nodos de mayor ei. • Actualizo los ei. • Reviso y eventualmente fuerzo conexidad (intercambiando links entre componentes conexas).
Grafos aleatorios con grados prefijados Ese algoritmo (y otros igual de simples) no da un grafo escogido uniformemente entre todos los grafos con esa secuencia de grados. Para asegurar eso, hago durante "un rato" un paseo aleatorio, en que en cada paso intercambio los extremos de un par de aristas. Se usa este método para muestrear propiedades (por ejemplo, correlación entre grados de nodos vecinos, o distribución de distancias) en función sólo de la distribución de grados.
Modelos Una fracción mínima de los modelos existentes. [Albert, Barabási, Rev. Mod. Phys 2002]
Medidas de centralidad • Centralidad: ¿qué tan importante es un nodo? • En grafos dirigidos, se habla de "prestigio", y se desdobla en dos tipos de medidas: • Influencia (mira los arcos de salida) • Apoyo (mira los arcos de entrada)
Medidas de centralidad Hay varias formas de medir centralidad; cada una mide cosas distintas. Recordatorio de E.D.A.: centros y medidas de centralidad en teoría de grafos “clásica”. Sea u un nodo del GD G=(V,A). Definimos: Máximo que me tardo en llegar a u Promedio que tardo en ir de u a cualquier otro
Medidas de centralidad • Centro de G = nodo(s) de excentricidad mínima • Baricentro de G = nodo(s) de distancia promedio mínima • Nota: cuando aparecen distancias estas definiciones no son muy útiles. • Alternativas: • sólo usarlas para grafos conexos • calcularlas en la mayor componente conexa
b a d prom f c e 1,6 1,8 2 1,2 1,4 Baricentro 2,4 max 3 3 3 2 2 3 Centro Medidas de centralidad Floyd
Es una noción más local Medidas de centralidad En algunos grafos el grado de un nodo puede ser también un buen indicador de su centralidad o importancia.
Medidas de centralidad • Betweenness centrality • Contar todos los caminos más cortos entre i y j: C(i,j). • Ver cuántos pasan por k: Ck(i,j) • La "centralidad de intermediación" (o “intermediación” a secas) del nodo k es L. C. Freeman, Sociometry 40, 35 (1977)
Medidas de centralidad Betweenness centrality Se distribuye como ley de potencia en redes variadas (no en todas!)
Medidas de centralidad • Eigenvector centrality • (centralidad por vector propio) • Hacemos un paseo aleatorio por el grafo. • La centralidad de un nodo es la frecuencia con la que nos lo encontramos.
Matriz de adyacencia: caso dirigido 2 1 3 5 4 Medidas de centralidad Matriz de adyacencia: caso no dirigido 2 1 3 5 4
Medidas de centralidad Paseo aleatorio: en cada paso, avanzo de un nodo a otro. Escojo una arista o arco al azar de entre los disponibles. Eso me da un proceso de Markov, cuya matriz de transición es la matriz de adyacencia, normalizada. Si el grafo es (fuertemente) conexo, la frecuencia de las visitas converge a una distribución estacionaria.
v2 v1 v3 v5 v4 Medidas de centralidad La distribución estacionaria se obtiene como el vector propio por la izquierda asociado al valor propio 1: qP=q qt+11 = 1/3 qt4+ 1/2 qt5 qt+12 = 1/2 qt1 + qt3+ 1/3 qt4 qt+13= 1/2 qt1 + 1/3 qt4 qt+14 = 1/2 qt5 qt+15 = qt2
Medidas de centralidad ¿Qué pasa si caigo en un callejón sin salida? Salida fácil: salto a un nodo cualquiera, escogido al azar.
Medidas de centralidad ¿Y cómo garantizo irreducibilidad (es decir, conexidad fuerte)? Salida fácil: en cada paso, una probabilidad de escoger un nodo al azar (en lugar de irme por un arco).
Medidas de centralidad • Este algoritmo fue propuesto en 1998 para medir la importancia de páginas web (nodos=páginas, arcos=links). • Autores: Sergey Brin & Lawrence Page. Lo llamaron “PageRank”, y fue una idea tan grande, que pudieron construir un imperio encima. The Anatomy of a Large-Scale Hypertextual Web Search Engine Brin, S., Page, L. (Computer Networks and ISDN Systems, 1998) Abstract: In this paper, ... The Anatomy of a Large-Scale Hypertextual Web Search Engine Brin, S., Page, L. (Computer Networks and ISDN Systems, 1998) Abstract: In this paper, we present Google, a prototype of a large-scale search engine which makes heavy use of the structure present in hypertext. Google is designed to crawl and index the Web efficiently and produce much more satisfying search results than existing systems. The prototype with a full text and hyperlink database of at least 24 million pages is available at http://google.stanford.edu/ [sigue] [Luego ha evolucionado, pero PageRank sigue siendo la base.]
Medidas de centralidad • Otra aproximación, también en el contexto de la Web: HITS (Hypertext-induced text selection). • Desarrollado por J. Kleinberg, 1998. • Distingue entre las puntas de las flechas: un hub apunta hacia muchas partes; una autoridad es apuntada desde muchas partes. • Cada nodo tiene algún nivel de autoridad y de "hubness". autoridades hubs
Las autoridades recolectan de los hubs: Medidas de centralidad • La idea es que buenas autoridades son apuntadas por buenos hubs, y viceversa. • ¿Cómo encontrarlos? • Iterando: • Inicializo pesos en 1 • Los hubs recolectan peso de las autoridades que apuntan: • Itero hasta converger.
Medidas de centralidad En términos vectoriales: at = ATht-1y ht = Aat-1 De modo que at = ATAat-2y ht = AATht-2 ...y nuevamente es problema de vectores propios! O mejor dicho, de descomposición en valores singulares de la matriz A. Donde σ1≥ σ2≥ … ≥σrson los valores singulares (raíz cuadrada de valores propios de ATA y AAT), y los u y v son los vectores singulares por la izquierda y derecha, respectivamente.
σ2 v2 v1 σ1 Medidas de centralidad Los vectores singulares detectan las principales tendencias lineales en filas y columnas de la matriz A. HITS encuentra la principal tendencia lineal. • Sirve también (colateralmente) para identificar comunidades y aclarar ambigüedades. • Ejemplo: una búsqueda por "jaguar" dejó en el primer vector las páginas sobre el animal, en un extremo del segundo las páginas sobre el club de fútbol, y en un extremo del tercero las páginas sobre el auto.
Comunidades En casi todos los ámbitos de análisis de redes complejas resulta útil detectar las comunidades : conjuntos de nodos bien conectados al interior de cada grupo, pero poco conectados entre un grupo y otro. Sitios web sobre un tema, grupos de amigos, módulos funcionales de una red genética, etc, etc.
métrica o Comunidades Hasta cierto punto se parece al viejo problema de machine learning, clustering. En los algoritmos de clustering por lo general tenemos una nube de puntos en un espacio n-dimensional, y queremos dividir en sus clases “naturales”. espacio vectorial n-dimensional
Comunidades • Pero aquí: • Es clustering de nodos en una red. • Distancia dada por la red. • La topología puede ser importante para los algoritmos (algunos funcionarán mejor en algunas clases de redes).
Comunidades • Los problemas de particionamiento en grafos son casi todos (salvo los triviales) NP-duros. Ergo, heurísticas. • Métodos más populares: • Espectrales (miran los valores y vectores propios del laplaciano del grafo) • Divisivos (cortan aristas según algo, para ir creando componentes conexas) • Aglomerativos (al revés, parten sin aristas y las van agregando).
Pero si hay nodos con grado bajo (o grupos pequeños con esa propiedad), es trivial. Así que normalizamos, dividiendo por el tamaño de la menor componente conexa resultante. Comunidades: método espectral Queremos encontrar un conjunto de aristas pequeño, que al quitarlas desconecte el grafo (problema de min-cut).
Comunidades: método espectral Coeficiente de expansión del grafo G=(V,E): donde E(A,B) es el conjunto de aristas que tienen un extremo en A y el otro en B. Es posible aproximar mediante valores propios del laplaciano de G.
Comunidades: método espectral Laplaciano de un grafo: L = D-A donde D es la matriz diagonal formada por los grados de los nodos (dii=grado del nodo i, dij=0 para ij), y A es la matriz de adyacencia. De modo que L es simétrica (estamos suponiendo G no dirigido) y semi definida positiva los valores propios son 0.
Comunidades: método espectral Anotamos con 1 2... los valores propios de L. Siempre se tiene 1 = 0, con vector propio w1=(1,1,...,1). A 2 se le llama "valor de Fielder" y verifica (esto es genérico para matrices simétricas, uno va obteniendo los valores propios sucesivos minimizando la forma cuadrático sobre el subespacio ortogonal al de los valores propios ya encontrados).
Notemos que aquí xw1 significa que Con un poco de manipulación es posible ver que Comunidades: método espectral así que definimos el vector de Fielder como el vector propio asociado a 2; es el que da el mínimo en
Comunidades: método espectral La gracia es que al minimizar este vector tratará de dar valores similares a nodos vecinos, y distintos a nodos no conectados. Se ve obligado a distinguir las comunidades! Se verifica además que 2 da una buena aproximación de la expansión del grafo:
Ejemplo 3 1 4 2 5 Comunidades: método espectral
G A F B E C D Comunidades: método espectral Otro ejemplo:
Comunidades: método espectral • Teniendo el vector, es cosa de elegir dónde cortar. • Cortar en la mediana de los valores . • Elegir el corte que más se acerque a . • Cortar donde esté el mayor gap en los valores. • Cortar en 0. • Etc • También podríamos cortar en más de un punto, para tener más de dos subgrafos, o iterar el algoritmo sobre los subgrafos para hacer cortes sucesivos.
Comunidades: método espectral Existe una gran variedad de métodos espectrales, todos siguiendo una idea similar. El anterior demostrablemente funciona bien en muchas clases de grafos, pero en otras clases funciona demostrablemente mal. Otra aproximación popular optimiza "conductancia", similar a la expansión pero dividiendo por la mínima suma de grados de los trozos, en lugar de su cardinal. También se aproxima vía valor propio, pero de D-1A.
Comunidades: método espectral Referencias sobre métodos espectrales de particionamiento de grafos: ver Kannan, Vempala and Vetta, 2004, J. ACM 51, 3: 497–515. "On clusterings: Good, bad and spectral" http://www.cc.gatech.edu/~vempala/papers/jacm-spectral.pdf Y también Donetti & Muñoz, "Improved spectral algorithm for the detection of network communities" http://ergodic.ugr.es/mamunoz/papers/PROC_AIP_Communit.pdf