• No se han encontrado resultados

CAPÍTULO 4 BÚSQUEDA INTELIGENTE EN BII-P2P

4.1 El Rol de los Nodos en BII-P2P

4.1.2 La Red Neuronal de los Nodos P2P

La red neuronal implementada en cada nodo se encuentra inspirada en las arquitecturas compuestas por unidades competitivas —ver la sección 2.6.2 ―La Neurona Competitiva‖ en la página 81—. La habilidad de este tipo de

4.1 EL ROL DE LOS NODOS EN BII-P2P 107

arquitecturas para realizar agrupamientos o clasificaciones ha sido ampliamente comprobada.

El trabajo que deben realizar los nodos de la red P2P para llevar a cabo la búsqueda BII-P2P es similar a una tarea de clasificación. Cada nodo realiza su propia clasificación. Los objetos a clasificar son los recursos que se comparten en el sistema. La cantidad de clases en las que se agrupan dichos recursos es igual a la cantidad de vecinos directos que posee el nodo. Así se establece una correspondencia uno a uno entre clases de recursos y nodos vecinos.

Si un recurso r es clasificado por la red neuronal de un nodo como

perteneciente a la clase j, esto indica que la región de la red P2P más apropiada

para hallar r es la que se encuentra accesible a través del vecino j. Es decir que, o

bien el vecino j es poseedor de r o bien a partir de él se encuentran los caminos

con mayor probabilidad de éxito. Estos caminos son aquellos con mayor cantidad de instancias de r y con menor número de nodos intermedios —menos tráfico

generado en la red y respuestas positivas más rápidas—.

Sin embargo, para poder identificar más de un camino por donde direccionar la búsqueda de un recurso r, en lugar de una clasificación categórica de r, el nodo

de la red necesita establecer una valoración sobre la pertenencia de r a cada una de

las clases disponibles. De esta forma se eligen para propagar la solicitud de búsqueda a aquellos vecinos correspondientes a las clases para las cuales la valoración sobre la pertenencia de r ha sido más alta.

Por lo tanto, el rol desempeñado por los nodos en la búsqueda BII-P2P se aparta de un típico sistema clasificador mostrando algunas diferencias, consecuentemente la red neuronal implementada en cada nodo también se diferencia de la mayoría de las arquitecturas competitivas.

En BII-P2P la salida de la red neuronal de cada nodo consiste en un vector con los valores de activación de las neuronas de la capa de salida —cada neurona

108 BÚSQUEDA INTELIGENTE EN BII-P2P

está asociada unívocamente a un nodo vecino—. Todos estos valores resultan relevantes, en contraposición a lo que sucede habitualmente con las arquitecturas competitivas en donde sólo interesa la identificación de la neurona ganadora.

La salida de la red neuronal establece un ordenamiento entre los vecinos que permite conducir la búsqueda sólo a través de los más prometedores —aquellos que ocupan las primeras posiciones en este ordenamiento—. Más adelante se exponen los detalles sobre el funcionamiento y aprendizaje de esta red neuronal facilitando la comprensión de cómo se genera, de dónde surge y de qué manera se mantiene esta capacidad del nodo para estimar la probabilidad de hallar el recurso a través de cada uno de sus vecinos —ver sección 4.2 ―El Aprendizaje‖ en la página 117—.

Figura 4-1 Participación de la red neuronal en el sistema de búsqueda

La Figura 4-1 muestra esquemáticamente cuál es el rol de la red neuronal dentro del nodo. La red neuronal es estimulada con las especificaciones que caracterizan el recurso buscado. La evaluación de la misma produce la salida correspondiente. Esta salida es interpretada por el nodo como un orden de mérito, una valoración sobre qué tan conveniente resulta propagar la búsqueda hacia los demás nodos vecinos.

La red neuronal trabaja sobre una representación vectorial de los recursos Especificación del Recurso Buscado Red Neuronal Valoración sobre la aptitud de cada vecino para resolver la

4.1 EL ROL DE LOS NODOS EN BII-P2P 109

compartidos. Este tipo de representación es comúnmente utilizada con redes neuronales y en algoritmos de clustering. Si v es la representación vectorial del

recurso r, entonces se dice que v es el vector característico de r. La forma de

construir los vectores característicos depende de las clases de recursos que se comparten en la red y la aplicación distribuida que corre sobre la misma.

Existen muchas formas posibles de construir los vectores característicos de los recursos. Sin embargo estas consideraciones son ajenas al sistema de búsqueda en sí mismo y en el presente trabajo no se asume ninguna representación en particular. Alcanza con observar que independientemente de la naturaleza de los recursos compartidos en la red P2P, la implementación de BII-P2P requiere la obtención de un conjunto de características cuantificables que sirvan para representar cada recurso en el sistema. La cantidad de características utilizadas determina la dimensión del vector y los valores cuantificados conforman el vector característico del recurso. La única suposición que se hará al respecto es que todos los nodos de la red P2P obtienen los vectores característicos de la misma forma y que todos los vectores tendrán la misma dimensión independientemente del recurso que caractericen.

Sólo para ilustrar el concepto considérese un sistema con vectores característicos binarios donde cada posición indica la existencia o no de una determinada característica en el recurso. Supóngase que el sistema P2P se utiliza para compartir artículos científicos. Cada elemento del vector podría representar la existencia o no de una determinada palabra clave en el artículo. Para ello los vectores deben ser suficientemente grandes reservando una posición para cada una de las posibles palabras claves existentes en la colección completa de artículos distribuidos en la red. Otra posibilidad es que cada posición del vector se asocie a una familia entera de términos —sinónimos, por ejemplo— implementando así un sistema de búsqueda semántica capaz de encontrar artículos relacionados por conceptos más que por términos específicos.

110 BÚSQUEDA INTELIGENTE EN BII-P2P

BII-P2P utiliza la red neuronal de la siguiente manera: El nodo que inicia la búsqueda de un recurso r estimula su red neuronal con la representación vectorial

v del recurso r. Como resultado, la red neuronal devuelve un vector de salida o.

La dimensión de o se corresponde con el número de vecinos que posee el nodo y sus elementos representa la valoración —un número entre 0 y 1— sobre la conveniencia de propagar la solicitud del recurso por el vecino correspondiente.

Una vez obtenido este orden de preferencia, se determina la cantidad de nodos vecinos a los cuales propagar la búsqueda. Esta cantidad se fija en función del tamaño de la vecindad y de la tasa de selección , un parámetro conocido previamente por todos los nodos y que representa la proporción de vecinos a elegir. El valor de impacta fuertemente sobre el rendimiento del sistema de búsqueda y debe ser elegido con precaución. En la sección 5.1.3 ―Resultados de la Experimentación‖ en la página 142 se presenta una gran cantidad de casos de prueba que arrojan algunos indicios sobre los posibles valores adecuados para y su relación con el valor del parámetro TTL con que los nodos inician las búsquedas.