Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Diseñando cómo sería el sitio web de mis sueños (IV)

jcantero's Diary
Por jcantero
departamento látigos-de-7-colas , Sección Diarios
Puesto a las Sat Jun 6th, 2009 at 04:40:03 PM CET
En esta nueva entrega de la serie, nos centraremos en la primera de las herramientas que hacen al sistema funcionar, y ser útil: la página de usuario y la gestión de la cola de pendientes por "recomendaciones".

 


Ayúdame a filtrar (o como bucear en la larga cola)

Hemos dejado ya establecido que cada usuario tiene su propia página de usuario como punto de entrada y de interacción con el sitio, pero no hemos hablado de cómo se emplea esa página de usuario. Al final, la página de usuario es como un blog personal que tú te vas construyendo. Lógicamente, la primera forma de rellenar esa página es crear tus propias entradas. Hasta ahí, nada novedoso. Pero, como somos vagos, otras veces querremos "aprovecharnos" del trabajo de otras personas, y añadir sus entradas a nuestra página de usuario (porque su entrada es interesante, nos gusta lo que ha escrito, o simplemente no tenemos tiempo de añadir la noticia por nosotros mismos o no hay nada más que aportar). Y aqui viene la primera cuestión: ¿cómo filtrar de entre todas las entradas que crean los usuarios las que a nosotros nos puede interesar añadir?

Imagináos una larga lista de entradas formada por todas las entradas que va escribiendo la gente, de forma cronológica. Podría asemejarse a la lista de historias pendientes de Barrapunto o menéame. En cuanto tenga movimiento, el primer problema va a ser el tamaño. Eso ya lo vemos en nuestro lector de feeds, a poco que estemos suscritos a unos cuantos sitios. De hecho, la primera idea que se nos ocurriría sería implementar un sistema en el cual nosotros decidiéramos cuales de todos los usuarios del sitio queremos seguir, al estilo de twitter. De esta forma, la lista quedaría reducida sólamente a las personas escogidas por nosotros, y lo que realmente estaríamos implementando es un lector de feeds web (y además restringido únicamente a los usuarios del sitio). Y no es eso lo que queremos.

¿Qué es lo que queremos? Lo que queremos es hacer emerger entre esa marabunta de entradas las que a nosotros realmente nos interesan, pero si es posible con la mínima intervención posible por nuestra parte. ¿Algo un poco complicado, no? Bueno, en realidad no, si nos "aprovechamos" del trabajo de los demás para realizar la tarea de selección. Es decir, tratamos de aplicar la "inteligencia colectiva" al problema.

Sin embargo, como decía en uno de los comentarios de la anterior entrada, a cada uno de nosotros no nos interesan las opiniones de todas las personas del mundo mundial, sino que probablemente nos fiemos más del criterio de ciertas personas (por amistad, por afinidad de ideas, por admiración, ...) que de otras. Entonces el primer criterio de selección va a ser seleccionar a aquellos que nos van a ayudar en la selección. Llamarlos en este contexto "amigos" es incorrecto. En twitter se dice que son los que hacemos "following" (seguimiento), pero tampoco es el caso, ya que no es un seguimiento lo que vamos a hacer. "Recomendadores" no suena muy bien, tal vez "consejeros" o "asesores". Otros sinónimos de recomendación, como sugerencia, influencia, favoritismo o enchufe, nos podrían inspirar llamarlos "influyentes", "autoridades" (demasiado pretencioso), "contactos", ... Bien, realmente el nombre ahora mismo no me importa, así que llamémosles consejeros por escojer un nombre entre todos ellos (se admiten sugerencias).

Las lista de historias pendientes de cualquier sitio (a partir de ahora, la cola) se suele ordenar en orden cronológico. En nuestro caso, eso no interesa. Nos conviene que lo primero que veamos sea lo que más nos puede interesar, y de ahí para abajo en orden descendente de interés. De esta forma, nuestra atención se centra rápidamente en lo que nos concierne, y sólo si disponemos de más tiempo, podemos ir sumergiéndonos más hacia el fondo en busca de otras cosas que se nos pueden haber pasado por alto. ¿Cómo establecemos ese orden de interés? Ahí es donde intervienen nuestros consejeros. Consideremos que cada vez que uno de nuestros consejeros "recomienda" una historia o entrada, esta historia o entrada recibe 1 punto, de cara al orden en nuestra cola de pendientes particular. Si varios consejeros la recomiendan, tendrá varios puntos. Y cuanto más popular sea entre nuestros consejeros, más arriba se situará en la cola. Al final de la cola se situarán todas las historias no recomendadas por ninguno de nuestros consejeros, con cero puntos. Pero seguirán estando accesibles, solo que... mucho más abajo.

¿Y qué es en este contexto una "recomendación"? Porque si cada usuario tiene que estar dedicando tiempo en decidir si se la recomienda o no a otro usuario, habremos perdido toda la utilidad de la herramienta, porque es una operación costosa, y las operaciones costosas simplemente no se realizan. Sin embargo, en realidad ya tenemos un criterio por el que una persona recomienda o no a los demás una historia: ¡su inclusión en su propio blog o página de usuario! Lo que es interesante para mí, es automáticamente una recomendación para todos los que me tienen por consejero. Y, obviamente, mis entradas originales automáticamente las estoy recomendando (si no, ¿para que demonios las escribo? xD).

Pongamos un ejemplo para dejarlo claro. El usuario "jcantero" tiene entre su lista de consejeros al usuario "SinnerBOFH" y al usuario "iarenaza". SinnerBOFH escribe una entrada hablando de las ventajas del uso indiscriminado de "El Bate"™©®. Entonces iarenaza se loguea, ve la entrada (lo tiene también como consejero, por lo que la entrada para él tiene en ese momento 1 punto) y la añade a su blog/página de usuario. A continuación, es jcantero el que se conecta, y en su cola de pendientes la primera que se encuentra es la historia de SinnerBOFH, que tiene 2 puntos (1 punto proveniente de la recomendación de SinnerBOFH, ya que lo que uno escribe automáticamente se considera recomendado, y otro punto de la recomendación de iarenaza cuando decidió incluirlo en su blog/página de usuario). Ahora el usuario jcantero tomará la decisión de incluirlo o no en su blog/página personal, según le interese o no la historia, provocando a su vez si lo hace recomendaciones para otros usuarios que lo tengan como consejero.

De esta forma, es como si se votara, pero es cada usuario el que elige (y va añadiendo o quitando dinámicamente) el "censo electoral de votantes" de las historias/entradas que le pueden interesar. Pero con la salvedad de que él tiene la última palabra (de cara a su página y de cara a los que se fían de su criterio). El sistema de cola ordenada por recomendaciones es un filtro previo, basado en la "inteligencia colectiva", pero en una "inteligencia colectiva" seleccionada y acotada. Si el usuario es capaz de establecer consejeros con criterios que se asemejen a los suyos, es de suponer que en la cabeza de cola de pendientes tendrá entradas que le interesarán mucho más que al final de la misma. Si no es así, tendría que plantearse si realmente ha acertado en la elección de sus consejeros...

Estas herramientas de exploración y recomendación ya han existido y existen en el ámbito de los blogs, sólo que en un entorno heterogéneo de formatos y sistemas de blogs, por lo que el criterio de recomendación se basaba en el enlace: si alguien enlazaba la entrada del blog de otra persona, se anotaba o ponderaba ese enlace como si fuera una "recomendación" o un "interés". Un ejemplo de estas herramientas son el Blogómetro de Fernando Tricas et al o Technorati. Naturalmente el sistema era global (no había la personalización del filtro que establecemos con los "consejeros") y el objetivo buscado era tratar de emerger los blogs y las entradas más populares o de mayor repercusión en la blogosfera (filtro único).

Que trabajen los romanos, que tienen el pecho de lata

Aparte de basarnos en el criterio de otros humanos, otra de las aproximaciones posibles es establecer criterios automáticos basados en la inteligencia artificial. Es lo que se hace en algunos sitios web "dospuntocero", con dispar resultado. El ejemplo típico es el sistema de recomendaciones de libros de Amazon, que posteriormente ha sido llevado a las redes sociales de amistades, aunque no parece haber funcionado especialmente bien.

En el caso que nos ocupa, se trataría usar un algoritmo de aprendizaje que fuera capaz de --valga la redundancia-- aprender de las elecciones anteriores del usuario para ayudar en el proceso de selección posterior. Por ejemplo, el que el usuario añadiera a su blog/página de usuario entradas que tuvieran ciertos tags serviría para dar una puntuación extra en la cola de pendientes a aquellas entradas que los incluyeran (o al reves, restar a aquellas entradas que fueran rechazadas). O, de la misma forma, si incluimos muchas entradas de un mismo autor, el algoritmo podría decidir que lo proveniente de ese autor puede ser más recomendable que lo proveniente de cualquier otro, y darle también algo de puntuación extra. Esta puntuación adicional no debería ser significativa respecto a la proveniente de las recomendaciones humanas, pero sí serviría para ordenar las historias dentro de la "larga cola" que nos quedaría al final, y podrían servir para hacer emerger historias/entradas o autores que nos podrían resultar interesantes y que han quedado fuera del radar de nuestros habituales.

Alimentando a la bestia

Hasta ahora hemos considerado el sistema expuesto como un todo aislado del exterior, pero éste no es un escenario real. En la realidad, existen y existirán otras fuentes de noticias/historias/blogs provenientes de otros sitios externos, normalmente a través de un canal RSS. Estos canales RSS deberían ser integrables en el sistema como si fueran un usuario más, sólo que un usuario especial que no incluye entradas de otros usuarios, sino sólo las suyas propias (los elementos del RSS). Esto permitiría automatizar casi completamente el proceso de recomendar historias de origen externo, pudiendo incluso poner a estos meta-usuarios de los sitios que nos interesen como "consejeros" para resaltar sus entradas del resto.

El sistema presentado en esta entrega, que podíamos describir brevemente como "lo interesante emerge por recomendaciones, agrupadas en redes sociales de intereses" sería uno de los pilares fundamentales de "El Sitio Web De Mis Sueños", así que espero haberlo expuesto con total claridad. Ahora os toca a vosotros hacer el test stress del sistema, bombardeándome con vuestras objeciones y pegas.

En el siguiente episodio (porque esto aún no ha terminado O:-) ) hablaré sobre los sistemas de "añadido" de historias a nuestra página de usuario, "ecoluciones", posibles rechazos, orden y limpieza en la cola y demás.

< No está muerto lo que yace eternamente (16 comments) | Libertonia de vuelta con Apache 2.x + Mod Perl 2.x (11 comments) >
Enlaces Relacionados
· escomposlinux.org
· comentarios de la anterior entrada
· el Blogómetro
· Fernando Tricas
· Technorati
· inteligencia artificial
· More on jcantero's Diary
· Also by jcantero

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Diseñando cómo sería el sitio web de mis sueños (IV) | 4 comentarios (4 temáticos, editoriales, 0 ocultos)
Consejeros y tags (none / 0) (#1)
por atopos a las Wed Jun 10th, 2009 at 12:49:10 AM CET
(Información Usuario) http://los-pajaros-de-hogano.blogspot.com

Me parece muy interesante tu idea. Es más, de lógica que es, me extraña que no haya ningún sistema real que la incorpore, aunque a lo mejor lo hay y no se me viene a la cabeza.

El único matiz tiene que ver con el papel de las etiquetas o tags en el peso de la puntuación.

Yo les daría un peso relativamente grande. La razón es que los consejeros pueden ser polifacéticos e incluir en sus elecciones entradas que no nos interesan en absoluto a causa de su temática, aunque sigan siendo para nosotros, por sus elecciones en otras temáticas, consejeros de primer orden. Por ejemplo, me pueden interesar enormemente las elecciones de uno de mis consejeros en cuestiones relativas a software, pero nada en absoluto las referentes a política, o viceversa. Ahora bien, si resulta que en la cadena de consejeros, las elecciones políticas son radicalmente distintas de las mías, me vería en mi primera página con entradas que carecen de interés para mí.

Se puede pensar que es una situación improbable en la lógica del sistema, pero toda dependería de mi "rareza" respecto de ciertos asuntos. Una forma sencilla de evitar estas "improbabilidades" es conceder un peso mayor al sistema tradicional de etiquetas. Y no creo que ello complicase la sencillez de la implementación de un sistema como el que propones.



Beware Etiquetas (none / 0) (#2)
por jcantero (jcantero@agujero-negro.escomposlinux.org) a las Wed Jun 10th, 2009 at 08:55:34 PM CET
(Información Usuario) http://www.escomposlinux.org/jcantero/

Con las etiquetas se corre un riesgo: que se pueda abusar de ellas para "spamear" o resaltar un artículo por parte de terceros con aviesas intenciones. El problema viene de que es algo que no controlas directamente (la elección de consejeros sí, es una "lista blanca" al fin y al cabo). Por eso en el diseño no he querido darles excesivo peso. Tal vez es un tema a refinar.

--
"Papá, ¡Internet es más que una red pornográfica global!" -- Lisa Simpson
[ Padre ]


 
Taxonomías (none / 0) (#3)
por jcdenton a las Fri Jun 26th, 2009 at 10:35:09 PM CET
(Información Usuario) http://jcdenton.frenopatico.net/blog

Un listado de las taxonomías asociadas a una aportación y dos enlaces por taxonomía, "+ me interesa" o "- no me interesa", podrían facilitar el filtrado de aportaciones que realmente me interesan.

Un refinamiento sería que el sistema asociara ambas cosas: x temática del consejero y no me interesa pero las temáticas z de ese mismo consejero me interesan especialmente. Por poner un ejemplo, me interesan las entradas sobre netbooks de algunos usuarios de Libertonia pero no sus entradas sobre otros gadgets. Me interesan las noticias de trukulo sobre rol pero no soporto las entradas de Funalito alias "Munchkin" sobre Rolemaster.

[ Padre ]


Algoritmo (none / 0) (#4)
por jcantero (jcantero@agujero-negro.escomposlinux.org) a las Sat Jun 27th, 2009 at 03:32:16 PM CET
(Información Usuario) http://www.escomposlinux.org/jcantero/

El algoritmo automático debería aprender eso por sí mismo, ya que puntuaría positivo las entradas de rol (por ejemplo), pero negativo las del usuario Munchkin. Pero claro, estamos hablando de algoritmos de IA (redes neuronales, clustering, ...) y ya sabemos que éstos a veces hacen "cosas raras". O:-)

--
"Papá, ¡Internet es más que una red pornográfica global!" -- Lisa Simpson
[ Padre ]


 
Diseñando cómo sería el sitio web de mis sueños (IV) | 4 comentarios (4 temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda