EXAMENSARBETE INOM TEKNIK, GRUNDNIVÅ, 15 HP STOCKHOLM, SVERIGE 2016 Trolldetektering En undersökning i lämpligheten att använda ämnesmodellering och klustring förtrolldetektion. LILI DU ERIK SÖDERBERG KTH SKOLAN FÖR DATAVETENSKAP OCH KOMMUNIKATION
Trolldetektering En undersökning i lämpligheten att använda ämnesmodellering och klustring för trolldetektion. LILI DU ERIK SÖDERBERG DD143X Examensarbete inom datalogi, grundnivå Handledare: Mårten Björkman Examinator: Örjan Ekeberg CSC, KTH 2016-05-11
Referat Denna rapport syftar till att undersöka om ämnesmodellering och klustring kan användas till eller underlätta arbetet med trolldetektering. De två ämnesmodellerna Latent Semantic Indexing (LSI) och Latent Dirichlet Allocation (LDA) används samt klustringsmetoden K-means. En grupp om tio användare som bedöms som troll undersöks följt av en undersökning av tio liknande användare för vart och en av de tio trollen. Resultatet visar på att en relativt god mängd av av de relaterade användarna också kunde bedömas som troll. Klustringen kunde också avslöja en del mindre grupper varav några bestod av bottar. Slutsatsen som dras är att ämnesmodellering och klustring tycks vara en god väg att gå men att ytterligare studier behövs.
Abstract Troll detection This report aims to investigate if topic modeling and clustering can be used for or ease the work with troll detection. The two topic models Latent Semantic Indexing (LSI) och Latent Dirichlet Allocation (LDA) as well as the clustering algorithm K-means are selected for this investigation. For each model, each troll in a group of ten trolls has ten related users extracted and then judged on whether they are trolls or not. The results show that a relatively large amount of the related users also were judged as likely to be trolls. The clustering revealed a couple of small groups which seem to consist of a small network of bots. The drawn conclusion is that topic modeling and clustering are seemingly a good choice for aiding in the detection of trolls but further studies are required.
Innehåll 1 Inledning 1 1.1 Syfte.................................... 2 1.2 Frågeställning............................... 2 1.3 Begränsningar............................... 2 2 Bakgrund 3 2.1 Troll.................................... 3 2.2 Twitter.................................. 4 2.3 Ämnesmodell............................... 4 2.3.1 Latent Dirichlet Allocation (LDA)............... 4 2.3.2 Latent Semantic Indexing (LSI)................. 5 2.3.3 Term Frequency Inverse Document Frequency (Tf-Idf).... 5 2.4 Klustring................................. 6 2.4.1 K-means algorithm........................ 6 2.5 Tidigare Arbeten............................. 7 3 Metod 9 3.1 Insamling av data............................ 10 3.2 Filtrera ut brus.............................. 10 3.3 Ämnesmodellering............................ 11 3.4 Klustring................................. 11 3.5 Identifiering av troll........................... 11 4 Resultat 13 4.1 Datamängd................................ 13 4.2 Förekomsten av troliga troll....................... 13 4.3 Klustring med olika modeller...................... 14 5 Diskussion 19 5.1 Diskussion av resultat.......................... 19 5.2 Svårigheten att avgöra trollstatus.................... 20 5.3 Oförutsedda upptäckter i klustren................... 21 5.4 Utvidgning till större datamängd.................... 21 5.5 Etiskt perspektiv............................. 22
5.6 Framtida verk............................... 22 5.6.1 Hittande av troll......................... 22 5.6.2 Förbättring av existerande metoder.............. 22 5.6.3 Kan ämnesmodellering avgöra troll?.............. 23 6 Slutsats 25 Litteraturförteckning 27
Kapitel 1 Inledning Sociala medier har vuxit explosionsartat under ett flertal år och många kan förmodligen inte ens föreställa sig en tid utan dem. Interaktionen mellan människor på sociala medier präglas av att den är snabb och mestadels informell. Det finns många exempel på personer som oförsiktigt skrivit något som det sedan blivit skandal kring. Den informella naturen hos sociala medier medför också att man tar det som skrivs på samma sätt som när man pratar ansikte mot ansikte, det som sägs tas som sanning såvida det inte väldigt tydligt är fel. Denna tendens att okritiskt ta till sig det som står på sociala medier öppnar upp för människor som försöker utnyttja den tendensen. Det kan vara allt från illvilliga individer till regeringar[10] som sprider propaganda. Ett exempel på detta är The Columbian Chemicals Hoax[3] som beskrivs som ett försök att falskeligen sprida nyheten om en terrorattack mot en kemisk fabrik i Louisiana. Nyheten spreds på bland annat Twitter, Facebook och Youtube. Nyheten kunde dock relativt snabbt bedömas som falsk, dels genom att fabriken i fråga kontaktades samt att kontona som spred nyheten verkade vara bottar. I fallet som beskrevs kunde sanningen snabbt uppdagas men det är inte svårt att föreställa sig ett fall där det kan vara mycket svårare att nå sanningen. Kanske är det ett fingerat e-mail som sprids eller en väldigt välgjord video, i ett sådant fall kan det vara mycket svårare att kontakta någon som kan verifiera sanningshalten. Sedan måste man även ha i åtanke att om ett falskt påstående når viral status kan det vara ytterst svårt att få samma spridning av dess avslöjande. Med detta som bakgrund vore det alltså önskvärt om det gick att upptäcka tveksamma påståenden genom att analysera användarens profil och se om denne verkar vara ett troligt troll. En del studier har gjorts på området med varierande resultat men ingen som vi kunnat hitta har använt sig av ämnesmodellering. Som ett steg på vägen mot fullskalig trolldetektion tänker vi undersöka om ämnesmodellering och även klustring är lämpliga för att göra utförligare studier på. 1
KAPITEL 1. INLEDNING 1.1 Syfte Den här rapportens syfte är att undersöka om ämnesmodellering kan användas för att identifiera troll eller underlätta upptäckandet av troll på sociala medier. Vi ämnar också se om klustring tillsammans med ämnesmodellen kan avslöja något av intresse. För detta ändamål har vi valt Twitter för att det är enkelt att samla ihop en profils meddelanden samt att det finns tidigare exempel på troll som använt Twitter som plattform. De ämnesmodeller som kommer användas är Latent Semantic Indexing (LSI) och Latent Dirichlet Allocation (LDA) som båda har studerats utförligt och klustringsalgoritmen som kommer användas är K-means som även den är väl studerad. 1.2 Frågeställning Kan ämnesmodellering användas för att hitta troll på Twitter? Kan man med ett identifierat troll hitta ytterligare troll och i så fall till vilken grad? Kan klustring användas tillsammans med ämnesmodellering för att underlätta hittandet av troll? 1.3 Begränsningar Vi kommer att göra bedömningen om en användare är ett troll eller inte, det finns inga metoder eller liknande som vi kunnat hitta som kan sköta den bedömningen, förmodligen för att området är relativt nytt och för att bedömningen kan stundvis vara svår. Gällande insamlingen från Twitter kommer vi endast samla in svenska tweets, dels för att någorlunda begränsa mängden data som samlas in samt att det blir för oss enklare att avgöra om en användare är ett troll eller inte då vi är bättre på att tyda svensk text samt att vi har bättre uppfattning av vilka ämnen som kan vara av större intresse för trollen. Vi har också bestämt att bara undersöka tio troll och sedan ytterligare tio användare per trollanvändare, totalt kommer vi då behöva bedöma cirka 200 användare. En kompromiss mellan tiden det tar att undersöka alla gentemot hur säkert resultatet blir. 2
Kapitel 2 Bakgrund I detta avsnitt kommer olika begrepp och termer att förklaras som är nödvändiga för förståelsen för resten av rapporten. Bland annat har begreppet troll många olika betydelser, men för att tydligöra finns en definition av troll som används i resten av rapporten. Förutom begreppen kommer även tidigare arbeten som har gjorts inom området att tas upp. 2.1 Troll Det finns många olika definitioner av ordet troll. Den definitionen av troll som många nätanvändare kommer i kontakt med är personer som har i syfte att skriva provokativa meddelanden för att skapa hetsiga debatter och diskussioner som inte leder någon vart. Det som oftast kännetecknar dessa personers meddelanden är oseriösa, unika åsikter som får andra användare att vilja svara på dessa meddelanden. Trollens mål är att framstå som vanliga seriösa användare. En annan typ av trollanvändare på nätet är de som avsiktligt väljer att påverka en person negativt t.ex. rösta ner en persons inlägg på nätforum, sprida falsk information om en person etc. I värsta fall kan detta beteende leda till nätmobbning [4]. En tredje typ av trollanvändare försöker influera användare. Dessa troll försöker påverka andra genom att övertyga dem om att trollets åsikt är mer rätt [9] än deras. Dessa troll har oftast en tydlig agenda och kan vara organiserade och betalda av företag eller politiska partier. Oftast får dessa personer även instruktioner om vad de ska skriva. Den typen av troll som den här rapporten kommer att använda sig av är en blandning av den första samt den tredje typen av troll, d.v.s. personer som har i syfte att skriva provokativa meddelanden samt personer som försöker influera användare. Huruvida trollen är betalda eller ej är utanför denna rapports omfång, då vi endast undersöker det som skrivs. 3
KAPITEL 2. BAKGRUND 2.2 Twitter Twitter är en social nätverkstjänst och mikroblogg där användare kan publicera korta textmeddelanden på 140 tecken, så kallade tweets [13]. Dessa tweets är offentliga och visas på användarens profilsida. En användare kan prenumerera på en annan användares meddelandeflöde genom att följa användaren. I dessa textmeddelanden kan även metadata läggas in. En användare kan nämna en annan användare i sitt textmeddelande med hjälp av @-notationen, t.ex. @barackobama. I ett textmeddelande kan @-notationen se ut på följande sätt Var och fikade tillsammans med @barackobama. Med samma notation är det också möjligt att retweeta, d.v.s. citera en annan användares textmeddelande. På detta sätt kan man sprida vidare en annan användares meddelande, genom att låta meddelandet dyka upp på sin egen meddelandeflöde. En annan typ av metadata är #-notationen, där # uttalas hashtag. Dessa hashtags är användardefinerade termer och används för att indikera ämnet som textmeddelande handlar om, t.ex. Det är den tiden på året. #pollen. Det är även möjligt för användare att klicka på det hashtaggade ordet för att lista alla textmeddelanden om det ämnet. 2.3 Ämnesmodell En ämnesmodell (eng. topic model) är, inom maskininlärning och NLP (eng. Natural Language Processing), en statistisk modell som används för att ta reda på vad en text eller ett dokument handlar om. Om ett dokument handlar om t.ex. frukt förväntar man sig att ord relaterat till frukter, t.ex. äpple, banan och apelsin förekommer ofta i dokumentet, medan ett dokument som handlar om t.ex. djur innehåller fler ord relaterat till djur, t.ex. hund och katt. Ett dokument kan även handla om flera ämnen, t.ex. både om frukt och djur. Dokumentet handlar till 90% om djur och 10% om frukt, om ord relaterat till djur förekommer nio gånger oftare än ord relaterat frukt. För att ta reda på vad ett dokument handlar om tränas en ämnesmodell. För att träna en ämnesmodell behövs en ordlista och en korpus. Ordlistan innehåller alla ord som förekommer i ett dokument och korpusen innehåller ordfrekvensen, d.v.s. antalet gånger ett visst ord dyker upp i dokumentet. Orden delas sedan upp i ett visst antal ämnen som sedan används för att avgöra vad ett dokument handlar om. Det finns olika ämnesmodeller, två av de populäraste modellerna är Latent Dirichlet Allocation (LDA) och Latent Semantic Indexing (LSI). 2.3.1 Latent Dirichlet Allocation (LDA) Latent Dirichlet Allocation (LDA) är en generativ statistisk modell. LDA modellen behandlar varje dokument som en blandning av olika ämnen där ett visst ämne har en viss sannolikhet att generera ett visst ord [1]. Ämnena tas fram genom att anta att de har en Dirichlet fördelning. Exempelvis kan en LDA modell ha kattrelaterade 4
2.3. ÄMNESMODELL och hundrelatreade ämnen. Ordet katt har då hög sannolikhet att förekomma inom det kattrelaterade ämnet. För att träna ämnesmodellen behöver man välja antalet ämnen T som orden delas in i. Enligt Hong och Davison (2010) [6] ger antalet ämnen T mellan 10-150 de optimala resultaten för runt 2 miljoner dokument, medan T = 50 ger bäst resultat för få dokument. För dokument över 5 miljoner ligger dock den gyllene standarden för antalet ämnen T mellan 300-500 där T = 400 ger bäst resultat [2]. 2.3.2 Latent Semantic Indexing (LSI) Latent Semantic Indexing (LSI) är en indexerings och hämtningsmetod som använder sig utav singulärvärdesuppdelning för att identifiera relationer och mönster i en text [11]. Huvudprincipen i LSI är att ord som används i samma kontext har liknande betydelse. Detta sker genom att LSI etablerar en förbindelse mellan termer i samma kontext. 2.3.3 Term Frequency Inverse Document Frequency (Tf-Idf) Term Frequency Inverse Document Frequency (Tf-Idf) är ett mått på hur viktigt ett ord är för ett dokument i en korpus [8]. Används framförallt som en viktningsfaktor inom informationssökning och text mining. LSI modellen (se avsnitt 2.3.2) kan använda sig av Tf-Idf. Ordfrekvensen (term frequency) beräknas på följande sätt: Vi har en samling av N stycken dokument. Låt f ij vara frekvensen, d.v.s. antalet förekomster av ordet i i dokument j. Då beräknas ordfrekvensen T F ij : T F ij = f ij Max k f kj Med andra ord är ordfrekvensen för ordet i i dokument j normaliserad genom division av den maximala förekomsten för alla ord i dokument j. Inverse document frequency talar om hur vanligt eller sällsynt ett ord i är. n i anger antalet dokument som ordet i förekommer. IDF i Beräknas på följande sätt: IDF i = log 2 ( N n i ) Slutligen beräknas Tf-Idf, för ordet i i dokumentet j genom en multiplikation av båda faktorerna T F ij och IDF i. T F IDF ij = T F ij IDF i Ord som får ett högt Tf-Idf värde är ord som karaktäriserar ämnet bäst för ett dokument, t.ex. ordet katt lär förekomma ofta i ett dokument om katter. Med andra ord så har ordet i hög ordfrekvens i relativt få dokument. 5
KAPITEL 2. BAKGRUND 2.4 Klustring Klustring är en metod för att gruppera en mängd enheter efter en eller flera egenskaper, t.ex. dokument efter hur lika varandra de är. Likheten mellan två enheter från samma grupp eller kluster ska vara betydligt större än två enheter från andra kluster. Detta kan göras med en rad olika algoritmer. 2.4.1 K-means algorithm K-means är en klustringsmetod för att gruppera en datamängd efter en viss parameter [12]. För en given parameter k delas datamängden in i k stycken olika partitioner eller kluster. Varje kluster har en centroid eller en medelpunkt. Centroiden för ett kluster är medelvärdet på alla datapunkter i klustret. Datapunkterna är sedan tilldelade till det närmaste klustret, d.v.s. där avståndet mellan centroiden för klustret och datapunkten är som kortast. Algoritmen för K-means kan enkelt beskrivas på följande sätt: 1 Välj k datapunkter som initiala centroider 2 while centroidernas värden förändras do 3 Generera k kluster genom att tilldela datapunkterna till de närmaste centroiderna 4 Beräkna nya centroidvärden 5 end Algorithm 1: K-means algoritmen Figur 2.1. Demonstration av K-means algoritmen. [14] 6
2.5. TIDIGARE ARBETEN 2.5 Tidigare Arbeten I en rapport [4] så har författarna använt sig utav maskininlärningsmetoder och applicerat dessa på en riktig situation. På en skola hade det skapats en Twitterprofil för vilken personen bakom var okänd. Detta konto användes bland annat till att mobba några av eleverna på skolan. Författarna kunde med sina algoritmer analysera trollkontot samt elevernas egna profil och framgångsrikt ta fram statistik över hur sannolikt det var att en viss person låg bakom kontot. Deras resultat visade att det var tre personer som alla fick snarlika sannolikheter knutna till sig och dessa erkände till slut att de låg bakom kontot. I en annan rapport [7] använde sig författarna utav en grafbaserad algoritm för att detektera troll. Författarna fokuserade där på samspelet mellan användarna, en användare som fick många negativa kommentarer bedömdes som mer trolig att vara ett troll medan en användare med många positiva kommentarer bedömdes vara en godartad användare. De tog även hänsyn till saker som att om en användare med många negativa kommentarer ger en positiv kommentar till någon annan så är det troligt att denne också är ett troll. En tredje rapport [5] använder sig författarna av K-means algoritmen för att klustra ungefär 8000 Twitter-användare efter vilka ämnen de är intresserade av. Användarna var sådana som under en period twittrat New York Times artiklar. 7
Kapitel 3 Metod I detta kapitel kommer vi att beskriva implementationen av systemet. Det mesta av implementationen är skrivet i programspråket Python. Kapitlet kommer även ta upp systemets olika komponenter samt vilka bibliotek och paket vi har använt oss för att bygga systemet. Huvudprocessen ser ut på följande sätt (se figur 3.1): Insamling av data Filtrera ut brus Ämnesmodellering med LDA och LSI Klustring med K-means algoritmen Visualisering av data Figur 3.1. Schema över arbetsflödet 9
KAPITEL 3. METOD 3.1 Insamling av data För att samla indata, d.v.s. tweets, till vårt arbete har vi använt oss av Twitters egna API (Application Programming Interface). Twitter har två olika API, ett REST API och ett Streaming API. Skillnaden mellan dessa två API är att via REST API:t kan tweets som redan finns på Twitter hämtas medan via Streaming API:t hämtar alla nya tweets som görs på Twitter. Eftersom Twitters REST API har en gräns på hur många förfrågningar som kan göras per dag, valdes istället Streaming API:t för att snabbt få tag på data. Tweets som hämtas via Streaming API:t sparades ner i JSON (JavaScript Object Notation) format i ett dokument. Med hjälp av parametern lang, som tillhandahålls av Twitter, kan vi filtera tweets för att endast få tweets skriven på svenska. Indatat lagras sedan i en databas, MongoDB, för att kunna bearbetas effektivt. Med hjälp av databasen kan vi lätt gruppera alla tweets efter användare samt sortera användarna efter antalet tweets de har publicerat. Sorteringen är nödvändig för att filtrera brus från datamängden (se avsnitt 3.2). Insamling av tweetsen skedde under de två första veckorna i mars 2016. För varje användare skapas ett dokument med dennes tweets. Dessa används senare för ämnesmodelleringen (se avsnitt 3.3). 3.2 Filtrera ut brus Den insamlade datamängden innehåller brus som vi inte vill ha med i vår ämnesmodellering. Datamängden rensas från: stoppord (t.ex. och, alla, en) skiljetecken siffror omnämnande av andra användare dvs. @namn webbadresser (U RL). användare med färre än 40 tweets ord som färre än 5 användare har använt ord som mer än 50% av användare har använt Filtreringens huvudsyfte är att få bort termer som många av användarna använder sig av och därmed får användarna att verka mer lika varandra än de faktiskt är. En ytterligare anledning är att ämnesmodellerna kör snabbare när de har ett lågt antal unika ord/textsekvenser att behandla. Framförallt borttagning av URL:er, siffror och omnämnande hjälpte att drastiskt reducera mängden unika textsekvenser. 10
3.3. ÄMNESMODELLERING Bortfiltreringen av användare med färre än 40 tweets är huvudsakligen för att ämnesmodellerna ska kunna uppnå någon form av träffsäkerhet, ett par enstaka tweets är inte i närheten av att rymma tillräckligt med information för att kunna göra en bedömning. Dessa skulle hamna antingen som jätteolika eller jättelika beroende på om de råkade innehålla rätt ord eller inte, alltså tas det bort. 3.3 Ämnesmodellering För att ta reda på vad vad varje användare pratar om och förbereda datamängden inför klustring användes de två ämnesmodellerna LDA och LSI. Dessa modeller finns inbyggt i ämnesmodelleringsverktyget gensim. För att träna båda modellerna behöver man specificera antalet ämnen att dela in efter samt ge tillgång till en korpus. För båda modellerna har vi specificerat 50 stycken ämnen (se avsnitt 2.3.1). LDA-modellen har tränats med en korpus där varje användare representeras av en vektor av ord och ordfrekvens. LSI-modellen har tränats med en liknande korpus men där är istället användarens vektor av ord och ordfrekvens multiplicerat med inversen av ordets dokumentfrekvens, dvs Tf- Idf är applicerad (se 2.3.3). Detta eftersom Tf-Idf gör LSI mer precis än om ren ordfrekvens används. Från ämnesmodelleringen får vi ämnesmatriser där en rad i representerar en person (prov, eng. sample) och en kolumn j representerar ett ämne/särdrag (eng feature). För varje cell M ij i ämnesmatrisen M är sannolikheten s, där s [-1,1] och -1 är med väldig låg sannolikhet och 1 är med hög sannolikhet, att person i pratar om ämnet j. 3.4 Klustring För klustringen använde vi oss av verktyget scikit-learn. scikit-learn har många inbyggda klustringsmetoder, där K-means algoritmen är en av dem. Vi applicerar klusteringsalgoritmen K-means på resultaten av körningarna av LSI och LDA. Från klustringen får vi T st vektorer. En vektor representerar ett kluster/ämne av alla personer som har högst sannolikhet att prata om just det ämnet. 3.5 Identifiering av troll För att hitta troll i vår databas började vi med att identifiera 10 st uppenbara troll. Detta gjordes genom att dra nytta av att ämnesmodellerna kan köras på dokument som inte närvarade i träningen av modellen och som då resulterar i en sannolikhetsvektor för det nya dokumentet på de framtränade ämnena. På detta vis kunde vi söka på meningar och fristående ord och få ut de användare som stämmer bäst in på söktermerna. Vi sökte med ämnen som vi bedömde hade hög sannolikhet att ge troll, dessa var bland annat olika konspirationsteorier och aktuella politiska 11
KAPITEL 3. METOD ämnen. Sedan har dessa användares Twitter-konton inspekterats och vi har avgjort efter bästa förmåga om användaren i fråga verkar passa in på definitionen troll. Därefter använder vi gensims Similarity-klass som har en funktion som för en given användare listar likheten alla andra användare har gentemot den givna. För varje uppenbart troll vi har identifierat listar vi 10 st personer som är mest lik det trollet. Eftersom vi är tvungna att manuellt undersöka huruvida en användare verkar vara ett troll är vi tvungna att begränsa antalet. Sammanlagt listar vi 100 möjliga troll utifrån våra 10 uppenbara troll och per modell. Totalt blir det 200 användare som ska manuellt undersökas huruvida en användare är troligen ett troll, ett osäker troll eller inte troll. De användare som listas under troligen ett troll är användare som vi tror med säkerhet är ett troll medan ett osäkert troll är användare som vi inte kan bedöma huruvida de är troll eller inte. Användare som listas under inte troll är användare som vi tror inte är troll. 12
Kapitel 4 Resultat I detta avsnitt kommer resultaten att presenteras från den använda metoden beskriven i förgående avsnitt (se kapitel 3). 4.1 Datamängd Från brusreducering och filtrering blev den slutgiltiga datamängden på totalt 8866 användare med totalt 987 203 tweets. Ordboken som skapades efter filtrering innehöll 58 441 unika ord. 4.2 Förekomsten av troliga troll Utifrån 10 stycken uppenbara föridentifierade troll listades 10 användare som hade störst likhet med trollen (se avsnitt 3.5). Alla hittade användare låg i samma kluster som sitt respektive uppenbara troll. Varje rad i tabellerna 4.1 och 4.2 representerar ett föridentifierad troll med dess ID (under kolumnen Användar ID) samt klustret trollet hamnade i (under kolumnen Kluster). Kolumnerna Troliga Troll, Osäkra troll och Inte troll talar om hur många av de 10 användarna som hade störst likhet med sitt föridentifierade troll var troliga troll, osäkra troll samt inte troll 3.5. Längst ner i tabellerna står även en summering av alla Troliga troll, Osäkra troll och Inte troll. 13
KAPITEL 4. RESULTAT Användar ID Kluster Troliga troll Osäkra troll Inte troll 430 1 0 0 10 6406 1 3 4 3 6079 9 2 6 2 4812 9 9 0 0 7269 3 9 1 0 8179 43 2 5 3 8111 3 3 0 0 7020 3 1 0 0 8561 1 1 4 5 7150 9 2 2 0 Summa 32 22 23 Tabell 4.1. Statistik över troliga, osäkra och icke-troll för LSI. Dubbletter har tagits bort därav några rader inte summerar till 10. Användar ID Kluster Troliga troll Osäkra troll Inte troll 430 5 0 4 6 6406 48 5 0 5 6079 35 8 2 0 4812 8 10 0 0 7269 40 10 0 0 8179 35 4 2 0 8111 40 2 0 0 7020 40 6 1 0 8561 49 0 3 7 7150 8 6 3 1 Summa 51 15 19 Tabell 4.2. Statistik över troliga, osäkra och icke-troll för LDA. Dubbletter har tagits bort därav några rader inte summerar till 10. 4.3 Klustring med olika modeller Klustringen skedde på två olika modeller, LDA modellen respektive LSI modellen med Tf-Idf, med K-means algoritmen (se avsnitt 3.4). Figurerna 4.1 och 4.2 är resultaten från klustringen med K-means. X-axeln representerar kluster nummer och y-axeln antal användare. T.ex. I kluster nr. 45 med LDA modellen (figur 4.2) finns 470 användare. 14
4.3. KLUSTRING MED OLIKA MODELLER Figur 4.1. Antalet användare per kluster mha LSI. Figur 4.2. Antalet användare per kluster mha LDA. För varje modell, LDA och LSI med Tf-Idf, framtogs även grafer i 2D och 3D för att visualisera hur de abstrakta klustren såg ut (se figur 4.3-4.4). Grafernas huvudsakliga syfte är en visuell bekräftelse på att varje kluster har sitt egna område och färgerna inte är blandade hursomhelst. Varje punkt i dessa grafer representerar en användare. Alla punkter med samma färg tillhör samma kluster. Alla användare 15
KAPITEL 4. RESULTAT i samma kluster har högst sannolikhet att prata om ett visst ämne. X- och y- axlarna samt z-axeln för 3D graferna har ett värde mellan [-1, 1] som representerar sannolikheten för en användare att prata om ett visst ämne (se avsnitt 3.3). Figur 4.3. K-means klustring med LDA modellen i 2D 16
4.3. KLUSTRING MED OLIKA MODELLER Figur 4.4. K-means klustring med LSI modellen i 2D Figur 4.5. K-means klustring med LDA modellen i 3D 17
KAPITEL 4. RESULTAT Figur 4.6. K-means klustring med LSI modellen i 3D 18
Kapitel 5 Diskussion I detta kapitel diskuteras de resultat som fåtts fram, några av de svårigheter vi stött på, kort om etiska aspekter samt resonemang kring vidarepåbyggning av denna rapport. 5.1 Diskussion av resultat Som kan ses i tabell 4.1 som använde LSI bedömdes 32 användare av 77 som troliga troll. Det kan låta högt, men eftersom dessa 77 är de mest lika våra uppenbara troll torde det även vara troligt att en relativt stor del av dessa också är troll. Vi märkte också en trend att ju lägre sannolikheten gentemot det uppenbara trollet är, ju oftare bedömdes de som inte troll, sannolikt skulle proportionen troliga troll vara mindre om exempelvis hundra användare hade valts per uppenbart troll. Hundra användare per uppenbart troll hade dock tagit alldeles för lång tid att bedöma, därför valdes bara 10 användare per uppenbart troll. Vi kan även se att många av trollen hörde till samma kluster, bara fyra kluster innehöll våra troll. Detta beror förmodligen på att vi inte kunde garantera en god spridning när vi identifierade de 10 uppenbara trollen, vi försökte variera våra söktermer men detta verkar inte ha gjort så stor skillnad. En annan teori är att det inte finns alternativt finns få och svåridentifierade troll i de andra klustren. LDA (tabell 4.2) gav resultatet att 51 av 85 användare var troliga troll. Ungefär samma resonemang kan appliceras här som det för LSI. Generellt så är LDA den modell som är den mest pålitliga medans LSI är den som är snabbast, alltså tycks det logiskt att LDA ger fler troliga troll än LSI. Något som vi också kan påpeka är att LDA och LSI hade väldigt lite överlapp användarmässigt, d.v.s. samma ursprungstroll gav med de två modellerna upphov till två uppsättningar användare där bara några få användare fanns i båda uppsättningarna. Lägg märke till att användare 430 inte gav upphov till något annat troligt troll. Detta antyder att det finns en del troll som inte är tillräckligt olika andra användare för att ämnesmodellen ska kunna skilja dem åt. Eftersom troll kan bete sig olika finns det en möjlighet att bara en viss sorts troll kan upptäckas med hjälp av 19
KAPITEL 5. DISKUSSION ämnesmodellering. Vidare så kanske detta även gäller andra former av identifiering, det är fullt möjligt att det behövs olika modeller för att hitta olika sorters troll, det känns osannolikt att en enda modell kan hitta alla varianter av troll. En annan observation för LSI-metoden är att sex av trollen hör till de stora klustren 1 och 9. En anledning vi tror är sannolik är att trollen förmodligen söker sig till ämnen som drar en stor publik, eftersom de på så sätt kan få störst påverkan. Att hålla sig till ett ämne som ingen är intresserad av är ett slöseri med tid. De fyra andra hör till mindre kluster som tycks handla om samma ämne men som ämnesmodellen bedömt vara tillräckligt annorlunda. För LDA så låg alla trollen i kluster som låg ungefär mitt i mellan de minsta och högsta värdena. Klustringen i sig visade att det var en rätt stor varians i antalet användare per kluster (se figurerna 4.1 och 4.2), några kluster har under 40 användare medan andra har över flera hundra. Några av de små klustren gav en del intressanta insikter som diskuteras lite mer senare (se avsnitt 5.3). Storlekarna på klustren kan antingen betyda att det finns ett par ämnen som är väldigt populära på Twitter eller så fick klusteralgoritmen använda sig av för många eller för få kluster. LDA gav däremot upphov till en relativt sett jämnare fördelning än vad LSI gav, förmodligen är även detta ett resultat av att LDA är mer precis än vad LSI är. Det är också viktigt att resultatet tolkas med försiktighet, det finns en risk att vi kan undermedvetet ha varit troligare att bedöma en viss typ av användare som troll och andra inte. Vi ville i största utsträckning undvika att klassa vanliga användare som troll, något som kan ha gjort att vi missat mer sofistikerade troll som försöker gömma sig. Vi har försökt att bedöma användarna så likartat som möjligt och en god del av de vi bedömt som troliga troll ligger starkt åt det troliga hållet. Vi anser att vårt resultat är tillräckligt bra för att kunna dra slutsatser om metodens effektivitet. Mer om svårigheten att bedöma i nästa avsnitt. 5.2 Svårigheten att avgöra trollstatus Något som vi inte hade riktigt förutsett var hur pass svårt det skulle vara att avgöra huruvida en användare är ett troll eller inte. Eftersom någon grundsanning inte finns till hands har det varit upp till oss att avgöra trollstatusen för de användare vi hittat. Det vi tagit med i vår bedömning har inkluderat saker som hur starkt användaren uttrycker sig, om användaren skriver om många ämnen eller fokuserar på enstaka. Även Twitter-profilen är ibland till hjälp då några inte sticker under stol med vad deras syfte är. Men som kan observeras i tabellen ovan är det ändå svårt att med säkerhet avgöra, därav kolumnen osäkra troll för användare som ligger på gränsen. Problemet med att bedöma om en användare är ett troll eller inte är ett oundvikligt problem för alla som gör något arbete kring trolldetektering. För att kunna bekräfta att ens framtagna metod fungerar måste den testas för att undersöka om den kan korrekt bedöma trollen, vilket innebär att det måste finnas förbestämda troll som kan kan testa på. Dessa troll måste på något sätt hittas vilket som sagt 20
5.3. OFÖRUTSEDDA UPPTÄCKTER I KLUSTREN är både tidskrävande och svårt. Ett annat problem är att letandet efter de första trollen influerar de trollen som följer efter. Missar man helt ett troll inom ett visst ämne skulle det kunna bli så att man aldrig hittar det trollet efter att bytet till att leta liknande troll görs. Kanske är det bättre att ta stickprov från klustren och utvärdera dessa, eftersom vi hade problem med klustringen till en början var vi tvungna att göra på sättet vi gjorde för att få fram något resultat alls. Stickprov från klustren borde vara bättre eftersom klustrens egenskap är just att de ska vara olika varandra, då borde det vara mer troligt att en större variation på trollen erhålls men fortfarande finns risken att troll missas om klustret internt har relativt stor variation och stickproven antyder att det inte finns troll. 5.3 Oförutsedda upptäckter i klustren Utöver troll så har vi även upptäckt ett antal användare som verkar vara datorprogram (bottar). Dessa tycks ha hamnat i egna kluster, med figur 4.1 som referens tycks kluster 10 och kluster 22 bestå av bot-konton. Kluster 22 faller också under kategorin troll, då dessa användare alla skickar massviss av identiska meddelanden till en mängd olika Twitter-användare. Kontona länkar alla också till en enstaka Facebook användare. Vi har inte haft tillräckligt med tid för att titta närmare på alla klustringsgrupper men vi misstänker att de övriga klustren med få användare i så kan situationen vara liknande. Men det skulle också kunna vara så att de inte är av större intresse, som kluster 33 vilket består av användare som gillar att dela sina Youtube-gillningar på Twitter. Vi tror att det kan vara värt att göra ytterliga undersökningar på området. 5.4 Utvidgning till större datamängd Vi har som nämnt 8866 användare i den datamängden som vi använt (se avsnitt 4.1). Jämfört med andra projekt som använt sig av ämnesmodellering är det relativt få. Vi kan inte se någon anledning till att man inte skulle kunna utöka datamängden till att innehålla långt fler användare. Modellerna är beprövade på stora mängder samt att de kan byggas allt eftersom och även sparas till disk, alltså borde utrymme inte vara några större problem. Siktar man på så stora mängder lär man ha tillgång till en större beräkningskapacitet också. Våra körningar har som mest tagit ett par minuter och då tränade vi modellerna genom att ge dem alla dokument på samma gång. Gör man ingen filtrering av rådatan tar det däremot längre tid. Twitter med alla länkar och nämnande av användare bidrar till en väldigt hög mängd unika ord. Vår unika ordmängd minskade till ungefär en åttondel efter filtrering. Detta borde tas i beaktning om man ska använda en större datamängd. 21
KAPITEL 5. DISKUSSION 5.5 Etiskt perspektiv Det finns även ett etiskt perspektiv på ett projekt som detta som kanske inte är tydligt vid en första anblick. Visserligen ligger all data vi använt publikt för hela världen att beskåda, men när någon skriver på Twitter är nog det sista denne tänker på att någon kan gå och samla in tweets och placerar en i något fack baserat på statistiska analyser eller liknande. Det finns en risk att någon som inte trollar klumpas ihop med troll bara för att de ur modellens perspektiv tycks skriva på ett liknande sätt. Ponera att det gjordes t.ex. en tjänst som ger ett mått på hur trollaktigt ett konto är, då finns det inget som stoppar någon från att ta tjänsten och göra om den till att exempelvis leta reda på regimkritiker. Förmodligen existerar redan sådana program, för om två studenter kan skapa något som kan gruppera ihop användare med ett acceptabelt resultat så borde en organisation med långt mer resurser kunna konstruera något med en väldigt mycket högre träffsäkerhet. Men samtidigt kan det ju användas för mer välmenande ändamål som att stoppa spam, eller användare som gjort det till sin uppgift att bara hata på andra eller kanske till och med skydda de nämnda regimkritikerna genom att förse dem med meddelanden som minskar deras risk att upptäckas. 5.6 Framtida verk Med all diskussion ovan som bakgrund så tror vi att de bästa sätten att dra nytta av denna rapport samt sådant som bygger vidare därpå är följande. 5.6.1 Hittande av troll Ämnesmodelleringen visade sig vara ganska bra för att hitta en någorlunda stor mängd troll. Mängden arbete som behövdes var också relativt låg, visserligen fick vi gå igenom 100 användare per modell samt utföra några sökningar med nyckelord men vi har långt ifrån gått igenom alla användare i vår datamängd. Utan denna så hade vi antingen varit tvungna att gå igenom alla användare eller göra vanliga textsökningar, det första skulle tagit alldeles för lång tid och den andra ger förmodligen inte ett särskilt bra resultat heller eftersom man bara får fram användarna som använt de sökta orden utan någon särskild ordning. Alltså kan ämnesmodellering användas för att hitta en grupp förbestämda troll som sedan kan användas som underlag för det man forskar på. Men ha i åtanke att det förmodligen bara blir en viss sorts troll. 5.6.2 Förbättring av existerande metoder Då ämnesmodellen hittade en inte obetydlig mängd relaterad troll till ursprungstrollen tänker vi att ämnesmodellering kan användas för att förbättra någon existerande metod som detekterar troll. Förfaringssättet för ett sådant arbete skulle då gå ut 22
5.6. FRAMTIDA VERK på att hitta en grupp troll i sin datamängd, låta ämnesmodellerna hitta ytterligare användare och sedan manuellt bedöma dessa och använda de funna trollen till att förbättra metoden de första trollen hittades med. 5.6.3 Kan ämnesmodellering avgöra troll? En fundering vi har är huruvida man kan träna ämnesmodellerna med enbart troll för att sedan använda den till att bedöma om en användare är troll eller inte. Modellen kan då möjligen bara behöva ett eller ett fåtal ämnen. Blir det då att om en användare stämmer in bra på något så är den ett troll och stämmer den inte in på någon är den inte ett troll? Vi har visat att det inte är omöjligt att hitta troll med ämnesmodellering men det är inte säkert att det är tillräckligt för att kunna göra en effektiv bedömare. 23
Kapitel 6 Slutsats Att upptäcka troll på Twitter är en ganska svår uppgift. Utan någon utgångspunkt är man tvungen att gissa sökningar som kan leda till troll eller klustra och göra stickprov. Men efter upptäckt av ett fåtal troll kan man nyttja dessa tillsammans med ämnesmodeller för att upptäcka nya, liknande troll. Att klustra användarna efter ämnen kan också avslöja koordinerade botgrupper som skickar nästintill identiska meddelanden, då dessa hamnar i en eget litet kluster. Det går dock inte att undvika behovet av att manuellt verifiera om användaren är ett troll eller inte då det inte finns något program som kan bedöma om en användare är ett troll. Ämnesmodellering verkar alltså kunna vara till nytta vid trolldetektering och vi ser ett antal olika sätt att göra det på. Antingen genom att använda dem som hjälp vid skapande av bedömare, att använda dem för att förbättra existerande bedömare. Vi skulle också vilja se om det går att göra en bedömare av ämnesmodeller genom att bara träna med troll. 25
Litteraturförteckning [1] Blei, D. M., Ng, A. Y., and Jordan, M. I. Latent dirichlet allocation. the Journal of machine Learning research 3 (2003), 993 1022. [2] Bradford, R. B. An empirical study of required dimensionality for large-scale latent semantic indexing applications. In Proceedings of the 17th ACM conference on Information and knowledge management (2008), ACM, pp. 153 162. [3] Chen, A. The agency. The New York Times (2015). [4] Galán-García, P., de la Puerta, J. G., Gómez, C. L., Santos, I., and Bringas, P. G. Supervised machine learning for the detection of troll profiles in twitter social network: Application to a real case of cyberbullying. In International Joint Conference SOCO 13-CISIS 13-ICEUTE 13 (2014), Springer, pp. 419 428. [5] HerdaĞdelen, A., Zuo, W., Gard-Murray, A., and Bar-Yam, Y. An exploration of social identity: The geography and politics of news-sharing communities in twitter. Complexity 19, 2 (2013), 10 20. [6] Hong, L., and Davison, B. D. Empirical study of topic modeling in twitter. In Proceedings of the first workshop on social media analytics (2010), ACM, pp. 80 88. [7] Kumar, S., Spezzano, F., and Subrahmanian, V. Accurately detecting trolls in slashdot zoo via decluttering. In Advances in Social Networks Analysis and Mining (ASONAM), 2014 IEEE/ACM International Conference on (2014), IEEE, pp. 188 195. [8] Leskovec, J., Rajaraman, A., and Ullman, J. D. Mining of massive datasets. Cambridge University Press, 2014. [9] Mihaylov, T., Koychev, I., Georgiev, G. D., Ontotext, A., and Nakov, P. Exposing paid opinion manipulation trolls. RECENT ADVANCES IN (2015), 443. [10] Nevéus, I. De är putins soldater på nätet. Dagens Nyheter. (2015). 27
LITTERATURFÖRTECKNING [11] Papadimitriou, C. H., Tamaki, H., Raghavan, P., and Vempala, S. Latent semantic indexing: A probabilistic analysis. In Proceedings of the seventeenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems (1998), ACM, pp. 159 168. [12] Tang, L., and Liu, H. Community detection and mining in social media. Synthesis Lectures on Data Mining and Knowledge Discovery 2, 1 (2010), 1 137. [13] Twitter, I. Getting started with twitter, November 2016. [14] Wikipedia, the free encyclopedia. K-means clustering. https://en. wikipedia.org/wiki/k-means_clustering, 2013. [Online; accessed April 27, 2013]. 28
www.kth.se