perjantai 17. helmikuuta 2012

Twitter-verkostoanalyysia Gephi:llä

Innostuin viime viikonloppuna kokeilemaan ensimmäistä kertaa omatoimisesti miten Twitter-dataa on mahdollista visualisoida. Olen aiemmin tutkinut ja työstänyt paljon erilaisia sosiaalisia verkostoja, mutta ennen en ole laittanut todella käsiä rasvaan Twitterin osalta. Osittain tähän on ollut syynä se, että olen mieltänyt Olli Parviaisen jo avanneen kaikki Twitterin salat tämän osalta eikä asiaan vihkiytyminen näin ollen ole tuntunut mielekkäältä. Pisteet tämän vaikutelman luomisesta Ollille :) Sisäinen devaajanluonteeni kuitenkin siis vei voiton ja lähdin kehittelemään jotain omaa.

Twitter tarjoaa monipuoliset mahdollisuudet datansa käsittelyyn rajapintansa kautta. API:lla (Application programming interface) on mahdollista hakea automaattisesti oikeastaan kaikki se tietosisältö, joka on käyttäjälle muutenkin nähtävissä. Tämä on poikkeuksellista esimerkiksi verrattuna Facebook:n Graph API:in, jonka kautta tietoa on mahdollista hakea rajoitetummin. Tästä syystä Facebook-datan hakeminen on omalta osaltani tapahtunut hyvin paljon käsityönä kuten "Kansanedustajat Facebookissa – kuka on kenenkin kaveri?" -tapauksen yhteydessä.

Päädyin rakentamaan Twitter-datan avulla verkoston käyttäjistä/Twitter-tileistä joita seuraan. Henkilökohtaisella Twitter-tilini seurannassa ~90:ntä tiliä, joten tästä seurasi suoraan verkoston solmujen lukumäärä. Yhteydet solmujen välille rakensin sen perusteella miten seuraamani henkilöt seuraavat keskenään toisiaan. Lopputuloksena syntyi sosiaalisen verkosto, joka havainnollistaa seuraamieni henkilöiden keskenäiset suhteet, suhteiden perusteella muodostuvat ryhmät ja näiden ryhmien asemoitumisen toisiinsa nähden.

Keräsin datan käyttäen Python-ohjelmointikieltä ja tein tulostuksen verkostodatalle soveltuvassa GraphML-muodossa, jota visualisointiin käyttämäni visualisointityökalu Gephi ymmärtää. Gephi:ssä käytin tulosten latomiseen ForceAtlas2-algoritmia, jonka olen todennut käytännön kokemusten kautta toimivan hyvin etenkin pienten sosiaalisten verkostojen visualisoimiseen. Värikoodauksen tein dataan käsin määrittelemällä jokaisen solmun sille olennaiseen kategoriaan. Solmun koko kuvastaa astesummaa eli solmuun suuntautuvien yhteyksien määrää. Toisin sanoen solmun koko kuvaa suoraan Twitter-tiliä seuraavien Twitter-tilien määrää verkostossa. Yhteydet solmujen välillä ovat suunnattuja. Annotoinnin ja jälkikäsittelyn tein Paintbrush-nimisellä ohjelmalla. (Kuva 1)

Sosiaalinen verkostoni Twitter:ssä visualisoituna Gephi:llä. (Kuva 1)
Visualisointi vahvistaa hyvin niiden eri ryhmien olemassaolon, jotka todellisuudessakin ovat olemassa verkostossani, mutta lisäksi visualisoinnista voidaan nähdä miten nämä ryhmät sijoittuvat suhteessa toisiinsa. Esimerkiksi TTYläiset erottuvat visualisoinnissa hyvin selkeästi muista ryhmistä erilleen. Tulkitsen tämän johtuvan toisaalta siitä, että seuraamani TTYläiset eivät ole kaikkein aktiivisimpia Twitter-käyttäjiä mutta toisaalta siitä, että heillä ei ole mitään syytä seurata Yleläisiä tai datajournalismi-ihmisiä. Myös Yleläiset erottuvat visualisoinnissa selkeästi omana joukkonaan, mutta he taas asettuvat selkeästi lähemmäksi datajournalismi-ryhmää kuin TTYläiset, jonka voidaan mieltää olevan ihan ammatillisestikin luontevaa. Nämä kolme ryhmää (1. TTY, 2. YLE ja 3. Datajournalismi) ovat verkostoni suurimmat ja selkeimmät, joten näen, että tällä erää on mielekästä tässä tulkita vain ne ja jättää muut pienemmät ryhmät tässä erää huomioimatta.

Kuvissa 2, 3 ja 4 nähdään eräiden muiden käyttäjien Twitter-verkostot. Verkostot on toteutettu samoilla periaatteilla kuin edellä kuvattu oma verkostoni sillä erotuksella, että solmujen väritys on tehty Gephi:n Modularity-luokittelun avulla. Lisäksi näissä verkostoissa esiintyvät Twitter-tilit on anonymisoitu, koska haluan esittää ne vain esimerkin omaisesti enkä pyrkiä sen tarkempaa tulkitsemiseen. Tarkempi tulkinta vaatisi tutustumista verkostoissa oleviin Twitter-tileihin, jotta voitaisiin ymmärtää miksi tietyt ryhmät ovat lähempänä toisiaan kuin toiset.

Kuvien 2, 3 ja 4 verkostoista nähdään miten verkoston ulostulo on hyvin erilainen eri käyttäjille. Toisilla käyttäjillä nähdään hyvin pitkälle keskenään verkostoituneet ryhmät kun taas toiset käyttäjät seuraavat toisistaan täysin riippumattomia Twitter-tileistä koostuvia ryhmittymiä.

Kuvassa 2 nähtävä verkosto on niin tiheä, että tarkkojen tulkintojen tekeminen yleisnäkymästä on vaikeaa. Verkostojen tulkinnassa onkin tärkeää, että analysoinnin yhteydessä dataa voidaan selata mm. "details on demand" -periaatteella.

Tiheiden verkostojen tulkinta on usein vaikeaa jos verkostoa ei ole mahdollista rajata tai zoomata. Gephi mahdollistaa datan rajaamisen erilaisten filtereiden avulla ja verkostoa on mahdollista zoomata. Yleiskuvan merkitys on kuitenkin tärkeä, koska sen avulla nähdään ne alueet, jotka voisivat olla kiinnostavia jatkotutkimuksen kannalta. (Kuva 2)
Kuvassa 3 nähtävän verkoston erityispiirre on kahden sisäisesti tiiviin ryhmän heikko vuorovaikutus keskenään. Jos kyseessä tässä olisi yrityksen kahden eri osaston välinen kommunikaatio olisin hyvin huolestunut yrityksen sisäisen viestinnän toimivuudesta.

Twitteriä on mahdollista käyttää hyvin monella eri tavalla. Tämän kyseisen henkilö seuraa selkeästi kahta erillistä toisistaan riippumatonta ryhmää ihmisiä, jotka voivat poiketa toisistaan esimerkiksi kiinnostuksen  tai spatiaalisesti. (Kuva 3)

Kuvan 4 verkostossa osa ryhmistä on eriytynyt omaan lokeroonsa kun taas toiset ryhmät ovat verkostoituneet keskenään.

Tämän käyttäjän verkostossa tietyt ryhmät erottuvat hyvin selkeästi omiin lokeroihinsa, mutta oikealta löytyvä klusteri on taas hyvin vahvasti verkostoitunut keskenään. (Kuva 4)
Kuten huomataan vaatii verkostoanalyysi aina rinnalleen tuntemusta visualisoitavana olevasta ilmiöstä. Pystyn tulkitsemaan omaa verkostoani melko luotettavasti, koska tunnen minkälainen ilmiö on kyseessä ja tiedän mitä verkostossa olevat solmut ovat. Tulkinnasta tulee kuitenkin heti hankalampaa kun verkostossa esiintyvät solmut ja yhteydet tai ylipäänsä verkostossa nähtävä ilmiö ei ole tuttu. Onkin väärin olettaa, että verkostoanalyysi olisi jonkinlainen Hopea Luoti, joka suoraan ratkaisisi monimutkaisia ongelmia ja vastaisi kysymyksiin. Verkostoanalyysi toimii ongelmien ratkaisun tukena ja toisaalta antaa suuntaa sille  mistä ratkaisua voisi lähteä etsimään.

Seuraavat askeleet Twitter-analyysin osalta ajattelin ottaa siihen suuntaan, että kaivan verkoston ihmisten seuraajista sen sijaan, että katson keitä ihmiset seuraavat. Uskoisin tämän näkökulman tuottavan mielenkiintoisia tuloksia kun analyysi kohdistetaan yhteiskunnallisesti tärkeisiin ihmisiin kuten poliitikkoihin.

Keep on Tweeting...

Ei kommentteja:

Lähetä kommentti