Analiza społeczności serwisu Reddit

- autor: tsissput

Serwis Reddit jest jednym z największych obecnie serwisów społecznościowych. Składa się on z wielu tzw. subredditów, na których użytkownicy mogą umieszczać linki oraz komentować ich zawartość, zmieniać ich pozycję w rankingu za pomocą głosowania, a także tworzyć własne tematyczne subreddity. Lepiej wytłumaczy to jednak ta infografika. Według ostatnich dostępnych danych liczba użytkowników serwisu wynosi osiem milionów [źródło], natomiast liczba subredditów 67 tysięcy [źródło].

Strona główna serwisu Reddit

Postanowiliśmy przyjrzeć się strukturze serwisu i odszukać ciekawe zależności. Pierwszym problemem było zebranie danych.

Stworzenie modelu sieci

Serwis Reddit udostępnia poprzez API informacje o komentarzach, nowych wpisach, subredditach i użytkownikach. Niestety, w przypadku tych ostatnich należy znać wcześniej identyfikator subreddita lub uzytkownika. Jest to problematyczne, bo trudno dobrać metodę znalezienia użytkowników i subredditów tak, by zebrane dane były reprezentatywne. Pojawiają się też pytania jak bardzo zagłębiać się w historię wpisów i komentarzy dodawanych przez użytkownika, a także ile dokładnie róznych subredditów i użytkowników analizować. Jeśli zacząć przeszukiwanie od pewnego ziarna, prawdopodobnie nie uda nam się stworzyć dobrej reprezentacji zależności między subredditami, bo niektóre z nich mogą być nieosiągalne z obranego punktu wyjścia. Z tego powodu postanowiliśmy wykorzystać metodę w API, pozwalającą na pobranie ostatnio dodanych komentarzy. Stwierdziliśmy, że zebranie danych o komentarzach i przypisanie ich do danych redditów da nam dobre pojęcie o ich aktywności w czasie w którym dane zostały zebrane. Jeżeli dany użytkownik komentował na różnych subredditach, traktowaliśmy to jako powiązanie między tymi subredditami – reprezentująca je krawędź grafu miała tym większą wagę, im więcej użytkowników spełniało tę zależność. Ze względu na ograniczenia w ilości komentarzy, które można było pobrać za jednym razem, oraz ograniczeniem na ilość zapytań w danym czasie postanowiliśmy zbierać dane na żywo. W rezultacie zebraliśmy 356 tysięcy unikalnych komentarzy w ciągu osiemnastu godzin, przypadających na 4401 subredditów.

Okazało się, że przeważająca większość subredditów otrzymała zaledwie jeden lub dwa komentarze, co ilustruje poniższy histogram (nie uwzględnia on pojedynczych subredditów, które miały nawet kilkanaście tysięcy komentarzy).

Histogram liczby komentarzy przypadających na subreddit

Poniżej znajduje się mapa sieci dla subredditów, które otrzymały co najmniej 30 komentarzy. Rozmiar wierzchołka jest związany z liczbą komentarzy dodanych do danego subreddita. Jak widać ilość zebranych danych znacząco wpływa na czytelność grafu, mimo to naszym zdaniem warto ją umieścić, gdyż daje lepszy pogląd na różnice w rozmiarach niż histogram.

Sieć powiązań między subredditami

Najpopularniejsze subreddity

Według zebranych przez nas danych lista najpopularniejszych subredditów przezentuje się następująco (w nawiasach liczba komentarzy):

  1. AskReddit (41 120)
  2. funny (20 731)
  3. pics (16 899)
  4. politics (12 532)
  5. atheism (12 425)
  6. WTF (11 183)
  7. trees (8 961)
  8. gaming (8 739)
  9. fffffffuuuuuuuuuuuu (7 160)
  10. IAmA (6 817)
  11. AdviceAnimals (6 230)
  12. videos (4 414)
  13. leagueoflegends (4 143)
  14. mylittlepony (3 525)
  15. todayilearned (3 264)
  16. worldnews (3 216)
  17. gonewild (3 078)
  18. TwoXChromosomes (3 001)
  19. starcraft (2 580)
  20. aww (2 553)

Ranking ten zawiera 13 z 20 subredditów (pogrubiona czcionka) będących domyślnie dodawanymi do subskrypcji dla nowych lub niezalogowanych użytkowników, co z pewnością wpływa na ich popularność na zasadzie efektu śnieżnej kuli: ponieważ są popularne, są domyślne, a ponieważ są domyślne, są popularne.

Największy silnie spójny komponent sieci

Największy silnie spójny komponent sieci zawiera 82.9% wszystkich wierzchołków. Liczba wszystkich spójnych komponentów grafu to 748, stąd łatwo zauważyć, że na każdy z pozostałych komponentów przypada po jednym wierzchołku. Jest to dość zaskakujące, bo można by się spodziewać istnienia co najmniej kilku komponentów mających po 2–3 wierzchołki. Okazuje się jednak, że każdy wierzchołek połączony z przynajmniej jednym innym wierzchołkiem znajduje się już w NSSK.

Średnica sieci

Średnica sieci wynosi 6, determinująca ją ścieżka przebiega od subreddita „Adoption” do „disco_biscuits” (poświęconego „Disco Biscuits”, zespołowi grającemu muzykę, zgadza się, disco). Na tym przykładzie dobrze widać, że oddalenie w grafie przekłada się na oddalenie tematyczne. Średnia odległość w grafie miedzy wierzchołkami wynosi 2.54.

Współczynnik grupowania sieci

Współczynnik grupowania sieci wyliczony przez program „Pajek” wynosi 0.1383. Jeśli porównać tę wartość ze współczynnikiem dla sieci WWW, który wynosi 0.1078 (dane z materiałów wykładowych), widzimy że są one zbliżone do siebie. Zgadza się to z naszą intuicją – serwis Reddit sam jest częścią sieci WWW, w dodatku jego funkcjonalność to agregacja linków do różnych zasobów internetowych.

Najsilniejsze połączenia w grafie

  1. AskReddit <-> funny (2108)
  2. funny <-> pics (2002)
  3. AskReddit <-> pics (1738)
  4. WTF <-> funny (1446)
  5. AskReddit <-> WTF (1288)
  6. WTF <-> pics (1120)
  7. AdviceAnimals<->  funny (861)
  8. funny <-> gaming (838)
  9. AskReddit <-> politics (793)
  10. AskReddit <-> gaming (778)
Można doszukiwać by się zależności między subredditami na podstawie powyższych połączeń, wystarczy jednak zauważyć, że wszystkie subreddity które się w nich pojawiają należą do owych 20 z domyślną subskrypcją. Tak silne powiązania biorą się prawdopodobnie stąd, że wpisy z tych subredditów prezentowane są na stronie głównej.

Podsumowanie

Ilość zebranych danych znacznie utrudniła wizualizację sieci. Można próbować ograniczyć jej rozmiar poprzez usunięcie wierzchołków, trudno jednak znaleźć dobre kryterium. Dla celów wizualizacji usuwaliśmy wierzchołki z małą liczbą połączeń, trudno jednak uznać to za sprawiedliwą miarę.

Największy komponent spójny grafu zawiera prawie 83% wszystkich wierzchołków, każdy z wierzchołków pozostałych tworzy oddzielny komponent.

Między wszystkimi subredditami promowanymi na głównej stronie istnieją silne powiązania, należą one też do grupy z największą liczbą komentarzy. Przykład ten dobrze wizualizuje efekt kuli śniegowej i przyrostu wykładniczego.

Sieć w formacie programu „Pajek” dla zainteresowanych: [link], oraz skrypty, które posłużyły do zebrania danych [link].

Advertisements

One Comment to “Analiza społeczności serwisu Reddit”

  1. Pobawiłem się chwilę w wizualizowanie tych danych. Coś tam nawet widać na tym grafie więc może wam się przyda:

    Kolor wg algorytmu „community detection” z Gephi, wywaliłem też węzły o stopniu wierzchołka zero. Plik gephi:
    http://www.lome.pl/wp-content/uploads/reddit.zip

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d blogerów lubi to: