Optimalisatie van Sociale Netwerksites via kenmerkdetectie...

77
Optimalisatie van Sociale Netwerksites via kenmerkdetectie binnen vriendenrelaties Niels Soetens Promotoren: prof. dr. ir. Filip De Turck, prof. dr. ir. Bart Dhoedt Begeleiders UGent: Steven Latré, Philip Leroux, Stijn Verstichel Begeleiders Netlog: Pieter De Schepper, Joost Roelandts, Vincent Verlee Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen Vakgroep Informatietechnologie Voorzitter: prof. dr. ir. Daniël De Zutter Faculteit Ingenieurswetenschappen Academiejaar 2009-2010

Transcript of Optimalisatie van Sociale Netwerksites via kenmerkdetectie...

Page 1: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Optimalisatie van Sociale Netwerksites via

kenmerkdetectie binnen vriendenrelaties

Niels Soetens

Promotoren: prof. dr. ir. Filip De Turck, prof. dr. ir. Bart Dhoedt

Begeleiders UGent: Steven Latré, Philip Leroux, Stijn Verstichel

Begeleiders Netlog: Pieter De Schepper, Joost Roelandts, Vincent Verlee

Masterproef ingediend tot het behalen van de academische graad van

Master in de ingenieurswetenschappen: computerwetenschappen

Vakgroep Informatietechnologie

Voorzitter: prof. dr. ir. Daniël De Zutter

Faculteit Ingenieurswetenschappen

Academiejaar 2009-2010

Page 2: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms
Page 3: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Optimalisatie van Sociale Netwerksites via

kenmerkdetectie binnen vriendenrelaties

Niels Soetens

Promotoren: prof. dr. ir. Filip De Turck, prof. dr. ir. Bart Dhoedt

Begeleiders UGent: Steven Latré, Philip Leroux, Stijn Verstichel

Begeleiders Netlog: Pieter De Schepper, Joost Roelandts, Vincent Verlee

Masterproef ingediend tot het behalen van de academische graad van

Master in de ingenieurswetenschappen: computerwetenschappen

Vakgroep Informatietechnologie

Voorzitter: prof. dr. ir. Daniël De Zutter

Faculteit Ingenieurswetenschappen

Academiejaar 2009-2010

Page 4: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Voorwoord

Het schrijven van mijn masterproef is een mooie bekroning van mijn studieloopbaan aan deUniversiteit Gent. Deze laatste uitdagende opdracht werd dan ook mede mogelijk gemaaktdoor de hulp en steun van verschillende personen.

Eerst en vooral wil ik graag mijn thesisbegeleiders, Steven Latre, Philip Leroux enStijn Verstichel bedanken voor hun uitstekende begeleiding. Daarnaast wens ik debegeleiders van Netlog, Pieter De Schepper, Joost Roelandts en Vincent Verlee, te bedankenvoor de goede samenwerking. Ik bedank ook mijn promotoren, prof. dr. ir. Filip De Turcken prof. dr. ir. Bart Dhoedt.

Verder wil ik graag mijn familie en vrienden bedanken voor hun steun doorheendeze periode. Specifiek zou ik graag Denis Defreyne, Thomas Spranghers enWim Vander Schelden bedanken voor hun hulp, steun en een aangename studententijd.

Een laatste, maar speciale bedanking is voor mijn vriendin, Caroline, die steeds klaarstondwanneer ik haar nodig had.

Niels Soetens, mei 2010

Page 5: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Toelating tot bruikleen

De auteur geeft de toelating deze scriptie voor consultatie beschikbaar te stellen en delenvan de scriptie te kopieren voor persoonlijk gebruik.Elk ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder metbetrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen vanresultaten uit deze scriptie.

Niels Soetens, mei 2010

Page 6: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Optimalisatie van Sociale Netwerksitesvia kenmerkdetectie binnen vriendenrelaties

door

Niels SOETENS

Masterproef ingediend tot het behalen van de academische graad van

MASTER IN DE INGENIEURSWETENSCHAPPEN: COMPUTERWETENSCHAPPEN

OPTIE SOFTWARE-ENGINEERING

Academiejaar 2009–2010

Promotoren: prof. dr. ir. Filip DE TURCK, prof. dr. ir. Bart DHOEDT

Begeleiders UGent: Steven LATRE, Philip LEROUX, Stijn VERSTICHEL

Begeleiders Netlog: Pieter DE SCHEPPER, Joost ROELANDTS, Vincent VERLEE

Faculteit Ingenieurswetenschappen

Universiteit Gent

Vakgroep Informatietechnologie

Voorzitter: prof. dr. ir. Daniel DE ZUTTER

OverzichtOnline sociale netwerken kennen de laatste jaren een grote opmars. Deze websitesbevatten veel informatie over gebruikers en hun vrienden. In deze masterproef wordtonderzocht welke technologieen men kan gebruiken voor het optimaliseren van onlinesociale netwerken. Hierbij wordt vooral onderzoek gedaan naar clusteringalgoritmen dieautomatisch vriendengroepen detecteren op basis van vriendenrelaties. Daarnaast wordthet gebruik van een ontologie voor het verrijken van het semantische web en sociale netwerksites onderzocht.

Trefwoordensociale netwerken, clustering, ontologie, semantisch web

Page 7: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Optimization of Online Social Networking Sitesby means of Community Detection

Niels Soetens

Supervisor(s): prof. dr. ir. Filip De Turck, prof. dr. ir. Bart Dhoedt

Abstract— Online social networks have seen a boost thepast years. These websites contain a large amount ofinformation about users and their friends. Analyzing andextracting the right information for optimizing these socialnetworks, e.g. filtering messages or finding new friends,can be difficult. The goal of this master dissertation wasto find and evaluate data mining technologies. Clusteringalgorithms are used for automatic community detectionwithin friendship networks. This technique can extractuseful information about people with the same interest orfriends. Furthermore the use of an ontology is discussed toenrich both the semantic web and social networking sites.

Keywords—social network, community detection, ontology

I. Introduction

ONLINE social networks contain a large amount ofinformation about their users, though not every bit of

information is easily accessible. Data mining technologiescan help extract new information from existing datasets.This information can then be used to optimize socialnetworks. For example, filtering of certain messages orfinding new friends, can benefit from these data miningtechnologies.

One way to extract new information is by analyzingthe relations between users on social networking sites.Discovering users with the same friends, interests, hobbies,etc. and grouping them together can be very useful forcreating new or optimizing existing applications. Thismakes automatic detection of communities an interestingtopic for social networks.

Social networks are not the only places you can finddata about users. Some people also have a homepage,a blog or Twitter about their life. There is a lot ofinformation about people scattered around the World WideWeb (WWW) which is not always linked to one person.Linking these scattered pieces of data can help enrich thesemantic web and can be used to optimize certain aspectsof social networking sites. This linking process can also beused to merge data from several online social networks.

II. Technologies

There are several data mining techniques that can beused to extract new information from existing datasets [1].From these techniques, two were chosen, clusteringalgorithms and ontology. Both are good at analyzing andextracting friendship relations on social networks.

A. Clustering algorithms

A clustering algorithm is an unsupervised technique,which means it does not need any training to work properly.The goal of these algorithms is to detect and groupsimilar data into smaller subsets called clusters. This isusually achieved by calculating a similarity score betweenthe observations in a dataset. Well known examples arehierarchical and partitional clustering [1].

The datasets that were used in this research are based onfriendship relations on online social networks, e.g. Netlogor Facebook. This kind of data can be represented as agraph where the nodes are people and the edges friendships.Figure 1 shows an example of community structure innetworks represented in a graph. A new set of clusteringalgorithms based on this representation were developed fordetecting communities.

Fig. 1. Example of community structure in graphs

One of the best-known community detection algorithmson graphs is that proposed by Girvan and Newman [2].This method calculates the edge centrality based onbetweenness as introduced by Freeman [3]. If a networkhas a clear community structure, the edges with thehighest centrality value are those between two differentgroups. Every iteration removes the edge with the highestcentrality value from the graph, sometimes causing thegraph to fall apart into subgroups. Thus revealing in anatural way the underlying community structure of thenetwork. However, its main disadvantage is scalability.Calculating the edge betweenness in every iteration resultsin a complexity of O

(n3)

where n is the number of nodesin a network.

A second algorithm that has been evaluated in thisresearch is known as the Louvain algorithm [4]. Thisheuristic method uses a greedy approach which makes itone of the fastest community detection algorithms availabletoday. It starts out with n communities (each node hasits own community) and in each iteration communities

Page 8: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

are merged by calculating the gain in modularity (∆Q).Modularity Q was first introduced by Newman andGirvan as a stopping criteria for their algorithm describedabove [5]. Modularity Q is defined as:

Q =1

2m

ij

[Aij −

kikj2m

]δ (ci, cj) ,

where m is the number of edges, A the adjacency matrix,Aij the number of edges between nodes i and j, and kikjis the suspected number of edges between nodes i en j ina random model.

The Louvain algorithm keeps merging communities untilno gain in modularity is possible. This algorithm scaleswell as its complexity is near linear on typical networkswith a community structure.

B. Ontology

In the second part of this master dissertation the possibleuse of an ontology was studied in more detail. An ontologyis a datastructure that allows reasoning about data andobjects of certain domain. The goal was to enrich thesemantic web with data found on social networks, whichcan be read and interpreted by computers.

The Friend of a Friend (FOAF) ontology [6] can be usedfor this purpose. With this technology it is possible todescribe a person, his interests and friends in a distributedmanner. By linking blogs, social networks and otherinformation about people scattered on the WWW, it allowsmore efficient usuage of these services.

Used properly and extensively, this technology couldenrich both the semantic web and social networkingwebsites.

III. Evaluation

The evaluation of this master dissertation mainly focuseson community detection by means of clustering algorithms.These algorithms have been evaluated in two ways: speedand accuracy. When testing, two kinds of datasets wereused: artificial and real life datasets. Artificial datasetswere created with benchmark software and the real lifedatasets were extracted from social networking sites suchas Facebook and Netlog.

Looking at the results in terms of speed, Louvainclearly outperforms Girvan-Newman. Given a dataset withhundred nodes, Louvain only needs a couple of millisecondswhere Girvan-Newman needs seconds to find the clusters.As a result, the Louvain algorithm would be a good choicefor building real time applications, e.g. visualization ofsocial networks.

To compare the accuracy of both algorithms, artificialdatasets were created with an increasing complex com-munity structure. Figure 2 shows that when there is aclear community structure inside a network (i.e. smallmu) both algorithms perform well. When it is harderto find communities (i.e. increasing mu) Girvan-Newmanoutperforms Louvain.

Fig. 2. Comparing accuracy between Louvain and Girvan-Newmanalgorithm

There was also a subjective test were people were askedto evaluate the results from both algorithms on their owndatasets extracted from Facebook or Netlog. Surprisinglythe Louvain algorithm consistently scored higher on thesesubjective tests. Louvain had an average score of about85% where Girvan-Newman scored slightly lower with 80%.This could be explained by the clear community structureof social network datasets.

The evaluation results clearly show that the Louvainalgorithm outperforms Girvan-Newman in speed andalmosts achieves the same level of accuracy if there is aclear community structure.

IV. Conclusions

Many technologies exists which can be used to optimizesocial network sites. Two of these, clustering algorithmsand ontology, have been discussed and evaluated in thisresearch. Clustering algorithms can provide new and usefulinformation. This information can be used to optimizesocial networks, e.g. filtering messages from certain groups.Although much research on community detection exists [7],it is still useful to compare and evaluate the algorithms ona given dataset.

Ontologies and the semantic web have not reached theirfull potential yet. It would be recommended for socialnetworks to start using these technologies.

References

[1] Toby Segaran, Programming Collective Intelligence, O’ReillyMedia, 2007.

[2] M. Girvan and M. E. J. Newman, “Community structure in socialand biological networks,” Proceedings of the National Academyof Science, vol. 99, pp. 7821–7826, June 2002.

[3] Linton C. Freeman, “A set of measures of centrality based onbetweenness,” Sociometry, vol. 40, no. 1, pp. 35–41, 1977.

[4] Vincent D. Blondel, Jean-Loup Guillaume, Renaud Lambiotte,and Etienne Lefebvre, “Fast unfolding of communities inlarge networks,” Journal of Statistical Mechanics: Theory andExperiment, vol. 2008, no. 10, pp. P10008+, October 2008.

[5] M. E. J. Newman and M. Girvan, “Finding and evaluatingcommunity structure in networks,” Phys. Rev. E, vol. 69, no.2, pp. 026113–+, Feb. 2004.

[6] Dan Brickley and Libby Miller, “The friend of a friend (foaf)project,” http://www.foaf-project.org/.

[7] Santo Fortunato, “Community detection in graphs,” Physicsreports-Review section of physics letters, vol. 486, no. 3-5, pp.75–174, FEB 2010.

Page 9: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Inhoudsopgave

Voorwoord ii

Toelating tot bruikleen iii

Overzicht iv

Extended abstract v

Inhoudsopgave vii

Lijst van afkortingen ix

1. Inleiding 11.1. Situering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3. Doelstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4. Toepassingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.5. Samenwerking met Netlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.6. Structuur van deze scriptie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. Literatuurstudie 52.1. Technologiestudie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.1.1. Data Mining vs. Artificiele Intelligentie . . . . . . . . . . . . . . . . . . 52.1.2. Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.1.3. Classificatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.4. Artificiele Neurale Netwerken . . . . . . . . . . . . . . . . . . . . . . . 102.1.5. Support-Vector Machines . . . . . . . . . . . . . . . . . . . . . . . . . . 112.1.6. Regelgebaseerde systemen . . . . . . . . . . . . . . . . . . . . . . . . . 122.1.7. Ontologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2. Applicaties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2.1. Facebook & TouchGraph Photos . . . . . . . . . . . . . . . . . . . . . . 142.2.2. Vizster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3. Technologiekeuze 163.1. Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2. Ontologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3. Systeem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

vii

Page 10: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Inhoudsopgave Inhoudsopgave

4. Clusteringalgoritmen 184.1. Grafentheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.1.1. Enkele eigenschappen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.2. Clustermethoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.2.1. Traditioneel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.2.2. Betweenness centraliteit . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2.3. Modulariteit gebaseerd . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.2.4. Andere methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4.3. Evaluatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.4. Implementatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.4.1. Graafstructuur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.4.2. Algoritmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5. Ontologie 315.1. Semantisch Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.1.1. Uniform Resource Identifier . . . . . . . . . . . . . . . . . . . . . . . . . 325.1.2. Extensible Markup Language . . . . . . . . . . . . . . . . . . . . . . . . 325.1.3. Resource Description Framework . . . . . . . . . . . . . . . . . . . . . 335.1.4. Ontologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.1.5. Logica, bewijs & vertrouwen . . . . . . . . . . . . . . . . . . . . . . . . 37

5.2. Friend of a Friend ontologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2.1. Specificatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.2.2. Uitbreiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.2.3. Publiceren van FOAF data . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5.3. Implementatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6. Evaluatie 436.1. Testomgeving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6.1.1. Snelheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.1.2. Accuraatheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6.2. Resultaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446.2.1. Zachary’s Karate Club . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446.2.2. Benchmark Lancichinetti et al. . . . . . . . . . . . . . . . . . . . . . . . 466.2.3. Datasets Facebook & Netlog . . . . . . . . . . . . . . . . . . . . . . . . . 51

7. Mogelijke Uitbreidingen 537.1. Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

7.1.1. Visualisatie vriendenkringen . . . . . . . . . . . . . . . . . . . . . . . . 537.1.2. Filteren van berichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.1.3. Clusteringalgoritmen vergelijken . . . . . . . . . . . . . . . . . . . . . . 54

7.2. FOAF & ontologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.3. Netlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

8. Conclusie 56

viii

Page 11: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Inhoudsopgave Inhoudsopgave

A. Netlog & OpenSocial 58A.0.1. Netlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58A.0.2. OpenSocial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

B. Inhoud van de CD-ROM 59

ix

Page 12: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Lijst van afkortingen

ANN Artificiele Neurale NetwerkenFOAF Friend of a FriendGGG Giant Global Graph

GN Girvan-NewmanHTML HyperText Markup Language

OWL Web Ontology LanguagePHP PHP: Hypertext PreprocessorRDF Resource Description Framework

SVM Support Vector MachineURI Uniform Resource Identifier

W3C World Wide Web ConsortiumWWW World Wide Web

XML Extensible Markup Language

x

Page 13: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

HOOFDSTUK 1. INLEIDING

1. Inleiding

1.1. Situering

Online sociale netwerken zijn niet meer weg te denken uit het dagelijkse leven. Zo kan menbijvoorbeeld makkelijk zijn/haar vrienden op de hoogte houden via Facebook, de blogs lezenvan hun favoriete groep tot zelfs de Twitter berichten opvolgen van de president van deVerenigde Staten van Amerika. Het World Wide Web (WWW) wordt meer en meer gebruiktals globaal communicatiemiddel waar personen informatie over zichzelf en hun vriendenplaatsen.

De omgeving van deze scriptie zal zich dan ook afspelen in deze online sociale netwerken.Sociale netwerksites hebben de laatste jaren een grote opmars gekend, enkele voorbeeldenzijn Facebook en Netlog, die verschillende miljoenen gebruikers beheren [1, 2]. Deze websitesbeschikken dan ook over veel gebruikersinformatie, die de gebruiker zelf heeft aangeleverdof uit de acties die hij ondernomen heeft.

Deze systemen groeien vaak uit tot een enorme bron aan informatie. Heel wat informatie isrechtstreeks af te leiden uit de gegevens die de gebruiker heeft ingevoerd. Maar er kan ookheel wat informatie verscholen zitten die niet onmiddellijk af te leiden valt. Bijvoorbeeldwelke acties een gebruiker onderneemt op een sociale netwerksite of bepaalde informatieuit zijn vriendenrelaties. Deze data is daarom niet minder belangrijk en kan heel nuttig zijnom verder te analyseren.

1.2. Probleemstelling

Gebruikers van sociale netwerksites worden vaak overstelpt met berichten van acties diehun vrienden hebben ondernomen. Deze informatie kan voor gebruikers relevant ofirrelevant zijn naargelang hun profiel. Bijvoorbeeld wanneer een vriend nieuwe foto’svan een evenement online plaatst. Was de gebruiker daar zelf ook aanwezig, zal dezewaarschijnlijk geınteresseerd zijn om deze te bekijken. Als men zelf geen liefhebber is vanonline spelen en haalt een vriend een nieuwe highscore in een spel, zal de gebruiker mindergeınteresseerd zijn in de boodschap. Elke gebruiker kan deze berichten relevant of irrelevantbeschouwen naargelang zijn eigen interesses.

1

Page 14: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

1.3. DOELSTELLING HOOFDSTUK 1. INLEIDING

Een ander probleem stelt zich doordat er net zoveel online sociale netwerksites zijn. Vaakheeft een persoon met een Facebook pagina ook een Twitter profiel of een eigen blog. Deinformatie die personen over zichzelf online plaatsen, is vaak verspreid over verschillendesociale netwerken. Als men zich wil aanmelden op een nieuwe sociale netwerksite moetmen zich eerst registreren, verifieren en alle vrienden die reeds aanwezig zijn zien terug tevinden. Vaak bieden deze sites de mogelijkheid om vrienden te zoeken via contacten uit jee-mail. Maar je hebt niet van al je vrienden/kennissen steeds een e-mailadres.

Hieruit blijkt dat de nood aanwezig is om een systeem te creeren die de informatie vangebruikers kan analyseren en die een bron kan zijn van nieuwe intelligente toepassingen.Door de aanzienlijke hoeveelheid aan gebruikersinformatie die sociale netwerksitesbevatten, kan dit onmogelijk manueel worden gedaan. De informatie die voor handenis, moet automatisch worden geanalyseerd. De relevante data moet zo efficient mogelijkkunnen worden gefilterd.

1.3. Doelstelling

De doelstelling van deze scriptie is enerzijds de gebruikersinformatie en acties te analyseren.Hierbij is het de bedoeling om vriendenrelaties in kaart te brengen en groepen te ontdekkenmet gelijkaardige kenmerken zoals hobby’s of zelfde interesse in spelletjes. Voor dezeinformatie te ontginnen uit de bestaande databanken zullen verschillende algoritmenen technologieen onderzocht worden. Uit dit onderzoek zullen dan enkele gepastetechnologieen worden gekozen of gecombineerd om het systeem op te bouwen. Deinformatie die met dit systeem wordt ontgonnen uit de databank zal moeten wordenopgeslagen in de vorm van een datastructuur. Er zal onderzoek moeten worden gevoerdnaar bestaande mogelijkheden waardoor de informatie die verkregen is maximaal benutkan worden.

Anderzijds zal worden onderzocht hoe de gedistribueerde informatie van personen beterkan worden benut. Er zal onderzocht worden of er methodes bestaan die de informatie vanverschillende sociale netwerksites, blogs, etc. op mekaar kunnen afstellen. Hierdoor zou eenpersoon die zich registreert op een sociale netwerksite niet allerlei onnodige stappen moetendoorlopen zoals zijn gegevens invullen en het vinden van al zijn vrienden en kennissen.

Wanneer het systeem en de bijhorende datastructuur uiteindelijk ontwikkeld zijn, kunnendeze gebruikt worden als input voor bestaande of nieuwe toepassingen.

1.4. Toepassingen

Het systeem zal de informatie van gebruikers gaan analyseren zodat men bepaalde nieuwetoepassingen kan ontwikkelen of reeds bestaande toepassingen kan optimaliseren. Meer

2

Page 15: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

1.5. SAMENWERKING MET NETLOG HOOFDSTUK 1. INLEIDING

specifiek zal er vooral gekeken worden naar de onderlinge vriendenrelaties van personen.Hierbij is het de bedoeling om automatisch vriendenkringen te gaan detecteren. Uit dezeinformatie kunnen enkele toepassingen worden bedacht.

Wanneer men automatisch de vriendengroepen van personen kan detecteren, zou een eerstetoepassing een visualisatie van deze informatie kunnen zijn. Op verschillende socialenetwerksites zijn er reeds dergelijke toepassingen die vriendengroepen visueel kunnenvoorstellen. Dit wordt meestal voorgesteld door middel van een graaf waarbij de knopenpersonen zijn en de bogen hun onderlinge relaties. Eventueel kan dit worden uitgebreidmet het in kaart brengen van attributen zoals leeftijd, geslacht of interesses van vrienden.

Verder kunnen deze groepen een basis zijn voor het selectief versturen van informatie. Zozou een gebruiker groepen kunnen definieren (eventueel geholpen met dit systeem) omzo specifieke boodschappen te versturen naar een bepaalde groep. Omgekeerd zou eenpersoon kunnen instellen dat men enkel op de hoogte wil worden gehouden van nieuweboodschappen van personen uit een bepaalde groep.

Tegelijkertijd met deze scriptie werd er onderzoek gedaan naar aanbevelingen voorgebruikers op sociale netwerksites. Het systeem dat hier wordt voorgesteld zou kunnenhelpen met deze aanbevelingen.

Verder is het ook de bedoeling om de informatie van gebruikers makkelijker toegankelijk temaken naar andere sociale netwerksites. Dit natuurlijk zonder de privacy van de gebruikerte schenden. Bij deze laatste toepassing is het vooral belangrijk om de gedistribueerdeinformatie van gebruikers op het web aan elkaar te kunnen linken.

1.5. Samenwerking met Netlog

Netlog (http://www.netlog.com) [2] is een sociale netwerksite waarop gebruikersallerhande informatie kunnen delen met vrienden. Met momenteel (2010) meer dan50 miljoen leden over verschillende landen en talen is dit een van de grootste socialenetwerksites van Europa. Opgericht in september 2006 en met hun hoofdzetel in Gent isNetlog uitgegroeid tot een van de grootste sociale netwerksites in Belgie en Europa.

Op Netlog kan een gebruiker een eigen profielpagina aanmaken met daarop blogs, foto’s,video’s, muzieklijsten, etc. Men richt zich hier vooral naar jongeren die zo op een anderemanier met hun vrienden communiceren en ook makkelijk nieuwe vrienden leren kennen.Netlog tracht op een gepersonaliseerde en gelocaliseerde manier om te gaan met zijngebruikers. Regio, leeftijd en geslacht staan daardoor centraal. Een technologie die personenen hun vrienden kan groeperen op basis van deze eigenschappen, zou heel interessantkunnen zijn voor een sociale netwerksite zoals Netlog.

3

Page 16: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

1.6. STRUCTUUR VAN DEZE SCRIPTIE HOOFDSTUK 1. INLEIDING

1.6. Structuur van deze scriptie

In deze scriptie zal eerst onderzocht worden welke technologieen kunnen worden gebruiktvoor het behalen van de doelstelling. In de daaropvolgende hoofdstukken 4 & 5 zullen degekozen technologieen in meer detail worden besproken.

Het daaropvolgende hoofdstuk 6 zal een evaluatie zijn van het geleverde werk. Verderzullen ook mogelijke uitbreidingen en toepassingen worden voorgesteld in hoofdstuk 7. Inhet laatste hoofdstuk kan men de conclusie lezen over het geleverde werk.

4

Page 17: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

HOOFDSTUK 2. LITERATUURSTUDIE

2. Literatuurstudie

2.1. Technologiestudie

2.1.1. Data Mining vs. Artificiele Intelligentie

Data mining en artificiele intelligentie (AI) zijn twee termen uit de computerwetenschappen.Waar data mining vaak gebruikt wordt in databank omgevingen, beschrijft artificieleintelligentie eerder het leren van computersystemen. Deze twee termen vertonengemeenschappelijke kenmerken. Daarom komen deze verschillende technieken voor inartikels over beide vakgebieden. Hieronder worden deze twee termen iets concreterbesproken.

Data Mining

Data mining is een algemene term voor het ontginnen of verzamelen van (verborgen)informatie uit een bestaande dataset. Dit kan aan de hand van een aantal technieken zoalsassociatie, classificatie, clustering, etc. waarvan de meest voorkomende hieronder in meerdetail worden beschreven.

Databanken

> >DataMining

ExtraInformatie

Figuur 2.1.: Data Mining

Data mining is een oude techniek die al eeuwen, vaak manueel, wordt toegepast opallerhande data. Door de toenemende informatisering en steeds groter wordende datasetsis de nood voor automatisering zeer groot. Deze technieken kunnen gebruikt worden omextra (verborgen) informatie te verzamelen uit de vaak enorme datasets. Die informatie kandan opnieuw dienen voor het efficienter analyseren van de data of zelfs voor het voorspellenvan bepaalde gegevens.

Een algemeen voordeel bij het gebruik van data mining is dat het geschikt is om uit te voerenop grote datasets. Meestal is de complexiteit laag en zijn deze technieken schaalbaar [3].

5

Page 18: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

2.1. TECHNOLOGIESTUDIE HOOFDSTUK 2. LITERATUURSTUDIE

De meeste van deze technieken hebben ook een eenvoudige interpretatie waardoor heteenvoudig wordt als gebruiker om controle te houden over de werking van het systeem [4].

Artificiele Intelligentie

Bij artificiele intelligentie (AI) of kunstmatige intelligentie wordt er gestreefd om in eensysteem een soort van ”menselijke” intelligentie na te bootsen. Algemeen wil men eensysteem laten redeneren over een omgeving zodat het hieruit zelf de conclusies kan bepalenom zo tot een optimale actie of oplossing te komen.

Probleem oplossend denken, planning, leren uit acties, een natuurlijke omgeving kunnenanalyseren, dit zijn allemaal vormen van AI. Het is duidelijk dat in tegenstelling tot datamining, AI zich niet enkel afspeelt op databank niveau maar ook in computerspellen,robotica of linguıstiek.

Een specifiek en cruciaal onderdeel van AI is learning (leren) of machine learning. In dezetak worden technieken gebruikt, zowel supervised of unsupervised (zie verder), om eensysteem te laten leren uit bepaalde acties of uit een omgeving. Hieruit kunnen danconclusies worden genomen die dan bijvoorbeeld predicties of toekomstvoorspellingenkunnen maken [5]. Zo gebruiken veel computerspellen AI voor het bepalen van optimaleroutes.

Supervised vs. Unsupervised Learning

Supervised of gesuperviseerd leren is een term die wordt gebruikt wanneer een systeem eenpredictie moet maken aan de hand van een aantal voorbeeld invoer of uitvoer waarden. Hetsysteem wordt eerst getraind met een reeks voorbeelden of een trainingsdataset waarna hetkan getest worden met een testdataset. Als het systeem het gewenste resultaat vertoont,kan het gebruikt worden op een grote dataset om zelf conclusies te trekken. Voorbeeldenvan supervised learning technieken zijn support-vector machines, classificatie algoritmen enbeslissingsbomen.

Clustering is dan weer een voorbeeld van unsupervised of ongesuperviseerd leren. Hierbijworden systemen niet getraind aan de hand van voorbeelden maar tracht men een structuurte vinden in de opgegeven data. De doelstelling van deze algoritmen is het groeperen ofkarakteriseren van de data in plaats van predicties te maken zoals bij unsupervised.

Nemen we als voorbeeld een online boekenwinkel. Wil de onderneming enkel eenrepresentatie welke boeken samen worden verkocht, kan dit aan de hand van unsupervisedtechnieken. Wil deze onderneming echter boeken aanbieden aan klanten die gelijkaardigzijn aan diegene die de klant gekocht heeft, kan men deze beslissing nemen aan de handvan informatie die men heeft uit het verleden, of dus supervised technieken [5].

6

Page 19: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

2.1. TECHNOLOGIESTUDIE HOOFDSTUK 2. LITERATUURSTUDIE

2.1.2. Clustering

Clustering is een unsupervised techniek die wordt gebruikt om concepten die veelgelijkenissen vertonen te gaan ontdekken, groeperen en eventueel visualiseren [5, 6]. Tweevarianten van clustering worden hieronder meer in detail besproken: hierarchisch enpartitioneel clusteren.

Hierarchisch

Hierarchisch clusteren is een veelgebruikte techniek waarbij door verschillende iteratiesgroepen worden gevormd op een hierarchische wijze. In de beginsituatie heeft elke groepslechts een element. Bij elke iteratie wordt de afstand tussen de verschillende groepenbepaald. De twee groepen met de kleinste afstand worden dan met elkaar verbonden enzo ontstaat een nieuwe groep met alle elementen uit de twee vorige groepen. Dit algoritmeloopt tot als er slechts een groep meer overblijft. Het eindresultaat wordt vaak visueelweergegeven door een dendrogram. Dit is een boomstructuur-diagram die visueel aangeefthoe de groepen of clusters hierarchisch zijn geplaatst [4, 5, 6].

Figuur 2.2 toont de verschillende iteraties van hierarchisch clusteren met bijhorenddendogram.

A B

D E

C

A B

D E

C

A B

D E

C

A B

D E

C

A B

D E

C

> >

>>

1 2 3

45

(a) Hierarchisch clusteren

A B C D E

(b) Dendogram

Figuur 2.2.: Hierarchisch clusteren met bijhorend dendogram

Partitioneel

Partitioneel clusteren gebruikt een heel ander algoritme dan hierarchisch clusteren om datate groeperen. Waar hierarchisch clusteren groepen op een iteratieve manier gaat verbinden

7

Page 20: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

2.1. TECHNOLOGIESTUDIE HOOFDSTUK 2. LITERATUURSTUDIE

om zo tot een volledige hierarchisch structuur te komen, zal partitioneel clusteren de datasetin K clusters opdelen zonder enige hierarchische structuur.

K-means is een partitioneel clusteringalgoritme [3]. In de eerste fase worden willekeurigK punten uit de dataset gekozen die het centrum van een cluster voorstellen. Alle anderepunten behoren dan tot de cluster waar de afstand tussen het punt en het centrum van declusters het kleinst is. In een volgende fase wordt het centrum van alle clusters opnieuwberekend aan de hand van alle punten die daar aanwezig zijn. Opnieuw zullen alle puntenhun afstand berekenen tot het middelpunt van de clusters en zo kunnen er eventueel puntenverspringen naar een andere cluster. Dit proces blijft zich herhalen tot er een stabiel systeemontstaat, dit is een systeem waarbij de punten niet meer verspringen van clusters [3, 5, 6].

Figuur 2.3 toont de verschillende iteraties van partitioneel clusteren.

A B

D E

C

A B

D E

C

A B

D E

C

A B

D E

C

A B

D E

C

> >

>

>

1 2 3

45

Figuur 2.3.: K-means clusteren

Problemen met clustering

Bij het gebruik van clusteringalgoritmen, zowel hierarchisch als partitioneel, moet menenkele mogelijke problemen zien te overkomen. Niet alleen de keuze van het algoritmekan soms een positieve of negatieve invloed hebben op het resultaat. Zo moet ook dedataset goed worden voorbereid op het clusteren. Enkele problemen met clustering wordenhieronder opgesomd:

• Ontbrekende data; Wat moet er gebeuren als er ontbrekende data is? Maakt men hierbest een schatting of wordt deze data niet opgenomen om te clusteren?

• Bepalen afstandsmaat; Voor bepaalde attributen kan het bepalen van een correcteafstandsmaat moeilijk zijn. Niet alle waarden in een databank zijn numeriek. Zo zou

8

Page 21: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

2.1. TECHNOLOGIESTUDIE HOOFDSTUK 2. LITERATUURSTUDIE

men kunnen clusteren op vrijetijdsbestedingen, maar hoe bepaalt men een correcteafstand tussen bepaalde sporten zoals zwemmen, voetbal of atletiek?

• Normalisatie; De verschillende attributen moeten worden genormaliseerd voor eencorrecte weergave. Stel dat men wil clusteren over twee attributen Leeftijd en Salarismet elk respectievelijk waarden van 0. . . 100 en 0. . . 5000. Het is duidelijk wanneer mendeze waarden niet normaliseert dat het attribuut Salaris veel zwaarder zal doorwegenbij het clusteren.

Clustering laat duidelijk toe om groepen te vinden op een logische manier. Deze techniekkan gebruikt worden om vriendengroepen te ontdekken uit de vriendenrelaties op socialenetwerksites.

2.1.3. Classificatie

Classificatie is een vorm van gesuperviseerd leren. Met deze techniek gaat men een systeemtrainen door het correcte antwoorden te laten inlezen aan de hand van een trainingset. Nadeze trainingset te hebben geanalyseerd en een interne structuur is opgesteld, bijvoorbeeldaan de hand van een beslissingsboom, kan het systeem gebruikt worden om voorspellingente doen op andere datasets. Bekende algoritmen van classificatie zijn CART (Classificationand Regression Trees), J4.8 en Random Forests [3, 5].

De aanvraag van een lening bij een bank wordt meestal met classificatiemethodenonderzocht. Banken beslissen aan de hand van vooraf gedefinieerde klassen of ze een leninggeven aan een individu. De eerste stap is om het model te leren of de lening risicovol ofmet weinig risico is, dit aan de hand van vooraf gekozen voorbeelden. Dit model kan danvoorgesteld worden als een beslissingsboom waardoor de gebruiker eenvoudig de data kaninterpreteren. Na deze trainingsfase kan het model gebruikt worden om op nieuwe leningenhet risico te bepalen en zo de lening te beoordelen.

Aangezien de gebruiker vaak een duidelijk beeld heeft over de interne structuur vanclassificatiealgoritmen, gebruikt men hier de term White Boxes of witte dozen. Hiermeewordt bedoeld dat de gebruiker kennis heeft over de interne structuur van het systeemen mogelijk zelf makkelijk aanpassingen kan doen. Verder zullen er andere technologieenworden besproken, zoals bijvoorbeeld Artificiele Neurale Netwerken, waarbij de internestructuur niet duidelijk is voor de gebruiker. Bij deze technologieen spreekt men van BlackBoxes of zwarte dozen waar de gebruiker input geeft aan en output krijgt van het systeemzonder de interne werking daarvan te moeten kennen.

Figuur 2.4 is een voorbeeld van classificatie door middel van een beslissingsboom. Indeze figuur wordt een spamfilter voor e-mailberichten voorgesteld aan de hand van eenbeslissingsboom.

9

Page 22: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

2.1. TECHNOLOGIESTUDIE HOOFDSTUK 2. LITERATUURSTUDIE

Afzender in adresboek?

GewenstAantal woorden in

zwarte lijst?

Ongewenst Ongewenst

OngewenstGewenst

Bevat URL's in tekst?

Ja

JaNeen

Neen

[0,5[ [5,10[ [10,infinity[

Figuur 2.4.: Beslissingsboom voor spamfilter

Problemen met classificatie

Zoals bij clustering zijn er ook enkele problemen bij classificatie die men moet in acht nemen:

• Ontbrekende data; Als er bepaalde data in een dataset ontbreekt, kan men opterenom een schatting te maken voor deze waarde of om gewoon een aparte waarde tegebruiken.

• Continue Data; Wanneer de data continue is, wordt er best eerst een filter toegepastom de data te discretiseren.

• Optimale grootte van de trainingsset; Een te kleine of te grote trainingsset kannegatieve gevolgen hebben. Men moet een optimaal aantal testdata zien te vindendie kan gebruikt worden als trainingsset.

Classificatie kan worden gebruikt als filteringsysteem voor berichten op sociale netwerk-sites. Hierbij zou bijvoorbeeld een beslissingsboom kunnen worden opgesteld die alsresultaat aangeeft of een bericht al dan niet op de homepagina van de gebruiker verschijnt.

2.1.4. Artificiele Neurale Netwerken

Artificiele Neurale Netwerken(ANN) is een mathematisch model die de complexe structuurvan biologische neurale netwerken probeert na te bootsen. Het zijn non-lineaire statischedata modellen die bestaan uit aangeschakelde neuronen die informatie doorgeven en daarbijgewichten toekennen aan de connecties onderling [5].

Neurale Netwerken zijn een vorm van classificatie. Het systeem zal door middel van eentrainingsset in te lezen, zijn interne structuur gaan aanpassen. Zo worden de gewichten vande neuronen aangepast tot dat er een soort van complexe beslissingsboom ontstaat. Twee

10

Page 23: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

2.1. TECHNOLOGIESTUDIE HOOFDSTUK 2. LITERATUURSTUDIE

bekende varianten van ANN zijn Feedforward Neurale Netwerken, waar informatie maar eenrichting volgt, en Recurrente Netwerken waar de informatie in beide richtingen kan vloeien.

Figuur 2.5 toont hoe de interne structuur van artificiele neurale netwerken verborgen zijnvoor de gebruiker.

Input1

Input2

Input3

Output1

Output2

Output3

Verborgen

>

Black Box>

> >>

>

Figuur 2.5.: Artificiele Neurale Netwerken - Black Box

Het grote voordeel van ANN is dat het complexe non-lineare functies kan verwerken.Artificiele neurale netwerken zijn een voorbeeld van Black Boxes of zwarte dozen. Hierbijhoeft de gebruiker geen kennis te hebben over de interne structuur van het systeemwaardoor complexe functies kunnen worden gebruikt. Neurale netwerken zijn ook geschiktom incrementeel te trainen en vragen ook weinig plaats om op te slaan, aangezien het enkelnodig is om de gewichten van de neuronen bij te houden.

Een nadeel is dan weer dat de complexe interne structuur niet begrijpbaar is voor degebruiker. Het is dan ook moeilijk te bepalen hoe het systeem tot een antwoord is gekomen.Ook het bepalen van het optimaal aantal neuronen en de grootte van de trainingsset kanmoeilijk zijn.

Met artificiele neurale netwerken zou men in staat zijn om een meer gesofisticeerde filteringvan berichten toe te passen.

2.1.5. Support-Vector Machines

Support-vector machines(SVM) zijn een vorm van classificatie. Deze gesofisticeerde techniekneemt als input een dataset met numerieke waarden en tracht te voorspellen in welkecategorie deze vallen. Stel dat alle numerieke waarden uit de dataset een N -dimensionalevector zijn. SVM zal een (N-1)-dimensionaal hypervlak zoeken die de waarden zo goed alsmogelijk zal verdelen [5].

SVM uitleggen kan best aan de hand van een voorbeeld. Een dataset bevat spelers vaneen voetbalploeg met 2 attributen, grootte en snelheid. We kunnen deze spelers op een

11

Page 24: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

2.1. TECHNOLOGIESTUDIE HOOFDSTUK 2. LITERATUURSTUDIE

tweedimensionale grafiek voorstellen met op de X-as de snelheid en Y-as de grootte. SVMzal nu een eendimensionale hypervlak, of simpelweg een rechte, gaan bepalen die dewaarden zo goed mogelijk verdeeld. De optimale rechte zal diegene zijn waarbij de afstand,tussen de dichtbij gelegen waarden, zo groot mogelijk is.

Support-vector machines zijn een heel interessant en krachtig classificatie algoritme. Alsje eenmaal de correcte parameters hebt gevonden voor SVM zal dit heel vaak een beterresultaat opleveren ten opzichte van andere classificatiemethoden. Men kan ook heel snelnieuwe punten gaan classificeren met SVM aangezien men enkel hoeft te weten aan welkekant van het hypervlak de waarde komt te liggen.

Het grote nadeel van SVM is dat het ook een black box is net als bij neurale netwerken. Hetis nog moeilijker om te begrijpen hoe een SVM aan een resultaat is gekomen aangezien hetalgoritme werkt over verschillende dimensies.

Support-vector machines zouden kunnen gebruikt worden om groepen te vinden metgelijkaardige attributen.

2.1.6. Regelgebaseerde systemen

If-Then (Als - Dan) regels staan centraal bij regelgebaseerde systemen. Dit modelwordt voorgesteld aan de hand van beweringen die het werkgeheugen vormen en eenset van regels die specifieren hoe op bepaalde beweringen moet worden gereageerd.Regelgebaseerde systemen staan bekend voor hun simpliciteit maar worden vaak gebruiktin zogenaamde expert systemen. Het concept van deze systemen is dat de kennis vaneen expert in een lijst van regels wordt gegoten. Wanneer men dan gelijkaardige data alsinvoer neemt, krijgt men dezelfde uitvoer als resultaat. Hierdoor kan men regelgebaseerdesystemen vergelijken met beslissingsbomen bij classificatie.

Een voorbeeld van een bekend expert systeem is hoe een dokter een diagnose stelt. Aande hand van symptomen kan een dokter vaststellen welke ziekte een persoon heeft. Alseen volgende patient dezelfde symptomen vertoont, zal de dokter tot eenzelfde diagnosekomen. Ook binnen het kader van lexicale analyse in compilers komen regelgebaseerdesystemen vaak aan bod. Het interpreteren van tekst wordt vaak aan de hand van dezesystemen volbracht.

Met de simpliciteit van regelgebaseerde systemen komen ook enkele nadelen. Ze kunnenenkel gebruikt worden als het vinden van een oplossing voor een probleem kan herschrevenworden naar ”Als - Dan” regels. Als het probleem te groot wordt en er nood is aan heel veelregels kan de performantie hieronder lijden.

Regelgebaseerde sytemen kunnen net zoals classificatie gebruikt worden als basis voor eenfilteringsysteem voor berichten op sociale netwerksites.

12

Page 25: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

2.1. TECHNOLOGIESTUDIE HOOFDSTUK 2. LITERATUURSTUDIE

2.1.7. Ontologie

Een ontologie is een formele representatie van objecten binnen een gespecificeerd domeinen de relaties tussen die objecten. Op zich zijn ontologien een datastructuur met als extrafunctionaliteit dat het mogelijk is om er over te redeneren. Een ontologie wordt gebruiktom een concept binnen een bepaald domein te modelleren. Met behulp van een aantalvooraf gedefinieerde woorden kan de gebruiker types, eigenschappen en relaties tussentypes creeren. Als alles correct gespecificeerd is en alle relaties zijn vastgelegd, kan degebruiker instantiaties maken van de betreffende ontologie.

Een ontologie komt men vaak tegen binnen domeinen van artificiele intelligentie,biomedische informatica, het semantisch web, etc. Sinds een ontologie een veel voorkomendconcept is binnen sociale netwerken, en in het algemeen het semantisch web, zal er zekerdieper worden ingegaan op deze technologie. Hoofdstuk 5 zal ontologie in het algemeenbespreken en mogelijke toepassingen.

Een bekend voorbeeld van deze techniek is de pizza ontologie. In figuur 2.6 ziet men 3soorten objecten: pizza’s, pizzabodems en ingredienten. Bij een ontologie kan men instellendat een pizza minstens een pizzabodem moet hebben en eventueel ingredienten. Deze vormvan eerste orde logica maakt van een ontologie een heel krachte datastructuur die toelaat omverder te rederenen over systemen.

Ingrediënten

Pizzabodems

Pizza's

Krokant

Zacht

Luchtig

Kaas

HawaiProsciutto

Salami

Margheritta

heeftBo

dem

heeftBode

m

heeftBodem

heeftIngrediënt

Cipolle

Ananas

Ham Salami

Olijven

Pepers

Figuur 2.6.: De pizza ontologie

13

Page 26: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

2.2. APPLICATIES HOOFDSTUK 2. LITERATUURSTUDIE

2.2. Applicaties

2.2.1. Facebook & TouchGraph Photos

Facebook

Facebook (http://www.facebook.com) is een internationale sociale netwerksite gelijkaardigaan Netlog. Gebruikers van deze online applicatie kunnen een profiel aanmaken, vriendentoevoegen of foto’s en berichten plaatsen. Met meer dan 300 miljoen gebruikers is ditmomenteel een van de grootste sociale netwerksites ter wereld. Het wordt ook vaak alstrendsetter beschouwd en veel van hun externe applicaties kan je ook terugvinden opandere gelijkaardige sites.

In een update van Facebook (oktober 2009) werden de berichten, die de gebruiker te zienkreeg op de eerste pagina, gefilterd naargelang bepaalde informatie van die gebruiker.Deze aanpassing had de bedoeling om het gebruiksgemak te verbeteren maar riep bij veelgebruikers in het begin verzet op [7].

TouchGraph

TouchGraph (http://www.touchgraph.com) is een commercieel product, ontwikkeld in Java,waarmee het mogelijk is om data (in vorm van excel of XML) te visualiseren aan de hand vaneen graaf waardoor relaties tussen verschillende elementen uit de dataset zichtbaar worden.

Hierbij zou het voordeel zijn dat de gebruiker van deze applicatie op een visuele manierzijn data kan filteren, navigeren en analyseren. De gebruiker kan aan de rechterkant vanhet scherm de data in een lijst doorlopen of in meer detail bekijken. Aan de linkerkant vanhet scherm ziet de gebruiker de data voorgesteld in een graaf met bijhorende relaties. Dezevisualisatie kan gepersonaliseerd worden naargelang de voorkeur van de gebruiker.

TouchGraph Photos (http://apps.facebook.com/touchgraph/) is een demo applicatie vanTouchGraph op de sociale netwerksite Facebook. Deze applicatie laat toe om je vriendenin een graaf voor te stellen en dit in de vorm van vriendenkringen met foto’s. He is ookmogelijk om de profielen en foto’s in detail te bekijken.

De vriendenkringen worden voorgesteld in de vorm van clusters, elk met een aparte kleur.Deze clusters worden opgebouwd aan de hand van de onderlinge vriendenrelaties. Veelvrienden in eenzelfde groep en weinig vrienden daarbuiten zal er voor zorgen dat dit profieltot die vriendenkring zal behoren. De gebruiker kan ook het aantal vrienden dat moetworden opgenomen in de graaf bepalen. Hierbij worden vrienden een score toegekendaan de hand van een bepaald algoritme en kan de gebruiker kiezen om een bepaald aantalvan zijn ”Top Friends” op te nemen in de graaf.

14

Page 27: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

2.2. APPLICATIES HOOFDSTUK 2. LITERATUURSTUDIE

2.2.2. Vizster

Vizster (http://hci.stanford.edu/jheer/projects/vizster/) is een project ontwikkeldaan de universiteit van California (Berkley) door Jeffrey Heer en Danah Boyd [8].Het is een interactieve visualisatietool voor sociale netwerken waaronderFriendster (http://www.friendster.com/), Orkut (http://www.orkut.com) en Tribe(http://www.tribe.net). De bedoeling van Vizster is om de gebruiker op een speelse,interactieve manier zijn/haar vriendenrelaties te laten ontdekken. Zo kan de gebruikeraan de hand van een graafvoorstelling attributen zoals leeftijd, geslacht, . . . van vriendenbekijken als ook de onderlinge vriendenrelaties.

Vizster kan zoals TouchGraph ook automatisch vriendenkringen detecteren. Hiervoorgebruiken ze een algoritme ontwikkeld door M. E. J. Newman [9]. Het algoritme wordtverder besproken in hoofdstuk 4.

In figuur 2.7 ziet men een voorbeeld van Vizster (linksboven) en Touchgraph op Facebook(rechtsonder).

Figuur 2.7.: Vizster & Touchgraph op Facebook

15

Page 28: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

HOOFDSTUK 3. TECHNOLOGIEKEUZE

3. Technologiekeuze

In hoofdstuk 2 zijn er verschillende technologieen besproken die zouden kunnen gebruiktworden voor het ontginnen van data op sociale netwerken. Hierbij moest eerst de keuzegemaakt worden hoe men deze data wou bekomen, via een gesuperviseerde methode ofniet. Hieruit bleek dat vriendenrelaties onderzoeken het best gebeurt aan de hand vanclusteringalgoritmen, met andere woorden niet gesuperviseerd.

3.1. Clustering

Omdat het ontginnen van nieuwe data op basis van vriendenrelaties uit sociale netwerksitesde bedoeling is van deze thesis, is er gekozen om clusteringalgoritmen te gebruiken. Hierbijzal er dieper onderzocht worden welke algoritmen mogelijk te gebruiken zijn op degraafstructuur die de onderlinge vriendenrelaties voorstelt.

Het is de bedoeling een keuze te maken uit deze algoritmen welke het best geschikt zijnvoor sociale netwerksites. Hierbij zal vooral gekeken worden naar snelheid en accuraatheid.Uit een eerste onderzoek rond dit jonge domein blijkt een grote diversiteit aan algoritmen tebestaan. In de laatste jaren werden verschillende algoritmen ontwikkeld, vaak vertrekkendevanuit een andere doelstelling en met andere datasets. Dit zorgt voor een verscheidenheidaan clusteringalgoritmen

In hoofdstuk 4 zullen deze algoritmen in meer detail worden onderzocht.

3.2. Ontologie

Een ontologie dat nauw samenhangt met het semantische web zal ook in meer detail wordenonderzocht. Daarbij is het de bedoeling om een ontologie te gebruiken die de informatievan personen en groepen kan bijhouden.

Hier lijkt de FOAF (Friend of a Friend) ontlogie in grote mate aan te voldoen. De FOAFontologie zal worden bestudeerd en mogelijke toepassingen onderzocht. De gegevensbekomen uit het clusteralgoritmen kunnen ook worden opgeslagen in dergelijke FOAFbestanden. Deze voorzien reeds specificaties om personen tot bepaalde groepen te doenbehoren.

16

Page 29: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

3.3. SYSTEEM HOOFDSTUK 3. TECHNOLOGIEKEUZE

In hoofdstuk 5 zal een ontologie en meer specifiek FOAF in detail worden besproken. Hierbijzal ook de link worden gelegd naar het semantische web en hoe dit kan helpen bij hetoptimaliseren van sociale netwerksites.

3.3. Systeem

Het is de bedoeling om in deze scriptie de twee bovenstaande technologieen teimplementeren. Deze twee van elkaar verschillende componenten staan echter wel metelkaar in verbinding. Zo kan de uitvoer van het clusteringalgoritme gebruikt worden alsinvoer voor een ontologie.

In figuur 3.1 worden de componenten met hun invoer/uitvoer en mogelijke toepassingenvoorgesteld.

= Verwerking

= Input/Output

= Toepassing

Vriendenrelaties VisualisatieClustering

Info Vrienden SemantischWeb

OptimaleRegistratie

Ontologie

Filtering Berichten

Gemeenschappen

Info Persoon Datastructuur

> >

>

>

>

>

> >

>

>

Figuur 3.1.: Systeemvoorstelling

Hierbij staan clustering en de (FOAF) ontologie centraal. Het clusteringalgoritme verwachtals invoer vriendenrelaties. Uit deze vriendenrelaties kunnen automatisch vriendengroepenworden ontdekt. De uitvoer van het clusteringalgoritme, samen met informatie vanvrienden, kunnen worden gebruikt als invoer voor het creeren van een ontologie zoalsFOAF.

Bij de twee grote componenten worden ook de mogelijke toepassingen aangeduid. Zo kanmen bij clustering een visualisatie voorzien van de vriendengroepen. Ook het filteren vanberichten kan met deze informatie verbeterd worden. De ontologie component zorgt danweer voor een uitbreiding van het semantisch web. In hoofdstuk 7 zullen deze mogelijkeuitbreidingen in meer detail worden besproken.

17

Page 30: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

HOOFDSTUK 4. CLUSTERINGALGORITMEN

4. Clusteringalgoritmen

Zoals aangehaald in hoofdstuk 3 werd de keuze gemaakt om met de techniek van clusteringverder te werken. De twee traditionele methoden, hierarchisch en k-means, werden reedskort uitgelegd. Deze worden vaak gebruikt bij data mining op databanken waarbij dedata los van elkaar staat. De bedoeling van deze thesis is echter om vriendenrelaties teonderzoeken en hieruit extra informatie te bekomen. De data die hier wordt gebruikt ziet eruit als: ”Persoon X is bevriend met Persoon Y (en eventueel omgekeerd)”.

Deze datavorm heeft als voordeel dat men die kan voorstellen aan de hand van grafen.Dit zorgt er voor dat men niet enkel de traditionele methoden heeft om te clusteren, maarook enkele specifieke graafalgoritmen. Om de algoritmen die verder worden besprokengoed te kunnen uitleggen, zullen eerst enkele belangrijke eigenschappen van grafen wordenopgesomd.

4.1. Grafentheorie

Grafentheorie is een belangrijk onderdeel binnen de wiskunde. Het is een relatief jonge takaangezien de eerste paper rond dit onderwerp verscheen in 1736 door Leonhard Euler diehet probleem beschreef over de zeven bruggen van Koningsbergen. Graaftheorie werd danook heel belangrijk binnen de computerwetenschappen. Het voorstellen van netwerken ofhet modelleren van eindigetoestandsautomaten zijn slechts enkele voorbeelden die gebruikmaken van grafen en hun bijhorende algoritmen.

De voorstelling van een graaf laat toe om objecten met elkaar in relatie te brengen. Objectenin een graaf zullen hier gedefinieerd worden als knopen en de relaties tussen objecten alsbogen. Figuur 4.1 toont een elementaire graaf met zeven knopen en twaalf bogen.

4.1.1. Enkele eigenschappen

Gerichte grafen

Een gerichte graaf (ook wel digraaf genoemd) heeft als specifiek kenmerk dat de bogengericht zijn. Dit wil zeggen dat knoop X in relatie staat met knoop Y maar niet omgekeerd.Men spreekt dan ook eerder van pijlen in plaats van bogen bij gerichte grafen.

18

Page 31: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

4.1. GRAFENTHEORIE HOOFDSTUK 4. CLUSTERINGALGORITMEN

1 2

4

67

3

5

8

Figuur 4.1.: Simpele graaf met zeven knopen en twaalf bogen

Gewogen grafen

Gewogen grafen hebben dan weer de eigenschap dat de bogen een bepaald gewicht dragen.Dit kan bijvoorbeeld gebruikt worden bij het modelleren van computernetwerken waarbijde waarde op de bogen de maximum bandbreedte voorstelt.

>

>

>> >

>

>

>>

(a) Gerichte graaf

71

55

4

2

3

34

(b) Gewogen graaf

Figuur 4.2.: Voorbeeld gerichte (links) en gewogen (rechts) grafen

Volledige, dichte en ijle grafen

Volledige grafen zijn grafen waarbij alle knopen met alle andere knopen verbonden zijn. Elkobject staat dus in relatie met elk ander object. Als menN knopen heeft, kan men stellen dathet aantal bogen gelijk is aan:

N × (N − 1)

2

Dichte grafen hebben dan weer de eigenschap dat enkele bogen niet aanwezig zijn. Er zijndus weinig ontbrekende bogen. IJle grafen hebben weinig bogen, het grootste deel van debogen ontbreekt in het laatste geval.

Het is duidelijk dat de vorm van de graaf waarop men een algoritme zal uitvoeren vanbelang is. De tijdscomplexiteit bij volledige of dichte grafen zal vaak hoger liggen dan bijijle. Vriendenrelaties op sociale netwerksites vertonen meestal de eigenschap van ijle grafen.

19

Page 32: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

4.2. CLUSTERMETHODEN HOOFDSTUK 4. CLUSTERINGALGORITMEN

Een vriend van persoon X zal hoogstwaarschijnlijk slechts een subset gemeenschappelijkevrienden hebben.

(a) Volledige graaf (b) Dichte graaf

(c) IJle graaf

Figuur 4.3.: Voorbeeld van volledige, dichte en ijle graaf

4.2. Clustermethoden

Zoals reeds vermeld kunnen vriendenrelaties op sociale netwerksites worden voorgesteldals grafen. De meest gebruikte graafvoorstelling is de niet-gerichte graaf zonder gewichten.Grafen zonder gewichten kan men vergelijken met grafen waar elke boog hetzelfde gewichtheeft, bv. 1.

De bedoeling is om uit de verschillende relaties tussen vrienden op sociale netwerksitesgemeenschappen te detecteren. Figuur 4.4 is een voorbeeld waarin duidelijk driegemeenschappen te herkennen zijn binnen de graafstructuur. Deze worden gekenmerktdoordat de knopen binnenin een gemeenschap veel onderlinge relaties hebben en weinigrelaties naar knopen in een andere gemeenschap.

Hieronder zullen verschillende technieken worden uitgelegd om automatisch vriendenkrin-gen te extraheren, dit enkel aan de hand van de topologie van de graaf. Deze algoritmenvertonen vaak grote verschillen zowel in werkwijze als in complexiteit, performantie &

20

Page 33: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

4.2. CLUSTERMETHODEN HOOFDSTUK 4. CLUSTERINGALGORITMEN

Figuur 4.4.: Voorbeeld van drie gemeenschappen in een graafstructuur

correctheid. Dit komt vooral doordat deze vaak ontworpen worden in verschillendedomeinen zoals sociologie, biologie, computerwetenschappen, etc. Daardoor vertrekkende ontwikkelaars van dergelijke algoritmen vaak met een andere visie en verschillendegrootte in datasets wat dan weer een rol speelt in de performantie. Er zijn algoritmenontwikkeld die preciezer maar trager zijn, bijvoorbeeld wanneer men een dataset heeft vaneen honderd knopen en duizend bogen. Veel van deze algoritmen zullen echter niet of heeltraag werken op netwerken met meer dan 1 miljoen knopen en het bijhorend aantal bogen.De computationele kost of de complexiteit van deze algoritmen is ook vaak moeilijk of bijnaonmogelijk te bepalen [10].

4.2.1. Traditioneel

De traditionele methoden werden reeds oppervlakkig aangehaald in de literatuurstudie.Hieronder worden deze algoritmen iets meer in detail besproken.

Hierarchisch

Hierarchisch clusteren houdt in dat er eerst een simulariteitscore kan worden bepaald tussenverschillende knopen. Bij vriendenrelaties zou dit kunnen betekenen dat personen die demeeste gemeenschappelijke vrienden hebben, de hoogste score krijgen. Eenmaal die scorevan alle vrienden is berekend kan men overgaan tot het samenvoegen van de personenmet de hoogste score. De simulariteitscore ten opzichte van deze groep moet dan opnieuwworden berekend. Deze stappen blijft men herhalen tot wanneer alle knopen in een groepsamenzitten. Aangezien men bij elk van deze iteraties steeds een knoop/groep met eenandere knoop/groep verbindt, kan de uitkomst worden voorgesteld als een dendogram.Deze hierarchische structuur toont duidelijk dat er in elke iteratie 2 deelbomen wordensamengenomen.

21

Page 34: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

4.2. CLUSTERMETHODEN HOOFDSTUK 4. CLUSTERINGALGORITMEN

Het voordeel van hierarchisch clusteren is dat men geen voorkennis moet hebben over degrootte en aantal van de te vinden clusters. Anderzijds heeft het algoritme wel een nadeeldat het slecht schaalt naar grotere datasets. Ook de precisie van dit algoritme is vaaksuboptimaal [10, 11, 12].

Partitioneel

Ook partitioneel clusteren werd in sectie 2.1.2 kort aangehaald. Er zijn verschillendevarianten binnen het partitioneel clusteren maar we beperken ons hier tot het k-meansclusteren. Hier begint men met het specificeren van een vast aantal K partities. In het beginvan het algoritme kunnen dit random gekozen knopen zijn in de graaf. Bij elke iteratieworden de knopen die het dichts bij de vooropgestelde knopen liggen geclusterd. Na dezestap wordt het ”gemiddelde” van deze knopen berekend. Deze gemiddelden zullen denieuwe ”knopen” zijn in de volgende iteratie. Knopen kunnen bij elke iteratie verspringennaar een andere gemeenschap waarvoor het gemiddelde dichter ligt. Het algoritme stoptwanneer er geen knopen meer verspringen bij verschillende iteraties.

Een groot nadeel bij dit algoritme is dat men op voorhand het aantal clusters K moetspecificeren. De methode op zichzelf kan niet automatisch detecteren wat de optimalehoeveelheid clusters zijn.

Graaf partitionering

De methode rond graaf partitionering kan men het best vergelijken met het gekendemaximum-flow minimum-cut probleem [13]. Hierbij is het de bedoeling om vooraf tebepalen hoeveel partities men wil bekomen. Daarna zal men een zo klein mogelijk aantalbogen verwijderen waardoor de graaf in verschillende partities valt. Bij elke iteratie zal degraaf of deelgraaf in twee delen uit elkaar worden gehaald.

Hier heeft men opnieuw het nadeel dat men op voorhand moet bepalen hoeveel partitiesmen wil aangezien het algoritme daar zelf niet toe in staat is. Ook het feit dat men steedsbisecties gebruikt om de graaf in twee te delen, maakt dit algoritme niet echt betrouwbaar.

De traditionele methoden die hierboven zijn beschreven hebben vaak een gemiddelde tothoge complexiteit. De complexiteit van hierarchisch clusteren kan oplopen tot O(n2logn) enbij graaf partitionering O(n3). Ze hebben vaak ook minder accurate resultaten en het aantalpartities moet meestal op voorhand bekend zijn.

4.2.2. Betweenness centraliteit

De term betweenness werd voor het eerst in 1977 door Freeman geıntroduceerd [14].Betweenness-centraliteitindex van bogen of knopen duidt op het aantal knopen die langs

22

Page 35: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

4.2. CLUSTERMETHODEN HOOFDSTUK 4. CLUSTERINGALGORITMEN

deze boog of knoop moeten passeren om naar andere knopen te gaan. Men spreekt dan ookvan edge-betweenness voor bogen en node-betweenness voor knopen.

Girvan-Newman algoritme

Een van de meest gebruikte en gekende algoritmen rond clustering op grafen is gebaseerdop de betweenness centraliteit techniek. Michelle Girvan en Mark Newman hebben eenalgoritme ontwikkeld dat heel belangrijk was voor gemeenschapdetectie op grafen [11].Hun algoritme gebruikt edge-betweenness om zo op zoek te gaan naar de bogen met degrootste betweennessindex. Als men een graaf heeft met daarin gemeenschappen danzullen de bogen die deze gemeenschappen verbinden de grootste betweennessindex krijgen.Dit komt omdat die specifieke bogen het meest gebruikt worden om het kortste pad tevinden tussen alle verschillende knopen [15].

Methode Het algoritme kan men samenvatten in 4 stappen:

1. Berekening van de centraliteit van alle bogen.

2. Verwijderen van de boog met de hoogste centraliteit; bij een zelfde score kan randomeen van deze bogen verwijderd worden.

3. Herberekening van de centraliteit van de bogen.

4. Itereer vanaf stap 2.

In figuur 4.5 wordt er een iteratie van het algoritme voorgesteld. Bovenaan heeft men deoriginele graaf. Daarna gaat men de edge-betweenness berekenen van alle bogen (figuurmidden). In de laatste stap verwijdert men de boog met de hoogste betweennessindex. Bijde verwijdering van een boog is het mogelijk (niet noodzakelijk) dat de graaf in twee delenvalt.

De complexiteit van dit algoritme hangt grotendeels af hoe snel de edge-betweenness in deiteraties kan worden berekend. Maar over het algemeen is de complexiteit van het algoritmeO(m2n) met m het aantal bogen en n het aantal knopen of O(n3) op ijle grafen waar men ervan uitgaat dat het aantal bogen ongeveer gelijk is aan het aantal knopen.

Een van de grote nadelen buiten de toch wel hoge tijdscomplexiteit is het gebrek aaneen automatisch stopcriteria bij het vinden van een optimaal aantal partities. Ook bij hethierarchisch clusteren moest de gebruiker zelf beslissen waar hij de dendogram horizontaalging snijden om zo zijn partities te kiezen. Daardoor werd een functie opgesteld doorGirvan-Newman [11] die de kwaliteit kan meten van de gevonden partities. De kwaliteitvan partities in de graaf werd modulariteit genoemd. Goede partities, die een hogemodulariteitsscore krijgen, hebben gemeenschappen met veel bogen tussen interne knopenen weinig bogen naar andere gemeenschappen. De modulariteitsfunctie kan geschreven

23

Page 36: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

4.2. CLUSTERMETHODEN HOOFDSTUK 4. CLUSTERINGALGORITMEN

X

1 19

4

4 4

4

>>

Figuur 4.5.: Iteratie uit Girvan-Newman algoritme

worden als:Q =

1

2m

ij

[Aij −

kikj2m

]δ (ci, cj) , (4.1)

waarm het aantal bogen is, metA de adjacentie matrix, dit is de voorstelling van de graaf inmatrixvorm, Aij het aantal bogen tussen knoop i en j, en kikj is het veronderstelde aantalbogen tussen knoop i en j in een random model [10, 16].

Deze score kan worden berekend wanneer men de graaf opsplitst in nieuwe partities. Alsdeze score groter is dan de vorige modulariteitsscore wil het zeggen dat de nieuw gevondenpartitie beter is. Als de modulariteitsscore echter daalt weet men dat de vorige partities deoptimale oplossing vormden.

4.2.3. Modulariteit gebaseerd

De modulariteitsfunctie die in vergelijking 4.1 werd opgesteld is een bron van inspiratiegeweest voor enkele nieuwe, soms heel snelle algoritmen rond clustering.

De veronderstelling is dat wanneer men een hoge modulariteit vindt, de gevonden partitiesgoed zijn. Dus kan men op zoek gaan naar de partities met de hoogste modulariteitsscore.Dit noemt men ook vaak modularity maximization en is een van de populairste methodes voorhet vinden van gemeenschappen in grafen. Het is onmogelijk om van alle combinaties vanpartities, de modulariteit te berekenen. Het aantal combinaties stijgt exponentieel met het

24

Page 37: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

4.2. CLUSTERMETHODEN HOOFDSTUK 4. CLUSTERINGALGORITMEN

aantal nodes. Het is recentelijk bewezen dat dit probleem NP-compleet is [17]. Toch zijn erenkele algoritmen die goede benaderingen halen op vlak van modulariteit maximalisatie.

Newman algoritme

Newman en Girvan hadden een functie beschreven die de kwaliteit van partities kanbepalen [18]. Hierdoor kwam Mark Newman zelf op het idee een algoritme te ontwikkelenwaarbij men op zoek gaat naar de hoogste modulariteit. Maar aangezien men nooit allemogelijke combinaties van partities kan onderzoeken, omdat deze combinaties exponentieelstijgen met het aantal knopen, drong een heuristisch algoritme zich op.

Methode Het voorgestelde algoritme kan men best omschrijven als een gretige,hierarchische heuristiek. Veronderstel dat men werkt op een graaf met n knopen. In hetbegin van dit algoritme zit elke knoop in zijn eigen partitie, m.a.w. er zijn n partities.Daarna zoekt men de grootste winst of kleinste verlies in latere en zal men die twee partitiessamenvoegen. Aangezien een partitie die geen bogen heeft met een andere partitie nooit eenwinst in modulariteit zal voortbrengen, is het voldoende om enkel de modulariteitswinstvan partities die in relatie staan met elkaar te berekenen. Bij elke stap worden bijgevolg 2partities samengevoegd.

Uiteindelijk zal men als resultaat een dendogram bekomen zoals bij hierarchisch clusteren.Aangezien men bij elke stap de modulariteitswinst heeft berekend, weet men waar deoptimale snijlijn ligt in de dendogram. Dit is de plaats waar men voor het eerst een negatievemodulariteitswinst heeft bekomen in het algoritme. De modulariteitsfunctie kan men hieraanzien als een vorm van simulariteitsscore bij hierarchisch clusteren. Aangezien dezewaarde een optimum bereikt, kan het algoritme zelf bepalen wanneer het moet stoppen.Dit is een groot voordeel ten opzichte van traditionele methoden bij hierarchisch clusteren.

Louvain algoritme

Een ander algoritme dat vervolgens wordt beschreven, komt men vaak tegen invakliteratuur als het Louvain algoritme. Het werd ontwikkeld door Vincent D. Blondel, Jean-Loup Guillaume, Renaud Lambiotte en Etienne Lefebre in samenwerking met verschillendeuniversiteiten en colleges [19]. Deze methode is gelijkaardig aan de methode van Newmanbesproken die hiervoor werd besproken. De heuristiek die hier wordt voorgesteld, op basisvan een gretig algoritme, blijkt snel te zijn en de kwaliteit van de partities (gemeten aan dehand van modulariteit) haalt hoge resultaten.

Methode Het algoritme is opgedeeld in twee fasen die steeds itereren tot men geenverbetering kan vinden. Men veronderstelt dat er wordt gewerkt met een gewogen graafmet N knopen. Netwerken met geen gewichten op de bogen (zoals bijvoorbeeld devriendenrelaties op sociale netwerksites) kunnen worden voorgesteld als een gewogen graaf

25

Page 38: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

4.2. CLUSTERMETHODEN HOOFDSTUK 4. CLUSTERINGALGORITMEN

waarbij het gewicht van alle bogen 1 is. Deze N knopen zullen in het begin allemaal in eenaparte partitie zitten, m.a.w. er zullen in het begin N partities zijn.

In de eerste fase zal men itereren over alle knopen. Voor een knoop i wordt gekeken watde winst/verlies in modulariteit, een waarde tussen [−1, 1], is wanneer men deze knoopverwijdert uit zijn partitie en deze zou samenvoegen bij de partitie van een buurknoop j.Wanneer men voor alle buurknopen j de winst in modulariteit heeft berekend, zal i in departitie worden gezet van knoop j met de grootste waarde, maar alleen als deze waardepositief is, m.a.w. de waarde moet in het interval ]0, 1] liggen. Wanneer er geen winst wordtgemaakt, blijft i in zijn originele partitie zitten.

Aangezien men hier over alle knopen itereert, kan een wijziging in volgorde een andereuitkomst betekenen. Uit tests op verschillende datasets blijkt dat een wijziging in volgordeslechts kleine gevolgen heeft op de behaalde modulariteit.

De efficientie van dit algoritme komt voornamelijk door het feit dat het modulariteitswinst(∆Q) of verlies van het verschuiven van een knoop i naar een cluster C snel te bereken valtdoor

∆Q =

[∑in +2ki,in

2m−(∑

tot +ki2m

)2]−[∑

in

2m−(∑

tot

2m

)2

−(ki2m

)2], (4.2)

waarbij∑

in de som is van de gewichten van de bogen binnen C,∑

tot de som van degewichten van bogen die incident zijn aan C, ki de som van gewichten van bogen incidentaan knoop i, ki,in de som van gewichten van bogen van knoop i naar knopen in cluster C enm de totale som van alle bogen in het netwerk.

In de tweede fase wordt er een nieuw netwerk gemaakt waarbij de (lokale) partitiesgevonden in de eerste fase de knopen zijn. Verder zullen de bogen tussen deze knopengewichten bevatten. Deze gewichten zijn de som van alle bogen tussen de knopen vande partities. Bogen binnen eenzelfde partitie worden gesommeerd en als lusboog naardezelfde partitie beschouwd. Eens deze fase voltooid is, kan men hierop terug de eerstefase toepassen en zo blijven itereren tot men geen verbetering meer bekomt, m.a.w. tussentwee opeenvolgende iteraties werden geen knopen meer verplaatst.

Figuur 4.6 toont hoe het Louvain algoritme juist werkt. Elke iteratie is opgebouwduit 2 fasen waarbij lokale partities worden gevonden door gebruik te maken vanmodulariteitswinst. In de tweede fasen wordt aan de hand van het resultaat uit de eerstefase een nieuw netwerk gebouwd. Dit algoritme zorgt op een natuurlijke manier voorhierarchie aangezien ze in elke iteratie van twee fasen partities ontdekt die opgebouwd zijnuit andere partities.

Het grote voordeel van dit algoritme is zijn eenvoud en snelheid. Dit laatste aspect komtdoor de snelle berekening van modulariteitswinst en dat bij elke iteratie (opeenvolgingvan twee fasen) het aantal partities sterk daalt en daarbij ook het aantal berekeningen.Modulariteit optimalisatie algoritmen hebben het vaak lastig met kleine partities te vinden

26

Page 39: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

4.2. CLUSTERMETHODEN HOOFDSTUK 4. CLUSTERINGALGORITMEN

Eerste fase

>

Tweede fase>

12

16 6

2

4

1

3

1 1>Iteratie 1

>Iteratie 2

3

20

30

Figuur 4.6.: Louvain algoritme - Figuur geınterpreteerd uit [19]

waarin andere algoritmen dan weer wel slagen. Maar door de natuurlijke hierarchie kunnendeze partities ook nog worden herkend met dit algoritme. Dit maakt van dit algoritme eenideale methode om te gebruiken op grote datasets.

Andere modulariteit algoritmen

Onder de noemer van modulariteit maximalisatie zijn de laatste jaren veel nieuwealgoritmen ontwikkeld. Sommige gebruiken een gretig algoritme, anderen dan weersimulated annealing of extremum optimalisatie. Er bestaan veel verschillende soortenalgoritmen met elk hun eigen voor- en nadelen. Het is onmogelijk deze hier allemaal indetail te beschrijven. Er zijn verschillende papers die deze algoritmen dieper onderzoeken[10, 20].

4.2.4. Andere methoden

Er zijn nog een hele reeks andere algoritmen;

• Spectraal algoritmen die gebruik maken van eigenvectoren en andere eigenschappenvan Laplace-Matrix.

• Random walk algoritmen waarbij men van de veronderstelling uitgaat dat een ”randomwalker” lang binnen een partitie zal blijven aangezien er meer interne bogen zijn danexterne.

• Met behulp van spin models uit de thermodynamica waarbij men met spin variabelenop de bogen plaatst en vervolgens via interactie tussen spins en hun buren structuurkan ontdekken.

27

Page 40: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

4.3. EVALUATIE HOOFDSTUK 4. CLUSTERINGALGORITMEN

De hierboven besproken methoden hebben als eigenschap dat een knoop maar tot eenbepaalde partitie zal behoren. Sommige algoritmen zijn juist gemaakt om toe te laten datknopen tot verschillende partities kunnen behoren, m.a.w. het detecteren van overlappendepartities [10].

4.3. Evaluatie

Met zo een brede waaier aan verschillende algoritmen, is een vergelijking van dezealgoritmen heel nuttig. Er zijn reeds verschillende onderzoeken die de verscheidenheidaan algoritmen hebben getest op snelheid en correctheid [10, 20].

Tabel 4.1 toont de diversiteit in complexiteit tussen verschillende algoritmen aan. Sommigetragere algoritmen hebben vaak een iets hogere accuraatheid. Maar op grote datasetskunnen deze nooit of heel traag tot een oplossing komen. Heuristieken hebben meestalde nijging om een suboptimale oplossing te vinden. Wel valt op dat er bij het Louvainalgoritme vaak heel goede resultaten worden behaald op vlak van modulariteit.

Auteur ComplexiteitEckmann & Moses O(m 〈k〉)Newman O(nlog2n)Girvan & Newman O(n2m)Duch & Arenas O(n2logn)Fortunato et al O(n4)Wu & Huberman O(n+m)Radicchi et al O(n2)Zhou & Lipowsky O(n3)Palla et al O(exp(n))Guimera et al Parameter afhankelijkBlondel et al In de buurt van lineariteit

Tabel 4.1.: Samenvattende tabel met algoritmen en bijhorende complexiteit - Gedeeltelijkovergenomen uit [20] aangevuld met eigen bevindingen

Conclusie

Het is duidelijk dat er een grote diversiteit aan clusteringalgoritmen bestaat. Erbestaan tragere meer accurate algoritmen die kunnen gebruikt worden op kleine datasets.Algoritmen die gebaseerd zijn op heuristieken en modulariteit optimalisatie richten zichdan meer naar grotere datasets. Wanneer men voor de keuze staat welke methode menzal gebruiken, zal men de complexiteit en de accuraatheid moeten afwegen. Het snelstealgoritme heeft een lineaire complexiteit maar verwacht dat de gebruiker op voorhandweet hoeveel partities er moeten worden gevonden en dat al deze partities dezelfde groottehebben. Sommige algoritmen zijn ook in staat om overlappende partities te vinden. Bij

28

Page 41: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

4.4. IMPLEMENTATIE HOOFDSTUK 4. CLUSTERINGALGORITMEN

het kiezen van een algoritme is het belangrijk dat men zoveel mogelijk weet over de datawaarmee zal gewerkt worden.

Keuze van algoritme voor implementatie

Bij het kiezen van een algoritme moet men verschillende aspecten in rekening brengen. Opwelke grootte van dataset zal dit algoritme worden toegepast? Op grote datasets (100.000knopen of meer) zouden sommige algoritmen verschillende weken nodig hebben om eenoplossing te genereren, andere kunnen dit dan weer in aanzienlijk korte tijd met de kans opminder accurate oplossing.

In een eerste fase werd het Girvan-Newman algoritme geımplementeerd. Uit eerste kleinetesten werd vastgesteld dat het Girvan-Newman algoritme vrij traag was op de gegevendatasets. Met het oog op het uittesten van een algoritme op gemiddelde tot grote datasetsvan sociale netwerksites, werd er gekozen om ook het Louvain algoritme te implementeren.

De snelheid en accuraatheid van de algoritmen op (grote) datasets zijn belangrijkeeigenschappen voor de evaluatie. Men kent de dataset waarop deze algoritmen zullenlopen niet op voorhand. Het aantal vrienden varieert van nul tot meer dan duizend voornatuurlijke personen en voor merk-pagina’s kan het oplopen tot een paar 100.000 personendie fan zijn van een bepaald product.

Daarom werd er enerzijds gekozen voor een snelle heuristische aanpak (Louvain) die opalle mogelijke datasets kan werken. Hierdoor wordt het mogelijk om op kleine datasets vanpersonen het algoritme in werkelijke tijd te draaien. Daardoor kan men real-time applicatiesontwikkelen zoals het visualiseren van vriendenkringen op sociale netwerksites. Anderzijdszal er vergeleken worden met Girvan-Newman op kleinere datasets wat daar het verschil isin snelheid en accuraatheid.

4.4. Implementatie

4.4.1. Graafstructuur

Onderlinge vriendenrelaties kan men het best voorstellen als een graaf/netwerk van knopendie de personen voorstellen en bogen die de relaties tussen personen aanduiden. AangezienPHP deze vorm niet onmiddellijk ondersteunt met bestaande datastructuren is er een eigengraafstructuur ontwikkeld.

Om deze structuur te ontwikkelen wordt er gebruik gemaakt van een twee-dimensionelearray. Deze structuur stelt een gewogen graaf voor die niet gericht is.

29

Page 42: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

4.4. IMPLEMENTATIE HOOFDSTUK 4. CLUSTERINGALGORITMEN

In figuur 4.7 kan men zien hoe zo een graaf wordt voorgesteld in een twee-dimensionelearray. Aangezien deze graaf niet gericht is, zal de matrix symmetrisch zijn.

Graaf Matrix

1

2

3

4

5

6000000

1 11

111

1

1 111

11

1

1

100

0 00 0 0

0000

0 00

Figuur 4.7.: Graaf met bijhorende matrix voorstelling

Op de graafklasse is het mogelijk om simpele opdrachten uit te voeren zoals het toevoegenen verwijderen van knopen en bogen. Deze graafklasse zal als basis gebruikt worden voorde verdere implementatie van de algoritmen.

4.4.2. Algoritmen

Beide algoritmen, zowel Louvain als Girvan-Newman werden gedurende deze scriptiegeımplementeerd en geevalueerd. Deze klassen verwachten beide als invoer een graaf zoalshierboven beschreven. De uitvoer geeft een array terug met daarin de gevonden groepen.Deze datastructuur kan op zich worden gebruikt voor het maken van geavanceerde FOAFbestanden zoals beschreven in hoofdstuk 5. Er zijn nog meer mogelijke uitbreidingen entoepassingen die worden besproken in hoofdstuk 7. De clustering component wordt visueelvoorgesteld in figuur 4.8.

Vriendenrelaties

Visualisatie

Clustering

Filtering Berichten

Gemeenschappen> >

>

>

Figuur 4.8.: Clustering component

30

Page 43: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

HOOFDSTUK 5. ONTOLOGIE

5. Ontologie

Een ontologie werd in hoofdstuk 2 omschreven als een formele representatie van objectenbinnen een gespecificeerd domein en de relaties tussen die objecten. Voor er dieper wordtingegaan op deze technologie is het goed om de probleemstelling te herbekijken.

Vandaag de dag bestaan er meer dan biljoenen documenten op het World Wide Web (WWW),die gebruikt worden door enkele 100den miljoenen personen. De groei aan informatieop het WWW is bijna niet bij te houden en het vinden van bepaalde data wordt steedsmoeilijker [21]. Dit probleem merkt men ook bij sociale netwerken. Vaak hebben personenverschillende online profielen zoals Twitter, Facebook, Netlog of MySpace. Neem hierbijook nog eens alle persoonlijke blogs, homepagina’s en informatie over lidmaatschappenvan groeperingen zoals voetbalclub en dergelijke. Het is duidelijk dat er heel veel losseinformatie over personen op het web staan.

Tim Berners-Lee beschreef dit probleem als volgt [22]: Vroeger was het internet een netwerkvan computers die met elkaar waren verbonden. Na verloop van tijd zag men in dat niet decomputers belangrijk zijn, maar de documenten. Toen begon men te spreken over het WorldWide Web waarbij documenten centraal staan. Momenteel is er opnieuw een verschuivingwaarbij het niet meer de documenten zijn die centraal staan. Belangrijker is het onderwerpen de informatie die deze documenten bevatten. Tim Berners-Lee gebruikte dan ook in 2001de term Semantisch Web om deze verschuiving te definieren [23].

5.1. Semantisch Web

Tim Berners-Lee omschreef het WWW in 2001 als een verzameling van documentenbestemd voor het lezen door personen. Computers werden gebruikt om deze documentente visualiseren en rond te sturen via het net. Ze waren echter niet in staat om documentensemantisch te benaderen zoals personen dit doen, m.a.w. computers konden een hyperlinkplaatsen op de blog van een gebruiker maar ze wisten niet dat deze link de blog was van eencollega op het werk. Het semantisch web moest hiervoor de oplossing brengen. Computersmoeten hierin de mogelijkheid krijgen om via gestructureerde data en een lijst van regelszelf te gaan redeneren over bepaalde informatie [23].

Figuur 5.1 toont de architectuur van het semantisch web in lagen [24].

31

Page 44: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

5.1. SEMANTISCH WEB HOOFDSTUK 5. ONTOLOGIE

Unicode URI

XML + schema

RDF + schema

Ontologie

Logica

Bewijs

Vertrouwen

Metadata Data

Data Regels

Figuur 5.1.: Architectuur van het semantisch web [24]

Onderaan heeft men Unicode en Uniform Resource Identifier (URI) die men nodig heeft omtekst en objecten te kunnen beschrijven en identificeren. Daarboven ligt Extensible MarkupLanguage (XML) die toelaat om een bepaalde structuur te creeren aan de hand van tags.Resource Description Framework (RDF) zorgt er voor dat de XML-tags een zinvolle betekeniskrijgen aan de hand van triples (subject, predicaat, object). Ontologien spelen dan weer eenbelangrijke rol in het omschrijven van objecten en relaties tussen objecten. De logica laagkan worden gebruikt om te redeneren over de objecten. Daardoor kan men bewijzen datdata correct is en creeert men zo vertrouwen over de informatie [23, 24].

5.1.1. Uniform Resource Identifier

Uniform Resource Identifier (URI) wordt in de laatste standaard RFC 3986 [25] om-schreven als een string van karakters die entiteiten op het WWW kunnen iden-tificeren aan de hand van een bepaald schema. Enkele voorbeelden van URI’szijn: ”http://www.ietf.org/rfc/rfc2396.txt” & ”mailto:[email protected]”. UniformResource Locator (URL) en Uniform Resource Name (URN) zijn subsets van URI dierespectievelijk de locatie en de naam van een entiteit bevatten. URI’s zorgen ervoor datalle entiteiten die nodig zijn, op een unieke manier kunnen worden geıdentificeerd.

5.1.2. Extensible Markup Language

Extensible Markup Language (XML) is een standaard van het World Wide Web Consortium(W3C) waarmee men data kan weergeven in de vorm van gewone tekst. Men gebruikthiervoor tags die de structuur weergeven en daartussen de data zelf. Een voorbeeld vaneen klein XML bestand wordt getoond in figuur 5.2 waarbij men een film beschrijft aan dehand van titel, regisseur en een aantal acteurs.

32

Page 45: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

5.1. SEMANTISCH WEB HOOFDSTUK 5. ONTOLOGIE

<?xml version="1.0" encoding="utf-8"?><film> <titel>Avatar</titel> <regisseur>James Cameron</regisseur> <acteurlijst> <acteur>Sam Worthington</acteur> <acteur>Zoe Saldana</acteur> <acteur>Sigourney Weaver</acteur> </acteurlijst></film>

Figuur 5.2.: Voorbeeld van een klein XML bestand

5.1.3. Resource Description Framework

Resource Description Framework (RDF) zal de structuur opgebouwd via XML een zinvollebetekenis geven. RDF levert een simpel data model voor het maken van expressies in devorm van triples (subject, predicaat, object) maar is wel een van de belangrijkste lagen uit dearchitectuur van het semantisch web. Neemt men als voorbeeld opnieuw het XML bestanduit figuur 5.2. Men kan dan zeggen via RDF: ”James Cameron regisseerde Avatar”. Hierbijis ”James Cameron” het subject, ”regisseerde” het predicaat en ”Avatar” het object. Men kandus stellen dat het subject de entiteit is waarover we spreken, het predicaat een kenmerk ofeigenschap beschrijft en dat het object de waarde van deze eigenschap is.

Een set van RDF expressies gebruikt een specifieke woordenschat die data types eneigenschappen definieert die zinvol zijn voor een applicatie. Zo een RDF woordenschatwordt gedefinieerd aan de hand van een RDF schema (RDF-S). Met RDF-S kan een gebruikerreeds hierarchie implementeren alsook nuttige queries en redeneringen uitvoeren. RDFondersteunt buiten het gebruik van de triples ook reıficatie, dit wil zeggen dat menexpressies over andere expressies kan vormen. Veel van de applicaties worden dan ookop deze laag gebouwd aangezien de uitgebreide functionaliteit.

Een concreet voorbeeld [26] wordt weergegeven in figuur 5.3. Figuur 5.3(a) is eenrepresentatie van de persoon Eric Miller. Hierbij worden URI referenties gebruikt om aante duiden wat de bogen/relaties voorstellen. Figuur 5.3(b) toont dan weer de RDF/XMLnotatie van de graafvoorstelling in 5.3(a).

33

Page 46: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

5.1. SEMANTISCH WEB HOOFDSTUK 5. ONTOLOGIE

http://www.w3.org/1999/02/22-rdf-syntax-ns#type

>

http://www.w3.org/People/EM/contact#me

http://www.w3.org/2000/10/swap/pim/contact#Person

mailto:[email protected]

http://www.w3.org/2000/10/swap/pim/contact#fullName

Eric Miller

http://www.w3.org/2000/10/swap/pim/contact#mailbox

Dr.

http://www.w3.org/2000/10/swap/pim/contact#personalTitle

>

>

>

(a) RDF graaf die Eric Miller voorstelt

<?xml version="1.0"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#">

<contact:Person rdf:about="http://www.w3.org/People/EM/contact#me"> <contact:fullName>Eric Miller</contact:fullName> <contact:mailbox rdf:resource="mailto:[email protected]"/> <contact:personalTitle>Dr.</contact:personalTitle> </contact:Person>

</rdf:RDF>

(b) Een RDF/XML bestand die de graaf in figuur 5.3(a) beschrijft

Figuur 5.3.: Een RDF graaf met bijhorend RDF/XML schema - Figuur uit [26]

5.1.4. Ontologie

Uit vorige sectie blijkt dat RDF(-S) reeds een uitgebreide functionaliteit bezit en kan danook worden beschouwd als een simpele ontologietaal. Maar er zijn nog een reeks vanexpressies die niet met deze vorm kunnen worden voorgesteld. Enkele voorbeelden vandeze expressies die niet kunnen worden voorgesteld zijn:

• Een boek heeft exact een prijs en minstens een auteur (mogelijks meer);

• De prijs van een boek wordt voorgesteld met een getal, de auteur met een string;

• Zeggen dat een boek een softcover of hardcover heeft (maar niet beide);

34

Page 47: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

5.1. SEMANTISCH WEB HOOFDSTUK 5. ONTOLOGIE

Ontologie is een uitbreiding op RDF waardoor het mogelijk wordt om bovenstaandeexpressies te modelleren. Hierdoor krijgt de gebruiker de middelen om heel complexestructuren te ontwerpen. Dit zorgt voor het grote verschil met traditionele datastructurenzoals die in relationele databanken waar er enkel feiten aanwezig zijn en geen regels zoalsin een ontologie.

Web Ontology Language

Web Ontology Language (OWL) is een taal om een ontologie in voor te stellen en wordtvoorgesteld door het W3C [27, 28]. OWL is geen programmeertaal maar een declaratievetaal. Het omschrijft de toestand en relaties van objecten. Gevolgtrekking uit deze ontologieis dan mogelijk met redeneerprogramma’s. Deze kunnen extra informatie halen uit defunctionaliteit die OWL biedt.

Voorbeelden van extra functionaliteit bij ontologie (in OWL) zijn :

• Equivalentie van klassen; Definieren dat twee objecttypen aan elkaar gelijk zijn.

• Inverse eigenschappen; Bijvoorbeeld in ”Avatar is geregisseerd door James Cameron”& ”James Cameron is regisseur van Avatar” zijn is geregisseerd door & is regisseur vanelkaars invers.

• Existentiele ∃ en Universele ∀ kwantoren; Bijvoorbeeld specificeren dat een film opzijn minst een regisseur moet hebben.

• Voor volledige specificatie zie [27].

In het algemeen kan men stellen dat een ontologie uit twee delen bestaat. Het eerstedeel is het maken van een omschrijving die alle objecten en relaties modelleert, uitgebreidmet logica elementen zoals inverse, equivalentie, kwantoren (existentiele en universele),etc. Daarna kan men instanties maken van deze objecten en relaties. Figuur 5.4 iseen voorbeeld hiervan. In het bovenste gedeelte wordt een ontologie beschreven voorkunstenaars en kunstwerken die tentoongesteld kunnen worden in een museum. Daarbijhoren verschillende subklassen, bijvoorbeeld ”schilder is een subklasse van kunstenaar”, enhoren ook specifieke relaties zoals ”een schilder schildert een schilderij” en bijhorendeinverse relatie ”een schilderij is geschilderd door een schilder”. In het onderste gedeeltezijn er dan weer instantiaties gemaakt van de opgestelde ontologie. Zo is Michelangelo devoornaam van een beeldhouwer die een beeldhouwwerk heeft ontworpen met de naamDavid. Dit beeldhouwwerk is momenteel tentoongesteld in een museum met de naamLouvre. Een redeneerprogramma zou hieruit kunnen afleiden dat er minstens een beeldbestaat van Michelangelo dat in het Louvre staat.

35

Page 48: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

5.1. SEMANTISCH WEB HOOFDSTUK 5. ONTOLOGIE

Ontologie

Instantiatie

StringString

String

StringKunstenaar

Schilder

Beeldhouwer

Beeldhouwwerk

Schilderij

Kunstwerk

Museum

Produceert

Geproduceerd door

Schildert

Geschilderd door

Ontwerpt

Ontworpen door

Tentoongesteld in

Naam

Voornaam

Naam

Naam>

<

>

>

>

>

>

Pablo

Picasso

Michelangelo

Buonarroti

Lorenzo

Bartolini

Beeldhouwer:2

Beeldhouwer:3

Schilder:1 Schilderij:4

Beeldhouwwerk:5

Beeldhouwwerk:6

Museum:7

Naam

Naam

Naam

Voornaam

Voornaam

Naam

Naam

Voornaam

Naam

Naam

Schildert

Ontwerpt

Ontwerpt

David

Nymph and the Scorpion

Louvre

Guernica

Tentoongesteld in

Tentoongesteld in

Figuur 5.4.: Voorbeeld ontologie en instantiaties

36

Page 49: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

5.2. FRIEND OF A FRIEND ONTOLOGIE HOOFDSTUK 5. ONTOLOGIE

5.1.5. Logica, bewijs & vertrouwen

De bovenste drie lagen in de architectuur van het semantisch web zijn momenteel het minstbeschreven en toegepast. Ook al bestaan er momenteel enkele programma’s die de regelsvan een ontologie gaan verifieren, gebeurt het vaak dat deze stappen worden overgeslagenbij het implementeren van applicaties. Maar wat gebeurt er wanneer persoon X zegt datobject P rood is en dat persoon Y zegt dat object P niet rood is? Dit zou kunnen gebeurenwanneer er twee ontologien met elkaar worden vermengd. Het is momenteel vaak nog deverantwoordelijkheid van de gebruiker om te beslissen welke data men kan vertrouwen enwelke niet. Het is echter niet moeilijk om een programma te maken dat kan verifieren ofnieuwe data inconsistenties veroorzaakt met de huidige data in een ontologie.

5.2. Friend of a Friend ontologie

Friend of a Friend ontologie (FOAF) is een beschrijvende taal om personen en groepente omschrijven. Het is een Open Source project dat gestandaardiseerde technologieenzoals XML, RDF en OWL gebruikt. Hierdoor wordt het mogelijk om data te creeren diedoor computers kan geınterpreteerd worden. De doelstelling van FOAF is dan ook omhet semantisch web te verruimen door het linken van online informatie over personen.Daardoor kan men het semantisch web als een groot sociaal netwerk beschouwen [29, 30].

Een typische homepagina van een persoon heeft vaak informatie als: ”Mijn naam is . . . , ditis een foto van mij, ik heb interesse in . . . en hier zijn enkele links naar homepagina’s vanmijn vrienden.” Met FOAF is de gebruiker nu in staat om deze zelfde informatie onlinete plaatsen maar met een aantal specifieke voordelen. Zo kunnen alle kleine stukken aaninformatie van een persoon op het WWW met elkaar verbonden worden waardoor we eenweb aan data van personen krijgen. Ook het ophalen van data wordt heel makkelijk metFOAF. Stel bijvoorbeeld dat een persoon reeds een blog, Twitter en Netlog-account heeft.Als deze persoon zich aanmeldt op een nieuwe sociale netwerksite zullen waarschijnlijkveel vrienden reeds een account hebben. Maar hoe vindt men die (snel) terug? Mengebruikt reeds de techniek om contacten te importeren uit adresboeken van e-mailaccounts.Maar je hebt niet van alle kennissen of vrienden op andere sociale netwerken een e-mailadres. Als deze persoon een FOAF file zou hebben met al zijn informatie over de anderesociale netwerksites, zou het terugvinden van vrienden en kennissen op een nieuwe socialenetwerksite, die FOAF ondersteunt, makkelijker kunnen verlopen [31].

5.2.1. Specificatie

Het is de bedoeling om aan de hand van enkele voorbeelden de FOAF specificatie hierverder toe te lichten. Hier zullen enkel de belangrijkste en meest gebruikte aspecten vanFOAF worden besproken.

37

Page 50: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

5.2. FRIEND OF A FRIEND ONTOLOGIE HOOFDSTUK 5. ONTOLOGIE

In de FOAF specificatie kan men twee typen onderscheiden, enerzijds Class objecten enanderzijds Properties. Om dit beter uit te leggen, kan men best een klein voorbeeld geven.

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <foaf:Person> <foaf:name>Niels Soetens</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> </foaf:Person> </rdf:RDF>

Figuur 5.5.: Een klein en simpel FOAF bestand

Wanneer men de structuur overloopt van het FOAF bestand in figuur 5.5, ziet men duidelijkdat dit document volgens standaard XML is opgebouwd. De eerst tags zijn rdf:RDF, dit komtdoordat ontologie uitbreidingen zijn van de RDF laag. In dit eerste stuk wordt gezegd waarmen de RDF, RDF-S en FOAF specificatie kan terugvinden. Zo valt makkelijk te controlerenof een bestand voldoet aan de specificaties van een opgegeven taal.

De tweede tag foaf:Person komt uit de FOAF specificatie. Hier begint men met hetbeschrijven van een persoon. Een persoon is van het Class-type. Andere veel voorkomendevoorbeelden Class-types zijn Group, Organization, Document & Image. Vervolgens ziet mende naam en het e-mailadres van deze persoon in respectievelijk foaf:name & foaf:mbox.Dit zijn voorbeelden van Property-type of zijn dus eigenschappen. Andere belangrijkeeigenschappen die men kan vermelden met FOAF zijn:

• foaf:firstName & foaf:lastName; De voor- en achternaam van een persoon.

• foaf:nick; Een bijnaam van een persoon.

• foaf:age & foaf:gender; De leeftijd en het geslacht.

• foaf:mbox sha1sum; De geencrypteerde versie van het e-mailadres.

• foaf:homepage; De homepagina van een persoon.

• foaf:schoolHomepage; De homepagina van de school waar men les gevolgd heeft.

• foaf:knows; Relatie met andere vrienden.

Figuur 5.6 toont hoe dit allemaal in een bepaald FOAF bestand kan worden voorgesteld.Belangrijk om hierbij op te merken is hoe FOAF omgaat met identificatie van personen.Aangezien het juist de bedoeling is om verschillende FOAF bestanden van personen onlinete plaatsen, moet er een manier zijn om deze correct te kunnen identificeren. De manierwaarop men dit wil oplossen is nog steeds in discussie. Een mogelijkheid om dit te doenis om bijvoorbeeld bij het Class-type foaf:person een rdf:ID met bijhorend URI te plaatsen.

38

Page 51: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

5.2. FRIEND OF A FRIEND ONTOLOGIE HOOFDSTUK 5. ONTOLOGIE

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:foaf="http://xmlns.com/foaf/0.1/"> <foaf:Person> <foaf:name>Niels Soetens</foaf:name> <foaf:title>Dhr.</foaf:title> <foaf:givenname>Niels</foaf:givenname> <foaf:family_name>Soetens</foaf:family_name> <foaf:nick>Nielsken</foaf:nick> <foaf:mbox_sha1sum>0e04b1ab0542bca463b2358a9cb922ff30ecc99d</foaf:mbox_sha1sum> <foaf:schoolHomepage rdf:resource="http://www.ugent.be/"/> <foaf:knows> <foaf:Person> <foaf:name>Wim Vander Schelden</foaf:name> <foaf:mbox_sha1sum>add96aeec28882f26f4f0ae1abdc68067d5a7a58</foaf:mbox_sha1sum> <rdfs:seeAlso rdf:resource="http://www.fixnum.org/"/> </foaf:Person> </foaf:knows> <foaf:knows> <foaf:Person> <foaf:name>Thomas Spranghers</foaf:name> <foaf:mbox_sha1sum>c97918166ed4255dadc834eca9eb5e1200804d1b</foaf:mbox_sha1sum> <rdfs:seeAlso rdf:resource="http://www.sholva.org/"/> </foaf:Person> </foaf:knows> <foaf:knows> <foaf:Person> <foaf:name>Denis Defreyne</foaf:name> <foaf:mbox_sha1sum>f2eb56aca0d561d13eac2bebd919831fd9e1ee7e</foaf:mbox_sha1sum> <rdfs:seeAlso rdf:resource="http://www.stoneship.org/"/> </foaf:Person> </foaf:knows>

</foaf:Person> </rdf:RDF>

Figuur 5.6.: Een uitgebreid FOAF bestand

Maar hoe definieert men op unieke wijze een persoon aan de hand van een URI? Verwijstmen naar een homepagina of een e-mailadres? Een andere manier om dit probleem vanidentificatie op te lossen komt uit OWL. FOAF gebruikt immers het concept van InverseFunctional Property (IFP) uit OWL. Dit laat toe om eigenschappen uniek identificeerbaar temaken.

Het FOAF schema definieert enkele van deze inverse functionaliteit eigenschappenwaaronder foaf:mbox, foaf:mbox sha1sum en foaf:homepage. Zo creeert men een heel belangrijkvoordeel in FOAF. Wanneer een spider of webcrawler op zoek naar FOAF bestandentwee bestanden vindt met elk dezelfde waarde in een unieke gedefinieerde eigenschap,kan deze de informatie met elkaar vermengen. Een voorbeeld hiervan kan men zien infiguur 5.7. Hierbij krijgt men uit twee FOAF bestanden informatie over eenzelfde persoon.Aangezien foaf:mbox sha1sum gedefinieerd staat als uniek, kan men de eigenschappen uitbeide bestanden met elkaar vermengen [32].

39

Page 52: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

5.2. FRIEND OF A FRIEND ONTOLOGIE HOOFDSTUK 5. ONTOLOGIE

<foaf:Person> <foaf:name>Niels Soetens</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> <foaf:mbox_sha1sum>0e04b1ab0542bca463b2358a9cb922ff30ecc99d</foaf:mbox_sha1sum> </foaf:Person>

<foaf:Person> <foaf:name>Niels Soetens</foaf:name> <foaf:mbox_sha1sum>0e04b1ab0542bca463b2358a9cb922ff30ecc99d</foaf:mbox_sha1sum> <foaf:schoolHomepage rdf:resource="http://www.ugent.be/"/> </foaf:Person>

Figuur 5.7.: Het samenvoegen van FOAF bestanden met uniek gedefinieerde eigenschappen

5.2.2. Uitbreiding

Natuurlijk biedt de huidige specificatie van FOAF niet alle mogelijke eigenschappen ompersonen te beschrijven. Daardoor bestaat de mogelijkheid om hierop zelf een uitbreidingte schrijven. Zo kan men extra eigenschappen definieren voor bepaalde doeleinden.

Stel dat bijvoorbeeld een persoon zijn account op Netlog wil meegeven in een FOAFbestand. Hierdoor volstaat het om een uitbreiding te schrijven. Men moet enkelmaar een schema aanmaken waarin de nieuwe eigenschappen worden gedefinieerden dit schema toegankelijk maken voor de buitenwereld. In figuur 5.8 wordt eerstgedefinieerd waar men het schema met de uitbreidingen kan terugvinden, in dit gevalis dat ”http://www.ergensophetweb.com/schema/netlogSchema/”. Hierdoor wordt hetgebruik van de nieuwe eigenschap, hier gedefinieerd als netlog:netlogAccount, mogelijk.

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:netlog="http://www.ergensophetweb.com/schema/netlogSchema/">

<foaf:Person> <foaf:name>Niels Soetens</foaf:name> <foaf:mbox rdf:resource="mailto:[email protected]"/> <netlog:netlogAccount rdf:resource="http://nl.netlog.com/nielssoetens"/> </foaf:Person>

</rdf:RDF>

Figuur 5.8.: Uitbreiding maken voor FOAF bestanden

5.2.3. Publiceren van FOAF data

Friend of a Friend ontologie werkt enkel wanneer alle bestanden voor iedereen toegankelijkzijn en deze met elkaar in verbinding staan. Wanneer men een RDF bestand met daarinFOAF informatie heeft gecreeerd, is het noodzakelijk dat dit bestand gelinkt wordt in hetsemantisch web. Dit kan eigenlijk best op twee manieren:

40

Page 53: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

5.3. IMPLEMENTATIE HOOFDSTUK 5. ONTOLOGIE

1. Door de eigenschap foaf:knows; Hierbij laat men een kennis/vriend die reedsaanwezig is in het semantisch web zijn/haar FOAF bestand linken naar het nieuwe.

2. Door HTML link tag; Hierbij linkt men in zijn homepagina of ergens anders op hetweb naar het desbetreffende FOAF bestand.

Hierdoor wordt het mogelijk dat spider of webcrawler op zoek naar FOAF bestanden ookhet nieuwe bestand zullen aantreffen waardoor het semantisch web weer iets groter wordt.

Conclusie

De grote opmars van sociale netwerken, blogs en dergelijke zorgen ervoor dat er veel kleinestukken informatie over personen op het World Wide Web staan. Vaak zijn deze niet gelinktaan elkaar waardoor er juist veel informatie verloren gaat. Het semantisch web en de Friendof a Friend ontologie proberen hierin verandering te brengen. De bedoeling is juist om vanhet semantisch web een groot sociale netwerk te maken waarin efficient informatie vanpersonen kan worden teruggevonden.

Het semantisch web heeft daarentegen heel veel kritiek gekregen omtrent de haalbaarheid,de privacy van gebruikers en de extra (meta)data die nodig is om dit alles te zien werken.Toch blijven projecten zoals FOAF streven naar het idee van het semantisch web.

5.3. Implementatie

De FOAF functies die hiervoor werden ontwikkeld kunnen drie verschillende FOAFbestanden genereren:

• Simpel (profielinformatie); Bevat enkel informatie over de gebruiker zoals naam,userid, url, etc.

• Normaal (profiel & vrienden); Bevat de profielinformatie van de gebruiker, eventueeluitgebreid met extra waarden en de vriendenrelaties op Netlog.

• Geavanceerd (profiel, vrienden & vriendengroepen); Bevat profielinformatie envriendenrelaties uitgebreid met de automatisch gevonden vriendengroepen.

Op deze manier is het mogelijk om bepaalde FOAF bestanden te creeren met beperkteinformatie over gebruikers om bijvoorbeeld privacy redenen.

Om deze FOAF bestanden te genereren wordt er een array van informatie over een persoonen zijn vrienden als input verwacht. Deze datastructuur werd zo generiek mogelijkgehouden zodat men deze informatie uit verschillende databronnen kan halen. Tijdens dezescriptie werd vooral gewerkt met OpenSocial voor het ophalen van gebruikersinformatie.

41

Page 54: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

5.3. IMPLEMENTATIE HOOFDSTUK 5. ONTOLOGIE

Het blijft echter mogelijk om in latere ontwikkelingen deze data rechtstreeks uit de databankvan Netlog te halen.

De FOAF component wordt visueel voorgesteld in figuur 5.9. Hierbij is duidelijk te ziendat er meer invoer nodig is wanneer men geavanceerdere FOAF bestanden wil creeren. Demogelijke uitbreidingen en toepassingen worden in hoofdstuk 7 verder besproken.

Info Vrienden

SemantischWeb

FOAF ontologie

Gemeenschappen

Info Persoon

FOAFBestand>

>

>

OptimaleRegistratie

>

>

>

Figuur 5.9.: FOAF ontologie component

42

Page 55: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

HOOFDSTUK 6. EVALUATIE

6. Evaluatie

De evaluatie van deze scriptie concentreert zich vooral op het clusteringalgoritme. Hierbijis het de bedoeling om de twee algoritmen met elkaar te vergelijken op zowel snelheid alsaccuraatheid.

6.1. Testomgeving

Om de twee algoritmen met elkaar te kunnen vergelijken is er nood aan testdatasets.Deze datasets kan men onderverdelen in drie types, artificieel gecreeerde netwerken,netwerken die bestudeerd werden uit het echte leven of datasets die werden aangeleverduit sociale netwerksites zoals Facebook of Netlog. Deze datasets hebben echter wel hetgemeenschappelijke kenmerk dat er steeds een duidelijke groepstructuur aanwezig is. Omclusteralgoritmen met elkaar te vergelijken worden meestal twee parameters onderzocht:snelheid en correctheid [10, 20].

6.1.1. Snelheid

De snelheid van een clusteralgoritme wordt bepaald door de complexiteit. In hoofdstuk 4werd reeds aangehaald dat er een grote diversiteit aan algoritmen bestaat. Deze hebbendan ook heel uiteenlopende tijdscomplexiteiten. Bij sommige van deze algoritmen is decomplexiteit moeilijk te berekenen omdat ze parameter afhankelijk zijn.

De complexiteit van dergelijke algoritmen wordt vaak aangeduid met n, m en k waarbij nhet aantal knopen,m het aantal bogen en k het gemiddeld aantal bogen per knoop voorstelt.

6.1.2. Accuraatheid

Om de accuraatheid van clusteringalgoritmen te kunnen bepalen, moet men twee gevallenonderscheiden. Enerzijds kan men werken met datasets waarbij men de optimalepartitieverdeling kent, anderzijds bestaan er datasets waarbij de optimale verdeling nietgekend is. Bij de artificiele en bestudeerde datasets zijn de optimale verdeling gegeven.Datasets verkregen uit Facebook of Netlog hebben echter dit voordeel niet.

43

Page 56: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

6.2. RESULTATEN HOOFDSTUK 6. EVALUATIE

Wanneer men de optimale verdeling op voorhand kent voor een bepaalde dataset kan menals volgt te werk gaan. De gevonden partities worden vergeleken met de optimale partities.Dit doet men door de simulariteit te berekenen tussen twee partities A en B. De NormalizedMutual Information (NMI) wordt berekend door volgende formule [33]:

NMI (A,B) =

−2cA∑

i=1

cA∑

j=1

Nij

Nlog

(NijN

Ni.N.j

)

cA∑

i=1

Ni.log

(Ni.

N

)+

cA∑

j=1

Nj.log

(Nj.

N

) , (6.1)

waarbij cA het reele aantal partities, cB het gevonden aantal partities zijn, N de confusionmatrix waarbijNij het aantal gemeenschappelijke knopen die twee partities bevatten. Ni. enN.j zijn dan weer het aantal elementen in een bepaalde partitie. Als de gevonden partitiesidentiek zijn aan de gekende partities zal NMI de maximale score van 1 halen. Wanneerde twee partities helemaal geen gemeenschappelijke kenmerken vertonen bekomt men descore 0.

Om de datasets te evalueren verkregen van sociale netwerksites zoals Facebook & Netlogwerd er op een subjectieve manier onderzocht hoe goed de gevonden partities werdenbeschouwd door gebruikers. Dit heeft zeker een toegevoegde waarde omdat het uiteindelijkde bedoeling is om deze algoritmen op dergelijke sociale netwerken te gebruiken.

6.2. Resultaten

De resultaten worden hieronder opgesplitst aan de hand van de gebruikte dataset. Er isgetest op verschillende datasets, zowel in grootte als moeilijk te vinden partities.

Een opmerking bij de resultaten is dat het Girvan-Newman algoritme als input het optimaalaantal partities mee gekregen heeft. Het stopcriteria voor dit algoritme is wanneer hetaantal vooropgestelde partities zijn gevonden. Het Louvain algoritme heeft een automatischstopcriteria. Het algoritme stopt wanneer er geen verbetering te vinden is in modulariteit.Dit geeft het Girvan-Newman een voordeel ten opzichte van accuraatheid.

Als eerste werd een van de meest bestudeerde netwerken onderzocht.

6.2.1. Zachary’s Karate Club

Een van de meest gebruikte datasets voor het testen van clusteringalgoritmen is Zachary’skarate club. Deze dataset komt uit de paper van Zachary uit 1977 [34] waarbij menhet sociale gedrag van een groep personen onderzocht. In dit driejarig onderzoek inde gedragswetenschap kwam er wrevel tussen de voorzitter en de trainer van de club.Hierdoor splitste de groep van 34 personen in twee groepen. Door dit toeval en de unieke

44

Page 57: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

6.2. RESULTATEN HOOFDSTUK 6. EVALUATIE

structuur die deze kleine dataset met zich meedraagt, wordt Zachary’s karate club vaakgebruikt om een algoritme te evalueren. In onderstaande figuur 6.1 is duidelijk te zien hoede groep juist werd opgesplitst.

Figuur 6.1.: Zachary’s karate club

Deze dataset bevat 34 knopen en 77 bogen. De optimale opdeling bestaat uit 2 partities, deene partitie telt 16 knopen en de andere 18.

Na het uitvoeren van beide algoritmen op deze dataset werden de resultaten uit tabel 6.1bekomen.

Snelheid (sec) Accuraatheid (%) Aantal groepenAlgoritme min gem max min gem max min med maxLouvain 0,00317 0,00334 0,00471 44,69 69,94 82,55 3 4 7Girvan-Newman NA 0,1277 NA NA 83,65 NA NA 2 NA

Tabel 6.1.: Snelheid en accuraatheid algoritmen - Zachary’s karate club

Wanneer het Louvain algoritme wordt uitgevoerd met een andere beginvolgorde vanknopen, kan dit als gevolg hebben dat er andere partities worden gevonden. Daaromwerd dit algoritme verschillende keren uitgevoerd waardoor het mogelijk is een gemiddeldresultaat te bekomen. Figuur 6.2 toont de verdeling gevonden door een van de Louvainsimulaties en het Girvan-Newman algoritme.

Uit deze eerste test zijn al een paar opmerkelijke bevindingen waarneembaar. Eerst envooral zijn beide algoritmen niet in staat om de optimale verdeling te vinden, ze hebben eenaccuraatheid die kleiner is dan 100%. Het Girvan-Newman algoritme vindt twee partitiesmaar wist een knoop verkeerd te plaatsen. Dit komt overeen met het resultaat in hetorigineel onderzoek [11]. Het Louvain algoritme vindt gemiddeld 4 partities en haalt eengemiddelde accuraatheid van ongeveer 70%. Deze lagere score en uiteenlopende resultatenzijn te verklaren omdat het Louvain algoritme niet ontwikkeld is om op dergelijke kleine

45

Page 58: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

6.2. RESULTATEN HOOFDSTUK 6. EVALUATIE

9

31

3334

10

15

1619

2123

2730

1

2

34

8

12

13

1418

20

22

325

6

7

11

28

29

24

26

25

17

(a) Louvain algoritme

1

2

4

5

6

7

8

11

12

13

14

18 20

22

3

9

32

31

17

34

10

28

29

33

24

30

26

25

15

16

19

2123

27

(b) Girvan-Newman algoritme

Figuur 6.2.: Zachary door Louvain algoritme (links) en Girvan-Newman (rechts)

datasets te worden uitgevoerd. Op grotere datasets met een duidelijke netwerkstructuurzullen de gevonden partities veel minder afwijken [19].

Een tweede vaststelling is het verschil in snelheid. Het Girvan-Newman algoritme isduidelijk trager, met enkele grootorden, dan het Louvain algoritme. Dit is een logisch gevolguit de complexiteit van beide algoritmen. Zoals eerder vermeld heeft het Girvan-Newmanalgoritme een complexiteit van O(n3) en Louvain ≈ O(n).

6.2.2. Benchmark Lancichinetti et al.

Benchmark grafen zijn gegenereerde grafen bepaald door een aantal parameters zoals degrootte van de partities en aantal bogen tussen deze partities. Een klasse van benchmarkgrafen werd ontwikkeld door Girvan en Newman [11]. Een uitbreiding hiervan werd voorgesteld door Lancichinetti et al [35].

De software voor deze benchmarks is vrij beschikbaar op het internet [36]. Deze zal wordengebruikt voor het maken van de test datasets. Hierop zal enerzijds de snelheid als anderzijdsaccuraatheid worden getest.

Voor het creeren van dergelijke datasets moet de gebruiker enkele parameters meegeven. Zokan men instellen hoeveel knopen de graaf moet bevatten (N ), het gemiddeld en maximaalaantal bogen (k en kmax) en een mix parameter mu (µ). Deze laatste zal het aantal bogenaanduiden dat elke knoop gemeenschappelijk heeft met zijn eigen partitie. Bij een kleineµ zullen er slechts weinig bogen naar andere partities zijn. Bij een grote µ zullen degemeenschappen veel minder makkelijk te ontdekken zijn aangezien er veel meer bogentussen verschillende partities lopen.

De volgende datasets werden artificieel opgesteld met de Lancichinetti benchmark. Hierbijis het de bedoeling om duidelijk het verschil in snelheid en accuraatheid aan te tonen. Voor

46

Page 59: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

6.2. RESULTATEN HOOFDSTUK 6. EVALUATIE

elke test werden tien datasets gegenereerd waarop beide algoritmen zijn uitgevoerd. Vandeze tien uitvoeringen werd steeds het gemiddelde genomen.

Een eerste test heeft datasets gegenereerd met verschillende grootte. Hierbij werdennetwerken ontwikkeld van 100, 200 en 300 knopen met respectievelijk 800, 1600 en 2400bogen. In deze netwerken hadden knopen in eenzelfde groep heel veel gemeenschappelijkebogen en slechts enkele naar andere groepen. Er waren met andere woorden heel duidelijkepartities.

(a) Benchmark Snelheid

(b) Benchmark Accuraatheid

Figuur 6.3.: Benchmark

47

Page 60: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

6.2. RESULTATEN HOOFDSTUK 6. EVALUATIE

De resultaten zijn weergegeven in figuur 6.3(a) & 6.3(b), respectievelijk snelheid enaccuraatheid. Op de X-as staan het aantal knopen. De Y-as toont respectievelijk de snelheidin seconden en accuraatheid in percentage.

Uit deze resultaten is duidelijk te zien dat het Girvan-Newman algoritme heel traag werkt.Dit is natuurlijk een gevolg van de hoge tijdscomplexiteit. Hierdoor is het algoritmevan Girvan-Newman duidelijk niet geschikt wanneer men een applicatie in reele tijd wilaanbieden. Daarentegen zal het Louvain algoritme met enkele grootordes sneller werken.Enkele honderden knopen kunnen nog steeds binnen de seconde geclusterd worden.

Bij de accuraatheid scoort het Girvan-Newman algortime echter beter. Dit kan bij elk van detesten steeds de optimale verdeling vinden en scoort bijgevolg 100%. Het Louvain algoritmescoort echter iets lager, maar steeds met een accuraatheidsscore van meer dan 90%.

In de tweede test is het de bedoeling om de accuraatheid te meten wanneer de groepenmoeilijker te vinden zijn. Hierbij werd de benchmark van Newman gebruikt, gegeneerddoor de software van Lancichinetti. Dit artificieel netwerk bevat 128 knopen die elk 16bogen hebben. In deze test werd de vormingsparameter mu (µ) steeds verhoogd. Wanneerde vormingsparameter mu een lage waarde heeft zoals 0, 1 zullen de groepen heel duidelijkgevormd zijn, met andere woorden knopen hebben heel veel bogen binnen hun eigengroep en slechts weinig naar de andere groepen. Wanneer deze vormingsparameter wordtverhoogd zullen er bij elke knoop steeds minder bogen zijn naar knopen binnen dezelfdegroep en meer bogen naar andere groepen. Dit heeft als gevolg dat de partities mindermakkelijk te vinden zijn.

48

Page 61: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

6.2. RESULTATEN HOOFDSTUK 6. EVALUATIE

(a) Benchmark Snelheid - Veranderende mu

(b) Benchmark Accuraatheid - Veranderende mu

Figuur 6.4.: Benchmark - Veranderende mu

49

Page 62: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

6.2. RESULTATEN HOOFDSTUK 6. EVALUATIE

De resultaten zijn weergegeven in figuur 6.4(a) & 6.4(b), respectievelijk snelheid enaccuraatheid. Op de X-as staan de waarden voor de vormingsparameter mu. De Y-as toontrespectievelijk de snelheid in seconden en accuraatheid in percentage.

Als eerste zullen de resultaten in verband met snelheid worden geevalueerd. Hier isduidelijk te zien dat wanneer mu stijgt, het Louvain algoritme steeds in constante tijd blijftwerken. Het Girvan-Newman algoritme heeft echter een lichte stijging in uitvoeringstijd.Dit is logisch te verklaren aangezien het Girvan-Newman algoritme in elke iteratie een boogverwijdert uit het netwerk waardoor de graaf uiteindelijk in twee zal splitsen. Aangezien erbij een stijgende mu meer bogen zijn tussen verschillende groepen, zullen er ook meer bogenmoeten worden verwijderd tot wanneer de graaf in twee splitst. Dit heeft tot gevolg dat ermeer iteraties nodig zijn waardoor men een duidelijke stijging verkrijgt in uitvoeringstijd.

Bij accuraatheid kan men echter omgekeerde resultaten beschouwen. Hier scoort Girvan-Newman veel beter wanneer men de vormingsparameter mu laat stijgen. Tot en metmu = 0, 3 vindt Girvan-Newman steeds het optimale resultaat. Daarna krijgt men ook eenterugval in de accuraatheid. Het Louvain algoritme daarentegen haalt al bij een kleinere muminder accurate resultaten.

Uit deze twee testen is duidelijk dat het Louvain algoritme sneller is dan het Girvan-Newman algoritme maar moet inboeten op accuraatheid. Wanneer de structuur van hetnetwerk duidelijke groepen vertoont, zal ook het Louvain algoritme heel goed scoren.

Het grote voordeel van het Louvain algoritme is natuurlijk de complexiteit. Deze is vanwegehet algoritme moeilijk correct te bepalen maar zou tegen de lineariteit moeten aanleunen.De laatste test is daarom specifiek voor het Louvain algoritme opgesteld. Hierbij is hetde bedoeling om datasets te genereren waarbij het aantal knopen sterk oploopt. Bij dezedatasets zou het Girvan-Newman algoritme nooit een antwoord kunnen geven wegens decomplexiteit.

50

Page 63: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

6.2. RESULTATEN HOOFDSTUK 6. EVALUATIE

Figuur 6.5.: Benchmark Snelheid - Louvain

De resultaten werden weergegeven in figuur 6.5. Beide assen hebben een logaritmischeschaal. Op de X-as staan het aantal knopen van de datasets, op de Y-as het aantal secondenvan de uitvoeringstijd. Alle datasets in deze test hadden een vormingsparameter 0, 1 en hetaantal bogen was steeds een factor ×8 ten opzichte van de knopen, met andere woorden bijeen dataset met 1000 knopen zijn er respectievelijk 8000 bogen.

Uit de bijna rechtlijnige vorm van de resultaten kan men afleiden dat dit algoritme tegende lineariteit aanleunt. Zoals aangehaald in dit onderzoek kan men veronderstellen dat hetalgoritme een complexiteit heeft tussen O(n) en O(nk) met n het aantal knopen en k hetgemiddeld aantal bogen per knoop.

De accuraatheid werd hier niet in een grafiek opgenomen maar was steeds in de buurt van95%. Deze had zelfs de neiging om te stijgen naarmate de datasets groter werden.

6.2.3. Datasets Facebook & Netlog

Aangezien de omgeving van deze scriptie zich afspeelt rond sociale netwerken kunnende clusteringalgoritmen worden uitgetest op profielen van gebruikers. Hierdoor kan menop een subjectieve manier onderzoeken of er daadwerkelijk vriendenkringen automatischkunnen worden gedetecteerd. Om dit te kunnen testen werden er scripts gemaakt diezowel op Facebook als Netlog data van een gebruiker kan onttrekken. Verschillendemedestudenten en vrienden hebben hun medewerking verleend door hun dataset door testuren voor evaluatie.

Beide algoritmen werden getest op deze reele datasets. Daarna werd aan de personen diede dataset hadden geleverd, gevraagd hoe goed de gevonden vriendengroepen van beidealgoritmen zijn. Hierbij werd expliciet gevraagd om feedback te geven over het aantal

51

Page 64: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

6.2. RESULTATEN HOOFDSTUK 6. EVALUATIE

personen die verkeerd gegroepeerd waren. Deze score werd als metriek gebruikt voor desubjectieve evaluatie.

Figuur 6.6 geeft de resultaten weer in een boxplot voor de subjectieve evaluatie van beidealgoritmen. Hierbij werd voor beide algoritmen een tiental personen gevraagd om feedbackte geven. Opvallend is dat het Louvain algoritme iets beter wordt beoordeeld dan hetGirvan-Newman algoritme. Dit is waarschijnlijk een logisch gevolg doordat datasets vansociale netwerken een duidelijke netwerkstructuur bevatten.

Figuur 6.6.: Vergelijking van de subjectieve evaluatie

In bijna alle gevallen werden de gevonden groepen als heel goed beschouwd. Bij de meestevan deze datasets waren er altijd wel enkele personen die beter in een andere groep zoudenpassen maar de gevonden resultaten werden steeds als heel accuraat omschreven.

Conclusie

In dit onderzoek naar clusteringalgoritmen voor het automatisch detecteren van vrien-dengroepen werden twee heel verschillende algoritmen met elkaar vergeleken, namelijkGirvan-Newman en Louvain. Hierbij kon men duidelijk vaststellen dat er een afweging istussen snelheid en accuraatheid. Het Girvan-Newman algoritme scoort duidelijk beter opaccuraatheid maar heeft daarvoor wel veel uitvoeringstijd nodig. Het Louvain algoritmehaalt een goede accuraatheid wanneer er een duidelijke groepstructuur aanwezig is inde graaf. Dit is vaak het geval met vriendenrelaties zoals op sociale netwerksites. Deuitvoeringstijd van dit algoritme is beduidend kleiner dan Girvan-Newman waardoorapplicaties in werkelijke tijd mogelijk worden.

52

Page 65: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

HOOFDSTUK 7. MOGELIJKE UITBREIDINGEN

7. Mogelijke Uitbreidingen

7.1. Clustering

Het clusteralgoritme dat hiervoor werd voorgesteld zal als output gegroepeerdevriendenrelaties teruggeven. Deze data kan gebruikt worden voor enkele mogelijketoepassingen.

7.1.1. Visualisatie vriendenkringen

Het Louvain algoritme dat in deze scriptie werd geımplementeerd kan datasets vanongeveer 10.000 knopen in enkele seconden analyseren. Het gemiddeld aantal vriendenvan gebruikers op sociale netwerksites ligt echter veel lager. Gewone profielen (niet fan- ofmerk-pagina’s) kunnen dan in reele tijd worden geanalyseerd.

Een visualisatie applicatie cfr. Touchgraph op Facebook zou een mogelijke uitbreiding zijnop het clusteralgoritme. Deze toepassing zou de gebruiker zijn vriendengroepen in beeldkunnen brengen.

7.1.2. Filteren van berichten

De acties van gebruikers op berichten uit bepaalde groepen kunnen worden onderzocht.Wanneer men zou ontdekken dat een gebruiker meer reageert op berichten van bepaaldegroepen, kan dit wijzen op verhoogde interesse in dergelijke berichten. Als aan elk van degroepen een bepaalde interessescore wordt meegegeven, kan dit gebruikt worden voor hetfilteren van bepaalde berichten op de homepagina van de gebruiker.

Ook wanneer de gebruiker zijn vrienden wil opdelen in bepaalde groepen, kan dit algoritmegebruikt worden als basis. Hierbij zou de gebruiker een voorstel krijgen voor het opsplitsenin groepen waarna hij/zij zelf de kans krijgt om aanpassingen te doen. Versturen vanberichten naar specifieke groepen kan zo vergemakkelijkt worden.

53

Page 66: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

7.2. FOAF & ONTOLOGIE HOOFDSTUK 7. MOGELIJKE UITBREIDINGEN

7.1.3. Clusteringalgoritmen vergelijken

Er zijn reeds verschillende vergelijkende studies gedaan tussen clusteringalgoritmen [10,20]. Er bestaan verschillende algoritmen met elk hun eigen complexiteit en accuraatheid.Er kan onderzocht worden welke het beste resultaat leveren op specifieke datasets zoals dievan sociale netwerken.

7.2. FOAF & ontologie

FOAF werd specifiek ontwikkeld om informatie van personen op het web beter toegankelijkte maken. Informatie van personen zoals blogs, Twitter of sociale netwerksites is vaakverspreid en er bestaat geen verbinding die al deze informatie verbindt naar een specifiekindividu. De FOAF ontologie wil deze informatie toegankelijk maken zodat het machinaalkan worden verwerkt en dat de gedistribueerde informatie met elkaar kan wordenverbonden.

FOAF heeft als doelstelling het semantische web te verrijken. Zo zou de informatie vanpersonen op verschillende sociale netwerksites met elkaar kunnen worden verbonden. Ditheeft enkele concrete voordelen.

Enerzijds kan FOAF de registratie van nieuwe gebruikers vereenvoudigen. Wanneermen zich registreert op een sociale netwerksite moet men vaak verschillende gegevensinvullen. Wanneer men kan refereren naar een FOAF bestand dat ergens online staat, zoude informatie reeds gedeeltelijk ingevuld kunnen zijn.

Anderzijds kan het vinden van vrienden op sociale netwerksites vereenvoudigd worden.Wanneer de informatie van vrienden en kennissen kan onttrokken worden uit FOAFbestanden, moet de gebruiker zelf niet meer op zoek.

Het grote nadeel is dat FOAF en het semantische web niet altijd goed worden ondersteund.Aangezien deze technologie vrij nieuw is, zijn er niet veel gebruikers die FOAF bestandenhebben. Het semantisch web moet nog grotendeels worden opgebouwd.

7.3. Netlog

Deze scriptie is in samenwerking met Netlog ontwikkeld. De bovenstaande uitbreidingenzouden op deze sociale netwerksite een mogelijke toepassing kunnen zijn.

Zo zou het clusteringalgoritme kunnen worden geıntegreerd waardoor men rechtstreekskan werken op de databank zonder OpenSocial als tussenliggende interface. Daaropkunnen dan toepassingen zoals een visualisatie of filtering van berichten wordenontwikkeld.

54

Page 67: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

7.3. NETLOG HOOFDSTUK 7. MOGELIJKE UITBREIDINGEN

Ook het gebruik van FOAF zou kunnen worden gestimuleerd. Men zou bijvoorbeeld vanelke gebruiker een FOAF bestand kunnen ontwikkelen waardoor het semantisch web wordtverrijkt. Mocht blijken dat de FOAF ontologie zou kunnen helpen voor snellere registratieof het vinden van vrienden kan dit ook worden geıntegreerd.

In een heel andere context zou men het Louvain algoritme kunnen gebruiken op grotedelen van de databank. Hierbij zou men best het algoritme in een efficiente en snelleprogrammeertaal zoals C/C++ gebruiken. Aangezien het algoritme ontwikkeld is omjuist grote datasets te analyseren, zou het mogelijk moeten zijn om bijvoorbeeld alleNederlandstalige gebruikers te clusteren. Hieruit zouden misschien groepen kunnenworden gevormd met personen die uit dezelfde regio komen of die eenzelfde interessevertonen. Deze informatie kan dan opnieuw gebruikt worden om nieuwe vrienden tevinden of om bepaalde reclamecampagnes meer doelgericht te maken op Netlog.

55

Page 68: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

HOOFDSTUK 8. CONCLUSIE

8. Conclusie

Deze scriptie had als doelstelling technologieen te onderzoeken om informatie te ontginnenuit de data aanwezig op sociale netwerken. Hierbij werd vooral onderzoek gedaan naarclusteralgoritmen voor het automatisch detecteren van vriendengroepen.

In een eerste fase werd gekozen om Girvan-Newman te implementeren. Als snel bleek ditalgoritme vrij traag in uitvoering te zijn op kleine datasets van enkele honderden vrienden.Daarom werd een tweede clusteringalgoritme geımplementeerd. Het Louvain algoritmewerd gekozen voor zijn snelheid. Dit heuristisch algoritme zal op een gretige manier deknopen snel groeperen waarbij de modulariteit het hoogst is.

Uit de evaluatie blijkt de verscheidenheid tussen beide algoritmen. Wanneer men eenclusteringalgoritme kiest moet men duidelijk afwegen wat het belangrijkst is, snelheidof accuraatheid. Toch scoort het Louvain algoritme goed op datasets waar structuurvan groepen duidelijk aanwezig is zoals datasets aanwezig op sociale netwerken. Extraonderzoek naar andere algoritmen zou kunnen helpen om een optimale mix te vindentussen snelheid en accuraatheid.

De clusteringalgoritmen werden in dit onderzoek conceptueel behandeld. Reeletoepassingen, zoals visualisatie van vriendenkringen of filtering van berichten, behoren niettot de scope van deze scriptie. Visualisatie applicaties van vriendenkringen bestaan reeds opsociale netwerksites als Facebook en Friendster. Aangezien deze scriptie in samenwerkingis met Netlog kan dit onderzoek als basis dienen voor verdere toepassingen op deze socialenetwerksite.

In het tweede deel van deze scriptie werd ook onderzoek gedaan naar het semantischweb en ontologien. Hierbij werd meer specifiek gekeken naar FOAF (Friend of a Friend)ontologie die toelaat om informatie over personen te beschrijven zodat computers in staatzijn deze informatie te interpreteren. De bedoeling van het semantisch web is om dezeinformatie aan elkaar te kunnen linken om het World Wide Web op zich een sociaal netwerkte laten worden.

Deze technologie is vrij recent ontwikkeld en wordt nog niet ten volle benut. Veel personenhebben profielen op verschillende sociale netwerken zoals Facebook, Twitter, Netlog,etc. Toch wordt deze gedistribueerde informatie nooit gelinkt aan eenzelfde persoon.Ontologien kunnen helpen bij het optimaliseren van sociale netwerken. Als de informatie

56

Page 69: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

HOOFDSTUK 8. CONCLUSIE

van personen die nu reeds op het net aanwezig is, zou kunnen worden geınterpreteerd doorcomputers, verkrijgt men een nieuwe bron aan informatie.

De informatie die men steeds moet invullen bij het registreren op een website zou menmakkelijk kunnen laten verwijzen naar een online FOAF bestand. Het terugvinden vanvrienden op een sociale netwerksite waar men zich juist heeft aangemeld zou ook veelefficienter kunnen verlopen.

Beide technologieen, zowel clusteringalgoritmen als ontologien, die hier werden besprokenkunnen helpen bij het optimaliseren van sociale netwerken en het semantisch web. Verderonderzoek of het implementeren van concrete toepassingen van deze methoden behoort totmogelijke uitbreidingen.

57

Page 70: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

BIJLAGE A. NETLOG & OPENSOCIAL

A. Netlog & OpenSocial

A.0.1. Netlog

Deze scriptie werd in samenwerking met Netlog tot stand gebracht. Hierdoor werdhet mogelijk om de gekozen algoritmen uit te testen op bestaande datasets. Deprogrammeertaal voor deze scriptie is PHP aangezien de sociale netwerksite grotendeelsin deze scriptingtaal wordt ontwikkeld.

Netlog gebruikt OpenSocial als API voor het maken van sociale netwerk applicaties. Hierbijis het mogelijk allerhande informatie op te vragen via REST calls. Zo kan men informatieover de persoon, zijn vrienden of de onderlinge vriendenrelaties opvragen.

Het systeem dat hier werd voorgesteld zal echter niet alleen met OpenSocial kunnenwerken. De bedoeling was om zo generiek mogelijk te werken. Daarom hebben, zowel deimplementatie van het clusteralgoritme als het maken van de FOAF bestanden, een arraymet specifieke gegevens over personen als invoer nodig. Deze informatie kan men halenuit OpenSocial maar eventueel later ook uit andere databronnen zoals rechtstreeks uit dedatabank van Netlog zelf.

A.0.2. OpenSocial

OpenSocial is ontwikkeld door Google en bevat een aantal API’s (Application ProgrammingInterfaces) waardoor het mogelijk wordt om sociale netwerken van buitenaf te bevragen.Hierdoor kan men applicaties ontwikkelen, zowel intern als extern, die data van socialenetwerken bevat. OpenSocial gebruikt hiervoor technologieen als HTML en Javascript.

Verschillende sociale netwerk sites gebruiken reeds OpenSocial als API naar hun data.Enkele bekende voorbeelden naast Netlog zijn Friendster, MySpace, orkut, etc.

Tijdens de implementatie van deze scriptie werd een applicatie gemaakt die OpenSocial kangebruiken voor het opvragen van data op Netlog.

58

Page 71: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

BIJLAGE B. INHOUD VAN DE CD-ROM

B. Inhoud van de CD-ROM

De inhoud van de CD-ROM bevat de code (zie map ”Code”) van de geımplementeerdecomponenten. Dit bevat ondermeer volgende PHP files:

• Graph.php; De graafklasse die werd ontwikkeld voor het voorstellen van een graaf.

• AlgorithmLouvain.php; Het Louvain algoritme.

• AlgorithmGirvanNewman.php; Het Girvan-Newman algoritme.

• GeneratedDatasetTests.php; Deze klasse laat toe om artificiele benchmarks (Lanci-chinetti et al.) met hun optimale oplossing uit te lezen.

• Compare.php; Kan twee partities met elkaar vergelijken en geeft een score(percentage) terug van gelijkheid.

• OutputWriter.php; Bevat een functie die DOT uitvoer genereert voor een bepaaldegraaf zodat die visueel kan voorgesteld worden.

• Foaf.php; Bevat de functies voor het genereren van verschillende FOAF bestanden.

• class.osrest.php; Bevat methoden voor het opvragen van data via Netlog/OpenSocial.

• Netlog.php; Geschreven als test om gebruikt te worden met ”class.osrest.php” enNetlog/OpenSocial.

Verder bevat de CD-ROM ook de benchmark (Lancichinetti et al.) voor het genererenvan artificiele datasets (zie map ”Code/GeneratedDataset”). De Facebook datasets diedoorgestuurd werden, staan niet op de CD-ROM wegens privacy redenen. Enkel deFacebook dataset van de auteur is aanwezig (zie map ”Code/Facebookdata”).

De FOAF ontologie die werd uitgebreid met gebruikersnamen van Netlog werd eveneenstoegevoegd (zie map ”Ontologie”).

Verder staat de geschreven scriptie en enkele interessante referenties op de CD-ROM in PDFvorm (zie map ”Scriptie”).

59

Page 72: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

BIJLAGE B. INHOUD VAN DE CD-ROM

Als laatste werden de originele implementaties van het Louvain en Girvan-Newmanalgoritme meegeleverd (zie map ”Origineel”).

Voor het uitvoeren van de code werd gedurende deze masterproef eenApache/PHP(/MySQL) opstelling gebruikt onder Windows. Het zou echter geenprobleem mogen zijn om deze code uit te voeren op een ander besturingssysteem.

60

Page 73: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Lijst van figuren

2.1. Data Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2. Hierarchisch clusteren met bijhorend dendogram . . . . . . . . . . . . . . . . 72.3. K-means clusteren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.4. Beslissingsboom voor spamfilter . . . . . . . . . . . . . . . . . . . . . . . . . . 102.5. Artificiele Neurale Netwerken - Black Box . . . . . . . . . . . . . . . . . . . . . 112.6. De pizza ontologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.7. Vizster & Touchgraph op Facebook . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1. Systeemvoorstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.1. Simpele graaf met zeven knopen en twaalf bogen . . . . . . . . . . . . . . . . 194.2. Voorbeeld gerichte (links) en gewogen (rechts) grafen . . . . . . . . . . . . . . 194.3. Voorbeeld van volledige, dichte en ijle graaf . . . . . . . . . . . . . . . . . . . . 204.4. Voorbeeld van drie gemeenschappen in een graafstructuur . . . . . . . . . . . 214.5. Iteratie uit Girvan-Newman algoritme . . . . . . . . . . . . . . . . . . . . . . . 244.6. Louvain algoritme - Figuur geınterpreteerd uit [19] . . . . . . . . . . . . . . . 274.7. Graaf met bijhorende matrix voorstelling . . . . . . . . . . . . . . . . . . . . . 304.8. Clustering component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5.1. Architectuur van het semantisch web [24] . . . . . . . . . . . . . . . . . . . . . 325.2. Voorbeeld van een klein XML bestand . . . . . . . . . . . . . . . . . . . . . . . 335.3. Een RDF graaf met bijhorend RDF/XML schema - Figuur uit [26] . . . . . . . 345.4. Voorbeeld ontologie en instantiaties . . . . . . . . . . . . . . . . . . . . . . . . 365.5. Een klein en simpel FOAF bestand . . . . . . . . . . . . . . . . . . . . . . . . . 385.6. Een uitgebreid FOAF bestand . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.7. Het samenvoegen van FOAF bestanden met uniek gedefinieerde eigenschappen 405.8. Uitbreiding maken voor FOAF bestanden . . . . . . . . . . . . . . . . . . . . . 405.9. FOAF ontologie component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.1. Zachary’s karate club . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.2. Zachary door Louvain algoritme (links) en Girvan-Newman (rechts) . . . . . 466.3. Benchmark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476.4. Benchmark - Veranderende mu . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.5. Benchmark Snelheid - Louvain . . . . . . . . . . . . . . . . . . . . . . . . . . . 516.6. Vergelijking van de subjectieve evaluatie . . . . . . . . . . . . . . . . . . . . . 52

61

Page 74: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Bibliografie

[1] Facebook. Over facebook. http://www.facebook.com/facebook.

[2] Netlog. Over netlog. http://nl.netlog.com/go/about.

[3] R. Elmasri and S.B. Navathe. Fundamentals of database systems. Pearson Education, 2004.

[4] Ian H. Witten and Eibe Frank. Data mining: practical machine learning tools and techniques.Morgan Kaufmann, 2005.

[5] Toby Segaran. Programming Collective Intelligence. O’Reilly Media, 2007.

[6] Rui Xu and Don Wunsch. Clustering. Wiley-IEEE Press, 2008.

[7] Koen Baumers. Nieuwe facebook botst op massaal protest.http://www.standaard.be/artikel/detail.aspx?artikelid=GCI2H3JFA, Oktober 2009.

[8] J. Heer and D. Boyd. Vizster: Visualizing online social networks.http://hci.stanford.edu/jheer/projects/vizster/, 2005.

[9] M. E. Newman. Fast algorithm for detecting community structure in networks. Phys.Rev. E, 69(6):066133–+, June 2004.

[10] Santo Fortunato. Community detection in graphs. Physics reports-Review section ofphysics letters, 486(3-5):75–174, FEB 2010.

[11] M. Girvan and M. E. J. Newman. Community structure in social and biologicalnetworks. Proceedings of the National Academy of Science, 99:7821–7826, June 2002.

[12] M. E. J. Newman. Detecting community structure in networks. The European PhysicalJournal B - Condensed Matter and Complex Systems, 38:10, 2004.

[13] D. R. Ford, L. R.; Fulkerson. Maximal flow through a network. Canadian Journal ofMathematics, 8:6, 1956.

[14] Linton C. Freeman. A set of measures of centrality based on betweenness. Sociometry,40(1):35–41, 1977.

62

Page 75: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Bibliografie Bibliografie

[15] M. E. J. Newman. Scientific collaboration networks. ii. shortest paths, weightednetworks, and centrality. Phys. Rev. E, 64(1):016132, Jun 2001.

[16] M. E. J. Newman. From the cover: Modularity and community structure in networks.Proceedings of the National Academy of Science, 103:8577–8582, June 2006.

[17] Ulrik Brandes, Daniel Delling, Marco Gaertler, Robert Gorke, Martin Hoefer, ZoranNikolski, and Dorothea Wagner. On modularity - np-completeness and beyond. 2006.

[18] M. E. J. Newman and M. Girvan. Finding and evaluating community structure innetworks. Phys. Rev. E, 69(2):026113–+, February 2004.

[19] Vincent D. Blondel, Jean-Loup Guillaume, Renaud Lambiotte, and Etienne Lefebvre.Fast unfolding of communities in large networks. Journal of Statistical Mechanics: Theoryand Experiment, 2008(10):P10008+, October 2008.

[20] Leon Danon, Albert DAaz-Guilera, Jordi Duch, and Alex Arenas. Comparingcommunity structure identification. Journal of Statistical Mechanics: Theory andExperiment, 2005(09):P09008, 2005.

[21] John Davies, Dieter Fensel, and Frank van Harmelen. Towards the Semantic Web:Ontology-Driven Knowledge Management. John Wiley & Sons, January 2003.

[22] Tim Berners-Lee. Giant global graph. http://dig.csail.mit.edu/breadcrumbs/node/215.

[23] T. Berners-Lee, J. Hendler, and O. Lassila. The semantic web. Scientific American, May2001.

[24] Tim Berners-Lee. Presentation: Semantic web - xml2000.http://www.w3.org/2000/Talks/1206-xml2k-tbl/Overview.html.

[25] T. Berners-Lee, R. Fielding, and L. Masinter. Rfc 3986: Uniform resource identifier (uri):Generic syntax, 2005.

[26] Nigel Shadbolt, Tim Berners-Lee, and Wendy Hall. The semantic web revisited. IEEEIntelligent Systems, 21(3):96–101, July 2006.

[27] W3C OWL Working Group. OWL 2 Web Ontology Language: Document Overview.W3C Recommendation, 27 October 2009. Available at http://www.w3.org/TR/owl2-overview/.

[28] Pascal Hitzler, Markus Krotzsch, Bijan Parsia, Peter F. Patel-Schneider, and SebastianRudolph. OWL 2 Web Ontology Language: Primer. W3C Recommendation, 27 October2009. Available at http://www.w3.org/TR/owl2-primer/.

63

Page 76: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms

Bibliografie Bibliografie

[29] Dan Brickley and Libby Miller. The friend of a friend (foaf) project. http://www.foaf-project.org/.

[30] Shelley Powers. Practical RDF. O’Reilly, Sebastopol, CA, 2003.

[31] Edd Dumbill. Xml watch: Finding friends with xml and rdf.http://www.ibm.com/developerworks/xml/library/x-foaf.html, June 2002.

[32] Leigh Dodds. An introduction to foaf. http://www.xml.com/pub/a/2004/02/04/foaf.html, February 2004.

[33] L.I. Kuncheva and S.T. Hadjitodorov. Using diversity in cluster ensembles. In InProceedings of IEEE Int Conf on Systems, Man and Cybernetics, pages 1214–1219, 2004.

[34] Wayne W. Zachary. An information flow model for conflict and fission in small groups.Journal of Anthropological Research, 33(4):452–473, 1977.

[35] Andrea Lancichinetti, Santo Fortunato, and Filippo Radicchi. Benchmark graphs fortesting community detection algorithms. Phys. Rev. E, 78(4):046110, Oct 2008.

[36] A. Lancichinetti, S. Fortunato, and F. Radicchi. Graph benchmarks software.http://sites.google.com/site/santofortunato/inthepress2.

64

Page 77: Optimalisatie van Sociale Netwerksites via kenmerkdetectie ...lib.ugent.be/fulltxt/RUG01/001/418/574/RUG01-001418574_2010_000… · One of the best-known community detection algorithms