Una red neuronal de grafos tiene exactamente un único cometido que importa: coger un nodo, mirar a sus vecinos y exprimirlos hasta obtener una mejor descripción del nodo. Un banco se define en parte por a quién presta; una cartera (wallet) se define en parte por con quién transacciona; un proveedor se define en parte por a quién envía. Todo el campo no es más que una larga discusión sobre cómo hacer ese exprimido.
Esa discusión produjo un linaje. La GCN promedia vecinos con una receta fija. GraphSAGE muestrea un puñado de ellos y aprende la receta, crucialmente sin necesitar todo el grafo de antemano. La GAT deja que el nodo decida qué vecinos merecen más de su atención. Las GNN temporales admiten la verdad incómoda de que en finanzas el grafo en sí es un objetivo en movimiento: la red de préstamos de ayer no es la de hoy.
Esta lección recorre ese linaje en orden. Cada arquitectura es una respuesta distinta a la misma pregunta, y las diferencias son exactamente las cosas que deciden si vuestro modelo sobrevive al contacto con una red financiera real, creciente y no estacionaria.
Por qué existe un linaje siquiera
Antes de leer — arriésgate a adivinar
Cada capa de una red neuronal de grafos tiene que hacer dos cosas para actualizar un nodo: combinar información de sus vecinos y plegar el estado previo del propio nodo. ¿Cuál es el único eje de diseño que más separa a GCN, GraphSAGE y GAT?
Analogía. Imaginad un nodo como una persona que decide qué pensar tras hablar con sus contactos. La GCN es la persona que da a todo el mundo un voto igual y prefijado (con un ajuste cortés según lo popular que sea cada contacto). GraphSAGE es la persona que no puede hablar con todos sus contactos, así que sondea una muestra aleatoria y aprende cómo sopesar los rumores. La GAT es la persona que escucha más atentamente a los contactos que de verdad importan y desconecta del ruido. La misma sala, tres temperamentos.
Definición. Una capa GNN actualiza el vector oculto de cada nodo a partir de los vectores de la capa anterior usando dos operaciones: un agregado sobre el vecindario , y un combinado con el vector previo del propio nodo . Apilar de tales capas deja que la información fluya saltos: tras la capa , el embedding del nodo ha sido tocado por todo lo que está a pasos en el grafo. Genéricamente,
Toda arquitectura de esta lección es una elección específica de AGG y COMBINE — y una postura específica sobre si el grafo es fijo, creciente, ponderado o móvil. Aquí está todo el linaje sobre un único eje antes de profundizar:
| Arquitectura | La idea en una línea |
|---|---|
| GCN | Promediar vecinos con una receta fija normalizada por grado |
| GraphSAGE | Muestrear unos pocos vecinos, aprender el agregador, concatenar con uno mismo |
| GAT | Aprender pesos de atención para que los vecinos importantes cuenten más |
| GNN temporal | Ejecutar una GNN por porción temporal y modelar cómo cambia el grafo |
Dos saltos suelen bastar
Cada capa es un salto de paso de mensajes, así que capas alcanzan saltos. Por tentador que sea apilar diez capas, en redes financieras 2–3 saltos suelen capturar el contagio relevante (vuestras contrapartes, y las contrapartes de estas) antes de que se instale el sobresuavizado (over-smoothing) — el fallo en el que el embedding de cada nodo se difumina en la misma papilla. Más sobre esa trampa según avancemos.
GCN — promediado fijo normalizado por grado
Antes de leer — arriésgate a adivinar
Una GCN agrega los vecinos de un nodo usando un peso fijo por arista. ¿De qué depende ese peso?
Analogía. La GCN es una asamblea vecinal con una regla estricta y preimpresa sobre quién habla y con qué volumen: todo el mundo tiene su turno, pero la regla baja discretamente el volumen de los charlatanes que conocen a todo el mundo (nodos de alto grado) para que no dominen. Nadie eligió la regla para la reunión de esta noche — fue la misma regla la semana pasada y lo será la siguiente.
Definición. La capa Graph Convolutional Network aplica una transformación lineal compartida a cada nodo, luego agrega sobre el vecindario incluido el propio nodo (el lazo o self-loop), cada término ponderado por una normalización simétrica fija por grado, y después pasa la suma por una no linealidad :
El factor es el corazón del asunto. No se aprende — se lee directamente de la estructura del grafo. Reduce el peso de las aristas que tocan nodos de alto grado para que la avalancha de conexiones de un hub no ahogue el único enlace significativo de un nodo hoja. (Para el término del lazo el grado incluye la self-arista añadida, pero mantenemos la aritmética sencilla más abajo.)
Ejemplo resuelto. Sea el nodo un banco pequeño con dos vecinos, y , y un lazo. Supongamos (tras añadir los lazos) que los grados son , , . Tomemos una característica unidimensional para que la aritmética sea visible, con y la identidad, y valores de la capa anterior , , . Los tres pesos de arista son:
| Término | Peso | Valor | Contribución |
|---|---|---|---|
| propio () | 10 | 3,333 | |
| vecino | 4 | 1,333 | |
| vecino (hub) | 1 | 0,167 |
Suma: . Así que . Fijaos en que el vecino de alto grado obtuvo el peso más pequeño (0,167 frente a 0,333) puramente porque es un hub — la normalización por grado lo hizo automáticamente, antes de cualquier aprendizaje. El estado propio del banco (3,333) sigue dominando, pero sus dos vecinos tiraron del nuevo valor hacia los suyos.
La GCN es transductiva — los nodos nuevos son un problema
La normalización fija se calcula a partir de la estructura de grados de todo el grafo, y el entrenamiento clásico de GCN asume que el grafo entero está presente en tiempo de entrenamiento. Añadid un banco nuevecito mañana y habréis cambiado los grados, la normalización y, podría decirse, toda la matriz de adyacencia. No hay forma limpia de embeber un nodo que el modelo nunca vio sin recalcular sobre el grafo aumentado. En finanzas, donde aparecen entidades nuevas constantemente, esta suposición transductiva es un techo genuino.
Cuándo usarla
Recurrid a la GCN cuando el grafo sea fijo y plenamente conocido en tiempo de entrenamiento, razonablemente homogéneo, y queráis una base de referencia fuerte, barata y bien entendida — clasificación de nodos sobre una instantánea de red interbancaria estática, pongamos, donde toda institución ya está en el grafo. Es el equivalente a la regresión lineal entre las GNN: aquello que deberíais batir antes de complicaros la vida. Si van a seguir llegando nodos, la naturaleza transductiva de la GCN es la señal para bajar por el linaje.
Rellenad qué hace fija la agregación de la GCN.
Pick the right option for each blank, then check.
La GCN pondera cada vecino por , una normalización leída directamente del grafo en vez de aprendida.
GraphSAGE — muestrear, agregar, generalizar
Antes de leer — arriésgate a adivinar
GraphSAGE se diseñó para arreglar la mayor limitación práctica de la GCN. ¿Cuál?
Analogía. Un analista nuevo se incorpora a una firma con 50.000 relaciones de clientes. No puede leer todos los expedientes, así que aprende un hábito reutilizable: “muestrea una docena de relaciones, resúmelas y grapa ese resumen a lo que ya sé del cliente”. Ese hábito funciona con el cliente #50.001 — al que nunca ha conocido — porque aprendió el procedimiento, no una respuesta memorizada para cada cliente existente. Eso es GraphSAGE: SAmple and aggreGatE (muestrear y agregar).
Definición. Una capa GraphSAGE (1) muestrea un conjunto de tamaño fijo de vecinos de , (2) agrega sus vectores previos con un agregador aprendible (media, pooling o incluso una LSTM), y (3) concatena el resultado con el vector previo del propio nodo antes de proyectar mediante y una no linealidad:
donde es el subconjunto muestreado de vecinos. Los dos movimientos de diseño que importan: concatenar (uno mismo y los vecinos se mantienen como mitades distintas, no se mezclan en un único promedio como en la GCN), y muestrear (un fan-out fijo mantiene acotado el coste incluso para un hub con un millón de aristas). Como la capa aprende una función en vez de un embedding por nodo, los mismos pesos entrenados embeben nodos que no existían en tiempo de entrenamiento. Esta es la propiedad llamada aprendizaje inductivo.
Ejemplo resuelto (agregador media). El nodo tiene característica y cuatro vecinos con valores . Muestreamos dos de ellos — digamos que extraemos . El agregado media es . Concatenamos con uno mismo: la entrada de la capa es el par . Con una proyección minúscula (de modo que promedia las dos mitades) y identidad:
Ahora supongamos que el siguiente paso de entrenamiento muestrea un par distinto, : el agregado es , y . Mismo nodo, mismos pesos, respuesta distinta — porque la muestra cambió.
El muestreo es aproximación — cuidado con la varianza
Esa oscilación de dos valores (6,25 frente a 5,75) por remuestrear es la trampa. El muestreo de vecinos hace a GraphSAGE escalable, pero inyecta varianza: el embedding de un nodo depende ahora de qué vecinos resultaron extraídos. Un fan-out demasiado pequeño y la estimación del agregado “verdadero” del vecindario completo es ruidosa; demasiado grande y perdéis la escalabilidad que motivó el muestreo. Es el clásico mando sesgo–varianza, con sombrero de grafo — y en las finanzas de baja señal (recordad la disciplina de muestra pequeña de Aprendizaje profundo para datos de mercado), la varianza extra nunca sale gratis.
Cuándo usarla
GraphSAGE es la opción por defecto realista en finanzas, porque los grafos financieros crecen: nuevos bancos se constituyen, aparecen nuevas carteras, nuevos proveedores entran en la red cada día, y hace falta puntuarlos sin reentrenar el mundo. Usadla cuando el conjunto de nodos sea abierto, cuando los hubs sean demasiado grandes para agregarse por completo, o cuando entrenéis en un periodo y debáis desplegar sobre grafos posteriores y mayores. Si vuestro grafo es genuinamente fijo y pequeño, la exactitud de la GCN puede ganar al ruido de muestreo de SAGE — pero eso es la excepción en finanzas, no la regla.
Clasificad cada propiedad bajo la arquitectura que mejor la describe.
Place each item in the right group.
- Concatena uno mismo con el agregado de los vecinos
- Necesita todo el grafo en tiempo de entrenamiento (transductiva)
- Uno mismo y los vecinos mezclados en una única suma normalizada
- Promediado fijo normalizado por grado
- Muestrea un conjunto de vecinos de tamaño fijo
- Embebe nodos no vistos durante el entrenamiento (inductiva)
GAT — aprender qué vecinos importan
Antes de leer — arriésgate a adivinar
Una Graph Attention Network mejora la ponderación uniforme o solo por grado haciendo qué?
Analogía. La GCN da a todo el mundo un voto ajustado por grado pero por lo demás igual. La GAT contrata un equipo que lee la sala y decide, por conversación, la opinión de quién ponderar: a la contraparte que os expone a $2.000 millones se la escucha con atención; la cuenta molesta de $10.000 recibe un asentimiento cortés. Crucialmente, el equipo aprendió cómo asignar esa atención de datos pasados — no se le dijo “tamaño igual importancia”, descubrió qué aspecto tiene la importancia.
Definición. Una capa Graph Attention Network calcula, para cada arista , un coeficiente de atención aprendido y normalizado, y luego agrega los vecinos como una suma ponderada por atención. Los coeficientes provienen de un softmax sobre puntuaciones aprendidas :
La puntuación cruda la produce una pequeña función aprendible de los dos vectores transformados de los extremos y (en la GAT original, una red prealimentada de una sola capa sobre su concatenación, con una LeakyReLU). El softmax garantiza que los pesos sobre el vecindario de un nodo son no negativos y suman uno. La atención multicabeza ejecuta varios mecanismos de atención independientes en paralelo y concatena (o promedia) sus salidas, lo que estabiliza el entrenamiento igual que varios analistas se contrastan entre sí.
Ejemplo resuelto (softmax sobre 3 vecinos). El nodo tiene tres vecinos con puntuaciones crudas aprendidas y valores por vecino . Exponenciamos: , , . Su suma es . Los pesos de atención son:
| Vecino | Puntuación cruda | Valor | Ponderado | ||
|---|---|---|---|---|---|
| 1 | 2,0 | 7,389 | 10 | 6,65 | |
| 2 | 1,0 | 2,718 | 4 | 0,98 | |
| 3 | 0,0 | 1,000 | 1 | 0,09 |
Los pesos suman , como debe hacer un softmax. El agregado ponderado por atención (tomando , identidad) es — dominado por el vecino 1, cuya mayor puntuación aprendida le valió dos tercios de la atención. Contrastad una media simple, : la ponderación aprendida de la GAT tiró del resultado con fuerza hacia el vecino que el modelo decidió que era importante.
La atención es la misma idea que ya conocéis del eje temporal — asignar pesos a otros y sumar en consecuencia. El mapa de calor de abajo muestra atención distribuida sobre el tiempo; una GAT hace exactamente el mismo truco sobre los vecinos de un nodo: un peso aprendido por relación, pasado por softmax para sumar uno, con los enlaces de alto peso dominando el agregado.
Un softmax convierte puntuaciones aprendidas en pesos que suman uno. Leed cada fila de consulta como un nodo y cada columna de clave como uno de sus vecinos: las celdas brillantes son las relaciones en las que el modelo se apoya. La atención más nítida se concentra en unas pocas; la atención difusa la reparte, como una media basada solo en el grado.
La atención no es interpretabilidad gratis
Es tentador leer los pesos como una explicación — “el modelo prestó un 66% de atención a su mayor acreedor, así que por eso”. Resistid. La atención alta es correlación con el objetivo del modelo, no un relato causal, y patrones de atención distintos pueden dar predicciones casi idénticas. La GAT además acarrea más parámetros que la GCN o SAGE y es correspondientemente ávida de datos — exactamente el apetito equivocado en un régimen financiero de baja señal y tamaño de muestra efectiva pequeño. La disciplina de Aprendizaje profundo para datos de mercado aplica en pleno: demostrad que la capacidad extra se gana su sustento en un test purgado y reservado (held-out) antes de creeros el mapa de atención.
Cuándo usarla
Usad la GAT cuando los vecinos sean genuinamente desiguales en importancia y esa importancia sea aprendible — grafos de riesgo de crédito donde una única contraparte dominante impulsa el contagio, redes de transacciones heterogéneas, anillos de fraude donde unas pocas aristas portan la señal. Brilla cuando la normalización por grado (GCN) o el muestreo uniforme (SAGE) tratan erróneamente una arista crítica como cualquier otra. Saltáosla cuando vuestro tamaño de muestra efectiva sea minúsculo, el grafo sea casi homogéneo, o un modelo más barato ya supere el listón — los parámetros extra son un impuesto que pagáis en datos que quizá no tengáis.
¿Por qué usa la GAT un softmax sobre los vecinos en vez de usar las puntuaciones crudas como pesos?
Respuesta. El softmax hace dos trabajos a la vez. Primero, fuerza a que los pesos sean no negativos y sumen uno dentro de cada vecindario, de modo que el agregado es un promedio ponderado en regla que no explota para nodos de alto grado — un nodo con 500 vecinos y uno con 3 se resumen ambos en la misma escala. Segundo, hace que la puntuación sea relativa: lo que importa es cómo la puntuación de un vecino se compara con la de sus hermanos, no su valor absoluto, de modo que el modelo puede expresar “este vecino es el importante aquí” con independencia de la magnitud global. Las puntuaciones crudas y sin normalizar dejarían que un nodo muy activo dominara el paisaje de la pérdida y no darían pesos comparables y acotados entre vecindarios de tamaños distintos.
GNN temporales / dinámicas — cuando el grafo se mueve
Antes de leer — arriésgate a adivinar
GCN, GraphSAGE y GAT asumen todas un único grafo. ¿Por qué es peligrosa esa suposición para una red financiera real?
Analogía. Una GNN estática sobre una red financiera es una única foto de larga exposición de un cruce concurrido: cada coche que pasó alguna vez queda emborronado en un único difuminado fantasmal, y no podéis distinguir la hora punta de las 3 de la madrugada. Una GNN temporal es un vídeo — una secuencia de fotogramas nítidos — de modo que podéis ver cómo la red de préstamos se tensa antes de una crisis y se afloja después, en vez de promediar el pánico y la calma en un único gris sin sentido.
Definición. Las GNN temporales (dinámicas) modelan un grafo que cambia con el tiempo. Hay dos grandes familias:
- Basadas en instantáneas (tiempo discreto). Trocead el tiempo en ventanas, construid un grafo por ventana, embeded cada uno con una GNN, y luego ejecutad un modelo de secuencia a través de las instantáneas — una GRU, LSTM, o atención temporal. Esquemáticamente, un embedding por porción alimenta una recurrencia:
- Tiempo continuo (basadas en eventos). Saltaos las instantáneas e ingerid eventos con marca temporal directamente — cada arista nueva (un préstamo a las 14:32, una transferencia a las 14:33) actualiza los embeddings de los nodos que toca según llega. Esto preserva el momento exacto y el espaciado irregular que las instantáneas fijas desechan.
Este es el matrimonio deliberado de dos ejes que habéis estado construyendo todo este tiempo: el eje relacional (una GNN, que resume quién está conectado con quién) y el eje temporal (una RNN o atención, que resume cómo evolucionan las cosas), la misma maquinaria temporal de Aprendizaje profundo para datos de mercado, ahora apilada encima del paso de mensajes.
Ejemplo ilustrativo — una secuencia de préstamos de 5 días. Seguid a los vecinos de endeudamiento interbancario de un banco a lo largo de una semana. Cada día es una instantánea ; la embebemos (digamos con GraphSAGE) en un vector por día , y luego una GRU lleva el estado hacia delante:
| Día | Aristas de préstamo activas | Embedding de instantánea (de juguete) | Lo que la GRU debería notar |
|---|---|---|---|
| Lun | 12 | 0,20 | base en calma |
| Mar | 11 | 0,22 | sin cambios |
| Mié | 7 | 0,41 | aristas cayendo — financiación tensándose |
| Jue | 4 | 0,68 | contracción aguda |
| Vie | 3 | 0,79 | estrés acumulándose |
Una GNN estática sobre el grafo promediado en el tiempo reportaría algo como ”≈ 7,4 aristas de media, embedding ≈ 0,46” — un único número que oculta por completo el colapso de lunes a viernes de 12 aristas a 3. El modelo temporal ve la trayectoria (0,20 → 0,22 → 0,41 → 0,68 → 0,79) y puede señalar la retirada acelerada de financiación como una tendencia, que es precisamente la señal que a una mesa de riesgos le importa.
Promediar en el tiempo mezcla regímenes en silencio (y filtra)
Aplastar una red dinámica en un único grafo estático o promediado en el tiempo no solo pierde la tendencia — puede fabricar aristas que nunca coexistieron (una contraparte de enero y una de junio, unidas en un grafo como si fueran simultáneas) y mezcla en silencio regímenes incompatibles. Peor aún, si construís ese grafo promediado usando instantáneas futuras para embeber un nodo del pasado, habéis filtrado el futuro hacia el pasado. Mantener el tiempo explícito — instantáneas en orden, sin atisbar hacia delante — es la misma disciplina de sesgo de anticipación (look-ahead) que la siguiente lección sobre fuga temporal hace su tema entero.
Cuándo usarlas
Usad una GNN temporal siempre que la topología de la red en sí evolucione y esa evolución porte señal — propagación de estrés de financiación, disrupción de la cadena de suministro extendiéndose enlace a enlace, anillos de fraude que se ensamblan y disuelven, grafos de correlación que cambian de régimen. Elegid instantánea + modelo de secuencia cuando los eventos se agrupen de forma natural en periodos (posiciones diarias, exposiciones semanales) y queráis simplicidad; elegid tiempo continuo cuando el momento exacto y el espaciado irregular de eventos importen (flujos de liquidación de alta frecuencia, transferencias intradía). Si el grafo genuinamente no cambia a lo largo de vuestro horizonte, una GNN estática es más simple y está bien — pero en finanzas, “el grafo no cambia” es una hipótesis que comprobar, no asumir.
Rellenad la idea de dos ejes detrás de las GNN temporales.
Pick the right option for each blank, then check.
Una GNN temporal basada en instantáneas combina el eje , gestionado por una GNN por porción temporal, con el eje temporal, gestionado por un modelo de secuencia como una GRU a través de las porciones.
Todo el linaje en una tabla
Las cuatro arquitecturas puestas una al lado de otra — la comparación que conviene tener cuando elegís:
| Arquitectura | Regla de agregación | ¿Inductiva? | ¿Aprende pesos de vecinos? | Mejor uso en finanzas | Debilidad principal |
|---|---|---|---|---|---|
| GCN | Media fija normalizada por grado de uno mismo + vecinos, peso | No (transductiva) | No — los pesos son estructurales | Red estática y plenamente conocida como base fuerte y barata | No puede embeber nodos no vistos; necesita todo el grafo fijo |
| GraphSAGE | Muestrea un fan-out fijo, aprende AGG (media/pool/LSTM), CONCAT uno mismo con el agregado de vecinos | Sí | En parte — aprende el agregador, no los pesos por arista | Grafos crecientes: bancos/carteras nuevos puntuados sin reentrenar | Varianza de muestreo; el embedding depende de la extracción |
| GAT | Suma ponderada por atención; de un softmax sobre puntuaciones aprendidas; multicabeza | Sí | Sí — pesos por vecino aprendidos explícitos | Vecinos desiguales: acreedores dominantes, aristas de anillos de fraude | Ávida de datos (más parámetros); la atención no es interpretabilidad |
| GNN temporal | Una GNN por instantánea + un modelo de secuencia a través de instantáneas (o eventos con marca temporal) | Depende de la GNN base | Depende de la GNN base | Topología no estacionaria: contagio, enlaces de suministro evolucionando | Más piezas móviles; necesita un manejo del tiempo cuidadoso sin anticipación |
Pick a term, then click its definition.
Resumen
Habéis recorrido el linaje de una receta fija a un objetivo en movimiento. La GCN promedia vecinos con una regla normalizada por grado que nadie aprendió y todo el grafo debe estar presente — limpia, barata, transductiva. GraphSAGE muestrea un puñado de vecinos, aprende el agregador, concatena uno mismo con los vecinos, y se gana la propiedad que más importa en una red financiera creciente: es inductiva, embebiendo bancos y carteras que nunca vio en entrenamiento. La GAT deja que cada nodo aprenda, vía un softmax sobre puntuaciones, qué vecinos merecen su atención — potente donde un acreedor dominante de verdad importa, pero ávida de parámetros y no la explicación gratis que parece. Y las GNN temporales admiten que el propio grafo se mueve, casando el eje relacional con el temporal de modo que un colapso de financiación se lee como una trayectoria, no como una media emborronada.
Big picture
GCN, GraphSAGE, GAT y GNN temporales
- Linaje de arquitecturas GNN
- Eje de diseño
- AGREGAR vecinos
- COMBINAR con uno mismo
- K capas = K saltos
- GCN
- Media fija normalizada por grado
- Peso 1/sqrt(deg v · deg u)
- Transductiva — necesita todo el grafo
- GraphSAGE
- Muestrea fan-out fijo
- Aprende agregador, CONCAT uno mismo
- Inductiva — embebe nodos no vistos
- Varianza de muestreo
- GAT
- Atención aprendida alfa (softmax)
- Vecinos importantes pesan más
- Multicabeza; ávida de datos
- GNN temporal
- Instantánea + GRU/atención
- Eventos de tiempo continuo
- La topología es no estacionaria
- Sin anticipación a través del tiempo
- Eje de diseño
Repaso mixto: ¿se ha asentado el linaje?
Una GCN agrega un banco pequeño v (grado 3) con vecinos a (grado 3) y b (grado 12), más un lazo. ¿Por qué obtiene el vecino b menos peso que a?
Check your answer to continue.