Prelimina Res
Prelimina Res
Prelimina Res
Multi-Relacionales
Universidad de Sevilla
2016
Índice general
1. Definiciones Preliminares 12
1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2. Grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1
2.2. Grafos Multirelacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
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.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
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
2
3.3.9. Cypher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.6. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3
4.5. Extensión a Grafos con Propiedades del algoritmo ID3 (Graph-ID3) . . . 126
4
Índice de figuras
1.8. Ejemplo de grafo con propiedades con tipos asociados a nodos y aristas. . 21
1.10. Ejemplo de grafo con propiedades con tipos asociados a nodos y aristas. . 24
5
2.2. Ejemplo de grafo multi-relacional semántico. . . . . . . . . . . . . . . . . 40
3.7. Resumen de los conjutnos de datos utilizados para comparar los sistemas
de consulta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
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.15. Ejemplo de grafo con propiedades en el que se han marcado los subgrafo
S1 , S2 y S3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6
4.2. Un árbol de decisión simple. . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.11. Ejemplo de un grafo de selección que será utilizado para ilustrar los refi-
namientos del algoritmo MRDTL. . . . . . . . . . . . . . . . . . . . . . . 115
7
4.18. Grafo Social. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
5.1. Ejemplo de grafo con propiedades con tipos asociados a nodos y aristas. . 139
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.13. Representación gráfica del esquema de datos presente en el dataset EICH. 177
5.15. Representación gráfica del esquema de datos presente en el dataset EICH. 179
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
10
Índice de cuadros
5.3. Parámetros ótpimos de inmersión obtenidos para cada dataset estudiado. 184
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
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 .
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
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.
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.
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.
15
1.2.1. Grafos Uni-Relacionales
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.
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 .
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.
En la Figura 1.5 se muestra un ejemplo de dos grafos isomorfos y una biyección que
demuestra el isomorfismo.
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.
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.
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.
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.
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:
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.
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.
Figura 1.10: Ejemplo de grafo con propiedades con tipos asociados a nodos y aristas.
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 γ.
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.
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.
4. Ninguna otra expresión salvo las anteriores es una expresión regular válida para
constiituir un traversal en un grafo con propiedades.
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.
1. [r]
2. ([r][r])∗
3. [r](p)[r]
4. ([r](p)) ∗ []
27
5. [r](p)[r] + []
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.
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:
29
cular, Xj se dice que es numérica si Xj = R.
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.
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:
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:
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.
32
1.3.3. Estimando el Error de Predicción Esperado
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
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 :
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
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.
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 [?][?].
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.
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 .
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.1. Centralidad
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|.
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).
Betweenness Centrality.
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.
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:
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 .
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.
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:
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>
!
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 |
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 .
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.
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.
|{< v, u >∈ A : u ∈ Ai Vj }|
αAi Vj (v) =
grs{Vj ,A} (v)
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:
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 }:
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
49
|τ |
X
H(G, τ, P ) = − p(Ci ) log p(Ci )
i=1
0V 0
|τ A
X|
A0 V 0 0 0 0 0
H(G, τ ,P) = − p(CiA V ) log p(CiA V )
i=1
Pn
i=1 di H(G, τ AVi , P )
HV (G, τ, P ) =
n
Pm
i=1 fi H(G, τ Ai V , P )
HA (G, τ, P ) =
m
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
3.1. Introducció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.
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.
53
3.2. Graph Pattern Matching
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.
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.
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.
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:
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).
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:
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].
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.
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].
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].
60
3.3.1. XPath (XML Path Language)
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.
61
Un eje: El eje nos permite seleccionar un subconjunto de nodos del documento y
corresponde a recorridos en el árbol del documento.
62
3.3.2. XQuery
63
}
</body></html>
3.3.3. SQL
3.3.4. GraphLog
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
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
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.
ASK. Son utilizadas para devolver un resultado booleano de una consulta lanzada
a un punto de acceso SPARQL.
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 .
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:
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
70
datos de dioses:
gremlin> g.V.has(’name’,’hercules’).out(’father’).out(’father’).name
==>saturn
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
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:
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.
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].
3.3.9. Cypher
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.
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:
amigos directos) y que devuelve el nombre del nodo correspondiente al usuario ”John 2
74
Y su resultado:
john.name fof.name
2 rows
"John"
"Maria"
"John"
"Steve"
Y su resultado:
user.name follower.name
2 rows
"John"
"Sara"
"Joe"
"Steve"
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).
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).
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.
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.
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;
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.
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.
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.
82
Figura 3.9: Average run time in seconds on logarithmic scale for PAM.
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.
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 γ.
85
Figura 3.13: Hipergrafo con propiedades H1 con 5 nodos y 4 hiperaristas.
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
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).
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.
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.
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.
1. [r]
2. ([r][r])∗
3. [r](p)[r]
4. ([r](p)) ∗ []
5. [r](p)[r] + []
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
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.
3.6. Conclusiones
91
(a) Grafo con propiedades Q1 .
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
4.1. Introducción
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.
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.
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.
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.
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.
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.
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.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.
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.
101
Figura 4.8: Árbol de decisión obtenido mediante el algoritmo ID3.
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.
102
|Sy=c1 | |Sy=cdom(y) |
Py (S) = ( , ..., )
|S| |S|
|dom(ai )|
X |Sai =vj |
4φ(ai , S) = φ(Py (S)) − φ(Py (Sai =vj ))
vj =1
|S|
Ganancia de Información
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)
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.
104
El número de casos en el nodo terminal es menor que el número de casos de los
nodos padre.
El mejor atributo para dividir aporta menos reducción de impureza que un umbral
determinado.
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.
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.
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].
s
(T, S)(1 − (T, S))
U B (T, S) = (T, S) + Zα
|S|
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].
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].
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].
Un conjunto de clases C.
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}.
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.
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 ú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
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.
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.
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.
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.
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.
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.
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).
115
(a) Condición Positiva (b) Condición Negativa
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.
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].
117
clasificadores de Bayes para el completado de valores faltantes en atributos.
——————————-
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.
118
Método GBI
————————
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
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.
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)
121
width) es fijo. Por tanto, en cada iteración hay siempre un número fijo de uniones que
se realizan en paralelo.
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
123
Figura 4.16: Graph compression by pairwise chunking.
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.
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].
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].
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.
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:
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)
128
Trabajaremos con un grafo cuyo conjunto de tipos de aristas es T = {wife, husband,
likes, publish}
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.
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.
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.
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.
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).
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.
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
5.1. Introducción
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.
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.
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.
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:
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 Ω.
Figura 5.1: Ejemplo de grafo con propiedades con tipos asociados a nodos y aristas.
139
para implementar sistemas de almacenamiento y consulta computacionalmente eficientes
cuando los accesos se realizan en base a las relaciones entre los elementos.
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.
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:
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 (ϕ).
(
~ ≥θ
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
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).
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.
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.
(a) Conjunto con dos clases (b) Conjunto con 2 clases no lineal-
linealmente separable. mente separable.
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 .
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.
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).
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.
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).
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,
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
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)
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 ).
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
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:
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)
∂E ∂E ∂aLj ∂E
δjL = L
= L L
= L σ 0 (zjL )
∂zj ∂aj ∂zj ∂aj
Para obtener la ecuación 5.2 utilizaremos también la regla de la cadena para obtener
~δl en función de ~δl+1 :
∂zkl+1 l+1 0 l
= wkj σ (zj )
∂zjl
X
l+1 l+1 0 l
δjl = wkj δk σ (zj )
k
152
~δl = ((W l+1 )T ~δl+1 ) σ 0 (~zl )
P l l−1
∂E ∂E ∂zjl l
∂[ k wkj ak + blj ]
= = δj = δjl
∂blj ∂zjl ∂blj ∂blj
∂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.
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
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).
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
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
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).
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
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.
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.
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.
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:
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.
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.
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.
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).
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:
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 .
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 π):
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:
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).
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.
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.
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
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.
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?)
174
(a) Distribución de nodos por tipo. (b) Distribución de aristas por tipo.
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.
176
(a) Distribución de nodos por tipo. (b) Distribución de aristas por tipo.
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.
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.
π(V ) ⊆∈ RD
178
Figura 5.15: Representación gráfica del esquema de datos presente en el dataset EICH.
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.
180
Figura 5.17: Representación gráfica de la conexión entre el codificador y una máquina
de aprendizaje automático.
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.
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.
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
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 %
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.
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.
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 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.
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.
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 %
189
(a) En función del tamaño del conjunto de entrenamiento.
192
(a) En función del tamaño del conjunto de entrenamiento.
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 %
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.
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
ω
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:
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.
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
|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.
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.
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.
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 ).
1. ∀1 ≤ i ≤ q(τ (ni ) = ti ).
2. ∀1 ≤ i ≤ q(τ (li ) = ri ).
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 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.
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:
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.
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.
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.
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.
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.
[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.
[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.
[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.
[29] Leo Breiman, Jerome Friedman, Charles J Stone, and Richard A Olshen. Classi-
fication and regression trees. CRC press, 1984.
[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.
[36] Thayne Coffman, Seth Greenblatt, and Sherry Marcus. Graph-based technologies
for intelligence analysis. Commun. ACM, 47(3):45–47, March 2004.
[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.
[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.
[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.
[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.
[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.
[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.
[60] Charles F. Goldfarb. The SGML Handbook. Oxford University Press, Inc., New
York, NY, USA, 1990.
[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.
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.).
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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