Caracterización de la popularidad de los archivos de un wiki a gran escala v3
1. Caracterización de la popularidad de los archivos de un
wiki a gran escala
Francisco Berrizbeitia
Universidad Simón Bolívar
Caracas 2013
fberrizbeitia@gmail.com
1 Introducción
El estudio de la popularidad en los sitios de internet ha sido objeto de varios estudios [1] [2] [3]
sin embargo la disponibilidad de trazas actualizadas para realizar estudios continua siendo un
problema para los investigadores. El sitio web Wikipedia.org pone a disposición del público en
general [4] sus trazas de acceso con una granularidad de una hora, con este trabajo
pretendemos hacer una primera aproximación para análisis futuros de estos datos disponibles.
En esta etapa del estudio pudimos comprobar la invariante que la popularidad de los artículos
se distribuye siguiendo una ley de potencia [1] [2] [3] en la actualidad y para un sitio web con
alto tráfico y un gran número de visitas, al menos para un periodo corto de tiempo (10 días),
en este punto pudimos proponer y comprobar un método ajuste de distribución, basado en un
muestreo de las observaciones, que permite aligerar la carga computacional en este tipo de
análisis. También pudimos detallar la conducta en el corto plazo de los artículos más populares
y plantear hipótesis sobre estas conductas para su posterior estudio. Uno de los aspectos de la
variación en la popularidad que consideramos especialmente interesante, es el efecto del
doodle de Google porque nos puede dar una idea de la magnitud en la variación del tráfico de
al tener un link directo en la página más visitada del mundo [5].
Los datos usados para el estudio corresponden a los accesos de usuarios del 1 al 10 de abril de
2013 entre las 5:00 y 5:59 PM. Para cada día se obtuvo la información de los cerca de 2.7
millones de artículos del sitio de Wikipedia en inglés. Los datos fueron limpiados utilizando un
script en PHP y almacenados una base de datos mysql antes de ser exportados nuevamente
para realizar el trabajo estadístico en R. En la Figura 1 podemos ver un esquema general de
este proceso.
Figura 1. Esquema general del proceso para realizar el ajuste de la distribución
de la popularidad de los archivos.
2. El resto del informe estará organizado de la siguiente manera: Primero haremos una
descripción detallada de los datos, después explicamos la metodología aplicada en el estudio,
posteriormente presentaremos el detalle de los resultados y terminamos con las conclusiones
y referencias.
3 Características de los datos
Los datos fueron obtenidos del repositorio público del proyecto de Wikipedia [4]. Los datos se
encuentran clasificados por días y con un granularidad de una hora, en nuestro caso decidimos
obtener los archivos correspondientes a las 17 horas, porque consideramos que era la hora del
día donde más usuarios se encontraban despiertos y podíamos obtener resultados más
representativos.
Cada archivo contiene el nombre, el tamaño en bytes y el número de acceso durante esa hora
del archivo seleccionado, esto para todos los archivos de todos los proyectos. En nuestro
estudio solo nos interesaban los artículos de la enciclopedia (wikipedia), los datos iniciales se
procesaron mediante un script escrito en php que generaba otro archivo de texto únicamente
con los datos de nuestro interés y en formato apropiado para hacer una inserción directa a la
base de datos, aprovechando las ventajas del método LOAD DATA INFILE implementado en
mysql. En la figura 2 vemos la implementación del algoritmo usado para realizar esta tarea.
for($i = 0; $i < $numLineas; $i++){
$linea = fgets($log);
$arrLinea = explode(" ",$linea);
}
if($arrLinea[0] == 'en'){
$test = stripos($arrLinea[1], ':');
$test2 = stripos($arrLinea[1], '.');
if($test === false and $test2 === false){
$linea = $arrLinea[0].":::".$arrLinea[1].":::".$arrLinea[2].":::".$arrLinea[3].":::".$idDia.":!:";
fwrite($dest,$linea);
}//if($test === false){
}
Figura 2. Implementación en PHP del algoritmo de obtención de los datos requeridos
para el estudio a partir de los archivos obtenidos del servidor
El archivo resultante cuenta únicamente con los artículos del proyecto de Wikipedia en inglés
eliminando los artículos de proyectos de enciclopedia en otros idiomas y otros proyectos como
Wikibooks o Wikimedia. Este procedimiento de le aplicó a cada uno de los archivos de los días
escogidos para el estudio, a saber, del 1 al 10 de Abril de 2013. El resultado fue una base de
datos con 27 millones de registros que recoge toda la información de interés para el estudio.
De la base de datos se generaron diferentes archivos de texto, adecuadamente formateados
para su trabajo con el software estadístico R.
4 Metodología
El estudio persigue dos objetivos a saber, verificar que se puede utilizar muestreo aleatorio
para el cálculo de parámetros para la distribución de la popularidad de los artículos de un sitio
de gran escala y el estudio de los archivos más populares para realizar observaciones y
formular hipótesis para trabajos futuros.
3. 4.1 Ajuste de la distribución
Para realizar el ajuste de la distribución en base a las muestras seguimos la metodología
propuesta por Ricci [6] que consiste en:
1. Análisis preliminar y formación de la hipótesis
2. Estimación de los parámetros de la distribución
3. Comprobación de los parámetros de la distribución
4.1.1 Análisis preliminar y formación de la hipótesis
En la literatura [1][2][3] encontramos que los artículos deberían distribuirse siguiendo una ley
de potencias, para comprobar esto graficamos los datos de la muestras de cada día como se
muestra en la figura 2.
Figura 2. Gráficos para toda la muestra (aproximadamente 2.700.000 artículos) para los 6 primeros
días del estudio. La tendencia se mantiene durante los siguientes 4 días.
En los gráficos de la figura 2 observamos que para la mayor parte de la muestra, los primero
2.300.000 artículos la gráfica se ajusta a una línea recta, en la figura 3 los gráficos para de ese
rango en 3 días de la muestra.
4. Figura 3. Gráficos de los primero 2.300.000 artículos ordenados por popularidad de mayor a menor
para los días 1, 6 y 10 del estudio.
El comportamiento del final de la cola sospechamos que se debe al tamaño de muestra que
solo contempla una hora del día, en [7] donde los autores del estudio trabajaron con un mes
de datos de la misma fuente, no presentan ese comportamiento al final de la cola.
4.1.2 Estimación de los parámetros de la distribución
Como se puede apreciar en las gráficas de las figuras 1 y 2 los gráficos no varían entre los días,
lo que hace creer que la función de distribución de popularidad es constante en el tiempo, al
menos en el corto plazo. Por esta razón la estimación de parámetros se realizó basándonos en
los datos de un solo día.
Para acelerar el cálculo de los parámetros de la distribución se decidió realizar la estimación
sobre una muestra, cosa que, hasta donde conocemos no es una práctica común en este tipo
de estudios.
Figura 4. Comparación del gráfico del conjunto original (2.300.000 observaciones) y de la muestra
(2.300 observaciones)
Como vemos en la figura 4 la forma de la curva del conjunto original de datos y de la muestra
obtenida a partir de ese conjunto son muy similares, dado esto decidimos seguir adelante y
hacer los cálculos de ajuste de parámetros con la muestra.
5. La obtención de la muestra se hizo mediante la implementación de un script en PHP que tomó
las observaciones con un espacio entre ellas de 1000 muestras. En la figura 5 podemos ver el
algoritmo que genera la muestra.
$step = 1000;
$cont = 0;
$linea = fgets($log);
while ($linea != false) {
$cont++;
if($cont%$step == 0){
}
fwrite($dest,$linea);
$linea = fgets($log);
}
Figura 5. Algoritmo para generar la muestra de trabajo
A partir de la muestra se realizaron los cálculos en R para la estimación de los parámetros,
utilizando las librerías “actuar” que tiene una implementación de la distribución Pareto que se
puede utilizar en conjunto con la función fitdtr de la librería MASS. En la figura 6 vemos el
código en R y las salidas.
Figura 6. Salida en R para el ajuste de parámetros en la distribución
4.1.2 Comprobación de los parámetros de la distribución
Queremos validar dos cosas: Que los parámetros estimados ajustan efectivamente la
distribución de dónde provino la muestra y comprobar que esa estimación en válida para el
conjunto de datos original. En ambos casos vamos a utilizar métodos gráficos, en específico,
qqplot.
En la figura 7 podemos observar los gráficos resultantes para la muestra y para el conjunto de
datos original.
6. Figura 7. qqplots de las observaciones vs los cuantiles teóricos para la cola en los datos originales y en
la muestra.
Los gráficos muestran que es posible encontrar los parámetros de la distribución utilizando el
método de muestreo propuesto en este trabajo, ya que en ambas gráficas se observa un
comportamiento similar y ajustado a una línea recta. Sin embargo, la distribución Pareto
propuesta no ajusta adecuadamente los datos para toda la muestra. En otros trabajos [7][1][2]
proponen la utilización de una distribución zipf para el ajuste, recomendamos para trabajos
futuros incluir esta distribución y comprobar si efectivamente se ajusta mejor para los
primeros datos de la observaciones.
4.2 Observación detallada de los archivos más populares del
sitio web.
En [1] se estudió la variación de la popularidad en servidores de video en el largo plazo, en [8]
la evolución de la popularidad en término de actualizaciones de los artículos y en [9] se
demuestra el efecto de eventos externos afectan la popularidad de los artículos en función de
los vínculos entrantes. En este trabajo vamos a observar el efecto en términos de
cuantitativos de estos picos de popularidad, observar su decaimiento y proponer posibles
causas.
Para realizar estas observaciones obtuvimos de la base de datos los 100 artículos más visitados
de cada uno de los días, luego corrimos un script sobre los datos para obtener el número de
veces que aparece cada artículo en el resto de los días, en la tabla 1 se puede ver en detalle el
número de ocurrencias tomando como base cada día del estudio. En la figura 8 podemos ver
un gráfico de las medias de cada número de ocurrencias.
7. Número de
Ocurrencias dia1
1
29
2
10
3
1
4
3
5
2
6
4
7
2
8
2
9
3
10
44
dia 2
13
12
2
9
3
4
2
5
6
44
dia 3
15
7
2
7
5
7
2
5
6
44
dia 4
15
8
4
7
4
5
2
5
6
44
dia 5
15
6
7
5
3
7
2
5
6
44
dia 6
15
5
7
6
4
8
3
3
5
44
dia 7
7
7
8
8
6
8
2
5
5
44
dia 8
23
6
3
6
5
3
2
2
6
44
dia 9
14
6
5
8
5
7
2
4
5
44
dia 10
9
5
6
9
8
8
2
4
5
44
Media
14,41
6,93
3,76
6,51
4,20
5,79
2,08
3,78
5,20
44,00
Desviación
estandar
6,35
2,25
2,46
1,87
1,72
1,91
0,32
1,25
0,95
0,00
Tabla 1. Detalle del número de artículos que aparecen en el top 100 tomando como base el día en
cuestión. Por ejemplo si tomamos como base el día 3 del estudio, la primera fila nos indica que 15
artículos solo aparecieron en el top 100 ese día.
Figura 8. Medias del número de artículos en el TOP 100, 44% permanecen los 10 días. 14% en
promedio solo dura un día.
Cómo podemos observar tanto en la tabla 1 como en la figura 8 notamos que hay dos grandes
grupos, aquellos artículos que se mantienen populares durante todo el estudio (44%),
entendiendo como popular el formar parte de los 100 artículos más visitados del sitio, y
aquellos que solo son populares por 1 día, que en promedio son el 15%, pero que en ocasiones
alcanzaron valores de hasta el 29%.
Esto nos lleva a pensar que existen varios factores que inciden en que un artículo se haga
popular, estos factores determinan el tiempo que un artículo será popular. Por el tiempo del
estudio no podremos analizar el tiempo del decaimiento en la popularidad de los artículos por
más de 10 días. Creemos pertinente realizar trabajos futuros en este sentido ya que si bien
existen estudios respecto a la variación de la popularidad en el tiempo, [1][2][3][8] no se ha
ahondado en las causas de la popularidad. En [9] se estudia como los eventos puntuales
8. generan vínculos entrantes pero no como la creación de estos vínculos repercute en la visitas y
por cuánto tiempo. En [7] los autores estudian la popularidad y la dividen en dos tipos:
popularidad puntual y popularidad sostenida. Esta división es consistente con nuestras
observaciones expuestas en la tabla 1 y en la figura 8. También en [7] se presenta una lista de
razones o causas externas que generar los diferentes tipos de popularidades.
En la figura 10 vemos los gráficos de visitas para los artículos del personaje histórico Maria
Sibylla y para la película Fiding Nemo de los estudios Pixar, ambas presentaron picos de
popularidad durante un único día.
Figura 10. Número de visitas durante el estudio para los artículos sobre Maria Sibylla y la película
Finding Nemo.
La subida en la popularidad de Maria Sibylla se debió a la aparición de un Google doodle en su
honor el día 2 de abril de 2013 a nivel a mundial, esto significo salto en términos de peticiones
de visitas de 1.142.914.186 en su pico más alto (el día de la publicación del doodle ) a niveles
de aproximadamente 2.000.000 de peticiones. Es importante recordar que estamos hablando
únicamente de las peticiones de una sola hora del día. Como podemos ver la aparición del
doodle generó incremento en la peticiones de un 87.274 % respecto a su valor más bajo de la
muestra.
El caso de la película Finding Nemo se debió al anuncio que realizó la popular presentadora
Ellen DeGeneres en su programa de una secuela de la película también el día 2 de abril de
2013 . En su pico el artículo fue pedido 614.947.009 de veces lo que representó una subida del
3950% respecto a su valor más bajo, es de notar también que el decaimiento en la popularidad
de este artículo fue con una curva más suave que en el caso del artículo anterior.
Estos son solo dos ejemplos pero consideramos importante, en especial para los
administradores de sitios web de distribución de contenido como blogs o sitios de noticias,
estudiar con mayor profundidad las causas de las subidas repentinas de popularidad en los
artículos para poder tomar las medidas necesarias para prever este tipo de picos cuando se
ejecuten acciones publicitarias, de posicionamiento en buscadores, etc. Asimismo creemos
que los log que pone a disposición la fundación Wikipedia son una fuente muy valiosa de datos
para llevar a cabo estas investigaciones.
9. 6 Conclusiones
En este estudio pudimos comprobar que es posible realizar un buen ajuste en la distribución
basándose en un muestreo aleatorio sistemático [10] de las observaciones, usando este
método se logró ajustar la mayoría de la cola a una distribución Pareto, sin embargo creemos
que una distribución Zipf se podría ajustar mejor a los datos. Pudimos comprobar que los
parámetros de la distribución hallados a partir de la muestra, efectivamente ajustan una
distribución para todas las observaciones (figura 7). También pudimos detectar dos eventos
especiales que dispararon la popularidad de algunos artículos, en particular el doodle de
Google y la mención de la presentadora estadounidense Ellen DeGeneres en su programa
como causas de las subidas repentinas de popularidad.
Creemos que estos resultamos demuestran, a pesar de lo corto del estudio, la gran utilidad
que tienen los datos que la fundación Wikipedia hace público en la realización de estudios
sobre la popularidad de los archivos en la web.
7 Referencias
[1] L. Cherkasova, M.Gupta. “Analysis of Enterprise Media Server Workloads: Access Patterns,
Locality, Content Evolution, and Rates of Change”. IEEE/ACM TRANSACTIONS ON
NETWORKING, VOL. 12, NO. 5, OCTOBER 2004, pp 781-790.
[2] C. Roadknight, I. Marshall and D. Vearer, “File Popularity Characterisation”, Proceedings of
the 2nd Workshop on Internet Server Performance (WISP ‘99), Atlanta, GA, May 1999.
[3] V. Almeida, A. Bestavros, M. Crovella and A. de Oliveira, ‘‘Characterizing Reference Locality
in the WWW’’, Proceedings of 1996 International Conference on Parallel and Distributed
Information Systems (PDIS ‘96), pp. 92-103,December 1996.
[4] Dirección URL para la obtención de las trazas de vistas de los artículos y archivos de los
proyectos de Wikipedia.org (Page view statistics for Wikimedia projects)
http://dumps.wikimedia.org/other/pagecounts-raw/
[5] Ranking de Alexa parea el momento del estudio colocaba a google.com como la página más
visitada del mundo. http://www.alexa.com/topsites
[6] V. Ricci. “Fitting distributions with R”. http://cran.r-project.org/doc/contrib/Riccidistributions-en.pdf . Release 0.4-21 Febrero 2005.
[7] A. West, Milowent. “Examining the popularity of Wikipedia articles: catalysts, trends, and
applications”. http://en.wikipedia.org/wiki/Wikipedia:Wikipedia_Signpost/2013-0204/Special_report. 4 Febrero 2013
[8] R. Almeida, B.Mozafari, J. Cho, “On the Evolution of Wikipedia”. ICWSM’2007 Boulder,
Colorado, USA.
[9] J. Ratkiewicz, S.Fortunato,A.Flammini,F. Menczer, A. Vespignani “Characterizing and
Modeling the Dynamics of Online Popularity”. PHYSICAL REVIEW LETTERS, Lett.105, 8 de
Octubre de 2010.
[10] Tipos de muestreo. http://es.wikipedia.org/wiki/Muestreo_en_estad%C3%ADstica