Professional Documents
Culture Documents
Zavrsni Rad - Vanda Viljanac
Zavrsni Rad - Vanda Viljanac
RANGIRANJE PRIJATELJA U
DRUTVENOJ MREI FACEBOOK
ZASNOVANO NA KORISNIKIM
PROFILIMA
Vanda Viljanac
Sadraj
Uvod ...................................................................................................................................... 1
1.
2.
3.
4.
5.
1.2.
1.3.
1.4.
1.4.1.
Amazon.......................................................................................................... 6
1.4.2.
Google ........................................................................................................... 7
2.2.
3.2.
3.3.
3.4.
4.2.
Zakljuak ............................................................................................................................. 27
Literatura ............................................................................................................................. 28
Saetak ................................................................................................................................. 29
Summary.............................................................................................................................. 30
Skraenice............................................................................................................................ 31
Uvod
Razvojem Interneta i popularizacijom drutvenih mrea virtualna prijateljstva dobivaju na
vanosti. Danas, samo jednim klikom mia stvaramo novo poznanstvo pa prolaskom
vremena postajemo povezani s preko nekoliko stotina ljudi. U ovom moru internetskih
prijateljstava teko je pratiti tko nam je slian, s kim bismo se mogli slagati, te s kim
dijelimo zajednike interese. Jedno od moguih rjeenja ovog problema predstavljeno je u
ovom zavrnom radu razvojem programske potpore koja preporuuje prijatelje.
1. Sustavi za preporuivanje
Najvanija zadaa preporuitelja je pomo korisniku pri odabiru. Korisnici su esto
suoeni s nepregledno velikom ponudom koja ih zastrauje, zbunjuje i ini nepovjerljivima
dok su prodavai suoeni s problemom marketinga i prezentacije velikog broja proizvoda.
Poto je u ljudskom procesu donoenja odluka kritina komponenta upravo primanje
savjeta od pouzdanog izvora osmiljeni su sustavi za preporuivanje koji olakavaju posao
kupcima i prodavaima.
Kada se opisana situacija primjeni na Internet moemo rei da je osnovna zadaa sustava
za preporuivanje specifina tehnika filtriranja informacija sa svrhom pronalaska i
prezentacije informacijskog predmeta (knjige, glazba, filmovi, slike, itd.) koji bi mogao
zanimati korisnika. Dakle, preporuiteljski sustav sugerira korisniku koje stavke jo nije
koristio, a mogle bi biti od njegova interesa i trebao bi ih pregledati. Ukoliko preporuitelj
uistinu prui korisne informacije kupac stvara povjerenje prema sustavu i ostaje njegov
vjeran korisnik.
predmeti koji su odgovarali korisnicima koji su im bili slini. Ako je na primjer osoba A
imala isto miljenje kao osoba B o nekom predmetu, onda je vea vjerojatnost da e osoba
A imati isto miljenje kao i osoba B o nekom drugom predmetu [3]. Personalizirano
preporuivanje koristi algoritam koji rauna slinost izmeu dva korisnika, i stvara
predvianje uzimajui prosjek svih ocjena. Taj algoritam je definiran izrazom (1) :
sim( x, y )
(r r )(r r )
(r r ) (r r )
x ,i
ieI
y ,i
ieI
x ,i
y ,i
,
2
(1)
ieI
Kada su se prethodno navedena predvianja primijenila na milijune ljudi rezultati nisu bili
dobri zbog sloenosti algoritma za potragu slinih korisnika i preduguog vremena izvedbe.
Kao alternativa smiljena je metoda podatkovnog filtriranja podataka (engl. Item based
collaborative filtering) koja umjesto traenja slinih korisnika trai predmet B koji je
slian predmetu A, a ocijenili su ga dobrim korisnici koji su ocijenili i predmet A i predmet
B.
v d w1,d , w2,d ,, w, N ,d
(2)
cos
v1 v 2
v1 v 2
(3)
Metoda
Opis
Ocijene razliitih tehnika preporuivanja
Teinska
Izmjenina
Mijeana
Kombinacija obiljeja
Kaskada
Meta-razina
sustav
preporuivanja
usavrava
drugi.
Model jednog sustava preporuivanja koristi
se kao ulaz za model drugog sustava.
1.4.1.
Amazon
Ukoliko korisnik ima vremena i eli personaliziranju preporuku moe otvoriti korisniki
raun i ispuniti anketu o svojim interesima. Na ovaj nain sustav moe mnogo lake i
tonije preporuiti predmete korisniku jer ima vie informacija o njegovim preferencijama.
1.4.2.
je izbacila
Preporuivanje zasnovano na slinosti treba skup izraza koji opisuju objekt svianja. Ovi
izrazi mogu biti izdvojeni iz Facebookovih fan stranica, iz dodatnih statusnih linija ili iz
postova na zidu.
Na Facebooku korisnici izriito objavljuju svoje interese preko profila, fan stranica,
lajkova i statusa zbog ega saznavanje njihovih preferencija ne predstavlja problem. Kada
korisnik lajka fan stranicu branda Levis to za preporuiteljski sustav automatski znai da ju
je on ocijenio kao poeljnu. Uzmimo za primjer sustav koji personalizirano preporuuje
muzeje nekog grada koje bi korisnik mogao posjetiti. Sustav uzima u obzir sve relevantne
podatke s korisnikovog profila i daje rezultat [7]. Ako korisnik XY radi u jedinici za
maritimna arheoloka istraivanja onda je vrlo vjerojatno da e ga zanimati izloba
brodskih olupina. Prikaz ovog sluaja je na slici (Slika 2.2).
10
11
Usluga ''Moji najbolji prijatelji'' (engl. my top friends) prati s kim je korisnik nedavno
imao najvie interakcija i na temelju tih informacija radi rang listu. Interakcije se odnose
na zajednike slike, posjeene dogaaje, komentare, postove, a bitna je njihova kvaliteta i
koliina. Ako korisnik uestalo posjeuje profil npr. svoje bie djevojke onda se ona
pomie prema gore na listi najboljih prijatelja i tako postaje stalna postava na njegovom
zidu novosti (engl. news feed). Naime, novosti u mrei jako je puno pa se uzima u obzir da
korisnika najvie zanimaju akcije njegovih najboljih prijatelja, te se one i prikazuju na zidu
novosti. Prvih deset prijatelja s ljestvice pojavljuju se na lijevoj strani korisnikovog profila
(Slika 2.5).
12
13
Model rangiranja prijatelja u radu takoer je izveden pomou drutvenog grafa s malim
razlikama u odnosu na Facebookov graf. U centru grafa nalazi se korisnik koji pokree
aplikaciju, a ostatak ine njegovi prijatelji s kojima je on povezan linijama koje
predstavljaju prijateljstvo. Linijama su pridijeljene odreene teine na temelju slinosti
korisnika i njegovog prijatelja, a ini ih cijeli broj vei ili jednak nuli. Na slici (Slika 3.2)
moemo vidjeti prikaz takvog grafa gdje su crvenom bojom oznaene linije, a brojevima
teine.
Slika 3.2 Drutveni graf koriten u aplikaciji rangiranja prijatelja pomou statikih podataka
Teina na liniji koja povezuje dva korisnika simbolizira njihovu slinost, a pridjeljuje se na
temelju jednostavnog algoritma. U bazi podataka za svaku osobu s kojom se usporeuje
trenutni korisnik spremljeni su podatci koji su prikazani u tablici (Tablica 3.1).
14
1071902702
ID
Vanda Viljanac
ime i prezime
Zagreb, Croatia
FER
obrazovanje
2014
name = myFERhoodie
id = 27874766221397
category = Clothing
name = Gone With The Wind
category = Movie
id = 264315306995027
name = Ericsson Nikola Tesla
Summer Camp
category = Education
id = 281014878641387
name = Street Style Seconds
category = Author
id = 180312698694826
...
Svi spremljeni podatci statiki su podatci s profila korisnika to znai da se mijenjaju vrlo
rijetko. To su korisnikovo mjesto stanovanja, ustanova obrazovanja, njegovi najdrai
filmovi, knjige, predmeti, glumci ili autori. Dva najvanija parametra za dodjeljivanje
teina su mjesto stanovanja i obrazovanje. Ako su oni jednaki za usporeivane korisnike
onda teinskoj vrijednosti donose 2 boda. Ukoliko dvije osobe ive na istom podruju i
15
studiraju na istom fakultetu znai da imaju mnogo slinosti. Ako se obama korisnicima
koje algoritam usporeuje sviaju iste stranice tj. ako imaju iste interese onda se teinska
vrijednost uveava za 1 bod (Tablica 3.2).
Teine
Mjesto stanovanja
2 boda
Obrazovanje
2 boda
Stranice
1 bod
Kada je dodjeljivanje teina zavreno osobe ija linija ima najvie teine nalaze se na vrhu
liste najboljih prijatelja. Ovakva analiza slinosti ne pokazuje s kim korisnik ima najvie
interakcija ve s kim korisnik ima najvie zajednikih interesa. Rezultati ovakve analize ne
moraju biti oekivani.
Stranice popis svih stranica koje se sviaju svim korisnicima, sadri puno vie ntorki.
16
Na
slici
(Slika
3.3)
prikazan
je
reklacijski
model
baze
podataka.
U nastavku su prikazane tablice Korisnik (Tablica 3.3) i Stranice (Tablica 3.4) s atributima
i primjeri podataka iz baze.
Korisnik
Id
Name
Location
school_name education_year
1071902702
Vanda Viljanac
Zagreb, Croatia
FER
2014
Stranice
Kid
data_id
data_name
category
1071902702
191379734236969
Jack Nicholson
Actor/director
Broj zapisa za svaku osobu u relaciji Stranice nee iznositi preko 500 u svrhu ubrzanja
izvoenja. Klju prve relacije je atribut id, dok je klju druge relacije data_id i Kid, a
strani klju je Kid. Baza podataka je izvedena u programskom paketu XAMPP u MySQL
sustavu za upravljanje bazama podataka.
17
Slika 3.4 Arhitektura aplikacije iji je dio aplikacija za statiko rangiranje prijatelja
18
4. Programska
izvedba
aplikacije
za
statiko
rangiranje prijatelja
Napravljena aplikacija je web aplikacija izvedena u programskom jeziku PHP uz pomo
baze podataka MySQL. Kljuan dio izvedbe ini Facebookov API
koji omoguuje
Nakon ovog koraka, slijedi programski razvoj i dohvaanje podataka. Za svako podruje
dohvata potrebno je od korisnika zatraiti dozvolu (npr. dozvola za dohvaanje podataka sa
zida, dozvola za itanje poruka iz inboxa). Pogledajmo primjer koji je koriten u aplikaciji
za statiko rangiranje podataka.
19
20
Kada se u bazi nalaze podatci o nekoliko osoba moemo poeti s dohvaanjem podataka iz
baze i usporeivanjem. U ispisu (Ispis 4.5) usporeujemo lokaciju i fakultet korisnika i
njegovog prijatelja, dok u ispisu (Ispis 4.6) usporeujemo korisnikove lajkove i lajkove
njegovog prijatelja.
or die(mysql_error());
{
if($info['id']!=$user['id']) //zapis nije o trenutnom korisniku
{
$korisnik[$info['id']]=0;
If(trim($info['location']==trim($user['location']['name']))
{
if(trim($info['school_name'])==trim($user['education']['0']['school']['na
me']))
{ // ako su na istom fakultetu
$korisnik[$info['id']]= $korisnik[$info['id']]+2;
}
}
21
if($info['data_id']==$user_likes['data'][$counter]['id'])
$korisnik[$key]++;
}}}
22
razliitih tipova sadraja poput slika ili flasheva. U nastavku biti e pokazan primjer
jednostavne PHP skripte koja ispisuje Hello World!
<?php
echo 'Hello World!';
?>
Ispis 4.6 Ispis teksta Hello World
23
5. Scenarij
koritenja
aplikacije
za
statiko
rangiranje prijatelja
U scenariju prikazan je primjer koritenja aplikacije za statiko rangiranje prijatelja u
drtevoj mrei Facebook koja je izraena u sklopu ovog zavrnog rada.
Ako korisnik ima velik broj prijatelja u svojoj drutvenoj mrei, a eli saznati s kim ima
najvie zajednikih interesa u podruju glazbe, filmova i literature pokrenuti e ovu
aplikaciju i dobiti odgovor na svoje pitanje.
Korisnik za poetak mora otvoriti web-preglednik i upisati internetsku adresu aplikacije ili
kliknuti na ovu poveznicu: https://apps.facebook.com/vandaviljanac/ (Slika 4.1). Kada se
aplikacija pokrene otvara se poetna stranica na kojoj korisnik moe odabrati eli li
rangiranje u Facebook ili Twitter mrei (Slika 5.1).
Odabirom rangiranja u Facebook mrei otvara se novi prozor u kojem korisnik bira eli li
statiko ili dinamiko rangiranje (Slika 5.2).
24
Odabirom statikog rangiranja otvara se prozor u kojem korisnik mora dozvoliti pristup
svojim podatcima (Slika 5.3).
Nakon to korisnik da dozvolu za pristup podatcima, aplikacija izvri svoj posao i rangira
prijatelje iz baze na nain prikazan na slici (Slika 5.4).
25
26
Zakljuak
Osnovna zadaa preporuiteljskih sustava na Internetu jest olakavanje korisnicima da
donesu odluku o odabiru
preporuiteljski sustavi integriraju u drutvene mree postoji mnogo podruja primjene jer
se drutvene mree sastoje od velike koliine informacija. U ovom radu obraena je jedna
mogunosti integracije razvojem aplikacije koja rangira prijatelje u drutvenoj mrei
Facebook te ih na taj nain i preporuuje. Iako aplikacije ove vrste ve postoje, razvijena
aplikacija u jednom pogledu razlikuje se od ostalih. Naime, najei nain rangiranja
prijatelja izvodi se na temelju koliine interakcije s korisnikom pa rezultate takve analize
korisnik moe predvidjeti. Aplikacija razvijena u ovom zavrnom radu rangira korisnikove
prijatelje na temelju njihovih zajednikih interesa pa bi ovakva analiza mogla korisniku
dati neoekivane rezultate. Upravo su razliitost i inovativnost oni faktori koji izdvajaju
aplikaciju od drugih te ju na taj nain ine dobrim materijalom za razvoj i primjenu.
Budui da su danas drutvene mree s Facebookom na vrhu internetski fenomen koji
koristi preko 900 milijuna ljudi, ulaganje u njihov razvoj potrebno je i uvijek isplativo.
27
Literatura
[1]
[2]
[3]
[4]
[5]
[6]
[7]
P. Bonhard, M.A. Sasse, 'Knowing me, knowing you using profiles and social
networking to improve recommender system, u asopisu: BT Technology Journal,
2006, Vol. 24, 84-98.
[8]
HyperArts Web Design, Facebooks new Recommendations feature for pages, June
2011, web-izvor: https://www.facebook.com/notes/hyperarts-web-design/facebooksnew-recommendations-feature-for-pages/10150267767840844
[9]
28
Saetak
Ovaj rad obrauje temu rangiranja prijatelja u drutvenoj mrei Facebook koje je
zasnovano na korisnikim profilima. Na poetku rada definirani su preporuiteljski sustavi
te su navedeni primjeri njihove primjene. Zatim je opisano preporuivanje u drutvenim
mreama s naglaskom na preporuivanje u Facebooku. Objanjeno je i rangiranje kao
podvrsta preporuivanja. Opisan je model, algoritam raunanja teina i nain izvedbe
aplikacije razvijene u svrhu ovog rada. Programska izvedba aplikacije objanjena je uz
pomo kljunih djelova koda. Na kraju dan je scenarij i uputstva za upotrebu aplikacije.
29
Summary
Ranking friends on the Facebook social network based on their user profiles
This thesis discusses ranking of friends on the Facebook social networ based on their user
profiles. In the beginning of this work the Recommender Systems are defined and the
examples of the ways they can be used are listed. Next, the process of recommending
friends in social networks is described with the special emphasis on the recommending on
Facebook. Ranking is defined as a type of recommendation. The model, algorithm that
calculates the values and the execution of the application developed for the purpose of this
work is described. Program implementation is interpreted with the most important code
snippets. In the end the script and instructions for the use of this application are given.
30
Skraenice
PHP
Hypertext Preprocessor
API
HTML
HTTP
31
Slika 6.1
U C:/ direktoriju potrebno je pronai direktorij naziva xampp, zatim unutar njega direktorij
htdocs u koji je potrebno spremiti sve *.html i *.php datoteke koje se nalaze na priloenom
CD-u. Sljedei korak jest pokretanje web-klijenta tj. preglednika u koji upiemo adresu
http://localhost/index.html. Ovim korakom aplikacija je pokrenuta.
32