NuBuMu

Tuesday, January 23, 2007

Mientras

los europeos pensamos, los americanos se hinchan a llenar el mundo de patentes...

Aqui la ultima que he encontrado y que tiene que ver con lo que he estado estudiando ultimamente... Muy triste. Por que no patento algo? supongo que por dos motivos, uno, por que soy demasiado vago como para creer que realmente patentar estas cosas me sirva para nada, y la otra... No se supone que debemos compartir el conocimiento? al menos, yo en la facultad es lo que entendi...

Esta claro que asi es muy dificil que me haga rico... pero amigos, en la vida no todo es dinero, o si?

Labels:

Masculino / Femenino

Hay dos maneras de buscar: buscar algo en concreto, tener el objetivo claro; o no tenerlo muy claro e ir "mirando" a ver que encuentras.

Es muy parecido a como compran los hombres y las mujeres. Los hombres como cazadores y las mujeres como recolectoras, o aquello de la vision perferica.

Bien, siempre se puede montar un sistema que sea capaz de distinguir que tipo de busquedas estas haciendo: centrada en un objetivo o perferica.

Por que es importante? por que en la busqueda periferica no es tan importante el termino que buscas como sus alrededores, en cambio, en la busqueda concreta lo importante es el objetivo: dar con la respuesta acertada.

Ahora, como se puede saber que tipo de busqueda estamos haciendo: por la divergencia en los terminos buscados, por ejemplo.

Si buscamos "java" y luego "java servlet" y luego "java servlet doPost" esta claro que buscamos como hacer un servlet o algo parecido. Las busquedas cada vez se van acotando mas.

En cambio si los terminos buscados son "Notting hill", "Notting hill shopping", "Notting hill area" esta claro que no se esta buscando nada en concreto, o como alguna gente dice "informacion" sobre algo bastante difuso.

Saber que tipo de busqueda se hace es util para cambiar la valoracion o pesos de os resultados. Asi, un conjunto de resultados puede tener un peso alto segun una busqueda difusa o muy bajo segun una busqueda concreta.

La agilidad para cambiar el peso de los resultados es lo que otorga a un motor de busqueda de la flexibilidad para ofrecer siempre resultados mas adecuados.

Monday, January 15, 2007

Global vs local

Un índice se crea en varios pasos. Así, por ejemplo, primero se añade la entrada al índice para luego en uno o varios procesos posteriores, se va analizando más profundamente o con más detenimiento.

¿Por qué? bueno, por que los procesos en background son más eficientes a la hora de mostrar resultados: no queremos que el análisis de una página haga que se retrase la entrega de resultados, etc.

Bien, pero no era eso de o que quería hablar. De lo que quería hablar es de una situación que ocurre en general, y es la diferencia de "apreciación" del resultado según la zona o subgrupo de usuarios que ejecuten una búsqueda.

Por ejemplo, cómo queremos que se comporte nuestro buscador, mostrando los resultados de mayor peso de acuerdo a una valoración global o teniendo en cuenta ciertas "localizaciones"?

Es sabido que un "buen resultado" es algo muy subjetivo, pero no nos engañemos, dentro de dicha subjetividad hay un buen puñado de variables como la edad, la zona donde vivimos, género, estrato social, etc... Evidentemente pretender hacer un "buscador para cada persona" es un riesgo. Posible, sí, pero difícil, además entra dentro de la "personalización" más que dentro de la teoría de cómo encontrar el mejor resultado...que no deja de ser el objetivo teórico de todo buscador.

¿Entonces? bien, entonces tendremos que crear un subproceso capaz de analizar el proceso de datos: búsqueda de términos, orden, resultados y qué resultados han sido elegido. A este conjunto básico de elementos a tener en cuenta se le puede añadir un poco de "inteligencia" e intentar hacer agrupaciones para saber cómo se comporta la persona que busca.

Tengamos en cuenta que un buscador lo que hace es comparar una muestra sobre un conjunto gigantesco de datos en busca de ciertos patrones que se asemejen a la muestra. Así, pues, el proceso de búsqueda puede asociarse también a una muestra y como tal, siempre puede intentar encontrar el patrón que sigue.

Esta técnica va a caballo entre la "adivinación" de futuras búsquedas y la mejora de resultados basados en datos locales.

Por ejemplo, si buscamos la palabra "Vino", seguramente nos interesará más la información local que la global, y la gente de Chile estará más interesada en datos que tienen que ver con precisamente Chile, y la gente de la Rioja, seguramente, estará más interesada en encontrar resultados relacionados con, precisamente, la Rioja.

Esto se puede ver de forma muy gráfica con los diferentes dominios de google: uno punto com, general, y luego un montón de subíndices locales en los que puedes buscar datos relacionados con cierto idioma o cierto lugar.

Labels: ,

Monday, January 08, 2007

Inteligencia Artificial

Vale, esta es de esas cosas que segun mucha gente no se ha de poner, pero yo voy a hacerlo por que tengo la intuicion que esto no lo lee absolutamente nadie, asi que para la desdichada alma que aparezca perdida por este blog y se encuentre con este blog tal vez le traiga un poco de luz al camino...

Una de las grandes preguntas es ¿Cómo mejorar los resultados de una búsqueda?

Fácil, no es. Recordemos que la última revolución fue llevada a cabo por Google dándole la vuelta al problema: no me interesan los enlaces de una página, me interesan los enlaces que llevan a una página... y de ahí el famoso Page Rank, etc...

Bien, pero ahora ya no es tan efectivo... ¿por qué? pues por varios motivos. La cantidad de información ha crecido muchisimo, y sigue creciendo a un ritmo frenético. Hay sistemas que consiguen engañar aunque sea temporalmente a los grandes índices (muchos de ellos se actualizan un par de veces al año), y podemos poner un tercero que englobe problemas ajenos al sistema bajo el titulito de otros factores.

Vale, ¿cual es el siguiente paso? muchos, como Technorati, piensan que la especialidad en base a blos blogs es un buen punto. Otros simplemente se apoyan en las sugerencias de la gente, otros mezclan varias formas de analizar la calidad de los resultados, pero... ¿cómo se puede automatizar el proceso? Si le pregunatarais a los fanaticos de la automatización aka Google, os diria que hay que encontrar el script que los automatiza a todos, o el script único, pero bromas aparte, una de las cosas que puede, debe y recomiendo estudiar la forma de implementar es que el propio buscador aprenda de sus propios errores.

En posts anteriores ya he hablado de la entropia de un sistema de ordenación, o de los extraños motivos que nos llevan a buscar términos. Entonces, ¿cómo puede hacerse para mejorar la calidad de los resultados sin tener conocimiento a priori de la persona que busca? fácil... añadiendo inteligencia artificial al sistema.

ooooooooooh, vaya super mega descubrimiento, eh? y cómo, pues precisamente ahí radica la madre del cordero. No es ninguna falacia que el que encuentre el mejor algoritmo de inteligencia artificial ganará la carrera temporal de los buscadores.

Complementarios y simetria

“Los dioses crearon al mundo con alguna imperfección simétrica. Esto, con el objetivo de que los humanos no sintieran envidia de sus poderes”. Richard Feynmann ( Premio Nobel de Física)

Este fin de semana no he tenido mucho tiempo para pensar en simetrias ni en complementarios pero parece que mi cabeza no ha estado ociosa y de repente anoche mientras me hacia la cena me di cuenta de una sutil diferencia.

Mientras buscaba la forma de encontrar simetrias en el proceso de busqueda, me acorde de la definicion de congruente y complementario.

Complementario: que contiene el resto de elementos del grupo que el propio grupo no contiene.
Congruente: que contiene los elementos opuestos del grupo, o el grupo opuesto.

Tal vez si mirais la definicion de angulo complementario y angulo congruente entendais a que me refiero.

De repente todo parece mas sencillo, puesto que si somos suficientemente inteligentes para definir un grupo formado por dos subgrupos congruentes, obtendremos la simetria que buscamos. Vale, eso solo seria un caso entre muchos posibles, pero no hay que olvidar que los grupos, o en nuestro caso colecciones, son agrupaciones arbitrarias de elementos siguiendo un patron, asi pues, nada en la teoria nos dice que no podemos definir los grupos de tal forma que sean simetricos.

¿y los complementarios? bien, solo en el caso de colecciones congruentes, además, obtendriamos dos colecciones complementarias congruentes a su vez.

Ahora bien. Que significa exactamente definir una coleccion de tal forma que tengamos dos subcolecciones simetricas? Eso, exactamente, es lo que estoy tratando de averiguar.

Labels: , , ,

Friday, January 05, 2007

Simetrias

Tamara me preguntó no hace mucho por qué estaba estudiando mates otra vez (si no sirven para nada). Bueno, tiene razón, no sirven para nada, pero me entretiene... además, es muy diferente estudiar mates cuando estás en el cole que cuando lo haces por curiosidad, y ahí es a dónde voy.

Como algunos saben, hace un tiempo me puse a mirar algo más en serio el tema de los buscadores. De hecho, desde que en Aresa montamos el portal con Lucene (pregúntenle a 1/2 manu por ello :) y verán, verán)... pues que me picó la curiosidad, luego Inxight y google y en fin... que aquí em tienen pensando y pensando.

Monté el blog de nubumu (nuevo buscador de la muerte), para dejar por escrito las ideas o pensamientos que iba teniendo y siempre se me olvidan. Supongo que debería poner este post allí, pero tengo que migrarlo y me da mucha pereza, además que no tengo tiempo.

Bueno a lo que iba. Simetrías.

Una noche me encontré pensando en colecciones de datos y en las diferentes formas de gestionar grandes cantidades de datos y se me ocurrió que era algo parecido a considerar las colecciones como funciones, luego no sé por qué pensé en la convergencia o no de las series...
f(x)=1/x bueno, todo el mundo sabe que la serie armónica es divergente.

¿pero por qué es importante eso? por que si converge, puedes tratar la colección con una cantidad de recursos finito, es decir que determinadas colecciones consumiran una cantidad máxima de recursos, por contra, otras (divergentes) irán consumiendo recursos de la forma que marca su progresión. ¿Útil? pues no mucho, como todo lo que hago :) (no, no ha llegado el momento de hablar en tortugo, todavía).

¿y la simetría? bueno, pues tiene algo que ver con eso, de hecho, la simetría es una herramienta muy potente por que te permite tratar con el doble de resultados con los mismos recursos. O sea, que si una cpu puede gestionar 2 millones de datos, si existe simetria, podrias llegara a tratar potencialmente 4 millones.

Evidentemente ahora hace falta todo el trabajo de saber cuando sí y cuando no, pero está claro que no soy el primero en tratar las colecciones como funciones o series de funciones, o todos esos animalitos que tenemos en las mates (pregúntenle a los chicos del buscador de colorines)... a veces pienso que es una lástima que dejara la carrera a medias, pero lo que es cierto es que para mí es mucho más importante saber que aprobar (y así me fue...).

En fin, para terminar, simplemente una pregunta que me ha estado carcomiendo: "el producto de dos números negativos es un número positivo". Eso lo sabe todo el mundo, pero ¿por qué?

Labels: , ,