Archivo de la etiqueta: votos

Volcado en texto plano (“raw”) de los votos de noticias

Israel Herraiz, en un comentario en G+, nos solicitó un volcado de la base de datos para hacer análisis de votos para detectar spam. Ya hicimos lo mismo para varias universidades y centros de investigación que nos lo solicitaron, pero es un proceso laborioso ya que tenemos que asegurarnos que no se envía ningún dato personal (lo que significa tenemos que construir el SQL para obtener sólo los datos anónimizados que nos solicitan). Sigue leyendo

Penalización de “endogamia de votos”

Desde hace unas horas está funcionando el nuevo “promote” (código fuente) que calcula y penaliza las “altas endogamias” (o afinidades) de votos entre usuarios. Así se evitarán que un grupo de usuarios se voten siempre entre ellos y puedan publicar las noticias más fácilmente.

La técnica es algo similar a la “diversidad” que usan en Digg –al menos así lo cuentan– pero en nuestro caso se usa directamente el karma que aporta cada usuario a una noticia y se aplicará a aquellos usuarios que votan a [casi] todos los envíos de otros usuarios.

La penalización consiste de un coeficiente entre 0 y <1  que se calcula al karma aportado por cada usuario. El coeficiente de afinidad representa el porcentaje de votos a los envíos de un usuario. Así en el último mes A votó un 30% de los envíos de B que obtuvieron muchos votos (aunque no haya salido publicada), los siguientes votos de A a B valdrán 0.7. Si en cambio votó al 90%, el voto valdrá 0.1 de su valor original –con un mínimo de 5–. Si en cambió no llegó a votar al 10% (por ahora, mientras está de pruebas) el voto no sufrirá penalización alguna.

Además de la ventaja fundamental de evitar “endogamias”, también penaliza a aquellos usuarios que votan “a lo loco” basado sólo en el título o autor del envío.

Pueden surgir problemas, como que requiera varias horas hasta que los coeficientes de cálculo se estabilicen, o que haya que hacer ajustes al promote por penalizaciones injustas. Estaremos muy pendientes de esto en los días siguientes.

Actualización (9/10 21 hs): Después de probar en parelelo durante casi 24 horas –casi no hay casos para comprobar–, lo mismo funciona para los votos negativos. El cálculo es similar pero negativos, es decir que el mínimo valor negativo que puede dar es -5.

Aclaración: No afecta al karma de los usuarios, sólo afecta al cálculo del karma total de las noticias. Aunque haya “afinidad” del 100% el voto siempre cuenta como positivo y suma karma según lo explicado arriba.

Nota: Para los que vayan a mirar el código fuente, la función que calcula la afinidad está al final, se llama check_affinity(). Puede verse como se aplica en el coeficiente un par de líneas más abajo desde donde es llamada la función (que devuelve un diccionario con los coeficientes para cada usuario).

[*] Sí, los hay, especialmente esos que usan foros –y mésenyers– para avisar que han subido noticias de sus sitios/foros/temáticas. Últimamente hemos detectado varios, es la motivación, para evitar estos “abusos” sin que nos obliguen a banear sitios o cuentas de usuarios.

Mitos del karma: votar a las más votadas da más karma

Parece que uno de los mitos sobre el karma es que si se votan las noticias con más votos o que están en el promote o en las populares de pendientes el karma sube mucho. Es absolutamente falso, el voto positivo a las noticias influye muy poco, y en muchos casos puede afectar negativamente.

Los votos positivos cuentan más para el karma cuanto más temprano se vote,  aún así la influencia es muy pequeña. La media del último cálculo es exactamente 0.175577 puntos, el máximo que dio es 4.733 y el mínimo  -4.167.

En pocas palabras, aporta muy poco de media y el máximo sólo lo pueden tener muy pocas personas (las que siguieron durante tiempo las pendientes y votaron “bien” rápidamente, a los pocos minutos que hayan sido enviadas).

La mejor forma de conseguir karma es enviando noticias y haciendo buenos comentarios. Voy a coger por ejemplo el “log” (lo puede ver cada usuario en su perfil) del usuario utah (sólo porque fue uno de los que me preguntó por la fisgona). Este usuario no publicó ninguna noticia en los últimos días, pero envió varias y sin embargo su karma actual es 13.53.

Su log es el siguiente:

1. events: votes: 209, logs: 60
2. Links karma positive average: 110, negative average: 0.71428571428571, karma1: 3.7283950617284
3. Votes to links: votes to published: 10, to non published: 24 to discarded: 0
4. points to published: 5, point average: 0.5, karma2: 0.43047619047619
5. Comment votes received: votes: 34, votes karma: 256, karma4: 4.5176470588235
6. Utah Karma base: 6.0303616184678
7. Final karma: average: 13.525375985899, calculated karma: 14.706879929496, increasing (status: normal)

Línea por línea:

  1. En total tiene 209 votos y 60 eventos de comentarios, notas o envíos.
  2. La media del karma que recibió de votos en sus noticias es de 110, los negativos 0.71, por lo que le otorga 3.73 puntos.
  3. Votó a 10 noticias que luego salieron publicadas y 24 a no publicadas. No votó negativa a ninguna noticia que luego haya sido descartada.
  4. Los “puntos” totales a noticias publicadas es 5, la mitad de los votos, eso es porque su “coeficiente temporal” es de 0.5, es decir que de media votó las noticias prácticamente a la mitad del tiempo entre que fueron enviadas y salió publicada. Es un buen número, sin embargo sólo le otorga 0.43 puntos de karma.
  5. Los votos que recibieron sus comentarios, en total 34 votos con un karma total de 256, se le otorgan 4.52 puntos de karma.
  6. El karma base por su antigüedad ( 6 + 0.03), 6.03
  7. El karma final calculado del período es 14.71, que resulta de sumar 3.73 + 0.43 + 4.52 + 6.03. Luego se hace la media ponderada con el karma anterior (alfa = 0.8 cuando se incrementa), que es igual a 14.71 * 0.8 + karma anterior * 0.2. Ese es el resultado final de 13.53.

O sea, si lo que se pretende es incrementar karma, es mejor enviar noticias razonables y hacer buenos comentarios. El votar “desesperado” a las noticias no sirve de nada, sólo sirve votar bien “temprano”. Si se espera a ver las noticias más votadas o las que aparecen en las populares, lo más probable es que sea penalizado. Esta penalización es justamente para minimizar  el karmawhorismo y los bots.

Conclusión: Vota lo que te venga en ganas, no busques el karma votando a las noticias con más votos o karma. No servirá de nada, a menos que tengas un ojo muy bueno y estés mucho tiempo en el Menéame mirando cuáles son las buenas noticias que entran y votarlas inmediatamente. En todo caso, mirar las populares sirve fundamentalmente para votar negativo a aquellas que no te parece que deban ir a portada, o darle un pequeño empujon a aquellas que te parezcan buenas. Pero nada más [*].

PS: también penaliza votar negativo en exceso a comentarios y noticias, pero sólo en “exceso”. En el caso de noticias es más o menos si la proporción de negativos de noticias no descartadas es muy alta (la penalización sale con el comentario Unfair negative votes to non discarded). En el caso de comentarios si votas negativos a muchos comentarios que acaban con un karma positivo (el aviso que sale en estos casos es Unfair negative comments votes).

[*] El objetivo fundamental del promote es poder verificar o controlar cómo se hacen los ajustes de karma para cada noticia. Es decir una herramienta para despejar dudas y un control al propio menéame. Algunos dicen que haber publicado el código no garantiza que sea el mismo que hace los cálculos. Por eso también publicamos los cálculos en “tiempo real”.