Archivos en el mes de Mayo del 2005

MusicStrands

Hace unos cuantos meses salió a la luz MusicStrands, una nueva iniciativa empresarial surgida del IIIA-CSIC, el instituto de investigación en Inteligencia Artificial del CSIC en la Universidad Autónoma de Barcelona, cuna de otros spin-offs como Isoco.

MusicStrands es un sistema inteligente que recomienda música a los usuarios a partir de sus preferencias y gustos, y además lo hace dentro de un “contexto musical”, ya que las canciones que se recomiendan no son más o menos adecuadas “porque sí”, sino que ello depende de lo que se está escuchando en un momento dado. Para ello, aparte de las técnicas de recomendación basadas en filtrado colaborativo convencional, MusicStrands aporta los playlists, que listan canciones que a los usuarios les gusta escuchar de forma secuencial.

Este es un concepto muy interesante que no está suficientemente explotado en otros sistemas de recomendación similares, como es el caso del LaunchCast de Yahoo, que aunque tiene el concepto de “mood” (estado de ánimo), se queda a medias en cuanto a su utilidad para mejorar las recomendaciones.

En su puesta de largo ante los medios, MusicStrands obtuvo bastante notoriedad, con apariciones en El País, El Mundo, La Vanguardia, Expansión y Cinco Días. Además, el equipo gestor es de impresión:

[…] recommender systems pioneer Jon Herlocker (among the top 1% of most quoted scientists of the last decade); Derek Reisfield, youngest president ever of CBS New Media; Tom Dietterich, the president of Machine Learning Society and the most renowned scientist in statistical machine learning; Javier Etxebeste, formerly Managing Director of Search and Marketplace of Yahoo Europe; and Andreas Weigend, recently Chief Scientist at Amazon.
(ver nota de prensa completa)

Sin embargo no he vuelto a encontrar noticias de esta compañía en medios de difusión masiva.
(Corrección: acabo de ver en el centro de prensa de su web que el pasado 10 de mayo les hicieron un mini-reportaje en el Telediario 1 de TVE)

Sé que siguen en marcha, que pretenden tener beneficios en 2007, y que la iniciativa tiene un horizonte puesto a largo plazo. De hecho, me llegó una oferta de beca de Doctorado que publicaron en el BOE allá por febrero.

Como iniciativa académica estoy convencido de que la investigación generada en esta empresa va a permitir perfeccionar las técnicas de filtrado colaborativo y va a conseguir mejorar su eficiencia en varios órdenes, pero como iniciativa empresarial no estoy tan seguro de su viabilidad, al menos con el modelo actual.

Para que un sistema así funcione es necesario conseguir una masa crítica de usuarios que creen un efecto red de modo que el sistema de recomendaciones pueda proporcionar buenos resultados.

El gran problema que yo veo es que no sé cómo van a conseguir esa masa crítica con un interfaz web como el que tienen ahora. La gente no está dispuesta a introducir en una web listas interminables de canciones favoritas en forma de playlists. Esta información debería extraerla el sistema de forma automática a partir del comportamiento de los usuarios. Yo estoy convencido de que el sistema de recomendación “rompedor” que sin duda está por llegar no estará centralizado en una web, sino distribuido en los PCs de todos los usuarios e integrado en el reproductor de música habitual.

La “killer application” de los sistemas de recomendación será un sistema distribuído basado en una red peer to peer. Estoy convencido.

¿Y cómo se obtendrán en ese caso las recomendaciones?
¡Gracias a las propiedades emergentes del sistema!

Cuando dudo de por qué llamé a este blog Sistemas Emergentes, no sé lo que me digo…

Manic Miner

Acabo de subir a la web mi “última creación”: una versión en Java del clásico juego de plataformas Manic Miner.

Si viviste la época de los ordenadores de 8 bits, estoy seguro de que te traerá buenos recuerdos. Para poder jugar necesitas tener instalado el plugin de Java en tu navegador.

Si encuentras algún bug, comunícamelo dejando un comment, por favor.

¿Qué son los sistemas emergentes?

Para tratar de responder esta pregunta primero daremos una definición de Sistema:

Un sistema es un conjunto de elementos organizados que interactúan entre sí y con su ambiente, para lograr objetivos comunes, operando sobre información, sobre energía o materia u organismos para producir como salida información o energía o materia u organismos.

(Definición tomada de Wikipedia)

Por lo tanto, y según esta definición, en un sistema podemos encontrar un conjunto de elementos que interactúan entre sí. Las interacciones se producen en base a unas reglas internas a dicho sistema, y de la interacción de los distintos elementos se obtiene un comportamiento global.

Los sistemas más sencillos están compuestos por un número reducido de elementos que se organizan de forma jerárquica y que llevan a cabo tareas especializadas. Por norma general el comportamiento global observado puede deducirse a partir de la estructura y de la función de cada uno de los elementos que componen el sistema, y de las conexiones existentes entre ellos.

Ejemplos de sistemas de este tipo pueden ser: un ordenador, una empresa, un coche, etc.

También existen otros sistemas en los que el número de elementos es muy grande, y en los que esencialmente todos los elementos son iguales e interactúan entre sí en base a unas reglas comunes a todos ellos. Además, la interacción entre los distintos tipos de elementos no es rígida ni está jerarquizada. Un elemento puede interactuar potencialmente con cualquier otro. En estos sistemas suele existir una medida de distancia de modo que la influencia de un elemento sobre otro será tanto mayor cuanto menor sea la distancia entre ellos. La distancia entre los elementos puede variar dinámicamente en el tiempo de vida del sistema. Estos sistemas se caracterizan además porque en ellos no existen coordinadores o elementos que tengan una mayor responsabilidad que otros.

Ejemplos de sistemas de este segundo tipo pueden ser: la economía (un conjunto de empresas), el tráfico (un conjunto de coches), una colonia de hormigas, una bandada de pájaros, etc.

En algunos sistemas de esta última clase puede producirse un hecho bastante significativo:

A pesar de que las reglas comunes a todos los elementos del sistema pueden ser muy sencillas, la interacción de un gran número de elementos simples siguiendo dichas reglas puede dar lugar a comportamientos muy complejos de un mayor nivel de abstracción y que no son fácilmente deducibles a partir del comportamiento de los elementos básicos.

Estas propiedades surgen o emergen no sólo de la ejecución de las reglas, sino también de la interacción entre los múltiples elementos del sistema.

Estas son las llamadas propiedades emergentes, y los sistemas que presentan esta clase de propiedades son los sistemas emergentes.

En resumen:
La emergencia es el proceso por el que se obtienen comportamientos sofisticados a partir de reglas sencillas ejecutadas por un gran número de individuos o elementos, y los sistemas emergentes son sistemas en los cuales se produce este fenómeno.

Ejemplos de comportamientos emergentes:
La autoregulación de los precios en la economía, los atascos de tráfico, los mecanismos de búsqueda de comida o de mantenimiento de la colonia llevados a cabo por las hormigas, la coordinación en los movimientos de una bandada de pájaros, el desarrollo embrionario de un ser vivo, etc.