La arquitectura SE(3)-Transformer (3D Roto-Translation Equivariant Attention Networks) es una red neuronal geométrica que combina mecanismos de autoatención con operaciones matemáticas diseñadas para respetar las rotaciones y traslaciones del espacio tridimensional.
Su principal innovación consiste en adaptar los mecanismos de atención utilizados por los Transformers tradicionales a datos geométricos, como nubes de puntos, grafos moleculares y sistemas de partículas, garantizando que sus representaciones se transformen de manera coherente cuando cambia la orientación espacial de los datos.
SE(3)-Transformer fue desarrollada por Fabian B. Fuchs, Daniel E. Worrall, Volker Fischer y Max Welling, investigadores vinculados a Bosch Center for Artificial Intelligence, la Universidad de Ámsterdam y otras instituciones.
El trabajo se presentó inicialmente en arXiv el 18 de junio de 2020 y fue publicado en NeurIPS 2020 (Conference on Neural Information Processing Systems) con el título SE(3)-Transformers: 3D Roto-Translation Equivariant Attention Networks.
La arquitectura combina tres ideas fundamentales:
- Self-Attention: mecanismos neuronales que seleccionan información relevante de los elementos vecinos.
- Tensor Field Networks (TFN): operaciones geométricas que utilizan representaciones matemáticas del grupo de rotaciones.
- Equivariancia SE(3): una propiedad que garantiza coherencia ante rotaciones y traslaciones tridimensionales.
A diferencia de una red neuronal de grafos convencional, SE(3)-Transformer puede trabajar con diferentes tipos de características geométricas.
Algunas son escalares, como distancias o atributos numéricos.
Otras son vectores, que cambian de orientación al rotar el objeto.
También puede incorporar representaciones de orden superior que obedecen reglas de transformación más complejas.
Para representar estas relaciones, la arquitectura utiliza armónicos esféricos (Spherical Harmonics), matrices de representación del grupo SO(3), funciones radiales aprendidas y mecanismos de atención equivariante.
Una característica importante es que los pesos de atención son invariantes ante rotaciones, mientras que las características transmitidas mediante el mecanismo de atención pueden transformarse equivariantemente.
Esto permite que cada nodo seleccione información de sus vecinos sin romper las simetrías geométricas.
Los investigadores evaluaron SE(3)-Transformer en tres categorías:
- Sistemas dinámicos de partículas (N-body simulations).
- Predicción de propiedades moleculares mediante QM9.
- Clasificación de nubes de puntos tridimensionales mediante ScanObjectNN.
Los resultados mostraron mejoras frente a los modelos de referencia seleccionados, incluidos sistemas de atención no equivariante y redes equivariantes sin atención.
Posteriormente, NVIDIA desarrolló una implementación optimizada que redujo considerablemente el tiempo de entrenamiento y los requisitos de memoria en determinadas configuraciones.
La arquitectura también influyó en el desarrollo de redes geométricas utilizadas en biología estructural y sistemas de modelado de proteínas.
En esta guía estudiaremos cómo funciona SE(3)-Transformer, qué es la equivariancia rotacional, cómo se utilizan los armónicos esféricos, qué representan los tensores de diferentes órdenes y por qué la combinación de atención y geometría resulta útil.
Incluiremos ejemplos educativos de Python, operaciones geométricas, demostraciones de equivariancia, una introducción a la implementación oficial, comparaciones con EGNN y GVP-GNN, aplicaciones, limitaciones y metadatos SEO para WordPress.
¿Qué es la arquitectura SE(3)-Transformer?
SE(3)-Transformer es una arquitectura neuronal para aprender sobre datos tridimensionales.
Puede recibir objetos representados mediante puntos o grafos geométricos.
Cada punto contiene una posición:
[
x_i=(x_i,y_i,z_i)
]
También puede incluir diferentes características.
Por ejemplo:
- Identidad de un átomo.
- Propiedades escalares.
- Vectores de dirección.
- Velocidades.
- Representaciones tensoriales geométricas.
La red intercambia información entre puntos mediante mecanismos de atención.
Sin embargo, las operaciones están construidas para conservar las propiedades del grupo SE(3).
Podemos expresar el principio fundamental como:
[
f(g\cdot X)=\rho(g)f(X)
]
Donde:
- (X) representa los datos de entrada.
- (g) es una transformación rígida.
- (\rho(g)) representa cómo debe transformarse la salida.
- (f) es la red neuronal.
La forma de (\rho(g)) depende del tipo de salida.
Para una propiedad escalar invariante, la salida no cambia.
Para un vector, la salida rota de manera correspondiente.
Para representaciones de orden superior, se utilizan matrices de transformación especializadas.
Origen y desarrollo de SE(3)-Transformer
Los Transformers originales fueron desarrollados principalmente para procesar secuencias.
Su mecanismo de autoatención permite relacionar diferentes posiciones de una entrada.
Posteriormente, estas ideas se extendieron a imágenes, grafos y conjuntos de puntos.
Sin embargo, aplicar atención convencional a geometría tridimensional introduce un desafío.
Las coordenadas cartesianas dependen del sistema de referencia.
Si rotamos un objeto, sus coordenadas cambian aunque el objeto conserve exactamente la misma forma.
Una red que procesa directamente esas coordenadas sin restricciones podría producir resultados diferentes para distintas orientaciones.
Los investigadores buscaban evitar este problema mediante una arquitectura que incorporara simetrías espaciales desde su diseño.
Las Tensor Field Networks, publicadas anteriormente, proporcionaban una base matemática para realizar transformaciones geométricas equivariantes.
SE(3)-Transformer incorporó además un mecanismo de atención dependiente del contenido.
La atención permite seleccionar qué vecinos deben contribuir más a cada actualización.
La combinación produjo una arquitectura capaz de aprender relaciones geométricas manteniendo equivariancia rotacional.
¿Qué significa SE(3)?
SE(3) significa Special Euclidean Group in Three Dimensions.
Es el grupo matemático de transformaciones rígidas tridimensionales que incluyen:
- Rotaciones propias.
- Traslaciones.
- Combinaciones de ambas.
Una transformación rígida se expresa como:
[
x’=Rx+t
]
Donde:
- (x\in\mathbb{R}^3) representa un punto.
- (R\in SO(3)) representa una rotación.
- (t\in\mathbb{R}^3) representa una traslación.
- (x’) representa el punto transformado.
Una matriz de rotación cumple:
[
R^\top R=I
]
y:
[
\det(R)=1
]
Estas condiciones garantizan que la transformación conserva distancias y orientación.
¿Qué diferencia existe entre SO(3), SE(3) y E(3)?
| Grupo | Rotaciones | Traslaciones | Reflexiones |
|---|---|---|---|
| SO(3) | Sí | No | No |
| SE(3) | Sí | Sí | No |
| E(3) | Sí | Sí | Sí |
Esta diferencia es importante.
SE(3)-Transformer está construida para garantizar equivariancia ante rotaciones propias y traslaciones.
No debe asumirse automáticamente que también es equivariante ante reflexiones.
EGNN, estudiada en la Entrada 134, utiliza una formulación E(n) que incluye reflexiones.
Esta distinción puede influir en la representación de propiedades relacionadas con quiralidad.
¿Qué es la equivariancia geométrica?
Una función es equivariante si transformar su entrada produce una transformación correspondiente de su salida.
Para una función que devuelve vectores:
[
f(RX)=Rf(X)
]
Si rotamos una nube de puntos, las salidas vectoriales de la red deben rotar también.
En cambio, si la salida representa una propiedad escalar, como una determinada magnitud molecular, puede necesitar ser invariante:
[
f(RX)=f(X)
]
La arquitectura combina ambos comportamientos.
Las características escalares permanecen invariantes.
Los vectores y tensores de diferentes tipos siguen reglas de transformación específicas.
¿Por qué es importante la equivariancia?
Supongamos que entrenamos una red para analizar estructuras moleculares.
Durante entrenamiento, una molécula aparece con determinada orientación.
Durante inferencia, la misma molécula puede estar rotada.
Una red convencional podría necesitar numerosos ejemplos rotados para aprender que el cambio de orientación no modifica sus propiedades internas.
Una red equivariante incorpora esa relación matemáticamente.
Esto puede mejorar la eficiencia estadística del aprendizaje.
También contribuye a que el comportamiento sea más consistente bajo transformaciones rígidas.
Sin embargo, la equivariancia no garantiza automáticamente precisión química o física.
Solamente garantiza una propiedad de transformación.
¿Qué son las representaciones tensoriales?
Una de las características principales de SE(3)-Transformer es que utiliza diferentes tipos de representaciones geométricas.
No todas las características se transforman de la misma manera al rotar el espacio.
Tipo 0: escalares
Los escalares permanecen invariantes ante rotaciones.
Por ejemplo:
[
s’=s
]
Tipo 1: vectores
Los vectores se transforman mediante una matriz de rotación:
[
v’=Rv
]
Tipo 2 y superiores
Las representaciones de orden superior siguen reglas de transformación asociadas con representaciones irreducibles de SO(3).
Pueden describir información angular más compleja.
La arquitectura organiza estas características mediante diferentes grados, también llamados degrees o types.
¿Qué significa grado (\ell)?
Las representaciones irreducibles de SO(3) se identifican mediante un número entero:
[
\ell=0,1,2,\ldots
]
Cada grado tiene:
[
2\ell+1
]
componentes.
| Grado | Componentes | Interpretación |
|---|---|---|
| (\ell=0) | 1 | Escalar |
| (\ell=1) | 3 | Representación vectorial |
| (\ell=2) | 5 | Representación de orden superior |
| (\ell=3) | 7 | Representación de orden superior |
Por ejemplo, una representación de grado 2 contiene cinco componentes.
No debe confundirse directamente con una matriz arbitraria de (3\times3) elementos.
Las representaciones irreducibles de SO(3) tienen reglas de transformación específicas y pueden relacionarse con determinadas estructuras tensoriales.
¿Qué son las matrices de Wigner-D?
Las matrices de Wigner-D describen cómo se transforman las representaciones de diferentes grados bajo rotaciones.
Para una característica de grado (\ell):
[
f’\ell=D^\ell(R)f\ell
]
Donde:
- (D^\ell(R)) representa la matriz de transformación.
- (R) es una rotación.
- (f_\ell) es una característica de grado (\ell).
La matriz tiene dimensiones:
[
(2\ell+1)\times(2\ell+1)
]
Para (\ell=0), la transformación es trivial.
Para (\ell=1), corresponde a una representación tridimensional equivalente a la rotación vectorial habitual, según la base utilizada.
Para grados superiores, las transformaciones son más complejas.
SE(3)-Transformer utiliza estas reglas para garantizar que las operaciones sobre características geométricas respeten la equivariancia.
¿Qué son los armónicos esféricos?
Los armónicos esféricos (Spherical Harmonics) son funciones matemáticas definidas sobre la superficie de una esfera.
Permiten representar dependencias angulares.
Se expresan habitualmente como:
[
Y_\ell^m(\theta,\phi)
]
Donde:
- (\ell) representa el grado.
- (m) representa una componente angular.
- (\theta) y (\phi) representan coordenadas angulares.
Para cada grado:
[
-\ell\leq m\leq\ell
]
Existen:
[
2\ell+1
]
funciones independientes.
Los armónicos esféricos aparecen en física, química cuántica, procesamiento de señales y aprendizaje geométrico.
En SE(3)-Transformer sirven para representar cómo depende una transformación neuronal de la dirección relativa entre dos puntos.
¿Por qué se utilizan armónicos esféricos?
Consideremos dos puntos tridimensionales:
[
x_i,\ x_j
]
Podemos calcular su desplazamiento:
[
r_{ij}=x_j-x_i
]
Ese desplazamiento contiene dos clases de información.
Magnitud:
[
|r_{ij}|
]
Dirección:
[
\hat r_{ij}=
\frac{r_{ij}}{|r_{ij}|}
]
La magnitud describe la distancia.
La dirección describe la orientación relativa.
Los armónicos esféricos permiten representar la dependencia angular de manera compatible con las rotaciones.
El modelo combina estas funciones con coeficientes radiales aprendidos.
Así obtiene transformaciones geométricas que respetan las simetrías de SO(3).
¿Qué son las funciones radiales?
Las funciones radiales dependen de la distancia entre dos puntos.
Podemos representarlas como:
[
\phi(r)
]
Donde (r) es una distancia.
En SE(3)-Transformer, las funciones radiales se parametrizan mediante redes neuronales.
Esto permite aprender cómo cambia una interacción en función de la separación espacial.
Por ejemplo, una relación puede ser importante a distancias cortas y menos relevante a distancias largas.
Sin embargo, el modelo no impone automáticamente una ley física concreta.
Aprende patrones a partir de los datos.
¿Cómo se combinan información radial y angular?
Conceptualmente, una transformación geométrica puede descomponerse en:
\sum_J
\phi_J(|r|)B_J(\hat r)
]
Donde:
- (\phi_J) representa un coeficiente radial aprendido.
- (B_J) representa una base angular construida utilizando armónicos esféricos y acoplamientos de representaciones.
- (J) identifica componentes de la base.
La expresión simplifica la construcción real de los kernels equivariantes.
Su importancia reside en separar distancia y dirección.
Las funciones radiales controlan cómo depende la interacción de la separación.
Las bases angulares garantizan que la operación se transforme correctamente bajo rotaciones.
¿Qué relación existe entre SE(3)-Transformer y Tensor Field Networks?
Tensor Field Networks (TFN) son redes neuronales diseñadas para procesar datos tridimensionales mediante filtros equivariantes.
Utilizan bases geométricas construidas a partir de armónicos esféricos y representaciones de SO(3).
SE(3)-Transformer aprovecha estas operaciones como base para calcular transformaciones de características.
Su innovación principal consiste en incorporar atención dependiente del contenido.
En una TFN convencional, los filtros geométricos se aplican mediante operaciones de convolución equivariante.
En SE(3)-Transformer, la contribución de cada vecino también puede modularse mediante un peso de atención aprendido.
Esto introduce una mayor flexibilidad para seleccionar información relevante.
Diferencia entre TFN y SE(3)-Transformer
| Característica | Tensor Field Network | SE(3)-Transformer |
|---|---|---|
| Equivariancia SE(3) | Sí | Sí |
| Armónicos esféricos | Sí | Sí |
| Representaciones de SO(3) | Sí | Sí |
| Convolución geométrica | Sí | Sí |
| Atención dependiente del contenido | No como mecanismo central | Sí |
| Pesos de vecinos adaptativos | Mediante filtros | Mediante filtros y atención |
| Aplicación | Datos geométricos | Datos geométricos y grafos con atención |
La arquitectura SE(3)-Transformer no elimina las operaciones TFN.
Las utiliza para construir proyecciones equivariantes y valores que pueden agregarse mediante atención.
¿Cómo funciona la atención equivariante?
Un mecanismo de atención convencional utiliza consultas, claves y valores.
En inglés:
- Query.
- Key.
- Value.
La atención se calcula a partir de la similitud entre consultas y claves.
En un Transformer clásico:
\operatorname{softmax}
\left(
\frac{QK^\top}{\sqrt{d}}
\right)V
]
Sin embargo, una aplicación directa a características tridimensionales puede romper la equivariancia.
SE(3)-Transformer modifica las transformaciones que producen consultas, claves y valores.
Estas transformaciones respetan las representaciones geométricas.
Paso 1. Construcción de consultas
Cada nodo produce una representación Query.
Las consultas pueden contener características de diferentes grados.
Las transformaciones utilizadas deben respetar las reglas de rotación correspondientes.
Paso 2. Construcción de claves
Los nodos vecinos producen representaciones Key.
Estas pueden incorporar información de posiciones relativas mediante kernels equivariantes.
Paso 3. Cálculo de puntuaciones
Las consultas y claves se combinan mediante productos internos compatibles con sus representaciones.
Las puntuaciones resultantes son escalares invariantes.
Esto significa que no cambian cuando rotamos globalmente la estructura.
Paso 4. Softmax
Las puntuaciones se convierten en pesos de atención.
\frac{
\exp(e_{ij})
}{
\sum_{k\in\mathcal N(i)}
\exp(e_{ik})
}
]
Donde (\mathcal N(i)) representa los vecinos del nodo (i).
Como (e_{ij}) es invariante, los pesos (\alpha_{ij}) también son invariantes.
Paso 5. Agregación de valores
El nodo combina los valores geométricos de sus vecinos:
[
f_i’=
\sum_{j\in\mathcal N(i)}
\alpha_{ij}v_{ij}
]
Donde los valores (v_{ij}) se transforman equivariantemente.
La multiplicación por pesos escalares invariantes conserva esa propiedad.
Esta es la idea central de la atención equivariante.
Los pesos de atención son invariantes y las características transmitidas son equivariantes.
¿Por qué el mecanismo es equivariante?
Supongamos que los valores se transforman mediante una representación (\rho(R)):
[
v’{ij}=\rho(R)v{ij}
]
Los pesos de atención permanecen iguales:
[
\alpha’{ij}=\alpha{ij}
]
Por tanto:
\sum_j
\alpha_{ij}\rho(R)v_{ij}
]
Podemos extraer la transformación:
\rho(R)
\sum_j\alpha_{ij}v_{ij}
]
Finalmente:
[
f_i’^{,rot}=\rho(R)f_i’
]
Esto demuestra la propiedad de equivariancia del mecanismo de agregación, siempre que las proyecciones y representaciones utilizadas también sean equivariantes.
¿Qué es Multi-Head Equivariant Attention?
SE(3)-Transformer también puede utilizar múltiples cabezas de atención.
Cada cabeza aprende diferentes patrones de selección de información.
Por ejemplo, una cabeza puede asignar mayor peso a vecinos próximos.
Otra puede aprender relaciones vinculadas con diferentes características de los nodos.
Sin embargo, todas deben respetar las reglas geométricas de transformación.
El uso de varias cabezas permite aprender diferentes relaciones sin abandonar la equivariancia.
La arquitectura original implementa estas operaciones mediante capas como GSE3Res.
¿Qué es GSE3Res?
GSE3Res es uno de los bloques principales de la implementación oficial.
Representa una capa de atención SE(3)-equivariante con conexión residual.
Recibe características organizadas por grados geométricos.
Después aplica transformaciones equivariantes y mecanismos de atención sobre los vecinos del grafo.
La conexión residual facilita el flujo de información y el entrenamiento.
¿Qué es GConvSE3?
GConvSE3 es una capa de convolución geométrica equivariante.
Utiliza kernels construidos a partir de representaciones geométricas.
A diferencia de GSE3Res, no necesita realizar atención como operación central.
Puede utilizarse para transformar características entre fibras geométricas.
¿Qué es GNormSE3?
GNormSE3 aplica normalización y no linealidades compatibles con las representaciones geométricas.
Las activaciones convencionales, como ReLU aplicada independientemente a las coordenadas de un vector, pueden romper la equivariancia.
Por ello, las activaciones de características geométricas deben diseñarse cuidadosamente.
Un procedimiento consiste en modificar la magnitud de una característica conservando su dirección.
¿Qué es Fiber?
En la implementación oficial, una Fiber describe qué tipos de representaciones geométricas utiliza una capa.
Por ejemplo, podemos definir canales de grado:
[
\ell=0,1,2
]
Cada grado puede tener una determinada multiplicidad.
La multiplicidad indica cuántos canales de ese tipo contiene la representación.
Por ejemplo:
- 16 canales escalares.
- 8 canales de grado 1.
- 4 canales de grado 2.
Las dimensiones reales son mayores porque cada canal de grado (\ell) tiene (2\ell+1) componentes.
Una fibra permite organizar estas representaciones de manera estructurada.
Ejemplo conceptual de Fiber
| Grado | Canales | Componentes por canal | Total |
|---|---|---|---|
| 0 | 16 | 1 | 16 |
| 1 | 8 | 3 | 24 |
| 2 | 4 | 5 | 20 |
| Total | 60 |
Esta representación contiene 60 componentes, pero no todas obedecen las mismas reglas de rotación.
Por ello, no es correcto tratar la fibra simplemente como un vector ordinario de 60 valores y aplicar cualquier transformación lineal.
Las operaciones deben respetar los grados geométricos.
¿Cómo funciona SE(3)-Transformer paso a paso?
Podemos dividir el procesamiento en nueve etapas.
Paso 1. Introducir una nube de puntos o grafo
Cada nodo tiene coordenadas tridimensionales y atributos.
Paso 2. Construir vecindarios
Se identifican conexiones entre puntos.
Paso 3. Calcular posiciones relativas
Para cada arista:
[
r_{ij}=x_j-x_i
]
Paso 4. Calcular información radial
Se obtiene la distancia:
[
d_{ij}=|r_{ij}|
]
Paso 5. Calcular la base angular
Se utilizan armónicos esféricos y bases equivariantes.
Paso 6. Generar consultas, claves y valores
Se aplican transformaciones compatibles con las representaciones SO(3).
Paso 7. Calcular atención
Las puntuaciones son invariantes.
Paso 8. Agregar información
Los valores equivariantes se combinan mediante pesos invariantes.
Paso 9. Producir la salida
Según la tarea, se generan características escalares, vectoriales o representaciones geométricas de orden superior.
Diagrama conceptual
NUBE DE PUNTOS / GRAFO 3D
|
v
Coordenadas xyz
|
v
Vecinos y aristas
|
v
Desplazamientos relativos
|
+----------+----------+
| |
v v
Distancias Direcciones
| |
v v
Funciones radiales Armónicos esféricos
| |
+----------+----------+
|
v
KERNELS EQUIVARIANTES
|
v
QUERY / KEY / VALUE
|
v
Atención escalar invariante
|
v
Agregación de valores
equivariantes
|
v
Capas residuales
|
v
Representación final
|
+----------+----------+
| |
v v
Salida invariante Salida equivariante
(clasificación) (vectores, etc.)
¿Qué experimentos realizaron los investigadores?
La publicación original incluyó tres grupos principales de evaluaciones.
1. N-body Particle Dynamics
Los investigadores estudiaron sistemas de partículas que interactúan.
El objetivo era aprender relaciones geométricas y producir predicciones consistentes bajo rotaciones.
2. QM9 Molecular Properties
Se utilizaron datos moleculares para evaluar la capacidad del modelo de aprender propiedades relacionadas con estructuras tridimensionales.
3. ScanObjectNN
Se evaluó la clasificación de objetos a partir de nubes de puntos tridimensionales.
Esta tarea resulta importante porque los objetos pueden aparecer con distintas orientaciones.
En los experimentos documentados, SE(3)-Transformer superó a los modelos de referencia comparados por los autores, incluidos una arquitectura equivariante sin atención y un sistema de atención no equivariante.
Sin embargo, estos resultados corresponden a los benchmarks y configuraciones de 2020.
No deben interpretarse como superioridad universal frente a arquitecturas desarrolladas posteriormente.
¿Qué es QM9?
QM9 es un dataset utilizado para predecir propiedades de moléculas pequeñas.
Incluye geometrías tridimensionales y diferentes propiedades calculadas mediante métodos de química cuántica.
Entre ellas se encuentran:
- Momento dipolar.
- Polarizabilidad.
- Energías orbitales.
- Capacidad calorífica.
- Energía interna.
- Otras propiedades fisicoquímicas.
La relación entre coordenadas y propiedades moleculares hace que QM9 sea útil para evaluar redes geométricas.
SE(3)-Transformer puede utilizar información estructural y atributos atómicos para aprender dichas relaciones.
Sin embargo, los resultados sobre moléculas pequeñas no se trasladan automáticamente a proteínas de miles de átomos.
¿Qué es ScanObjectNN?
ScanObjectNN es un benchmark de clasificación de objetos tridimensionales.
Utiliza nubes de puntos procedentes de objetos.
Estas nubes pueden presentar ruido, oclusiones y variaciones espaciales.
El objetivo consiste en identificar la categoría del objeto.
La equivariancia resulta relevante porque el objeto puede aparecer con diferentes orientaciones.
La arquitectura utiliza atención geométrica para aprender representaciones que respetan las rotaciones.
¿Qué es el problema N-body?
El problema N-body estudia el comportamiento de sistemas con múltiples objetos que interactúan.
Cada objeto tiene una posición:
[
x_i(t)
]
y puede presentar velocidad:
[
v_i(t)
]
El objetivo puede consistir en predecir posiciones o propiedades futuras.
Una red geométrica equivariante permite construir predicciones que no dependen del sistema de coordenadas global.
Esto resulta útil en simulaciones físicas y aprendizaje de dinámica.
No obstante, la equivariancia no garantiza automáticamente conservación de energía, momento o cumplimiento de todas las leyes físicas.
SE(3)-Transformer frente a EGNN
EGNN, estudiada en la Entrada 134, utiliza una estrategia geométrica más sencilla.
| Característica | SE(3)-Transformer | EGNN |
|---|---|---|
| Publicación | NeurIPS 2020 | ICML 2021 |
| Grupo geométrico | SE(3) | E(n) |
| Rotaciones | Sí | Sí |
| Traslaciones | Sí | Sí |
| Reflexiones | No garantizadas | Sí |
| Dimensiones | Especializada en 3D | Dimensión arbitraria |
| Armónicos esféricos | Sí | No necesarios |
| Representaciones de orden superior | Sí | No necesarias |
| Atención | Mecanismo central | No en la formulación original |
| Actualización de coordenadas | No es requisito de cada capa original | Sí, operación central |
| Complejidad matemática | Mayor | Relativamente menor |
La diferencia más importante es cómo incorporan la geometría.
EGNN utiliza desplazamientos relativos y coeficientes escalares aprendidos.
SE(3)-Transformer utiliza representaciones irreducibles de SO(3) y filtros geométricos equivariantes.
La elección depende del problema y del nivel de expresividad necesario.
SE(3)-Transformer frente a GVP-GNN
GVP-GNN utiliza características escalares y vectoriales.
SE(3)-Transformer puede utilizar representaciones de diferentes grados.
| Característica | GVP-GNN | SE(3)-Transformer |
|---|---|---|
| Arquitectura principal | Geometric Vector Perceptron | Atención geométrica equivariante |
| Escalares | Sí | Sí |
| Vectores | Sí | Sí |
| Grados superiores | No como característica central | Sí |
| Armónicos esféricos | No necesarios | Sí |
| Message passing | Sí | Sí |
| Atención especializada | No central | Sí |
| Aplicaciones originales | MQA y diseño inverso de proteínas | QM9, N-body y ScanObjectNN |
GVP-GNN permite incorporar geometría mediante operaciones relativamente compactas.
SE(3)-Transformer utiliza una representación más general de los tipos geométricos.
Esto puede ofrecer mayor expresividad para determinadas relaciones angulares, a costa de mayor complejidad computacional.
SE(3)-Transformer frente a ProteinMPNN
ProteinMPNN está especializada en diseño inverso de proteínas.
Utiliza un grafo geométrico y una arquitectura encoder–decoder.
SE(3)-Transformer es una arquitectura general de atención geométrica.
ProteinMPNN aprende distribuciones de aminoácidos condicionadas por una estructura.
SE(3)-Transformer puede utilizarse para distintas tareas sobre datos tridimensionales.
Por tanto, no deben compararse únicamente por número de parámetros o velocidad.
Resuelven problemas diferentes.
SE(3)-Transformer frente a RoseTTAFold
RoseTTAFold utiliza una arquitectura de tres vías para predecir estructuras proteicas.
Incluye componentes geométricos equivariantes.
SE(3)-Transformer proporciona un mecanismo general de atención geométrica que puede utilizarse dentro de sistemas especializados.
La relación es importante porque los principios de atención equivariante contribuyeron al desarrollo de herramientas posteriores de modelado estructural.
Sin embargo, RoseTTAFold completo no debe describirse simplemente como un SE(3)-Transformer.
Contiene procesamiento especializado de secuencias, pares de residuos y coordenadas.
Ejemplo práctico 1: representar una nube de puntos
Podemos crear un conjunto tridimensional sencillo mediante NumPy.
import numpy as nppoints = np.array([ [0.0, 0.0, 0.0], [1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0],], dtype=float)print("Forma:", points.shape)print(points)
La salida tiene cuatro puntos y tres coordenadas por punto.
Es una nube de puntos artificial.
No representa una molécula real.
Ejemplo práctico 2: calcular distancias y direcciones
import numpy as npi = 0j = 1displacement = points[j] - points[i]distance = np.linalg.norm( displacement)direction = ( displacement / distance)print("Desplazamiento:", displacement)print("Distancia:", distance)print("Dirección:", direction)
La distancia es invariante ante rotaciones.
La dirección se transforma de manera coherente con ellas.
Esta distinción es fundamental para construir filtros geométricos equivariantes.
Ejemplo práctico 3: comprobar invariancia de distancias
angle = np.pi / 3rotation = np.array([ [np.cos(angle), -np.sin(angle), 0.0], [np.sin(angle), np.cos(angle), 0.0], [0.0, 0.0, 1.0],])translation = np.array([ 2.0, -1.0, 3.0])transformed = ( points @ rotation.T + translation)original_distance = np.linalg.norm( points[1] - points[0])transformed_distance = np.linalg.norm( transformed[1] - transformed[0])print( np.allclose( original_distance, transformed_distance ))
El resultado esperado es True.
La estructura fue rotada y trasladada.
Sin embargo, la distancia entre sus puntos permanece igual.
Ejemplo práctico 4: comprobar equivariancia vectorial
original_vector = ( points[1] - points[0])transformed_vector = ( transformed[1] - transformed[0])expected_vector = ( rotation @ original_vector)print( "Equivariancia:", np.allclose( transformed_vector, expected_vector ))
El resultado esperado es True.
Esto muestra cómo deben transformarse los vectores geométricos.
Ejemplo práctico 5: calcular armónicos esféricos
Podemos utilizar SciPy para estudiar los armónicos esféricos.
Las versiones modernas de SciPy proporcionan sph_harm_y.
import numpy as npfrom scipy.special import sph_harm_ydegree = 1order = 0theta = np.pi / 3phi = np.pi / 4value = sph_harm_y( degree, order, theta, phi)print("Y_1^0:", value)
En esta función, theta representa el ángulo polar y phi el azimut.
La convención angular es importante porque diferentes bibliotecas pueden utilizar nombres distintos.
Este ejemplo calcula un armónico esférico complejo.
La implementación original de SE(3)-Transformer utiliza una base real y procedimientos especializados para construir los kernels.
Por tanto, esta llamada no reproduce directamente la base completa del modelo.
Ejemplo práctico 6: comprobar la transformación de un armónico de grado cero
El armónico esférico de grado cero es constante:
[
Y_0^0=\frac{1}{\sqrt{4\pi}}
]
Podemos comprobarlo:
from scipy.special import sph_harm_yimport numpy as npangles = [ (0.2, 0.3), (1.0, 2.0), (2.5, 4.0),]values = [ sph_harm_y(0, 0, theta, phi) for theta, phi in angles]print(values)print( np.allclose( values, values[0] ))
El resultado esperado es True.
Esto representa el caso escalar más sencillo.
Los grados superiores contienen dependencias angulares más complejas.
Ejemplo práctico 7: demostrar atención invariante
Podemos construir un mecanismo educativo que utiliza distancias para calcular pesos.
import numpy as npdef geometric_attention(points, center=0): delta = points - points[center] distances_squared = np.sum( delta ** 2, axis=1 ) scores = -distances_squared scores -= scores.max() weights = np.exp(scores) weights /= weights.sum() return weightsweights_original = geometric_attention( points)weights_transformed = geometric_attention( transformed)print( np.allclose( weights_original, weights_transformed ))
El resultado esperado es True.
Los pesos no cambian al rotar o trasladar la nube de puntos.
Esta función es una demostración educativa de atención basada en distancias.
No reproduce el mecanismo completo de SE(3)-Transformer, que utiliza proyecciones equivariantes de Query, Key y Value.
Ejemplo práctico 8: agregación equivariante con atención
Podemos combinar los pesos invariantes con desplazamientos relativos.
def equivariant_aggregation(points, center=0): weights = geometric_attention( points, center ) relative = points - points[center] return np.sum( weights[:, None] * relative, axis=0 )output_original = equivariant_aggregation( points)output_transformed = equivariant_aggregation( transformed)expected = ( rotation @ output_original)print( "Equivariancia:", np.allclose( output_transformed, expected ))
El resultado esperado es True.
El ejemplo demuestra la combinación de:
- Pesos escalares invariantes.
- Valores vectoriales equivariantes.
Esta es la idea matemática que sustenta la atención geométrica.
La implementación real utiliza representaciones de diferentes grados, no solamente vectores de desplazamiento.
Ejemplo práctico 9: calcular dimensiones de una fibra
Podemos calcular cuántos componentes contiene una representación geométrica.
fiber = { 0: 16, 1: 8, 2: 4,}total = sum( channels * (2 * degree + 1) for degree, channels in fiber.items())print("Componentes totales:", total)
El resultado esperado es:
Componentes totales: 60
Esta operación permite comprender cómo aumenta el tamaño de las representaciones cuando incorporamos grados superiores.
Ejemplo práctico 10: instalar SE(3)-Transformer
El repositorio original se encuentra en:
Podemos descargarlo mediante:
git clone \ https://github.com/FabianFuchsML/se3-transformer-public.gitcd se3-transformer-public
El proyecto utiliza PyTorch y Deep Graph Library (DGL).
La documentación histórica recomienda configuraciones como PyTorch 1.7 y DGL 0.5.3.
Por tanto, no debe suponerse que la instalación funciona sin cambios con cualquier versión moderna.
Una vez creado un entorno compatible, el proyecto puede instalarse mediante:
pip install -e .
Antes deben instalarse PyTorch, DGL y las dependencias correspondientes.
Ejemplo práctico 11: definir fibras con la implementación oficial
La implementación incluye una clase Fiber.
El siguiente ejemplo reproduce el patrón conceptual documentado por los autores:
from equivariant_attention.fibers import Fibernum_degrees = 4num_features = 8fiber_in = Fiber( 1, num_features)fiber_mid = Fiber( num_degrees, 32)fiber_out = Fiber( 1, 128)print(fiber_in)print(fiber_mid)print(fiber_out)
En el repositorio original, el primer argumento indica cuántos grados consecutivos se utilizan comenzando en cero.
Por tanto:
Fiber(4, 32)
incluye grados 0, 1, 2 y 3, con 32 canales por grado.
El ejemplo construye descriptores de representaciones.
No ejecuta todavía inferencia.
Ejemplo práctico 12: construir capas geométricas
La documentación oficial muestra cómo combinar diferentes módulos.
import torch.nn as nnfrom equivariant_attention.modules import ( GSE3Res, GNormSE3, GConvSE3, GMaxPooling)model = nn.ModuleList([ GSE3Res( fiber_in, fiber_mid ), GNormSE3( fiber_mid ), GConvSE3( fiber_mid, fiber_out, self_interaction=True ), GMaxPooling()])print(model)
El módulo contiene:
- Atención geométrica.
- Normalización equivariante.
- Convolución geométrica.
- Pooling.
Para ejecutar una predicción deben construirse un grafo DGL, características de nodos y bases geométricas.
Por tanto, este fragmento representa la definición de la arquitectura, no un pipeline completo de inferencia.
Ejemplo práctico 13: preparar la base geométrica
El repositorio original utiliza una función denominada get_basis_and_r.
Su propósito consiste en construir información geométrica necesaria para las capas.
El patrón de uso es:
from equivariant_attention.modules import ( get_basis_and_r)# G debe ser un grafo DGL con# las características geométricas# esperadas por la implementación.basis, r = get_basis_and_r( G, max_degree=3)
Aquí G representa un grafo previamente preparado.
Este fragmento no es ejecutable por sí solo porque el grafo debe definirse antes.
La función calcula bases equivariantes y características radiales.
Los resultados se utilizan durante el paso hacia delante de las capas SE(3)-Transformer.
Ejemplo práctico 14: utilizar la implementación optimizada de NVIDIA
NVIDIA publicó una implementación optimizada dentro de su repositorio DeepLearningExamples.
Código oficial:
El procedimiento documentado comienza con:
git clone https://github.com/NVIDIA/DeepLearningExamples.gitcd DeepLearningExamples/DGLPyTorch/DrugDiscovery/SE3Transformer
Después se construye el entorno Docker:
docker build -t se3-transformer .
Una vez preparado el contenedor compatible, NVIDIA proporciona scripts como:
bash scripts/train.sh
y:
bash scripts/predict.sh
La ejecución requiere las dependencias, datos y recursos especificados por el entorno NVIDIA.
La implementación puede utilizar optimizaciones para reducir consumo de memoria y mejorar throughput.
En el trabajo de optimización documentado en 2021, NVIDIA comunicó aceleraciones de entrenamiento de hasta aproximadamente 21 veces y reducciones de memoria de hasta 43 veces frente a determinadas configuraciones de referencia.
Estos resultados pertenecen a benchmarks específicos.
No garantizan esas mejoras en cualquier GPU o aplicación.
¿Qué recursos computacionales necesita SE(3)-Transformer?
Los requisitos dependen de diferentes parámetros.
Entre ellos:
- Cantidad de nodos.
- Número de aristas.
- Número de cabezas de atención.
- Cantidad de canales.
- Grado geométrico máximo.
- Número de capas.
- Precisión numérica.
- Implementación utilizada.
Los grados superiores incrementan el número de componentes y la complejidad de los kernels equivariantes.
Además, los armónicos esféricos y las bases geométricas pueden requerir cálculos adicionales.
Por ello, SE(3)-Transformer suele ser más compleja que una red geométrica basada únicamente en distancias y desplazamientos.
Las implementaciones optimizadas pueden reducir parte de estos costes.
Sin embargo, la elección entre EGNN y SE(3)-Transformer debe realizarse mediante benchmarks de la tarea concreta.
Ventajas de SE(3)-Transformer
1. Equivariancia geométrica
Respeta rotaciones propias y traslaciones tridimensionales.
2. Atención dependiente del contenido
Permite seleccionar vecinos relevantes mediante pesos aprendidos.
3. Representaciones de diferentes grados
Puede combinar escalares, vectores y características de orden superior.
4. Tratamiento angular explícito
Utiliza armónicos esféricos para representar dependencias direccionales.
5. Arquitectura modular
Puede combinar atención, convoluciones geométricas y operaciones de pooling.
6. Generalización a diferentes tamaños de grafos
Puede procesar conjuntos con cantidades variables de puntos.
7. Robustez a orientación
Las transformaciones espaciales arbitrarias no deberían modificar indebidamente las predicciones.
8. Implementaciones públicas
Existen versiones originales y optimizadas para investigación.
Limitaciones de SE(3)-Transformer
1. Complejidad matemática
Requiere comprender representaciones de grupos, armónicos esféricos y operaciones tensoriales.
2. Coste computacional
Los kernels geométricos pueden ser costosos, especialmente con grados superiores.
3. Memoria
El consumo aumenta con cantidad de aristas, canales y cabezas de atención.
4. Implementación especializada
No es suficiente sustituir una capa Transformer convencional por una atención genérica.
5. Dependencias técnicas
El repositorio original utiliza versiones históricas de PyTorch y DGL.
6. Reflexiones
La arquitectura garantiza equivariancia SE(3), no necesariamente E(3).
7. Calidad de datos
Las predicciones dependen de los ejemplos y características utilizados durante entrenamiento.
8. Física incompleta
La equivariancia no garantiza conservación de energía ni cumplimiento de todas las leyes físicas.
9. Química molecular
Una representación geométrica correcta no implica automáticamente validez química.
10. Comparación con modelos posteriores
Arquitecturas más recientes pueden ofrecer mejores compromisos de precisión, velocidad y memoria en determinadas tareas.
Importancia de SE(3)-Transformer en la inteligencia artificial
SE(3)-Transformer representa un avance importante porque demuestra cómo adaptar una idea originalmente desarrollada para secuencias a datos tridimensionales con simetrías específicas.
Los Transformers convencionales aprenden relaciones mediante atención.
SE(3)-Transformer añade restricciones geométricas sobre las transformaciones neuronales.
La arquitectura utiliza armónicos esféricos para describir dependencias angulares.
Las matrices de Wigner-D describen cómo se transforman características de diferentes grados.
Los kernels equivariantes permiten construir proyecciones Query, Key y Value compatibles con las rotaciones.
Los pesos de atención permanecen invariantes.
Los valores transmitidos se transforman equivariantemente.
Esta combinación permite seleccionar información geométrica sin romper las simetrías del problema.
El resultado contribuyó a consolidar el uso de atención geométrica en el aprendizaje profundo científico.
También ayudó a conectar investigaciones sobre Tensor Field Networks, Graph Neural Networks y modelos de estructuras moleculares.
Frente a EGNN, SE(3)-Transformer ofrece una aproximación más rica en tipos de características geométricas.
Sin embargo, esa riqueza requiere más operaciones matemáticas y recursos computacionales.
Por tanto, ambas arquitecturas representan compromisos diferentes entre simplicidad y expresividad.
Preguntas frecuentes sobre SE(3)-Transformer
¿Qué es SE(3)-Transformer?
Es una arquitectura de atención neuronal para grafos y nubes de puntos tridimensionales que respeta rotaciones y traslaciones.
¿Quién desarrolló SE(3)-Transformer?
Fabian B. Fuchs, Daniel E. Worrall, Volker Fischer y Max Welling.
¿Cuándo se publicó?
En NeurIPS 2020.
¿Qué significa SE(3)?
Es el grupo de rotaciones propias y traslaciones rígidas en tres dimensiones.
¿Qué significa equivariancia?
Es la propiedad por la cual la salida se transforma coherentemente cuando se transforma la entrada.
¿Qué diferencia existe entre invariancia y equivariancia?
Una característica invariante permanece igual. Una equivariante cambia según una regla correspondiente a la transformación.
¿Qué es SO(3)?
Es el grupo de rotaciones propias tridimensionales.
¿Qué diferencia existe entre SE(3) y E(3)?
E(3) también incluye reflexiones.
¿Qué son los armónicos esféricos?
Son funciones matemáticas que representan dependencias angulares sobre una esfera.
¿Por qué se utilizan armónicos esféricos?
Porque permiten construir filtros geométricos compatibles con las rotaciones.
¿Qué son las matrices Wigner-D?
Son matrices que describen cómo se transforman las representaciones irreducibles de SO(3).
¿Qué es una representación de grado cero?
Una representación escalar invariante.
¿Qué es una representación de grado uno?
Una representación tridimensional que puede comportarse como un vector.
¿Qué representa el grado dos?
Una representación de cinco componentes que sigue una regla de transformación de orden superior.
¿Qué es una Fiber?
Es una descripción de los grados y cantidades de canales utilizados por una capa geométrica.
¿Qué es atención equivariante?
Es un mecanismo de atención que combina pesos invariantes con valores que respetan las transformaciones geométricas.
¿Por qué deben ser invariantes los pesos?
Porque así la selección de vecinos no depende de la orientación global.
¿Qué son Query, Key y Value?
Son representaciones utilizadas para calcular las puntuaciones de atención y agregar información.
¿Qué es Tensor Field Network?
Es una arquitectura geométrica que utiliza kernels equivariantes basados en representaciones de rotaciones.
¿Qué aporta SE(3)-Transformer frente a TFN?
Introduce mecanismos de atención dependientes del contenido.
¿Qué es GSE3Res?
Es una capa residual de atención SE(3)-equivariante de la implementación oficial.
¿Qué es GConvSE3?
Es una capa de convolución geométrica equivariante.
¿Qué es GNormSE3?
Es un módulo de normalización compatible con características geométricas.
¿Qué es QM9?
Es un conjunto de datos de moléculas pequeñas y propiedades de química cuántica.
¿Qué es ScanObjectNN?
Es un benchmark para clasificación de nubes de puntos tridimensionales.
¿Qué es N-body?
Es un problema de modelado de sistemas formados por múltiples partículas que interactúan.
¿Qué diferencia existe entre SE(3)-Transformer y EGNN?
SE(3)-Transformer utiliza armónicos esféricos, representaciones de distintos grados y atención equivariante. EGNN utiliza mensajes invariantes y actualizaciones de coordenadas basadas en desplazamientos.
¿Qué diferencia existe entre SE(3)-Transformer y GVP-GNN?
GVP-GNN combina escalares y vectores. SE(3)-Transformer puede utilizar representaciones geométricas de grados superiores.
¿SE(3)-Transformer utiliza tensores?
Sí. Utiliza representaciones geométricas organizadas según grados de SO(3).
¿Puede procesar proteínas?
Puede utilizarse como componente de modelos geométricos de proteínas, pero la arquitectura original no constituye por sí sola un predictor completo de plegamiento.
¿SE(3)-Transformer predice coordenadas?
Puede incorporarse en sistemas que producen salidas geométricas. Sus capas originales transforman características equivariantes y no requieren actualizar coordenadas como operación central.
¿Puede ejecutarse en Python?
Sí. Existen implementaciones basadas en PyTorch y DGL.
¿Existe código oficial?
Sí. Los autores publicaron se3-transformer-public en GitHub.
¿Existe una versión optimizada?
Sí. NVIDIA desarrolló una implementación optimizada para PyTorch y DGL.
¿Es más rápido que EGNN?
No existe una respuesta universal. El rendimiento depende del problema, el hardware y la implementación.
¿SE(3)-Transformer conserva energía?
No necesariamente. La equivariancia no implica automáticamente conservación de energía.
¿Por qué es importante estudiar SE(3)-Transformer?
Porque muestra cómo combinar atención, teoría de grupos y representaciones geométricas para aprender relaciones tridimensionales respetando simetrías espaciales.
Conclusión
La arquitectura SE(3)-Transformer constituye una contribución importante al desarrollo del aprendizaje profundo geométrico.
Su principal innovación consiste en combinar mecanismos de autoatención con operaciones compatibles con rotaciones y traslaciones tridimensionales.
Para ello utiliza representaciones irreducibles de SO(3), armónicos esféricos, funciones radiales y kernels equivariantes.
Las consultas, claves y valores se construyen mediante transformaciones que respetan las reglas geométricas.
Los pesos de atención permanecen invariantes ante rotaciones.
Las características agregadas se transforman equivariantemente.
La arquitectura permite trabajar con escalares, vectores y representaciones de grados superiores.
Los investigadores demostraron su utilidad en dinámica de partículas, propiedades moleculares y clasificación de nubes de puntos.
Posteriormente, NVIDIA desarrolló implementaciones optimizadas para reducir los costes de entrenamiento e inferencia.
Sin embargo, la mayor expresividad geométrica introduce complejidad matemática y computacional.
La elección entre SE(3)-Transformer, EGNN y GVP-GNN debe depender del tipo de problema, las simetrías necesarias y los recursos disponibles.
Para estudiantes, investigadores y desarrolladores de inteligencia artificial, SE(3)-Transformer ofrece una lección fundamental:
Los mecanismos de atención pueden combinarse con representaciones matemáticas de simetrías espaciales, permitiendo que las redes neuronales aprendan relaciones tridimensionales sin depender arbitrariamente de la orientación de sus entradas.
Comprender SE(3)-Transformer permite profundizar en autoatención, Graph Neural Networks, teoría de grupos, armónicos esféricos, representaciones tensoriales, equivariancia geométrica y aprendizaje profundo científico.
Referencias y fuentes oficiales
- Fuchs, F. B., Worrall, D. E., Fischer, V. y Welling, M. (2020). SE(3)-Transformers: 3D Roto-Translation Equivariant Attention Networks. NeurIPS 2020. https://papers.neurips.cc/paper/2020/hash/15231a7ce4ba789d13b722cc5c955834-Abstract.html
- Fuchs, F. B. et al. (2020). SE(3)-Transformers: 3D Roto-Translation Equivariant Attention Networks. arXiv. https://arxiv.org/abs/2006.10503
- Fuchs, F. B. SE(3)-Transformer — Página oficial del proyecto. https://fabianfuchsml.github.io/se3transformer/
- Fuchs, F. B. SE(3)-Transformer — Repositorio original. https://github.com/FabianFuchsML/se3-transformer-public
- NVIDIA. SE(3)-Transformer — Implementación optimizada. https://github.com/NVIDIA/DeepLearningExamples/tree/master/DGLPyTorch/DrugDiscovery/SE3Transformer
- NVIDIA. SE(3)-Transformers for PyTorch — Documentación. https://catalog.ngc.nvidia.com/orgs/nvidia/dle/resources/se3transformer_pyt
- Thomas, N. et al. (2018). Tensor Field Networks: Rotation- and Translation-Equivariant Neural Networks for 3D Point Clouds. https://arxiv.org/abs/1802.08219
- Satorras, V. G., Hoogeboom, E. y Welling, M. (2021). E(n) Equivariant Graph Neural Networks. ICML. https://arxiv.org/abs/2102.09844
- Jing, B. et al. (2021). Learning from Protein Structure with Geometric Vector Perceptrons. ICLR. https://arxiv.org/abs/2009.01411
- Gilmer, J. et al. (2017). Neural Message Passing for Quantum Chemistry. ICML. https://arxiv.org/abs/1704.01212
- Bronstein, M. M. et al. (2021). Geometric Deep Learning: Grids, Groups, Graphs, Geodesics, and Gauges. https://arxiv.org/abs/2104.13478
- Baek, M. et al. (2021). Accurate prediction of protein structures and interactions using a three-track neural network. Science. https://doi.org/10.1126/science.abj8754
