Statystyczna analiza aktywności użytkowników blogów internetowych.#,&Zbigniew Kozioł, softquake@gmail.com#Część z prezentowanych danych była publikowana w internecie w latach 1999-2001. &English language version of this article. 1. WstępPrzedstawiono tutaj pewne wyniki analizy aktywności użytkowników list tyskusyjnych, forów i blogów internetowych. Niektóre z prawidłowości prezentowanych tutaj są obecnie dobrze znane wśród badaczy (w szczególności zależność opisująca liczbę wpisów (odpowiedzi na listy na listach dyskusyjnych email, czy też komentarzy na blogach www) od rankingu użytkownika (jego kolejności na liście najczęściej pisujących; W języku polskim używa się w matematyce pojęcia rangi zamiast angielskiego rank). Niemniej, gdy po raz pierwszy robiłem podobne analizy w roku 1999, zaobserwowanie owej prawidłowości było wtedy dla mnie odkryciem, zadziwi zaś ona zapewne wielu spośród czytelników. Inna kategoria danych przedstawionych tutaj dotyczy prób odnalezienia w zależnościach statystycznych pewnych cech wspólnych dla różnych użytkowników, cech zapewne wynikających z ich osobowości, a być może nawet pozwalających na ich identyfikację (dla celów wyłącznie czysto poznawczych, acz niecne zastosowania opisana metoda też zapewne potencjalnie mieć może). Są jednak te dane oparte na starych pomiarach, wartoby je uzupełnić nowszymi. Najbardziej zafascynowała mnie trzecia obserwacja, iż aktywność na forach można z wielką dokłądnością opisać przy pomocy funkcji przypominającej funkcję rozkładu prawdopodobieństwa Fermi-Diraca [1] (ogólniej, przez pewną jej niewielką modyfikację). Jakkolwiek obserwacja ta była dokonana jeszcze w 1999 roku a jej opis był przez długi czas dostępny w internecie, wydaje się, że nadal ten rodzaj analizy znany nie jest. Ta okoliczność stała się dla mnie motywacją dla przeprowadzenia nowych pomiarów, na obecnie istniejącym, aktywnym blogu internetowym, Dzienniku gajowego Maruchy [2]. Dla porównania i uzupełnienia przedstawione są też wyniki analiz wykonanych dawniej dla list dyskusyjnych IYP-L [3], Polska [4], APAP [5] i Poland-L [6] oraz TLUG [7]. Wybór blogu Maruchy do analizy w sensie metodologii badawczej jest przypadkowy ale jak najbardziej poprawny. Dla mnie zaś wygodny, boć żem uczestnikiem tego blogu od dawna, zaś znajomość wirtualna niektórych spośród jego uczestników oraz znajomość języka polskiego są mi tu pomocne. Ta trzecia obeserwacja, o podobieństwie pewnych rozkładów statystycznych z funkcją Fermi-Diraca, aż prosi się o jakieś matematyczne czy bardziej fizyczno-socjologiczne wytłumaczenie, którego tutaj nie znajdziecie. 2. Zbieranie i obróbka danych.Zainteresowani mogą sobie ściągnąć wszystkie artykuły i dyskusje do nich, od początku Gajówki (6 września 2006 roku, posting od Wieslaw Kwasniewski) do dnia 30 lipca 2014: marucha2014.tar.gz (550 MB przed rozpakowaniem; po rozpakowaniu około 2 GB). W pliku jest też trochę innych materiałów, skryptów, rysunków, opracowanych danych statystycznych, itp. Do automatycznego ściągnięcia wszystkich artykułów używane były następujące skrypty napisane w języku Perl [8] (w ich kodzie zawarte jest nieco wyjaśnień): Oprócz tego używano do obróbki danych szereg innych skryptów, w tym komend linuxowych [9], zaś rysunki przeważnie wykonywano w programie GnuPlot [10].
Oto dwa pliki zawierające najważniejsze dane otrzymane z analizy: Dane w pliku users_activity.dat są zapisane w pięciu kolumnach odseparowanych od siebie znakiem TAB. Na przykład tak: 2006-09-13 Środa 08:32:22 Wieslaw Kwasniewski 2006_09_06_hello-world.html Pierwsza kolumna to data wpisu, następna to dzień tygodnia, potem czas wpisu (UTC), autora (zwykle anonimowy), potem nazwa pliku oryginalnego artykułu (nzawa ta zawiera datę zamieszczenia artykułu oraz jego tytuł). Dane w pliku users_ranking.dat należy traktować jako przybliżenie opisu aktywności konkretnych osób. Na przykład, użytkownik podpisujący się jako Zbigniew Koziol (na 28 pozycji) to ta sama osoba co i użytkownik Zbigniew (pozycja 102), a nawet Zbigniew Józef Kozioł (pozycja 1630), Zbigniew k (pozycja 11044), itd. Podobnych przypadków jest więcej. Nie zmienia to jednak ogólnego charakteru analizowanych dalej prawidłowości. 3. Zwycięzca zabiera wszystko.We wczesnych latach czterdziestych pewien profesor z Harwardu zajmujący sie lingwistyką zapragnął był policzyć, jak czesto poszczególne słowa są używane w jezyku angielskim. Nie używano wtedy jeszcze komputerów do podobnych badań. Przeto tym bardziej należy podziwiać jego cierpliwość analizowania dużych ilości tekstów (teraz podobne analizy można wykonać w kilka sekund [8]). George Kingsley Zipf [12] zauważył, że częstość słów w tekstach daje się przedstawic w bardzo prosty sposob na wykresie. Postanowił napisać książkę na ten temat. Ktoś mu doradził, aby spróbował użyć funkcji Pi ~ 1/(ia) do opisu rozkładu prawdopodobienstwa, gdzie i numeruje częstość występowania poszczególnych słów, zaś a jest pewnym wykładnikiem bliskim jedności. Zipf zapewne nie spodziewał się, jak wiele zjawisk w przyrodzie daje się opisać tak prostą formulą [11]. Zachwyca na przykład matematyczna prostota wyników opisywanych w tym artykule: The terms searched most frequently by web users [13]. Zastanawiającym jest, iż bardzo podobne zależności zaobserwowano także przy statystycznej analizie wyników niektórych gier kompuerowych: Statistical analysis of scores in Glines - a possible reflection of success and failure in life activities [14]. Przejdzmy jednak do konkretnego przykładu, do opisu aktywności użytkowników list dyskusyjnych. Do analizy użyto danych z archiwów dwóch list: Poland-L oraz APAP. Policzono, ile było wpisów od poczatku 1997 roku do czerwca 2000 roku. Następnie policzono, ile bylo wpisów od poszczególnych osób (Rysunek 1 i 2). ![]()
![]()
Na Poland-L w tym okresie wysłano 28510 listów, zaś na listę APAP wysłano 25475 listów. Okazuje się, że w przypadku obu tych list dyskusyjnych zaledwie kilka osób dominuje w dyskusjach. Oto lista najbardziej aktywnych z listy Poland-L, wraz z liczbą dokonanych przez nich wpisów: 1380 Jacek Arkuszewski 1339 Wilhelm Glowacki 1225 Andrzej Szymoszek 924 Mirka Kozak 784 Janusz Styber Warto oto zauważyć, że dwie pierwsze osoby wysłały łącznie okolo 10% listow. Zaś 5 pierwszych osób wysłało okolo 20% wszystkich listow. Natomiast 109 osób wysłało list tylko jeden raz. W czasie tym liczba uczestników listy przekraczala nieco liczbę 300. Wyniki dla listy APAP są bardzo podobne. Oto najaktywniejsi użytkownicy: 2063 Janusz Styber 1865 John Radzilowski 909 Ted Mirecki Te trzy osoby są autorami prawie 20 procent wszytkich wpisów. Zaś jeden raz na listę APAP napisało 110 osób. Lista APAP liczyła około 150 członków i liczba ta nie zmieniała się istotnie w ciągu badanego okresu (to inna ciekawa wlasność list dyskusyjnych - każda z nich posiada własną, charakterystyczną ilość osób zapisanych). Bardzo podobny jest charakter aktywności użytkowników na listach dyskusyjnych IYP-L i Polska, jak pokazano na Rysunkach 3 i 4, odpowiednio. ![]()
![]()
Możnaby zastanawiać się, czy opisane prawidłowości nie są czasem własnością list dyskusyjnych w języku polskim (acz APAP jest listą angielskojęzyczną). Albo może wynikają z tematyki list dyskusyjnych. Te dotąd omawiane były listami o bardzo ogólnym i szerokim zakresie poruszanej tematyki. Oto więc dla dokazania, iż własności owe mają charakter szerszy wyniki analizy dyskusji z listy TLUG (Toronto Linux Users Group) [7] (Rysunek 5), listy skupiającej niemal wyłącznie profesjonalistów wysokiej klasy w dziedzinie systemu operacyjnego Linux oraz programowania komputerowego, gdzie nade wszystko omawiane są problemy techniczne. ![]()
Analiza aktywności użytkowników blogu Dziennik Gajowego Maruchy (Rysunek 6) potwierdza, iż w przypadku blogu mamy do czynienia z zależnościami podobnymi, jak i dla list dyskusyjnych. Występuje tu ten sam schemat aktywności uczestników, w przybliżeniu opisywany potęgową zależnością (rozkład Zipfa), a dokładniej przy pomocy funkcji stretched-exponential [12]. Oto najaktywniejsi użytkownicy blogu, wraz z liczbą ich wpisów w badanym okresie (obszerniejsze dane znajdują się w pliku users_activity.dat): 1 23796 Marucha 2 12238 JO 3 10659 Rysio 4 6925 166 bojkot TVN 5 5966 Krzysztof M 6 5838 Boydar 7 5673 RomanK 8 5376 aga 9 4589 Fran SA 10 4557 Griszka ![]()
Nie istnieje powszechnie przyjęte matematyczne wytlumaczenie opisanych zależności. Istnieje kilka konkurujacych ze sobą hipotez, ale mają one raczej spekulatywny charakter. Zadziwiajace jest jednak to, ze tak proste funkcję (rozkład Zipfa [11] czy zmodyfikowana funkcja eksponencjalna [12]) pasują do opisu tak szerokiego zakresu zjawisk: od częstości występowania słów w jezyku, poprzez liczbę łącznikow do stron www, do ilości osob piszącyh na listach dyskusyjnych, czy częstości wizyt na stronach www, rozkladu wielkosci miast i liczby ich mieszkańców, a zapewne też do takich spraw jak aktywność polityczna w spoleczeństwie, jak i wiele innych. 4. Czy można odgadnąć tożsamość anonimowego użytkownika?"Odgadnąć" to powiedziane za wiele. Można czasem zgadywać. Rysunki 7 i 8 pokazują aktywność na listach IYP-L i Polska, dla kilku użytkowników tych list. Zaś Rysunek 9 porównuje dane dla tych samych osób, ale na różnych listach dyskusyjnych. Czasem można się domyśleć na podstawie akywności, kto jest kim. Dotychczas omówione zależności nie mówią nic na temat dynamiki procesu dyskusji na listach. Wykresy takie jak te na rysunkach [7-12] dają nam pewne wyobrażenie w tym kierunku. Otrzymano je poprzez pomiar odstępu czasu między każdymi kolejnymi wpisami zamieszczonymi czy to na liście dyskusyjnej czy na blogu. Następnie rysowana była w funkcji czasu zależność ilości wpisów, po czym dokonano normalizacji ilości wpisów do jedności dla czasu dążącego do nieskończoności. Matematycznie tego rodzaju zależności nazywane są dystrybuantami. Intuicyjnie łatwo jest zinterpretować tak zdefiniowane pojęcie dystrybuanty: wartość tej funkcji w zależności od czasu oznacza prawdopodobieństwo ukazania się następnego wpisu pomnożone przez całkowitą liczbę wpisów w całej historii, a więc odpowiada ta liczba całkowitej liczbie wpisów w określonym czasie. Trzeba mieć jednak na uwadze że czynnik normalizacji do jedności dla dużych wartości czasu zmienia się jednak z czasem. Dystrybuanta ma u nas tę ciekawą własność iż nie zmienia się jednak w czasie, pod warunkiem oczywiście iż badany przedział czasowy jest dostatecznie duży. Innymi słowy, dystrybuanta opisuje w jakiejś mierze dynamikę wpisów na blogu/liście dyskusyjnej i jest funkcją charakterystyczną dla konkretnego blogu/listy. Pytaniem ciekawym jest więc, czy funkcje owe będą zależeć od użytkownika blogu, czy będą zależeć od listy dyskusyjnej albo od dyskutowanego tematu. ![]()
![]()
![]()
Dla uzupełnienia i porównania, Rysunek 10 przedstawia aktywność na blogu Maruchy. Co najmniej dwóch użytkowników tego blogu ma też swoje wykresy na Rysunkach 7, 8, 9. ![]()
5. Pisanie jako proces stochastyczny: analogie z dynamiką elektronów w materii.Zacznijmy od analizy "symetryczności" funkcji przedstawionej na rysunku 11, opisującej prawdopodobieństwo pojawienia się wpisu na blogu w funkcji czasu, P(t): niemal idealnie tę samą krzywą dostaje się, gdy wykreślić zależność 1-P(1/t). Podobną własność mają też dane przedstawione na rysynkach dla list dyskusyjnych (Rysunki 7 i 8 dla list dyskusyjnych IYP-L oraz Polska, jak i nie pokazane tutaj rysunki dla innych omawianych tutaj list). Świadczy to o tym, że jako funkcji P(t) powinniśmy używać funkcji postaci P(t)=P0(t) / (1.0+P0(t), gdzie P0(t) jest monotoniczną funkcją t rosnącą od zera dla małych wartości t do nieskończoności przy dużych wartościach t. Funkcje P(t) tego rodzaju nazywane są funkcjami sigmoidalnymi. Ponadto, powinniśmy użyć funkcji spełniającej warunek P0(t) ∝ 1/P0(1/t) (łatwo to dokazać przy pomocy prostej algebry). Najprostszą ich reprezentacją byłaby taka, gdy jako P0(t) przyjąć funkcję potęgową ta z odpowiednią pasującą wartością potęgi a. Dodatkowo, powinniśmy przeprowadzić odpowiednią normalizację t: Okazuje się, że rzeczywiście, tego rodzaju zależność, P0(t)=(t/t0)a), gdzie a oraz t0 są pewnymi parametrami dopasowania, doskonale przybliża dane z Rysunku 11. Zauważmy, że funkcja taka równoważna jest funkcji w postaci exp(a*log(t/t0)) - stąd i analogia z rozkładem Fermi-Diraca (FD) [1], z tą różnicą, iż w przypadku rozkładu FD wykładnik potęgowy a równy jest 1. W naszym przypadku rolę odpowiadającą energii elektronów (dziur) w ciele stałym spełnia log(t), zaś rolę potencjału Fermiego parametr log(t0). ![]()
Interesującym jest odpowiedź na pytanie, czy sigmoidalny opis z Rysunku 11 ma zastosowanie w przypadku dyskusji w wąskich tematach, pod konkretnymi artykułami. Dla znalezienia na nie odpowiedzi wybranych zostało kilka z bardziej aktywnych wątków, budzących zainteresowanie przez dłuższy okres czasu, jak opisuje to Tabela I. Wyniki przedstawia Rysunek 12. Obserwowany jest ten sam charakter aktywności w konkretnych tematach jak i dla całego blogu, z tym że parametry dopasowania (a oraz t0) są tym razem nieco inne. W szczególności, w Tabeli I zwraca uwagę prawidłowość: im mniejszy wykładnik a, tym większy charakterystyczny czas t0.
![]()
6. Podsumowanie.Pokazano, iż rozkład Zipfa dobrze opisuje liczbę wpisów od użytkowników list dyskusyjnych i blogów internetowych w funkcji ich rangi. W wielu przypadkach lepszy jednak opis uzyskuje się, gdy korzystać ze zmodyfikowanej funkcji eksponencjalnej (stretched exponential) zamiast z potęgowej funkcji rangi. Korzystanie z dystrybuanty ilości wpisów w funkcji czasu jest dobrym narzędziem do badania dynamiki wpisów. Każda z list dyskusyjnych posiada swą własną dystrybuantę. Wyniki analiz sugerują, iż dynamice wpisów każdego z uczestników dyskusji można także przyporządkować własną, charakterystyczną dystrybuantę, jak i dla każdego tematu (wątku) dyskusji istnieje inna jej postać. Dla blogów czy list dyskusyjnych dystrybuanta opisująca dynamikę aktywności wszystkich uczestników dyskusji razem wziętych może być dokładnie opisana przy pomocy funkcji P(t)=P0(t) / (1.0+P0(t), gdzie P0(t)=exp(a*log(t/t0)). Podobna zależność opisuje także aktywność uczestników dyskusji przebiegających w konkretnych wątkach dyskusyjnych. 7. Przypisy.
|