Está en la página 1de 221

Descubirmiento de Información en Redes

Multi-Relacionales
Universidad de Sevilla

Pedro Almagro Blanco

2016
Índice general

1. Definiciones Preliminares 12

1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2. Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.2.1. Grafos Uni-Relacionales . . . . . . . . . . . . . . . . . . . . . . . 16

1.2.2. Grafos Multi-Relacionales . . . . . . . . . . . . . . . . . . . . . . 22

1.2.3. Grafos Con Propiedades . . . . . . . . . . . . . . . . . . . . . . . 23

1.3. Aprendizaje Automático . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

1.3.1. Aprendiendo a partir de Datos . . . . . . . . . . . . . . . . . . . . 29

1.3.2. Evaluación del Rendimiento . . . . . . . . . . . . . . . . . . . . . 31

1.3.3. Estimando el Error de Predicción Esperado . . . . . . . . . . . . 33

1.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2. Medidas para Grafos con Propiedades 36

2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

1
2.2. Grafos Multirelacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

2.3. Medidas en Grafos Multirelacionales . . . . . . . . . . . . . . . . . . . . 40

2.3.1. Centralidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

2.3.2. Agrupamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

2.3.3. Asortatividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.3.4. Entropı́a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

2.4. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

2.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3. Consulta de Patrones en Grafos con Propiedades 52

3.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3.2. Graph Pattern Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.3. Heramientas de Consulta Relacionadas . . . . . . . . . . . . . . . . . . . 60

3.3.1. XPath (XML Path Language) . . . . . . . . . . . . . . . . . . . 61

3.3.2. XQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.3.3. SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3.3.4. GraphLog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3.3.5. SPARQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.3.6. GraphQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

3.3.7. Gremlin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3.3.8. Grafos de Selección. . . . . . . . . . . . . . . . . . . . . . . . . . . 72

2
3.3.9. Cypher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3.3.10. Comparativa de los lenguajes de consulta . . . . . . . . . . . . . . 76

3.3.11. Otras Herramientas de Consulta Relacionadas . . . . . . . . . . . 81

3.4. Grafos con Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.5. Property Query Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

4. Inducción de Árboles de Decisión a Partir de Grafos con Propiedades 94

4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

4.2. Árboles de Decisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

4.2.1. Algoritmo ID3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

4.2.2. Criterios de División . . . . . . . . . . . . . . . . . . . . . . . . . 102

4.2.3. Criterios de Parada . . . . . . . . . . . . . . . . . . . . . . . . . . 104

4.2.4. Podando los Árboles de Decisión . . . . . . . . . . . . . . . . . . 105

4.2.5. Algoritmo C4.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

4.3. Árboles de Decisión Multi-Relacionales . . . . . . . . . . . . . . . . . . . 108

4.3.1. Pogramación Lógica Inductiva . . . . . . . . . . . . . . . . . . . . 108

4.3.2. Multi-Relational Decision Tree Learning (MRDTL) . . . . . . . . 111

4.3.3. Graph Based Induction (GBI) . . . . . . . . . . . . . . . . . . . . 118

4.3.4. Graph Based Induction-Decision Tree (GBI-DT) . . . . . . . . . . 124

4.4. Random Forest Multi-Relacionales . . . . . . . . . . . . . . . . . . . . . 126

3
4.5. Extensión a Grafos con Propiedades del algoritmo ID3 (Graph-ID3) . . . 126

4.6. Ejemplo de aplicación del algoritmo Graph-ID3 . . . . . . . . . . . . . . 128

5. Inmersión Semántica de Grafos con Propiedades 136

5.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

5.2. Grafos con Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

5.3. Redes Neuronales Artificiales . . . . . . . . . . . . . . . . . . . . . . . . . 141

5.3.1. Algoritmo de Retropropagación . . . . . . . . . . . . . . . . . . . 147

5.3.2. Codificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

5.3.3. Word2vec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

5.4. Trabajos relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

5.5. Inmersiones de Grafos con Propiedades en Espacios Vectoriales . . . . . . 168

5.6. Evaluación Empı́rica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

5.6.1. Detalles de la implementación y experimentos . . . . . . . . . . . 172

5.6.2. Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

5.6.3. Evaluación de la inmersión . . . . . . . . . . . . . . . . . . . . . . 178

5.6.4. Predicción de Aristas. CAMBIAR NOMBRE . . . . . . . . . . . . 196

5.6.5. Inmersión de traversals . . . . . . . . . . . . . . . . . . . . . . . . 200

5.6.6. Conclusiones y trabajo futuro . . . . . . . . . . . . . . . . . . . . 203

4
Índice de figuras

1.1. Ejemplo de grafo dirigido (izquierda) y de grafo no dirigido (derecha). . . 16

1.2. Ejemplo de hipergrafo con 7 nodos y 4 hiperaristas. . . . . . . . . . . . . 17

1.3. Ejemplo de multigrafo dirigido. . . . . . . . . . . . . . . . . . . . . . . . 18

1.4. Tres ejemplos (en rojo) de caminos en tres grafos no dirigidos. . . . . . . 19

1.5. Ejemplo de dos grafos isomorfos. . . . . . . . . . . . . . . . . . . . . . . 19

1.6. Ejemplo de grafo no dirigido conexo (izquierda) y de grafo no dirigido no


conexo (derecha). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

1.7. Cuatro de los ciclos presentes en un grafo no dirigido. . . . . . . . . . . . 20

1.8. Ejemplo de grafo con propiedades con tipos asociados a nodos y aristas. . 21

1.9. Ejemplo de grafo multi-relacional con tres tipos de relaciones. . . . . . . 23

1.10. Ejemplo de grafo con propiedades con tipos asociados a nodos y aristas. . 24

1.11. Grafo binario con propiedades G1 con 3 nodos y 3 aristas. . . . . . . . . 25

1.12. Hipergrafo con propiedades H1 con 5 nodos y 4 hiperaristas. . . . . . . . 26

2.1. Ejemplo de grafo multi-relacional social. . . . . . . . . . . . . . . . . . . 39

5
2.2. Ejemplo de grafo multi-relacional semántico. . . . . . . . . . . . . . . . . 40

3.1. Complejidad presentada por los diferentes modelos de deteccón de patro-


nes en grafo según la relación que debe cumplir el patrón con los subgrafos
[47]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.2. Ejemplo de consulta XPath. . . . . . . . . . . . . . . . . . . . . . . . . . 62

3.3. Ejemplo de Query Graph (GraphLog): Los descendientes de P 1 que no


son descendientes de P 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

3.4. Ejemplo de un grafo de selección. . . . . . . . . . . . . . . . . . . . . . . 72

3.5. Ejemplos de grafo G y patrón Q, y las proyecciones resultantes M1 , M2 . 77

3.6. Esquema de datos para PostreSQL y Jena TDB. . . . . . . . . . . . . . . 78

3.7. Resumen de los conjutnos de datos utilizados para comparar los sistemas
de consulta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.8. Average run time in seconds on logarithmic scale for ERM. . . . . . . . . 82

3.9. Average run time in seconds on logarithmic scale for PAM. . . . . . . . . 83

3.10. Average run time in seconds on log-scale for synthetic patterns on PAM1000. 84

3.11. Average run time in seconds on logarithmic scale for GTON and HepTH. 84

3.12. Grafo binario con propiedades G1 con 3 nodos y 3 aristas. . . . . . . . . 85

3.13. Hipergrafo con propiedades H1 con 5 nodos y 4 hiperaristas. . . . . . . . 86

3.14. Grafos con propiedades Q1 , Q2 , Q3 , Q4 , Q5 y Q6 . . . . . . . . . . . . . . . 92

3.15. Ejemplo de grafo con propiedades en el que se han marcado los subgrafo
S1 , S2 y S3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

4.1. Un pequeño conjunto de datos. . . . . . . . . . . . . . . . . . . . . . . . 98

6
4.2. Un árbol de decisión simple. . . . . . . . . . . . . . . . . . . . . . . . . . 99

4.3. Conjunto de datos inicial. . . . . . . . . . . . . . . . . . . . . . . . . . . 100

4.4. Ganancia de información aportada por cada propiedad en el nodo raı́z


del árbol de decisión en construcción. . . . . . . . . . . . . . . . . . . . . 100

4.5. Nodo raı́z del árbol de decisión en construcción. . . . . . . . . . . . . . . 101

4.6. Ganancia de información aportada por cada propiedad en la rama posi-


tiva del nodo raı́z del árbol de decisión en construcción. . . . . . . . . . . 101

4.7. Segundo paso de la construcción del árbol. . . . . . . . . . . . . . . . . . 101

4.8. Árbol de decisión obtenido mediante el algoritmo ID3. . . . . . . . . . . 102

4.9. Árbol de decisión lógica [23]. . . . . . . . . . . . . . . . . . . . . . . . . . 110

4.10. Ejemplo de un grafo de selección. . . . . . . . . . . . . . . . . . . . . . . 112

4.11. Ejemplo de un grafo de selección que será utilizado para ilustrar los refi-
namientos del algoritmo MRDTL. . . . . . . . . . . . . . . . . . . . . . . 115

4.12. Refinamientos complementarios añadiendo la condición corr = 0,5 a el


nodo INTERACTION en el subgrafo de la Figura 4.11. . . . . . . . . . . 116

4.13. Refinamientos complementarios añadiendo una arista desde el nodo GE-


NE hasta un nodo COMPOSITION a el grafo de selección de la Figura
la condición corr = 0,5 a el nodo INTERACTION en el subgrafo de la
Figura 4.11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

4.14. La idea básica del método GBI [58]. . . . . . . . . . . . . . . . . . . . . . 119

4.15. Beam search en B-GBI (beam width = 5) [58]. . . . . . . . . . . . . . . . 122

4.16. Graph compression by pairwise chunking. . . . . . . . . . . . . . . . . . . 124

4.17. Árbol de decisión multi-relacional construido a través del método DT-


GBI [58]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

7
4.18. Grafo Social. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

4.19. Ganancia de información de cada tipo de relación disponible en la raı́z


del árbol de decisión en construcción. . . . . . . . . . . . . . . . . . . . . 130

4.20. Nodo raız del árbol de decisión en construcción. . . . . . . . . . . . . . . 131

4.21. Ganancia de información de cada tipo de relación disponible en la rama


negativa del nodo raı́z del árbol de decisión en construcción. . . . . . . . 131

4.22. Primeros dos niveles del árbol de decisión en construcción. . . . . . . . . 132

4.23. Ganancia de información de cada relación disponible en la rama positiva


del nodo (0)wif e →? del árbol de decisión en construcción. . . . . . . . . 132

4.24. Primeros tres niveles del árbol de decisión en construcción. . . . . . . . . 133

4.25. Ganancia de información de cada relación disponible en la rama positiva


del nodo publish -¿? del árbol de decisión en construcción. . . . . . . . . 133

4.26. Primeros cuatro niveles del árbol de decisión en construcción. . . . . . . 134

4.27. Árbol de decisión que clasifica correctamente a todos los usuarios en el


grafo según su género. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

5.1. Ejemplo de grafo con propiedades con tipos asociados a nodos y aristas. . 139

5.2. Arquitectura de un perceptrón. . . . . . . . . . . . . . . . . . . . . . . . 142

5.3. Representación de una ANN feedforward multi-capa con 3 capas. . . . . . 146

5.4. Notación que usaremos en la red neuronal artificial feedforward multicapa.147

5.5. Representación gráfica de la función sigmoide y su derivada. . . . . . . . 156

5.6. Representación simplificada de un codificador neuronal. . . . . . . . . . . 158

5.7. Estructura de la red neuronal feedforward utilizada en las arquitectura


CBOW y Skip-gram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

8
5.8. Representación de las arquitecturas CBOW y Skip-gram. W (t) representa
wordi y w(t − 2), w(t − 1), etc. su contexto C i . . . . . . . . . . . . . . . 162

5.9. La metodologı́a presentada utiliza pares nodo-contexto para aprender una


representación continua de los elementos en un grafo con propiedades. . . 169

5.10. Distribución de nodos y aristas en el grafo WordNet. . . . . . . . . . . . 175

5.11. Representación gráfica del esquema de datos presente en el dataset Word-


Net. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

5.12. Distribución de nodos y aristas en el grafo TMDb. . . . . . . . . . . . . 177

5.13. Representación gráfica del esquema de datos presente en el dataset EICH. 177

5.14. Distribución de nodos y aristas en EICH. . . . . . . . . . . . . . . . . . 178

5.15. Representación gráfica del esquema de datos presente en el dataset EICH. 179

5.16. Distribuciones de riqueza semántica en los diferentes conjuntos de datos


bajo estudio (las gráficas se han limitado a riquezas inferiores a 20). . . 180

5.17. Representación gráfica de la conexión entre el codificador y una máquina


de aprendizaje automático. . . . . . . . . . . . . . . . . . . . . . . . . . . 181

5.18. Representaciones bidimensionales de los vectores asociados a los nodos


de tipo Movie y Actor en TMDb. . . . . . . . . . . . . . . . . . . . . . . 182

5.19. Estudio exhaustivo de los parámetros de la inmersión con respecto a la


capacidad en la predicción de los tipos de nodo. . . . . . . . . . . . . . . 190

5.20. Estudio de la capacidad de clasificación automática de los nodos según


su tipo a través de diferentes métodos. . . . . . . . . . . . . . . . . . . . 191

5.21. TMDb link vectors in a 2-dimensional representation. MIRAR DETENI-


DAMENTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

5.22. Estudio exhaustivo de los parámetros de la inmersión con respecto a la


capacidad en la predicción de los tipos de arista. . . . . . . . . . . . . . 193

9
5.23. Estudio de la capacidad de clasificación automática de las aristas según
su tipo a través de diferentes métodos. . . . . . . . . . . . . . . . . . . . 194

5.24. Estudio de la capacidad link prediction según el tamaño del conjunto de


entrenamiento utilizado para la inmersión. . . . . . . . . . . . . . . . . . 199

5.25. Estudio de la capacidad de obtención del nodo destino de un traversal


dado el tipo de traversal y el nodo origen según el tamaño del conjunto
de entrenamiento utilizado para la inmersión. . . . . . . . . . . . . . . . 202

10
Índice de cuadros

3.1. Compatibilidad de los grafos con propiedades G1 y G2 con Q1 , Q2 , Q3 , Q4 , Q5


y Q6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

3.2. Cumplimiento de los subgrafos S1 , S2 y S3 con los property query graphs


Q1 , Q2 , Q3 , Q4 , Q5 y Q6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

5.1. Estadı́sticas de los conjuntos de datos utilizados en los experimentos. . . 173

5.2. Link types of WordNet used in our experiments . . . . . . . . . . . . . . 174

5.3. Parámetros ótpimos de inmersión obtenidos para cada dataset estudiado. 184

5.4. Matriz de confusión resultante de la predicción de tipos de nodo en Word-


Net. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

5.5. Matriz de confusión resultante de la predicción de tipos de nodo en TMDb.185

5.6. TMDb confusion matrix for link type prediction . . . . . . . . . . . . . . 189

5.7. EICH confusion matrix for node type prediction . . . . . . . . . . . . . . 195

5.8. EICH confusion matrix for link type prediction . . . . . . . . . . . . . . 195

5.9. WordNet confusion matrix for link type prediction . . . . . . . . . . . . . 195

5.10. Rankings obtenidos al aplicar Entity Retrieval a través del vector repre-
sentante de la relación hypernym sobre diferentes nodos del grafo WordNet.198

11
Capı́tulo 1

Definiciones Preliminares

1.1. Introducción

En esta Tesis estudiamos el problema del descubrimiento de información en redes


semánticas, utilizando algoritmos de aprendizaje automático para extraer información
útil de conjuntos de datos almacenados en forma de red, más concretamente almace-
nados en grafos con propiedades a través de bases de datos en grafo. En este capı́tulo
presentaremos las definiciones preliminares que serán utilizadas de manera natural a
lo largo de la Tesis tanto en el campo de las redes semánticas como en el campo del
aprendizaje automático.

La teorı́a de redes ha sido una valiosa herramienta para describir y analizar sistemas
sociales, biológicos, fı́sicos, de información y de muchas otras ı́ndoles. La mayorı́a de
los estudios clásicos en redes emplean grafos en los que todos los nodos (o vértices)
representan el mismo concepto y todas las aristas (o enlaces) representan el mismo ti-
po de relación entre ellos y en los que los elementos del grafo no poseen propiedades
asociadas. A pesar de que este tipo de grafo ha dado buenos resultados en multitud de
aplicaciones, se hace necesario extender tanto las definiciones básicas como el aparato
analı́tico desarrollado para poder tratar redes más complejas en las que coexisten di-
ferentes tipos de entidades y de relaciones entre éstas con la posibilidad de que dichos
elementos posean propiedades asociadas. De esta forma surge el concepto de Grafo con

12
Propiedades q se ha venido utilizando desde tiempo atrás en varios contextos distintos,
aunque hasta la última década no se han ofrecido definiciones formales del mismo. En
[118] se da una primera formalización con el objetivo de proporcionar una definición
formal de traversals como herramienta fundamental de búsqueda en grafos de este ti-
po, orientado principalmente al uso de los Grafos con Propiedades como soporte de las
Bases de Datos en Grafo, mientras que en [67] se plantea una equivalencia formal entre
los Grafos con Propiedades y el estándar RDF 1 .

Como comentamos anteriormente, uno de los objetivos de la formalización de los


Grafos con Propiedades ha sido el de facilitar formas eficientes de almacenar y consultar
este tipo de estructuras. La llamadas Bases de Datos en Grafo hacen uso de los mismos
para implementar sistemas de almacenamiento y consulta computacionalmente eficientes
cuando los accesos se realizan en base a las relaciones entre los elementos.

A diferencia de las bases de datos relacionales, en las que la información se almacena


en tablas (donde las filas representan elementos, y las columnas propiedades de dichos
elementos) y donde las relaciones entre los elementos se modelan mediante columnas
especiales haciendo uso de claves foráneas, o mediante tablas intermedias, las Bases de
Datos en Grafo utilizan estructuras en memoria más similares a la estructura formal de
un Grafo con Propiedades, haciendo que los nodos conectados se apunten fı́sicamente
entre sı́ de tal manera que las consultas en base a relaciones se realizan con un coste
computacional mucho menor [115].

Además, las últimas generaciones de sistemas de almacenamiento basados en grafos


disponen de lenguajes especı́ficos orientados a realizar consultas en base a las relaciones
(el equivalente a SQL para las bases de datos relacionales). Por ejemplo, Neo4j 2 , posi-
blemente la base de datos en grafo más extendida en su uso, proporciona un lenguaje de
consulta llamado Cypher [115], un lenguaje declarativo basado en patrones cuya sintaxis
está muy cercana a la forma en la que un humano habitualmente describe los patrones
en un Grafo con Propiedades.

Como la mayorı́a de los lenguajes de consulta, Cypher se compone de cláusulas. Una


1
Modelo de intercambio de datos principalmente enfocado a la Web, ampliamente usado en el
contexto de las aplicaciones orientadas a lo que se conoce como Web Semántica, y que permite modelar
de manera flexible relaciones multi-tipo entre elementos por medio de un conjunto de tripletas del tipo
(sujeto, predicado, objeto) ([140])
2
http://neo4j.com

13
consulta sencilla consiste en una cláusula MATCH seguida de una de tipo WHERE y de
una de tipo RETURN. A continuación se muestra un ejemplo de una consulta Cypher
que hace uso de esas tres cláusulas para devolver el nombre de la ciudad en la que vive
una persona llamada david :
MATCH (a:person)-[:lives_in]->(b)
WHERE a.name=’david’
RETURN b.name

Recientemente, se ha creado el proyecto de código abierto OpenCypher3 que trata


de brindar una nueva implementación pública del lenguaje de consulta Cypher sobre
cualquier sistema. Con este paso, sus creadores esperan que Cypher se convierta en un
estándar para bases de datos en grafo.

Neo4j y Cypher son las tecnologı́as que se han utilizado durante el desarrollo de este
trabajo para el manejo de grafos con propiedades, los motivos principales por los que
han sido utilizadas son el tipo de licencia que disponen, su capacidad multi-plataforma,
ofrecen las herramientas necesarias para los procedimientos de almacenamiento y ex-
tracción de información que necesitaremos, y presentan una curva de aprendizaje suave,
convirtiéndose en un complemento natural y permitiendo centrar el foco en los métodos
que desarrollaremos, y no en la tecnologı́a que hay detrás.

La mayorı́a de métodos de aprendizaje automático existentes hasta el momento,


trabajan con datos de entrada dimensionales: elementos que están constituidos por una
serie de atributos prefijados, de tal forma que cada elemento perteneciente al conjunto
de entrenamiento posee los mismos atributos. Ası́, el conjunto de entrenamiento queda
constuido como una tabla en la que las filas representan cada ejemplo de entrenamiento
y las columnas sus atributos. La intención de esta Tesis es ofrecer la posibilidad de llevar
a cabo tareas de aprendizaje automático en la que el humano no tiene la necesidad de
indicarle al sistema cuáles son los atributos de los elementos a tener en cuenta para llevar
a cabo el aprendizaje. Si existe un elemento (un nodo) que está inmerso en una base de
datos (un grafo con propiedaes), la tarea de seleccionar qué atributos de dicho elemento
son adecuados para una tarea de aprendizaje automático determinada puede ser muy
complicada o en algunas ocasiones incluso imposible. Los métodos que presentaremos en
esta Tesis construirán representaciones de cada elemento en el sistema a partir de toda la
3
http://www.opencypher.org/

14
información presente en la red. Por este motivo, necesitamos plantear llas definiciones
básicas relacionadas con los modelos de aprendizaje automático que serán utilizados
durante el presente trabajo.

Comenzaremos dando una definición de grafo uni-relacional y de algunos de sus com-


ponentes y propiedades el cual servirá de base para la definición de grafo multi-relacional
y de grafo con propiedades, cuyas definiciones también irán acompañadas de definiciones
de algunos de sus componentes y propiedades, la segunda parte del capı́tulo presenta
definiciones de estructuras matemáticas relacionadas con el aprendizaje automático, sus
algoritmos y la estimación de sus errores.

1.2. Grafos

Un grafo es una estructura matemática compuesta por dos tipos de elementos: no-
dos (vértices) y aristas (enlaces). En el que las aristas representan relaciones entre los
nodos. Desde hace algunos años se han desarrollado tanto herramientas teóricas como
aplicadas que modelan redes en las que no todos los nodos representan la misma idea
o concepto, redes en las que no todas las relaciones entre los nodos son del mismo tipo
[116], ası́ como redes que poseen conjuntos de propiedades asociadas a nodos y aristas
[115]. Existen numerosos tipos de grafos, algunos de ellos poseen direcciones asociadas
a las aristas, otros poseen etiquetas o propiedades asociadas a sus elementos. A conti-
nuación presentaremos los tipos de grafo (junto con sus caracterı́sticas y propiedades)
que serán utilizados durante la tesis.

Comenzaremos dando una definición de grafo uni-relacional ası́ como definiciones


de componentes, propiedades y casos concretos de grafos uni-relacionales para pasar a
describir los grafos multi-relacionales junto con algunas de sus caracterı́sticas. Por último
daremos una definición de grafo con propiedades, la estructura matemática sobre la que
realizamos las invetigaciones presentadas en este trabajo.

15
1.2.1. Grafos Uni-Relacionales

Definition 1. Un Grafo Uni-Relacional (No Dirigido) se define formalmente como un


par Gu = (Vu , Eu ) donde Vu es un conjunto cualquiera que representa los nodos del
grafo, y Eu ⊆ {x ∈ P(Vu ) : |x| = 2} representa el conjunto de aristas del grafo, un
conjunto de pares no ordenados de elementos de Vu .

Si las aristas consisten en un par de vértices ordenados en lugar de en un par de


vértices sin orden, estaremos hablando de un grafo uni-relacional dirigido.

Definition 2. Un Grafo Uni-Relacional Dirigido se define formalmente como un par


Gd = (Vd , Ed ) donde Vd es un conjunto cualquiera que representa los nodos del grafo, y
Ed ⊆ Vd ×Vd representa el conjunto de aristas del grafo, un conjunto de pares ordenados
de elementos de Vd .

La diferencia entre un grafo (uni-relacional) dirigido y uno no dirigido es que en el


caso del dirigido las aristas poseen un orden en la manera en la que conectan a los nodos,
mientras que en los grafos no dirigidos no. En la figura 1.1 se muestra un ejemplo de
grafo dirigido (izquierda) y otro de grafo no dirigido (derecha). Cabe destacar que esta
diferenciación entre grafo dirigido y no dirigido es aplicable a todos los tipos de grafo que
vamos a presentar aquı́ (hipergrafos, grafos multi-relacionales y grafos con propiedades)
pero en este trabajo nos vamos a centrar en las definiciones de grafos dirigidos por ser el
caso al que nos enfrentamos a lo largo de esta tesis. Utilizaremos el término grafo para
referirnos a un multigrafo uni-relacional dirigido, grafo multi-relacional para referirnos
a un grafo multi-relacional dirigido y grafo con propiedades para referirnos a un grafo
con propiedades dirigido.

Figura 1.1: Ejemplo de grafo dirigido (izquierda) y de grafo no dirigido (derecha).

16
En el caso de que las aristas conecten un número de nodos diferente a dos estaremos
hablando de un hipergrafo. El número de nodos que conecta una arista es denominada
la aridad de dicha arista.

Definition 3. Un Hipergrafo Uni-Relacional Dirigido se define formalmente como un


par Gh = (Vh , Eh ) donde Vh es un conjunto cualquiera que representa los nodos del
hipergrafo, y Eh ⊆ {x ∈ P(Vh )} representa el conjunto de aristas del hipergrafo, un
conjunto de subconjuntos ordenados de Vh .

Figura 1.2: Ejemplo de hipergrafo con 7 nodos y 4 hiperaristas.

Es evidente que en el caso en que nos encontremos ante un hipergrafo en el que


todas sus aristas tienen aridad 2, estaremos hablando de un grafo (también llamado
grafo binario, por la naturaleza binaria de sus aristas). En la figura 1.2 se muestra un
ejemplo de hipergrafo no dirigido compuesto por 7 nodos y 4 hiperaristas: una de ellas
con aridad 1, otra con aridad 2 y dos de ellas con aridad 3.

A pesar de que los resultados presentados en este trabajo son aplicables en el caso de
hipergrafos, la investigación se ha centrado en la aplicación de técnicas de aprendizaje
automático sobre grafos binarios, ya que representan el caso más habitual y la mayorı́a
de los conjuntos de datos disponibles están basados en relaciones binarias.

Centrémonos ahora en los grafos binarios dirigidos. Cuando una arista e = {a, b} ∈ E
conecta dos vértices a, b ∈ V se dice que la arista e es incidente a los nodos a y b. Además

17
diremos que el nodo a es adyacente a (vecino de) el nodo b y viceversa. Si una arista
conecta un vértice con sı́ mismo l = {a, a} ∈ E diremos que dicha arista l es un lazo.

En ocasiones, puede ser útil que en un grafo existan diferentes aristas que conectan
el mismo par de nodos, en ese caso, la definiciñon de grafo uni-relacional (grafo simple)
presentada es insuficiente y aparece el concepto de multigrafo.
Definition 4. Un Multigrafo Uni-Relacional Dirigido se define formalmente como un
par G = (V, E) donde V es un conjunto cualquiera que representa los nodos del grafo, y
E ⊆ {x ∈ P(V ) : |x| = 2} representa el conjunto de aristas del grafo, un multiconjunto
de pares no ordenados de elementos de V .

Es habitual utilizar el término grafo simple para referirse a un grafo que no es un


multigrafo. En la Figura 1.3 se muestra un ejemplo de multigrafo dirigido.

Figura 1.3: Ejemplo de multigrafo dirigido.

Un concepto muy útil dentro de la teorı́a de grafos es el concepto de camino, ya que


permite estudiar relaciones de distancia y conectividad entre diferentes elementos en un
grafo.
Definition 5. Un camino P en un grafo G = (V, E) es una sucesión P = n1 , l1 , . . . , lk−1 , nk
alternada de nodos y aristas, de tal manera que la arista li conecta el nodo ni y el nodo
ni+1 : li = (ni , ni+1 ). Decimos que el camino P conecta el nodo n1 (nodo origen) y el
nodo nk (nodo destino) y tiene logitud k − 1.

En la Figura 1.4 se muestran tres ejemplos (en rojo) de caminos en tres grafos no
dirigidos.

A continuación definimos dos propiedades que pueden existir entre un par de grafos
y que resultan de gran utilidad en diferentes aplicaciones.

18
Figura 1.4: Tres ejemplos (en rojo) de caminos en tres grafos no dirigidos.

Definition 6. Un subgrafo de un grafo G = (V, E) es un grafo GS = (VS , ES ) tal que


VS ⊆ V y ES ⊆ ES .
Definition 7. Dos grafos G1 = (V1 , E1 ) y G2 = (V2 , E2 ) se dice que son isomorfos
cuando existe una proyección biyectiva π : V1 → V2 entre los conjuntos de sus vértices
que conserva la adyacencia, (π(v), π(u)) ∈ E2 si (v, u) ∈ E1 .

En la Figura 1.5 se muestra un ejemplo de dos grafos isomorfos y una biyección que
demuestra el isomorfismo.

Figura 1.5: Ejemplo de dos grafos isomorfos.

Se puede establecer una clasificación entre los grafos cuyos nodos están conectados a
través de un camino con el resto de nodos del grafo y los grafos que no. A continuación
presentamos la definición de grafo conexo.
Definition 8. Un grafo G = (V, E) se dice conexo si, para cualquier par de vértices
u, v ∈ V , existe al menos un camino P = u, l1 , . . . , lk−1 , v que los conecta.

En la Figura 1.6 se muestra un ejemplo de grafo no dirigido conexo (izquierda) y un


ejemplo de grafo no dirigido no conexo (derecha). Cada uno de los subgrafos conexos

19
Figura 1.6: Ejemplo de grafo no dirigido conexo (izquierda) y de grafo no dirigido no
conexo (derecha).

que no están conectados con ningún otro nodo en un grafo es denominado componente
conexa.

Existe un tipo especial de camino denominado ciclo que representa un concepto muy
importante en teorı́a de grafos debido a su relación con la conectividad y clusterización.
A continuación presentamos la definición de ciclo en un grafo.
Definition 9. Un ciclo en un grafo G = (V, E) es un camino P = u, l1 , . . . , lk−1 , u
que conecta un vértice u consigo mismo y que no contiene dos veces la misma arista,
li 6= lj ∀li , lj ∈ P si i 6= j.

Figura 1.7: Cuatro de los ciclos presentes en un grafo no dirigido.

En la Figura 1.7 se muestran cuatro de los ciclos presentes en un grafo no dirigi-


do. A continuación presentamos la definición de árbol, un caso especial de grafo muy
importante en numerosas áreas como la estructura de datos o el aprendizaje automático.
Definition 10. Un árbol es un grafo uni-relacional no dirigido G que satisface:

G es conexo y no tiene ciclos .


G no tiene ciclos y, si se añade alguna arista se forma un ciclo.
G es conexo y si se le quita alguna arista deja de ser conexo.

20
Dos vértices cualquiera de G están conectados por un único camino simple.

Las condiciones anteriores son todas equivalentes, es decir, si se cumple una de ellas,
las otras también se cumplen. Para árboles finitos además se cumple que si un árbol G
tiene un número finito de vértices, n, entonces tiene n − 1 aristas.

A pesar de que la definición de árbol aquı́ presentada requiere que G sea no dirigido,
podemos decir que un árbol dirigido es un grafo dirigido que serı́a un árbol si no se
consideraran las direcciones de las aristas. Un árbol recibe el nombre de árbol con raı́z
si un vértice ha sido designado raı́z, en este caso las aristas tienen una orientación
natural desde la raı́z y el árbol posee una altura. Recorriendo el mismo en forma de
grafo dirigido y considerando que las aristas parten desde la raı́z hacia el resto de los
vértices para terminar en los nodos hoja, de forma tal que todo camino inicia en la raı́z
y termina en una hoja, puede afirmarse que el árbol posee una altura h. Dicha altura
será igual a la longitud del camino con más aristas, esa dirección desde la raı́z hacia las
hojas marca la relación padre (su inversa la relación hijo), un nodo que se encuentra en
el camino desde la raı́z a un nodo del árbol es denominado ancestro de dicho nodo. En
la figura 1.8 se muestra un ejemplo de árbol en el que si definiéramos el vértice 6 como
el nodo raı́z, los nodos 1,2 y 3 pasarı́an a ser hojas.

Figura 1.8: Ejemplo de grafo con propiedades con tipos asociados a nodos y aristas.

La unión disjunta de varios árboles da lugar a un bosque. Dicho de otras palabras,


un bosque es un grafo no dirigido en el que todas sus componentes conexas son árboles.

Gracias a la estructura de grafo uni-relacional, que prescinde completamente de


estructuras enriquecidas en los conjuntos de nodos y aristas, ha sido posible llevar a
cabo grandes avances no solo en el contexto de los resultados matemáticos de Teorı́a de

21
Grafos sino también en entornos más aplicados, como la Teorı́a de Redes Complejas o la
Teorı́a de Redes Sociales, donde ha proporcionado la herramienta conceptual necesaria
para dar resultados generales.

Sin embargo, en muchı́simos fenómenos podemos darnos cuenta de que las relaciones
existentes entre los diferentes elementos a modelar son heterogéneas, es decir, no existe
un único tipo de relación entre los elementos, o precisan de estructuras de representación
más ricas, por lo que la definición anterior debe ser extendida para abarcar este tipo de
situaciones.

1.2.2. Grafos Multi-Relacionales

Con el objetivo de modelar situaciones en las que las relaciones entre los elementos
son diversas se introduce el concepto de Grafo Multi-relacional, que extiende ligeramente
la definición de grafo uni-relacional añadiendo posibles etiquetados a las aristas del grafo:

Definition 11. Un Grafo Multi-Relacional es una tripleta, Gm = (Vm , Em , τm ), donde


(Vm , Em ) es un grafo uni-relacional dirigido y τm : Em → Ω es una función que asigna
a cada arista del grafo un tipo de arista determinado en un conjunto Ω.

En la Figura 1.9 se muestra un ejemplo de grafo multi-relacional con tres tipos de


relaciones. Gracias al tipado en las aristas, podemos crear concepciones abstractas de
caminos denominadas traversals que nos permiten encontrar relaciones complejas a larga
distancia entre nodos de un grafo.

Definition 12. Un traversal, T , es una sucesión (n1 , r1 , n2 , r2 , . . . , rq , nq+1 ), donde ri ∈


Ω es un tipo válido para las aristas (∃l ∈ E tal que τ (l) = ri ).

En las condiciones anteriores, podemos definir la aplicación de un traversal sobre un


grafo multi-relacional de la siguiente forma:

Definition 13. Si T = (t1 , r1 , t2 , r2 , . . . , rq−1 , tq ) es un traversal, una aplicación, A, de T


sobre un grafo multi-relacional, G = (V, E, τ ), es el conjunto de caminos P1 , ..., P|A| en el
grafo G, donde cada camino P = n1 , l1 , . . . , lq−1 , nq en A cumple ∀1 ≤ i ≤ q(τ (li ) = ri ).

22
Figura 1.9: Ejemplo de grafo multi-relacional con tres tipos de relaciones.

Las definiciones presentadas para grafos uni-relacionales son aplicables a los grafos
multi-relacionales simplemente considerando el grafo multi-relacional como un grafo
uni-relacional a excepción de las definiciónes de isomorfismo.

Definition 14. Dos grafos multi-relacionales G1 = (V1 , E1 , τ1 ) y G2 = (V2 , E2 , τ2 ) se


dice que son isomorfos cuando existe una proyección biyectiva π = (fn , fe ) entre los
nodos fn : V1 → V2 y entre las aristas fe : E1 → E2 tal que se respeta el tipo de las
aristas, ∀li = (v, n) ∈ E1 , fe (li ) = (fn (v), fn (u)) ∈ E2 y τ1 (li ) = τ2 (fe (li )).

Si enriquecemos la definición de grafo multi-relacional agregando propiedades en


forma de pares (clave, valor) tanto a los nodos como a las aristas obtenemos un Grafo
con Propiedades, donde las propiedades permitirán representar información compleja
asociada a los elementos del grafo.

1.2.3. Grafos Con Propiedades

El término Property Graph (Grafo con Propiedades en español) hace referencia a


un tipo de grafo dirigido y multi-relacional en el que tanto las aristas como los nodos
poseen un número indeterminado de propiedades asociadas.

23
Si enriquecemos la definición de grafo multi-relacional agregando propiedades en
forma de pares (clave, valor) tanto a los nodos como a las aristas obtenemos un Grafo
con Propiedades, donde las propiedades permitirán representar información adicional
asociada a los elementos del grafo.

Definition 15. Un Grafo con Propiedades es una tupla G = (V, E, τ, µ) donde (V, E, τ )
es un grafo multi-relacional, y µ es una función que relaciona cada nodo o arista en
el grafo con su conjunto de propiedades µ : (V ∪ E) × R → S, donde R representa el
conjunto de posibles claves, y S el conjunto de posibles valores asociados.

En algunas secciones de este trabajo haremos uso de grafos con propiedades en


los que, además, los nodos pueden poseer uno o más tipos. Por tanto, la función τ
tomará valores de forma general en los subconjuntos de Ω, es decir, τ : V → P(Ω), donde
P(Ω) representa todos los subconjuntos de Ω. Un ejemplo de un grafo con propiedades
compuesto por dos nodos y una relación, en el que tanto los nodos como la relación
tienen asociado un tipo, se muestra en la Figura 5.1.

Figura 1.10: Ejemplo de grafo con propiedades con tipos asociados a nodos y aristas.

El uso de propiedades en grafos es lo suficientemente flexible como para poder incluir


la función de etiquetado de tipos de aristas, τ , como una propiedad más a partir de µ,
aquı́ la reflejamos por separado para enfatizar el hecho de que un Grafo con Propiedades
no es más que una extensión natural de los Grafos Multi-relacionales pero a lo largo de
la tesis, será habitual utilizar el término grafo con propiedades tanto para estructuras
del tipo (V, E, τ, µ) como para estructuras del tipo (V, E, µ), en las que el tipo de las
aristas (y los nodos) se incluye (o no) como una propiedad más a través de la función µ.
Además, cuando hagamos uso de estas segundas estructuras, forma en la que definiremos
la naturaleza de las aristas será diferente.

Definition 16. Un Grafo con Propiedades es una tupla G = (V, E, µ) donde V repre-
senta el conjunto de nodos del grafo, E el conjunto de aristas del grafo y µ ∈ M es
una función que relaciona cada nodo o arista en el grafo con su conjunto de propiedades
µ : (V ∪ E) × R → S, donde R representa el conjunto de posibles claves, y S el conjunto

24
de posibles valores asociados. Las aristas e ∈ E deben poseer un valor µ(e, γ) para la
clave γ (incidencias).

Cabe indicar que en este caso, a diferencia de en las definiciones tradicionales de gra-
fos, los elementos en E son sı́mbolos que representan a las aristas y no pares de sı́mbolos
en V como es lo habitual. La forma en la que se especifican los nodos participantes en
una arista (un elemento en E) es a través de su propiedad γ, cuyo valor estará confor-
mado por una lista ordenada de elementos en V . Gracias a que la longitud de la lista
almacenada en la propiedad γ no tiene restricción en su tamaño se abre la posibilidad de
que una arista conecte un número de nodos en V diferente a 2, permitiendo ası́ trabajar
con hipergrafos con propiedades.

La dirección de las aristas (el orden en el que se conectan los nodos incidentes)
vendrá determinada por el orden de los elementos en la lista ordenada almacenada a
través de la propiedad γ.

Figura 1.11: Grafo binario con propiedades G1 con 3 nodos y 3 aristas.

En la Figura 3.12 se muestra un grafo binario con propiedades consistente en 3


nodos y 3 aristas en el que se han ubicado representaciones del conjunto de propiedades
de cada elemento (nodo o arista) del grafo. Nótese que en este caso, el valor de la
propiedad γ (incidencias) de cada una de las aristas es una lista con dos nodos, por lo
que todas las relaciones son binarias y por tanto nos encontramos ante un grafo binario
con propiedades.

En la Figura 3.13 se muestra un hipergrafo con propiedades consistente en 5 nodos y


4 hiperaristas, dos de ellas binarias y dos de ellas con cardinalidad 3. De nuevo, se han
ubicado representaciones del conjunto de propiedades de cada elemento (nodo o arista)
del hipergrafo. Nótese que en este caso, el valor de la propiedad γ (incidencias) de cada

25
Figura 1.12: Hipergrafo con propiedades H1 con 5 nodos y 4 hiperaristas.

una de las hiperaristas es una lista de longitud variable (en ocasiones longitud 2 y en
ocasiones longitud 3) por lo que no todas las relaciones son binarias y por tanto nos
encontramos ante un hipergrafo con propiedades.

A pesar de que la definición de grafo con propieades planteada aquı́ permite trabajar
con hipergrafos, la definiciones que se presenten a partir de ahora estarán orientadas a
trabajar con grafos binarios.

Las definiciones planteadas para los grafos multi-relacionales (extendidas a partir


de las definiciones planteadas para los grafos uni-relacionales) se extienden de manera
natural a los grafos con propiedades considerando el grafo con propiedades como un grafo
multi-relacional ignorando su función µ a excepción de los traversals y sus aplicaciones
y el isomorfismo.

Dado el alfabeto de todos los posibles predicados que se pueden construir sobre los
elementos de un grafo Σ (los predicados sobre aristas se presentarán entre corchetes y los
predicados sobre nodos se presentarán entre paréntesis), las expresiones regulares que
se pueden utilizar para construir un traversal en un grafo con propiedades se definen:

26
1. (p), [r] ∈ Σ son expresiones regulares.

2. () = (true) y [] = [true] son expresiones regulares que representan predicados que


siempre son ciertos (sobre nodos y aristas, respectivamente).

3. Si a y b son expresiones regulares, entonces:

a) a + b es una expresión regular


b) a · b (o ab) es una expresión regular.
c) a∗ es una expresión regular.
d ) (a) es una expresión regular.

4. Ninguna otra expresión salvo las anteriores es una expresión regular válida para
constiituir un traversal en un grafo con propiedades.

Nota: La precedencia de los operadores es (de más a menos): ∗, ·, +.

Definition 17. Un traversal T en un grafo con propiedades G es una expresión regular


en el lenguaje construido sobre el alfabeto de todos los posibles predicados que se pueden
construir sobre los elementos del grafo G.

Cabe destacar que a pesar de que no hemos impuesto la restricción de que la expre-
sión regular que consituye un traversal en un grafo con propiedades intercale predicados
sobre nodos y predicados sobre aristas, una expresión regular sin esta caracterı́stica
nunca podrá generar un lenguaje aceptado por un camino en un grafo con propiedades.

A continuación presentamos algunos ejemplos de expresiones regulares construidas


sobre el alfabeto de predicados Σ = {(p), [r]}:

1. [r]

2. ([r][r])∗

3. [r](p)[r]

4. ([r](p)) ∗ []

27
5. [r](p)[r] + []

El lenguaje definido por la expresión regular presente en el ejemplo número 2 nunca


podrá ser cumplido por un camino (debido a que no representa una secuencia alternada
de predicados sobre aristas y sobre nodos).
Definition 18. Si T es un traversal en un grafo con propiedades G = (V, E, µ), una
aplicación, A, de T sobre G, es el conjunto de caminos P1 , ..., P|A| en el grafo G, donde
para cada Pi = (v0 , e0 , v1 , ..., en−1 , vn ), la secuencia e0 , v1 , ..., vn−1 , en−1 de elementos que
componen el camino cumplen (uno a uno) con los predicados impuestos por una cadena
válida en el lenguaje determinado por la expresión regular T .
Definition 19. Dos grafos con propiedades G1 = (V1 , E1 , µ1 ) y G2 = (V2 , E2 , µ2 ) se
dice que son isomorfos cuando existe una proyección biyectiva π = (fn , fe ) entre los
nodos fn : V1 → V2 y entre las aristas fe : E1 → E2 tal que se respeta la adyacencia,
∀li = (v, n) ∈ E1 , fe (li ) = (fn (v), fn (u)) ∈ E2 y las propiedades, ∀r ∈ R, ∀a ∈ V1 ∪
E1 , µ1 (r, a) = µ2 (r, π(a)).

1.3. Aprendizaje Automático

El Aprendizaje Automático constituye un conjunto de algoritmos denominados data-


driven, es decir, de manera opuesta al funcionamiento habitual de la mayorı́a de los
algoritmos son los datos los que le indican al algoritmo cómo de buena es una respuesta.
Por ejemplo, un hipotético algoritmo no perteneciente a la familia de los algoritmos
de Aprendizaje Automático que evalúe si existe una cara en una fotografı́a dada con-
tendrá en su interior la definición de cómo es una cara (un disco redondo de color piel,
con un área oscura donde se espera que estén los ojos, etc...). Un algoritmo de aprendiza-
je automático que evalúe si existe una cara en una fotografı́a dada no tendrá codificada
esa información, si no que la aprenderá a través de ejemplos: Se le enseñarán imáge-
nes que contienen caras e imágenes que no las contienen y el algoritmo aprenderá a
reconocer qué imágenes contienen una cara y cuáles no.

Por ser el Aprendizaje Automático el área con el que trataremos de descubrir infor-
mación útil a partir de grafos con propiedades, y más concretamente a partir de bases
de datos en grafo, presentamos a continuación las definiciones preliminares relacionadas

28
con Aprendizaje Automático y que serán utilizadas de maenra natural a lo largo de la
presente Tesis.

1.3.1. Aprendiendo a partir de Datos

El objetivo del Aprendizaje Automático es encontrar una manera sistemática de


predecir un fenómeno dado un conjunto de medidas sobre el mismo. Dicho en otras
palabaras, el aprendizaje automático es la tarea de inferir a partir de unos datos reco-
pilados un modelo que prediga el valor de salida en base a las variables observadas o
variables de entrada de un sistema. De tal manera que encontrar el modelo apropiado se
basa en la asunción de que la varialbe de salida no toma su valor de manera aleatoria, si
no que su valor se encuentra relacionado con los valores de las variables de entrada. En
medicina por ejemplo, el objetivo puede ser encontrar unas regla de decisión (un mode-
lo) a partir de un histórico de sı́ntomas de pacientes y su diagnóstico (datos recopilados)
para predecir el diagnóstico de un nuevo paciente a partir de sus sı́ntomas.

Para dar una definición más precisa, asumamos un conjunto de casos u objetos
tomados de un universo Υ. Ordenemos el conjunto de medidas de cada uno de los
objetos de tal manera que los valores x1 , x2 , ..., xp (xj ∈ Xj ) se corresponden con el
vector asociado al objeto ~x. Dichos valores de entrada (x1 , x2 , ..., xp ) forman un vector
p-dimensional de entrada ~x tomando sus valores en X1 ×...×Xp = X , donde X es definido
como el espacio de entrada (el espacio donde habitan todos los posibles objetos) [88].
De manera similar, denotaremos y ∈ Y al valor de la variable de salida Y que puede
estar asociada a cada uno de los objetos, donde Y se define como el espacio de salida 4 .
Por definición, tanto el espacio de entrada como el de salida contienen todos los posibles
valores de entrada y todos los posibles valores de salida. Las variables asociadas a los
objetos de entrada son denominadas habitualmente features, los objetos de entrada
instancias o ejemplos y la variable de salida es denominada habitualmente target. Entre
las variables que deifinirán nuestros problemas, distinguimos entre variables ordenadas
y categóricas. Formalmente, se definen como sigue:

Definition 20. Un variable Xj es ordenada si Xj es un conjunto ordenado. En parti-


4
A no ser que se indique lo contrario, el aprendizaje automático en esta Tesis se reducirá a la
predicción de una variable de salida simple. De manera más general, este modelo puede entenderse como
uno de varios que calculan cada uno una componente de un vector de salida de mayor dimensionalidad.

29
cular, Xj se dice que es numérica si Xj = R.

Definition 21. Un variable Xj es categórica si Xj es un conjunto finito de valores, sin


ningún orden natural.

Con respecto a los métodos de aprendizaje automático, distinguimos entre los méto-
dos de aprendizaje supervisado y los métodos de aprendizaje no supervisado en función
de si se utilizan o no valores target asociados a los ejemplos.

Definition 22. En un algoritmo de aprendizaje automático no supervisado los ejemplos


no están etiquetados, es decir, no poseen valor target.

Definition 23. En un algoritmo de aprendizaje automático supervisado los ejemplos


están etiquetados, es decir, se tiene cada ejemplo asociado a un valor target.

En el caso de los algoritmos de aprendizaje no supervisado que trabajan con variables


categóricas, los ejemplos no estarán etiquetados (no poseen un valor target asociado),
por lo que en dicho caso el algoritmo no podrá predecir el nombre de la clase a la que
pertenece un objeto pero pueden clusterizar los datos en diferentes grupos según su
similitud y obtener información útil acerca de cómo se distribuyen los ejemplos en el
espacio.

En una tarea tı́pica de aprendizaje automático, las observaciones pasadas son alma-
cenadas en un conjunto L, denominado conjunto de entrenamiento. El cual consiste en
un conjunto de vectores de entrada observados junto a su valor de target (en el caso del
aprendizaje supervisado) y se define formalmente como:

Definition 24. Un conjunto de entrenamiento L (en el contexto del aprendizaje super-


visado) es un conjunto de N pares de vectores de entrada y sus correspondientes valores
de salida (~x1 , y1 ), ..., (~xN , yN ), donde ~xi ∈ X y yi ∈ Y .

De manera equivalente, un conjunto de vectores de entrada de dimensión p puede ser


representado mediante una matriz X ~ de dimensiones N ×p, en la que las filas i = 1, ..., N
corresponden a los vectores de entrada (ejemplos) y las columnas j = 1, ..., p a las
variables de entrada Xj . De manera similar se puede construir un vector ~y = (y1 , ..., yN )
~
que posee todos los valores target asociados a cada ejemplo en X.

30
En este contexto, la tarea de aprendizaje supervisado puede ser definida como el
aprendizaje de una función ϕ : X → Y a partir de un conjjunto de entrenamiento
~ ~y ). El objetivo es encontrar un modelo tal que sus predicciones ϕ(~x) sean tan
L = (X,
buenas como sea posible. Si Y es una variable categórica estaremos hablando de una
tarea de clasificación. Si Y es numérica estaremos hablando de una tarea de regresión.
Dichos modelos pueden definirse como:

Definition 25. Un clasificador es una función ϕ : X → Y donde Y es un conjunto


finito de clases (o etiquetas) {c1 , ..., cJ }.

Definition 26. Un regresor es una función ϕ : X → Y donde Y = R.

1.3.2. Evaluación del Rendimiento

Desde el punto de vista estadı́stico, las variables de entrada X1 , ..., Xp y la variable de


salida Y conforman una variable aleatoria tomando sus valores en X × Y con respecto a
la distribución de probabilidad P (X, Y ), donde X denota el vector aleatorio (X1 , .., Xp ).
P (X = ~x, Y = y) es la probabilidad de que las variables aleatorias X e Y tomen los
valores ~x e y respectivamente cuando obtengamos un objeto al azar del universo Υ.

Utilizar el algoritmo A para aprender un modelo ϕL 5 cuyas predicciones sean las


mejores posibles puede ser expresado como encontrar un modelo que minimiza el error
de predicción esperado, definido como sigue:

Definition 27. El error de predicción esperado, también conocido como el error de


generalización o el error de test, del modelo ϕL es 6 :

Err(ϕL ) = EX,Y {L(Y, ϕL (X))},


5
Los modelos serán denotados ϕL para indicar que fueron construidos a partir del conjunto de
entrenamiento L.
6
EX {f (X)} denota el valor esperado de f (x) (para x ∈ X ) con respecto a la distribución de proba-
bilidad de la variable aleatoria X y se define como:
X
EX {f (X)} = P (X = x)f (x).
x∈X

31
donde L es el conjunto de entrenamiento utilizado para construir ϕL y L es una
función de error que mide la discrepancia entre sus dos argumentos.

La ecuación presentada mide básicamente la predicción del error de ϕL sobre todos


los posibles objetos en el universo Υ (cada uno representado a través del par (x, y) ∈
X ×Y ), incluyendo las parejas observadas del conjunto de entrenamiento L pero también
de todos los objetos no observados de la forma X ×Y \L. Esto es debido a que el objetivo
no es realizar las predicciones más acertadas sobre el conjunto de entrenamiento L de los
datos conocidos, sino aprender un modelo que sea capaz de comportarse correctamente
en todo el conjunto de datos.

Para clasificación, la función de error mas habitual es la zero-one 7 , L(Y, ϕL (X)) =


1(Y 6= ϕL (X)), donde todas las clasificaciones erróneas son penalizadas de igual for-
ma. En este caso, la generalización del error de ϕL se convierte en la probabilidad de
clasificación incorrecta del modelo:

Err(ϕL ) = EX,Y {1(Y 6= ϕL (X))} = P (Y 6= ϕL (X))

En el caso de la regresión, la función de error más utilizada es la función de error


cuadrático, L(Y, ϕL (X)) = (Y − ϕL (X))2 , donde las diferencias más grandes entre el
valor predecido y el valor correcto son penalizados de manera más intensa que las pe-
queñas. Con esta función de error, el error de generalización del modelo pasa a ser:

Err(ϕL ) = EX,Y {(Y − ϕL (X))2 }


7
1(condición) denota la función unidad y se define como:
(
1 , si la condicion es cierta
1(condicion) =
0 , si la condicion es falsa

32
1.3.3. Estimando el Error de Predicción Esperado

En la prática, la distribución de probabilidad P (X, Y ) es normalmente desconocida,


realizar la evaluación de Err(ϕL ) suele ser imposible. De manera equivalente, normal-
mente es imposible evaluar datos adicionales L0 (a los presentes en L). En la mayorı́a
de los problemas, L constituye el único conjunto de datos disponible, y sobre él, el
modelo debe realizar tanto el aprendizaje como la evaluación del error de predicción es-
perado. Como ha sido revisado y descrito en múltiples ocasiones por diferentes autores
[131, 28, 81, 97, 68, 16], el error de generalización de la definición 27 puede ser estimado
de diferentes formas.

Para hacer la notación más clara, definamos primero E(ϕL , L0 ) como el error de
predicción medio del modelo ϕL sobre el conjunto de objetos L0 (posiblemente distinto
al conjunto L con el que se llevo a cabo el aprendizaje):

1 X
E(ϕL , L0 ) = L(yi , ϕL (~
xi ))
N0
(x~i ,yi )∈L0

donde N 0 es el tamaño del conjunto L0 .

La primera y más simple aproximación del error de generalización es la estimación de


resustitución. Dicha aproximación consiste en estimar Err(ϕL ) sobre el mismo conjunto
L utilizado para construir ϕL :

Errtrain (ϕL ) = E(ϕL , L)

En general, la estimación del error por resustitución es un estimador muy pobre de


Err(ϕL ). en particular, debido a que la mayorı́a de algoritmos de aprendizaje automático
tratan de minimizar precisamente Errtrain (ϕL ) (de manera directa o indirecta), utilizar
dicho error conlleva normalmente una evaluación demasiado optimista de ϕL , debido a
que el error de predicción esperado tenderá a comportarse de peor manera cuando se
enfrente a los objetos no observados (no pertenecientes a L).

La segunda aproximación del error de predicción esperado que vamos a presentar es


la estimación a través de un conjunto de prueba. La cual consiste en dividir el conjunto

33
de entrenamiento L en dos subconjuntos disjuntos Ltrain y Ltest , llamados conjunto de
entrenamiento y conjunto de prueba respectivamente, y utilizar el conjunto de entrena-
miento para realizar el aprendizaje, y el conjunto de prueba para evaluar el modelo. El
conjunto de prueba estima el error de generalización del modelo ϕL como el promedio
del error de predicción del modelo ϕLtrain sobre el conjunto Ltest :

Errtest (ϕL ) = E(ϕLtrain , Ltest )

Es habitual seleccionar el 70 % de los ejemplos de L para constituir Ltrain y el 30 %


para constituir Ltest , aunque el trabajo teórico propone reducir progresivamente el con-
junto de prueba conforme el tamaño de L crece [25]. En cualquier caso, se debe tener
cuidado al dividir el conjunto L de tal manera que los ejemplos que acaben en el subcon-
junto Ltrain sean independientes de los que acaban en Ltest y que provengan de la misma
distribución. Esto se peude garantizar normalmente haciendo una selección aleatoria de
los elementos en L a la hora de constituir los conjuntos de entrenamiento y prueba. A
pesar de que Errtest (ϕL ) proporciona una estimación del error de generalización mucho
más fiable que Errtrain (ϕL ) tiene el inconveniente de que reduce el número de ejemplos
sobre los que el modelo aprende. Si L es lo suficientemente grande, esto puede no ser
un problema, pero si L contiene sólo unos pocos ejemplos, la división en conjunto de
entrenamiento y conjunto de prueba puede dar lugar a un conjunto de entrenameinto
demasiado pequeño como para llevar a cabo un aprendizaje correcto y por tanto, para
que la estimación del error de generalización sea fiable.

Cuando L es pequeño, el estimador basado en la validación cruzada (K-Fold Cross


Validation, en inglés) es preferible frente a la estimación basada en el conjunto de prueba.
Dicha estimación consiste en dividir L de manera aleatoria en K subconjuntos disjuntos
L1 , ..., LK y estimar el error de generalización como el promedio del error de predicción
sobre los diferentes conjutos Lk de los modelos ϕL\Lk aprendidos sobre el resto de los
ejemplos de L que no se encuentran en Lk :

1
ErrCV (ϕL ) = E(ϕL\Lk , Lk )
K

La suposición detrás de esta definición es que debido a que cada modelo ϕL\Lk
está construido utilizando casi todo el conjunto L, éstos deben ser similares al modelo ϕL

34
aprendido a partir del conjunto completo L. Como resultado, la estimación E(ϕL\Lk , Lk )
también debe ser similar a Err(ϕL ). Apesar, de que el estimador basado en la validación
cruzada es computacionalmente mucho más costoso, dicho estimador tiene la ventaja de
que todos los pares (~x, y) ∈ L son utilizados para estimar el error de generalización de
ϕL . Es habitual fijar el valor de K en 10, un valor que a menudo ofrece valores estables
y fiables [81].

1.4. Conclusiones

35
Capı́tulo 2

Medidas para Grafos con


Propiedades

2.1. Introducción

La teorı́a de redes ha sido una valiosa herramienta para describir y analizar sistemas
sociales, biológicos, fı́sicos, de información y de muchas otras ı́ndoles. La mayorı́a de los
estudios en redes emplean grafos en los que todos los nodos (o vértices) representan el
mismo concepto y todas las aristas (o enlaces) representan el mismo tipo de relación
entre ellos. A pesar de que este tipo de grafo ha dado buenos resultados en multitud de
aplicaciones, se hace necesario extender tanto las definiciones básicas como el aparato
analı́tico desarrollado para poder tratar redes más complejas en las que existen diferentes
tipos de entidades y de relaciones entre éstas.

La aparición de las computadoras ha permitido la aplicación de métodos de sı́nte-


sis y análisis de grafos en muy diversas áreas del conocimiento humano, actualmente
hacemos uso de la maquinaria de la teorı́a de redes a diario: Cuando buscamos algo
en internet, en los sistemas de recomendación de los productos que recibimos ası́ como
en las rutas GPS que traza nuestro vehı́culo o nuestro teléfono inteligente. Haciendo
un recorrido por determinados métodos de análisis en redes podrı́amos destacar análi-
sis geodésicos (comprende medidas relacionadas con la distancia entre los elementos de

36
la red), de agrupamiento (relacionados con la cohesión entre los elementos de la red)
o análisis basados en caminos aleatorios, entre otros. Los primeros avances en méto-
dos de análisis de redes provienen del campo de las sociologı́a [?] con medidas como
la centralidad de los nodos (basada en el grado, en caminos mı́nimos, etc...). Con el
incremento en la capacidad de procesamiento de las computadoras y el acumulamiento
de grandes conjuntos de datos (gracias a sensores, redes sociales y servicios digitales
personalizados, entre otros) se han hecho necesarios métodos analı́ticos que permitan
obtener resultados más complejos y especı́ficos en datos altamente relacionados. De esta
forma se han desarrollado medidas de agrupamiento (clustering) que detectan grupos
altamente conectados (en redes sociales o en redes económicas, por ejemplo), medidas
que analizan el procesos de difusión a través de la red, medidas basadas en entropı́a o
complejidad y muchas otras herramientas que conforman a dı́a de hoy una teorı́a sólida
y robusta.

Desde hace algunos años se han desarrollado tanto herramientas teóricas como apli-
cadas que modelan redes en las que no todos los nodos representan la misma idea o
concepto ası́ como redes en las que no todas las relaciones entre los nodos son del mismo
tipo. Una posible forma de estructurar los grafos multi-relacionales es a través de una
red compuesta de un conjunto heterogéneo de nodos conectados a través de otro con-
junto heterogéndeo de aristas y en el que dos nodos pueden estar conectados por más
de una arista [?]. Otra forma de modelar redes con varios tipos de nodos es a través
de las redes multi-capa [?], en este tipo de redes existen diferentes capas y cada vértice
pertenece a alguna de ellas, esto permite modelar, por ejemplo, redes de transporte en
las que cada capa puede representar un tipo de transporte determinado, nótese que
pueden existir relaciones entre nodos situados en diferentes capas. Se han desarrollado
también lenguajes de consulta para Bases de Datos en Grafo ası́ como definiciones más
abstractas de lenguajes de consulta y generación de grafos multi-relacionales [?][?].

La aplicación de técnicas analı́ticas a redes multi-relacionales ha despertado gran


interés en los últimos años debido en parte a la facilidad de uso y accesibilidad a nue-
vas formas de almacenamiento computacional. Un posible método a la hora de aplicar
análisis tradicionalmente uni-relacionales a grafos multi-relacionales es proyectar estos
últimos a un grafo uni-relacional para ası́ aplicar las medidas habituales. Esta proyección
puede ser llevada a cabo a través de traversals, patrones predefinidos que al ser detecta-
dos en la red forman un nuevo enlace en la proyección [?]. También se han desarrollado
técnicas analı́ticas para redes multi-capa, en [?] se estudian medidas relacionadas con el

37
grado, coeficiente de clustering, comunidades y medidas que relacionan las capas entre
sı́. Numerosos estudios ya han analizado elementos de un grafo en función de ciertos
otros elementos de la red. En [?] se calcula la importancia de un nodo relativa a un
conjunto de nodos en un grafo a través del estudio de las distancias que los separan.
En [?] se analiza el caso de las redes bipartitas o Two Mode y se realiza un repaso por
medidas de agrupamiento y su aplciación en este caso concreto. En [?] se descubren
nuevas relaciones a partir de las caracterı́sticas y la asortatividad de los nodos. En [?] se
extiende la medida Page Rank para que sea sensible a determinados tópicos en la red.
Estos ejemplos pueden interpretarse como análisis multi-relacional ya que tratan a los
nodos y aristas de las redes que analizan como conjuntos heterogéneos.

En este texto se plantea una definición de grafo multirelacional y varias extensiones


de las medidas ya definidas para grafos unirelacionales a el caso de los grafos multirela-
cionales y sus elementos.

2.2. Grafos Multirelacionales

Definimos un grafo multirelacional G =< V, A > como una estructura matemática


consistente en un conjunto V de nodos (o vértices) y un multiconjunto A de aristas (o
enlaces) donde los elementos de A son pares ordenados < u, v > de nodos u, v ∈ V y en el
que tanto el conjunto de nodos como el multiconjunto de aristas se pueden descomponer
en subconjuntos de éstos de tal forma que V = V1 ∪ ... ∪ Vn y A = A1 ∪ ... ∪ Am . Además
los subconjuntos de nodos son disjuntos entre sı́ V1 ∩ ... ∩ Vn = ∅ y los subconjutos de
aristas también A1 ∩ ... ∩ An = ∅.

A los subconjuntos de nodos V1 , ..., Vn los denominamos tipos de nodos y a los


subconjuntos de aristas A1 , ..., Am los denominamos tipos de aristas. Dada una arista ai
y un tipo de arista Ai , si ai ∈ Ai decimos que la arista ai es del tipo Ai . Dado un nodo
vi y un tipo de nodo Vi , si vi ∈ Vi decimos que el nodo vi es del tipo Vi . Debe existir al
menos un tipo de nodo y un tipo de arista, en ese caso estarı́amos hablando de un grafo
unirelacional.

Todos los nodos y aristas deben estar asociados al menos a un tipo. Pueden existir
varias aristas que conecten el mismo par de nodos incluso en el mimso orden ai , ..., aj =<
u, v > y éstas pueden ser de los mismos o de diferentes tipos. Si a =< u, v > decimos

38
que la arista a conecta el nodo u con el nodo v, nótese que < u, v >6=< v, u >. Definimos
una función que indica el tipo de nodo o tipo de arista δ : V ∪ A → V1 , ..., Vn , A1 , ..., Am .

Se encuentran numerosos ejemplos de grafos multirelaciones en la naturaleza, en la


sociedad, en los sistemas de información. En las redes sociales, por ejemplo, las aristas
pueden representar diferentes interacciones por ejemplo entre un usuario o una foto. No
es lo mismo que un usuario se relacione con una foto por que aparece en ésta, que si se
relaciona con la foto porque es la persona que la publicó en la red social. En la figura
2.1 se muestra un ejemplo de grafo multirelacional en el que se muestra el tipo de cada
nodo y el tipo de cada arista. En concreto es una instantánea de una red social en el
que encontramos tres tipos de nodos y cuatro tipos de aristas.

Figura 2.1: Ejemplo de grafo multi-relacional social.

Otro importante ejemplo de redes multi-relacionales los constituyen las redes semánti-
cas. Éstas son una representación en forma de grafo de conocimiento lingüı́stico entre
conceptos. En la figura 2.2 se muestra una red semántica en la que encontramos tres
tipos de nodos y dos tipos de aristas.

39
Figura 2.2: Ejemplo de grafo multi-relacional semántico.

2.3. Medidas en Grafos Multirelacionales

A continuación realizamos una serie de definiciones de medidas sobre grafos multi-


relacionales y sus elementos. La mayorı́a de las medidas propuestas ya existen para el
caso de los grafos unirelacionales y ofrecemos su extensión para el caso multirelacio-
nal, otras sin embargo han sido diseñadas especı́ficamente para el caso multirelacional.
Estas medidas pueden ser entendidas como herrmamientas de diagnóstico, ranking, pre-
dicción, entre otras. Las medidas quedan organizadas según las siguientes categorı́as:
centralidad, agrupamiento, asortatividad y entropı́a.

2.3.1. Centralidad

Siempre ha sido importante localizar los elementos más importantes de un conjunto


ya sea para hacer clasificaciones, conocer la estructura fundamental del mismo o saber
cuáles son los elementos claves en determinadas situaciones. En el caso de los datos
modelados en forma de red, la centralidad normalmente se ha basado en los nodos
y ha tomado diferentes perspectivas, algunas se basan en conceptos locales como el
grado, otras se basan en conceptos más globales como la centralidad betweenness y
otras en el concepto de caminos aleatorios dentro del grafo. A continuación hacemos
un repaso por diferentes medidas de centralidad y proponemos definiciones aplicables a

40
redes multirelacionales.

Grado.

Una de las primeras medidas a la hora de clasificar los nodos de un grafo según su
importancia es el grado. El grado de un nodo en un grafo uni-relacional no dirigido es
el número de aristas incidentes a dicho nodo, en el caso de los grafos uni-relacionales
dirigidos distinguimos entre dos tipos de grado, el grado de entrada y el grado de salida.
El grado de entrada de un nodo es la cantidad de aristas cuyo segundo vértice es dicho
nodo, gre (v) = |{< u, v >∈ A}| con u ∈ V . El grado de salida de un nodo es el
número de aristas cuyo primer vértice es dicho nodo, grs (v) = |{< v, u >∈ A}| con
u ∈ V . Consideramos el grado global como gr(v) = gre (v) + grs (v). Nótese que en el
caso de los grafos unirelacionales los valores de grado coinciden con el número de nodos
vecinos por aristas entrantes o salientes, respectivamente gre (v) = |u ∈ V :< u, v >∈ A|
y grs (v) = |u ∈ V :< v, u >∈ A|.

En el caso de lo grafos multirelacionales existen aristas de diferente tipo, a ∈


A1 , ..., Am e incluso pueden existir varias aristas que conectan el mismo par de nodos y en
el mismo orden, por lo que se hace necesario plantear definiciones más amplias del con-
cepto de grado. A priori, se rompe la igualdad |{< u, v >∈ A}| = 6 |u ∈ V :< u, v >∈ A|
por lo que podemos crear una nueva clasificación del concepto de grado: el grado en-
trante de aristas grea (v) = |{< u, v >∈ A}| y el grado entrante de nodos gren (v) =
|u ∈ V :< u, v >∈ A| y el grado saliente de aristas grsa (v) = |{< v, u >∈ A}| y el grado
saliente de nodos grsn (v) = |u ∈ V :< v, u >∈ A|.

Podemos ampliar esta definición ponderando cada uno de los tipos de aristas, aplican-
do un coeficiente ci a cada tipo de arista Ai , de esta forma el grado de entrada de un nodo
0
v serı́a grea (v) = c1 |{< u, v >∈ A1 }|+...+cm |{< u, v >∈ Am }| y el grado de salida serı́a
0
grsa (v) = c1 |{< v, u >∈ A1 }| + ... + cm |{< v, u >∈ Am }|. También podemos ponderar
cada tipo en los nodos vecinos, de esta forma asignarı́amos un coeficiente di a cada tipo
0
de nodo Vi y los grados serı́an gren (v) = d1 |{u ∈ V1 :< u, v >∈ A}| + ... + dn |{u ∈ Vn :<
0
u, v >∈ A}| y grsn (v) = d1 |{u ∈ V1 :< v, u >∈ A}| + ... + dn |{u ∈ Vn :< v, u >∈ A}|.
Podemos construir grados de entrada y grados de salida más complejos combinando coe-
ficientes de nodos y coeficientes de aristas, de manera que podemos obtener un nuevo
grado de entrada gre0 (v) = c1 |{< u, v >∈ A1 }| + ... + cm |{< u, v >∈ Am }| + d1 |{u ∈

41
V1 :< u, v >∈ A}| + ... + dn |{u ∈ Vn :< u, v >∈ A}|, un nuevo grado de salida
0
grsa (v) = c1 |{< v, u >∈ A1 }| + ... + cm |{< v, u >∈ Am }| + d1 |{u ∈ V1 :< v, u >∈
A}| + ... + dn |{u ∈ Vn :< v, u >∈ A}| y un nuevo grado global gr0 (v) = gre0 (v) + grs0 (v).

Podemos definir también grados con respecto a determinados tipos de nodos V 0 =


Vi ∪ ... ∪ Vj y determinados tipos de aristas A0 = Ak ∪ ... ∪ Al de la siguiente forma
grs{V 0 ,A0 } (v) = |{u ∈ V 0 :< v, u >∈ A0 }| y gre{V 0 ,A0 } (v) = |{u ∈ V 0 :< u, v >∈ A0 }|.

Otra posibilididad es extender la definición escalar de grado a el concepto de vector,


en este caso podemos definir el grado entrante de aristas como GRea (v) = (|{< u, v >∈
A1 }|, ..., |{< u, v >∈ Am }|) con u ∈ V , el grado saliente de aristas como GRsa (v) =
(|{< v, u >∈ A1 }|, ..., |{< v, u >∈ Am }|) con u ∈ V , el grado entrante de nodos como
GRen (v) = (|{u ∈ V1 :< u, v >∈ A}|, ..., |{u ∈ Vn :< u, v >∈ A}|) y el grado saliente de
nodos como GRsn (v) = (|{u ∈ V1 :< v, u >∈ A}|, ..., |{u ∈ Vn :< v, u >∈ A}|). Podemos
ahora analizar el grado extendido a vector en el grafo multi-relacional de la figura 2.2,
el nodo de tipo Pais etiquetado con la palabra españa tendrı́a los siguientes grados
exendidos a vector: GRea (españa) = (2, 2) GRsa (españa) = (0, 0) GRen (españa) =
(2, 0, 2) GRsn (españa) = (0, 0, 0).

Betweenness Centrality.

Una forma habitual de centralidad está basada en la idea de que la importancia de


un nodo en un grafo está relacionada con la posición que el nodo ocupa con respecto
a los caminos en el grafo. Si pensamos en esos caminos como vı́as de comunicación, los
nodos que estén ubicados en más caminos serán más cruciales en la comunicación. Este
concepto es denominado Betweenness Centrality y se define como:

X σ(s, t|v)
bc(v) =
s6=ni 6=t∈V
σ(s, t)

Donde v es el nodo del cual queremos calcular su betweenness centrality, σ(s, t|v) es
el número total de caminos mı́nimos entre s y t que pasan por v, y σ(s, t) es el número
total de caminos mı́nimos entre el nodo s y el nodo t.

En el caso de lo grafos multi-relacionales se nos presentan varias posibilidades a

42
la hora de extender la definición de betweenness centrality. Una primera posibilidad
es proyectar el grafo de tal manera que contenga sólo nodos y aristas de determinados
tipos, de esta manera podemos definir el betweenness centrality de un nodo con respecto
a los tipos de aristas A0 = Ai ∪ ... ∪ Aj y los tipos de nodos V 0 = Vk ∪ ... ∪ Vl como sigue:

X σ{A0 ,V 0 } (s, t|v)


bc{A0 ,V 0 } (v) =
s6=ni 6=t∈V
σ{A0 ,V 0 } (s, t)

Donde σA0 ,V 0 (s, t|v) es el número total de caminos mı́nimos entre s y t que pasan por
v y que sólo utilizan aristas de los tipos definidos en A0 y nodos de los tipos definidos en
V 0 y σA0 ,V 0 (s, t) es el número total de caminos mı́nimos entre el nodo s y el nodo t que
sólo utilizan aristas de los tipos definidos en A0 y nodos de los tipos definidos en V 0 .

Podemos calcular el betweenness centrality de una manera más precisa añadiendo


restricciones a los caminos que participan en el cálculo. Podemos exigir que tengan una
longitud determinada y que los tipos de los nodos y las aristas que los conformen guarden
un orden determinado. Definimos una restricción de camino R como una secuencia de
tipos de nodos y tipos de aristas V1 A1 ...An−1 Vn . Decimos que un camino C cumple una
restricción R si el número de nodos en C es igual a n y además la secuencia de tipos
en sus nodos y aristas es la secuencia R. Definimos el betweeness centrality de un nodo
con respecto a las restricciones de camino R0 = {R1 , .., Rn } como:

X σR0 (s, t|v)


bcR0 (v) =
s6=ni 6=t∈V
σR0 (s, t)

Donde σR0 (s, t|v) es el número total de caminos mı́nimos entre s y t que pasan
por v y que cumplen con alguna de las restricciones en R0 y σR0 (s, t) es el número
total de caminos mı́nimos entre el nodo s y t que cumplen con alguna de las res-
tricciones en R0 . Podemos ahora analizar el betweenness centrality de algunos nodos
con respecto a algunas restricciones de camino en el grafo multi-relacional de la figu-
ra 2.2. Dadas las restricciones de camino R10 = {Ciudad − P ERT EN ECEA − P ais}
y R20 = {Compositor − N ACIOEN − P ais}, el nodo de tipo Pais etiquetado con la
palabra españa tendrı́a los siguientes betweenness centrality con respecto a las citadas
restricciones bcR10 (españa) = 2 y bcR20 (españa) = 2.

43
Page Rank.

Las medidas de centralidad basadas en caminos mı́nimos son muy útiles a la hora
de clasificar elementos en un grafo debido en gran medida a que tienen en cuenta la
estructura completa de la red pero tienen el inconveniente de que requieren de muchos
cálculos y para redes grandes dichos cálculos pueden volverse intratables. Una excelente
alternativa son las medidas de centralidad basadas en el vector propio, este tipo de
centralidad mide la importancia de un nodo en una red en función de la conectividad
de éste a otros nodos que también están bien conectados según este mismo criterio.

Una posible manera de interpretar la centralidad de vector propio es a través de


los caminos aleatorios. Supongamos un caminante que se mueve de manera aleatoria
de nodo en nodo a través de las aristas de un grafo uni-relacional dirigido, dado el
vector P = (p1 , ..., pn ) que indica la probabilidad pi de que el caminante se encuentre
en el nodo vi y dado el vector de probabilidad inicial P0 = (1/n, ..., 1/n), si queremos
saber la probabilidad de que el caminante esté en cada uno de los nodos del grafo en
el segundo instante deberemos multiplicar P0 por la matriz de adyacencia M del grafo
normalizada (de tal forma que todas las columnas sumen 1). Siguiendo este razonamiento
y asumiendo que en un número suficiente de pasos el vector P se estabiliza, podemos
calcular la probabilidad estacionaria de un caminante aleatorio de estar en cada uno de
los nodos del grafo hayando los valores del vector p en la siguiente ecuación M p = λp,
lo cual corresponde a hayar el vector propio de la matriz de adyacencia M .

El algoritmo PageRank [?], utilizado para medir la relevancia de páginas web en


Internet, es una variante de esta medida en la que se añade la probabilidad de que
el caminante aleatorio salte a una página aleatoria de la red en cualquier instante. La
probabilidad de que en cualquier momento el caminante salte a una página aleatoria de la
red es 1 − d, siendo d el damping factor. Es implementada añadiendo una probabilidad
constante a todos los nodos de la red en cada iteración. Dado un damping factor d,
podemos definir la centralidad Page-Rank de un nodo en un grafo uni-relacional dirigido
G =< V, A > como:

1−d X pr(u)
pr(v) = +d
|V | <u,v>∈A
grs (u)

44
Una primera opción a la hora de extender medidas de vector propio a redes multi-
relacionales es interpretar la red como un grafo uni-relacional y calcular la centralidad
como normalmente. También podemos proyectar el grafo de tal manera que contenga
sólo nodos y aristas de terminados tipos, de esta manera podemos calcular la centralidad
Page-Rank de un nodo con respecto a los tipos de aristas A0 = {Ai , ...Aj } y los tipos de
nodos V 0 = {Vk , ..., Vl } como sigue:

1−d X pr{V 0 .A0 } (u)


pr{V 0 ,A0 } (v) = +d
N u∈V 0 :<u,v>∈A0
grs{V 0 ,A0 } (u)

Podemos asignar un coeficiente ci a cada tipo de arista Ai para de esta forma con-
seguir un Page-Rank ponderado según los tipos de aristas:

1−d X c pr (u)
pra (v) = +d P <u,v> a
N <u,v>∈A <u,w>∈A c<u,w>

Donde c<u,v> es el coeficiente ci asociado a el tipo Ai de la arista < u, v >∈ Ai .


También podemos ponderar cada tipo de nodo Vi con un coeficiente ci , una forma de
implementarlo es simulando aristas adicionales desde y hasta cada nodo ponderadas
según el tipo del nodo de origen:

!
1−d X prn (u) X cw prn (w)
prn (v) = +d +
N <u,v>∈A
grs (u) + cu |V | w∈V grs (w) + cw |V |

Donde cw es el coeficiente asociado a el tipo Vw del nodo v ∈ Vw . La combinación


de las dos definiciones anteriores nos permite definir un Page-Rank para grafos multi-
relacionales con pondereación de nodos y aristas según sus tipos:

 
1−d X chu,vi prna (u) X cw prna (w)
prna (v) = + d P + P 
N
hu,vi∈A hu,wi∈A chu,wi + cu |V | w∈V hw.zi∈A c hw,zi + c w |V |

45
2.3.2. Agrupamiento

En esta sección trataremos medidas que tienen que ver con la conectividad entre
los nodos. Repasaremos conceptos como las redes de mundo pequeño o el coeficiente de
clustering y haremos diferentes propuestas para la extensión de estas medidas al campo
de los grafos multirelacionales.

El concepto de red de mundo pequeño hace referencia a redes en las que la mayorı́a
de nodos no son vecinos entre sı́ pero en la que sin embargo todos los nodos están
conectados a través de un número corto de pasos. De manera más especı́fica se puede
decir que una red es de mundo pequeño si la distancia media L entre cualquiera dos
nodos de la red es proporcional al logaritmo del número de nodos L ∝ log(|V |). Podemos
definir L como:

P P
s∈V t∈V |σ(s, t)|
L=
|V |2

Donde |σ(s, t)| es la longitud del camino mı́nimo entre s y t (se pueden penalizar
los casos en los que no existe un camino entre dos nodos). Una posibilidad a la hora de
extender el concepto de red de mundo pequeño a las redes multirelacionales es proyectar
el grafo de tal manera que contenga sólo nodos y aristas de terminados tipos, de esta
manera podemos definir L respecto a los tipos de aristas A0 = Ai ∪ ... ∪ Aj y los tipos
de nodos V 0 = Vk ∪ ... ∪ Vl como sigue:

P P
s∈V 0 |σ{A0 ,V 0 } (s, t)|
t∈V 0
L{A0 ,V 0 } =
|V |2

Donde σ{A0 ,V 0 } (s, t) es la longitud del camino mı́nimo entre s y t que sólo utiliza
aristas de los tipos definidos en A0 y nodos de los tipos definidos en V 0 .

Otro concepto importante a la hora de analizar el agrupamiento en redes es el con-


cepto de triángulo. Un triángulo es un grafo plano no dirigido con 3 vértices y 3 aristas.
La cantidad de triángulos existentes en un conjunto de nodos puede ser interpretado
como un ı́ndice de lo agrupados que están. El coeficiente de clustering o coeficiente de
agrupameinto de un nodo C(v) en un grafo unirelacional no dirigido G =< V, A > se

46
define como sigue:

|{< u, w >}|
C(v) =
gr(v)(gr(v) − 1)

Donde u y w son nodos vecinos de v, es decir o bien < u, v >∈ A o < v, u >∈ A
(la misma afirmación es válida para w). Un grafo G =< V, A > se considera de mundo
pequeño si el coeficiente de clustering medio de los nodos de la red C̄ es mayor que el
que pueda ofrecer un grafo aleatorio construido con el mismo número de vértices.

La posibilidades a la hora de extender la definición de coeficiente de clustering o


coeficiente de agrupamiento a grafos multirelacionales son amplias. En primer lugar
definiremos un triángulo en un grafo multirelacional T = vwy compuesto por tres no-
dos v, w, y y tres aristas < v, w >, < w, y >, < y, v >. Definimos una restricción de
triángulo R como una secuencia de tres tipos de nodos y tres tipos de aristas interca-
lados V1 A1 V2 A2 V3 A3 . Diremos que un triángulo T = vwy cumple con una restricción
R = V1 A1 V2 A2 V3 A3 si los tipos de la secuencia δ(v)δ(< v, w >)δ(w)δ(< w, y >)δ(y)δ(<
y, v >) o de la secuencia δ(w)δ(< w, y >)δ(y)δ(< y, v >)δ(v)δ(< v, w >) o de la se-
cuencia δ(y)δ(< y, v >)δ(v)δ(< v, w >)δ(w)δ(< w, y >) coinciden con R. Notaremos
vwy ∈ R.

Podemos exigir que los triángulos que son contabilizados cumplan con una restric-
ción. De esta forma podemos calcular el coeficiente de clustering de un nodo v respecto
a las restricciones de triángulo R1 , .., Rn de la siguiente forma:

|{vwy ∈ R1 , ..., Rn }|
CR1 ,..,Rn (v) =
gr(v)(gr(v) − 1)

Donde w e y son nodos vecinos de v. También podemos ponderar ahora las diferentes
restricciones de triángulo R1 , ..., Rn con coeficientes t1 , ..., tn . Definimos el coeficiente de
clustering ponderado:

ti |{vwy ∈ Ri }|
CR0 1 ,...,Rn (v) =
gr(v)(gr(v) − 1)

47
Donde w e y son nodos vecinos de v y ti es el coeficiente de la restricción Ri ∈
R1 , ..., Rn con la que encaja el triángulo vwy. También podemos obtener el promedio
del coeficiente de clustering según varias restricciones:

n
CR0 i (v)
P
i=1
CR00 1 ,...,Rn (v) =
n

2.3.3. Asortatividad

Un concepto no muy estudiado pero muy importante relacionado con los grafos mul-
tirelacionales es el concepto de asortatividad, de su traducción del inglés assortativity.
La asortatividad se refiere a la preferencia de los nodos en una red por unirse a otros
que le son similares en alguna caracterı́stica. En el caso de los grafos multirelacionales,
dicha caracterı́stica puede asociarse al hecho de que un nodo posea una relación con un
nodo de determinado tipo.

Diremos que un nodo v de un grafo multirelacional G =< V, A > tiene la propiedad


Ai Vj si está conectado con un nodo de tipo Vj a través de una arista saliente (de manera
análoga se da el caso de arista entrante o arista en cualquier dirección) de tipo Ai y lo
notaremos como v ∈ Ai Vj . De esta manera podemos medir la asortividad de un nodo v
con respecto a una propiedad Ai Vj como la proporción de vecinos salientes que cumplen
con dicha propiedad:

|{< v, u >∈ A : u ∈ Ai Vj }|
αAi Vj (v) =
grs{Vj ,A} (v)

Donde u es un nodo vecino a v.Esta definición puede ser extendida a conexiones a


larga distancia, es decir podemos estudiar la asortatividad de un nodo con respecto a
una propiedad Ai Vj a través de caminos de cierta longitud o de caminos que cumplen
con una restricción de camino R. Definimos la asortatividad de un nodo v con respecto
a una propiedad Ai Vj a distancia k como:

48
|{< v..k..u >: u ∈ Ai Vj }|
αAi Vj ,k (v) =
|{< v..k..u >: u ∈ Vj }|

Donde < v..k..u > denota que existe un camino que conecta el nodo v y el nodo u
de máximo longitud k. También podemos extender la definición de asortatividad con
caminos que cumplan ciertas restricción de camino R:

|{< v..R..u >: u ∈ Ai Vj }|


αAi Vj ,R (v) =
|{< v..R..u >: u ∈ Vj }|

Donde < v..R..u > denota que existe un camino C que conecta el nodo v y el nodo u
y que cumple con la restricción de camino R. También podemos estudiar la asortatividad
de un nodo v con respecto a una propiedad Ai Vj y un conjunto de restricciones de camino
R0 = {R1 , ..., Rn }:

|{< v..R0 ..u >: u ∈ Ai Vj }|


αAi Vj ,R (v) =
|{< v..R0 ..u >: u ∈ Vj }|

Donde < v..R0 ..u > denota que existe un camino C que conecta el nodo v y el nodo
u y que cumple con alguna de las restricciones de camino R0 = {R1 , ..., Rn }.

2.3.4. Entropı́a

El análisis de la entropı́a en grafos es importante debido a que nos indica como de


ordenados se encuentran con respecto a alguna de sus caracterı́sticas. A continuación
extenderemos las definiciones sobre entropı́a en grafos desarrolladas en el texto anterior
para el caso de los grafos multirelacionales.

Dado un conjunto de componentes τ = C1 , ..., Cn de un grafo G y una propiedad


p(Ci ) normalizada de éstos definimos la entropı́a del grafo G según la propiedad P de
los componentes τ como:

49
|τ |
X
H(G, τ, P ) = − p(Ci ) log p(Ci )
i=1

Dado un grafo multirelacional G = (V, A) donde V = V1 ∪ ... ∪ Vn son los tipo de


nodos y A = A1 ∪ ... ∪ Am los tipos de aristas y dados unos tipos concretos de nodos
y aristas V 0 = Vi ∪ ... ∪ Vj y A0 = Ak ∪ ... ∪ Al definimos un componente de tipos
0 0
concretos como C V A ⊆ V 0 ∪ A0 . Dado un conjunto de componentes de tipos concretos
0 0 0 0 0 0 0 0
τ V A = C1A V , ..., CzA V de un grafo multirelacional y una propiedad P (CiA V ) norma-
0 0
lizada asociada dichos componentes definimos la entropı́a H(G, τ A V , P ) que contiene
un grafo multirelacional G según una propiedad P del conjunto de componentes de tipo
0 0
concreto τ A V como:

0V 0
|τ A
X|
A0 V 0 0 0 0 0
H(G, τ ,P) = − p(CiA V ) log p(CiA V )
i=1

A continuación, presentamos extensiones de entropı́as ponderadas según los tipos


de nodos, según los tipos de aristas y según diferentes propiedades de un conjunto de
componentes de un grafo multirelacional. Dado un conjunto de componentes τ podemos
definir una entropı́a ponderada en un grafo multirelacional aplicando coeficientes di a
las entropı́as obtenidas según el tipo de nodos de los componentes:

Pn
i=1 di H(G, τ AVi , P )
HV (G, τ, P ) =
n

De igual forma podemos obtener una entropı́a ponderada en un grafo multirelacio-


nal aplicando coeficientes fi a las entropı́as obtenidas según el tipo de aristas de los
componentes:

Pm
i=1 fi H(G, τ Ai V , P )
HA (G, τ, P ) =
m

Por último, podemos también extender la definición de entropı́a ponderando con

50
coeficientes ri entropı́as obtenidas según diferentes propiedades P = P1 , ..., Pw de com-
ponentes τ de un grafo:

Pw Ai V
i=1 ri H(G, τ , Pi )
HP (G, τ, P ) =
w

2.4. Resultados

2.5. Conclusiones

51
Capı́tulo 3

Consulta de Patrones en Grafos con


Propiedades

3.1. Introducción

Debido al rápido crecimiento de las tecnologı́as relacionadas con Internet y a los


avances cientı́ficos y tecnológicos, el número de aplicaciones que modelan sus datos a
través del concepto matemático de grafo crece muy rápidamente debido a que dichas
estructuras poseen una alta capacidad expresiva que permiten modelar complicadas
estructuras [10]. La aparición de los grafos en las aplicaciones del mundo real requiere
del desarrollo de nuevos sistemas para almacenar y consultar dichas estructuras, de tal
forma que los usuarios puedan acceder a los datos almacenados en forma de grafo de
manera efectiva y eficiente.

La creciente popularidad de las bases de datos en grafo ha dado lugar a la emergencia


de interesantes problemas relacionados con el alamacenamiento y consulta en este tipo
de sistemas. Entre ellos, la detección de patrones en grafos es el más flexible de éstos,
ya que engloba otros como la búsqueda de subgrafos, la búsqueda de caminos mı́nimos
o el estudio de la conectividad [147, 64].

Comenzaremos dando una defninición básica de patrón y de detección de un patrón

52
de manera general:

Patrón: De manera sencilla, un patrón puede ser entendido como una secuencia
de caracteres, números o palabras que deben ser encontrados en un conjunto de
datos determinado.

Detección de un Patrón: El proceso o algoritmo utilizado para encontrar un patrón


en un conjunto de datos.

Cuando en una red determinada existe un patrón que se repite de manera recurrente,
dicho patrón recibe el nombre de motivo de la red (network motif). Diferentes redes
complejas suelen presentar motivos comunes, ası́ como redes obtenidas de el mismo área
de conocimiento pueden poseer también los mismos motivos, o motivos similares.Los
motivos compartidos por las redes de alimentos son distintos de los motivos compartidos
por las redes genéticas o de los encontrados en la World Wide Web. De esta forma, los
motivos pueden llegar a caracterizar clases universales de redes [94].

SUBDUE [77] busca el subgrafo que permita la mejor compresión de un grafo dado G
utilizando el Minimum Description Length (MDL). El subgrafo seleccionado puede ser
considerado un concepto. Este algoritmo comienza comprimiendo un único vértice (no
se comprime) y de manera iterativa va extendiendo el subgrafo comprimido añadiendo
nuevos nodos. Cada expansión será tomada en función de la longitud de la descripción del
grafo completo (DL), I(Gs)+I(G|Gs), que es definida como la suma del DL del subgrafo
I(Gs) y del DL del grafo completo en el que se han sustituido todas las instancias
del subgrafo por nodos simples, I(G|Gs). El algoritmo finaliza cuando el subgrafo que
minimiza la DL del grafo completo es encontrado. La búsquedaq es completamente voraz
y no permite vuelta atrás, por lo que no se certifica encontrar el óptimo. Este algoritmo
es el antecesor a GBI.

——————————– De ”Probabilistic Graph and Hypergraph Matching”(2008)


MIRAR ESTE ARTICULO EN EL QUE HABLAN DE HYPER GRAPH PATTERN
MATCHING!!!

————————— De ”Matching of Hypergraphs - Algorithms,Applications, and


Experiments”() MIRAR ESTE ARTICULO EN EL QUE HABLAN DE HYPER GRAPH
PATTERN MATCHING!!! (2008) —————————

53
3.2. Graph Pattern Matching

La detección de patrones en grafos (Graph Pattern Matching) es un área de investi-


gación activo desde hace más de 30 años. Dado un patrón Q y un grafo con propiedades
G, el problema consiste en encontrar todas las incidencias de Q en G, denotado como
M (Q, G).

La tarea de detectar patrones en grafos tiene aplicaciones en muy diversas áreas


del conocimiento como son: visión artificial, biologı́a, electrónica, diseño asistido por
ordenador, análisis de redes sociales, entre otros. Por este motivo, el problema de la
detección de patrones en grafos se expande a través de diferentes comunidades cientı́ficas.
Debido a los diferentes tipos de aplicaciones, la detección de patrones en grafos no
es un problema único, sino un conjunto de problemas relacionados. A continuación
realizaremos un resumen de diferentes trabajos existentes relacionados con la detección
de patrones en grafos, describiendo varios problemas, ası́ como soluciones generales
y especı́ficas. Nos centraremos en técnicas que tratan el problema de la detección de
patrones semánticos en grafos con propiedades, por ser la tarea a la que nos enfrentamos
en el presente trabajo.

El problema básico de detección de patrones en grafos consiste en encontrar inciden-


cias de un patrón especı́fico en un grafo . De manera más formal, dado:

1. Un grafo G = (V, E), compuesto por un conjunto de vértices V y un conjunto de


aristas E, donde cada arista e ∈ E es un par (vi , vj ) donde vi , vj ∈ V y donde los
vértices y las aristas pueden poseer tipos o propiedades.

2. Un patrón (graph pattern, graph query o query graph) Q = (VQ , EQ ), que es-
pecifica unos requisitos estructurales y/o semánticos que un subgrafo de G debe
cumplir para satisfacer el patrón Q.

La tarea propuesta es encontrar el conjunto M de subgrafos en G que cumplen con


el patrón Q. Un grafo G0 = (V 0 , E 0 ) es un subgrafo de G si y sólo si V 0 ⊆ V y E 0 ⊆ E.
Algunas formulaciones de dicho problema requieren que Q constituya un grafo conexo
y, por tanto, que los subgrafos en M sean conexos también. Un grafo es conexo si existe
un camino entre cada par de vértices.

54
La definición exacta de qué significa que un subgrafo cumple con un patrón Q varı́a
según la perspectiva utilizada, pero habitualmente está basada en una combinación de
(1) isomorfismo (detección estructural) o alguna propiedad similar al isomorfismo entre
Q y m ∈ M y (2) igualdad o similitud entre los tipos y los valores de los atributos de
los vértices y aristas de Q y los subgrafos m ∈ M . Formalmente y de manera general, el
cumplimiento de un subgrafo en G con un patron Q puede ser entendido a través de la
existencia de una relación matemática entre los vértices y aristas de Q y los vértices y
aristas del subgrafo [48]. Dicha relación puede estar constituida por un mapeo o función,
pero en otras ocasiones dicha relación asignará más de un elemento en el subgrafo a cada
elemento en Q.

A continuación presentamos una serie de clasificaciones que se pueden realizar con


respecto a los problemas de detección de patrones en grafos ası́ como de los algoritmos
para atacarlos:

Detección estructural vs. Detección semántica. La primera clasificación posible que


se puede realizar con respecto a los problemas relacionados con la detección de patrones
en grafos es entre lo que se ha venido a llamar detección estructural (structural mat-
ching) y detección semántica (semantic matching) [56]. Muchas soluciones al problema
de detección de patrones en grafos están basadas estrictamente en la similitud estruc-
tural [134, 138]. Sin embargo, ya que los grafos pueden utilizarse como representaciones
conceptuales, puede ser interesante encontrar patrones en grafos no sólo a partir de la
similitud del grafo uni-relacional, si no también según la similitud de su interpretación
en algún dominio de interés. Debido a que la carga semántica de un grafo con propie-
dades está almacenada en su mayorı́a en los tipos y los atributos de sus elementos, la
detección estructural es a menudo insuficiente para encontrar similitudes conceptuales
entre grafos. La detección semántica consiste en detectar subgrafos dentro de un grafo
G que cumplen tanto con la estructura como con los tipos y atributos presentes en los
elementos del patrón Q [11, 36].

Detección exacta vs. Detección inexacta. Un algoritmo de detección de patrones en


grafos puede devolver sólo los subgrafos en un grafo G que cumplen completamente con
un patrón Q (detección exacta) o puede devolver una lista rankeada con los subgrafos
más similares en G al patrón dado (detección inexacta) [56]. Los algoritmos de detección
inexacta de patrones en grafos son denominados en ocasiones correctores de error ya que
permiten detectar patrones en presencia de ruido [126, 130]. Además, algunos sistemas
permiten patrones sólo parcialmente especificados (utilizando comodines o operdaores

55
de cardinalidad) [21]. En dichos casos, a pesar de que los resultados cumplen exacta-
mente con el patrón dado, es una forma de detección inexacta ya que el patrón en sı́ es
impreciso.

Solución óptima vs. Solución aproximada. Los algoritmos de detección de patrones


en grafos varı́an en términos de garantı́a de calidad de la solución [56]. Los algoritmos
óptimos garantizan encontrar una solución correcta (para la detección exacta, el conjun-
to de subgrafos que cumplen con el patrón dado; para la detección inexacta, el conjunto
rankeado de los sugrafos que más se parecen a un patron dado), pero tienen un cos-
te computacional exponencial en el peor de los casos [127]. Los algoritmos de solución
aproximada [34, 135, 129] a menudo poseen complejidad polinomial, pero no garantizan
el encontrar la(s) solcuión(es) correcta(s).

Según la relación que debe cumplir el patrón y los subgrafos. Los algoritmos de de-
tección de patrones en grafos varı́an según la relación que debe cumplir el patrón Q con
los subgrafos que cumplen con éste:

1. Isomorfismo de Subgrafos. M (Q, G) consiste en todos los subgrafos G0 de G para


los cuales Q es isomórfico, es decir, existe una función biyectiva h de los nodos
en Q a los nodos en G0 tal que si (u, u0 ) es una arista en Q entonces debe existir
la arista (h(u), h(u0 )) en G0 [134]. El isomorfismo de subgrafos es un problema
NP-completo [138].

2. Graph Simulation. M (Q, G) es una relación binaria S ⊆ VQ × V donde VQ y V


son los conjuntos de vértices en Q y G respectivamente, de tal manera que [93]:

Para cada nodo u ∈ VQ , existe al menos un nodo v ∈ V tal que (u, v) ∈ S y


v debe cumplir con el tipo asociado a u.
Por cada relación (u, v) ∈ S y cada arista (u, u0 ) ∈ EQ , existe una arista
(v, v 0 ) ∈ G tal que (u0 , v 0 ) ∈ S.

3. Bounded Simulation. [50, 147] Un subgrafo con propiedades G cumple con un


patrón Q vı́a Bounded Simulation, si existe una relación binaria S ⊆ VQ × V tal
que:

Para todo u ∈ VQ , existe al menos un v ∈ V tal que (u, v) ∈ S

56
Para cada par (u, v) ∈ S:
• v debe cumplir con los predicados impuestos por u (cada nodo en Q debe
tener asociado una serie de predicados)
• Para cada arista (u, u0 ) ∈ EQ , existe un camino ρ desde v a v 0 en G tal
que (u0 , v 0 ) ∈ S y len(ρ) ≤ k si fe (u, u0 ) = k (cada arista en Q debe
tener asociado un valor k a través de la función fe , dicho valor puede ser
sustituido por el sı́mbolo *, el cual permite el mapeo de aristas a caminos
de cualquier longitud).

Se ha demostrado que la detecciónde patrones en grafos con Bounded Simulation


permite encontrar detecciones más expresivas que con las nociones tradicionales
[47]. Además, computar las relaciones de Bounded Simulation que representan
detecciones exactas del patrón Q en G toma tiempo cúbico, en contraste con
la detección de patrones en grafos via isomorfismo, que es intratable y vı́a Graph
Simulation que toma tiempo cuadrático. Bounded simulation impone restricciones
topológicas más débiles que las dos aproximaciones anteriores: (1) Las aristas del
patrón Q se mapean a caminos de longitud variable en G, a diferencia de en
el isomorfismo de grafos y el graph simulation que implementan mapeos arista-
a-arista, y (2) se busca una relación binaria M (Q, G) entre los nodos de Q y los
nodos del subgrafo en G como en el graph simulation y a diferencia del isomorfismo
de subgrafos que requiere una función biyectiva.

4. Regular Pattern Matching. [49, 114, 18] (basado en Graph Simulation) Un grafo
con propiedades cumple con un patrón regular Q, si existe una relación binaria
S ⊆ VQ × V tal que:

Para cada nodo u ∈ VQ , existe un nodo v ∈ V tal que (u, v) ∈ S


Para cada par (u, v) ∈ S:
• v cumple con los predicados impuestos por u (cada nodo en Q debe tener
asociado una serie de predicados).
• Para cada arista (u, u0 ) ∈ EQ , existe un camino ρ = (v = v0 , v1 , ..., vn =
v 0 ) en G tal que la secuencia fC (v0 , v1 )...fC (vn−1 , vn ) de etiquetas de las
aristas es una cadena en el lenguaje L(fe (u, u0 )) de la expresión regular
fe (u, u0 ) (cada arista en Q debe tener asociada una expresión regular a
través de la función fe ).

57
5. Edge relationships. (caso particular de Regular Pattern Matching) Las aristas
en los grafos con propiedades están normalmente tipadas, denotando el tipo de
relación. En la práctica uno usualmente quiere encontrar patrones en grafos com-
puestos por aristas de varios tipos. Los tipos en las aristas pueden ser fácilmente
incorporados a la detección de patrones, extendiendo el concepto de Regular Pat-
tern Matching con una forma restringida de expresiones regulares.
6. ¿¿Añadimos mapeo no inyectivo??(FS)

Figura 3.1: Complejidad presentada por los diferentes modelos de deteccón de patrones
en grafo según la relación que debe cumplir el patrón con los subgrafos [47].

En 3.1 se muestra la compejidad de cada uno de los diferentes modelos de graph


pattern matching según la relación que debe cumplir el patrón con los subgrafos. Para
apreciar las diferencias entre los diferentes tipos de métodos de detección de patrones
en grafos según la relación que se debe cumplir entre el patrón y los subgrafos, observe
lo siguiente [47]:

1. Debido a que el isomorfismo de grafos es un problema NP-completo [138], todos


los algoritmos que se conocen para atacar este problema crecen exponencialmente
en su complejidad con respecto al tamaño de los grafos de entrada. Por tanto, no
es viable resolver el isomorfismo de grafos directamente en grafos grandes. Esto
nos deja dos opciones para realizar detección de patrones en grafos por isomor-
fismo de subgrafos en un tiempo asequible: (1) utilizar un algoritmo de solución
aproximada o (2) utilizar un algoritmo de solución óptima pero aplicado sólo a
un subconjunto de los posibles subgrafos en G [31]. Debido a que el objetivo de
el trabajo aquı́ presentado no es detectar cuándo un grafo G contiene un sub-
grafo que cumple con Q si no, dado un subgrafo en G verificar si cumple con Q,
nos econtramos ante la segunda opción, por lo que sigue siendo viable el utilizar
algoritmos de solución óptima basados en Isomorfismo de Subgrafos.

58
2. En contraste con el Isomorfismo de Subgrafos, el Bounded Simulation soporta
(a) relaciones en lugar de funciones biyectivas entre los elementos, (b) predicados
especificando condiciones de búsqueda basados en los contenidos de los nodos, y
(c) mapear aristas a caminios (acotados) en lugar de mapeos arista-a-arista.

3. Graph Simulation es un caso especial de Bounded Simulation, permitiendo sólo


patrones simples en los que (a) los nodos poseen el tipo como único requisito
presente en sus predicados asociados, y (b) todas las aristas tienen asociado el
valor 1 (mapeos arista-a-arista).

4. En contraste con la complejidad NP del Isomorfismo de Subgrafos, la detección


de patrones en grafos basada en Bounded Simulation se ejecuta con complejidad
cúbica. O((|V | + |VQ |)(|E| + |EQ |) es la complejidad que tiene el problema de
encontrar el patrón Q en G a través de Graph Simulation. En la práctica Q suele
ser pequeño.

5. Se muestra experimentalmente en [50, 49] que la detección de patrones en grafos


basada en Bounded Simulation permite identificar correctamente un gran núme-
ro de comunidades en redes sociales reales mientras que sus contrapartes no lo
consiguen.

6. Dadas las siguientes estructuras topológicas en la detección de patrones:

a) Relaciones hijo. Si un nodo u en el patrón Q se asocia con el nodo v en el


grafo G, entonces cada hijo de u een Q debe asociarse con con un hijo de v
en G
b) Padres. Si un nodo u en Q se asocia con un nodo V en el grafo G, entonces
cada padre de u debe estar asociado con un padre de v en G.
c) Conectividad. Si Q es conexo, entonces también lo son las ocurrencias de Q
en G.
d ) Ciclos. Un ciclo no dirigido (dirigido) en Q debe asociarse con un diclo no
dirigido (dirigido) en G.

Graph Simulation no preserva las relaciones de tipo padre, conectividad y ciclos no


dirigidos, mientras que sı́ preserva las relaciones de tipo hijo y los ciclos dirigidos.
La detección de patrones en grafos basada en el Isomorfismo de Subgrafos preserva
todas las propiedades estructurales presentadas arriba.

59
Debido a la complejidad impuesta por la detección de patrones en grafos se han
desarrollado numerosas técnicas para tratar de reducir dicha complejidad: Algoritmos
incrementales que permiten volver a re-evaluar la existencia de subgrafos que cumplen
con un patrón Q en un grafo G sin necesidad de repetir todos los cálculos cuando G se
actualiza [47], técnicas que permiten buscar los subgrafos en un espacio más reducido
(compresión de grafos) [47] ası́ como técnicas distribuidas para la detección de patrones
en grafos cuando se dispone de varias máquinas que pueden trabajar en esta tarea en
paralelo [47, 72].

3.3. Heramientas de Consulta Relacionadas

En ”Query Languages for Graph Databases”(2012) Hacen un repaso por todos los
lenguajes que permiten consulta de patrones en grafos!! —————————————
—————–

Los lenguajes de consulta han sido siempre la clave del éxito de los diferentes sis-
temas de gestión de base de datos. El predominio de las bases de datos relacionales en
los últimos años, es debido en gran parte al éxito del SQL, el lenguaje de consultas
estructurado para bases de datos relacionales [35, 133]. Poco después de que aparezca
un nuevo tipo de sistema de gestión de base de datos, un nuevo lenguaje de consulta
es inventado para consultar los datos en su respectivo formato. En el caso de los datos
almacenados en RDF, existió una seria competición entre múltiples lenguajes de consul-
ta: RQL, RDQL, SeRQL hasta que finalmente el lenaugje SPARQL resultó el vencedor
[71].

A continuación presentaremos algunos de los lenguajes de consulta que soportan de-


tección de patrones en grafos, los lenguajes han sido seleccionados debido a la extensión
de su uso o por constituir bases sólidas para lenguajes más actuales. Al final de esta
sección se presenta una comparativa de la efectividad y eficiencia en la implementación
de consultas de detección de patrones en grafos para algunos de los lenguajes de consulta
presentados.

60
3.3.1. XPath (XML Path Language)

Los orı́genes de los lenguajes de marcado se remontan a la creación del lenguaje


de marcado generalizado (GML), desarrollado en la década de los 60’s por Charles
Goldfarb, Edward Mosher y Raymond Lorie para el formato de texto de IBM, SCRIPT.
Utilizando GML, un documento queda marcado a través de etiquetas que definen qué ti-
po de contenido se encuentra en cada región del documento. Este tipo de documentos
pueden ser formateados de manera automática para diferentes dispositivos. El lenguaje
de marcado generalizado estándar (SGML) es un estándar derivado de GML para defi-
nir lenguajes de marcado generalizados para docuemtnos [61]. El marcado generalizado
está basado en dos postulados:

El marcado debe ser declarativo de tal manera que debe describir la estructura
del documento y otras propiedades, y no especificar el procesado que debe hacerse
sobre él.
El marcado debe ser riguroso de tal forma que las técnicas disponibles para pro-
cesar programas y bases de datos puedan ser utilizados para procesar documentos
de este tipo también.

El lenguaje de marcado extensible (XML) es un lenguaje abierto de marcado que


proviene de SGML y que define una serie de reglas para codificar docuemtos en un
formato que es legible por humanos y máquinas. Los objetivos en el diseño del XML
se idearon pensando en la simplicidad, la generalidad y la usabilidad en internet [7].
Es un formato de datos textual con un fuerte soporte vı́a Unicode para diferentes len-
guajes humanos. Aunque el diseño de XML se centra en los documentos, el lenguaje es
ampliamente usado para la representaciónde cualquier tipo de datos [52].

XPath (XML Path Language) es un lenguaje de consulta definido por el World


Wide Web Consortium (W3C) diseñado para seleccionar nodos de un documento XML.
Además, XPath puede usarse para calcular valores (números, textos, valores lógicos,
etc) desde un documento XML. El lenguaje XPath está basado en una representación en
forma de árbol de un documento XML, y permite la navegación a través de dicho árbol,
seleccionando nodos bajo diversos criterios [9]. La expresión más importante en XPath
es un camino localizador, una secuencia de pasos localizados. Cada paso localizado tiene
tres componentes:

61
Un eje: El eje nos permite seleccionar un subconjunto de nodos del documento y
corresponde a recorridos en el árbol del documento.

Predicado: El predicado se escribe entre corchetes, a continuación del eje. Si el eje


ha seleccionado unos nodos, el predicado permite restringir esa selección a los que
cumplan determinadas condiciones.

Selección de nodos: La selección de nodos se escribe a continuación del eje y el


predicado. Si el eje y el predicado han seleccionado unos nodos, la selección de
nodos indica con qué parte de esos nodos nos quedamos.

Figura 3.2: Ejemplo de consulta XPath.

En la Figura 3.2 se muestra un ejemplo de consulta XPath sobre un documento XML.


En concreto la consulta /wikimedia/projects/project/editions/*[2] devolverá todos los
objetos de tipo editions en la ruta especificada que ocupen la posición 2. Si hubiéramos
añadido la cadena @language al final de la consulta obtendrı́amos el valor asociado a la
propiedad lenguage de dichos objetos.

62
3.3.2. XQuery

XQuery es un lenguaje de consulta diseñado también para colecciones de datos


XML y proporciona los medios para extraer y manipular información de este tipo de
documentos, o de cualquier fuente de datos que pueda ser representada mediante XML
como, por ejemplo, bases de datos relacionales o documentos ofimáticos. XQuery utiliza
expresiones XPath para acceder a determinadas partes del documento XML. Añade,
además, expresiones similares a las usadas en SQL, conocidas como expresiones FLWOR.
Las expresiones FLWOR toman su nombre de los 5 tipos de sentencias de las que pueden
estar compuestas: FOR, LET, WHERE, ORDER BY y RETURN [62].

El lenguaje se basa en el modelo en árbol de la información contenida en el documento


XML, que consiste en siete tipos distintos de nodos: elementos, atributos, nodos de
texto, comentarios, instrucciones de procesamiento, espacios de nombres y nodos de
documentos. También incluye la posibilidad de construir nuevos documentos XML a
partir de los resultados de la consulta. Se puede usar una sintaxis similar a XML si
la estructura (elementos y atributos) es conocida con antelación, o usar expresiones de
construcción dinámica de nodos en caso contrario. Todos estos constructores se definen
como expresiones dentro del lenguaje, y se pueden anidar arbitrariamente. El siguiente
ejemplo de código XQuery lista los personajes que aparecen en cada acto del Hamlet de
Shakespeare, obtenidas a partir del documento hamlet.xml 1 :
<html><head/><body>
{
for $act in doc("hamlet.xml")//ACT
let $speakers := distinct-values($act//SPEAKER)
return
<span>
<h1>{ $act/TITLE/text() }</h1>
<ul>
{
for $speaker in $speakers
return <li>{ $speaker }</li>
}
</ul>
</span>
1
http://www.ibiblio.org/xml/examples/shakespeare/hamlet.xml

63
}
</body></html>

Dicha consulta XQuery construirá un nuevo documento XML como respuesta. En


este caso, un documento cuya raı́z es una etiqueta de tipo < span > de la que parten
los tı́tulos de cada acto en etiquetas < h1 > seguido cada uno de ellos de una lista no
ordenada (< ul >) con los personajes que intervienen en el mismo (cada uno de ellos
inmerso en una etiqueta < li >).

3.3.3. SQL

3.3.4. GraphLog

GraphLog es un lenguaje de consulta desarrollado en la década de los 90, basado


en una representación en forma de grafo tanto de los datos como de las consultas [38].
Las consultas son patrones representados como grafos y las aristas en una consulta
representan aristas o caminos en la base de datos. Se utilizan expresiones regulares para
dotar de mayor expresividad a dichos caminos (Regular Pattern Matching).

En el contexto de GraphLog, un multigrafo etiquetado y dirigido G se define como


una tupla (V, E, LV , LE , ι, ν, ) donde:

V es un conjunto finito de nodos.

E es un conjunto finito de aristas.

LV es un conjunto de etiquetas de nodoss.

LE es un conjunto de etiquetas de aristas.

ι es la función incidencias, una función de E a N 2 que asocia cada arista en el


grafo con un par de nodos en V .

ν es la función de etiquetado de los nodos, una función de V a LN que asocia cada


nodo en V con su etiqueta en LV

64
 es la función de etiquetado de las aristas, una función de E a LE que asocia cada
arista en E con su etiqueta en LE

En el contexto de GraphLog, Un multigrafo etiquetado y dirigido con una arista


distinguida es una tupla (V, E, LV , LE , ι, ν, , e, Le ) donde:

(V, E ∪ {e}, LV , LE ∪ Le , ι, ν, ) es un multigrafo etiquetado y dirigido.

e es la arista distinguida donde (e) ∈ Le y (e0) ∈ LE para cada arista e0 ∈ E.

A continuación, se define formalmente un Query Graph (en el contexto de GraphLog)


como un multigrafo etiquetado y dirigido con una arista distinguida, sin nodos aislados
y con las siguientes propiedades: Los nodos están etiquetados con una secuencia de
variables. Cada arista está etiquetada con un literal (predicado aplicado a una serie
de variables y constantes) o por un literal seguido de el cierre postivo (+ ). La arista
distinguida solo puede estar asociada a un literal no seguido del cierre positivo.

Un Query Graph es un multigrafo etiquetado dirigido con una arista distinguida


(V, E, LV , LE , ι, ν, , e, Le ) donde:

LV es un conjunto de secuencias de variables.

LE es un conjunto de literales y literales seguidos del cierre positivo.

En la Figura 3.3 se muestra un Query Graph en el formato de GraphLog. La arista


distinguida es representada mediante una lı́nea más gruesa. El literal descendant+ que
etiqueta la arista entre P1 y P3 es un literal seguido del cierre positivo (las aristas
asociadas a un literal con el cierre positivo son representadas intermitentes). El literal
not descendant+ etiquetando la airista entre P2 y P3 es una negacion de un literal con
cierre positivo (representado a través de la arista tachada y dejando el literal en positivo).
Por último, person es un predicado unario. Este query graph expresa la consulta que
devueve el predicado terniario not − desc − of (P 1, P 2, P 3) con los descendientes P 3 de
una persona P 1 que no son descendientes de P 2. Cuando este query graph es satisfecho
define una realción entre los nodos conectados por la arista distinguida.

65
Figura 3.3: Ejemplo de Query Graph (GraphLog): Los descendientes de P 1 que no son
descendientes de P 2.

3.3.5. SPARQL

En el formato RDF (Resource Description Framework) 2 , las entidades participan


en tripletas (sujeto, predicado, objeto). La interpretación que se debe realizar de estas
tripletas es que el sujeto está relacionado con el objeto a través de la relación predicado.
Los datos basados en RDF pueden ser también interpretados como un grafo semántico en
el que tanto los sujetos como los objetos representan nodos y los predicados representan
relaciones entre ellos.

SPARQL es un lenguaje de consulta para atacar datos almacenados en formato RDF


[125]. Fue convertido en estándar por el RDF Data Access Working Group (DAWG) del
World Wide Web Consortium, y es reconocido como una de las tecnologı́as claves en la
web semántica. SPARQL permite realizar consultas basadas en patrones de tripletas,
en conjunciones y disyunciones de las mismas ası́ como en patrones opcionales. Existen
numerosas implementaciones para diferentes lenguajes de programación [6] ası́ como
herramientas que permiten construir consultas SPARQL de manera automática contra
un punto de acceso. Además, existen herramientas que traducen consultas SPARQL a
consultas en otros lenguajes [5, 4].
2
https://www.w3.org/RDF/

66
En el caso de las consultas construidas en SPARQL que leen de una base de datos,
la especificación permite cuatro formatos de consultas para cuatro propósitos distintos:

SELECT. Son utilizadas para extraer valores en bruto desde un punto de acceso
SPARQL, los resultados son devueltos en forma de tabla.

CONSTRUCT. Son utilizadas para extraer información de un punto de acceso


SPARQL y transformar los resultados a formato RDF.

ASK. Son utilizadas para devolver un resultado booleano de una consulta lanzada
a un punto de acceso SPARQL.

DESCRIBE. Son utilizadas para extraer información de un punto de acceso SPARQL


cuya representación se deja al criterio de valoración del programador del punto de
acceso.

Cada formato de consulta SPARQL toma un bloque WHERE para restringir la


consulta, en el caso de DESCRIBE, el bloque WHERE es opcional. A continuación se
presenta un ejemplo de consulta SPARQL que modela la pregunta ”¿Cuáles son las
capitales de los paı́ses de África?”:
PREFIX ex: <http://example.com/exampleOntology#>
SELECT ?capital
?country
WHERE
{
?x ex:cityname ?capital ;
ex:isCapitalOf ?y .
?y ex:countryname ?country ;
ex:isInContinent ex:Africa .
}

Las variables se indican con el prefijo ?. Se devolverán resultados para capital y


country (indicado en SELECT). El procesador de consultas SPARQL buscará por con-
juntos de tripletas que cumplan con los cuatro patrones planteados en la consulta,
asignando las valores a las variables que cumplan con dichos patrones.

67
Para hacer consultas concretas, SPARQL permite la definición de prefijos y URIs
base. En la consulta presentada, el prefijo .ex”hace referencia a la URI http://example.
com/exampleOntology#. Como ejemplos de serivicios que permiten consultas en SPARQL
podemos nombrar Wikidata [137] y DBpedia [1].

3.3.6. GraphQL

Añadir esta referencia, extrayendo los tipos de un server GraphQL con ELM: https://github.com/jahew
graphql —————————- GraphQL 3 es un lenguaje de consulta desarrollado inter-
namente por Facebook 4 en 2012 antes de hacerlo de dominio público en 2015 5 .

Cuando se desarrollaron las primeras aplicaciones para móviles que interactuaban


con Facebook, fue necesario desarrollar una API de consumo de datos lo suficientemente
poderosa para describir todo el contenido almacenado en Facebook y lo suficientemen-
te sencilla para ser fácilmente aprendida y utilizada por los desarrolladores. Es por
ello que se creo GraphQL en 2012. La implementación de referencia, graphql-js provee
una librerı́a en JavaScript que representa la base de una completa implementación de
GraphQL. A pesar de que esta tecnologı́a es ampliamente utilizada por la compañı́a
Facebook es todavı́a una nueva tecnologı́a para el resto de la comunidad y se mantiene
en actualización constante.

Una consulta GraphQL es una cadena de caracteres que será interpretada por un
servidor que devolverá los datos resultantes en un formato especificado en la consulta.
A continuación presentamos un ejemplo de consulta GraphQL:
{
user(id: 3500401) {
id,
name,
isViewerFriend,
profilePicture(size: 50) {
uri,
width,
3
http://graphql.org/
4
http://www.facebook.com
5
https://code.facebook.com/posts/1691455094417024

68
height
}
}
}

Dicha consulta accede al user con valor 3500401 en su propiedad id extrayendo sus
propiedades id,name,isV iewerF riend y una de sus propiedades prof ileP icture con
valor 50 en su propiedad size, de la propiedad prof ileP icture se extraerán a su vez las
propiedades uri,width y height. A continuación el resultado devuelto por un servidor
para dicha consulta:
{
"user" : {
"id": 3500401,
"name": "Jing Chen",
"isViewerFriend": true,
"profilePicture": {
"uri": "http://someurl.cdn/pic.jpg",
"width": 50,
"height": 50
}
}
}

Con este sencillo ejemplo podemos analizar diferentes propiedades de este lenguaje
de consulta:

Jerárquico: La mayorı́a del desarrollo de productos de hoy consiste en la creación


y manipulación de vistas jerárquicas. Para lograr congruencia con la estructura de
estas aplicaciones, una consulta GraphQL es un conjunto jerárquico de campos.
La consulta se forma al igual que los datos que devuelve.
Consultas especı́ficas de los clientes: En GraphQL, la especificación de las consultas
se codifica en el cliente en lugar de en el servidor. Una consulta GraphQL, devuelve
exactamente lo que pide un cliente y no más.
Formato texto: GraphQL no requiere un formato particular. Tanto las consul-

69
tas como sus respuestas son cadenas de caracteres interpretables por cualquier
lenguaje.
Tipado fuerte: GraphQL es un lenguaje de tipado fuerte. Dada una consulta, las
herramientas pueden asegurar que la consulta es sintácticamente correcta y válida
dentro del sistema de tipos de GraphQL antes de la ejecución.
Introspectivo: Clientes y herramientas pueden consultar el sistema de tipos utili-
zando la sintaxis GraphQL.

GraphQL puede ser utilizado contra puntos de acceso tipo REST (Representational
State Transfer). Además, GraphQL también puede utilizarse contra putno de acceso de
tipo Ad Hoc, en los que se llaman directamente a las rutinas en el código para obtener
los datos necesarios.

3.3.7. Gremlin

Gremlin es un lenguaje de traversals en grafos y una máquina virtual desarrollada


por Apache TinkerPop de la Apache Software Foundation. Gremlin trabaja sobre ba-
ses de datos en grafo de tipo OLTP (EXPLICAR QUÉ ES). Gremlin está construido
sobre Groovy (Groovy es un lenguaje de programación orientado a objetos implemen-
tado sobre la plataforma Java). Tiene caracterı́sticas similares a Python, Ruby, Perl y
Smalltalk.

El autómata y el lenguaje funcional de Gremlin le permite soportar de manera


natural consultas imperativas y declarativas, lenguajes especificos y compiladores y op-
timizadores extensibles, ejecución en una o varias maquinas distribuidas, evaluaciÓn
hibrida en anchura y profundidad ası́ como completitud Turing [117].

Dado que Gremlin es un lenguaje, un juego de instrucciones y una máquina virtual, es


posible diseñar otro lenguaje de consulta de traversals que compile al lenguaje Gremlin.
Por ejemplo, el lenguaje de consulta de patrones en grafos SPARQL puede ser compilado
para ejecutarse en una máquina Gremlin.

Una consulta Gremlin es una cadena de operaciones/funciones que son evaluadas de


izquierda a derecha. A continuación se presenta una consulta sencilla sobre una base de

70
datos de dioses:
gremlin> g.V.has(’name’,’hercules’).out(’father’).out(’father’).name
==>saturn

Dicha consulta puede ser interpretada de la siguiente forma:

1. g: El grafo actual.
2. V: Todos los nodos en el grafo.
3. has(’name’,’hercules’): Filtra los nodos para obtener sólo aquellos que poseen el
valor ”hercules.en la propiedad ”name”(sólo hay uno).
4. out(’father’): Obtiene el nodo que esté conectado con hercules a través de una
arista saliente de tipo ”father”.
5. out(’father’): Obtiene el nodo que esté conectado con el padre de ”hercules.a través
de una arista saliente de tipo ”father”.
6. name: Obtiene el valor de la propiedad ”name”de el nodo abuelo de ”hercules”.

Dicho pasos definen una consulta de tipo traversal. Cada paso puede ser descom-
puesto y sus resultados comprobados:
gremlin> g
==>titangraph[cassandrathrift:127.0.0.1]
gremlin> g.V.has(’name’,’hercules’)
==>v[24]
gremlin> g.V.has(’name’,’hercules’).out(’father’)
==>v[16]
gremlin> g.V.has(’name’,’hercules’).out(’father’).out(’father’)
==>v[20]
gremlin> g.V.has(’name’,’hercules’).out(’father’).out(’father’).name
==>saturn

La manera en la que Gremlin construye consultas de patrones en grafos permite


construir cadenas de consultas complejas.

71
3.3.8. Grafos de Selección.

Los Grafos de Selección fueron definidos por Knobbes et al. [80] como una herramien-
ta para consultar patrones multi-relacionales en bases de datos basadas en la tecnologı́a
SQL y representan la base sobre la que está construido el algoritmo de construcción de
árboles de decisión multi-relacionales MRDTL [86]. Un Grafo de Selección (Selection
Graph) es un grafo dirigido (N, E), donde:

N es un conjunto de tripletas (T, C, s) llamadas nodos de selección, T es una tabla


en un modelo relacional y C es un, posiblemente vacı́o, conjunto de condiciones o
atributos en T de tipo T.A ⊕ c; donde ⊕ es uno de los operadores de comparación
=, ≤, etc. y s es una bandera con dos posibles valores: abierto o cerrado.
E es un conjunto de tuplas (p, q, a, e) llamadas aristas de selección, donde p y q
son nodos de selección y a es una asociación entre p.T y q.T en el modelo de datos.
e es una bandera con dos posibles valores: presente o ausente. El grafo de selección
contiene al menos un nodo n0 que corresponde con la tabla target T 0.

Figura 3.4: Ejemplo de un grafo de selección.

Los grafos de selección pueden ser entendidos como grafos dirigidos y etiquetados.
Un ejemplo de grafo de selección se presenta en la Figura 4.10. Dicho grafo selecciona las
moléculas que tienen al menos un átomo cuya carga parcial es menor o igual a -0.392,
pero que no tienen carga menor o igual a -0.392 y valor de la propiedad elemento igual
a b al mismo tiempo.

Nótese que en la figura, el valor de s es representado tachando o no un nodo, indi-


cando que dicho nodo es cerrado o abierto respectivamente. El valor de e, en cambio, es

72
indicado mediante la presencia (valor ausente) o ausencia (valor presente) de una cruz
que tacha la arista correspondiente.

Se han desarrollado algoritmos para convertir los grafos de selección en sus corres-
pondientes consultas SQL e incluso se han desarrollado arquitecturas dedicadas a esta
tarea en la que dichas consultas SQL son tratadas como primitivas de la arquitectura
para de esta manera procesarlas de manera mucho más eficiente [80].

Los Grafos de Selección representan un tipo de Graph Pattern Matching exacto,


óptimo y basado en el isomorfismo semántico de grafos. Cabe destacar que la definición
que se ha dado hasta ahora de Grafo de Selección ha sido la que se presenta en [80]
orientada a el uso de los mismos sobre bases de datos relacionales.

3.3.9. Cypher

Cypher es un lenguaje de consulta declarativo para la base de datos en grafo Neo4j


6
que permite consultas expresivas y eficientes para obenter o actualizar la información
almacenada. Cypher es un lenguaje relativamente sencillo pero muy potente. Consultas
que habitualmente son complicadas en otros lenguajes resultan muy sencillas en Cypher
[3].

Cypher está diseñado para ser un lenguaje de consulta humano, asequible tanto para
desarrolladores como para usuarios. Su objetivo es hacer que las consultas sean fáciles
de escribir aún cuando representan patrones complejos. Sus constructores son palabras
en inglés y la iconografı́a utilizada en su sintaxis hace que las consultas se entiendan a
simple vista. El lenguaje está optimizado para su lectura y no para su escritura.

Por ser un lenguaje declarativo, Cypher se centra en la claridad al expresar lo que


se quiere obtener de un grafo, no en cómo obtenerlo. Esta caracterı́stica contrasta con
Gremlin, que es imperativo y permite que las optimizaciones sean llevadas a cabo por
el sistema y no por el usuario.

Cypher is inspired by a number of different approaches and builds upon established


practices for expressive querying. Most of the keywords like WHERE and ORDER BY
6
http://neo4j.com

73
are inspired by SQL. Pattern matching borrows expression approaches from SPARQL.
Some of the collection semantics have been borrowed from languages such as Haskell
and Python.

Cypher permite cuatro tipos de consultas en grafos: Consultas por adyacencias, con-
sultas de conectividad, consulta de patrones y consultas de tipo resumen que permiten
agrupamiento y agregados [71]. Cypher permite varias cláusulas. Las más comunes son
MATCH y WHERE. Dichas cláusulas difieren un poco de sus correspondientes en SQL.
MATCH es utilizado para describir la estructura del patrón buscado, basado en re-
laciones. WHERE se utiliza para añadir restricciones adicionales a los patrones. Por
ejemplo:
MATCH (charlie:Person { name:’Charlie Sheen’ })-[:ACTED_IN]-(movie:Movie)
RETURN movie

Cypher obtiene su estructura de SQL, las consultas son construidas utilizando varias
cláusulas. Dichas cláusulas son encadenadas una detrás de la otra y obtienen resulta-
dos intermedios que son pasados a la siguiente cláusula. Por ejemplo, los identificadores
obtenidos con una cláusula MATCH formarán el contexto de la siguiente clausula co-
nectada con ella. El lenguaje de consulta está construio sobre diferentes cláusulas, a
continuación presentamos las más importantes:

MATCH: El patrón del grafo a detectar.


WHERE: No es una clausula propiamente dicha, es más bien una parte de la
cláusula MATCH y otras. Añade restricciones a los patrones o filtra los resultados
intermedios añadiendo la clausula WITH.
RETURN: Indica los datos a ser devueltos.

Pasemos a ver algunos ejemplos de consultas en Cypher. A continuación presentamos


una consulta que busca un usuario llamado ”John los amigos de sus amigos (no sus
2

amigos directos) y que devuelve el nombre del nodo correspondiente al usuario ”John 2

el nombres del nodo correspondiente a un amigo de sus amigo:


MATCH (john {name: ’John’})-[:friend]->()-[:friend]->(fof)
RETURN john.name, fof.name

74
Y su resultado:
john.name fof.name
2 rows
"John"
"Maria"
"John"
"Steve"

A continuación añadiremos filtros:


MATCH (user)-[:friend]->(follower)
WHERE user.name IN [’Joe’, ’John’, ’Sara’, ’Maria’, ’Steve’] AND follower.name =~ ’S.*’
RETURN user.name, follower.name

Y su resultado:
user.name follower.name
2 rows
"John"
"Sara"
"Joe"
"Steve"

Combinando la sintaxis de nodos y relaciones, podemos expresar patrones [2]. A


continuación se presenta un patrón de consulta sencillo:
(keanu:Person:Actor {name: "Keanu Reeves"} ) -[role:ACTED_IN {roles: ["Neo"] } ]-> (matrix:Mo
{title: "The Matrix"})

Como las etiquetas de los nodos, el tipo de relación .ACTED IN.es añadida como un
sı́mbolo, con el prefijo ”:”. Para incrementar la modularidad y reducir la redundancia
, Cypher permite asignar identificadores a los patrones. Esto permite inspeccionar los
caminos detectados, o reutilizarlos en otras expresiones:
acted_in = (:Person)-[:ACTED_IN]->(:Movie)

75
La variable .acted inçontendrá dos nodos y la relación que los conecta por cada
camino detectado. Existen numerosas funciones para acceder a los detalles de dicho
camino, como nodes(path), rels(path) o length(path).

Con respecto a la comparación de Gremlin y Cypher, en general, Cypher es sufi-


ciente y probablemente más rápido que Gremlin. La ventaja de Gremlin sobre Cypher
entra en juego cuando necesitamos un alto nivel de traversing. En Gremlin, se pueden
definir los patrones exactos de traversals (o incluso nuestros programar nuestros propios
algoritmos) donde el sistema de Cypher intentará tratará de encontrar la mejor solucion
de traversals por si misma. Cypher es más legible y fácil de mantener que Gremlin. En
los últimos tiempos, Gremlin se ha convertido en el fallback cuando una limitación en
Cypher es encontrada.

3.3.10. Comparativa de los lenguajes de consulta

De ”Graph Pattern Matching – Do We Have to Reinvent the Wheel?”(2014) OTRA


COMPARATIVA CON BUENA PINTA!!! ——————————

A continuación presentamos una comparativa [104] de tres de los lenguajes de consul-


ta (y sus respectivos sistemas de persistencia) presentados como soporte para expresar
consultas de patrones en grafos etiquetados para evaluar la eficiencia de cada uno de
ellos a la hora de realizar esta tarea.

Los sistemas considerados y sus lenguajes son la base de datos relacional PostgreSQL
con el lenguaje SQL, la base de datos RDF Jena TDB (REFERENCIA) con el lenguaje
SPARQL y la base de datos en grafo Neo4j con el lenguaje de consulta Cypher. En esta
comparación trabajaremos con grafos etiquetados, no dirigidos, sin lazos y con no más
de una arista entre cada par de vértices. Definiremos el grafo G = (V, E, λ), donde λ
es la función etiquetado que mapea cada vértice o arista con su etiqueta (un número
natural).

Sean G = (VG , EG , λG ) y Q = (VQ , EQ , λQ ) dos grafos. Una proyección de Q en G es


una función inyectiva f : VQ → VG tal que para cada x, y ∈ VQ :

1. {x, y} ∈ EQ implica que {f (x), f (y)} ∈ EG .

76
2. λQ (x) = λG (f (x)).
3. λQ (x, y) = λG (f (x), f (y)).

Por tanto, si dos vértices están conectados en Q, entonces sus imágenes en G deben
estar conectadas también. Nótese que si un nodo en Q no está conectado con ningún
otro nodo su imagen si puede estarlo. Por lo tanto nos encontramos ante un problema
de isomorfismo de grafos etiquetados.

Figura 3.5: Ejemplos de grafo G y patrón Q, y las proyecciones resultantes M1 , M2 .

La Figura 3.5 muestra un ejemplo de un grafo G, un patrón Q y todas las posibles


proyecciones de Q en G. En la práctica, el proceso de detección de patrones termi-
nará tras haber encontrado n proyecciones.

El problema de decidir cuándo un una proyección existe es NP-completo, ya que un


caso especial de este problema es decidir si un grafo contiene un ciclo de un tamaño
determinado [74]. Sin embargo, si el patrón buscado está restringido a un árbol acotado,
entonces decidir si existe una proyección es un problema tratable, exponencial en su
complejidad con respecto al tamaño de Q pero polinomial con respecto a el tamaño de
G [12]. Angles [13] describe cuatro tipos de consultas en grafos:

Consultas de adyacencia (listar los vecinos de un nodo).


Consultas de conectividad (encontrar caminos entre dos nodos).
Consulta de patrones (lo que aquı́ nos atañe).
Consultas de sumarización (listar/agrupar los valores de las propiedades de nodos
o aristas).

77
Nuestra comparación dependerá de tres componentes: Base de datos utilizada, da-
taset evaluado y conjunto de consultas a realizar. Los sistemas de bases de datos a
comparar, PostgreSQL, Neo4j, y Jena TDB tienen en común que son de código abierto
y que son populares en sus respectivas áreas de uso. Pero difieren considerablemente en
su forma de almacenar los datos y en los algoritmos utilizados para ejecutar las consul-
tas. Sin embargo, los tres sistemas permiten ejecutar los cuatro tipos de consultas en
grafos mencionadas. Presentamos a continuación el esquema de datos utilizado en cada
uno de estos sistemas, ası́ como algunas consultas en los tres lenguajes. Los esquemas
de datos utilizados son los esquemas de uso general para la representación de grafos.

Figura 3.6: Esquema de datos para PostreSQL y Jena TDB.

PostgreSQL (SQL) es un sistema de base de datos relacional de código abierto que


posee SQL como lenguaje de consulta. En las pruebas se ha utilizado la versión v9.1.9
del servidor PostgreSQL. El esquema de datos usado para los gráfos consta de dos
tablas: nodos y aristas (véase la Figura 3.11). La clave primaria de la tabla ”nodos.es el
atributo ı̈d contiene un ı́ndice sobre el atributo .etiqueta”. El atributo .etiqueta”también
2

está indexado en la tabla de aristas, los atributos .Origen ”Destinoçonstituyen la clave


2

principal de esta tabla. Dado que se trata de grafos no dirigidos, la tabla de aristas
contiene dos entradas por fila. La consulta SQL que utilizaremos para encontrar todas
las incidencias del patrón de la Figura 3.5 es el siguiente:
select v0.id, v1.id, v2.id
from nodes v0, nodes v1, nodes v2, edges e0, edges e1
where v0.label=0 and v1.label=1 and v2.label=0 and
v0.id<>v2.id and

78
e0.source=v0.id and e0.target=v1.id and e0.label=0 and
e1.source=v0.id and e1.target=v2.id and e1.label=1;

A la vista de la consulta SQL, se aprecia que se deben utilizar varias cláusulas de


tipo JOIN entre las tablas de ”nodos .aristas”. Dejamos que el optimizador de consultas
2

de bases de datos defina el orden de la combinación. En este caso, es posible utilizar un


esquema de datos no normalizado, con una sóla tabla que contenga toda la información
sobre nodos y aristas o se puede optimizar manualmente la consulta. Sin embargo, este
no es el objetivo en esta comparación. El mismo esquema de datos ha sido utilizado
en trabajos de evaluación comparativa anteriores ??. Nuestra atención se centra en la
forma en la que el motor de la base de datos optimiza de manera automática la ejecución
de la consulta.

Jena TDB (SPARQL) Existen varios sistemas de bases de datos basados en RDF.
Elegimos Jena, que es de código abierto, está orientado a la construcción de aplicaciones
basadas en RDF y proporciona varios métodos para almacenar e interactuar con los
datos. Utilizamos Fuseki 1.0.1 incluı́do en Jena TDB para la persistencia de los datos.
Codificamos el grafo en RDF mediante la representación de cada nodo como un recurso
(un IRI para cada nodo). Las aristas se describen como tripletas desde estos recursos a
otros con los que están conectados. Desde la elección del nodo que aparece en la posición
de sujeto de la RDF de triple implica una orden de las aristas, se crean dos tripletas
por cada arista, donde cambiamos las posiciones del sujeto y el objeto. Como resultado,
la estructura de la consulta RDF se asemeja el grafo original (Figura 3.5). La siguiente
consulta busca proyecciones del patrón Q en G:
SELECT ?X0 ?X1 ?X2
WHERE {?X0 e:0 ?X1 . ?X0 e:1 ?X2 .
?X0 a t:node . ?X0 rdfs:label 0
?X1 a t:node . ?X1 rdfs:label ’’1’’
?X2 a t:node . ?X2 rdfs:label ’’0’’
FILTER ( (?X0 6 = ?X1) && (?X0 6 = ?X2) && (?X1 6 = ?X2))}

Neo4j (Cypher) Neo4j es un sistema de base de datos en grafos con Cypher como
lenguaje de consulta. Neo4j no se basa en un modelo relacional, sino en un modelo de
grafo que almacena de forma nativa nodos (vértices), relaciones (aristas) y atributos.
Para la comparación se ha utilizado Neo4j v1.9. Es posible acceder y modificar datos en

79
Neo4j ya sea con consultas Cypher directamente a través de una API de Java. Además,
Los resultados experimentales muestran que Cypher través de la API REST se ejecuta
más lento que Cypher en modo incrustado [71]. El esquema de datos del grafo en Neo4j
se corresponde con el mostrado en la Figura 3.5. Las etiquetas de los nodos y las aristas
han sido indexadas a través de Lucene 7 .

Hay varias maneras de expresar una consulta de patrón en grafos con Cypher. La
más sencilla es comenzar por uno de los nodos en el patrón y explicitar todas sus aristas
a través de una cláusula MATCH. No podemos especificar todos los nodos como nodos
de inicio en Cypher, ya que los resultados para cada uno de esos nodos se mostrarı́an
en respuestas diferentes. Esta caracterı́stica obliga al usuario a decidir cual es el nodo
más apropiado para ser designado como nodo de inicio. No podemos especificar todos
los nodos como nodos de inicio en Cypher.

Es posible escribir consultas anidadas en Cypher, esto permite ir detectando cada


una de las aristas del patrón y transferir los resultados intermedios a el siguiente nivel:
START v0 = node:my_nodes(label=’0’) MATCH v0-[e0]-v1
WHERE v1.label=1 and e0.label=0
WITH v0, v1 MATCH v0-[e1]-v2
WHERE v2.label=0 and id(v0)<>id(v2) and e1.label=1
RETURN id(v0), id(v1), id(v2);

Los desarrolladores de Neo4j recomiendan utilizar consultas anidadas si el patrón


de consulta es complicado. En ambos casos, directa y anidada, se ha podido mejorar
la eficiencia de la consulta a través de una elección más inteligente del nodo inicio y el
orden en el que se describen las aristas. Estas mejoras no han sido tenidas en cuenta
a la hora de realizar la comparación entre los diferetnes sistemas. Se presenta sólo el
rendimiento de la consulta anidada Cypher, ya que muestra mejores resultados que la
consulta directa.

La evaluacion se ha realizado sobre conjuntos de datos sintéticos (Small-World y


Erdos Renyi Model ) y de la vida real (The terrorist organization collaboration network
(GTON) y The citation network (HepTh) (REFERENCIAS!)). Las caracterñisticas de
dichos conjuntos de datos son resumidas en la Figura 3.11.
7
http://lucene.apache.org/

80
Figura 3.7: Resumen de los conjutnos de datos utilizados para comparar los sistemas de
consulta.

Se han generado dos conjuntos de patrones conexos en grafos para ser consultados.
El primer conjunto ha sido obtenido sintéticamente con un procedimiento que toma
como entrada el número de nodos y el núemro de aristas, los patrones en este primer
conjunto poseen etiquetas sólamente para las aristas. El segundo conjunto de consultas
ha sido obtenido del mundo real utilizando graph pattern mining. En concreto, se han
buscado patrones que ocurren al menos cinco veces en los datasets presentados. En este
conjunto tanto los nodos como las aristas están etiquetados.

Como resultado, se obtienen las siguientes conclusiones: En general, Jena TDB es el


que mejores resultados ofrece para la detección de patrones en Grafos (bajo los esquemas
de datos propuestos). Si el grafo a analizar es muy grande y los patrones son en su
mayorı́a acı́clicos, Neo4j proporciona buenos resultados. Sin embargo, en el caso de
grandes grafos y patrones cı́clicos con más de siete aristas, ninguno de los sistemas de
base de datos estudiados se desempeña bien.

3.3.11. Otras Herramientas de Consulta Relacionadas

En [14] proponen utilizar la Lógica Dinámica Proposicional (PDL) [53] como herra-
mienta de consulta en bases de datos en grafo. La razón para utilizar dicha herramienta
es que dicho lenguaje combina unas buenas propiedades de evaluación con una gran
expresividad: Puede ser evaluado en tiempo polinomial e incluso en tiempo lineal para
un gran número de patrones. Además, esta tecnologı́a permite expresar propiedades re-

81
Figura 3.8: Average run time in seconds on logarithmic scale for ERM.

levantes en bases de datos en grafo. Plantean la consulta de patrones en grafoss dirigidos


con aristas etiquetadas pero sin propiedades ni en nodos ni en aristas. Las expresiones
en PDL son acı́clicas, es decir, no pueden expresar propiedades interesantes sobre ciclos
en la base de datos en grafo subyacente. Esta limitación del lenguaje está al servicio de
la eficiencia.

En [83] se define un lenguaje de consulta y un motor para llevar a cabo Graph


Pattern Matching que trabaja con el concepto de patrón, un patrón está compuesto por
un grafo y un conjunto de predicados. Los predicados están definidos sobre los nodos
en el patrón. Una coincidencia de un patrón en un grafo dado estará caracterizada por
un mapeo de los nodos del patrón a nodos del grafo (llamados los nodos target de la
coincidencia), tal que: (1) cada nodo del patrón es asociado con un nodo del grafo del
mismo tipo, (2) cada arista del patrón es asociada con una arista en el grafo del mismo
tipo y (3) todos los predicados se satisfacen. Las condiciones (1) y (2) describen un

82
Figura 3.9: Average run time in seconds on logarithmic scale for PAM.

homomorfismo de grafo tipado. En general este tipo de homorfismos no requiere que el


mapeo sea inyectivo pero se pueden utilizar predicados para garantizar la inyectividad.
Además permiten el uso de un tipo de nodo/arista especial AN Y que permite que un
nodo/arista en el patrón se asocie con un nodo/arista en el grafo de cualqueir tipo.
Un predicado es una comparación binaria entre dos expresiones y las expresiones son
definidas sobre los nodos del patrón.

Los GraphFrames [42] son una librerı́a de procesamiento de grafos para Apache
Spark 8 . Desarrollada por la UC de Berkeley en colaboración con el MIT, dicha librerı́a
está construida sobre el concepto de DataFrame beneficiándose de su escalabilidad y su
alto rendimiento, además proveen una API para poder manipular grafos desde diferentes
lenguajes: Python, JAVA y Scala. Los GraphFrames son estrcturas que permiten el
procesamiento de datos en forma de grafos con propiedades. Las versiones recientes
8
http://spark.apache.org/

83
Figura 3.10: Average run time in seconds on log-scale for synthetic patterns on
PAM1000.

Figura 3.11: Average run time in seconds on logarithmic scale for GTON and HepTH.

de Spark (a partir de la 1.4) han incorporado los GraphFrames. Dichas estructuras


permiten la búsqueda de patrones en grafos a través de el concepto de motif.

3.4. Grafos con Propiedades

Con el objetivo de construir nuestra herramienta de consulta de patrones sobre grafos


con propiedades, a la que llamaremos Property Query Graph, comenzaremos dando una
definición de Grafo con Propiedades, la cual constituirá la estructura matemática básica
con la que trabajaremos.

84
Definition 28. Un Grafo con Propiedades es una tupla G = (V, E, µ) donde V repre-
senta el conjunto de nodos del grafo, E el conjunto de aristas del grafo y µ ∈ M es
una función que relaciona cada nodo o arista en el grafo con su conjunto de propiedades
µ : (V ∪ E) × R → S, donde R representa el conjunto de posibles claves, y S el conjunto
de posibles valores asociados. Las aristas e ∈ E deben poseer un valor µ(e, γ) para la
clave γ (incidencias).

Cabe indicar que en este caso, a diferencia de en las definiciones tradicionales de gra-
fos, los elementos en E son sı́mbolos que representan a las aristas y no pares de sı́mbolos
en V como es lo habitual. La forma en la que se especifican los nodos participantes en
una arista (un elemento en E) es a través de su propiedad γ, cuyo valor estará confor-
mado por una lista ordenada de elementos en V . Gracias a que la longitud de la lista
almacenada en la propiedad γ no tiene restricción en su tamaño se abre la posibilidad de
que una arista conecte un número de nodos en V diferente a 2, permitiendo ası́ trabajar
con hipergrafos con propiedades.

La dirección de las aristas (el orden en el que se conectan los nodos incidentes)
vendrá determinada por el orden de los elementos en la lista ordenada almacenada a
través de la propiedad γ.

Figura 3.12: Grafo binario con propiedades G1 con 3 nodos y 3 aristas.

En la Figura 3.12 se muestra un grafo binario con propiedades consistente en 3


nodos y 3 aristas en el que se han ubicado representaciones del conjunto de propiedades
de cada elemento (nodo o arista) del grafo. Nótese que en este caso, el valor de la
propiedad γ (incidencias) de cada una de las aristas es una lista con dos nodos, por lo
que todas las relaciones son binarias y por tanto nos encontramos ante un grafo binario
con propiedades.

85
Figura 3.13: Hipergrafo con propiedades H1 con 5 nodos y 4 hiperaristas.

En la Figura 3.13 se muestra un hipergrafo con propiedades consistente en 5 nodos y


4 hiperaristas, dos de ellas binarias y dos de ellas con cardinalidad 3. De nuevo, se han
ubicado representaciones del conjunto de propiedades de cada elemento (nodo o arista)
del hipergrafo. Nótese que en este caso, el valor de la propiedad γ (incidencias) de cada
una de las hiperaristas es una lista de longitud variable (en ocasiones longitud 2 y en
ocasiones longitud 3) por lo que no todas las relaciones son binarias y por tanto nos
encontramos ante un hipergrafo con propiedades.

A pesar de que la definición de grafo con propieades planteada aquı́ permite trabajar
con hipergrafos, la definiciones que se presenten a partir de ahora estarán orientadas a
trabajar con grafos binarios.

86
3.5. Property Query Graph

LAS ARISTAS FIJAS SOLO SE PUEDEN PROYECTAR A UNA ARISTA Y NO


A UN CAMINO

A continuación daremos una definición de Property Query Graph, nuestra propuesta


para extender el concepto de Selection Graph y obtener un instrumento lo suficientemen-
te potente como para evaluar si un subgrafo en un grafo con propiedades cumple o no
con determinados patrones estrcutrales y semánticos. Realizaremos una generalización
del concepto de Grafo de Selección a través de las siguientes caracterı́sticas:

Permitiremos que los Property Query Graphs sean cı́clicos.

Permitiremos que los Property Query Graphs tengan un número variable (desde
0 a todos) de elementos marcados como elementos fijos. Recordemos que en los
Grafos de Selección clásicos es obligatorio que el elemento fijo sea un único nodo
que representa a la tabla target.

Permitiremos que las aristas del Property Query Graph sean proyectadas a un
camino en el subgrafo al que incide, la manera de restringir a qué caminos puede
proyectarse una determinada arista en el Property Query Graph será a través de
la expresión regular asociada a la misma de tal manera que el camino al que se
proyecte debe ser reconocido por el lenguaje de dicha expresión regular (Regular
Pattern Matching).

Permitiremos que los predicados asociados a un nodo en el Property Query Graph


evaluen caracterı́sticas estructurales y semánticas más allá de las propiedades al-
macenadas a través de la función µ.

La relación buscada entre el Property Query Graph y el subgrafo sobre el que


incide no es una función (es una relación matemática), de tal manera que un
elemento en el Property Query Graph puede asociarse con varios elementos del
subgrafo sobre el que incide.

La definición de Grafo de Selección presentada en la Sección 3.3.8 está orientada a


su uso sobre bases de datos relacionales, y es por eso que el vocabulario utilizado en

87
la misma proviene del área de las bases de datos relacionales. A continuación vamos a
definir el concepto de Property Query Graph utilizando un vocabulario más general y
alejándonos del vocabulario de las bases de datos relacionales.
Definition 29. Un Property Query Graph es una tupla Q = (V, E, µ, F ) donde (V, E, µ)
es un grafo con propiedades y:

Cada nodo v ∈ V posee una propiedad µ(v, α) ∈ {true, f alse} que debe tomar un
valor lógico indicando si el nodo se encuentra abierto (true) o cerrado (false) y
una propiedad µ(v, θ) cuyo valor debe ser un predicado.
Cada arista e ∈ E posee una propiedad µ(v, α) ∈ {true, f alse} que debe tomar un
valor lógico indicando si la arista se encuentra presente (true) o ausente (false) y
una propiedad µ(e, θ) cuyo valor debe ser una expresión regular sobre el alfabeto
de los posibles predicados que se pueden construir sobre los elementos de un grafo.
F ⊆ V ∪ E representa el conjunto de los elementos fijos, un subconjunto de los
elementos del Property Query Graph.

Al igual que en el marco de los grafos de selección, una arista marcada como ausente
en un query property graph representa la condición de que los nodos en el subgrafo
incidente que se asocian con los nodos del property query graph que inciden sobre la
misma no sean incidentes a una arista con las caracterı́sticas determinadas por la arista
ausente.

También en analogı́a con los Grafos de Selección, un nodo marcado como cerrado
en un property query graph representa un nodo que sólo es utilizado como incidencia
de una arista ausente, permitiendo aplicar restricciones más exahustivas a ésta. Por lo
tanto para que se de una incidencia de un property query graph en un subgrafo de un
grafo con propiedades no es necesario que los nodos marcados como cerrados y las aristas
marcadas como ausentes se relacionen con algún elemento del subgrafo. Además, dichos
nodos o dichas aristas no podrán ser marcados como elementos fijos en el property query
graph.

En contraposición, un nodo abierto o una arista presente representan elementos


presentes en el patrón y cada uno de ellos debe ser proyectado al menos a un elemento
del subgrafo incidente.

88
Con el objetivo de desarrollar las herramientas necesarias para dotar de potencia a los
property query graphs definiremos una propiedad entre un grafo con propiedades y un
property query graph a la que denominaremos compatibilidad, la cual indicará cuándo un
grafo con propiedades es compatible con un property query graph dado. En lo que sigue
PS (C) representa el conjunto de todas las posibles secuencias que se pueden construir
con los elementos en C, por lo que cualquier camino ρ en un grafo con propiedades
G = (V, E, µ) pertenecerá al conjunto de las posibles secuencias formadas por nodos y
aristas de dicho grafo, ρ ∈ PS (V ∪ E).
Definition 30. Dado un grafo con propiedades G = (V, E, µ) y un property query
graph Q = (VQ , EQ , µQ , FQ ), diremos que G es Q − compatible si existen dos relaciones
binarias V ⊆ VQ × V y E ⊆ EQ × PS (V ∪ E) tal que:

Por cada nodo abierto en el property query graph u ∈ VQ , existe al menos un nodo
en el grafo v ∈ V tal que (u, v) ∈ V.
Por cada arista presente en el property query graph e ∈ EQ , existe al menos un
camino en el grafo ρ ∈ PS (V ∪ E) tal que (e, ρ) ∈ E
Para cada par (u, v) ∈ V:
• v cumple con el predicado µ(u, θ) impuesto por u.
• v no participa en caminos que cumplan con las restricciones impuestas por
las aristas ausentes incidentes a u.
Para cada par (e, ρ) ∈ E:
• Si ρ = (v0 , e0 , v1 , ..., en−1 , vn ) entonces µ(e, γ) = (v0 , vn ).
• Si ρ = (v0 , e0 , v1 , ..., en−1 , vn ), la secuencia e0 , v1 , ..., vn−1 , en−1 de elementos
que componen el camino cumplen (uno a uno) con los predicados impuestos
por una cadena válida en el lenguaje L(µ(e, θ)) determinado por la expresión
regular µ(e, θ).

Dado el alfabeto de todos los posibles predicados que se pueden construir sobre los
elementos de un grafo Σ (los predicados sobre aristas se presentarán entre corchetes y
los predicados sobre nodos se presentarán entre paréntesis), las expresiones regulares
que se pueden asociar a una arista en un property query graph se definen:

89
1. (p), [r] ∈ Σ son expresiones regulares.
2. () = (true) y [] = [true] son expresiones regulares que representan predicados que
siempre son ciertos (sobre nodos y aristas, respectivamente).
3. Si a y b son expresiones regulares, entonces:
a) a + b es una expresión regular
b) a · b (o ab) es una expresión regular.
c) a∗ es una expresión regular.
d ) (a) es una expresión regular.
4. Ninguna otra expresión salvo las anteriores es una expresión regular válida para
ser asociada a una arista en un property query graph.

Nota: La precedencia de los operadores es (de más a menos): ∗, ·, +.

Cabe destacar que a pesar de que no hemos impuesto la restricción de que la ex-
presión regular asociada a una arista en un property query graph intercale predicados
sobre nodos y predicados sobre aristas, una expresión regular sin esta caracterı́stica
nunca podrá generar un lenguaje aceptado por un camino en un grafo con propiedades.

A continuación presentamos algunos ejemplos de expresiones regulares construidas


sobre el alfabeto de predicados Σ = {(p), [r]}:

1. [r]
2. ([r][r])∗
3. [r](p)[r]
4. ([r](p)) ∗ []
5. [r](p)[r] + []

El lenguaje definido por la expresión regular presente en el ejemplo número 2 nunca


podrá ser cumplido por un camino (debido a que no representa una secuencia alternada
de predicados sobre aristas y sobre nodos).

90
Cuadro 3.1: Compatibilidad de los grafos con propiedades G1 y G2 con Q1 , Q2 , Q3 , Q4 , Q5
y Q6 .
Q1 Q2 Q3 Q4 Q5 Q6
G1 X x X X X X

Cuadro 3.2: Cumplimiento de los subgrafos S1 , S2 y S3 con los property query graphs
Q1 , Q2 , Q3 , Q4 , Q5 y Q6 .
Q1 Q2 Q3 Q4 Q5 Q6
S1 x x X X x x
S2 X x X x X X
S3 X X X X x X

Como ejemplo de compatibilidad en la Figura 3.14 se muestran seis property query


graphs (Q1−6 , donde los elementos fijos están marcados con el sı́mbolo *) y en el Cuadro
3.1 se muestran las relaciones de compatibilidad del grafo G1 con cada uno de ellos.

Definition 31. Dado un grafo con propiedades G = (V, E, µ) y un property query graph
Q = (VQ , EQ , µQ , FQ ) diremos que G0 = (VG0 , EG0 ), VG0 ⊆ V, EG0 ⊆ E cumple con Q,
Q(G0), si G es Q-compatible a través de dos relaciones V y E tal que si u ∈ FQ ∩ VQ y
(u, v) ∈ V entonces v ∈ VG0 y si e ∈ FQ ∩ EQ y (e, ρ) ∈ E entonces todos los elementos
(nodos y aristas) pertenecientes a ρ deben estar contenidos en G0.

En la Figura 3.15 se presenta un grafo social con propiedades en el que se han


marcado los subgrafos S1 , S2 y S3 . En el Cuadro 3.2 se muestra el cumplimiento o no,
de cada uno de estos tres subgrafos con cada uno de los property query graphs en la
Figura 3.14 (Q1−6 ).

3.6. Conclusiones

91
(a) Grafo con propiedades Q1 .

(b) Grafo con propiedades Q2 .

(c) Grafo con propiedades Q3 . (d) Grafo


con pro-
piedades
Q4 .

(e) Grafo con propiedades Q5 .

(f) Grafo con propiedades Q6 .

Figura 3.14: Grafos con propiedades Q1 , Q2 , Q3 , Q4 , Q5 y Q6 .

92
Figura 3.15: Ejemplo de grafo con propiedades en el que se han marcado los subgrafo
S1 , S2 y S3 .

93
Capı́tulo 4

Inducción de Árboles de Decisión a


Partir de Grafos con Propiedades

4.1. Introducción

La minerı́a de datos [85] es el área de la ciencia que se encarga de extraer información


implı́cita y no trivial de grandes bases de datos. Existen una gran cantidad de tecnologı́as
de minerı́a de datos tradicionales pero con la expansión de diferentes tipos de objetos
de procesamiento, los métodos de minerı́a clásicos poseen ciertas limitaciones ya que
están preparados para trabajar con datos planos, es decir objetos con una serie de
atributos. Los algoritmos de minerı́a de datos relacionales [122] han sido un un aŕea
de investigación emergente en los últimos años. Dichos algoritmos permiten encontrar
patrones que implican múltiples relaciones a partir de datos estructurados [87].

El sistema FOIL [109] (First-Order Inductive Learner) desarrollado por Quinlan et


al. en la década de los 90 permite generar automáticamente reglas de clasificación para
clasificar datos relacionales. Este puede ser considerado el primer sistema de aprendi-
zaje en datos relacionales para tareas de clasificación. En 1998, Blockeel y De Readt
plantearon el algoritmo de minerı́a de datos multi-relacional TILDE [23], que construye
árboles de decisión con lógica de primer orden utilizando el método C4.5 [110]. En 1999,
Knobbe et al. propusieron el MRDTL [80] (Multi-Relational Decision Tree Learning),

94
como una mejora del algoritmo TILDE [23] propuesto también por Knobbe. El árbol de
decisión clásico [107], el árbol de decisión proposicional [109], el árbol de decisión con
lógica de primer orden [23], y el árbol de decisión multi-relacional [80] son idénticos en
su estructura, los nodos internos contienen tests, y los nodos hoja contienen los valores
a predecir.

En los árboles de decisión multi-relacionales, se utilizan grafos de selección asociados


a los nodos del árbol de decisión. Un grafo de selección puede ser entendido como un
query graph, una herramienta que permite evaluar si un grafo cumple con un patrón
determinado. MRDTL y TILDE se basan sobre la misma idea sin embargo, el algoritmo
TILDE utiliza predicados de primer orden para representar los nodos en el árbol de
decisión mientras que MRDTL utiliza el concepto de grafo de selección para representar
los nodos en el árbol. En 2003, Saso Dzerroski resumió las principales teorı́as y contenidos
de investigación del método MRDTL [45].

Más tarde, S. Ruggieri mejora el algoritmo C4.5, generando el EC4.5 (C4.5 eficiente)
[123]. Los resultados muestran que para un mismo árbol de decisión, la eficiencia de
EC4.5 es seis veces más grande que la de C4.5, pero utiliza más memoria [89]. En 2003,
C. Olaru desarrolló un árbol de decisión basado en lógica difusa llamado Soft Decision
Tree [102]. Dicho árbol de decisión difuso sintetiza la generación y la poda de árboles
de decisión a la hora de construirse e incorpora determinadas técnicas para mejorar la
capacidad de inducción del árbol. Por lo tanto, la exactitud del árbol de decisión difuso
es mayor que la del árbol de decisión general.

En los últimos años, ha habido varios avances importantes [76, 145] en la minerı́a de
datos multi-relacional. Yin Xiaoxin propuso CrossMine [141, 143], el más representativo
de los métodos de clasificación multi-relacionales. CrossMine mezcla ILP (Programa-
ción Lógica Inductiva) con el sistema de base de datos relacional, mejorando de manera
efectiva la eficiencia de FOIL. Además, se mejora la eficiencia gracias a la tecnologı́a
de propagación de tuplas-ID. Varios métodos novedosos se desarrollan para CrossMine,
incluyendo (1) la propagación de tuplas-ID, el cual conserva las caracterı́sticas semánti-
cas de un registro en una tabla al definir la unión virtual de tablas en bases de datos
relacionales, y (2) un método de muestreo selectivo, lo que hace que sea muy escalable
con respecto al número de tuplas en la base de datos. Numerosos experimentos en bases
de datos reales y sintéticas demostraron la alta escalabilidad y la precisión de CrossMine
[141].

95
En 2007, Huo Zheng et al. presentaron un algoritmo de clasificación para datos
relacionales guiado por el usuario [146, 65]. El cual mejora la precisión de la clasificación,
y puede soportar directamente bases de datos relacionales. El tiempo de ejecución es
mucho menor que el de la clasificación de datos relacionales basado en la tecnologı́a de
ILP.

Existe otra rama de la minerı́a de datos relacional que también es capaz de construir
árboles de decisión relacionales de manera automñatica a partir de datos estructurados.
Graph-Based Induction (GBI) es una técnica de Minerı́a de Datos relacional que extrae
de manera eficiente patrones frecuentes de datos estructurados en forma de grafo a través
de la unión de pares de nodos conectados. Es muy eficiente debido a que utiliza una
búsqueda voraz. El Decisión Tree Graph-Based Induction (DT-GBI) es un algoritmo de
construcción de árboles de decisión para datos estructurados en forma de grafo utilizando
los principios de GBI.

En el método Decision Tree Graph-Based Induction (DT-GBI), los patrones tı́picos


son extraı́dos utilizando GBI y utilizados como atributos para clasificar datos en formato
de grafo. Al construir un árbol de decisión, todos los pares en los datos son enumerados
y un par es seleccionado. Los datos (grafos) son divididos en dos grupos, un grupo en
el que permanecerán los grafos que contengan el par seleccionado y otro grupo en el
que estarán los grafos que no lo contengan. El par seleccionado es entonces unido en los
grafos que lo contienen y dichos grafos son reescritos reemplazando las ocurrencias de
dicho par por un nuevo nodo. Este proceso es aplicado de manera recursiva en cada nodo
de el árbol de decision y el ñarbol de decisión se construye mientras que los atribuos
(pares de nodos) son creados durante la ejecución.

Cabe destacar que los algoritmos que construyen árboles de decisión a partir de datos
estucturados en form de grafos pertenecientes al a familia de MRDTL están orientados
a construir árboles clasificadores de nodos en un grafo y que los métodos basados en
GBI están orientados a construir árboles clasificadores de grafos completos. Es decir,
en el caso de MRDTL los elementos a clasificar son nodos en un grafo y en el caso de
GBI-DT los elementos a clasificar son grafos.

En los algoritmos de minerı́a de datos multi-relacionales, el principal cuello de botella


para mejorar la eficiencia de los algoritmos es el espacio de hipótesis. Gran cantidad de
atributos almacenados en las relaciones no tienen nada que ver con la clasificación
buscada. Al tener en cuenta las relaciones, el espacio de búsqueda se hace más grande,

96
lo que lleva a una baja eficiencia de los algoritmos. Por lo que para mejorar la eficiencia
la clave está en reducir el espacio de hipótesis. El algoritmo MRDTL-2 [87] lucha contra
este problema reduciendo el espacio de búsqueda limitando los posibles refinamientos
que se pueden realizar sobre un grafo de selección.

4.2. Árboles de Decisión

Los métodos de aprendizaje automático supervisados tratan de descubrir la relación


existente entre un objeto de entrada y uno de salida en un proceso. La relación a
descubrir es representada a través de un modelo. Habitualmente dichos modelos son
utilizados para predecir el objeto de salida en función de los valores de los atributos
del objeto de entrada. Habitualmente dividimos los modelos supervisados en dos clases:
Modelos de clasificación y modelos de regresión.

Los modelos de regresión mapean un objeto de entrada a un espacio real y los modelos
de clasificación mapean un objeto de entrada a un espacio compuesto por un número
predefinido de clases. Existen muchos modelos de clasificación y el árbol de decisión es
probablemente uno de los más conocidos. Originalmente se diseñó en el marco de la
teroı́a de la decisión o estadı́stica, pero más adelante se posicionó como un buen modelo
dentro del aprendizaje automático [121].

Dada la larga historia y el gran interés en los árboles de decisión, existen numerosas
buenas referencias que los estudian en profundidad [124, 96, 82].

En la Tabla 4.1 se muestra un pequeño conjunto de datos, en este caso, cada objeto
(cada fila) corresponde a un dı́a concreto y en las columnas se muestran los valores
concretos de cada propiedad para cada uno de esos dı́as, la última columna representa
la clase a la que pertenece cada objeto del conjunto (N si el dı́a fué adecuado para
jugar tenis y P en caso contrario). Un árbol de decisión que clasifica correctamente
cada objeto en el conjunto se muestra en la figura 4.2. Las hojas del árbol de decisión
están asiganadas a una de las clases (N o P ), el resto de nodos del árbol representan
preguntas a realizar sobre alguno de los atributos y poseen una rama por cada valor
posible que dicho atributo puede tomar. Para clasificar un objeto, se comienza en la raı́z
del árbol evaluando el primer test, y se toma la rama correspondiente al valor que dicho
objeto posea en la propiedad sobre la que realiza el test el nodo raı́z, el proceso continua

97
hasta que se alcanza una hoja, la cual indica la clase a la que el objeto pertenece.

Figura 4.1: Un pequeño conjunto de datos.

CHAID (CHi-squared Automatic Interaction Detector) es un algoritmo de apren-


dizaje de árboles decisión desarrollado por Gordon V. Kass [75] en 1980. CHAID es
fácilmente interpretable y puede ser usado para tareas de clasificación y para el es-
tudio de las interacciones existentes entre variables. CHAID es una extensión de los
procedimientos AID (Automatic Interaction Detector) and THAID (Theta Automatic
Interaction Detector). Este algoritmo funciona seleccionando el mejor atributo para di-
vidir un conjunto de objetos. El método puede trabajar con missing values pero no
incluye ninguna técnica de poda [95].

CART (Classification And Regression Tree) propuesto por Breiman et al. [29] cons-
truye un árbol de decisión binario con posibilidad de poda. CART es una técnica de
aprendizaje de árboles de decicisón que produce árboles tanto clasificadores como re-
gresores, dependiendo si la variable objetivo es categórica o numérica. El atributo con
la máxima reducción de impureza es utilziado para dividir el conjunto de objetos [95].

98
Figura 4.2: Un árbol de decisión simple.

4.2.1. Algoritmo ID3

ID3 es un algoritmo ideado por R. Quinlan [107] utilizado para crear árboles de
decisión a partir de un conjunto de datos (conjunto de entrenamiento), dicho conjunto
está conformado por una serie de objetos que son descritos a través de una colección
de propiedades. Cada objeto del conjunto de entrenamiento pertenece a una clase de un
conjunto de clases mutuamente excluyente.

El algoritmo ID3 realiza un proceso de inducción para construir una serie de reglas
que permitan clasificar cada uno de los objetos en el conjunto de entrenamiento en
la clase correspondiente. La primera pregunta a realizar para construir unas reglas de
este tipo es: ¿qué propiedades de los objetos proveen suficiente infomación para rea-
lizar esta tarea? En particular, si el conjunto de entrenamiento contiene objetos con
exactamente las mismas propiedades que pertenecen a clases distintas, es claro que es
imposible diferenciar esos objetos teniendo en cuenta sus propiedades. En este caso los
atributos tenidos en cuenta no serán los adeacuados para realizar la tarea de induc-
ción. En caso contrario, podemos hacer uso del concepto de ganancia de información
(medida de la reducción de impureza) para decidir qué propiedades de los objetos son
las que nos permiten construir las mejores reglas clasificadoras en cada caso. Como se
comentó anteriormente, las reglas clasificadoras serán expresadas a través de un árbol
de decisión.

99
El algoritmo comienza creando un árbol que contiene un único nodo (nodo raı́z) y
al que están asociados todos los objetos pertenecientes al conjunto de datos. En cada
paso, el algoritmo evalúa qué propiedad permite dividir de mejor manera el conjunto de
objetos actual (máxima ganancia de información) y se elige dicha propiedad para ser
evaluada en el nodo actual, a continuación se crea una rama por cada posible valor de
dicha propiedad y se transmiten a ellas los objetos que cumplen con dicho valor, además
se elimina la propiedad utilizada del conjunto de posibles propiedades a utilizar. En el
caso de que un nodo herede un conjunto de objetos que pertecen a una única clase,
dicho nodo se convertirá en una hoja asociada a dicha clase. Este proceso se repite de
manera recursiva.

Figura 4.3: Conjunto de datos inicial.

Pasemos a un ejemplo. Partimos del conjunto de datos sobre animales presentado


en la Tabla 4.3, en el que cada fila representa un animal y cada columna la existencia
o no de alguna propiedad en ellos. La última columna representa la clase a la que el
animal pertenece (M amif ero, P ez o Ave), esta clase es la que queremos que el árbol
de decisión aprenda a obtener a partir de las propiedades un objeto. Como primer paso,
el algoritmo analizará qué propiedad de entre todas las disponibles aporta una mayor
ganancia de información dando como resultado que son los atributos Huevos, P atas y
P lumas (Tabla 4.4). Escogeremos Huevos por ser el primero de la lista. Por lo que el
primer nodo (nodo raı́z) del árbol de decisión será el que realice el test sobre la propiedad
Huevos (Figura 4.5). Las ramas correspondiente a los posibles valores de la propiadad
Huevos (Sı́ y No) heredarán los objetos que cumplan con el valor de dicha propiedad
indicado por la rama (recordemos que ya no se podrá preguntar por esa propiedad en
ninguno de los nodos del árbol).

Figura 4.4: Ganancia de información aportada por cada propiedad en el nodo raı́z del
árbol de decisión en construcción.
A continuación se vuelve a repetir el mismo proceso por cada rama resultante, co-
menzaremos por la rama positiva, a la cual pertenecen los objetos 2,3,4 y 6. Para este

100
Figura 4.5: Nodo raı́z del árbol de decisión en construcción.

subconjunto de objetos las propiedades que mejor los dividen son P atas y P lumas (Ta-
bla 4.6), escogeremos P atas por ser el primero en la lista. Obtenemos el árbol de la
Figura 4.7.

Figura 4.6: Ganancia de información aportada por cada propiedad en la rama positiva
del nodo raı́z del árbol de decisión en construcción.

Figura 4.7: Segundo paso de la construcción del árbol.

De manera recursiva, pasamos ahora a evaluar la rama positiva del nodo P atas?,
en este caso todos los objetos asignados a esta rama (3 y 4) pertenecen a la misma
clase (Aves), por lo que a dicha rama se le asignará una hoja asociada a dicha clase.
Lo mismo ocurrirá con la rama negativa, todos los objetos asociados a ella (2 y 6)
pertenecen a la misma clase (P ez), por lo que a esta rama también le asignaremos una
hoja asociada a la clase P ez. Pasemos ahora a completar el árbol a partir de la rama
negativa del nodo raı́z. Los objetos asociados a dicha rama pertenecen todos a la misma
clase (M amif ero), por tanto, procedemos a asignar a dicha rama una hoja asociada a
la clase M amif ero.

De esta manera habremos construido un árbol que clasifica correctamente a todos


los objetos en el conjunto de entrenamiento (Figura 4.8).

101
Figura 4.8: Árbol de decisión obtenido mediante el algoritmo ID3.

4.2.2. Criterios de División

En cada paso de la construcción del árbol de decisión se debe elegir el atributo que
permita dividir mejor al conjunto de objetos. En el ejemplo anterior hemos utilizado
la ganancia de información como medida estándar pero hay numerosos criterios para
seleccionar el atributo que mejor divide a un conjunto determinado, dichos criterios
pueden ser categorizados en varios grupos [121]. Las siguientes subsecciones describen
las medidas de impureza más comunes en la literatura.

Dada una variable aleatoria x con k posibles valores discretos, distribuidos de acuerdo
a P = (p1 , p2 , ..., pk ) una medida de impureza es una función φ : [0, 1]k → R que satisface
las siguientes condiciones:

φ(P ) ≥ 0.

φ(P ) es mı́nimo si ∃i tal que pi = 1.

φ(P ) es máximo si ∀i, 1 ≤ i ≤ k, pi = 1/k.

φ(P ) es simétrica con respecto a los elementos de P .

φ(P ) es continua y diferenciable.

Dado un conjunto de entrenamiento S, el vector de probabilidad del atributo target


(y) se define como:

102
|Sy=c1 | |Sy=cdom(y) |
Py (S) = ( , ..., )
|S| |S|

La bondad de la división realizada por un atributo discreto ai se define como la


reducción de impureza con respecto al atributo target después de particionar S de
acuerdo a los valores vj ∈ dom(ai ):

|dom(ai )|
X |Sai =vj |
4φ(ai , S) = φ(Py (S)) − φ(Py (Sai =vj ))
vj =1
|S|

Ganancia de Información

La ganancia de información [108] es un criterio de división que utiliza la entropı́a


como medida de impureza.

X |Sai =vj |
GananciaDeInf ormacion(ai , S) = Entropia(y, S)− Entropia(y, Sai =vj )
|S|
vj ∈dom(ai )

Donde:

X |Sy=cj | |Sy=cj |
Entropia(y, S) = − log2
|S| |S|
cj ∈dom(y)

Índice de Gini

El Índice de Gini es una medida de impureza que calcula la divergencia entre las
distribuciones de probabilidad de el atributo target. El ı́ndice de Gini ha sido usado en
varios trabajos [27, 59]. El Índice de Gini se define como:

103
X |Sy=cj | 2
Gini(y, S) = 1 − ( )
|S|
cj ∈dom(y)

Por lo que el criterio de evaluación para seleccionar el atributo ai quedarı́a:

X |Sai =vj | 2
GiniGain(ai, S) = Gini(y, S) − ( ) Gini(y, Sai =vj )
|S|
vj ∈dom(ai )

Gain Ratio

Quinlan [110] propuso el Gain Ratio como una medida que normaliza pla ganancia
de información dela siguiente forma:

GananciaDeInf ormacion(ai , S)
GainRatio(ai , S) =
Entropia(ai , S)

Nótese que este ratio no estará definido para el caso en el que el denominador sea
0. Por lo que habrá que definir dicho caso como especial. Quinlan [106] demostró que
el Gain Ratio consigue mejores resultados tanto en precisión de resultados como en la
complejidad de ejecución con respecto a la Ganancia de Información.

4.2.3. Criterios de Parada

La construcción del árbol de decisión continúa hasta que un criterio de parada es


alcanzado. Se enumeran a continuación los criterios de parada más comunes:

Todas las instancias en el conjunto de entrenamiento pertenecen a un mismo valor


del atributo target y.

La profundidad máxima del árbol ha sido alcanzada.

104
El número de casos en el nodo terminal es menor que el número de casos de los
nodos padre.

Si alguno de los nodos tiene un número de elementos asociados menor que un


umbral determinado.

El mejor atributo para dividir aporta menos reducción de impureza que un umbral
determinado.

4.2.4. Podando los Árboles de Decisión

Utilizar un criterio de parada estricto favorece la creación de árboles de decisión


pequeños ası́ como poco ajustados a los datos en el conjunto de entrenamiento. Por otro
lado, utilizar un criterio de parada suave tiende a generar árboles de decisión grandes
y sobreajustados a los datos en el conjunto de entrenamiento. Los métodos de poda
sugeridos originalmente por Breiman et al. [27] fueron desarrollados para solucionar este
dilema. Normalmente, si se va a realizar una poda de manera posterior a la construcción
del árbol, en dicha construcción se utiliza un criterio de parada suave permitiendo al
árbol que crezca y se sobreajuste a los datos en el conjunto de entrenamiento. El árbol
sobreajustado será podado para dar lugar a un árbol más pequeño eliminando ciertas
ramas que no contribuyen a la precisión de las clasficiaciones [121].

La poda es muy útil cuando el objetivo del aprendizaje es construir modelos sencillos
pero con una buena eficiencia en la predicción. Se ha demostrado en varios estudios que
el empleo de técnicas de poda puede mejorar la tarea de generalización de los árboles
de decisión, especialmente en dominios ruidosos. Otra de las claves del uso de técnicas
de poda es obtener el equilibrio entre precisión en la clasficiación y simplicidad en el
modelo [26].

Existen varias técnicas para podar los árboles de decisión y la mayorı́a de ellas
llevan a cabo un recorrido top-down o bottom-up a través de los nodos del árbol, cada
nodo será podado si dicha acción mejora ciertos criterios en el árbol. A continuación
presentamos las técnicas de poda más populares para árboles de decisión.

105
Cost-Complexity Pruning.

El método de poda Cost-Complexity desarrollado por Breiman et al. [27] (también


conocido como la poda del enlace más débil) funciona en dos fases. En la primera
fase, una secuencia de árboles T0 , T1 , ..., Tk son construidos a partir del conjunto de
entrenamiento donde T0 es el árbol original antes de aplicar la poda y Tk es la raı́z del
árbol. En la segunda fase, uno de esos árboles es elegido como el árbol podado, basándose
en su estimación del error generalizado. El árbol Ti+1 se obtiene reemplazando uno o
más de los subárboles en el árbol predecesor Ti por las hojas adecuadas. Los sub-árboles
que se podan son aquellos con un menor incremento de la tasa de error aparente por
rama podada:

(pruned(T, t), S) − (T, S)


α=
|leaves(T )| − |leaves(pruned(T, t))|

Donde (T, S) representa la tasa de error del árbol T sobre el conjunto S y |leaves(T )|
denota el número de hojas en T . pruned(T ) denota el árbol obtenido al reemplazar el
subárbol t en T por una hoja adecuada.

En la segunda fase se calculará el error que comete cada árbol podado T0 , T1 , ..., Tk y
el mejor árbol podado será seleccionado. Si el conjunto de entrenamiento es lo suficien-
temente grande los autores sugieren dividir entre conjutno de entrenamiento y conjunto
de poda. Los árboles se construirán utilizando el conjunto de entrenamiento y serán
evaluados utilizando el conjunto de poda. Por otro lado, si el conjunto de entrenamiento
no es lo suficientemente grande poroponen utilizar una metodologı́a cross-validation, a
pesar de las implicaciones en complejidad computacional que esto conlleva.

Reduced Error Pruning.

Quinlan [108] sugirió un procedimiento sencillo para podar los árboles de decisión
conocido como Reduced Error Pruning. Realizando un recorrido bottom-up a través de
los nodos del árbol se verifica si sustituyendo cada uno de ellos por la clase más frecuente
produce un nuevo arbol que no reduce la precisión de la clasificación, en dicho caso, el
nodo será podado. El procedimiento continúa hasta que hasta que no existe ninguna

106
poda posible que no reduzca la precisión.

Pessimistic Pruning.

La poda pesimista ideada por Quinlan [110] evita el uso de un conjunto de poda
o de cross-validation utilizando la prueba de correlación estadı́stica pesimista. La idea
básica es que el ratio de error estimado utilizando el conjunto de entrenamiento no es
lo suficientemente realista y en su lugar se utiliza:

|leaves(T )|
0(T, S) = (T, S) +
2|S|

La poda pesimista lleva a cabo un recorrido top-down por los nodos intermedios. Si
un nodo intermedio es podado, todos los nodos que derivan del serán eliminados dando
lugar a una poda relativamente rápida [121].

Error-Based Pruning (EBP).

La poda basada en el error es una evolución de la poda pesimista y es la que utiliza


el algoritmo C4.5. Como en la poda pesimista la tasa de error es estimada utilizando el
lı́mite superior del intervalo de confianza estadı́sitico proporcional.

s
(T, S)(1 − (T, S))
U B (T, S) = (T, S) + Zα
|S|

Donde (T, S) denota la tasa de clasificación errónea en el árbol T sobre el conjunto


de entrenamiento S. Z es la inversa de la distribución normal y α es el nivel de signifi-
cación estadı́stica. Sea subtree(T, t) el subárbol enraizado por el nodo t, maxchild(T, t)
el hijo más frecuente de el nodo t (aquél en el que acaban más instancias de S) y sea
St el conjunto de todas las instancias en S que alcanzan dicho hijo. El procedimiento
realiza un recorrido top-down sobre todos los nodos de árbol y compara los siguientes
valores:

107
U B (subtree(T, t), St )
U B (pruned(subtree(T, t), t), St )
U B (subtree(T, maxchild(T, t)), Smaxchild(T,t) )

En función de el valor más bajo el procedimiento puede dejar el árbol como está,
podar el nodo t o bien reemplazar el nodo t con el subárbol enraı́zado por maxchild(T, t)
[121].

4.2.5. Algoritmo C4.5

C4.5 es una evolución de ID3 presentada también por Quinlan [110]. Utiliza el Gain
Ratio como criterio de división del conjunto de objetos. La división termina cuando el
número de objetos en una rama es menor que un umbral determinado y utiliza poda
basada en el error. C4.5 trabaja con atributos continuos creando un umbral y luego
dividiendo el conjunto de objetos en función de si el valor del atributo es superior o
menor o igual que el umbral [41]. C4.5 también permite trabajar con un conjunto de
objetos con valores faltantes, los valores faltantes de los atributos simplemente no se
usan en los cálculos de la ganancia y la entropı́a [121].

4.3. Árboles de Decisión Multi-Relacionales

4.3.1. Pogramación Lógica Inductiva

La programación Lógica Inductiva (ILP) es un subárea del aprendizaje automático


que utiliza programación lógica para representar de manera uniforme ejemplos, conocie-
miento base e hipótesis. Dada una codificación del conocimiento base y un conjunto de
ejemplos representados a través de una base de datos lógica de hechos, un sistema ILP
obtendrá un hipotético programa lógico que encajará con todos los ejemplos positivos
y no con los negativos. ILP sigue una orientación top-down. La potencia de ILP es su

108
expresividad ya que las reglas que extrae son interpretables y su desventaja es su inefi-
ciencia a la hora de trabajar con bases de datos complejas ası́ como que no se maneja
bien en presencia de atributos continuos [103].

En el paradigma de aprendizaje a partir de interpretaciones de la Programación


Lógica Inductiva [111], cada ejemplo es un conjunto de cláusulas que codifican sus
propiedades (una base de datos de conocimiento en Prolog [37]). Cada ejemplo está cla-
sificado en una de entre las posibles en un conjunto finito de posibles clases. Se debe
especificar un conocimiento base B expresado también a través de una serie de cláusulas.
El problema, se podrı́a expresar de manera formal de la siguiente forma, dado:

Un conjunto de clases C.

Un conjunto de ejemplos clasificados E.

Un conocimiento base B.

Encontrar una hipótesis H (un conjunto de cláusulas) tal que para cada e ∈ E,
H ∧ e ∧ B |= c, y H ∧ e ∧ B 2 c0 donde c es la clase a la que pertenece el ejemplo y
c0 ∈ C − {c}.

Árboles de Decisión Lógica

Un árbol de decisión Lógica es un árbol binario que cumple con las siguientes res-
tricciones [22]:

Todos los test son una conjunción de literales (en lógica de primer orden).

Una variable introducida en un nodo determinado del árbol (no aparece en sus
ancestros) no puede aparecer en su subárbol derecho.

Un ejemplo de árbol de decisión lógica se muestra en la Figura 4.9. Dicho árbol,


codifica el Ejemplo 1 a través de una hipótesis. Se utilizará la siguiente notación: un
árbol T es o una hoja perteneciente a la clase k (T = leaf (k)) o un nodo interno con

109
Figura 4.9: Árbol de decisión lógica [23].

una conjunción c asociada. La rama izquierda será denotada l y la rama derecha r, por
lo que para referirnos a un nodo intermedio escribiremos T = node(c, l, r) [23].

El Algoritmo 1 implementa un árbol de decisión lógica para clasificación evaluando


si un ejemplo e es consistente con una clase c en el contexto de un conocimiento base
B. El conjunto de literales C va acumulando la información otorgada por cada nodo en
el camino desde la raı́z hasta la hoja, de esta forma se veririfica que cumple con todas
las conjunciones impuestas. Nótese que cuando se clasifica el objeto a la derecha, C no
necesita ser actualizado, una evaluación fallida no introduce nuevas variables [23].

Algorithm 1 classify(e) [23]


1: C := true
2: N := root
3: while N 6= leaf (c) do
4: N = node(conj, lef t, right)
5: if C ∧ conj succeeds in B ∧ e then
6: C := C ∧ conj
7: N := lef t
8: else
9: N := right
10: end if
11: end while
12: return c

El Algoritmo 2 construye árboles de decisión lógica a partir de un conjunto de


ejemplos clasificados E, un conocimiento base B, y un lenguaje Q que indica qué tipo
de preguntas están permitidas en el árbol [23].

El único punto en el que este algoritmo se diferencia del ID3 presentado por Quinlan
(sin tener en cuenta las posibles optimizaciones implementadas en C4.5) es con respecto

110
Algorithm 2 buildtree(E, Q) [23]
1: if E es lo suficientemente homogéneo then
2: K := la clase más frecuente en E
3: return leaf (K)
4: else
5: Qb := el mejor elemento de Q, con respecto a alguna heurı́stica
6: Q0 := Q \ Qb
7: E1 := {e ∈ E|e ∪ B |= Qb }
8: E2 := {e ∈ E|e ∪ B 2 Qb }
9: return node(Qb , buildtree(E1 , Q0), buildtree(E2 , Q0))
10: end if

a los tests llevados a cabo en cada nodo del árbol.

4.3.2. Multi-Relational Decision Tree Learning (MRDTL)

A través de los años, se lograron avances en la minerı́a de datos multi-relacional


[76, 145]. Yin Xiaoxin [142] diseñó CrossMine, uno de los modelos más representativos
de clasificación multi-relacionales. CrossMine mezcla la tecnologı́a ILP y las bases de
datos relacionales, mejorando la eficiencia FOIL. Además, mejora la eficiencia completa
de esta tecnologı́a a través del desarrollo de la propagación de tuplas ID [87].

En 2007, Huo Zheng, et al., [89, 65] llevaron más allá este tipo de algoritmos a través
de la clasificación guiada por modelos Naive Bayes, los cuales mejoran la precisión y
trabajan también directamente con bases de datos relacionales. El tiempo de ejecución
es muy inferior a el de los algoritmos anteriores basados en ILP.

Una de las claves para que el método MRDTL fuera viable de implementar era el uso
de la técnica de propagación de tuplas ID [132], de tal manera que se evita el tener que
realizar consultas muy costosas en la base de datos relacional. Hoy en dı́a, con el auge
de las baes de datos en grafo es probable que este tipo de técnicas deban ser revisadas.

A continuación presentamos un algoritmo para el aprendizaje de árboles de decisión


multi-relacionales [86] basado en las ideas de Knobles et al. [80]. Este algoritmo tra-
baja con el concepto de Grafo de Selección (Selection Graph) que puede ser entendido

111
como un query graph que nos permitirá evaluar si un determinado nodo en un grafo
cumple con un patrón determinado. Cabe destacar que la especificación de este método
está orientada a bases de datos relacionales, debido en parte, a que en el tiempo en
el que se presentó aún no existı́an otro tipos de bases de datos, como por ejemplo, las
bases de datos en grafo.

Grafos de Selección.

Un Grafo de Selección (Selection Graph) es un grafo dirigido (N, E), donde:

N es un conjunto de tripletas (T, C, s) llamadas nodos de selección, T es una tabla


en un modelo relacional y C es un, posiblemente vacı́o, conjunto de condiciones o
atributos en T de tipo T.A ⊕ c; donde ⊕ es uno de los operadores de comparación
=, ≤, etc. y s es una bandera con dos posibles valores: abierto o cerrado.

E es un conjunto de tuplas (p, q, a, e) llamadas aristas de selección, donde p y q


son nodos de selección y a es una asociación entre p.T y q.T en el modelo de datos.
e es una bandera con dos posibles valores: presente o ausente. El grafo de selección
contiene al menos un nodo n0 que corresponde con la tabla target T 0.

Figura 4.10: Ejemplo de un grafo de selección.

Los grafos de selección pueden ser entendidos como grafos dirigidos y etiquetados.
Un ejemplo de grafo de selección se presenta en la Figura 4.10. Dicho grafo selecciona las
moléculas que tienen al menos un átomo cuya carga parcial es menor o igual a -0.392,

112
pero que no tienen carga menor o igual a -0.392 y valor de la propiedad elemento igual
a b al mismo tiempo.

Nótese que en la figura, el valor de s es representado tachando o no un nodo, indi-


cando que dicho nodo es cerrado o abierto respectivamente. El valor de e, en cambio, es
indicado mediante la presencia (valor ausente) o ausencia (valor presente) de una cruz
que tacha la arista correspondiente.

Se han desarrollado algoritmos para convertir los grafos de selección en sus corres-
pondientes consultas SQL e incluso se han desarrollado arquitecturas dedicadas a esta
tarea en la que dichas consultas SQL son tratadas como primitivas de la arquitectura
para de esta manera procesarlas de manera mucho más eficiente [80].

Algoritmo MRDTL.

Esencialmente, MRDTL, como el resto de algoritmos que generan árboles de decisión


clasificadores a partir de un conjunto de ejemplos, añade nodos de decisión al árbol a
través de un proceso de refinamiento recurrente hasta que algún criterio de parada
es alcanzado, como por ejemplo, la correcta clasificación de todas las instancias en el
conjunto de entrenamiento. Cuando algún criterio de parada es alcanzado, un nodo hoja
con la correcta clasificación es introducido. La elección del nodo de decisión a añadir
en cada paso está guiada por alguna medida de impureza. MRDTL comienza con un
único nodo (la raı́z del árbol), el cual representa a todos los objetos en el conjunto de
enternamiento. Dicho nodo se corresponde con la tabla target T 0 junto con uno de sus
atributos (el atributo a predecir). El pseudocódigo del algoritmo MRDTL es presentado
en el Algoritmo 3.

La función optimalref inement considera cada posible refinamiento que puede hacer-
se al grafo de selección (patrón) actual G con respecto a la base de datos D y selecciona,
de manera voraz, el refinamiento óptimo (aquel que maximice la ganancia de informa-
ción, o la medida de pureza seleccionada). El conjunto de posibles refinamientos que
se pueden aplicar en cada caso estará gobernado por el grafo de seleccion actual y la
estructura de la base de datos D. R̄ denota el refinamiento complementario a R (el
concepto de refinamiento complementario es explicado a continuación).

113
Algorithm 3 M RDT L(E : nodestoclassif y, D : database, G : selectiongraph)
1: if stoppingcriteria(E, G, D) then
2: return leaf (E, G, D)
3: else
4: R := optimalref inement(E, G, D)
5: E1 := {e ∈ E|e cumple con el grafo de selección R(G)
6: E2 := {e ∈ E|e cumple con el grafo de selección R̄(G)
7: return node(M RDT L(E1 , D, R(G)), M RDT L(E2 , D, R̄(G)))
8: end if

Refinamientos.

Como se ha comentado, la forma de ir refinando el grafo de selección que representa


un test que puede estar asociado a cada uno de los nodos internos del árbol de decisión es
a través de un conjunto de posibles refinamientos que permiten refinar hipótesis que sean
consistentes con los datos. A continuación presentamos los refinamientos introducidos
en [80] y que serán ilustrados utilizando el grafo de selección de la figura 4.11.

Los algoritmos que inducen árboles de decisión requieren que los subconjuntos per-
tenecientes a patrones derivados del mismo nodo padre sea mutualmente excluyentes.
Por este motivo, los dos refinamientos (añadir una condición y añadir una arista y un
nodo) son introducidos con su operador complementario. Debido a que el algoritmo
MRDTL no permite trabajar con Grafos de Selección que presenten ciclos, a través de
los refinamientos presentados (añadir una condición y añadir una arista y un nodo) sólo
se podrán construir Selection Graphs de tipo árbol.

1. Añadir condición positiva: Este refinamiento añade una condición c a el conjunto


de condiciones C asociado a alguno de los nodos sin modificar la estructura del
grafo de selección. Para el grafo de selección de la Figura 4.11 la adición de la
condición corr = 0,5 a el nodo ITERACTION resulta en el grafo de selección
mostrado en la Figura 4.12(a).

2. Añadir condición (negativa): Este es el refinamiento complementario al anterior


y se define como sigue: Si el nodo que está siendo refinado no representa a la
tabla target (T 0), este refinamiento introduce una arista ausente desde el padre

114
Figura 4.11: Ejemplo de un grafo de selección que será utilizado para ilustrar los refina-
mientos del algoritmo MRDTL.

del nodo de selección a refinar a un nuevo nodo cerrado que es una copia del nodo
de selección que está siendo refinado. Las condiciones del nodo a refinar deben
ser copiadas al nuevo nodo, y la nueva lista será extendida añadiendo la nueva
condicion negada.
Por otro lado si el nodo que está siendo refinado representa a la tabla target, la
condición es negada y añadida utilizando la lista actual de condiciones para dicho
nodo. El grafo de selección resultante de añadir la misma condición que en el
ejemplo anterior pero negada se muestra en la Figura 4.12(b).

3. Añadir arista presente y nodo abierto: Este refinamiento introduce una arista
presente y su correspondiente nodo abierto. Para el grafo de selección de la Figura
4.11 añadir una arista desde el nodo GENE a un nodo COMPOSITION resulta
en el grafo de selección de la Figura 4.13(a).

4. Añadir arista ausente y nodo cerrado: Este refinamiento es el complementario del


anterior e introduce una arista ausente y un nodo cerrado. No tiene sentido que
un nodo cerrado sea refinando añadiendo más condiciones a sus atributos o aristas
saliendo de él. Para el grafo de selección de la Figura 4.11 el refinamiento comple-
mentario de añadir una arista desde el nodo GENE a un nodo COMPOSITION
resulta en el grafo de selección de la Figura 4.13(b).

115
(a) Condición Positiva (b) Condición Negativa

Figura 4.12: Refinamientos complementarios añadiendo la condición corr = 0,5 a el


nodo INTERACTION en el subgrafo de la Figura 4.11.

Algoritmo MRDTL-2

El algoritmo MRDTL-2 [17] presenta algunas mejoras con respecto al MRDTL origi-
nal. Los experimentos realizados con MRDTL tienen rendimientos comparables con los
obtenidos con otros algoritmos de aprendizaje en datasets multi-relacionales. Sin embar-
go, MRDTL tiene dos limitaciones importantes desde el punto de vista del aprendizaje
de datos multi-relacionales en grandes conjuntos de datos.

Tiempo de ejecucion lento: MRDTL (como otros algoritmos basados en el apren-


dizaje multi-relacional propuesto por Knobbe et al. [79]) utiliza grafos de selección
para consultar bases de dats y obtener las estadı́sticas necesarias para construir
el clasficiador. Los experimentos realizados con MRDTL en los datos de la KDD
Cup 2001 [33] muestran que la ejecución de las consultas codificadas por dichos
grafos de selección es un gran cuello de botella en términos del tiempo de ejecución
del algoritmo.
Imposibilidad de trabajar con valores faltantes en los atributos: En las bases de
datos multi-relacionales se encuentra información sobre muchos tópicos del mun-

116
(a) Añadiendo arista presente y nodo abierto (b) Añadiendo arista ausente y nodo cerrado

Figura 4.13: Refinamientos complementarios añadiendo una arista desde el nodo GENE
hasta un nodo COMPOSITION a el grafo de selección de la Figura la condición corr =
0,5 a el nodo INTERACTION en el subgrafo de la Figura 4.11.

do real, una gran parte de éstas tienen datos a los que le falta algún valor en
los atributos. La implementación de Leiva del algoritmo MRDTL [86] trata los
valores faltantes como un caso especial y no incluye ninguna técnica estadı́stica
bien fundada para trabajar con ellos. Por tanto, la precisión de los árboles de
decisión construidos están lejos de lo óptimo en la tarea de clasificación cuando se
encuentran numerosos valores faltantes [145].

En este contexto, MRDTL-2 trata de resolver las limitaciones propuestas de la si-


guiente forma:

MRDTL-2 incluye técnicas para acelerar de manera significativa la ejecución de


los diferentes algoritmos de minerı́a de datos multi-relacionales como MRDTL que
se basan en el uso de gráfos de selección. Aplican técnicas de optimización a las
consultas SQL que derivan de la evaluación de un grafo de selección.
MRDTL-2 incluye una técnica simple y computacionalmente eficiente que utiliza

117
clasificadores de Bayes para el completado de valores faltantes en atributos.

Además, MRDTL-2 sólo considera algunas de las conexiones presenten en la base


de datos debido a que determinadas conexiones no representan enlaces con una carga
semñantica considerable [87].

4.3.3. Graph Based Induction (GBI)

ESTO ME LO DEBERIA LLEVAR AL CAPITULO DE PATRONES, NO?

——————————-

Graph-Based Induction (GBI) es una técnica de Machine Learning que extrae de


manera eficiente patrones frecuentes de datos estructurados en forma de grafo a través
de la unión de pares de nodos conectados (pairwise chunking). Es muy eficiente debido
a que utiliza una búsqueda voraz. Decisión Tree Graph-Based Induction (DT-GBI) es
un algoritmo de construcción de árboles de decisión para datos estructurados en forma
de grafo utilizando los principios de GBI. En DT-GBI los atributos (llamados patrones
o subestructuras) son generados durante la ejecución del alagoritmo [57]. Debido a que
DT-GBI puede ser concevido como un generador de árboles de decisión con capacidad
de construcción de atributos [99].

GBI ha sido utilizado para extraer patrones tı́picos en grafos dirigidos etiquetados,
se ha demostrado que dicho método es capaz de resolver una gran variedad de problemas
de aprendizaje mapeando las estructuras de los diferentes problemas a grafos dirigidos y
etiquetados [144]. La generalidad de este método puede ser atribuı́da a la representación
en forma de grafo dirigido y etiquetado, ya que dicha representación es la que permite
que numerosos problemas puedam ser atacados utilizando esta metodologı́a.

Una variación del algoritmo GBI es Chunkingless Graph-Based Induction (Cl-GBI)


[100] en la que los patrones encontrados no se unen y el grafo no se comprime, si no que
se utilizan estructuras auxiliares para registrar que algunos nodos forman un patrón.
De esta manera se evita la necesidad de almacenar el grafo reescrito a cada nivel de la
búsqueda. Algoritmos para generar árboles de decisión a partir de datos estructurados
en forma de grafo basados en Cl-GBI también han sido presentados [99].

118
Método GBI

ESTO ME LO DEBERIA LLEVAR AL CAPITULO DE PATRONES, NO?

————————

Graph-Based Induction emplea la idea de extraer patrones tı́picos a partir de la unión


de pares como se muestra en la Figura 4.14. En la definición original de GBI se asume que
los patrones tı́picos representan conceptos o estructuras y su ”tipicidad.es caracterizada
por la frecuencua de aparición de dicho patrón o por el valor de alguna función de
evaluación de su frecuencia [58]. Se pueden utilizar también ı́ndices estadı́sticos como la
frecuencia, la Ganancia de Inforamción [107], Gain Ratio [110] y el Índice de Gini [27],
todas ellas basadas en la frecuencia. En la Figura 4.14 se muestra un patrón (sombreado)
consistente en los nodos 1, 2 y 3 que es tı́pico porque ocurre tres veces en el grafo. GBI
encuentra primero el par 1 → 3 basado en su frecuencia, une dichos nodos formando un
nuevo nodo (nodo 10), en la siguiente iteración descubre el par 2 → 10 y los une en un
nuevo nodo (nodo 11). Dicho nodo representa el patrón sombreado.

Figura 4.14: La idea básica del método GBI [58].

Es posible extraer patrones tı́picos de varios tamaños repitiendo el procedimiento


anterior. Nótese que la búsqueda es voraz, y que no se aplica ningún procedimiento de
backtracking. Esto significa que ninguno de los pares de nodos que ha sido unido para
conformar un nuevo nodo puede ser descompuesto de nuevo en sus nodos originales.
Debido a esto, no se garantiza que todos los patrones tı́picos que existen en el grafo de

119
Algorithm 4 GBI(G)
Require: G
1: Enumerate all the pairs P all in G
2: Select a subset P of pairs from P all (all the pairs in G) based on typicality criterion

3: Select a pair from P all based on chunking criterion


4: Chunk the selected pair into one node c
5: Gc := contracted graph of G
6: while termination condition not reached do
7: P := P ∪ GBI(Gc )
8: end while
9: return P

entrada sean extraı́dos. El probleda de extraer todos los subgrafos isomórficos es NP-
completo. GBI trata de extraer sólo los patrones tı́picos de un cierto tamaño. Su objetivo
no es encontrar todos los patrones tipicos ni encontrar todos los patrones frecuentes.
Como se comentó anteriormente, GBI puede utilizar diferentes criterios basados en la
frecuencia para seleccionar los pares de nodos a unir. Sin embargo, para encontrar un
patrón de interés todos los subpatrones presentes en él deben ser también interesantes
para que hayan sido seleccionados en algún momento. En la Figura 4.14 el patrón
1 → 3 debe ser tı́pico para que el patrón 2 → 10 lo sea. Dicho de otra manera, si el
patrón 1 → 3 no hubiera sido seleccionado para su unión, no habrı́a forma de encontrar
el patrón 2 → 10. La medida de frecuencia satisface este criterio de monotonı́a. Sin
embargo, si el criterio elegido no satisface dicha monotonı́a, la unión de pares iterativa
puede no encontrar los patrones correctos incluso cuando se selecciona en cada paso el
mejor par para ser unido. Para resolver este problema GBI fue mejorado para utilizar
dos criterios, uno basado en la medida de la frecuencia y otro para encontrar patrones
discriminativos después de cada unión. El segundo criterio no requiere que cumpla con
la monotonı́a descrita. Cualquier función de discriminación puede ser utilizada, como
la Ganancia de Inforamción [107], Gain Ratio [110] y el Índice de Gini [27] y algunas
otras. El algoritmo mejorado se muestra es el Algoritmo 4. Dicho algoritmo repite los
siguientes cuatro pasos hasta que el umbral de unión es alcanzado (normalmente un
mı́nimo de frecuencia del patrón elegido en cada paso es utilizado como condición de
parada):

120
Paso 1. Extraer todos los pares de nodos conectados en el grafo.

Paso 2a. Selección de los pares tı́picos basada en el criterio seleccionado de entre
todos los pares extraı́dos en el paso 1, ponderación de los mismos acorde a el
criterio y registrarlos como patrones tı́picos. Si alguno de los nodos a unir ya ha
sido unido, volverán a su estado original antes de la unión (????)

Paso 2b. Seleccionar el par más frecuente de entre todos los pares extraı́dos en el
paso 1 y registrarlo como el patrón a unir.

Paso 3. Sustituir el par seleccionado en el paso 2b con un nuevo nodo con su


corespondiente nueva etiqueta. Reescribir el grafo sustituyendo las ocurrencias del
par por el nuevo nodo. Volver al paso 1.

Las salida del algoritmo GBI mejorado es un conjunto de patrones tı́picos ponderaods
(los extraı́dos en el paso 2a). Dichos patrones son tı́picos porque son mñas discriminantes
que los patrones no seleccionados en los términos del criterio usado.

Nótese que GBI es capaz de restaurar los patrones originales representads mediante
los nodos y aristas iniciales de una unión (Paso 2a, Paso 2b). Esto es posible debido
a que mantenemos la información sobre qué nodo en la unión de un par es conectado
durante el proceso recursivo de unión. Además, GBI puede limitar el tipo de subgrafo
a inducir. En este caso, un par de nodos que tengan más de una arista entre ellos es
unido en único nodo en un paso [58]. (REPASAR)

Beam-wise Graph-Based Induction (B-GBI)

Debido a que la búsqueda en el método GBI es voraz y no se aplica ningún pro-


cedimiento de backtracking, los patrones que se extraen de un grafo a través de dicho
método dependen de qué pares se hayan elegido en cada paso para su unión. Puede
haber determinados patrones importantes que no sean extraı́dos a través del mñetodo
GBI. El mñetodo beam-search se incorpora a GBI para tratar de relajar este inconve-
niente [91] incrementando el espacio de búsqueda y etraer patrones más discriminativos
manteniéndose en una complejidad computacional a un nivel tolerable. Un cierto núme-
ro de los pares mejro poderados son seleccionados para ser unidos en paralelo. Para
prevenir que cada rama creza exponencialmente, el número total de pares a unir (beam

121
width) es fijo. Por tanto, en cada iteración hay siempre un número fijo de uniones que
se realizan en paralelo.

Figura 4.15: Beam search en B-GBI (beam width = 5) [58].

La Figura 4.17 muestra cómo se lleva a cabo la búsqueda en el algoritmo B-GBI


cuando el beam width es 5. Primero, los 5 pares más frecuentes en el grafo son seleccio-
nados (cs en Figura 4.17). Los grafos en cs son copiados a los cinco estados (c11 - c15),
y cada uno de los 5 pares son unidos en los grafos copiados a su respectivo estado. En
el segundo ciclo de la búsqueda, los cinco pares más tı́picos de entre los 5 grafos son
seleccionados. En este ejemplo, dos pares son seleccionados de c11, un par de c13 y dos
pares de c14. En la tercera iteración, el grafo en c11 son copiados a c21 y c22, el grafo
en c13 se copia a c23, y el grafo en c34 se copia a c24 y c25. Como en el segundo ciclo,
los pares seleccionados son unidos. Los estados sin pares seleccionados (en este ejemplo
c12 y c15) son descartados.

Etiquetado Canónico

GBI asgna una nueva etiqueta a cada nuevo par unido. Debido a la unión recursiva
de pares, puede darse el caso de que dos pares que tienen etiquetas diferetenes porque
provienen de una historia diferentes s ecorrespondan con el mismo patrón (subgrafo).

122
Para identificar cuándo dos pares representan el mismo patrón o no, cada par es
representado mediante su etiqueta canónica ?? y sólo cuando la etiqueta es la misma, se
consideran idénticos. El procedimiento básico de el etiquetado canónico es el siguiente:
Los nodos en el grafo son agrupados según sus etiquetas (colores del nodo) y el grado
(número de aristas adyacentes a cada nodo) y ordenados de manera lexicográfica. Se
crea una matriz de adyacencia utilizando este orden. Si el grafo es no dirigido, la matriz
de adyacencia es simetrica, y los elementos en el triángulo superior son concatenados
scaneando horizontal o verticalemente ara codificar el grafo. Si el grafo es dirigido, la
matriz de adyacencia es asimétrica y todos los elementos tanto en el triángulo superior
como en el inferior son utilizados para codificar el grafo de una manera similar. Si hay
más de un nodo con la misma etiqueta y el mismo grado, el orden en el que el maximo
(o minimo) valor de codgo buscado (???????). El código correspondiente es ela etiqueta
canónica. Sea M el nñumero de nodos en el grafo, N el número de grupos de nodos y
pi = (i = 1, ..., N ) el numero de nodos en el grupo i, El espacio de búsqueda puede ser
reducido desde M ! a N
Q
(p
i=1 i )! a través de este etiquetado canónico. El código de una
matriz de adyacencia para el caso en el que los elementos de el triágulo superior son
concatenados verticalmente se define como:

 
a11 a12 . . . a1n
 a22 . . . a2n 
A=
 
. .
. . .. 
 
ann

j
n X
X Pn
code(A) = a11 , a12 , a22 , a13 , a23 , ...ann = ((L + 1){ k=j+1 k)+j−i} aij )
j=1 i=1

Donde L es el número de etiquetas diferentes en las aristas.

123
Figura 4.16: Graph compression by pairwise chunking.

4.3.4. Graph Based Induction-Decision Tree (GBI-DT)

Decision Tree for Graph-structured Data

A continuación se presenta la forma de construir árboles de decisión para datos es-


tructurados en forma de grafo a partir de la metodologı́a de Graph Based Induction,
dichos árboles serán capaz de clasificar nuevos grafos partiendo de un conjunto de gra-
fos de entrenamiento previamente clasificados. Partiremos definiendo el concepto de
atributo-valor para los grafos de la siguiente forma [57]:

Atributo: Un patrón /subgrafo.

Valor para un atributo: Existencia o no existencia de el patrón en el grafo.

Debido a que a los valores para un atributo del tipo presentado les corresponden
valores lógicos (el patrón existe o no en el grafo), los ñarboles de decisión construidos
son binarios. Los datos (los grafos) son divididos en dos grupos, aquellos que cumplen
con un patrón determinado por un lado y lo suqe no por otro. El proceso está resumido
en el algoritmo ??. Una cuestión aún por determinar es cómo determinar qué patrones
utilizar para ser usados como atributos.

En el método Decision Tree Graph-Based Induction (DT-GBI), los patrones tı́picos


son extraı́dos utilizando B-GBI y utilizados como atributos para glasificar datos en
formato de grafo. Al construir un árbol de decisión, todos los pares en los datos son
enumerados y un par es seleccionado. Los daots (grafos) son divididos en dos grupos, un

124
grupo en el que permanecerán los grafos que contenga n el par seleccionado y otro grupo
en el que estarán los grafos que no lo contengan. El par seleccionado es entonces unido
en los grafos que lo contienen y dichos grafos son reescritos reemplazando las ocurrencias
de dicho par por un nuevo nodo. Este proceso es aplicado de manera recursiva en cada
nodo de el árbol de decision y el ñarbol de decisión se construye mientras que los atribuos
(pares de nodos) son creados durante la ejecución. El algoritmo DT-GBI se presenta a
continuación:

Figura 4.17: Árbol de decisión multi-relacional construido a través del método DT-GBI
[58].

Como se puede observar, el número de uniones de pares aplicadas en cada nodo es


especificado por un parámetro. Por ejemplo, cuando es fijado a 10, la unión es aplica-
da diez veces para construir un conjunto de pares P , que consiste en todos los pares
construidos con cada unión (desde la unión 1 hasta la unión 10). Nótese que el par p
seleccionado de P no es necesariamente construido por la última unión (la nñumero
10). Si es la unión sexta, por ejemplo, el estado vuelve a ese estado y todas las uniones
realizadas después son descartadas (??????).Cada vez que un atributo (un par) es se-
leccionado para dividir los datos, el par es unido en un nodo de mayor tamaño. Debido
a esto, quizás agunos pares iniciales consistentes en dos nodos y una aristas entre ellos,
los atributos interesantes para la tarea de clasificación son obtenios gradualmente en
pares más grandes (patrones mñas complejos) aplicando la unión de manera recursiva.
Por este motivo, DT-GBI puede ser interpretado como un mñetodo de extracción de
caracterı́sticas, en este caso atriibutos en forma de pares de nodos que son útiles para
discriminar el conjunto de daots (grafos). Normalmente, la frecuencia es utilizada como

125
función de evaluaciı́n utilizada para la unión y la ganancia de información de Shannon
como función de evaluación a la hora de seleccionar un par clasificador [57].

4.4. Random Forest Multi-Relacionales

En [20] se presenta un método para la construcción de bosques aleatorios (Random


Forest) multi-relacionales. Dicho método asume independencia entre las tablas de una
base de datos en cuanto a la tarea de clasificación, de tal manera que se pueden com-
binar predicciones probabilı́sticas basadas en árboles de decisión que han aprendido de
diferentes tablas en la base de datos. Se otorgan diferentes pesos a cada uno de los
árboles construidos a partir de las diferentes tablas y se podan los irrelevantes. Para
la asignación de pesos a los árboles se trabaja con regresión logı́stica. Dicho método es
evaluado en bases de datos del mudno real demostrando buenos resultados.

4.5. Extensión a Grafos con Propiedades del algo-


ritmo ID3 (Graph-ID3)

HABLAR DEL REPOSITORIO DE ”MOTIVOS”Y DE LA POSIBILIDAD DE


UTILIZARLOS A TRAVES DE EL OPERADOR UNION...

A continuación, se presenta la extensión del algoritmo ID3 (Graph-ID3) para crear


árboles de decisión capaces de clasificar correctamente a nodos inmersos en un grafo con
propiedades. Cabe destacar, que con pequeñas modificaciones se podrı́a ampliar para
que fuera capaz de clasificar cualquier subgrafo en un grafo con propiedades.

Antes de comenzar con la presentación de Graph-ID3 debemos indicar también que


no vamos a tener en cuenta la forma en la que es elegida la mejor ampliación del
patrón en cada nodo del árbol de decisión, esta tarea será llevada a cabo a través de
alguna medida que sea capaz de evaluar la disminución de impureza aportada por cada
ampliación disponible. Por tanto la forma en la que se elige la mejor ampliación del
patrón se puede interpretar como un hiper-parámetro más del algoritmo cuya definición
quedará abierta por el momento.

126
A continuación, presentaremos el algoritmo Graph-ID3. El cual está inspirado en el
funcionamiento del algoritmo ID3 presentado anteriormente pero a diferencia de éste
recibe como conjunto de entrenamiento una serie de nodos inmersos en un grafo con
propiedades. El algoritmo Graph-ID3 construye un árbol de decisión que tiene como
objetivo clasificar nodos de un grafo con propiedades a partir de una serie de ejemplos de
nodos previamente clasificados. El árbol resultante de la ejecución del algoritmo puede
realizar preguntas sobre propiedades del nodo a clasificar o sobre cualquier elemento
(subgrafo) en su entorno.

El algoritmo Graph-ID3 trabaja con el concepto de patrón, entendido éste como


un query graph que será utilizado para evaluar los entornos asociados a cada nodo a
clasificar en el grafo con propiedades.

El conjunto de entrenamiento L estará conformado por pares nodo - valor de salida.


Dichos nodos estarán asociados siempre al elemento fijo del patrón utilizado en cada
caso.

El algoritmo Graph-ID3 construye un árbol de decisión a partir de un grafo con


propiedades G = (V, E, µ) en el que se encuentran inmersos los nodos ya clasficados.
Cada nodo de dicho árbol tendrá asociadas las siguientes estructuras:

L = {(S1 , y1 ), ..., (SN , yN )}, un conjunto de subgrafos a clasificar, conformado por


pares subgrafo - valor de salida.

Q = (VQ , EQ , µ), un query graph.

El algoritmo 5 presenta el algoritmo Graph-ID3. Nótese que el conjunto de opera-


dores OP S disponibles para ampliar el patrón en cada caso permanece libre como un
hiperparámetro del modelo.

Obsérvese que la construcción del árbol se hace de forma recursiva, siendo las ins-
trucciones 2 y 5 las que representan los casos base que construyen los nodos hojas. Los
parámetros de la llamada inicial del algoritmo serán:

G = (V, E, µ, τ ), grafo en el que se encuentran los subgrafos a clasificar.

127
Algorithm 5 Graph-ID3
Require: G, Q, L, OP S
1: if Todos los elementos en L poseen el mismo valor de salida y then
2: return Nodo asociado al valor de salida y
3: end if
4: if Ninguna de las posibles ampliaciones de Q aporta información. then
5: return Nodo asociado al valor de salida mayoritario en L
6: end if
7: Sea α el operador en OP S que genera la mejor ampliación de Q .
8: Hacer que Q0 sea el query graph Q ampliado a través de α.
9: Hacer L+ = {(S, y) ∈ L : Q(S)} , L− = L \ L+
10: Crear 2 nodos hijos con valor Graph-ID3(G,Q,L− ,OP S) y Graph-
ID3(G,Q0 ,L+ ,OP S)

Q = (VQ , EQ , µQ ), query graph inicial.

L = {(S1 , y1 ), ..., (SN , yN )}, conjunto de pares (Si , yi ) donde Si ⊆ G representa un


subgrafo a clasificar y yi su valor de salida asociado.

OP S, conjunto de operadores disponibles.

A continuación, definiremos un caso concreto de algoritmo Graph-ID3, para ello


presentaremos un conjunto de operadores OP S (recordamos que la forma de obtener el
mejor operador α ∈ OP S en cada nodo del árbol de decisión permanece abierta). Dicha
definición irá acompañada de una aplicación de dicho algoritmo sobre un conjunto de
datos reales.

4.6. Ejemplo de aplicación del algoritmo Graph-ID3

Procederemos ahora a presentar un caso concreto de aplicación del algoritmo Graph-


ID3 sobre un grafo con propiedades real a través de la definición de un conjunto de
operadores constructivos OP S.

128
Trabajaremos con un grafo cuyo conjunto de tipos de aristas es T = {wife, husband,
likes, publish}

Dado un query graph Q = (VQ , EQ , µQ ), los operadores disponibles en OP S serán:

% (Q, {type : t, γ : (VQ )})

Donde t ∈ T es uno de los tipos de aristas. A continuación presentaremos una


ejecución del caso concreto del algoritmo Graph-ID3 presentado en esta sección sobre
un Grafo con Propiedades real, con el objetivo de crear un árbol de decisión que clasifique
correctamente a nodos en dicho Grafo. Cabe destacar, que para simplificar la exposición
a los nodos pertenecientes al conjunto de entrenamiento los denominaremos objetos pare
evitar confusiones al referirnos a los nodos del árbol de decisión en construcción.

El algoritmo comienza creando un árbol que contiene un único nodo (nodo raı́z) y al
que están asociados todos los objetos del conjunto de entrenamiento, al nodo del árbol
de decisión con el que estemos trabajando lo denominaremos nodo actual y al conjunto
de objetos asociado a él le llamaremos conjunto actual. En cada paso, el algoritmo
evalúa qué tipo de relación permite dividir de mejor manera el conjunto de objetos
actual (máxima ganacia de información) y este tipo de relación será eligida para ser
evaluada en el nodo actual, a continuación se crearán dos ramas a partir del nodo actual,
una rama positiva (a la que se transmitirán todos los objetos del conjunto actual que
participen en una relación de ese tipo) y una rama negatva (a la que se transmitirán
todos los objetos del conjunto actual que no participen en una relación de ese tipo). En
el caso de la rama positiva, el nodo presente en el otro extremo de la relación evaluada
positivamente será añadido al patrón a heredar, permitiendo que en nodos futuros del
árbol de decisión (descendientes del nodo actual) se pregunten por tipos de relaciones
en las que participa dicho nodo al otro extremo de la relacion. De esta manera por
cada rama del árbol se heredarán no sólo un conjunto de objetos sino un patrón (grafo
abstracto) que representará a los nodos que han sido añadidos para su posible evaluación.
En el caso en el que un nodo herede un conjunto de objetos que pertenecen a una única
clase, dicho nodo se convertirá en una hoja asociada a dicha clase. Este proceso se repite
de manera recursiva.

Partimos del grafo social representado en la Figura 4.18, en el que se representan


conexiones de tipo marital entre usuarios y otras relacionadas con la publicación de

129
fotografı́as. En dicho grafo encontramos nodos de tipo user y photo y relaciones de tipo
husband, wife, publish y likes. Queremos que el algoritmo Graph-ID3 construya un árbol
de decisión que sea capaz de clasificar correctamente a los usuarios de este grafo según
su género (M ó F). Por lo que los nodos que forman parte del conunto de entrenamiento
son los nodos user1, user2, user3, user4, user5, user6, user7 y user8, que por motivos de
legibilidad pasaremos a identificar únicamente con su número asociado (prescindiendo
del prefijo user ) a lo largo de la explicación de la ejecución del algoritmo.

Figura 4.18: Grafo Social.

Como primer paso, el algoritmo analizará qué tipo de relación de aquellas en las que
participan los objetos en el conjunto actual (conjunto de entrenamiento) aporta una
mayor ganancia de información dando cómo resultado el tipo de relación (0)husband →
(nótese que debido a que tanto (0)husband → como (0)husband ← como (0)wif e →
como (0)wif e ← aportan la misma ganancia de información, se ha elegido (0)husband →
por ser la primera de la lista), en la Tabla 4.19 se pueden observar los diferentes aportes
de información de los diferentes tipos de relaciones en las que participan los objetos en
el conjunto actual.

Figura 4.19: Ganancia de información de cada tipo de relación disponible en la raı́z del
árbol de decisión en construcción.

Por lo que el primer nodo (nodo raı́z) del arbol de decisión será el que realice el test

130
sobre la existencia o no de una relación de tipo (0)husband → en el objeto a evaluar
(nodo 0). Las ramas correspondientes a la existencia o no de dicha relación heredarán
los objetos (usuarios) que participen o no en una relación de dicho tipo (recordemos que
ya no se podrá preguntar por ese tipo de relación con respecto al nodo 0 en ninguno de
los nodos del árbol de decisión en construcción). En la Figura 4.20 se puede observar el
árbol de decisión tras haber asignado el primer test. Los subgrafos ubicados en la parte
superior de cada nodo del árbol de decisión representan el patrón (grafo abstracto) sobre
el que se pueden realizar evaluaciones en cuanto a la existencia de una relación en la
que participa la representación local de un nodo concreto de dicho patrón.

Figura 4.20: Nodo raız del árbol de decisión en construcción.

A continuación se vuelve a repetir el mismo proceso por cada rama resultante, co-
menzaremos por la rama positiva, a la cual pertenecen los usuarios 1 y 6, dado que
ambos usuarios son varones, asignaremos a dicha rama una hoja asociada a la clase M.
En el caso de la rama negativa, a la cual pertencen los usuarios 2,3,4,5,7 y 8, evaluare-
mos qué tipo de relación de todas en las que participan dichos nodos aporta una mayor
ganancia de información. En la tabla 4.21 se puede observar que el tipo de relación
que mayor ganancia de información aporta es (0)wif e → (de nuevo, en empate con
(0)husband ← y (0)wif e ←, elegiremos (0)wif e → por ser la primera en la lista), por
tanto procederemos a utilizar dicho tipo de relación cómo test en la rama negativa del
nodo raı́z, dando como resultado el árbol presentado en la Figura 4.22.

Figura 4.21: Ganancia de información de cada tipo de relación disponible en la rama


negativa del nodo raı́z del árbol de decisión en construcción.

Procedemos ahora a estudiar la rama positiva del nodo (0)wif e →? que acabámos
de ubicar en el árbol, a ella pertenecen los usuarios 2 y 5, ambos de la clase F, por tanto

131
Figura 4.22: Primeros dos niveles del árbol de decisión en construcción.

procedemos a asignar a dicha rama una hoja asociada a dicha clase F. A continuación,
procedemos a evaluar qué tipo de relación de todas en las que participan los usuarios
3,4,7 y 8 (usuarios en la rama negativa del nodo (0)wif e →?) aporta una mayor ganancia
de información. En la Tabla 4.23 se puede observar que el tipo de relación que mayor
ganancia de información aporta es (0)publish →, por tanto, procedemos a ubicar un
nodo que evalúa la existencia de dicho tipo de relación (Figura 4.24).

Figura 4.23: Ganancia de información de cada relación disponible en la rama positiva


del nodo (0)wif e →? del árbol de decisión en construcción.

Procedemos ahora a estudiar la rama negativa del nodo (0)publish →? que acabámos
de ubicar en el árbol, a ella pertenece únicamente el usuario 3, que pertenece a la clase
M, por tanto, procedemos a asignar a dicha rama una hoja asociada a la clase M.
A continuación analizaremos la rama positiva del nodo (0)publish →?, a dicha rama
pertenecen los usuarios 4,7 y 8. Los tipos de relaciones disponibles para ser utilizadas
en el test de esta rama serán todos aquellos en los que participen los usuarios asociados
a dicha rama ası́ como todos aquellos en los que participen los nodos asociados a éstos
a través de una relación de tipo publish →: (0)likes →, (0)husband ←, (0)wif e ← y
(1)likes ← (los tipos de relaciones precedidas por (1) hacen alusión a la existencia o no
de una relación de dicho tipo en la que participa un nodo asociado al usuario a través de
una relación de tipo publish →). En la tabla 4.25 se observa la ganancia de información

132
Figura 4.24: Primeros tres niveles del árbol de decisión en construcción.

aportada por cada uno de estos tipos de relaciones, pudiéndose observar que la relación
que aporta una mayor ganancia de inforrmación es la relación (1)likes ←. Procedemos
a ubicar un nodo que evalúa la existencia de dicho tipo de relación (Figura 4.26). Nótese
que el tipo de relación (1)publish ← no se ha tenido en cuenta por ser equivalente a el
tipo (0)publish →, la cual ya ha sido utilizada.

Figura 4.25: Ganancia de información de cada relación disponible en la rama positiva


del nodo publish -¿? del árbol de decisión en construcción.

A continuación evaluaremos la rama negativa del nodo que evalúa la relación (1)likes ←
?, a dicha rama está asociado únicamente el usuario 7, por ser el único usuario del con-
junto actual (4,7 y 8) que no tiene ninguna relación de tipo likes en su foto publicada,
dicho usuario pertenece a la clase M, por tanto, procederemos a asignar a dicha rama
una hoja asociada a la clase M. Por ultimo evauaremos la rama positiva del nodo que
evalúa la relación (1)likes ←?, a dicha rama están asociados los usuarios 4 y 8 , ambos
pertenecientes a la clase F, por tanto procederemos a asignar a dicha rama una hoja
asociada a la clase F. De esta manera habremos terminado de construir un árbol de

133
Figura 4.26: Primeros cuatro niveles del árbol de decisión en construcción.

decisión que es capaz de clasificar correctamente a todos los nodos de tipo usuario en el
grafo, asignándolos correctamente a la clase a la que pertenecen según su género (Figura
4.27).

134
Figura 4.27: Árbol de decisión que clasifica correctamente a todos los usuarios en el
grafo según su género.

135
Capı́tulo 5

Inmersión Semántica de Grafos con


Propiedades

5.1. Introducción

En este último capı́tulo presentamos una nueva aproximación al tratamiento de Gra-


fos Multi-relacionales, en este caso haciendo uso de técnicas derivadas del aprendizaje
automático por medio de redes neuronales codificadoras. Concretamente, trataremos
aquı́ el problema de la inmersión de Grafos Multi-relacionales en espacios vectoriales.

Durante este capı́tulo, utilizaremos el término inmersión como sinónimo de encaje


o encamamiento, entendido éste como una instancia de alguna estructura matemática
contenida dentro de otra instancia. Cuando algún objeto matemático X se dice que es
encajado en otro objeto matemático Y , el encaje es dado por alguna función inyectiva
que preserve su estructura, f : X → Y . No nos interesa cualquier inmersión, ya que
la mayorı́a de ellas no mantendrán las estructuras topológicas (dadas por las relaciones
existentes en el grafo) y semánticas (dadas por los tipos asociados a tales relaciones) que
confieren su interés al tipo de grafos que es nuestro centro de estudio. Estamos intere-
sados en buscar inmersiones que sean capaces de reflejar, dentro de las caracterı́sticas
propias de un espacio vectorial (relaciones de distancia, linealidad y clusterización), las
caracterı́sticas interesantes del grafo.

136
Por ejemplo, serı́a interesante conseguir inmersiones que, al proyectar los nodos del
grafo en puntos del espacio vectorial, hagan que las relaciones existentes entre nodos del
mismo tipo queden proyectadas automáticamente en vectores que mantengan los tipos.
De esta forma, interpretamos que la carga semántica asociada a la relación l ha sido
capturada por la inmersión del grafo en el espacio vectorial. Otra opción es comprobar
si la inmersión verifica propiedades de clusterización respecto a los tipos de nodos, sus
propiedades, o algunas de las métricas que podemos definir sobre el grafo.

Posteriormente, haremos uso de estas buenas propiedades de inmersión para ver si


somos capaces de obtener herramientas de predicción / clasificación / descubrimiento
en la red semántica original.

Para ello, comenzaremos dando una descripción formal de red semántica que se ba-
sa en los Grafos con Propiedades que han sido usados en las formalizaciones de las
Bases de Datos basadas en Grafos que tanta popularidad han tomado en los últimos
años. A continuación daremos una introducción a la redes neuronales artificiales, su
uso como máquinas de aprendizaje y la justificación de porqué es necesario considerar
procedimientos de entrenamiento de estas redes para problemas más complicados. Nos
meteremos con detalle en un tipo especial de redes neuronales que se usan como redes
codificadoras, y presentaremos nuestra propuesta de inmersión por medio de un codi-
ficador neuronal construido a partir de considerar nuestro grafo multi-relacional como
conjunto de muestras de entrenamiento.

Acabaremos el capı́tulo presentando algunos de los experimentos que hemos realizado


haciendo uso de nuestra propuesta, y viendo qué posibilidades abre para el análisis
semántico de grandes cantidades de información.

5.2. Grafos con Propiedades

El término Property Graph (Grafo con Propiedades en español) hace referencia a


un tipo de grafo dirigido y multi-relacional en el que tanto las aristas como los nodos
poseen un número indeterminado de propiedades asociadas.

El concepto de Grafo con Propiedades se ha venido utilizando desde tiempo atrás


en varios contextos distintos, aunque hasta la última década no se han ofrecido defi-

137
niciones formales del mismo. En [118] se da una primera formalización con el objetivo
de proporcionar una definición formal de traversals como herramienta fundamental de
búsqueda en grafos de este tipo, orientado principalmente al uso de los Grafos con Pro-
piedades como soporte de las Bases de Datos en Grafo, mientras que en [67] se plantea
una equivalencia formal entre los Grafos con Propiedades y el estándar RDF, un modelo
de intercambio de datos principalmente enfocado a la Web, ampliamente usado en el
contexto de las aplicaciones orientadas a lo que se conoce como Web Semántica, y que
permite modelar de manera flexible relaciones multi-tipo entre elementos por medio de
un conjunto de tripletas del tipo (sujeto, predicado, objeto) ([140]).

Para dar una formalización completa de los Grafos con Propiedades, comenzaremos
previamente viendo las definiciones de Grafos unirelacionales y multi-relacionales de las
que deriva.

Definition 32. Un Grafo Uni-Relacional Dirigido se define formalmente como un par


Gu = (Vu , Eu ) donde Vu es un conjunto cualquiera que representa los nodos del grafo, y
Eu ⊆ Vu ×Vu representa el conjunto de aristas del grafo, un conjunto de pares ordenados
de elementos de Vu .

Esta definición de grafo uni-relacional, que prescinde completamente de estructuras


enriquecidas en los conjuntos de nodos y aristas, ha sido usada durante muchos años no
solo en el contexto de los resultados matemáticos de Teorı́a de Grafos sino también en
entornos más aplicados, como la Teorı́a de Redes Complejas o la Teorı́a de Redes So-
ciales, donde ha proporcionado la herramienta conceptual necesaria para dar resultados
generales.

Sin embargo, en muchı́simos fenómenos podemos darnos cuenta de que las relaciones
existentes entre los diferentes elementos a modelar son heterogéneas, es decir, no existe
un único tipo de relación entre los elementos, o precisan de estructuras de representación
más ricas, por lo que la definición anterior debe ser extendida para abarcar este tipo de
situaciones.

Con el objetivo de modelar situaciones en las que las relaciones entre los elementos
son diversas se introduce el concepto de Grafo Multi-relacional, que extiende ligeramente
la definición anterior añadiendo posibles etiquetados a las aristas del grafo:

Definition 33. Un Grafo Multi-Relacional es una tripleta, Gm = (Vm , Em , τm ), donde

138
(Vm , Em ) es un grafo uni-relacional dirigido y τm : Em → Ω es una función que asigna
a cada arista del grafo un tipo de arista determinado en un conjunto Ω.

Si enriquecemos la definición anterior agregando propiedades en forma de pares


(clave, valor) tanto a los nodos como a las aristas de un grafo multi-relacional dirigi-
do obtenemos un Grafo con Propiedades, donde las propiedades permitirán representar
información adicional asociada a los elementos del grafo.
Definition 34. Un Grafo con Propiedades es una tupla G = (V, E, τ, µ) donde (V, E, τ )
es un grafo multi-relacional, y µ es una función que relaciona cada nodo o arista en
el grafo con su conjunto de propiedades µ : (V ∪ E) × R → S, donde R representa el
conjunto de posibles claves, y S el conjunto de posibles valores asociados.

En algunas secciones de este trabajo haremos uso de grafos con propiedades en


los que, además, los nodos pueden poseer uno o más tipos. Por tanto, la función τ
tomará valores de forma general en los subconjuntos de Ω, es decir, τ : V → P(Ω),
donde P(Ω) representa todos los subconjuntos de Ω.

El uso de propiedades en grafos es lo suficientemente flexible como para poder in-


cluir la función de etiquetado de tipos de aristas, τ , como una propiedad más a partir
de µ, pero aquı́ la reflejamos por separado para enfatizar el hecho de que un Grafo
con Propiedades no es más que una extensión natural de los Grafos Multi-relacionales
habituales. Teniendo en cuenta que por medio de las propiedades podemos enriquecer la
estructura del grafo con libertad, será común que consideremos tipos en aristas y nodos
sin necesidad de explicitarlo por medio de µ. Un ejemplo de un grafo con propiedades
compuesto por dos nodos y una relación, en el que tanto los nodos como la relación
tienen asociado un tipo, se muestra en la Figura 5.1.

Figura 5.1: Ejemplo de grafo con propiedades con tipos asociados a nodos y aristas.

Como comentamos anteriormente, uno de los objetivos de la formalización de los


Grafos con Propiedades ha sido el de facilitar formas eficientes de almacenar y consultar
este tipo de estructuras. La llamadas Bases de Datos en Grafo hacen uso de los mismos

139
para implementar sistemas de almacenamiento y consulta computacionalmente eficientes
cuando los accesos se realizan en base a las relaciones entre los elementos.

A diferencia de las bases de datos relacionales, en las que la información se almacena


en tablas (donde las filas representan elementos, y las columnas propiedades de dichos
elementos) y donde las relaciones entre los elementos se modelan mediante columnas
especiales haciendo uso de claves foráneas, o mediante tablas intermedias, las Bases de
Datos en Grafo utilizan estructuras en memoria más similares a la estructura formal de
un Grafo con Propiedades, haciendo que los nodos conectados se apunten fı́sicamente
entre sı́ de tal manera que las consultas en base a relaciones se realizan con un coste
computacional mucho menor [115].

Además, las últimas generaciones de sistemas de almacenamiento basados en grafos


disponen de lenguajes especı́ficos orientados a realizar consultas en base a las relaciones
(el equivalente a SQL para las bases de datos relacionales). Por ejemplo, Neo4j 1 , posi-
blemente la base de datos en grafo más extendida en su uso, proporciona un lenguaje de
consulta llamado Cypher [115], un lenguaje declarativo basado en patrones cuya sintaxis
está muy cercana a la forma en la que un humano habitualmente describe los patrones
en un Grafo con Propiedades.

Como la mayorı́a de los lenguajes de consulta, Cypher se compone de cláusulas. Una


consulta sencilla consiste en una cláusula MATCH seguida de una de tipo WHERE y de
una de tipo RETURN. A continuación se muestra un ejemplo de una consulta Cypher
que hace uso de esas tres cláusulas para devolver el nombre de la ciudad en la que vive
una persona llamada david :
MATCH (a:person)-[:lives_in]->(b)
WHERE a.name=’david’
RETURN b.name

Recientemente, se ha creado el proyecto de código abierto OpenCypher2 que trata


de brindar una nueva implementación pública del lenguaje de consulta Cypher sobre
cualquier sistema. Con este paso, sus creadores esperan que Cypher se convierta en un
estándar para bases de datos en grafo.
1
http://neo4j.com
2
http://www.opencypher.org/

140
Neo4j y Cypher son las tecnologı́as que se han utilizado durante el desarrollo de este
trabajo para el manejo de grafos con propiedades, los motivos principales por los que
han sido utilizadas son el tipo de licencia que disponen, su capacidad multi-plataforma,
ofrecen las herramientas necesarias para los procedimientos de almacenamiento y ex-
tracción de información que necesitaremos, y presentan una curva de aprendizaje suave,
convirtiéndose en un complemento natural y permitiendo centrar el foco en los métodos
que desarrollaremos, y no en la tecnologı́a que hay detrás.

5.3. Redes Neuronales Artificiales

Las Redes Neuronales Artificiales son un modelo matemático inspirado en el com-


portamiento biológico de las neuronas y en cómo éstas interactúan entre sı́ en el cerebro.
Los primeros algoritmos inspirados en este tipo de sistemas biológicos fueron desarrolla-
dos a mediados del siglo XX por W. McCulloch y W. Pitts [?], y más de medio siglo de
desarrollo práctico e importantes resultados teóricos han proporcionado unos fundamen-
tos robustos que han convertido este tipo de modelos en una herramienta fundamental
en aplicaciones de Ingenierı́a, labores de Aprendizaje Automático, y técnicas basadas
en Inteligencia Artificial. Hoy en dı́a, y tras diversas modificaciones y mejoras desde las
primeras propuestas, las redes neuronales artificiales son modelos adecuados para re-
solver problemas en los que la clasificación, regresión o codificación son fundamentales
para dar soluciones.

Uno de los primeros modelos matemáticos que se dieron de una neurona con fines
computacionales es el perceptrón [?], que en una primera instancia funciona como un
clasificador binario. El perceptrón actúa como una máquina de cálculo que recibe un
conjunto de entradas numéricas y, tras un proceso de combinación lineal de sus entradas
y discretización, devuelve un resultado binario. Podemos representar gráficamente este
proceso por medio de la Figura 5.2, donde el esqueleto mı́nimo del modelo intenta
capturar las partes fundamentales de una neurona real:

un conjunto de sinapsis que le permiten recibir información (entradas) del exterior,


un núcleo donde esa información se procesa, y
una salida por la que la neurona devuelve una respuesta a los impulsos recibidos.

141
Los parámetros libres del perceptrón serán los diversos pesos asociados a los canales
de entrada, wi , y el umbral que determina el comportamiento de respuesta según la
intensidad alcanzada en su núcleo, θ. Obsérvese que el funcionamiento del núcleo se ha
separado en dos procesos secuenciados: por una parte, la agregación de las entradas (Σ),
y por otra, la activación de la salida (ϕ).

Figura 5.2: Arquitectura de un perceptrón.

Más formalmente, si denotamos el vector de entradas por ~x y el vector de pesos por


w:
~    
~x = x1 , . . . , xn , w
~ = w1 , . . . , w n
el resultado del cálculo de un perceptrón a partir de sus entradas ~x, consiste en la
suma ponderada, a través de los pesos w,
~ de dichas entradas, seguido de una función de
activación que recibe dicha suma y ofrece como salida un 1, si la suma supera el umbral
θ, o un 0, en caso contrario. De esta forma, el perceptrón calcula una salida:

(
~ ≥θ
1 , si ~xw
o=
0 , si ~xw
~ <θ

Con el fin de uniformizar la notación, suele ser habitual tratar el valor del umbral, θ,
a través de una entrada adicional constante, xb = 1, con un peso asociado wb = −θ (al
que llamamos bias) de tal manera que podemos representar la nueva entrada xb dentro
del vector ~x, y el nuevo peso wb dentro del vector de pesos w ~ como un elemento más:

   
~x = x1 , . . . , xn , xb , w
~ = w1 , . . . , wn , wb

En consecuencia, la función que calcula el perceptrón se puede reescribir de forma


sencilla haciendo uso de la función de Heaviside como función de activación:

142
(
~ ≥0
1 , si ~xw
f (~x) = H(~xw)
~ =
0 , en otro caso

Debido a que el perceptrón ası́ definido devuelve un resultado binario, suele ser
común usar la función que calcula como un clasificador binario, donde f (~x) es usado
para clasificar ~x como una instancia positiva (si f (~x) = 1) o negativa (si f (~x) = 0).

Desde el punto de vista del aprendizaje automático, el problema de clasificación se


convierte en encontrar los pesos (y bias) adecuados para que el perceptrón devuelva la
clasificación adecuada para un conjunto de muestras dado.

A continuación presentamos uno de los primeros algoritmos de aprendizaje que per-


mitı́an aprender una clasificación binaria por medio del perceptrón que hace uso de la
función de Heaviside.

En este algoritmo, se suponen N muestras ya clasificadas, y el objetivo es construir


un perceptrón que las clasifique correctamente. Debe tenerse en cuenta que, debido a las
limitadas capacidades del perceptrón tal y como se ha mostrado, no siempre es posible
obtener una solución al problema, por lo que el algoritmo que se presenta es una solución
parcial a dicho problema.

Dado un conjunto con N muestras de entrenamiento {(~x1 , d1 ), . . . , (~xN , dN )} donde


cada ~xi ∈ Rn representa una entrada n-dimensional y di ∈ {0, 1} la salida deseada para
ella, el algoritmo sigue los siguientes pasos:

1. Inicializar los pesos, wi , con valores aleatorios cercanos a 0 (recordemos que el


umbral se trata como un peso más), y fijar un valor α ∈ (0, 1] que llamaremos
Tasa de Aprendizaje.

2. Para cada ejemplo (~xi , di ) del conjunto de entrenamiento, calcular la salida actual
(la ofrecida por el perceptrón) para dicho ejemplo, oi = f (x~i ), y actualizar los
pesos: wj = wj + α(di − oi )xij para todo 0 ≤ j ≤ n.

3. Si el Paso 2 no ha producido cambios, parar (lo que ocurrirá únicamente en el


caso de que todas las muestras verifiquen que di − oi = 0, o lo que es lo mismo,

143
que el perceptrón clasifica correctamente todas las muestras de entrada). En caso
contrario, volver al Paso 2.

Debe tenerse en cuenta que el algoritmo anterior no parará en caso de que no sea
posible encontrar un clasificador adecuado por medio del perceptrón, algo que es posible
ya que la capacidad clasificadora de este tipo de perceptrones que usan la función
Heaviside como función de activación es muy limitada, ya que solo devuelven funciones
lineales. Por ello, y con el fin de obtener un clasificador aproximado, a veces se sustituye
la condición de parada por una restricción más débil, por ejemplo que el error que se
comete en las muestras sea menor que una cota prefijada (haciendo uso, por ejemplo, de
la distancia euclı́dea entre las salidas obtenidas, (o1 , . . . , oN ), y las deseadas, (d1 , . . . , dN ),
o del error medio conseguido). La Tasa de Aprendizaje controla la velocidad a la que el
perceptrón se adapta a cada muestra del conjunto de entrenamiento, valores extremos
en este parámetro pueden provocar que el perceptrón oscile alrededor de la solución y
no se estabilice.

El algoritmo presentado realiza un aprendizaje online, es decir, procesa los elementos


en el conjunto de entrenamiento de uno en uno. Si el conjunto de entrenamiento es
linealmente separable (Figura 5.3(a)) se garantiza la convergencia del perceptrón con
una función de activación Heaviside [?], pero si el conjunto de entrenamiento no fuera
linealmente separable (Figura 5.3(b)), es claro que un perceptrón de este tipo no podrı́a
clasificar adecuadamente los elementos del conjunto.

(a) Conjunto con dos clases (b) Conjunto con 2 clases no lineal-
linealmente separable. mente separable.

Hasta ahora hemos tratado el perceptrón como un modelo de clasificación lineal


debido al uso de la función Heaviside como función de activación. Sin embargo, y con

144
el fin de conseguir modelos más potentes, es habitual considerar diferentes funciones
de activación. En estos casos, o bien podemos clasificar correctamente conjuntos no-
linealmente separables, o bien podemos aproximar funciones no lineales en el caso de
que estemos buscando un procedimiento de regresión. En el caso en el que no limitemos
el número de neuronas en la capa de salida a una única neurona, lo que obtenemos como
salida de la red neuronal artificial es a su vez un vector ~o = (o1 , ..., om ) ∈ Rm , de tal
manera que la red puede calcular funciones del tipo f : Rn → Rm .

Pero incluso considerando modificaciones del perceptrón con funciones de activación


no lineales siguen siendo máquinas bastante limitadas que únicamente reflejan la forma-
lización del funcionamiento y respuesta de una única neurona. La continuación natural
para simular las capacidades de sistemas neurológicos más complejos pasa por combinar
varias neuronas para que las salidas de algunas de ellas se conviertan en las entradas de
otras, de forma que podamos obtener mayor complejidad que la que un solo perceptrón
puede conseguir.

Aunque la primera intención es combinarlas con absoluta libertad, tal y como apare-
cen en los seres vivos, las estructuras topológicas que siguen las neuronas de un sistema
nervioso real son redes excesivamente complejas y no disponemos de las herramientas
matemáticas adecuadas para asegurar el correcto funcionamiento de una red artificial
de neuronas que intente clonar dicha estructura. Además, hemos de tener en cuenta que
no solo hemos de disponer de una estructura de red adecuada, sino que además hemos
de ser capaces de ajustar los parámetros de los que depende la red (pesos de las cone-
xiones sinápticas, umbrales y funciones de activación) para replicar el comportamiento
de la función que queremos aprender a partir de un conjunto de muestras. Por todo ello,
es habitual trabajar con estructuras topológicas más limitadas pero que proporcionan
un entorno controlado en el que podemos dar resultados teóricos robustos acerca de su
capacidad expresiva.

En este contexto, en lo que sigue consideraremos Redes Feedforward, o Redes Unidi-


reccionales, formadas por un conjunto de perceptrones interconectados de tal forma que
las conexiones entre ellos no forman un ciclo y donde la función de activación puede ser
cualquiera (no únicamente la función Heaviside). Un único perceptrón representa la red
neuronal feedforward más sencilla.

Tal y como muestra la Figura 5.3, las neuronas de este tipo de redes se dan ordenadas
por niveles de profundidad (capas), de forma que únicamente se admiten conexiones

145
entre neuronas de niveles contiguos (y solamente en una dirección de propagación). En
una red neuronal feedforward multi-capa con L capas de profundidad denominaremos
capa de entrada (nivel 1) al conjunto de neuronas que toman los valores del vector de
entrada, capa de salida (nivel L) al conjunto de neuronas que ofrecen los valores de
salida de la red, y capas ocultas (niveles l, con 1 < l < L) al resto de neuronas de la
red (aquellas que no toman los valores del vector de entrada y no ofrecen las valores de
salida).

Figura 5.3: Representación de una ANN feedforward multi-capa con 3 capas.

Aunque estas redes parezcan muy restrictivas en cuanto a su complejidad estructu-


ral, el Teorema de Aproximación Universal [?] demuestra que una red neuronal
feedforward con una única capa oculta conteniendo un número finito de neuronas, y bajo
condiciones concretas de la función de activación, puede aproximar funciones continuas
en subconjuntos compactos de Rn . Formalmente, y para el caso de funciones reales (el
caso general tiene un enunciado similar), quedarı́a:
Theorem 1 (Teorema de Aproximación Universal). Sea ϕ una función de activación
arbitraria (esto es, acotada y con lı́mx→+∞ ϕ(x) = a, lı́mx→−∞ ϕ(x) = b y a 6= b), y
K ⊆ R un compacto. Entonces, ∀f ∈ C(K), ∀ > 0, ∃n ∈ N, y w, ~ ~a, ~b ∈ Rn tal que:
n
X
sup |f (x) − wi ϕ(ai x + bi )| < 
x∈K
i=1

Sin embargo, este teorema de densidad no proporciona un algoritmo que permita ob-
tener los parámetros del modelo que aseguran cierta aproximación a la función objetivo,
únicamente asegura su existencia.

Como suele ser habitual cuando se buscan resultados de aproximación, tenemos la


opción de encontrar un buen aproximador haciendo uso de los algoritmos iterados de op-
timización habituales que intentan minimizar el error cometido entre la función objetivo

146
y el cálculo actual de nuestro candidato. De entre estos métodos uno de los más comunes
es el del Descenso del Gradiente, donde por medio de las derivadas (o derivadas par-
ciales) somos capaces de modificar los parámetros del modelo para conseguir sucesivas
reducciones del error cometido. Por ello, han de tenerse en cuenta varias consideraciones:

En primer lugar, para poder aplicar este método es necesario que el cálculo de la
función de salida se pueda expresar como una función derivable de los parámetros
del modelo (los pesos), lo que nos lleva a trabajar con funciones de activación que
sean derivables (y, en consecuencia, también continuas).

En segundo lugar, debe recordarse que, en general, estos métodos no aseguran la


obtención de un óptimo global, por lo que puede ocurrir (y con frecuencia ocurre)
que nos quedemos atrapados en un óptimo local que no aproxima suficientemente
bien nuestra función objetivo.

5.3.1. Algoritmo de Retropropagación

A continuación presentamos el método de retropropagación, uno de los algoritmos


más conocidos para entrenar los pesos de una red neuronal artificial feedforward multi-
capa (Figura 5.4) haciendo uso del método de Descenso del Gradiente.

Figura 5.4: Notación que usaremos en la red neuronal artificial feedforward multicapa.

Dada una red neuronal artificial feedforward con L > 2 capas, notaremos por:

147
l
wjk : peso de la conexión que conecta la neurona k-ésima en la capa l − 1 con la
neurona j-ésima en la capa l,

blj : bias de la neurona j-ésima en la capa l (en esta ocasión lo representaremos de


manera independiente, fuera de la matriz de pesos),

alj : salida (activación) de la neurona j-ésima en la capa l, y

σ: función de activación en las neuronas.

Con esta notación, podemos expresar la ecuación que relaciona la activación de una
neurona en la capa l con las activaciones de las neuronas en la capa anterior:

!
X
alj = σ l
wjk al−1
k + blj
k

A continuación definimos la misma relación de una forma matricial, lo cual nos


permitirá obtener ecuaciones más compactas que las que obtendrı́amos con las fórmulas
elemento a elemento.

Notamos por W l la matriz que representa los pesos de las conexiones que llegan a
las neuronas en la capa l (desde la capa l − 1):

 l l 
w11 w12 ...
..
W l = w21
 l . 

..
.

De manera similar, notaremos por ~bl el vector que representa los bias de las neuronas
en la capa l y ~al el vector que representa las activaciones de las neuronas en la capa l:

~bl = bl , . . . , ~al = al , . . .
   
1 1

148
Abusando del lenguaje, ya que no hay posibilidad de error, notaremos también por σ
a la aplicación de la función de activación (del mismo nombre) sobre un vector elemento
a elemento:

   
σ x, y = σ(x), σ(y)

De esta forma, podemos escribir de forma matricial la activación de las neuronas en


la capa l con respecto a las activaciones en la capa anterior:

 
l
~a = σ W ~a l l−1
+ ~bl

 
Notaremos por ~zl = W l~al−1 + ~bl la entrada ponderada a las neuronas de la capa
l, por lo que ~al = σ(~zl ).

Antes de continuar con el método de retropropagación necesitamos definir el pro-


ducto Hadamard ( ) entre matrices (vectores), una operación binaria que toma dos
matrices (vectores) de iguales dimensiones y produce una nueva matriz (vector) donde
el elemento ij es el producto de los elementos ij en las dos matrices originales, es decir:
(A B)ij = Aij · Bij . Por ejemplo:

       
2 3 2∗3 6
= =
4 6 4∗6 24

Recordemos que para aplicar el método de optimización del Descenso del Gradiente
hemos de considerar una función cuyo óptimo se corresponda con la función que desea-
mos aproximar por la red neuronal. Fijando el problema anterior de conseguir unos pesos
que hagan que la red asociada calcule/clasifique correctamente un conjunto de muestras
~ supondremos dada una función E, que llamaremos Error, que
de entrenamiento (~x,d),
evalúa el error medible entre la salida obtenida de la red ~aL para la entrada ~x y la salida
deseada d. ~ Téngase en cuenta que, en realidad, esta función de error depende de los
parámetros libres del modelo, que en nuestro caso son los pesos de las conexiones (w) y
bias (b).

149
El objetivo del algoritmo de retropropagación que presentamos es minimizar en la
medida de lo posible esta función E, y para ello debe calcular las derivadas parciales ∂E
∂w
y ∂E
∂b
, que indicarán las modificaciones necesarias en los pesos y bias de cada neurona
para reducir el error E.

Notemos por δjl la dependencia del error de la red en relación a la entrada total
que recibe la neurona j-ésima de la capa l. Este valor nos indica de qué forma podemos
modificar el error obtenido variando las entradas de cada neurona:

∂E
δjl =
∂zjl

Debido a que la relación entre el error obtenido y las neuronas depende de si éstas
son de la capa de salida o no, haremos una distinción entre el error asociado a unas y
otras.

La dependencia para las neuronas de la capa de salida (la capa L) vendrá dado por
la siguiente relación:

∂E 0 L
δjL = σ (zj )
∂aLj

O equivalentemente, en forma matricial:

~δL = ∇~aL E σ 0 (~zL ) (5.1)

donde representamos, como es habitual, por ∇~aL E el vector compuesto por las derivadas
parciales de E con respecto a las diferentes activaciones de las neuronas en la capa de
salida (que también se llama Vector Gradiente, de donde viene el nombre del método
de optimización).

La dependencia del error para las capas interiores vendrá dada por la siguiente

150
ecuación matricial:

~δl = ((W l+1 )T ~δl+1 ) σ 0 (~zl ) (5.2)

donde (W l+1 )T es la matriz traspuesta de la matriz de pesos de la capa l + 1, y que


usamos para propagar hacia atrás las dependencias del error para cada neurona.

Combinando las ecuaciones 5.1 y 5.2 podemos obtener la dependencia del error δjl
para cualquier neurona perteneciente a cualquier capa en la red: para ello, en virtud de
la dependencia de una capa con la siguiente, comenzaremos usando la ecuación 5.1 para
calcular ~δL , a continuación utilizaremos la ecuación 5.2 para calcular ~δL−1 en función
de ~δL , y de manera sucesiva utilizaremos la ecuación 5.2 para calcular ~δl−1 en función
de ~δl .

Por último, presentamos dos relaciones más, necesarias para poder formalizar el
método del gradiente de manera adecuada. La ecuación que indica la dependencia del
error E con respecto a cualquier bias en la red:

∂E
l
= δjl (5.3)
∂bj

y la ecuación que indica la dependencia del error con respecto a cualquier peso en la
red:

∂E
l
= al−1
k δj
l
(5.4)
∂wjk

Con esto, obtenemos cuatro ecuaciones fundamentales (5.1,5.2,5.3 y 5.4) que per-
miten expresar el algoritmo de retropropagación y que nos indicarán de qué forma se
deben realizar las modificaciones sobre los pesos y bias para conseguir optimizar los
resultados de la red obtenida.

151
Demostración de las ecuaciones fundamentales (POSIBLEMENTE UN APÉNDI-
CE)

A continuación demostramos las cuatro ecuaciones fundamentales (5.1,5.2,5.3 y 5.4)


que intervienen en el algoritmo de retropropagación, todas ellas se obtienen utilizando
la regla de la cadena [?]. Comenzaremos demostrando la ecuación 5.1 de la dependencia
del error en una neurona de la capa L:

∂E ∂E ∂aLj ∂E
δjL = L
= L L
= L σ 0 (zjL )
∂zj ∂aj ∂zj ∂aj

que escrita en forma matricial da como resultado la ecuación 5.1:

~δL = ∇~aL E σ 0 (~zL )

Para obtener la ecuación 5.2 utilizaremos también la regla de la cadena para obtener
~δl en función de ~δl+1 :

∂E X ∂E ∂zkl+1 X l+1 ∂zkl+1


δjl = = = δk (5.5)
∂zjl k
∂z l+1
k
∂z l
k k
∂zjl

Sabiendo que zkl+1 = l+1 l


aj + bl+1 l+1
σ(zjl ) + bl+1
P P
j wkj k = j wkj k podemos deducir:

∂zkl+1 l+1 0 l
= wkj σ (zj )
∂zjl

sustituyendo en la ecuación 5.5 obtenemos:

X
l+1 l+1 0 l
δjl = wkj δk σ (zj )
k

que escrita en forma matricial da como resultado la ecuación 5.2:

152
~δl = ((W l+1 )T ~δl+1 ) σ 0 (~zl )

De nuevo, usando la regla de la cadena deducimos la ecuación 5.3:

P l l−1
∂E ∂E ∂zjl l
∂[ k wkj ak + blj ]
= = δj = δjl
∂blj ∂zjl ∂blj ∂blj

De manera similar obtenemos la ecuación 5.4:

∂E ∂zjl l
al−1 + blj ]
P
∂E ∂[ k wkj k
l
= = δ l
j = al−1
k δj
l
∂wjk ∂zjl ∂wjk
l
∂wjkl

Algoritmo

Una vez demostradas las cuatro ecuaciones fundamentales pasamos a describir cómo
serı́a el procedimiento de retropopagación para ajustar el valor de salida para una mues-
tra concreta haciendo uso de ellas. Comenzamos calculando los gradientes del error en
función de los pesos y bias del modelo:

1. Entrada: Activar las neuronas de la primera capa ~a1 con la entrada ~x.

2. Propagación: Para cada l = 2, 3, ..., L calcular:

~zl = W l~al−1 + ~bl , ~al = σ(~zl )

3. Cálculo de dependencias en la capa de salida: Calcular el vector:


~δL = ∇~aL E σ 0 (~zL )

4. Retropropagación: Para cada l = L − 1, L − 2, ..., 2 calcular


~δl = ((W l+1 )T ~δl+1 ) σ 0 (~zl )

153
5. Salida: El gradiente de la función de error E con respecto a los parámetros libres
del modelo viene dado por:
∂E ∂E
l
= al−1 l
k δk , = δjl
∂wjk ∂blj

El algoritmo de retropropagación hace uso del algoritmo anterior para calcular el


gradiente y ası́ ajustar los parámetros del modelo (y mejorar el resultado obtenido en
una muestra) de la siguiente forma (donde α representa de nuevo la tasa de aprendizaje):

W l → W l − α~δl (~al−1 )T
~bl → ~bl − α~δl

La repetición de este proceso haciendo uso de una muestra concreta llevará a una
reducción paulatina del error cometido por la red en ese punto (ya hemos comentado
que no necesariamente conseguirá un error nulo).

Si disponemos de un conjunto de muestras de entrenamiento, no suele ser buena idea


intentar ajustar al máximo cada una de ellas por separado, ya que las modificaciones
realizadas para ajustar una de las muestras puede (y suele) desajustar los resultados
del resto de muestras. Por ello, se suelen usar métodos estocásticos que van realizando
ajustes parciales de todas las muestras, esperando que el error total (que se puede
calcular como el error medio de todas las muestras, o la distancia euclı́dea entre las
salidas reales y las esperadas, por ejemplo) disminuya.

El siguiente algoritmo es un ejemplo de esta idea:

1. Entrada: Un conjunto de entrenamiento S = {(x~1 , d~1 ), ..., (x~N , d~N )}.


~ ∈ S: Aplicar el algoritmo anterior para calcular las activacio-
2. Para cada (~x, d)
nes de todas las neuronas (propagación), ~a~x,l , y las dependencias para el error
(retropropagación), ~δ~x,l con la entrada ~x.
3. Ajuste de los parámetros: Para cada l ≥ 2, hacer:
α X ~~x,l ~x,l−1 T ~ l ~ l α X ~~x,l
Wl → Wl − δ (~a ) ,y b → b − δ
N N
~
x ~
x

154
4. Volver a 2: Un número fijo de veces, o mientras el error medido en la capa de
salida sea mayor que cierto umbral.

Cada iteración principal del algoritmo (donde se ha tenido en cuenta una vez cada
elemento del conjunto de entrenamiento) se llama época en la literatura habitual del
área.

Limitaciones

Tras haber analizado en detalle el funcionamiento y justificación del algoritmo de re-


tropropagación, es conveniente hacer algunos comentarios que pueden arrojar luz acerca
de la evolución que ha sufrido el campo de redes neuronales hasta la actualidad y que
justificarán algunas de las decisiones que hemos tomado para la realización del presente
trabajo:

Observando la ecuación 5.4 se observa que las modificaciones realizadas sobre


los pesos de conexiones que provienen de neuronas con una baja activación son
menores que las realizadas sobre aquellas que provienen de una neurona con un
alto valor de activación (se dice que el aprendizaje realizado sobre estas conexiones
es menor).

Hasta ahora, hemos presentado el algoritmo de retropropagación sin fijar una


función de activación determinada, solo imponiendo las condiciones mı́nimas ne-
cesarias de derivabilidad para que los cálculos se puedan realizar. Sin embargo, la
elección de la función de activación σ es esencial a la hora de conseguir que una
red aprenda una función determinada de manera eficiente (aunque el Teorema de
Aproximación Universal confirma la existencia de parámetros adecuados para una
buena aproximación, no asegura que podamos acercarnos a los valores óptimos
haciendo uso de gradientes).
Si utilizamos una función lineal como función de activación no podremos conseguir
que la red aprenda una función que no sea lineal, ya que la combinación lineal
de funciones lineales da como resultado una función lineal. De hecho, aunque
las funciones lineales son continuas y derivables, no están en las condiciones del

155
Teorema de Aproximación Universal, ya que no están acotadas, por lo que no
aseguran una correcta aproximación.
Por otra parte, la función Heaviside sı́ está acotada y verifica las condiciones
del Teorema de Aproximación Universal, pero no es continua, y por tanto no
es derivable, por lo que a pesar de existir aproximaciones buenas usándola, no
podemos usarlas en el método del gradiente (de hecho, allı́ donde es derivable,
la función Heaviside tiene derivada nula, por lo que no podrı́amos ajustar los
parámetros haciendo uso del algoritmo de retropropagación).
Una función muy adecuada para ser utilizada como función de activación en redes
neuronales es la función sigmoide (o logı́stica):

1
σ(x) =
1 + e−x

Figura 5.5: Representación gráfica de la función sigmoide y su derivada.


La función sigmoide tiene algunas caracterı́sticas que la hacen muy interesante
para ser utilizada como función de activación en una red neuronal (ver Figura 5.5).
Por una parte, está acotada, con (0, 1) como rango de salida, lo que hace que esté en
las condiciones del Teorema de Aproximación Universal. Además, es derivable,
por lo que está en las condiciones para usar el algoritmo de retropropagación, y
la derivada de la función sigmoide es muy sencilla, y también está acotada:

σ 0 (x) = σ(x)(1 − σ(x))


lo que implica que, una vez que se ha calculado σ(x), el cálculo de σ 0 (x) sea
inmediato, permitiendo que los cálculos en la fase de retropropagación sean más

156
rápidos (basta almacenar en cada neurona el valor de su activación en el paso de
propagación, para ser reutilizado en el paso de retropropagación).

Pero una función como la función sigmoide también presenta algunos inconvenien-
tes a la hora de ser utilizada como función de activación. Observando la ecuación
5.2, podemos observar que si la activación de una neurona en la capa de salida
está cercana a 0 o a 1 la derivada de ésta será prácticamente nula (Figura 5.5)
y, por tanto, el aprendizaje de los pesos de las conexiones que llegan a ella se
producirá de una manera muy lenta. Observa que esta situación ocurre cuando la
entrada total de la neurona es muy grande en valor absoluto, en este caso se dice
que la neurona está saturada.
Además, la derivada de la función sigmoide es relativamente pequeña en todos
sus puntos (siempre por debajo de 0,3), por lo que la transmisión de los valores δ
provoca que éstos sean cada vez más cercanos a 0 y, por tanto, que el aprendizaje en
las capas más alejadas de la capa de salida sea casi nulo, ya que en ellas interviene
el producto acumulado de los valores δ de las capas posteriores. Este es el motivo
por el que no suele ser posible entrenar por retropropagación redes neuronales con
un número de capas elevado y ha sido necesario buscar métodos alternativos de
aproximación o estructuras distintas a las feedforward para estos fines.

5.3.2. Codificadores

Hasta ahora hemos hecho uso de las redes neuronales feedforward como máquinas
de cálculo, pero en esta sección presentamos un uso de las mismas que será (y ha sido)
de fundamental importancia para los nuevos resultados que se han obtenido con ellas.

Obsérvese que, cuando una red feedforward tiene capas ocultas, toda la comunicación
que se produce entre la capa de entrada y la capa de salida pasa por cada una de las
capas ocultas. De esta forma, si estamos intentando aproximar una función por medio
de una red feedforward que tiene una capa oculta, tras el ajuste de los parámetros de
la red (se haga por el procedimiento que se haga), podemos pensar que la capa oculta
mantiene la información necesaria de los datos de entrada que son necesarios para el
cálculo de la función. Por ello, siempre desde el punto de vista de la función que calcula
la red, podemos decir que la capa oculta codifica los datos de entrada; y los pesos (y
bias) que se han usado definen la función de codificación entre ambos espacios. De igual

157
forma, podemos entender que la parte de la red original que va desde la capa oculta
que consideremos hasta la capa de salida define una decodificación hacia el espacio de
llegada (ver Figura 5.6).

Figura 5.6: Representación simplificada de un codificador neuronal.

De forma general, el objetivo de los codificadores neuronales es aprender una co-


dificación a partir de un conjunto de datos. Si prescindimos de las capas posteriores
(incluida la capa de salida original) y de los parámetros que tienen asociados, obtene-
mos una nueva red neuronal que produce como salida una representación del espacio
de entrada en un espacio de dimensión concreta (el número de neuronas en la capa
oculta que se ha considerado). Debemos recordar que esta representación se consigue
como aplicación parcial de una función que se ha obtenido a partir de una red feedfor-
ward completa que aproxima una función prefijada y, consecuentemente, la codificación
obtenida es relativa a esta función (y al proceso de aproximación).

Los autocodificadores son un caso concreto de codificador neuronal en el que se


ha intentado aprender la función identidad y, en consecuencia, las capas de entrada
y salida poseen el mismo número de neuronas. Es decir, el conjunto de muestras de
entrenamiento serı́a {(~x1 , ~x1 ), . . . , (~xN , ~xN )}. Al igual que ocurre cuando trabajamos con
codificadores, cuando la red alcanza un estado aceptable (es capaz de mostrar una salida
suficientemente parecida a la entrada para cada uno de los ejemplos), las activaciones en
las unidades de las capas ocultas capturan información del dato original ~x presentado
en la capa de entrada.

Si el número de unidades en la capa oculta usada para la codificación difiere del

158
número de unidades en la capa de entrada (y salida) estaremos además haciendo una
cambio dimensional al realizar la codificación. De hecho, es uno de los métodos que
pueden usarse para realizar cambios de dimensionalidad manteniendo las caracterı́sticas
estructurales presentes en los conjuntos de entrenamiento (por ejemplo, las relaciones
de proximidad o similitud).

Si los tamaños de las capas ocultas son los mismos que las capas de entrada y salida
se deben imponer condiciones adicionales para no estar aprendiendo la función identidad
de forma trivial.

Como hemos indicado, en este capı́tulo usaremos codificadores neuronales como me-
dio de inmersión de nuestras estructuras de Grafo con Propiedades en un espacio Rn
adecuado. Para ello, haremos uso de redes neuronales entrenadas con funciones ade-
cuadas con el fin de comprobar hasta qué punto las estructuras semánticas del grafo
se conservan en las propiedades vectoriales de la inmersión. Pero antes presentamos un
modelo que ha servido de inspiración para nuestro trabajo y que realiza un proceso
de inmersión de textos en espacios vectoriales manteniendo muchas propiedades de las
estructuras gramaticales presentes en los textos originales.

5.3.3. Word2vec

Como hemos visto en el apartado anterior, el objetivo principal de los codificadores


neuronales es obtener una nueva representación de los datos originales manteniendo sus
propiedades estructurales, pero para ello hemos de hacer uso de una función objetivo
adecuada que obligue a la capa oculta codificadora a mantener esa estructura.

Una de las aplicaciones de este tipo de codificadores que mejores resultados ha pro-
porcionado es la realizada con textos. En 2013, T. Mikolov, K. Chen, G. Corrado y J.
Dean [?] presentaron dos nuevas arquitecturas, denominadas bajo el nombre genérico
de word2vec, para aprender representaciones vectoriales de palabras que tratan de mi-
nimizar la complejidad computacional a la vez que mantener muchas de las propiedades
gramaticales presentes en los textos de donde se extraen: el Continuous bag-of-words
(CBOW) y Skip-gram.

El proceso para ambas arquitecturas pasa por una primera fase de preprocesamien-

159
to en la que se extrae la información de los textos de los que queremos aprender las
estructuras. Para ello, fijaremos un vocabulario de trabajo extraı́do a partir de los tex-
tos que sirven de corpus para el aprendizaje. En muchas ocasiones, este vocabulario es
procesado de forma que se trabaja únicamente con los lemas de las palabras (la raı́z
informativa de las palabras, eliminando los prefijos y sufijos que determinan su género,
número, tiempo verbal, etc.). Además, puede ser habitual trabajar únicamente con un
subconjunto de palabras significativas, eliminando lo que se llaman stopwords (palabras
vacı́as) tales como preposiciones, pronombres, artı́culos, etc. El conjunto de palabras a
considerar dependerá del problema de representación final que queramos obtener.

En esta tarea, definimos el contexto de una palabra en un texto como el conjunto de


palabras que aparecen en posiciones adyacentes a ésta. El tamaño del contexto, también
llamado ventana, es variable y se decide en función de la codificación a realizar, por lo
que se convierte en un parámetro libre de los modelos que puede ser ajustado para
mejorar los resultados.

Ambas arquitecturas consisten en redes neuronales artificiales feedforward con 3


capas: una capa de entrada (capa 1), una capa oculta (capa de proyección, capa 2) y
una capa de salida (capa 3); pero se diferencian en la función objetivo que intentan
aproximar. Por una parte, los codificadores neuronales con arquitectura CBOW toman
el contexto de una palabra determinada como entrada y tratan de predecir dicha palabra
en su salida. Por el contrario, los codificadores con arquitectura Skip-gram reciben la
palabra como entrada y tratan de predecir el contexto asociado a ella en su salida. Las
capas de entrada y de salida tendrán tantas neuronas como palabras distintas haya en
el vocabulario, de forma que si ordenamos el vocabulario, V = {w1 , . . . , wk }, entonces la
neurona i-ésima de esas capas codificará a wi (es decir, se da una representación 1-aria
del vocabulario).

La Figura 5.7 da una representación más exacta de cómo se introducen los datos
de entrada en la red y cómo se obtienen los datos de salida de la misma, en dicha
representación la matriz WV ×N representa la matriz de pesos asociada a la capa oculta
(W 2 ) y la matriz WN0 ×V representa la matriz de pesos asociada a la capa de salida (W 3 ).
Las neuronas en capas adyacentes están completamente conectadas.

La capa de entrada de la red representa un vector de tipo one-hot que posee una
neurona por cada palabra en el vocabulario de tal forma que, para el caso Skip-gram, la
palabra w a ingresar activará (pondrá a 1) la única entrada asociada a ella en la capa de

160
Figura 5.7: Estructura de la red neuronal feedforward utilizada en las arquitectura
CBOW y Skip-gram.

entrada y el resto de entradas permanecerán a 0, la red deberá aprender a mostrar por


la salida el contexto C asociado a dicha palabra codificado también a través del vector
one-hot en la salida de la red, de tal forma que se activen sólo las salidas asociadas
a las palabras en dicho contexto C y el resto deberán permanecer a 0. En el caso de
la arquitectura CBOW se recibirán los contextos en la capa de entrada codificados en
la forma one-hot y la red deberá aprender a activar sólo la palabra asociada a dicho
contexto en la capa de salida.

Formalmente, la tarea de entrenamiento supervisado se realizará con el conjunto de


muestras de la forma (w, C) en el caso de la arquitectura Skip-gram, y a través de un
conjunto de muestras de la forma (C, w) en el caso de la arquitectura CBOW, donde
w representa una de las palabras de V , y C representa uno de los posibles contextos
asociados a dicha palabra. Debe tenerse en cuenta que la misma palabra puede (y
normalmente ası́ será) aparecer asociada a varios contextos, y viceversa.

Por ejemplo, dado el siguiente texto: Creo en la vida eterna en este mundo, hay mo-
mentos en que el tiempo se detiene de repente para dar lugar a la eternidad. En el caso de
que consideremos las prepociciones y los artı́culos como stopwords, el vocabulario de di-
cho texto serı́a [creo, vida, eterna, mundo, momentos, tiempo, detiene, repente, dar, lugar, eternidad]
y, si consideramos un tamaño de contexto 4, ejemplos de posibles pares (w, C) serı́an:
(eterna, [creo, vida, mundo, momentos]), (mundo, [vida, eterna, momentos, tiempo),
(momentos, [eterna, mundo, tiempo, detiene]), etc.

161
Tras conseguir la aproximación deseada, el vector de activaciones de la capa oculta ~a2
que se obtiene al usar como entrada de la red una palabra determinada del vocabulario
(~a1 = w) en el caso de la arquitectura Skip-gram representa la codificación de dicha
palabra en el nuevo espacio vectorial.

En la figura 5.8 se da una representación gráfica de un caso concreto de las arqui-


tecturas descritas, donde w(t) representa una palabra del vocabulario, y C = {w(t −
2), w(t − 1), w(t + 1), w(t + 2)} uno de sus contextos asociados (en este caso, de tamaño
4).

Figura 5.8: Representación de las arquitecturas CBOW y Skip-gram. W (t) representa


wordi y w(t − 2), w(t − 1), etc. su contexto C i .

En el caso de la arquitectura CBOW, el vector de activaciones de la capa oculta ~a2


resultante al ingresar el vector promedio de los vectores contexto asociados a una palabra
determinada wordi por las entradas de la red (~a1 = C i ) representa la codificación de la
palabra wordi asociada a dichos contextos en el nuevo espacio vectorial [?].

El objetivo principal del citado trabajo de Mikolov et al. es reducir la complejidad en


el modelo neuronal para permitir al sistema aprender a partir de un volumen enorme de
datos textuales. Hasta la llegada de word2vec, ninguna arquitectura de este tipo habı́a
sido capaz de entrenarse con más de algunos millones de palabras.

Por medio de la relación que se establece entre las palabras del vocabulario y sus
contextos, el modelo captura diferentes tipos de similaridad [?], tanto funcionales co-
mo estructurales, y proporciona una inmersión en el espacio vectorial que refleja estas
similaridades. Ası́, puede capturar por ejemplo similaridades entre palabras que juegan

162
el mismo papel en las oraciones en las que intervienen [?] o incluso encontrar relaciones
semánticas más complejas entre conceptos. Por ejemplo, si realizamos operaciones vec-
toriales entre las palabras (donde + representa la suma habitual de dos vectores y − su
diferencia) se obtienen resultados como:

w2v(”Hombre”) − w2v(”M ujer”) + w2v(”Rey”) ≈ w2v(”Reina”)

donde w2v es la codificación obtenida tras el entrenamiento, y que podrı́amos interpretar


como
Hombre es a Mujer como Rey es a ... Reina
que demuestra la potencia de este tipo de codificaciones, siendo capaz de encontrar
relaciones semánticas subyacentes tan sólo a partir de grandes volúmenes de textos y el
adecuado entrenamiento.

5.4. Trabajos relacionados

Antes de entrar a describir con detalle de qué forma usamos los codificadores neuro-
nales para hacer inmersiones de Grafos con Propiedades en espacios vectoriales adecua-
dos manteniendo las estructuras semánticas presentes en el grafo, haremos una breve
revisión de algunos otros trabajos previos que han tenido objetivos similares.

A pesar de que desde diferentes áreas del conociemiento se trabaja con diferentes es-
tructuras para la representación de información multi-relacional (tripletas RDF, grafos
multi-relacionales, bases de datos relacionales...) los métodos de aprendizaje que traba-
jan sobre ellas pueden ser vistos como métodos con un mismo objetivo, y a pesar de que
están preparados para consumir la información de manera diferente pueden agruparse
dentro de un mismo grupo.

El aprendizaje multi-relacional desarrollado hasta ahora puede dividirse en tres blo-


ques: (1) Statistical Relational Learning (SRL), dentro del cual se encontrarı́an desa-
rrollos como las redes lógicas de Markov [?], el cual utiliza una codificación de grafos
multi-relacionales haciendo uso de modelos probabilı́sticos; (2) Path ranking methods
[?, ?], los cuales de manera explı́cita exploran el espacio de relaciones a través de caminos
aleatorios; (3) Modelos basados en inmersiones, los cuales obtienen una representación

163
vectorial del conocimiento multi-relacional a través de factorización de matrices/ten-
sores [?, ?, ?], clusterización bayesiana [?, ?] o redes neuronales [?, ?, ?, ?]. Dichas
técnicas de aprendizaje basadas en inmersiones realizadas a través de redes neurona-
les han demostrado ser herramientas muy poderosas debido a su alta escabilidad y su
fuerte habilidad de generalización. Aquı́ nos centraremos en los modelos basados en in-
mersiones utilizando redes neuronales por ser el caso de la propuesta presentada en este
trabajo.

En los últimos años se han desarrollado diferentes métodos que tratan de aprender
representaciones vectoriales de entidades y relaciones en bases de conocimiento [?, ?,
?]. Todas ellas representan a las entidades como vectores en un espacio dimensional
determinado y las relaciones como combinaciones de las representaciones de las entidades
que participan en ella. En [?] se propone una inmersión de datos multi-relacionales en
un espacio vectorial intentando verificar algunas propiedades adicionales. Para ello, se
busca una proyección de nodos y tipos de aristas, π, en el espacio vectorial buscando:

l
1. Minimizar la distancia d(π(s) + π(l), π(t)) de cada relación (s → − t) existente
(observada) en el conjunto de datos, donde s representa el elemento origen de la
relación, l representa el tipo de relación y t representa el elemento destino de la
relación.
2. Maximizar las distancias d(π(s0 ) + π(l), π(t)), d(π(s) + π(l0 ), π(t)) y d(π(s) +
π(l), π(t0 )), donde s0 y t0 representan nodos del grafo, y l0 representa un tipo de
l l l0
relación del grafo, para los que las relaciones s0 → − t0 y s →
− t, s → − t no existen
(relaciones no observadas) en el grafo.

Para mejorar la eficiencia del algoritmo, los autores hacen un muestreo aleatorio del grafo
original, tanto para las relaciones existentes como para las no existentes. El proceso de
optimización se realiza posteriormente siguiendo el método del descenso por el gradiente
en modo mini-batch (es decir, por bloques de muestras de entrenamiento de tamaño
prefijado, no todas en cada epoch). En [?], y con el fin de conseguir mejores resultados
en la proyección, los autores siguen un procedimiento similar pero haciendo uso de una
red neuronal siamesa3 en vez de una red neuronal estándar. En [?] se agrupan algunas
3
Una red neuronal siamesa es un tipo de red neuronal comparativa compuesta por dos redes que
comparten pesos y arquitectura (cada una recibe un dato a ser comparado) y cuyas salidas son com-
paradas mediante una función de distancia.

164
de estas técnicas sobre un mismo marco teórico general que permite la comparación
tanto en complejidad de los modelos como en los resultados.

Pese a la relación que estos trabajos tienen con el que nosotros presentamos aquı́,
el segundo requerimiento que imponen de maximizar las relaciones no observadas va
en contra de uno de los objetivos que perseguimos, ya que no suponemos que el grafo
multi-relacional de origen tenga información completa y, en consecuencia, las relaciones
no observadas pueden deberse a una carencia informativa y no a una inexistencia real.
Precisamente la predicción de este tipo de relaciones no observadas es una de las razones
por las que buscamos una inmersión en un espacio que nos ofrezca una capacidad de
análisis adicional. Además, la mayorı́a de trabajos que realizan aprendizaje de repre-
sentaciones vectoriales de entidades y relaciones en bases de conocimiento tienen como
objetivo, evaluar la posibilidad de existencia de determinadas relaciones (link prediction
task) condicionando con un aprendizaje supervisado la representación de las entidades.
En nuestro caso, la codificación que trataremos de aprender estará sólo condicionada por
conseguir representaciones vectoriales que capturen la similitud de los contextos en los
que se encuentran inmersas las entidades que representan, abriendo ası́ las posibilidades
de utlización de dichas representaciones a un abanico más amplio de tareas.

DeepWalk [?] es una metodologı́a reciente que utiliza codificadores neuronales para
representar los nodos de un grafo uni-relacional haciendo uso de una idea muy similar
a la que Mikolov et al. presentaron para la inmersión de grandes conjuntos de textos en
espacios vectoriales. En concreto, en el citado trabajo el grafo uni-relacional es linealiza-
do a partir de la generación de caminos aleatorios truncados, interpretando los caminos
obtenidos como frases y considerando a partir de ellos un conjunto de entrenamiento
con la forma
{(node1 , C 1 ), . . . , (nodeN , C N )}
donde nodei representa un nodo concreto del grafo y C i un contexto generado a partir
de dichos caminos aleatorios truncados, es decir, el conjunto de nodos que aparecen en el
mismo camino según el orden de recorrido. Posteriormente, y de forma completamente
equivalente a word2vec, dicho conjunto de entrenamiento es utilizado para entrenar un
codificador neuronal con arquitectura Skip-gram y obtener ası́ una inmersión de los
nodos del grafo uni-relacional en un espacio vectorial. Este trabajo previo que utiliza
arquitecturas propias de word2vec [?] no permiten trabajar con grafos multi-relacionales
grandes de manera eficiente, siendo éste el caso de las bases de datos relacionales que
se extraen de las redes semánticas existentes. Por ello, dichos experimentos deben ser

165
considerados como experimentos iniciales que ponen de manifiesto que, pese al interés
indudable de disponer de inmersiones vectoriales de este tipo de estructuras, las redes
neuronales clásicas no ofrecen las condiciones necesarias para su consecución.

En [128] se presenta la metodologı́a LINE para aprender representación d-dimensional


de los elementos inmersos en un grafo uni-relacional a través de dos fases: La prime-
ra fase aprende d/2 dimensiones generando caminos aleatorios en modo Breath-First
Search. En la segunda fase se aprenden las d/2 dimensiones restantes sampleando nodos
que están estrictamente a dos saltos de distancia del nodo origen.

Node2vec [63] extiende y converge las ideas presentadas en DeepWalk y LINE am-
pliando las posibilidades a la hora de construir los caminos aleatorios en el grafo, con-
cretamente desarrollan un algoritmo flexible que a través de dos parámetros permite
modificar la generación de los caminos aleatorios que exploran el entorno de los nodos y
dan lugar a su contexto. A partir de dos estrategias estándar de búsqueda, Breath-First
Sampling (BFS) y Depth-First Sampling (DFS) los dos parámetros permiten controlar
si el camino aleatorio tiende a una estrategia BFS o DFS. En particular, afirman que un
sampleo guiado por una estrategia BFS da lugar a inmersiones que reflejan la equiva-
lencia estructural entre las entidades y que un sampleo guiado por una estrategia DFS
da lugar a una inmersión en la que se refleja la homofilia. Se definen dos parámetros p
y q que serán los que guiarán el camino aleatorio. Si consideramos un camino aleatorio
que acaba de atravesar la arista (t, v) y que ahora se encuentra en v, el camino necesita
ahora decidir cuál es la siguiente arista a tomar para lo que evalúa la probabilidad de
transición de cada arista disponible desde v. Se define la probabilidad de transición no
normalizada Pvx de cada arista disponble (v, x) como Pvx = αpq (t, x)wvx , donde:


1
p
 , si dtx = 0
αpq (t, x) = 1 , si dtx = 1

1
q
, si dtx = 2

wvx es el peso de la arista (v, x) y dtx denota la longitud del camino mı́nimo entre t
y x. Si p es pequeño, guiará el camino aleatorio para deshacer lo recorrido y ası́ permitir
que la búsqueda se mantenga local y cercana al nodo origen del camino (BFS). Si q es
pequeño, el camino se inclinará hacia nodos que están alejados del origen (DFS). Para
la inmersion de aristas proponen utilizar diferentes operadores: el promedio, el produc-

166
to hadamard o la distancia entre las dos entidades que conectan. Este método es una
generalización del presentado en DeepWalk (DeepWalk es un caso concreto de node2vec
en el que el valor de ambos parámetros es 1). En este trabajo, se realizan experimentos
sobre una red pequeña sobre la que muestran cómo a partir de las dos variables p y q
se pueden encontrar clústeres en las representaciones resultantes que evidencian la ho-
mofilia y la equivalencia estrucutral entre las entidades y experimentos sobre conjuntos
de datos más grandes en los que evalúan la capacidad de las representaciones obtenidas
para llevar a cabo Multi-Label Classification y Link Prediction.

En los tres últimos trabajos nombrados [?, 128, 63] no se trabaja con grafos multi-
relacionales y se limitan las caractersiticas a detectar en las representaciones vectoriales
a la homofilia y la equivalencia estructural.

Últimamente, han visto a la luz algunos trabajos que hacen uso de Redes Neuro-
nales Convolucionales para crear representaciones vectoriales de los nodos de un grafo
uni-relacional [78, 43, 44]. En [78], el objetivo es aprender una función que codifique
las caracterı́sticas de un grafo G = (V, E) a partir de: (1) Una descripción de las ca-
racterı́sticas xi de cada nodo i; Almacenadas en una N × D matriz de descripciones
(N :Número de nodos,D:Número de caracterı́sticas por nodo). Y (2) una descripción
representativa de la estructura del grafo en forma de matriz (normalmente la matriz de
adyacencia A). Dicha arquitectura produce una salida a nivel de nodo Z (una N × F
matriz de features, donde F es el número de features obtenidos por cada nodo). También
se pueden obtener salidas que representen el grafo completo aplicando alguna operación
de tipo pooling [44].

Además, se han desarrollado algunos métodos que permiten dar una representación
vectorial de datos presentes en una red. En [32] presentan HNE (Heterogeneous Network
Embedding), un framework para hacer inmersiones de redes que conectan datos de
diferentes tipos (por ejemplo imágenes y textos) en espacios de baja dimensión utilizando
una red neuronal profunda. Se optimizan matrices de transformación que permiten
transformar los datos desde su espacio original a un nuevo espacio homogéneo (espacio
de igual dimension y tipo para todos los tipos de datos presentes en la red). En el
caso de datos tipo imagen, se utilizan capas convolucionales para transformarlas y en el
caso de datos textuales capas completamente conectadas. Consiguen una representación
homogénea de diferetntes tipos de datos interconectados, capturando las similitudes
entre los objetos y las relaciones que existen entre ellos, como el aprendizaje que se lleva
a cabo es no supervisado dicho framework la nueva representación es adecuada para

167
aplicar cualquier algoritmo de aprendizaje automático ya que no se ha condicionado
el aprendizaje a una tarea determinada. En [73] se enfrentan a la tarea de asignación
automática de etiquetas a nodos de diferentes tipos en una red heterogénea con diferentes
tipos de nodos pero sin tipos en las aristas. El algoritmo que presentan está diseñado
para aprender las dependencias existentes entre los conjuntos de etiquetas asociadas
a los diferentes nodos y para inferir las etiquetas asociadas a un nodo explotando las
propiedades del grafo global y las caraceristicas de los nodos vecinos. Para ello, obtienen
representaciones de los nodos del grafo en un espacio latente. Dicha representación en
el espacio latente es aprendida de acuerdo a dos restricciones: (1) Se tiende a agrupar
nodos del mismo tipo que estén conectados (con menos intensidad cuanto más largo sea
el camino) y (2) Se tiende a agrupar nodos de diferentes tipos si comparten contextos.
Para trabajar con grafos con propiedades, representan cada propiedad como un nodo
nuevo.

Como hemos visto en los párrafos anteriores, se han realizado anteriormente algu-
nas pocas aproximaciones con fines similares, pero en este trabajo mostraremos cómo
el uso de arquitecturas codificadoras sencillas, como las vistas CBOW y Skip-gram, y
considerar las propiedades de los elementos del grafo, permiten entrenar la red sobre un
conjunto de entrenamiento suficientemente grande (obtenido tras muestrear iterativa-
mente los ámbitos locales de cada nodo) para obtener representaciones vectoriales que
mantengan las caracterı́sticas semánticas y topológicas originales de los datos, evidencien
nuevas relaciones semánticas entre éstos que permanecen ocultas en la representación
original (por incompletitud de los datos almacenados en el grafo) e incluso que ofrezcan
información sobre la calidad semántica de la información almacenada.

5.5. Inmersiones de Grafos con Propiedades en Es-


pacios Vectoriales

Como se ha comentado anteriormente, la metodologı́a que en este trabajo presenta-


mos hace uso de un codificador neuronal, similar al usado en la arquitectura CBOW,
para codificar los elementos de un grafo con propiedades en un espacio vectorial D-
dimensional (donde D es el número de neuronas en la capa oculta del codificador).

Aunque un Grafo con Propiedades tiene muchos elementos constitutivos, en una

168
primera aproximación, y con el fin de evaluar hasta qué punto se mantiene la estructura
semántica dada por las aristas, haremos una proyección usando únicamente el conjunto
de nodos sobre el espacio vectorial. De esta forma, siguiendo con la analogı́a que nos
ofrece el algoritmo word2vec, nuestro vocabulario será el conjunto de nodos del grafo
(y, en algunas ocasiones, también de algunas de sus propiedades asociadas).

Un contexto, C, asociado a un nodo n ∈ V se obtiene seleccionando aleatoriamente,


y con repetición, un número determinado de nodos vecinos a n y propiedades suyas,
independientemente del tipo de relación que los conecta y del tipo de propiedad que es.
Al número de nodos/propiedades seleccionados le llamaremos tamaño de la ventana de
selección.

La metodologı́a que seguiremos genera un conjunto de muestras de entrenamiento


formado por pares (n, C) donde n ∈ V y C es uno de sus contextos asociados. El
conjunto de muestras es utilizado para entrenar el codificador neuronal y, a continuación,
las activaciones de la capa oculta de la red neuronal, ~a2 , que se obtienen para cada uno
de los nodos son utilizadas como representación vectorial del mismo (Figura 5.17).

Figura 5.9: La metodologı́a presentada utiliza pares nodo-contexto para aprender una
representación continua de los elementos en un grafo con propiedades.

En el procedimiento anterior los parámetros libres del modelo, que habrá que ajustar
en los diversos experimentos para analizar su eficacia y viabilidad, son:

D = |~a2 |, que representa el número de neuronas en la capa oculta, y que de-


termina el número de dimensiones del espacio vectorial de inmersión en el que
proyectaremos los elementos del grafo.
N , que representa el tamaño del conjunto de entrenamiento, el número de pares
(n, C) utilizados para entrenar el codificador.

169
Tamaño de la ventana de selección, que representa el número de vecinos (o valores
de propiedades) tenidos en cuenta para construir un contexto de un nodo de V .

En lo que sigue, notaremos por π : V → RD la proyección que hemos obtenido a


partir del codificador neuronal entrenado.

Debido a la naturaleza binaria de las relaciones en los grafos con propiedades, tras
haber obtenido una proyección sobre los nodos del grafo, se induce una proyección de
las aristas en el mismo espacio vectorial (que notaremos también por π):

Definition 35. Si G = (V, E, τ, µ) es un Grafo con Propiedades, y π : V → RD es una


inmersión de los nodos del grafo, damos una extensión de la inmersión al conjunto de
aristas, π : E → RD de la siguiente forma:
−−−−−→
l = (s, t) ∈ E, entonces π(l) = π(s)π(t) = π(t) − π(s)

Una vez codificados cada nodo y relación en un grafo con propiedades como vectores
continuos en un espacio D-dimensional obtenemos una representación del grafo como un
conjunto de vectores en dicho espacio. Debido a que las operaciones habituales en espa-
cios vectoriales son de uso extendido en las actuales unidades de cálculo (procesadores y
GPUs), esta nueva representación puede ayudar a desarrollar algoritmos más eficientes
para analizar, reparar y extraer información de conjuntos de datos multi-relacionales,
en general, y más concretamente, de bases de datos en grafos.

Algunas tareas relacionadas con los conjuntos de datos multi-relacionales que pueden
verse mejoradas desde esta nueva óptica podrı́an ser:

Clústers formados por nodos/aristas en el nuevo espacio vectorial pueden ayudar a


asignar tipos o propiedades faltantes a los elementos de un grafo (haciendo uso de
relaciones de distancia, linealidad o clusterización, por ejemplo) o incluso pueden
ayudar a detectar nuevas relaciones entre los elementos no presentes explı́citamente
en el grafo original.

La representación vectorial de los elementos de un grafo puede ayudar a obtener


medidas de similitud entre ellos.

170
El análisis de los vectores asociados a los diferentes tipos de relaciones puede
ayudar a detectar relaciones faltantes en el conjunto de datos original pero que
en la nueva representación se hacen evidentes (la disposición de dos nodos cumple
con el vector representante de algún tipo de relación, a pesar de que esa relación
no aparece en el grafo).

El análisis de la representación de las aristas que forman caminos en el grafo


original puede ayudar a desarrollar formas más eficientes que las existentes de
detectar la existencia de dichos caminos en el grafo original.

5.6. Evaluación Empı́rica

En los apartados anteriores hemos definido el marco teórico necesario para presen-
tar la inmersión propuesta de Grafos con Propiedades en espacios vectoriales, hemos
analizado los diferentes procedimientos existentes para realizar inmersiones de grafos
de diferentes tipos en espacios vectoriales, y hemos presentado una propuesta nueva de
inmersión, identificado las posibles ventajas de la misma sobre las propuestas anterio-
res. Es momento ahora de realizar ahora una evaluación empı́rica de nuestro método
con dos objetivos claramente diferenciados: analizar que las representaciones vectoriales
que se obtienen a partir de grafos con propiedades mantienen caracterı́sticas semánticas
presentes en los mismos, y evaluar diferentes aplicaciones que hacen uso de la inmersión
propuesta para realizar tareas de clasificación y descubrimiento.

Como se describió previamente, nuestro algoritmo de inmersión de Grafos con Pro-


piedades no recibe información acerca de los tipos de nodos o aristas que componen
el grafo (formalmente, no recibe información sobre la función τ ) ya que los contextos
asociados a los diferentes nodos del grafo, y que son utilizados para crear el conjunto de
entrenamiento, son generados seleccionando aleatoriamente un número (al que denomi-
namos tamaño de la ventana de selección) de nodos vecinos y de valores de sus diferentes
propiedades, al no estar los tipos de los nodos ni aristas incluidos como propiedades de
esos elementos, el codificador neuronal nunca recibe información acerca de ellos.

Con el objetivo de verificar que determinadas estructuras semánticas presentes en


la representación original G = (V, E, λ, µ) se mantienen en la nueva representación del
grafo (un conjunto de vectores en RD ) analizaremos en qué medida la función τ que

171
determina los tipos de cada nodo o arista puede ser deducida en la nueva representación
a pesar de que el proceso de inmersión del grafo G en el espacio RD nunca recibió infor-
mación sobre ella. Si es ası́, se verificarı́a que los tipos asociados a nodos y aristas pueden
ser deducidos a partir de la estructura topológica original de la red y de las propiedades
internas de sus elementos (V, E, µ) haciendo uso de algoritmos de aprendizaje.

Al final de esta sección, y con el objetivo de mejorar la capacidad de aprendizaje sobre


redes semánticas, realizaremos evaluaciones experimentales de diferentes aplicaciones
relacionadas con la recuperación de información faltante en un conjunto de datos multi-
relacionales, ası́ como propuestas de uso que persiguen mejorar el coste computacional
de determinadas operaciones de consulta en conjuntos de datos multi-relacionales. En
concreto, abordaremos la tarea de predicción de aristas faltantes y utilizaremos la misma
idea para trabajar de forma similar sobre diferentes tipos de traversals, tratando de
predecir su existencia en la nueva representación.

5.6.1. Detalles de la implementación y experimentos

Entre las opciones barajadas, la arquitectura seleccionada para el codificador es la


arquitectura Continuous Bag Of Words (CBOW), debido a que, a pesar de su simplicidad
y el bajo coste computacional en su entrenamiento, obtiene buenos resultados cuando
se trata de capturar relaciones tanto sintácticas como semánticas entre los elementos
codificados [?].

Como en el resto de aproximaciones que hemos realizado hasta el momento, se ha


elegido Python 2.7 como lenguaje de programación para llevar a cabo la evaluación
experimental señalada. Para la implementación de la arquitectura CBOW se ha utilizado
el conjunto de herramientas Gensim4 (versión 0.12.4), ya que presenta una gran eficiencia
en el uso de codificadores neuronales. Como se indicó anteriormente, se ha utilizado
Neo4j5 (versión 2.2.5) como sistema de persistencia para los grafos con propiedades
analizados. Para la comunicación con Neo4j desde Python se ha utilizado la librerı́a
py2neo6 (versión 1.6.4).
4
Disponible gratuitamente desde https://radimrehurek.com/gensim
5
http://neo4j.com
6
http://py2neo.org

172
Cuadro 5.1: Estadı́sticas de los conjuntos de datos utilizados en los experimentos.
Relation types Node Types Nodes Relations
WordNet 12 4 97.539 240.485
TheMovieDB 4 5 66.020 125.624
EICH 10 11 38.990 55.358

Cada experimento (inmersión de los Grafos con Propiedades en el espacio vectorial


con los parámetros determinados) se ha repetido 10 veces, valor experimental que nos
asegura que la desviación estándar en los resultados experimentales con respecto al
análisis de la inmersión de nodos y aristas sea inferior al 2 %, en el caso de la predicción
de enlaces estas desviaciones suben, pero están acotada superiormente por 11,2 %, y en
el caso de la obtención de los nodos destino de un traversal quedan acotadas por 8,9 %.

5.6.2. Datasets

Los experimentos se han llevado a cabo con 3 grafos con propiedades heterogéneos
(QUÉ SIGNIFICA ESTO?). Dos de ellos son ampliamente conocidos por la comuni-
dad cientı́fica relacionada con el análisis de datos semánticos: WordNet y TheMovieDB.
Además, se ha probado la metodologı́a presentada en un conjunto de datos descono-
cido para la comunidad denominado Ecuadorian Intangible Cultural Heritage. Debe
indicarse que los conjuntos de datos utilizados para estos experimentos han sido par-
cialmente manipulados para reducir su tamaño y complejidad por motivos de eficiencia
computacional. La Tabla 5.1 muestra algunas estadı́sticas sobre los conjuntos de datos
tal y como han sido empleados en los experimentos llevados a cabo. A continuación
damos algunos detalles acerca de cada uno de estos conjuntos para contextualizar las
caracterı́sticas que encontraremos en los resultados obtenidos.

WordNet R [?] es una base de datos de nombres, verbos, adjetivos y adverbios de


la lengua inglesa. Es uno de los recursos computacionales más importantes en el área
lingüı́stica, y se ha construido como una combinación de diccionario y tesauro, ideado
para que su uso sea intuitivo. Nació en el Laboratorio de Ciencias Cognitivas de la
Universidad de Princeton gracias a la aportación de numerosos lingüistas, estudiantes e
ingenieros de software, con el objetivo de dar soporte al análisis automático de textos y a
diversas aplicaciones de Inteligencia Artificial, con un claro énfasis en aquellas que preci-

173
Cuadro 5.2: Link types of WordNet used in our experiments
also, domain category, domain member usage, domain region,
domain usage, hypernym, hyponym, instance hyponim, member holonym,
member meronym, part holonym, part meronym.

san del tratamiento semántico del lenguaje. Cada elemento en la base de datos representa
lo que se ha llamado un synset: una lista de palabras sinónimas, y las relaciones que se
establecen entre los elementos se dan tanto a nivel léxico como semántico, razón por la
cual Wordnet ha sido ampliamente usada en el análisis sintáctico de textos y en entornos
de extracción de información semántica. Para este trabajo hemos utilizado una sección
de la versión 3.0, considerando únicamente las entidades que están conectadas con re-
laciones pertenecientes a los tipos que se muestran en la Tabla 5.2 (de manera similar
a [?]), obteniendo de esta forma un grafo con 97.593 nodos y 240.485 relaciones. Ejem-
plos de relaciones consideradas en WordNet son: (correction, hyponim, retribution) o
(spasm, domain category, pathology). En la Figura 5.10 mostramos la distribución de
nodos y aristas en el grafo obtenido a partir de la sección de WordNet considerada y
en la Figura 5.11 mostramos una representación gráfica del esquema de datos presen-
te en este dataset. Por las caracterı́sticas de la base de datos, las aristas no poseen
propiedades, y los nodos presentan las siguientes propiedades:

id: Identificador único del synset en la base de datos. Por ejemplo, wn/103023717-
n.
lexical domain: Dominio léxico al que pertenece el synset. Esta propiedad ha si-
do manipulada para nuestros experimentos, ya que originalmente contiene el tipo
de synset (tipo de nodo) y es precisamente uno de nuestros objetivos de predic-
ción para evaluar la corrección de la inmersión realizada. Ejemplos de cambios
realizados son: noun.substance → substance, o verb.perception → perception.
label: Etiqueta escrita en lenguaje natural definiendo el conjunto de palabras
pertenecientes al synset. (EJEMPLO?)

TheMovieDB (TMDb)7 es un conjunto de datos que contiene información sobre


actores, pelı́culas y contenidos de televisión. TMDb empezó como un proyecto paralelo
7
Disponible en https://www.themoviedb.org

174
(a) Distribución de nodos por tipo. (b) Distribución de aristas por tipo.

Figura 5.10: Distribución de nodos y aristas en el grafo WordNet.

en el año 2008 para ayudar a recopilar imágenes en alta resolución sobre pelı́culas. Lo
que empezó como una comunidad de intercambio de imágenes se ha convertido en una
gran bases de datos sobre pelı́culas con una comunidad on-line altamente participativa
y, en la actualidad, es la mayor base de datos de cine con acceso libre. Para nuestros
experimentos hemos considerado todas las entidades de TMDb que están conectadas por
relaciones pertenecientes a los tipos acts in, directed, genre y studio, obteniendo un grafo
con 66.020 nodos y 125.624 relaciones. Ejemplos de las relaciones presentes en TMDb son
(steven spielberg, directed, jurassic park) o (keanu reeves, acts in, the matrix). En la
Figura 5.12 se muestra la distribución de nodos y aristas en el suconjunto de TMDb
considerado y en la Figura 5.13 mostramos una representación gráfica del esquema de
datos presente en este dataset. Cabe destacar que los tipos Actor y Director están
solapados, concretamente, en nuestro conjunto existen 44.097 nodos que sólo tienen
asignado el tipo Actor, 5.191 nodos que sólo tienen asignado el tipo Director, y 846
nodos que poseen los tipos Actor y Director al mismo tiempo (nodos multi-tipo). Las
aristas en esta base de datos no poseen propiedades, y en los nodos se han considerados
las siguientes propiedades:

name: Propiedad presente en todos los nodos del grafo y que identifica a cada
uno de ellos. Ejemplos de esta propiedad son Keanu Reeves, o The Matrix.

language: Propiedad presente en los nodos de tipo MOVIE, indica la lengua ori-
ginal en la que la pelı́cula fue rodada. Ejemplos de esta propiedad son en (inglés),
o es (español).

175
Figura 5.11: Representación gráfica del esquema de datos presente en el dataset Word-
Net.

Ecuadorian Intangible Cultural Heritage (EICH) corresponde a una sección


de la base de datos del Instituto Nacional de Patrimonio Cultural Ecuatoriano 8 que
contiene 38.990 nodos y 55.358 relaciones distribuidas a través de 11 tipos de nodos
y 10 tipos de aristas, y que contienen información concerniente al patrimonio cultu-
ral inmaterial del Ecuador. Esta base de datos es la más heterogénea de las 3 ana-
lizadas, presentando mayor tipologı́a tanto en nodos como en aristas, y además sus
elementos poseen más propiedades que las de los elementos de las otras dos bases
consideradas. Ejemplos de relaciones en EICH son (quito, localizacion, pichincha) o
(canciones tradicionales pastaza, lengua, achuar). En la figura 5.14 se muestra la dis-
tribución de nodos y aristas en EICH según sus tipos y en la Figura 5.15 mostramos
una representación gráfica del esquema de datos presente en este dataset. Las aristas en
esta base de datos no poseen propiedades, y las propiedades consideradas en los nodos
son:
8
Disponible desde http://www.inpc.gob.ec

176
(a) Distribución de nodos por tipo. (b) Distribución de aristas por tipo.

Figura 5.12: Distribución de nodos y aristas en el grafo TMDb.

Figura 5.13: Representación gráfica del esquema de datos presente en el dataset EICH.

Descripcion: Presente en todos los nodos que identifica a cada elemento. Ejem-
plos de esta propiedad son Pichincha, o Juegos Rituales o Festivos.

Denominacion2: Presente en algunos nodos de tipo Inmaterial. Ofrece una de-


nominación alternativa a la que se encuentra almacenada en la propiedad Des-
cripción.

Denominacion3: Presente en algunos nodos de tipo Inmaterial. Ofrece una de-


nominación alternativa a las que se encuentran almacenadas en las propiedades
Descripción y Denominacion2.

EntidadInvestigadora: Presente en los nodos de tipo Inmaterial. Indica la en-


tidad que anotó dicho patrimonio inmaterial en la base de datos.

FotoFotografo: Presente en algunos nodos de tipo Inmaterial. Indica la persona


que realizó la fotografı́a asociada a un patrimonio inmaterial, en el caso de que
exista.

177
AnioFoto: Presente en algunos nodos de tipo Inmaterial. Indica el año en el que
se tomó la fotografı́a asociada a un patrimonio inmaterial, en el caso de que exista.
Tipo: Presente en los nodos de tipo Anexo. Indica el tipo de anexo asociado a un
patrimonio inmaterial, puede tomar los valores: audio, archivo, imagen y video.
Original: Presente en los nodos de tipo Anexo. Indica el nombre del fichero aso-
ciado al que hace referencia.

(a) Distribución de nodos por tipo. (b) Distribución de aristas por tipo.

Figura 5.14: Distribución de nodos y aristas en EICH.

Si definimos la riqueza semántica de un nodo como la suma de la cantidad de relacio-


nes en las que participa más la cantidad de propiedades que posee podemos construir las
distribuciones de riqueza semántica para cada uno de los conjuntos de datos anteriores
(Figura 5.16. En el caso de WordNet, el promedio de riquza semántica es 5,56, en el caso
de TMDb es 3,21 y en el caso de EICH es 7,86. Esta información es útil a la hora de
entender la composición de los casos estudiados, y será esencial para la interpretación
de los resultados que demos más adelante.

5.6.3. Evaluación de la inmersión

Siguiendo la metodologı́a presentada en este capı́tulo vamos a realizar una inmersión,


π de los elementos de un Grafo con Propiedades, G = (V, E, λ, µ), en un espacio D-
dimensional:

π(V ) ⊆∈ RD

178
Figura 5.15: Representación gráfica del esquema de datos presente en el dataset EICH.

Recordemos que la inmersión que hemos presentado en las secciones anteriores es


realmente una inmersión del conjunto de nodos, no de las aristas, y que a partir de la
inmersión de nodos, π, obtenemos la inmersión de aristas, que notábamos también con
π ya que no hay peligro de confusión, por medio del vector que une las proyecciones de
sus extremos. Ası́, sı́ l = (s, t) ∈ E, entonces:
−−−−−→
π(l) = π(s)π(t) = π(t) − π(s)

Como se ha puesto de manifiesto, la inmersión que podemos hacer para cada uno de
los conjuntos de datos no es única, y no solo porque técnicamente es el resultado de una
codificación neuronal que depende de la situación inicial de la red, sino porque depende
de algunos otros parámetros que intervienen en la ejecución del algoritmo, como son
la dimensión del espacio de llegada (D), el tamaño de la ventana utilizada para definir
el contexto de cada elemento, ası́ como los elementos (y cantidad de elementos) que
formarán el conjunto de entrenamiento extraı́do de los grafos originales. Por ello, a lo
largo de esta sección vamos a analizar las caracterı́sticas de las distintas inmersiones que
se pueden conseguir modificando los parámetros anteriores sobre los grafos presentados
en la sección 5.6.2.

179
(a) Distribución de la riqueza Semántica en(b) Distribución de la Riqueza Semántica en
WordNet. TMDb.

(c) Distribución de la Riqueza Semántica en


EICH.

Figura 5.16: Distribuciones de riqueza semántica en los diferentes conjuntos de datos


bajo estudio (las gráficas se han limitado a riquezas inferiores a 20).

Un primer problema que nos encontramos es determinar un proceso de evaluación


que permita medir la bondad de las distintas inmersiones, indicando hasta qué punto
son más o menos válidas. Para ello, y teniendo en cuenta que uno de los objetivos
deseados en las inmersiones es que mantengan las propiedades semánticas existentes en
los datos originales, hemos decidido evaluar la capacidad de las nuevas representaciones
para realizar tareas de clasificación automática.

Predicción de Tipos de Nodos.

En particular, y como primera prueba, intentaremos predecir la función τ , que asocia


tipos a los nodos del grafo, y que como comentamos anteriormente no se proporciona

180
Figura 5.17: Representación gráfica de la conexión entre el codificador y una máquina
de aprendizaje automático.

durante el proceso de entrenamiento de la red codificadora que se encargará de la inmer-


sión. Cabe destacar que, de la misma manera que podemos intentar predecir la función
τ , podrı́amos hacer una evaluación para predecir cualquier valor de la función µ que
asigna diferentes propiedades a los elementos del grafo, pero teniendo la precaución
de que la caracterı́stica evaluada no haya sido utilizada durante el entrenamiento de
inmersión.

Una primera intuición acerca de que las inmersiones conseguidas mantienen las es-
tructuras semánticas (concretamente, el tipo de cada nodo) la podemos obtener ana-
lizando cómo se distribuyen los diversos tipos en el espacio vectorial sobre el que se
ha hecho la inmersión. Por ejemplo, la figura 5.18 muestran dos proyecciones de una
sección del grafo TMDb. La representación de la izquierda muestra una selección alea-
toria de los vectores asociados a los nodos de tipo Movie y Actor haciendo uso de una
inmersión en un espacio de dimensión 200, que por motivos de interpretación ha sido
proyectada posteriormente sobre un espacio bidimensional haciendo uso de la técnica
Multi-Dimensional Scaling [?]. En la figura de la derecha se muestra la misma sección
del grafo por medio de una inmersión sobre un espacio de dimensión 2. Ambas repre-
sentación muestran que los tipos de los vectores asociados a los nodos del grafo TMDb
no se distribuyen aleatoriamente, sino que siguen ciertos patrones en su distribución, lo
cual evidencia que, en efecto, las diversas inmersiones del grafo contienen información
sobre los tipos de los nodos a pesar de que, como comentamos, la función τ nunca ha
sido utilizada en su construcción. También es destacable la influencia que puede tener
el parámetro Número de Dimensiones en el patrón buscado en las proyecciones de los
datos (QUIZÁS SOBRA LA GRÁFICA DE LA IZQUIERDA, SI QUERÍAMOS VER
QUE EXISTÍA UN PATRÓN, BASTABA CON EL DE LA DERECHA).

181
Figura 5.18: Representaciones bidimensionales de los vectores asociados a los nodos de
tipo Movie y Actor en TMDb.

LAS GRÁFICAS TIENEN QUE MEJORARSE, HAY QUE INDICAR EN LOS


EJES QUÉ SE ESTÁ REPRESENTANDO... Y ESTO ES IMPORTANTE PARA EL
ARTÍCULO TAMBIÉN

Además de la libertad de elección en los parámetros que intervienen en la codifi-


cación neuronal, encontramos algunos grados de libertad más al decidir qué máquina
de aprendizaje se usará posteriormente para clasificar las proyecciones de los nodos del
grafo. Como primera aproximación, y a pesar de la alta carga computacional que de-
manda, se ha realizado un estudio exhaustivo de los parámetros libres de la inmersión
presentados en la sección 5.5 haciendo uso del método de clasificación de los k Vecinos
Más Cercanos (k-Nearest Neighbors, kNN) [?] para encontrar los valores óptimos de la
inmersión que permiten una mejor predicción de los tipos de nodos para cada dataset.

Posteriormente, y a modo de comparación, fijando los parámetros de dicha inmer-


sión, pasaremos a analizar la capacidad predictiva de otros métodos de clasificación
automática sobre la misma tarea, concretamente, trabajaremos con Redes neuronales
artificiales (ANNs), kNN y Random Forest (RF).

En la Figura 5.19 se muestran los resultados del estudio exhaustivo de los parámetros
de la inmersión para los tres grafos con propiedades presentados en la sección 5.6.2 con
respecto a la capacidad de predicción de tipos en los nodos haciendo uso del método
kNN. Dicho estudio muestra que la metdologı́a propuesta es válida para predecir los
tipos de nodos en los tres grafos con propiedades presentados consiguiendo tasas de
predicción superiores al 70 % para todos los conjuntos de datos estudiados.

182
Para los grafos con propiedades analizados, se cumple que el tamaño del conjun-
to de entrenamiento N óptimo para realizar la predicción automática de los tipos de
nodo es porporcional al número de nodos en el grafo. EICH requiere un conjunto de
entrenamiento de tamaño 300.000 para obtener una tasa de predicción de los tipos de
nodo óptima de ' 83 %. En el caso de TMDb, se requiere un conjunto de entrenamiento
de tamaño 400.000 para obtener una tasa de predicción óptima de ' 72 %. WordNet
sin embargo, presenta una tasa de predicción óptima superior a 96 % con un tamaño
del conjunto de entrenamiento superior a 1.000.000. Tanto EICH como TMDb (para
WordNet no conocemos el valor óptimo) muestran una reducción en la tasa de predic-
ción a partir del valor óptimo, esto puede deberse a un sobreajuste relacionado con la
existencia de nodos de diferentes tipos que poseen la misma etiqueta.

La inmersión de grafos con propiedades en espacios vectoriales continuos propuesta


requiere un bajo número de dimensiones (D) para permitir predecir correctamente los
tipos de nodos en los conjuntos de datos estudiados (15 dimensiones). Se aprecia una
mejora en la tasa de predicción cuando aumentamos el número de dimensiones de la
inmersión pero ésta es casi imperceptible.

El estudio del parámetro tamaño de la ventana de selección muestra que se requieren


valores pequeños de este parámetro para obtener buenos resultados prediciendo el tipo
asociado a los nodos y que además, este valor es proporcional al número de nodos en
el grafo con propiedades (para los conjuntos de datos analizados). Bajo las condiciones
analizadas, en el caso de Wordnet a partir de un tamaño de ventana de selección de
valor 8 la eficiencia en la predicción apenas varı́a, para EICH el tamaño de ventana ideal
es 2 y para TMDb es 3. Es importante señalar que la mejor predicción no se consigue en
ningún caso con un tamaño de la ventana de selección igual a 1, ya que esto supondrı́a
que el sistema no necesita recibir pares nodo-contexto como elementos del conjunto de
entrenamiento si no que bastarı́a con mostrarle instancias de las relaciones/propiedades
presentes en cada nodo.

Una vez obtenidos los parámetros óptimos de la inmersión (Tabla 5.3) para cada
conjunto de datos bajo estudio procedemos ahora a hacer uso de inmersiones realizadas
con dichos parámetros para cada grafo con propiedades estudiado. En concreto vamos
a realizar tareas de clasificación automática de los nodos según su tipo haciendo uso
de tres métodos de clasificación automática: kNN, RF y ANN. Recordemos que una
metodologı́a como la presentada aquı́ para clasificar los tipos de nodo (aproximación
de la función τ ), podrı́a ser realizada para predecir de manera automática el valor de

183
Cuadro 5.3: Parámetros ótpimos de inmersión obtenidos para cada dataset estudiado.
Tam. Conjunto Entrenamiento Num. Dimensiones Tam. ventana
TMDb 400.000 150 3
WordNet 1.000.000 50 8
EICH 300.000 20 2

cualquier propiedad asociada a los nodos (aproximación de la función µ).

En la Figura 5.20 se muestran los resultados obtenidos a la hora de tratar de clasificar


automáticamente a los nodos según su tipo para cada uno de los datasets presentados
en la sección 5.6.2 haciendo uso de tres métodos diferentes de clasificación automática.
Dichas tareas de clasificación se han realizado tras haber llevado a cabo inmersiones de
los mismos utilizando sus parámetros óptimos presentados en la tabla 5.3. Los paráme-
tros bajo estudio en cada gráfica son los siguientes: En la gráfica situada en la esquina
superior izquierda se presenta el estudio de la capacidad de clasificación automática
sgún el tipo de nodo por parte de el método kNN, el parámetro bajo estudio en este
caso es el valor k, el cual determina cuántos vecinos se tienen en cuenta a la hora de
clasificar un elemento determinado. En la gráfica situada en la esquina superior derecha
se presenta el estudio de la capacidad de clasificación automática sgún el tipo de nodo
por parte de el método RF, el parámetro bajo estudio en este caso es el número de
árboles que componen el ensemble. Por último, en la gráfica situada en la zona inferior
se presenta el estudio de la capacidad de clasificación automática sgún el tipo de nodo
por parte una red neuronal con una única capa oculta, el parámetro bajo estudio en
este caso es el número de neuronas en la capa oculta.

A priori, ninguno de los métodos estudiados supera la capacidad de predicción del


método kNN, esto puede deberse a que la selección de los parámetros óptimos para
la inversión se ha realizado utilizando el método kNN como evaluador. Cabe destacar
que el método kNN consigue muy buenos resultados a la hora de realizar clasificación
automática supervisada pero como contrapartida el coste computacional que implica es
elevado. De manera global (teniendo en cuenta los tres datasets estudiados), los mejores
valores de k para utilizar kNN como método de predicción automática de los tipos de
nodos son pequeños (comprendidos en el intervalo entre 3 y 13). El método RF obtiene
resultados muy similares a los que se consgiuen con kNN pero siempre se mantienen por
debajo de éstos (la diferencia de eficiencia en la predicción en todos los casos es ≤ 2 %),

184
Cuadro 5.4: Matriz de confusión resultante de la predicción de tipos de nodo en Word-
Net.
adjective verb noun adverb
adjective 90.01 % 1.75 % 8.2 % 0.05 %
verb 0.44 % 88.36 % 11.19 % 0.0 %
noun 0.2 % 1.56 % 98.23 % 0.01 %
adverb 10.16 % 1.63 % 29.27 % 58.94 %

Cuadro 5.5: Matriz de confusión resultante de la predicción de tipos de nodo en TMDb.


Director Movie Genre Studio Actor
Director 11.45 % 9.54 % 0.02 % 1.48 % 77.51 %
Movie 6.51 % 65.8 % 0.02 % 0.29 % 27.37 %
Genre 9.66 % 33.79 % 2.07 % 3.45 % 51.03 %
Studio 9.66 % 8.49 % 0.01 % 1.23 % 80.61 %
Actor 5.77 % 7.87 % 0.0 % 0.7 % 85.66 %

además el método RF requiere un número bajo de árboles para lograr buenos resultados
en la predicción de los tipos de nodo: A partir de 20 árboles se consiguen resultados muy
cercanos a los obtenidos con kNN, apartir de dicho valor, la eficiencia en la predicción
mejora pero de manera casi imperceptible, en este caso RF mantiene las mismas tasas
de predicción a partir de 100 árboles. COMENTAR COMO SE COMPORTA ANN
CUANDO ESTÉ LISTO.

Con el objetivo de evaluar la metodologı́a de predicción de tipos de nodos propuesta


se muestran matrices de confusión promediadas tras realizar 10 experimentos utilizando
los parámetros óptimos de la inmersión para cada dataset y el método kNN: TMDb
(Tabla 5.5), EICH (Tabla 5.7) y WordNet (Tabla 5.4). Observando las matrices de
confusión se detecta que la metodologı́a propuesta para realizar inmersiones de los nodos
de un grafo con propiedades en espacios vectoriales captura las similitudes entre los
tipos de nodo: En EICH, por ejemplo, Canton, P arroquia y P rovincia muestran un
comportamiento solapado debido a que todos ellos representan información geoespacial.
En TMDb ocurre algo similar, ACT OR y DIRECT OR aparecen relacionados debido
a que, como se comento anteriormente, existen numerosos nodos en esta base de datos
que son actores y directores al mismo tiempo.

185
Los experimentos realizados en cuanto a la predicción automática de los tipos de
nodo en los grafos presentados muestran que la metodologı́a propuesta permite obtener
una representación continua de los nodos de un grafo con propiedades que contiene infor-
mación sobre los tipos de nodo, incluso cuando el comportamiento de la función τ (que
contiene la información sobre los tipos) nunca ha sido accesible por el sistema. Además,
la inmersión captura las similitudes semánticas entre los diferentes tipos de nodo, esto
demuestra que, bajo las condiciones presentadas, la metodologı́a propuesta realiza una
inmersión de un grafo con propiedades en un espacio vectorial continuo manteniendo la
información semántica sobre los nodos, y mas aún, capturando las similitudes semánticas
entre éstos.

Predicción de Tipos de Aristas.

De forma similar a como hemos realizado un estudio de la bondad de las inmersiones


para la predicción de los tipos de nodos del grafo original, procedemos ahora a realizar
ahora un estudio orientado a determinar la bondad que tienen para la predicción de los
tipos de las aristas, que tampoco han sido usados en el proceso de entrenamiento de la
codificadora neuronal.

Para ver que realmente la proyección de las aristas también presenta patrones respec-
to de los tipos de las mismas, en la figura 5.21 se muestra una proyección bidimensional
(obtenida también aplicando el método Multidimensional Scaling [?]) de un conjunto
de aristas seleccionadas aleatoriamente del conjunto de datos TMDb. Nótese que, en la
proyección usada, las aristas de tipo Genre no forma un único cluster, sino que parece
estar conformado por un conjunto de clústers periféricos que corresponden a aristas de
tipo Genre cuyos nodos de destino son Action, Comedy, Drama, Documentary, Horror
y Crime.

EN GENERAL EN LAS GRÁFICAS HAY QUE CAMBIAR ALGUNOS COLO-


RES.... LAS DOS GAMAS DE VERDE SON DIFICILES DE DIFERENCIAR

En la Figura 5.22 se muestran los resultados de la eficiencia de kNN (CON QUÉ K???)
respecto a cambios en los parámetros de la inmersión. Teniendo en cuenta que el por-
centaje de acierto está por encima del 80 % en todos los conjuntos de datos estudiados
(incluso superando el 95 % en alguno de ellos), podemos concluir que la metodologı́a
seguida para la inmersión mantiene las propiedades semánticas también respecto de las

186
aristas.

En general, podemos observar que el tamaño del conjunto de entrenamiento nece-


sario para obtener buenos resultados a la hora de predecir aristas es muy superior al
requerido para realizar una buena predicción de los tipos de nodo (por encima de 3000k
MIRARRRRRRRRRRRR para todos los datasets bajo estudio). ESTO ES FALSO!!!!.
Además, observando los resultados descubrimos que a pesar de que WordNet es el grafo
con propiedades que mejores resultados ofrecı́a a la hora de predecir el tipo de los nodos
en la representación vectorial del grafo, en el caso de la predicción de aristas, el grafo
con propieades que consigue una mejor predicción es EICH, logrando tasas con un valor
' 97 % para parámetros óptimos de la inmersión.

Al igual que en el caso de la predicción de los tipos de nodo, la inmersión de grafos


con propiedades en espacios vectoriales continuos propuesta requiere un bajo número
de dimensiones (D) para permitir predecir correctamente los tipos de arista en los
conjuntos de datos estudiados (15 dimensiones). Se aprecia una mejora en la tasa de
predicción cuando aumentamos el número de dimensiones de la inmersión pero ésta es
casi imperceptible.

Observando la gráfica que muestra el comportamiento en la predicción de tipos


de arista según el tamaño de la ventana de selección observamos que es requerido un
tamaño bastante más elevado que el requerido para realizar una buena predicción en
los tipos de nodo (superior a 20). Es importante señalar que, al igual que en el caso
de la predicción de tipos de nodo, la mejor predicción no se consigue en ningún caso
con un tamaño de la ventana de selección igual a 1, esto evidencia que muestrear los
contextos locales de un nodo consigue mejores resultados que el que se podrı́a conseguir
capturando sólo las relaciones binarias entre los nodos que ofrecen las aristas.

En la Figura 5.24 se muestran los resultados obtenidos a la hora de tratar de clasificar


automáticamente las aristas según su tipo para cada uno de los datasets presentados
en la sección 5.6.2 haciendo uso de los mismos tres métodos de clasificación automática
utilizados en el apartado anterior. Dichas tareas de clasificación se han realizado tras
haber llevado a cabo inmersiones de los mismos utilizando sus parámetros óptimos
presentados en la tabla 5.3. Los parámetros bajo estudio en cada gráfica son los mismos
que fueron presentados en el apartado anterior: En la gráfica situada en la esquina
superior izquierda se presenta el estudio de la capacidad de clasificación automática
sgún el tipo de arista por parte del método kNN, el parámetro bajo estudio vuelve a

187
ser el valor de k. En la gráfica situada en la esquina superior derecha se presenta el
estudio de la capacidad de clasificación automática sgún el tipo de arista por parte del
método RF, el parámetro bajo estudio vuelve a ser el número de árboles que componen
el ensemble. Por último, en la gráfica situada en la zona inferior se presenta el estudio de
la capacidad de clasificación automática sgún el tipo de nodo por parte una red neuronal
con una única capa oculta, el parámetro bajo estudio es el número de neuronas en dicha
capa.

Al igual que ocurre en el caso de la predicción del tipo de nodo, en el caso de la pre-
dicción del tipo de aristas también es el método kNN el que consigue mejores resultados,
para tratar de explicar este hecho se podrı́an considerar las mismas observaciones reali-
zadas en la Sección 5.6.3. De nuevo, el valor óptimo (teniendo en cuenta los 3 datasets
bajo estudio) de k para el método kNN es 3. El método RF obtiene peores resultados
que los que se consgiuen con kNN. En el caso de TMDb, RF obtiene una predicción
muy similar a la obtenida con kNN (con una diferencia ≤ 1 %), pero en el caso de EICH
y WordNet las diferencias de eficiencia en la predicción entre el método kNN y RF son
7 % y 5 % respectivamente. El método RF requiere un número de árboles para lograr
buenos resultados en la predicción de los tipos de aristas superior al que se requiere para
obtener buenas predicciones en el caso de la preidcción de los tipos de nodo: A partir
de 40 árboles se consiguen resultados muy cercanos a los obtenidos con kNN, a partir
de dicho valor, la eficiencia en la predicción mejora pero de manera casi impercepti-
ble, de nuevo, a partir de 100 árboles la mejora en la predicción es casi imperceptible.
COMENTAR COMO SE COMPORTA ANN CUANDO ESTÉ LISTO.

Con el objetivo de evaluar la capacidad de predicción del tipo de una relación y la


similitud capturada entre diferentes tipos se aristas se muestran matrices de confusión
obtenidas tras promediar 10 experimentos para cada grafo con propiedades haciendo uso
de los parámetros óptimos obtenidos anteriormente y del método kNN: TMDb (Tabla
5.6), EICH (Tabla 5.8), WordNet (Tabla 5.9). Analizando dichas matrices podemos dar-
nos cuenta de que la inmersión propuesta captura similitudes entre los tipos de aristas:
En el caso de EICH por ejemplo, los tipos de aristas relacionados con información geos-
pacial muestran un comportamiento solapado junto con las aristas de tipo LEN GU A,
esto se debe a que una lengua particular del territorio ecuatoriano se encuentra ubicada
normalmente en una zona geográfica determinada del terriorio. La matriz de confusión
con respecto a la clasificación automñatica de los tipos de aristas en WordNet muestra
un comportamiento similar, por ejemplo, los tipos de aristas hypernym y hyponim se

188
Cuadro 5.6: TMDb confusion matrix for link type prediction
GENRE DIRECTED STUDIO ACTS IN
GENRE 99.51 % 0.02 % 0.21 % 0.26 %
DIRECTED 0.01 % 15.28 % 2.04 % 82.67 %
STUDIO 0.13 % 7.22 % 62.87 % 29.79 %
ACTS IN 0.01 % 4.75 % 0.94 % 94.3 %

muestran relacionadas debido a que tienen un significado similar.

189
(a) En función del tamaño del conjunto de entrenamiento.

(b) En función del número de dimensiones.

(c) En función del tamaño de la ventana de selección.

Figura 5.19: Estudio exhaustivo de los parámetros de la inmersión con respecto a la


capacidad en la predicción de los tipos de190
nodo.
(a) k-Nearest Neighbor.

(b) Random Forest.

(c) Red Neuronal Artificial.

Figura 5.20: Estudio de la capacidad de clasificación automática de los nodos según su


tipo a través de diferentes métodos. 191
Figura 5.21: TMDb link vectors in a 2-dimensional representation. MIRAR DETENI-
DAMENTE

192
(a) En función del tamaño del conjunto de entrenamiento.

(b) En función del número de dimensiones.

(c) En función del tamaño de la ventana de selección.

Figura 5.22: Estudio exhaustivo de los parámetros de la inmersión con respecto a la


capacidad en la predicción de los tipos de193
arista.
(a) k-Nearest Neighbor.

(b) Random Forest.

(c) Red Neuronal Artificial.

Figura 5.23: Estudio de la capacidad de clasificación automática de las aristas según su


tipo a través de diferentes métodos.

194
Cuadro 5.7: EICH confusion matrix for node type prediction
Subambito Provincia Comunidad Anexos Herramienta Canton Lengua Inmaterial Ambito Parroquia DetalleSubambito
Subambito 14.53 % 0.0 % 0.0 % 2.56 % 0.0 % 0.0 % 0.0 % 47.86 % 0.0 % 0.85 % 34.19 %
Provincia 0.0 % 7.14 % 2.04 % 0.0 % 0.0 % 69.39 % 5.1 % 1.02 % 0.0 % 15.31 % 0.0 %
Comunidad 0.0 % 0.0 % 0.0 % 7.91 % 0.0 % 1.44 % 0.0 % 25.18 % 0.0 % 65.47 % 0.0 %
Anexos 0.0 % 0.0 % 0.0 % 81.16 % 0.0 % 0.0 % 0.0 % 18.63 % 0.0 % 0.21 % 0.0 %
Herramienta 0.0 % 0.0 % 0.0 % 0.68 % 36.99 % 0.0 % 0.0 % 62.33 % 0.0 % 0.0 % 0.0 %
Canton 0.0 % 3.74 % 0.1 % 5.27 % 0.0 % 12.18 % 0.0 % 24.26 % 0.0 % 54.27 % 0.19 %
Lengua 0.0 % 0.0 % 0.0 % 6.25 % 0.0 % 0.0 % 0.0 % 21.25 % 0.0 % 72.5 % 0.0 %
Inmaterial 0.01 % 0.0 % 0.0 % 9.44 % 0.19 % 0.0 % 0.01 % 89.77 % 0.0 % 0.56 % 0.01 %
Ambito 44.0 % 0.0 % 0.0 % 0.0 % 0.0 % 0.0 % 0.0 % 28.0 % 0.0 % 0.0 % 28.0 %
Parroquia 0.02 % 0.42 % 0.08 % 2.34 % 0.02 % 2.11 % 0.35 % 29.67 % 0.0 % 64.82 % 0.18 %
DetalleSubambito 1.63 % 0.0 % 0.0 % 5.42 % 0.0 % 0.18 % 0.0 % 49.37 % 0.0 % 4.52 % 38.88 %

Cuadro 5.8: EICH confusion matrix for link type prediction


CANTON LOC COMUNIDAD LOCALIZACION HERRAMIENTA PARROQUIA LOC ANEXO SUBAMBITO PERTENECE LENGUA AMBIT
CANTON LOC 25.05 % 1.94 % 12.62 % 0.0 % 26.8 % 6.99 % 0.0 % 22.91 % 3.69 %
COMUNIDAD 0.0 % 97.92 % 0.18 % 0.0 % 0.09 % 0.37 % 0.0 % 1.4 % 0.04 %
LOCALIZACION 0.0 % 0.12 % 96.77 % 0.04 % 1.08 % 1.51 % 0.0 % 0.33 % 0.15 %
HERRAMIENTA 0.0 % 0.0 % 1.49 % 44.03 % 2.24 % 48.51 % 0.0 % 3.73 % 0.0 %
PARROQUIA LOC 0.89 % 0.99 % 13.95 % 0.02 % 59.11 % 3.34 % 0.0 % 19.2 % 2.45 %
ANEXO 0.14 % 0.14 % 0.49 % 0.02 % 2.46 % 95.87 % 0.0 % 0.73 % 0.11 %
SUBAMBITO PERTENECE 0.81 % 0.0 % 10.57 % 0.0 % 8.13 % 9.76 % 30.89 % 14.63 % 5.69 %
LENGUA 0.0 % 1.06 % 0.09 % 0.0 % 0.01 % 0.39 % 0.0 % 98.34 % 0.1 %
AMBITO 0.01 % 0.04 % 0.28 % 0.01 % 0.04 % 1.9 % 0.0 % 2.38 % 95.33 %
DSUBAMBITO PERTENECE 0.18 % 0.18 % 1.96 % 0.0 % 2.67 % 3.21 % 0.89 % 22.46 % 7.66 %

Cuadro 5.9: WordNet confusion matrix for link type prediction


hypernym domain region part meronym domain category part holonym domain usage also member meronym instance hyponym domain member us
hypernym 83.67 % 0.01 % 1.14 % 0.76 % 0.43 % 0.02 % 0.56 % 1.96 % 0.13 % 0.02 %
domain region 2.08 % 65.58 % 25.0 % 0.33 % 0.93 % 0.0 % 0.21 % 3.27 % 0.24 % 0.0 %
part meronym 29.21 % 0.74 % 44.47 % 1.1 % 3.54 % 0.01 % 0.79 % 4.12 % 0.34 % 0.0 %
domain category 14.88 % 0.02 % 1.19 % 78.91 % 0.11 % 0.01 % 0.44 % 0.18 % 0.04 % 0.0 %
part holonym 15.53 % 0.09 % 3.28 % 0.34 % 45.36 % 0.01 % 0.78 % 2.25 % 1.24 % 0.0 %
domain usage 4.28 % 0.0 % 0.06 % 0.39 % 0.03 % 93.41 % 0.99 % 0.06 % 0.0 % 0.0 %
also 8.0 % 0.0 % 0.38 % 0.43 % 0.19 % 0.03 % 78.0 % 1.92 % 0.07 % 0.01 %
member meronym 11.7 % 0.18 % 1.76 % 0.2 % 0.77 % 0.0 % 0.93 % 50.72 % 0.21 % 0.0 %
instance hyponym 2.47 % 0.06 % 0.87 % 0.05 % 1.81 % 0.0 % 0.2 % 0.53 % 80.42 % 0.0 %
domain member usage 1.1 % 0.0 % 0.03 % 0.03 % 0.14 % 0.0 % 1.13 % 0.09 % 0.06 % 93.62 %
member holonym 11.24 % 0.05 % 0.67 % 0.09 % 1.83 % 0.0 % 0.91 % 14.01 % 0.21 % 0.0 %
hyponym 10.52 % 0.01 % 0.42 % 0.31 % 1.18 % 0.02 % 0.57 % 1.23 % 1.18 % 0.01 %
Los resultados experimentales correspondientes a la clasificación automática de las
aristas según su tipo muestran que, para los conjuntos de datos presentados, la me-
todologı́a propuesta para realizar inmersiones de grafos con propiedades en espacios
vectoriales conserva la semántica asociada a los tipos de relaciones incluso cuando la
función τ nunca ha sido consumida por el sistema, mas aún, dichos resultados muestran
que la inmersión presentada es capaz de detectar similitudes semánticas entre los tipos
de aristas.

PROBLEMA CON EL TIPO: Experimento que se tendrı́a que haber hecho: dados
dos nodos y una arista entre ellos, determinar el tipo de esa arista.... pero no tomar la
arista, es decir, entre s y t puede haber dos aristas, l1 de tipo 1 y l2 de tipo 2, si tomo
l1 , y el predictor me dice que es de tipo 2, no se ha producido un error... es un problema
del solapamiento. El error se produce si me da un tipo que no corresponde a ninguna
arista entre ellos.

5.6.4. Predicción de Aristas. CAMBIAR NOMBRE

Para seguir poniendo a prueba la bondad de las inmersiones que conseguimos respec-
to a la semántica interna de los grafos, vamos a evaluar hasta qué punto somos capaces
de predecir relaciones faltantes haciendo uso de las inmersiones. Para poner a prueba
esta idea consideraremos un subconjunto de aristas, E 0 ∈ E, que pertenecen al grafo
original G = (V, E, τ, µ) y que posteriormente eliminaremos, consiguiendo un subgrafo
del anterior, G0 = (V, E \ E 0 , τ, µ), sobre el que entrenaremos la inmersión. Posterior-
mente, trataremos de obtener el nodo destino asociado a cada arista en E 0 sólo a partir
de los nodos origen de las mismas y de π(G0 ).
Definition 36. Dado un grafo con propiedades G = (V, E, τ, µ), el vector representante
asociado a un tipo de arista ω ∈ τ (E), π(ω) es el vector promedio de todos los vectores
que representan a aristas de tipo ω. Si denotamos Eω = τ −1 ({ω}) = {l ∈ E : τ (l) = ω},
entonces:

1 X
π(ω) = π(l)
#(Eω ) l∈E
ω

El vector representante de cada tipo de arista será la herramienta que utilizaremos

196
para tratar de obtener el nodo destino de las relaciones faltantes, más concretamente,
proyectaremos dicho vector sobre el nodo origen de la relación faltante. Dada una rela-
ción l = (s, t) ∈ E 0 y dado el tipo de la relación τ (l) que ha sido eliminada de manera
previa a la inmersión del grafo, trataremos de obtener t a partir de π(G0 ), τ (l) y s. De
acuerdo con [?] esta tarea (obtener el target de una relación dado el nodo origen y el tipo
de la misma) es denominada Entity Retrieval. La proyección del vector representante de
la relación sobre el vector asociado al nodo origen quedarı́a:

π(tl ) = π(s) + π(τ (l))

El vector π(tl ) representa la posición a la que apunta el vector representante de τ (l)


desde el vector que representa a el nodo origen π(s) de la relación l. Una vez obtenido
el vector π(tl ) podemos obtener un ranking para los nodos V del grafo. Dicho ranking
vendrá dado por las distancias a π(tl ) de cada vector asociado a los nodos del grafo
original G, de tal manera que los nodos que más cerca se encuentren del vector π(tl )
serán posicionados en las primeras posiciones de dicho ranking.

En la tabla 5.10 se muestran los diez primeros resultados del ranking obtenido tras
aplicar Entity Retrieval a través del vector representante, π(hypernym), de las relaciones
de tipo hypernym a diferentes nodos origen del grafo WordNet, los resultados están
filtrados de tal manera que sólo se muestran los nodos de tipo NOUN.

Debido a que en la metodologı́a presentada la manera de construir el conjunto de


entrenamiento que será utilizado para construir la representación vectorial de un grafo
con propiedades se realiza sampleando de manera aleatoria diferentes contextos locales
del grafo, es posible que en algunos casos, el nodo origen de la relación no haya sido
sampleado en ningún momento y por tanto no exista la representación vectorial π(s)
del nodo origen s de la relación l. En estos casos dicha arista no podrá ser evaluada y
no influirá en el resultado experimental obtenido.

Realizaremos experimentos relacionados con predicción de aristas siguiendo la meto-


dologı́a presentada en este apartado sobre los datasets presentados en la Sección 5.6.2.
Para evaluar la bondad del método de predicción de aristas presentado, haremos uso
de la métrica Mean Reciprocal Rank, una métrica habitual en el área de Information
Retrieval, y que ha sido utilizada en varios estudios de este tipo [?][?], además el uso
de esta métrica nos permitirá comparar los resultados obtenidos con la metodologı́a

197
Cuadro 5.10: Rankings obtenidos al aplicar Entity Retrieval a través del vector repre-
sentante de la relación hypernym sobre diferentes nodos del grafo WordNet.
foam spasm justification neconservatism
1 hydrazine ejection reading pruritus
2 pasteboard rescue explanation conservatism
3 silicon dioxide putting to death analysis sight
4 humate sexual activity proposition hawkishness
5 cellulose ester behavior modification religious doctrine coma
6 synthetic substance disturbance accusation scientific method
7 silver nitrate mastectomy assay autocracy
8 cast iron sales event confession judiciousness
9 sulfide instruction research reverie
10 antihemorrhagic factor debasement discouragement racism

presentada con los obtenidos en estudios similares.


Definition 37. Mean Reciprocal Rank (MRR) es una medida para evaluar cualquier
proceso que produce una lista de posibles respuestas a un conjunto de consultas deter-
minadas, ordenadas según el grado de probabilidad de ser la respuesta correcta a una
consulta determinada. El Reciprocal Rank asociado a un resultado concreto en una lista
de posibles respuestas dada una consulta es el inverso de la posición que ocupa en dicha
lista. El MRR es el promedio de los Reciprocal Ranks de todos los resultados en la lista
asociada a una consulta determinada:

|Q|
1 X 1
M RR =
|Q| i=1 ranki
Done Q representa el conjunto de consultas a evaluar y ranki la posición que ocupa en
cada ranking la respuesta correcta.

En la Figura 5.24 se muestran resultados evaluados mediante la métrica MRR sobre


los datasets EICH y TMDb (A LA ESPERA DE QUE SALGAN LOS RESULTADOS
PARA WORDNET Y DE PODER COMPARAR CON LOS OTROS ESTUDIOS). En
la figura de la izquierda se observa la capacidad de realizar Entity Retrieval con respecto
al tamaño N del conjunto de entrenamiento utilizado para realizar la inmersión del grafo

198
filtrando los nodos destino, es decir, eliminando del ranking aquellos nodos que no son
del tipo que indica el nodo destino del tipo de relación evaluada. En la figura de la
derecha se muestra el resultado de Entity Retrieval evaluado mediante la métrica MRR
sin filtrar los nodos destino, es decir sin hacer nigún tipo de filtro sobre el ranking
obtenido.

(a) Filtrando tipos de nodo destino. (b) Sin Filtrar tipos de nodo destino.

Figura 5.24: Estudio de la capacidad link prediction según el tamaño del conjunto de
entrenamiento utilizado para la inmersión.

Como puede observarse, y a falta de realizar un estudio más exhaustivo el método


presentado obtiene excelentes resultados prediciendo el nodo destino de un tipo de
relación dado su origen tanto en EICH como en TMDb, en ambos casos (filtrando
los nodos destino) se consiguen valores de MRR superiores al 22 %, concretamente en el
caso de EICH se consiguen valores cercanos al 50 % para un conjunto de entrenamiento
de tamaño superior a 3M.

El hecho de que se consigan buenas predicciones de el nodo destino proyectando


el vector representante de un tipo de relacion sobre su origen, nos permite obtener
ciertas conclusiones sobre la estructura que los diferentes vectores (asociados a nodos
y a relaciones) forman en la nueva representación RD : Si el vector representante sirve
para obtener el nodo destino de una relación significa que existe poca desviación entre
las aristas del mismo tipo. Por otro lado, los nodos origen y los nodos destino de dicho

199
tipo de relación deben estar lo suficientemente dispersos para que utilizando el vector
representante se consiga obtener buenos resultados en cuanto a Entity Retrieval.

5.6.5. Inmersión de traversals

Por último, presentamos una técnica basada en la inmersión de grafos con propie-
dades en espacios vectoriales para obtener el nodo destino de un traversal dado el tipo
de traversal y el nodo origen del mismo.
Definition 38. Un camino P en un grafo G = (V, E) es una sucesión P = n1 , l1 , . . . , lk−1 , nk
alternada de nodos y aristas, de tal manera que la arista li conecta el nodo ni y el nodo
ni+1 : li = (ni , ni+1 ). Decimos que el camino P conecta el nodo n1 (nodo origen) y el
nodo nk (nodo destino) y tiene logitud k − 1.
Definition 39. Un traversal, T , es una sucesión (t1 , r1 , t2 , r2 , . . . , rq , tq+1 ), donde ti ∈ Ω
es un tipo válido para los nodos (∃n ∈ V tal que τ (n) = ti ) y ri ∈ Ω es un tipo válido
para las aristas (∃l ∈ E tal que τ (l) = ri ).

En las condiciones anteriores, podemos definir la aplicación de un traversal sobre un


grafo multi-relacional (y por extensión, sobre un grafo con propiedades) de la siguiente
forma:
Definition 40. Si T = (t1 , r1 , t2 , r2 , . . . , rq−1 , tq ) es un traversal, una aplicación, A, de
T sobre un grafo multi-relacional, G = (V, E, τ ), es el conjunto de caminos P1 , ..., P|A|
en el grafo G, donde cada camino P = n1 , l1 , . . . , lq−1 , nq en A cumple:

1. ∀1 ≤ i ≤ q(τ (ni ) = ti ).

2. ∀1 ≤ i ≤ q(τ (li ) = ri ).

La intención del método presentado es obtener el nodo destino de un traversal exis-


tente dado el nodo origen del mismo. En este caso no eliminamos los traversals antes
de realizar la inmersion pues no tratamos de hacer predicción sino de ofrecer un nuevo
mecanismo para la obtención del nodo destino de un traversal a partir del nodo ori-
gen que permita mejorar los tiempos que requieren este tipo de consultas, ya que en

200
los sistemas tradicionales éstas tienen un coste computacional elevado. Recordemos que
trabajar con la inmersión vectorial de un grafo conlleva trabajar únicamente con opera-
ciones vectoriales y éstas, como se comentó anteriormente, son de uso extendido en las
actuales unidades de cálculo (procesadores y GPUs).

Definition 41. El vector representante π(P ) de un camino, P = n1 , l1 , . . . , lk−1 , nk ,


en un grafo con propiedades G = (V, E, τ, µ) es el vector que separa la representación
vectorial del nodo origen del camino, π(n1 ), y la representación vectorial del nodo destino
del mismo, π(nk ):
−−−−−−−→
Dado un camino P = n1 , l1 , . . . , lk−1 , nk , entonces π(P ) = π(n1 )π(nk ) = π(nk ) −
π(n1 )

El vector representante π(T ) asociado a un traversal, T , dado un grafo con propie-


dades G = (V, E, τ, µ) es el vector promedio de todos los vectores que representan a los
caminos, P , resultantes de aplicar el traversal T sobre el grafo G.

Definition 42. Dado un traversal T cuya aplicación sobre un grafo con propiedades,
G, resulta en un conjunto de caminos F = P1 , ..., P|F | , entonces el vector representante
π(T ) de T es:

|F |
1 X π(Pi )
π(T ) =
|F | i=1 |F |

Por los mismos motivos expuestos en el apartado anterior, es posible que en algunos
casos, el nodo origen, n1 , de un camino, P , no haya sido sampleado en ningún momento
de la inmersión y por tanto no exista la representación vectorial, π(n1 ), del nodo origen
de P . En estos casos dicho camino no podrá ser evaluado y no influirá en el resultado
experimental obtenido.

Siguiendo estas definiciones se ha procedido a realizar experimentos para evaluar la


capacidad que existe de obtener el nodo destino de un traversal dado el nodo origen y
el vector representante de dicho traversal, para ello se ha evaluado filtrando los nodos
destino según el tipo indicado por el último elemento de la secuencia que define el
traversal y utilizando de nuevo la métrica MRR presentada en el apartado anterior.

201
Los experimentos han sido realizados sobre el dataset EICH debido a que presenta una
estructura más compleja en sus tipos qe el resto de datasets y permite la construcción
de traversals más complejos.

En la figura 5.25 se muestran los resultados obtenidos a la hora de predecir los nodos
destino de dos tipos de traversals presentes en el grafo EICH:

1. El traversal denominado T 1 corresponde a la siguiente secuencia: Inmaterial,


AM BIT O, DetalleSubambito, DSU BAM BIT O P ERT EN ECE, Subambito, SU BAM BIT O P
Ambito. Dicho traversal posee longitud 3 y contiene información sobre a qué Am-
bito (existen 5 ámbitos diferentes en EICH) pertenece cada elemento del patri-
monio inmaterial almacenado en el grafo. El nodo origen del traversal es de tipo
Inmaterial y el nodo destino es de tipo Ambito.
2. El traversal denominado T 2 corresponde a la sguiente secuencia: Inmaterial,
LOCALIZACION , P arroquia, P ARROQU IA LOC, Canton, CAN T ON LOC,
P rovincia. Dicho traversal posee longitud 3 y contiene información sobre en
qué Provincia (existen 24 provincias diferentes en EICH) pertenece cada elemento
del patrimonio inmaterial almacenado en el grafo. El nodo origen del traversal es
de tipo Inmaterial y el nodo destino es de tipo P rovincia.

Figura 5.25: Estudio de la capacidad de obtención del nodo destino de un traversal dado
el tipo de traversal y el nodo origen según el tamaño del conjunto de entrenamiento
utilizado para la inmersión.

Observando la Figura 5.25 se puede apreciar que la capacidad de obtención del nodo
destino de un traversal tipo T 1 dado el nodo origen es elevada, cercana al 79 % para un

202
tamaño del conjunto de entrenamiento utilizado en la inmersión superior a 3M, además
con un tamaño del conjunto de entrenamiento superior a ese valor, la capacidad de
obtención del nodo destino se mantiene. En el caso del traversal T 2, sin embargo, su
resultado tiende a empeorar cuando aumentamos el tamaño del conjunto de entrena-
miento por encima de un umbral determinado: Habiendo realizado experimentos para
tamaños del conjunto de entrenamiento desde 1M hasta 10M obtenemos que la mejor
predicción se consigue para un tamaño 1M, obteniendo un resultado MRR cercano al
25 %. Esto puede ser debido a que hay ciertas provincias en Ecuador que tienen aso-
ciados pocos patrimonios inmateriales, esto hace que la probabilidad de ser sampleados
sea pequeña cuando el conjunto de entrenamiento es pequeño, pero que sı́ aparezcan
en la inmersión cuando el conjunto de entrenamiento es lo suficientemente grande, esto
unido a que estamos filtrando los nodos posibles según su tipo, puede hacer que al haber
más nodos de tipo provincia que son candidatos a ser seleccionados los resultados en la
obtención empeoren.

Una vez verificado que se consiguen buenas tasas en la predicción del nodo destino de
un traversal dado el nodo origen, un sistema como este podrı́a utilizarse para aproximar
el resultado de una consulta a larga distancia en una base daros. Recordemos que este
tipo de consultas son muy ineficientes en el caso de los sistemas claśicos de persistencia
por lo que la metodologı́a presentada en este apartado, debe ser considerada como una
alternativa para realizar este tipo de consultas, reduciendo la fiabilidad del resultado
pero agilizando enormemente sus cálculos.

5.6.6. Conclusiones y trabajo futuro

En este capı́tulo, hemos presentado una metodologı́a para realizar inmersiones semánti-
cas de grafos con propiedades en espacios vectoriales, la cual mantiene (hasta cierto
punto y bajo las condiciones presentadas) la estructura topológica (dada por las relacio-
nes existentes) y semántica (dada por los tipos de las relaciones y los nodos) presentes
en el grafo original.

ESTE PARRAFO ESTA PUESTO TAMBIEN EN LA INTRUDCCION DEL CA-


PITULO DE DEFINICIONES PRELIMINARES

La mayorı́a de métodos de aprendizaje automático existentes hasta el momento,

203
trabajan con datos de entrada dimensionales: elementos que están constituidos por una
serie de atributos prefijados, de tal forma que cada elemento perteneciente al conjunto
de entrenamiento posee los mismos atributos. Ası́, el conjunto de entrenamiento queda
constuido como una tabla en la que las filas representan cada ejemplo de entrenamiento
y las columnas sus atributos. La intención de este capı́tulo, y el anterior, es ofrecer la
posibilidad de llevar a cabo tareas de aprendizaje automático en la que el humano no
tiene la necesidad de indicarle al sistema cuáles son los atributos de los elementos a
tener en cuenta para llevar a cabo el aprendizaje. Si existe un elemento (un nodo) que
está inmerso en una base de datos (un grafo con propiedaes), la tarea de seleccionar
qué atributos de dicho elemento son adecuados para una tarea de aprendizaje automático
determinada puede ser muy complicada o en algunas ocasiones incluso imposible. El
método aquı́ presentado construye una representación vectorial de cada elemento en el
sistema a partir de toda la información presente en la red. De esta manera, evitamos
por un lado el trabajo manual de selección de los atributos a tener en cuenta, y por
otro, conseguimos que el algoritmo de aprendizaje a utilizar se alimente de toda la
información disponible en la base de datos para llevar a cabo su tarea.

A pesar de haber orientado las definiciones y los procesos a los grafos con pro-
piedades, todas las técnicas presentadas en este capı́tulo pueden ser trasladadas para
trabajar con grafos multi-relacionales, en ese caso, al no existir propiedades en los nodos,
los contextos que conformarán el conjunto de entrenamiento para entrenar el codificador
neuronal serán formados sólo a partir de los vecinos de un nodo dado. Hemos trabajado
con redes semánticas (grafos con propiedades) porque representan un modelo lo sufi-
cientemente general como para contener a muchos otros tipos de estructuras. Cualquier
base de datos puede ser modelada mediante un grafo con propiedaes, esto implica que
la metodologı́a presentada en este trabajo es válida para ser utilizada con cualquier tipo
de sistema de almacenamiento.

La inmersión presentada en este capı́tulo, puede ser utilizada para extraer informa-
ción semántica extra a partir de los clústers formados por las representaciones vectoriales
de los nodos y aristas de un grafo con propiedades. Un ejemplo de ello es la Tabla 5.10
en la que se evidencia que los nodos forman clústers semánticos que pueden ser utili-
zados para la extracción de información útil en cuanto a la cercanı́a de determinados
conceptos.

Durante la concepción de este trabajo, su implementación y experimentación han


ido abriéndose nuevos caminos que pueden ser tomados para el estudio y refinamiento

204
de las inmersiones presentadas, pasamos a describir ahora algunos de ellos: La manera
de construir el conjunto de entrenamiento que es consumido por el codificador neuronal
para obtener la representación vectorial de un grafo con propiedades ha sido totalmente
aleatoria, es decir, todos los nodos tienen la misma probabilidad de ser sampleados, al
igual que todas sus propiedades y vecinos. Ésta puede no ser la manera más adecuada
dependiendo del tipo de actividad que se desee realizar con la inmersión resultante.
En concreto, puede ser favorable construir el conjunto de entrenamiento de manera
que aquellos nodos que posean una mayor riqueza semántica tengan más probabilidad
de ser sampleados, ésto puede contribuir a que regiones inicialmente menos probables
de ser sampleadas compensen este hecho. Una metodologı́a que ha estado rondando
la cabeza de los investigadores durante el desarrollo de este trabajo, es el tratar de
construir una red neuronal que trabaje con los contextos de un elemento como entrada
(en formato one-hot) y aprenda a ofrecer una propiedad determinada de éste como salida
de la misma. También cabe destacar que queda abierta la posibilidad de trabajar con
propiedades continuas en los nodos y aristas, una caracterı́stica que no se ha presentado
en los datasets utilizados pero que ampliarı́a mucho la capacidad de la metodologı́a
presentada.

Es evidente que el tamaño del conjunto de entrenamiento y de la ventana de selección


influyen positivamente en la capacidad de predicción/obtención de la inmersión resul-
tante, pero estas influencias deben ser estudiadas a mayor profundidad, ya que pueden
arrojar claves para la automatización de los parámetros de la inmersión dado un grafo
con propiedades determinado.

En este capı́tulo, no hemos tratado de predecir propiedades en los nodos ni en las


aristas, pero hay que destacar que esta tarea es equivalente a predecir los tipos de los
mismos, ya que la función µ funciona de la misma manera que la función τ , queda
pendiente pues el realizar experimentos tratando de predecir diferentes propiedades de
los elementos constituyentes de un grafo con propiedades.

Con este trabajo, hemos dado un marco inicial para realizar tareas de aprendizaje
automático a partir de grafos con propiedes en las que se tiene en cuenta el grafo com-
pleto para codificar cada elemento y por tanto se tiene en cuenta el grafo completo para
realizar el aprendizaje de los patrones subyacentes en los mismos. Esta nueva represen-
tación vectorial de grafos con propiedades permite trabajar con conceptos semánticos
almacenados en cualquier sistema de persistencia de manera vectorial, aprovechando la
potencia que tienen actualmente los procesadores y GPUs de trabajar con este tipo de

205
estructuras.

206
Bibliografı́a

[1]
[2] Cypher into patterns. http://neo4j.com/docs/stable/
cypher-intro-patterns.html.
[3] Cypher introduction. http://neo4j.com/docs/stable/cypher-introduction.
html.
[4] D2r server: Accessing databases with sparql and as linked data. http://d2rq.
org/d2r-server.
[5] The sparql2xquery framework. http://www.dblab.ntua.gr/~bikakis/
SPARQL2XQuery.html.
[6] Sparqlimplementations. https://www.w3.org/wiki/SparqlImplementations.
[7] Xml 1.0 origin and goals. https://www.w3.org/TR/REC-xml/
#sec-origin-goals.
[8] Xml: The angle bracket tax. https://blog.codinghorror.com/
xml-the-angle-bracket-tax/.
[9] Xpath - retrieving nodes from an xml document. http://sqlmag.com/xml/
xpath151retrieving-nodes-xml-document.
[10] Fast Graph Pattern Matching, April 2008.
[11] Boanerges Aleman-Meza, Christian Halaschek-Wiener, Satya Sanket Sahoo, Amit
Sheth, and I. Budak Arpinar. Template Based Semantic Similarity for Security
Applications, pages 621–622. Springer Berlin Heidelberg, Berlin, Heidelberg, 2005.

207
[12] Noga Alon, Raphael Yuster, and Uri Zwick. Color-coding. J. ACM, 42(4):844–856,
July 1995.

[13] Renzo Angles. A comparison of current graph database models. In Proceedings of


the 2012 IEEE 28th International Conference on Data Engineering Workshops,
ICDEW ’12, pages 171–177, Washington, DC, USA, 2012. IEEE Computer So-
ciety.

[14] Renzo Angles, Pablo Barceló, and Gonzalo Rı́os. A practical query language for
graph dbs. In 7th Alberto Mendelzon International Workshop on Foundations of
Data Management (AMW), 2103.

[15] Renzo Angles, Arnau Prat-Pérez, David Dominguez-Sal, and Josep-Lluis Larriba-
Pey. Benchmarking database systems for social network applications. In First
International Workshop on Graph Data Management Experiences and Systems,
GRADES ’13, pages 15:1–15:7, New York, NY, USA, 2013. ACM.

[16] Sylvain Arlot and Alain Celisse. A survey of cross-validation procedures for model
selection, 2009.

[17] Anna Atramentov, Hector Leiva, and Vasant Honavar. A Multi-relational Deci-
sion Tree Learning Algorithm – Implementation and Experiments, pages 38–56.
Springer Berlin Heidelberg, Berlin, Heidelberg, 2003.

[18] Pablo Barceló, Leonid Libkin, and Juan L. Reutter. Querying graph patterns.
In Proceedings of the Thirtieth ACM SIGMOD-SIGACT-SIGART Symposium on
Principles of Database Systems, PODS ’11, pages 199–210, New York, NY, USA,
2011. ACM.

[19] George M. Bergman. An Invitation to General Algebra and Universal Construc-


tions. Henry Helson, 15 the Crescent, Berkeley CA, 94708, 1998.

[20] Bahareh Bina, Oliver Schulte, Branden Crawford, Zhensong Qian, and Yi Xiong.
Simple decision forests for multi-relational classification. Decision Support Sys-
tems, 54(3):1269–1279, 2013.

[21] Hannah Blau, Neil Immerman, and David D. Jensen. A visual language for re-
lational knowledge discovery. Technical Report UM-CS-2002-37, Department of
Computer Science, University of Massachusetts, Amherst, MA, 2002.

208
[22] Hendrik Blockeel and Luc De Raedt. Top-down induction of logical decision trees.

[23] Hendrik Blockeel and Luc De Raedt. Top-down induction of first-order logical
decision trees. Artificial Intelligence, 101(1):285 – 297, 1998.

[24] U. S. R. Bondy, J. A.; Murty. Graph Theory. Graduate Texts in Mathematics.


Springer, 2008.

[25] Bernhard E. Boser, Isabelle M. Guyon, and Vladimir N. Vapnik. A training algo-
rithm for optimal margin classifiers. In Proceedings of the Fifth Annual Workshop
on Computational Learning Theory, COLT ’92, pages 144–152, New York, NY,
USA, 1992. ACM.

[26] I. Bratko and M. Bohanec. Trading accuracy for simplicity in decision trees, 1994.

[27] L. Breiman, J. Friedman, R. Olshen, and C. Stone. Classification and Regression


Trees. Wadsworth and Brooks, Monterey, CA, 1984.

[28] L. Breiman, J. H. Friedman, R. A. Olshen, and C. J. Stone. Classification and


Regression Trees. Chapman and Hall, New York, 1984.

[29] Leo Breiman, Jerome Friedman, Charles J Stone, and Richard A Olshen. Classi-
fication and regression trees. CRC press, 1984.

[30] Eric Browne. The myth of Self-Describing XML, 2003.

[31] Yang Cao, Wenfei Fan, Jinpeng Huai, and Ruizhe Huang. Making pattern queries
bounded in big graphs. In 31st IEEE International Conference on Data Enginee-
ring, ICDE 2015, Seoul, South Korea, April 13-17, 2015, pages 161–172, 2015.

[32] Shiyu Chang, Wei Han, Jiliang Tang, Guo-Jun Qi, Charu C. Aggarwal, and Tho-
mas S. Huang. Heterogeneous network embedding via deep architectures. In
Proceedings of the 21th ACM SIGKDD International Conference on Knowledge
Discovery and Data Mining, KDD ’15, pages 119–128, New York, NY, USA, 2015.
ACM.

[33] Jie Cheng, Christos Hatzis, Hisashi Hayashi, Mark-A. Krogel, Shinichi Morishita,
David Page, and Jun Sese. Kdd cup 2001 report. SIGKDD Explor. Newsl.,
3(2):47–64, January 2002.

209
[34] W. J. Christmas and C Fl W. J. Christmas. Structural matching in computer
vision using probabilistic reasoning, 1995.

[35] E. F. Codd. Relational database: A practical foundation for productivity. Com-


mun. ACM, 25(2):109–117, February 1982.

[36] Thayne Coffman, Seth Greenblatt, and Sherry Marcus. Graph-based technologies
for intelligence analysis. Commun. ACM, 47(3):45–47, March 2004.

[37] A. Colmerauer and P. Roussel. La naissance de Prolog. Editions universitaires


europeennes EUE, 2014.

[38] Mariano P. Consens and Alberto O. Mendelzon. Graphlog: A visual formalism for
real life recursion. In Proceedings of the Ninth ACM SIGACT-SIGMOD-SIGART
Symposium on Principles of Database Systems, PODS ’90, pages 404–416, New
York, NY, USA, 1990. ACM.

[39] Donatello Conte, Pasquale Foggia, Carlo Sansone, and Mario Vento. Thirty years
of graph matching in pattern recognition. IJPRAI, 18(3):265–298, 2004.

[40] Diane J. Cook and Lawrence B. Holder. Substructure discovery using minimum
description length and background knowledge. J. Artif. Int. Res., 1(1):231–255,
February 1994.

[41] Quinlan Quinlan Cs and J. R. Quinlan. Improved use of continuous attributes in


c4.5. Journal of Artificial Intelligence Research, 4:77–90, 1996.

[42] Ankur Dave, Alekh Jindal, Li Erran Li, Reynold Xin, Joseph Gonzalez, and Matei
Zaharia. Graphframes: an integrated API for mixing graph and relational queries.
In Proceedings of the Fourth International Workshop on Graph Data Management
Experiences and Systems, Redwood Shores, CA, USA, June 24 - 24, 2016, page 2,
2016.

[43] Michaël Defferrard, Xavier Bresson, and Pierre Vandergheynst. Convolutional


neural networks on graphs with fast localized spectral filtering. CoRR, ab-
s/1606.09375, 2016.

[44] David K Duvenaud, Dougal Maclaurin, Jorge Iparraguirre, Rafael Bombarell, Ti-
mothy Hirzel, Alan Aspuru-Guzik, and Ryan P Adams. Convolutional networks

210
on graphs for learning molecular fingerprints. In C. Cortes, N. D. Lawrence, D. D.
Lee, M. Sugiyama, and R. Garnett, editors, Advances in Neural Information Pro-
cessing Systems 28, pages 2224–2232. Curran Associates, Inc., 2015.

[45] Sašo Džeroski. Multi-relational data mining: An introduction. SIGKDD Explor.


Newsl., 5(1):1–16, July 2003.

[46] Floriana Esposito, Donato Malerba, and Giovanni Semeraro. A comparative analy-
sis of methods for pruning decision trees. IEEE Trans. Pattern Anal. Mach. Intell.,
19(5):476–491, May 1997.

[47] Wenfei Fan. Graph pattern matching revised for social network analysis. In
Proceedings of the 15th International Conference on Database Theory, ICDT ’12,
pages 8–21, New York, NY, USA, 2012. ACM.

[48] Wenfei Fan. Graph pattern matching revised for social network analysis. In
Proceedings of the 15th International Conference on Database Theory, ICDT ’12,
pages 8–21, New York, NY, USA, 2012. ACM.

[49] Wenfei Fan, Jianzhong Li, Shuai Ma, Nan Tang, and Yinghui Wu. Adding regular
expressions to graph reachability and pattern queries. In Serge Abiteboul, Klemens
Böhm, Christoph Koch, and Kian-Lee Tan, editors, ICDE, pages 39–50. IEEE
Computer Society, 2011.

[50] Wenfei Fan, Jianzhong Li, Shuai Ma, Nan Tang, Yinghui Wu, and Yunpeng Wu.
Graph pattern matching: From intractable to polynomial time. Proc. VLDB En-
dow., 3(1-2):264–275, September 2010.

[51] Wenfei Fan, Jianzhong Li, Shuai Ma, Hongzhi Wang, and Yinghui Wu. Graph
homomorphism revisited for graph matching. Proc. VLDB Endow., 3(1-2):1161–
1172, September 2010.

[52] Philip Fennell. Extremes of xml. In XML London 2013, 2013.

[53] Michael J. Fischer and Richard E. Ladner. Propositional dynamic logic of regular
programs. Journal of Computer and System Sciences, 18(2):194 – 211, 1979.

[54] Scott Fortin. The graph isomorphism problem. Technical report, 1996.

211
[55] Steven Fortune, John Hopcroft, and James Wyllie. The directed subgraph ho-
meomorphism problem. Theoretical Computer Science, 10(2):111 – 121, 1980.

[56] Brian Gallagher. Matching structure and semantics: A survey on graph-based


pattern matching. AAAI FS, 6:45–53, 2006.

[57] Warodom Geamsakul, Takashi Matsuda, Tetsuya Yoshida, Hiroshi Motoda, and
Takashi Washio. Classifier Construction by Graph-Based Induction for Graph-
Structured Data, pages 52–62. Springer Berlin Heidelberg, Berlin, Heidelberg,
2003.

[58] Warodom Geamsakul, Tetsuya Yoshida, Kouzou Ohara, Hiroshi Motoda, Hide-
to Yokoi, and Katsuhiko Takabayashi. Constructing a decision tree for graph-
structured data and its applications. Fundam. Inf., 66(1-2):131–160, November
2004.

[59] S. B. Gelfand, C. S. Ravishankar, and E. J. Delp. An iterative growing and


pruning algorithm for classification tree design. Pattern Analysis and Machine
Intelligence, IEEE Transactions on, 13(2):163–174, 1991.

[60] Charles F. Goldfarb. The SGML Handbook. Oxford University Press, Inc., New
York, NY, USA, 1990.

[61] Charles F. Goldfarb. The roots of sgml - a personal recollection. http://www.


sgmlsource.com/history/roots.htm, 1996.

[62] Joris Graaumans. Usability of XML Query Languages. PhD thesis, Proefschrift
Universiteit Utrecht.

[63] Aditya Grover and Jure Leskovec. node2vec: Scalable feature learning for net-
works, 2016. cite arxiv:1607.00653Comment: In Proceedings of the 22nd ACM
SIGKDD International Conference on Knowledge Discovery and Data Mining,
2016.

[64] S. Gupta. Neo4j Essentials. Community experience distilled. Packt Publishing,


2015.

[65] J. F. Guo H. Zheng and J. Y Wang. A relational data classification algorithm


with user guide.

212
[66] F. Harary. Graph Theory. Addison-Wesley, 1994.

[67] Olaf Hartig. Reconciliation of rdf* and property graphs. CoRR, abs/1409.3288,
2014.

[68] Trevor J. Hastie, Robert John Tibshirani, and Jerome H. Friedman. The elements
of statistical learning : data mining, inference, and prediction. Springer series in
statistics. Springer, New York, 2009. Autres impressions : 2011 (corr.), 2013 (7e
corr.).

[69] I. N. Herstein. Topics in Algebra. Ginn and Company, 1964.

[70] Geoffrey E. Hinton, Nitish Srivastava, Alex Krizhevsky, Ilya Sutskever, and Ruslan
Salakhutdinov. Improving neural networks by preventing co-adaptation of feature
detectors. CoRR, abs/1207.0580, 2012.

[71] Florian Holzschuher and René Peinl. Performance of graph query languages: Com-
parison of cypher, gremlin and native access in neo4j. In Proceedings of the Joint
EDBT/ICDT 2013 Workshops, EDBT ’13, pages 195–204, New York, NY, USA,
2013. ACM.

[72] Jiewen Huang, Kartik Venkatraman, and Daniel J. Abadi. Query optimization of
distributed pattern matching. In ICDE, 2014.

[73] Yann Jacob, Ludovic Denoyer, and Patrick Gallinari. Learning latent representa-
tions of nodes for classifying in heterogeneous social networks. In Proceedings of
the 7th ACM International Conference on Web Search and Data Mining, WSDM
’14, pages 373–382, New York, NY, USA, 2014. ACM.

[74] Richard M. Karp. Reducibility among Combinatorial Problems, pages 85–103.


Springer US, Boston, MA, 1972.

[75] G. V. Kass. An exploratory technique for investigating large quantities of catego-


rical data. Journal of the Royal Statistical Society. Series C (Applied Statistics),
29(2):119–127, 1980.

[76] Yusuf Kavurucu, Pinar Senkul, and Ismail Hakki Toroslu. Confidence-based con-
cept discovery in multi-relational data mining.

213
[77] Nikhil S. Ketkar, Lawrence B. Holder, and Diane J. Cook. Subdue: Compression-
based frequent pattern discovery in graph data. In Proceedings of the 1st In-
ternational Workshop on Open Source Data Mining: Frequent Pattern Mining
Implementations, OSDM ’05, pages 71–76, New York, NY, USA, 2005. ACM.
[78] Thomas N Kipf and Max Welling. Semi-supervised classification with graph con-
volutional networks. arXiv preprint arXiv:1609.02907, 2016.
[79] Arno J. Knobbe. Multi-relational data mining. In Proceedings of the 2005 Con-
ference on Multi-Relational Data Mining, pages 1–118, Amsterdam, The Nether-
lands, The Netherlands, 2005. IOS Press.
[80] Arno J. Knobbe, Arno Siebes, Danil Van Der Wallen, and Syllogic B. V. Multi-
relational decision tree induction. In In Proceedings of PKDD’ 99, Prague, Czech
Republic, Septembre, pages 378–383. Springer, 1999.
[81] Ron Kohavi. A study of cross-validation and bootstrap for accuracy estimation
and model selection. In Proceedings of the 14th International Joint Conference on
Artificial Intelligence - Volume 2, IJCAI’95, pages 1137–1143, San Francisco, CA,
USA, 1995. Morgan Kaufmann Publishers Inc.
[82] Ron Kohavi and Ross Quinlan. Decision tree discovery. In IN HANDBOOK OF
DATA MINING AND KNOWLEDGE DISCOVERY, pages 267–276. University
Press, 1999.
[83] Christian Krause, Daniel Johannsen, Radwan Deeb, Kai-Uwe Sattler, David Knac-
ker, and Anton Niadzelka. An SQL-Based Query Language and Engine for Graph
Pattern Matching, pages 153–169. Springer International Publishing, Cham, 2016.
[84] Mark-A. Krogel and Stefan Wrobel. Transformation-Based Learning Using Mul-
tirelational Aggregation, pages 142–155. Springer Berlin Heidelberg, Berlin, Hei-
delberg, 2001.
[85] Daniel T. Larose. Discovering Knowledge in Data: An Introduction to Data Mi-
ning. Wiley-Interscience, 2004.
[86] Héctor Ariel Leiva, Shashi Gadia, and Drena Dobbs. Mrdtl: A multi-relational
decision tree learning algorithm. In Proceedings of the 13th International Confe-
rence on Inductive Logic Programming (ILP 2003, pages 38–56. Springer-Verlag,
2002.

214
[87] Juan Li. Improved multi-relational decision tree classification algorithm.

[88] Gilles Louppe. Understanding Random Forests: From Theory to Practice. PhD
thesis, University of Liege, Belgium, 10 2014. arXiv:1407.7502.

[89] L. H. Luan and G. L. Ji. Research on the decision tree classification technology,
2004.

[90] Shuai Ma, Yang Cao, Wenfei Fan, Jinpeng Huai, and Tianyu Wo. Capturing to-
pology in graph pattern matching. Proc. VLDB Endow., 5(4):310–321, December
2011.

[91] Takashi Matsuda, Hiroshi Motoda, Tetsuya Yoshida, and Takashi Washio. Know-
ledge Discovery from Structured Data by Beam-Wise Graph-Based Induction, pa-
ges 255–264. Springer Berlin Heidelberg, Berlin, Heidelberg, 2002.

[92] Caroline R. McNulty, George F.; Shallon. Inherently nonfinitely based finite alge-
bras. Universal algebra and lattice theory (Puebla, 1982), Lecture Notes in Math.,
1004, Berlin, New York: Springer-Verlag, pp. 206–231, doi:10.1007/BFb0063439,
MR 716184, 1983.

[93] R. Milner. Communication and Concurrency. Prentice-Hall, Inc., Upper Saddle


River, NJ, USA, 1989.

[94] R. Milo and et al. Network motifs: simple building blocks of complex networks,
2002.

[95] 2Mr. Kushik K Rana Mr. Brijain R Patel. A survey on decision tree algorithm
for classification, 2014.

[96] Sreerama K. Murthy. Automatic construction of decision trees from data: A multi-
disciplinary survey. Data Min. Knowl. Discov., 2(4):345–389, December 1998.

[97] Claude Nadeau and Yoshua Bengio. Inference for the generalization error. Mach.
Learn., 52(3):239–281, September 2003.

[98] Lorenzo De Nardo, Francesco Ranzato, and Francesco Tapparo. The subgraph
similarity problem. IEEE Transactions on Knowledge and Data Engineering,
21(5):748–749, 2009.

215
[99] Phu Chien Nguyen, Kouzou Ohara, Akira Mogi, Hiroshi Motoda, and Takashi
Washio. Constructing Decision Trees for Graph-Structured Data by Chunkingless
Graph-Based Induction, pages 390–399. Springer Berlin Heidelberg, Berlin, Hei-
delberg, 2006.

[100] Phu Chien Nguyen, Kouzou Ohara, Hiroshi Motoda, and Takashi Washio. Cl-
GBI: A Novel Approach for Extracting Typical Patterns from Graph-Structured
Data, pages 639–649. Springer Berlin Heidelberg, Berlin, Heidelberg, 2005.

[101] SH. OATES-WILLIAMS. Graphs und universal algebras. Lecture Notes Math.
884 (1981), 351-354., 1981.

[102] Cristina Olaru and Louis Wehenkel. A complete fuzzy decision tree technique.
Fuzzy Sets Syst., 138(2):221–254, September 2003.

[103] Neelamadhab Padhy and Rasmita Panigrahi. Multi relational data mining ap-
proaches: A data mining technique. CoRR, abs/1211.3871, 2012.

[104] Nataliia Pobiedina, Stefan Rümmele, Sebastian Skritek, and Hannes Werthner.
Benchmarking Database Systems for Graph Pattern Matching, pages 226–241.
Springer International Publishing, Cham, 2014.

[105] Reinhard Pöschel. Graph algebras and graph varieties. algebra universalis,
27(4):559–577, 1990.

[106] J. R. Quilan. Machine intelligence 11. chapter Decision Trees and Multi-valued
Attributes, pages 305–318. Oxford University Press, Inc., New York, NY, USA,
1988.

[107] J. R. Quinlan. Induction of decision trees. Mach. Learn., 1(1):81–106, March


1986.

[108] J. R. Quinlan. Simplifying decision trees. Int. J. Man-Mach. Stud., 27(3):221–234,


September 1987.

[109] J. R. Quinlan. Learning logical definitions from relations. MACHINE LEAR-


NING, 5:239–266, 1990.

[110] J. Ross Quinlan. C4.5: Programs for Machine Learning. Morgan Kaufmann
Publishers Inc., San Francisco, CA, USA, 1993.

216
[111] Luc De Raedt and Sašo Džeroski. First-order jk-clausal theories are pac-learnable.
Artificial Intelligence, 70(1):375 – 392, 1994.

[112] Ronald C. Read and Derek G. Corneil. The graph isomorphism disease. J. Graph
Theory, 1(4):339–363, 1977.

[113] Radim Řehůřek and Petr Sojka. Software framework for topic modelling with
large corpora. In Proceedings of the LREC 2010 Workshop on New Challenges
for NLP Frameworks, pages 45–50, Valletta, Malta, May 2010. ELRA. http:
//is.muni.cz/publication/884893/en.

[114] Juan L. Reutter. Graph Patterns: Structure, Query Answering and Applications
in Schema Mappings and Formal Language Theory. PhD thesis, The school where
the thesis was written, Laboratory for Foundations of Computer Science School
of Informatics University of Edinburgh, 2013.

[115] Ian Robinson, Jim Webber, and Emil Eifrem. Graph Databases. O’Reilly Media,
Inc., 2013.

[116] Marko A. Rodriguez. A multi-relational network to support the scholarly com-


munication process. CoRR, abs/cs/0601121, 2006.

[117] Marko A. Rodriguez. The gremlin graph traversal machine and language. CoRR,
abs/1508.03843, 2015.

[118] Marko A. Rodriguez and Peter Neubauer. The graph traversal pattern. CoRR,
abs/1004.1001, 2010.

[119] Marko A. Rodriguez and Peter Neubauer. A path algebra for multi-relational
graphs. CoRR, abs/1011.0390, 2010.

[120] Marko A. Rodriguez and Joshua Shinavier. Exposing multi-relational networks to


single-relational network analysis algorithms. CoRR, abs/0806.2274, 2008.

[121] L. Rokach and O. Maimon. Top-down induction of decision trees classifiers - a


survey. Trans. Sys. Man Cyber Part C, 35(4):476–487, November 2005.

[122] Mohamed Rouane-Hacene, Marianne Huchard, Amedeo Napoli, and Petko Valt-
chev. Relational concept analysis: mining concept lattices from multi-relational
data. Annals of Mathematics and Artificial Intelligence, 67(1):81–108, 2013.

217
[123] S. Ruggieri. Efficient c4.5. IEEE Trans. on Knowl. and Data Eng., 14(2):438–444,
March 2002.

[124] S. Rasoul Safavian and David Landgrebe. A survey of decision tree classifier
methodology, 1991.

[125] Toby Segaran, Colin Evans, Jamie Taylor, Segaran Toby, Evans Colin, and Taylor
Jamie. Programming the Semantic Web. O’Reilly Media, Inc., 1st edition, 2009.

[126] L. Shapiro and R. Haralick. Structural descriptions and inexact matching. IEEE
Transactions on Pattern Analysis and Machine Intelligence, 3:504–519, 1981.

[127] Dennis Shasha, Jason T. L. Wang, and Rosalba Giugno. Algorithmics and
applications of tree and graph searching. In Proceedings of the Twenty-first
ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Sys-
tems, PODS ’02, pages 39–52, New York, NY, USA, 2002. ACM.

[128] Jian Tang, Meng Qu, Mingzhe Wang, Ming Zhang, Jun Yan, and Qiaozhu Mei.
Line: Large-scale information network embedding. In Proceedings of the 24th
International Conference on World Wide Web, WWW ’15, pages 1067–1077, New
York, NY, USA, 2015. ACM.

[129] Yuanyuan Tian and Jignesh M. Patel. Tale: A tool for approximate large graph
matching. In Proceedings of the 2008 IEEE 24th International Conference on
Data Engineering, ICDE ’08, pages 963–972, Washington, DC, USA, 2008. IEEE
Computer Society.

[130] Hanghang Tong, Christos Faloutsos, Brian Gallagher, and Tina Eliassi-Rad. Fast
best-effort pattern matching in large attributed graphs. In Proceedings of the
13th ACM SIGKDD International Conference on Knowledge Discovery and Data
Mining, KDD ’07, pages 737–746, New York, NY, USA, 2007. ACM.

[131] Godfried T. Toussaint. Bibliography on estimation of misclassification. IEEE


Trans. Information Theory, 20(4):472–479, 1974.

[132] Vaibhav Tripathy. A comparative study of multi-relational decision tree learning


algorithm.

[133] Robert P. Trueblood and John N. Lovett, Jr. Data Mining and Statistical Analysis
Using SQL. Apress, Berkely, CA, USA, 2001.

218
[134] J. R. Ullmann. An algorithm for subgraph isomorphism. J. ACM, 23(1):31–42,
January 1976.

[135] S. Umeyama. An eigendecomposition approach to weighted graph matching pro-


blems. IEEE Trans. Pattern Anal. Mach. Intell., 10(5):695–703, September 1988.

[136] Chad Vicknair, Michael Macias, Zhendong Zhao, Xiaofei Nan, Yixin Chen, and
Dawn Wilkins. A comparison of a graph database and a relational database: A
data provenance perspective. In Proceedings of the 48th Annual Southeast Regional
Conference, ACM SE ’10, pages 42:1–42:6, New York, NY, USA, 2010. ACM.

[137] Denny Vrandečić. Wikidata: A new platform for collaborative data collection. In
Proceedings of the 21st International Conference on World Wide Web, WWW ’12
Companion, pages 1063–1064, New York, NY, USA, 2012. ACM.

[138] Takashi Washio and Hiroshi Motoda. State of the art of graph-based data mining.
SIGKDD Explor. Newsl., 5(1):59–68, July 2003.

[139] Takashi Washio and Hiroshi Motoda. State of the art of graph-based data mining.
SIGKDD Explor. Newsl., 5(1):59–68, July 2003.

[140] David Wood, Markus Lanthaler, and Richard Cyganiak. RDF 1.1 concepts and
abstract syntax, February 2014.

[141] Xiaoxin Yin, Jiawei Han, Jiong Yang, and Philip S. Yu. Crossmine: Efficient clas-
sification across multiple database relations. In Proceedings of the 2004 European
Conference on Constraint-Based Mining and Inductive Databases, pages 172–195,
Berlin, Heidelberg, 2005. Springer-Verlag.

[142] Xiaoxin Yin, Jiawei Han, Jiong Yang, and Philip S. Yu. CrossMine: Efficient
Classification Across Multiple Database Relations, pages 172–195. Springer Berlin
Heidelberg, Berlin, Heidelberg, 2006.

[143] Xiaoxin Yin, Jiawei Han, Jiong Yang, and Philip S. Yu. Efficient classification
across multiple database relations: A crossmine approach. IEEE Trans. on Knowl.
and Data Eng., 18(6):770–783, June 2006.

[144] Kenichi Yoshida, Hiroshi Motoda, and Nitin Indurkhya. Graph-based induction
as a unified learning framework. Applied Intelligence, 4(3):297–316, 1994.

219
[145] Wei Zhang. Multi-relational data mining based on higher-order inductive logic
programming. 2013 Fourth Global Congress on Intelligent Systems, 2:453–458,
2009.

[146] H. Zheng. Research on the relational data classification algorithm based on back-
ground knowledges.

[147] Lei Zou, Lei Chen, and M. Tamer Özsu. Distance-join: Pattern match query in a
large graph database. Proc. VLDB Endow., 2(1):886–897, August 2009.

220

También podría gustarte