
Pred jedno godinu dana igrao sam se sa idejom skeniranja Twitter social grapha, tj mreže Twitter korisnika u kojoj svaki korisnik pokazuje na one twitteraše koje followa. Ideja je bila da se utjecaj pojedinog Twitteraša ne očituje u broju korisnika koji njega prate, nego je ovisan i o utjecajnosti samih followera.
Od PageRanka…
U načelu, to je i osnovna ideja Google PageRank algoritma koji se pokazao poprilično uspješnim pri rangiranju Web stranica. Ukratko, PageRank kaže da su dolazni linkovi sa kvalitetnih stranica dobar pokazatelj kvalitete određene stranice. Malo specifičnije objašnjenje algoritma za matematički nastrojene je: PageRank je propocionalan (logaritmu?) vjerojatnosti da će slučajni surfer besciljno surfajući Internetom završiti baš na stranici za koju računamo PageRank. U obzir se uzima i da kod svake stranice koju posjeti surfer možda odluči odustati i ručno upisati neki drugi URL.
Ukoliko stranice zamjenimo za twitteraše, a njihove pratitelje za dolazne linkove, možemo izravno primjeniti PageRank, u nadi da ćemo kao rezultat dobiti listu najutjecajnijih Twitter korisnika! Kako se Twitter korisnici mjere u desecima milijuna, za testiranje koristio sam ne Twitter nego domaći pandan Zrikku, koja je u to vrijeme imala 700njak korisnika.
Rezultati su bili totalno besmisleni, loši i poražavajući (za mene koji volim pametne algoritme); veliki broj “najutjecajnijih” imao je samo po par postova i bili su prilično neaktivni, naime radilo se većinom o korisnicima koji su se registrirali među prvima i koje je veliki broj drugih korisnika dodao na svoju listu. Čak i kada sam maknuo neaktivne korisnike, i dalje popis najutjecajniji nije imao previše veze sa stvarnošću…
Problem je u tome što činjenica da netko followa nekog drugog (više) ne govori apsolutno ništa o utjecajnosti te osobe na Twitteru. Slučajni twitteraš koji gleda tuđe timelineove neće krenuti po friends listi i gledati kog još ima zanimljivog (paaa….obično neće :)
…do ReTweetRanka

Puno je vjerojatnije da će slučajni korisnik doći do nekog određenog tweeta tako što će ga netko ReTweetati. Odnosno, RT-ovi su puno bolje mjerilo utjecajnosti nekog twitteraša. Kad RT-ate nečiji tweet, to radite zato što ga smatrate vrijednim prenošenja; upravo kao što i linkanje kod weba predstavlja izbor vrijedne lokacije za daljnje informiranje o nekoj temi. RT-anjem povećavate krug ljudi koji vide tweet pa upravo na taj način on dolazi do našeg slučajnog twitteraša.
Rangiranje možemo postaviti ovako: retweet rank je proporcionalan vjerojatnosti da će slučajni twitteraš u svojem friends timelineu vidjeti tweet koji ste vi, točno određeni korisnik, napisali. On to može vidjeti zato što izravno prati vas, ili zato što netko tko vas prati to RT-a. Svatko tko vas prati ima neki broj tweetova koje primjeti (recimo, unutar jednog dana) i broj RT-ova koje napravi u istom razdoblju. Njihov omjer određuje vjerojatnost retweetanja bilo kojeg jednog tweeta.
Vjerojatnost retweetanja pomnožimo sa vjerojatnošću da će slučajni surfer vidjeti baš taj retweet. Zbrojimo to sa vjerojatnošću da će vidjeti baš vaš tweet i to je to! Po potrebi dodati žlicu Vegete.
Malo matematike
- p(x) = p(x)’ + (1 – p(x)’) * p(x)” — retweet rank
- vjerojatnost da slučajni twitter vidi vaš tweet (preko nekog ili izravno):
- p(x)’ = 1 – (1 – N(x) / Mt)^Kt
- vjerojatnost da se točno vaš tweet nađe u bilo čijem timelineu: N(x) – broj vaših tweetova (u danu); Mt – ukupan broj svih tweetova u tom danu; Kt – broj tweetova koje u danu vidi prosječan korisnik
- p(x)” = 1 – Umnožak (1 – Prt(x,y) * p(y))
- vjerojatnost da budete retweetani; Prt(x,y) je vjerojatnost da korisnik Y retweeta korisnika X, a p(y) je vjerojatnost da se tweet korisnika Y nađe u timelineu slučajnog korisnika
- Prt(x,y) = N(x) / K(y) * Rt(y) / K(y)
- vjerojatnost da follower RT-a nekog od vaših tweetova: N(x) – broj vaših tweetova; K(y) – ukupan broj tweetova koje vidi vaš follower; Rt(y) – broj retweetova vašeg followera; napomena: u nekim slučajevima ovaj broj može biti > 1 (npr. vi pišete 5 tweetova dnevno, vaš follower vidi 1 tweet dnevno (razlika moguća ako se računaju prosjeci u nekom vremenskom razdoblju) i sve retweeta -> rezultat = 5); u tom slučaju potrebno je koristiti Prt(x,y) = 1 kako se ostatak formule ne bi raspao
Pri ovome se svi brojevi tweetova i retweetova mogu računati s nekom prosječnom vrijednošću, recimo u zadnjih mjesec dana. Na ovaj način se i osigurava da se računa samo nedavna aktivnost svih korisnika. S druge strane, interval ne smije biti premali (npr samo jedan dan) jer bi oscilacije bile prevelike i rezultati ne bi bili previše smisleni.
Sad dolazimo do kokoš ili jaje problema – da bi izračunali vaš tweet rank, treba vam tweet rank svih vaših followera; ali ako netko od followera prati vas, za računanje njegovog ranka trebat će vam podatak o vašem! Začudo, matematika je odavno ispred vas i ima rješenje za vaše probleme (a rješenje se zove vlastite vrijednosti matrice iliti eigenvalues). No, to rješenje u može biti prilično sporo ako se radi o sustavu s velikim brojem korisnika. Stoga se u praksi radije koriste iterativna verzija algoritma, u nekoliko rundi: na početku se za sve uzme neki prosječna vjerojatnost (tj Kt / Mt), a u svakoj iteraciji algoritma rezultat se poboljšava. Stvar radi brzo a u praksi je potrebno samo nekoliko rundi da bi se došlo do zadovoljavajućeg rezultata.
Liste
I tako nakon što sam ja razvio cijelu ovu teoriju, pojavile su se Twitter liste. Zasad su prevelika novost da bi se primjetilo tipične načine na koje će ih korisnici upotrebljavati. Čini mi se da trenutno služe ili za grupiranje ljudi koje korisnik prati (vlastite liste) ili (tuđe liste) kao feed timelineova koje korisnik u pravilu na prati već samo s vremena na vrijeme baci oko. Ako liste koristite za nešto treće i nije vam jasno kako ih još nisam skužio, ne libite se ostaviti komentar na postu :)
I za zaključak, što to sve znači? Ono što ste već i sami znali – što vas više retweetaju to ste utjecajniji :) Zanimljivo je da algoritam ne uzima u obzir koliko vi kvalitetne tweetove imate, nego samo koliko ste glasni (i revni RT-eri) vi i vaši followeri. Po mom osobnom iskustvu, to i je relativno dobro mjerilo utjecajnosti na Twitteru. Dakle, Tweetajte i budite ReTweetani! (I ReTweetajte ovaj blog post :)
Update: naknadnim Googlanjem naišao sam na članak koji polazi od sličnih pretpostavki i dolazi do sličnih zaključaka; obojica računamo da je retweetanje bitnije od samog followanja, no ponešto na drugačiji način računamo vjerojatnost retweetanja pa su nam i formule nešto drugačije. Ukoliko vas ova tematika zanima, svakako pročitajte i taj članak i komentare.

Komentiranje zatvoreno.