Analisis Graf Berarah Pada Algoritma PageRank di Mesin Pencari Muhamad Fikri Alhawarizmi - 135130091 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia 1
[email protected]
Abstrak—PageRank adalah salah satu algoritma yang digunakan dalam mesin pencari google untuk meranking hasil dari mesin pencari. Cara kerja PageRank adalah dengan menghitung jumlah dan kualitas tautan yang menuju suatu halaman tertentu dalam suatu situs untuk menentukan perkiraan kasar kualitas situs tersebut. Asumsi dasar yang digunakan yaitu semakin banyak tautan dari situs-situs lain yang menuju suatu situssite, semakin tinggi kualitas situs tersebut pada mesin pencari. Algoritma ini pertama kali diperkenalkan oleh Larry Page, salah satu pendiri mesin pencari Google untuk membantu pengurutan hasil pencarian sesuai dengan relevansi dengan kata kunci dan kualitas halaman situs hasil pencarian. Kata Kunci—PageRank, Mesin Pencari, Graf Berarah.
halaman situs x yang berisi topik tertentu dan memuat satu tautan menuju halaman situs y, ini berarti, bagi mesin pencari, kita mempertimbangkan bahwa halaman y relevan dengan topik kita. Semakin banyak halaman situs yang memiliki tautan menuju y, maka semakin besar halaman situs tersebut ‘penting’ bagi mesin pencari. Dalam kasus lain, misal halaman y memiliki tautan dari situs z popular yang memiliki otoritas, dapat dikatakan bahwa halaman situs y ‘penting’ dan memiliki otoritas dari situs z. Dalam algoritma PageRank, halaman suatu situs digambarkan sebagai suatu simpul dan tautan antarhalaman sebagai sisi dari suatu graf berarah. Banyaknya simpul pada graf sama dengan banyaknya halaman situs yang saling terkait satu sama lain.
I. PENDAHULUAN Kita hidup di era informatika dimana internet sudah menjadi bagian dari kehidupan sehari-hari. Mulai dari sekedar berselancar di dunia maya, mencari berita terbaru, atau hanya sekadar mengirimkan pesan instan ke teman kerabat. Salah satu hal fundamental dari adanya internet adalah pencarian suatu informasi yang begitu dengan cepat kitadapatkan hasilnya. Dengan bantuan mesin pencari seperti Google, AltaVista, Bing, atau Yahoo, kita akan disajikan halaman-halaman situs yang sesuai dengan kata kunci yang kita cari. Cara kerja dari masing-masing mesin pencari menggunakan teknik yang beragam, tetapi dari berbagai macam teknik tersebut, tujuan tetap sama, yaitu menampilkan hasil pencarian yang terbaik sesuai dengan kata kunci yang diberikan oleh pengguna. Penggunaan mesin pencari didasarkan pada relevansi hasil pencarian dan tingkat kualitas halaman situs memuat suatu kata kunci. Oleh karena itu, mesin pencari menggunakan berbagai macam algoritma yang kompleks untuk menampilkan hasil pencarian yang terbaik. Salah satu algoritma yang paling popular dan paling berpengaruh untuk menghitung relevansi dari suatu halaman situs adalah PageRank Algoritm. Algoritma ini digunakan pada mesin pencari Google. Sang penemu algoritma ini adalah Larry Page dan Sergey Brin dan menjadikan algoritma tersebut sebagai Google trademark pada tahun 1998. Ide dari PageRank didasari bahwa relevansi suatu halaman situs dapat dilihat dari jumlah dan kualitas dari tautan yang menuju halaman situs tersebut. Misal, kita membuat
II. LANDASAN TEORI A. Teori Graf Graf adalah salah satu cara merepresentasikan struktur diskrit dengan menggunakan simpul dan sisi yang menghubungkan sepasang simpul. Representasi Graf sering digunakan dalam berbagai disiplin ilmu, seperti pengelolaan intertautan jaringan, memetakan jalan raya antarkota, memodelkan objek tiga dimensi, hingga pemetaan DNA pada manusia.
1. Definisi Graf Graf G didefinisikan sebagai pasangan himpunan (V,E), ditulis dengan notasi G=(V,E), yang dalam hal ini V adalahhimpunan tidak-kosong dari simpul-simpul (vertices atau node) dan E adlah himpunan sisi (edges atau arcs) yang menghubungkan sepasang simpul.[1]
2. Terminologi Graf 2.1. Ketetanggaan (Adjacent) Dua buah simpul pada graf G dikatakan bertetanggaan jika keduanya terhubung langsung pada suatu sisi. Misal terdapat simpul a dan simpul b yang dihubungkan dengan suatu sisi, maka dapat dikatakan bahwa simpul a dan b saling bertetanggaan.
Makalah IF2120 Matematika Diskrit – Sem. I Tahun 2014/2015
2.2. Besisian (Incidency) Pada Graf G, G=(V,E), untuk sembarang e=(u,v), sisi e dikatakan bersisian dengan simpul u dan simpul v. 2.3. Derajat (Degree) Pada Graf tidak-berarah, derajat suatu simpul adalah jumlah sisi yang bersisian dengan simpul tersebut. Misal, suatu graf G memiliki simpul a yang bersisian dengan tiga sisi, maka dapat dikatakan bahwa simpul a berderajat tiga. Pada Graf berarah, derajat simpul u, d(u) = din(u) + dout(u). Dimana, din(u) = jumlah busur yang menuju simpul u, dout(u) = jumlah busur yang keluar dari simpul u. 2.4. Lintasan (Path) Lintasan yang memiliki panjang n dari simpul awal v0 ke simpul tujuan vn di dalam graf G adalah barisan berselang-seling antara simpul dan sisi e1,v1,e2,v2,…,vnsehingga e1=(v0,v1),e2=(v1,v2),…,en=(vn-1,vn) 1,en,vn adalah sisi-sisi dari graf G. Misal dalam graf G=(V,E) terdapat sisi e1 yang menhubungkan simpul i dengan j, sisi e2 yang menghubungkan j dengan k, dan sisi e3 yang menghubungkan k dengan l, maka dapat dikatakan bahwa dari i menuju l dapat melewati lintasan i-j-k-l. 2.5. Siklus (Cycle) Siklus adalah lintasan yang berawal dan berakhir pada simpul yang sama. Misal terdapat suatu siklus a-b-cd-a atau siklus x-y-z-x pada suatu graf. 2.6. Terhubung (Connected) Graf berarah G dikatakan terhubung jika untuksepasang simpul u dan v terdapat lintasan dari u ke v atau dari v ke u. Jika tidak, maka disebut graf takterhubung. 2.7. Upagraf (Subgraph) Misal G=(V,E) adalah sebuah graf. G1=(V1,E1) adalah upagraf dari G jika V1 V dan E1 E. Suatu graf dapat tidak memiliki upagraf atau dapat memiliki lebih dari satu upagraf. 2.8. Graf Berbobot (Weighted Graph) Graf berbobot adalah graf yang setiap sisinya diberi nilai sebagai suatu bobot.
dengan pengelompokan graf yang ditinjau dari ada tidaknya sisi ganda atau sisi kalang, berdasarkan jumlah simpul, atau berdasarkan orientasi arah pada sisi. Berikut adalah tabel 2.1 yang menggambarkan kategori-kategori pengelompokan graf tersebut.
Jenis Graf sederhana Graf ganda Graf semu Graf berarah Graf-ganda berarah
Tabel 2.1 Jenis-jenis Graf [1] Sisi Ganda Sisi gelang Sisi Diolehkan? Dibolehkan? Tak-berarah
Tidak
Tidak
Tak-berarah Tak-berarah
Ya Ya
Tidak Ya
Berarah
Tidak
Ya
Berarah
Ya
Ya
3.1. Graf Tidak-Berarah (Undirected Graph) Graf G, G=(V,E), disebut graf tidak berarah jika dan hanya jika setiap E yang menghubungkan sepasang simpul tidak memiliki orientasi arah. Jadi, (u,v) dan (v,u) sisi yang sama. 3.2. Graf Berarah (Directed Graph) Suatu Graf G, dimana G=(V,E), dikatakan graf berarah jika setiap sisi E penghubung sepasang V memiliki orientasi arah. Dalam graf berarah tautan simpul (u,v) ≠ (v,u) dimana untuk sisi yang menghubungkan simpul (u,v) memiliki u sebagai simpul asal (intitial vertex) dan v sebagai simpul terminal (terminal vertex) dan sebaliknya sisi yang menghubungkan (v,u).
Gambar 2.3.1. Contoh Graf (http://www.lurklurk.org/onlisp/fig22_11.png)
Berarah
4. Representasi Graf Pada Matriks Ketetanggaan
Gambar 2.2.1. Contoh Graf berbobot dan tidak berarah. (http://situs.cecs.pdx.edu/~sheard/course/Cs163/Graphics/grap h6.png)
3. Jenis-jenis Graf Graf dapat dibagi menjadi beberapa kategori sesuai Makalah IF2120 Matematika Diskrit – Sem. I Tahun 2014/2015
Gambar 2.4.1. Contoh Graf Berarah. (http://flylib.com/books/2/264/1/html/2/images/fig22-7.jpg)
Misal G=(V,E) adalah graf dengan n simpul, n ≥1. Matriks ketetanggaan (adjacency matriks) G adalah matriks dengan ukuran n x n yang setiap elemennya berisi 0 atau 1. Misal matriks tersebut adalah matriks A=[aij], maka nilai 0 pada elemen aij melambangkan bahwa simpul i dan simpul j tidak saling bertetanggaan, sedangkan nilai n, n ≥ 1 pada aij melambangkan simpul i dan simpul j saling bertetanggaan dan memiliki sisi sebanyak n.
B. Teori Algoritma PageRank
1. Algoritma Sederhana PageRank Pada algoritma PageRank, jumlah total dari PageRank suatu sistem tertutup adalah satu dan untuk setiap halaman situs dalam sistem tersebut memiliki nilai PageRank dengan rentang 0 sampai dengan 1. Misal terdapat empat buah halaman situs A,B,C,D yang memiliki tautan antar satu sama lain. Untuk kasus diatas karena terdapat empat buah halaman situs, maka masing-masing halaman memiliki PageRank mula-mula sebesar 0.25. Berikut adalah perhitungan nilai PageRank dari halaman situs A dalam suatu sistem tertutup,
+
+
.
Secara umum persamaan diatas dapat dituliskan menjadi PR(u) =
PR(A) =
.
Secara umum persamaan diatas dapat ditulis menjadi
PageRank adalah salah satu metode yang digunakan oleh Google untuk menentukan relevansi dan kualitas suatu halaman di dunia maya. Agoritma ini pertama kali dicetuskan oleh Larry Page yang kemudian menjadi salah satu algoritma dasar mesin pencari Google.
PR(A) =
dengan perkalian damping factor (d) dengan persamaan PageRank yang didapat sebelumnya pada Algoritma Sederhana PageRank. Operasi diatas merupakan cara mencari nilai PageRank dengan memperhatikan adanya damping factor. Berikut adalah notasi dari persamaan di atas
.
PR(u) : Nilai PageRank halaman situs U. L(u) : Jumlah tautan yang dimuat pada halaman situs U yang menuju ke luar. Bu : Himpunan semua halaman yang menuju u. PR(v) : Nilai PageRank halaman situs v.
2. Damping Factor Dalam teori PageRank apabila seorang peselancar di dunia maya yang secara acak mengklik tautan menuju suatu halaman, suatu saat akan berhenti mengklik halaman. Oleh karena itu, akan ada probabilitas pada suatu saat dimana peselancar tersebut akan melanjutkan berselancar menuju suatu halaman. Probabilitas inilah yang diseut dengan damping factor. Untuk damping factor sendiri, merujuk pada Page dan Brin maka damping factor biasanya diset sekitar nilai 0.85.[4] Nilai dari damping factor (d) yang telah diset kemudian dikurangi dengan satu dan dibagi dengan jumlah dokumen yang ada (N). Selanjutnya hasil operasi tadi ditambahkan
PR(pi) = =
+d
Dimana M(pi) adalah himpunan halaman pj, untuk j dari 1 sampai dengan N, yang memiliki tautan menuju halaman pi, L(pj) adalah jumlah tautan yang keluar dari halaman pj, dan N adalah total dari semua jumlah halaman. Untuk mempermudah perhitungan persamaan di atas maka digunakan representasi dengan adjacency matrix
R=
dimana R adalah solusi dari persamaan di atas dan PR(n) adalah nilai PageRank dari halaman n. Perlu diperhatikan bahwa persamaan pada algoritma PageRank bergantung pada langkah yang dilakukan, yang disebut langkah disini adalah langkah peselancar mengklik suatu tautan menuju halaman tertentu. Dari persamaan adjacency matriks di atas dapat dijabarkan lagi menjadi
R(t+1)=
R(t).
Fungsi l(pi,pj) merupakan fungsi yang akan bernilai 0 jika halaman pj tidak memiliki tautan menuju pi dan selain itu akan bernilai 1. Sedangkan pada notasi R(t), R(t)=PR(pi) pada langkah t. Dimana PR(pi) pada saat t=0 bernilai 1/N, sehingga nilai dari R(0)=1/N. Contoh realisasi dari komputasi nilai PageRank suatu halaman situs dapaat dilihat pada bagian lampiran.
III. ANALISIS PAGERANK DALAM GRAF BERARAH Gambar 3.1. merupakan representasi graf berarah dari tiga halaman situs yang saling terkait satu sama lain dan masing masing halaman situs memiliki sedikitnya tautan menuju halaman ke luar.
Makalah IF2120 Matematika Diskrit – Sem. I Tahun 2014/2015
Gambar 3.2. di atas merupakan visualisasi sederhana dari suatu halaman situs yang memiliki tautan di dalamnya. Dari gambar tersebut, terlihat bahwa keempat halaman saling terkait dengan tautan dan tidak ada halaman yang memuat tautan menuju dirinys sendiri.
Gambar 3.1. Pola Graf Berarah dari tiga halaman situs.
Dari gambar diatas terlihat bahwa halaman situs A memiliki tautan menuju halaman situs B dan C, halaman situs B memiliki satu tautan menuju C, dan halaman situs C memiliki tautan menuju A. Kita set juga nilai dari damping factor sebesar 0,85 sesuai rujukan yang telah ada. Kita mesti mengikut sertakan damping factor, karena dalam kenyataannya damping factor memiliki peran yang cukup besar dalam meranking relevansi suatu halaman situs tertentu. Persoalan di atas selanjutnya kita buat ke dalam bentuk persamaan yang dapat dirujuk pada bagian landasan teori, didapat
Kita dapat menerjemahkan gambar di atas dengan sebuah graf berarah yang memiliki empat node sesuai dengan jumlah halaman situs yang saling terkait. Ketika suatu halaman j memuat tautan menuju halaman j, maka selanjutnya kita tambahkan sisi berarah dari simpul i menuju simpul j. Dari visualisasi di atas kita dapat merepresentasikannya ke dalam bentuk graf berarah seperti pada gambar 3.3. di bawah ini.
PR(A) = 0,05 + 0,85 PR(C), PR(B) = 0,05 + 0,85 (PR(A) / 2),
Gambar 3.3. Representasi graf berarah suatu halaman situs.
PR(C) = 0,05 + 0,85 (PR(A) /2 + PR(B)).
Dalam Graf Berarah pada Gambar 3.3., kaitan antara simpul dan halaman situs adalah sebagai berikut
Dari ketiga persamaan diatas, kita dapat mengetahui nilai PageRank dari masing-masing halaman situs, yaitu
H1: www.aku.com,
PR(A) = 0,3877897117 PR(B) = 0,2148106275 PR(C) = 0,3973996608 Dari ketiga hasil perhitungan di atas dapat dilihat bahwa total nilai PageRank dari seluruh halaman situs A,B,C bernilai 1. Nilai PageRank tertinggi dimiliki oleh halaman situs C sebesar 0,3973996608. Hal ini dapat dilihat secara visual karena terdapat dua tautan yang menuju halaman situs C. Untuk lebih dalam mengulas bagaimana mesin pencari menggunakan algoritma PageRank pada suatu halaman situs, mari kitaambil contoh pemodelan kedua.
H2: www.kamu.com, H3: www.dia.com, H4: www.mereka.com. Selanjutnya dengan menggunakan persamaan dalam mencari nilai PageRank suatu halaman situs, kita cari nilai dari PageRank, didapat PR(H1) = 0,0375 + 0,85 ( PR(H3) + PR(H4)/2) PR(H2) = 0,0375 + 0,85 PR(H1)/3 PR(H3) = 0,0375 + 0,85 ( PR(H1)/3 + PR(H2)/2 + PR(H4)/2 ) PR(H4) = 0,0375 + 0,85 ( PR(H1)/3 + PR(H2)/2 )
Dengan melakukan kalkulasi empat persamaan dengan empat variable, didapat masing-masing nilai PageRank sebagi berikut PR(H1) = 0,3681506770 PR(H2) = 0,1418093585 PR(H3) = 0,2879616286 PR(H4) = 0,2020783359
Gambar 3.2. Visualisasi empat halaman situs yang saling terkait satu sama lain.
Dari hasil kalkulasi di atas didapat bahwa www.aku.com memiliki nilai PageRank paling tinggi dibandingkan dengan yang lain. Jika kita lihat pada jumlah tautan, terdapat 2 tautan menuju www.aku.com, yaitu dari www.dia.com dan www.mereka.com. Bandingkan dengan jumlah tautan yang menuju www.dia.com yang berjumlah tiga, terdiri atas tautan dari
Makalah IF2120 Matematika Diskrit – Sem. I Tahun 2014/2015
www.aku.com, www.kamu.com, dan www.mereka.com. Lalu mengapa nilai PageRank www.aku.com lebih tinggi dari nilai PageRank www.dia.com? Untuk menjawab pertanyaan di atas, terlebih dahulu kita harus mengetahui beberapa faktor besarnya nilai dari PageRank. Beberapa dari faktor penentu tersebut adalah banyaknya tautan menuju halaman situs tersebut,kualitas dari halaman yang memuat tautan tersebut dan perbandingan dari jumlah dan kualitas dari tautan dalam suatu halaman situs terhadap jumlah dan kualitas suatu tautan menuju halaman situs tersebut. Dari kasus di atas dapat dilihat bahwa www.aku.com memuat tiga tautan yang dapat diartikan bahwa situs ini menyuntikan nilai kepada ketiga situs tersebut, sedangkan situs www.dia.com hanya memiliki satu tautan menuju situs www.aku.com. Hal ini lah yang dapat dijadikan indikasi mengapa nilai PageRank dari situs www.aku.com lebih tinggi daripada situs www.dia.com. Analisis selanjutnya adalah apakah jumlah tautan keluar dari suatu halaman situs mempengaruhi nilai PageRank halaman tersebut jika menggunakan algoritma sederhana PageRank. Selanjutnya kita gunakan pola graf pada gambar 3.1. yang telah dimodifikasi sedemikian rupa sehingga terdapat satu tautan di B yang menuju ke A. Pola graf modifikasi ini dapat dilihat di gambar 3.4. di bawah.
Dari data di atas dapat terlihat bahwa PR(A) dan PR(B) mengalami kenaikan, sedangkan PR(C) mengalami penurunan nilai PageRank. Secara kasar, hal ini dapat dilihat dari pembagian nilai dari B menuju A dan C, sehingga nilai PR(A) bertambah dan sebaliknya pada PR(C). Lalu, mengapa PR(B) mengalami kenaikan seperti halnya pada PR(A)? Hal ini dikarenakan adanya sisi ganda antara simpul A dengan simpul B, dimana apabila nilai PR(A) mengalami kenaikan, maka begitu juga pada PR(B). Dari analisis sederhana tersebut, dapat dikatakan bahwa bertambahnya jumlah tautan keluar halaman situs, akan menambah PageRank halaman situs tersebut, namun hal ini terjadi apabila terjadinya sisi ganda akibat dari penambahan jumlah tautan tersebut.
IV. KESIMPULAN PageRank merupakan salah satu algoritma dalam mesin pencari Google. Algoritma tersebut dapat direpresentasikan dengan menggunakan graf arah dengan halaman situs sebagai simpul dan koneksi tautan antarhalaman sebagai sisi berarah. Nilai dari PageRank dapat ditentukan dari berbagai faktor, diantaranya adalah dari jumlah dan kualitas tautan keluar atau menuju halaman situs tersebut.
Gambar 3.4. Representasi graf berarah dengan B memiliki 2 tautan keluar.
Persamaan Algoritma Sederhana PageRank dari pola di gambar 3.4. adalah sebagai berikut: PR(A) = 0,05 + 0,85 PR(C+B/2), PR(B) = 0,05 + 0,85 (PR(A) / 2), PR(C) = 0,05 + 0,85 (PR(A) /2 + PR(B)/2). Dengan melakukan kalkulasi dari ketiga persamaan diatas, didapat bahwa PR(A) = 0,4327485380 PR(B) = 0,2339181287 PR(C) = 0,3333333333 Makalah IF2120 Matematika Diskrit – Sem. I Tahun 2014/2015
V. LAMPIRAN A. Implementasi Algoritma PageRank Menggunakan MATLAB/Octave Implementasi PageRank Menggunakan MATLAB/Octave.[2]
% Parameter M adjacency matriks where M_i,j represents the tautan from 'j' to 'i', such that for all 'j' sum(i, M_i,j) = 1 % Parameter d damping factor % Parameter v_quadratic_error quadratic error for v % Return v, a vector of ranks such that v_i is the i-th rank from [0, 1] function [v] = rank(M, d, v_quadratic_error) N = size(M, 2); % N is equal to half the size of M v = rand(N, 1); v = v ./ norm(v, 2); last_v = ones(N, 1) * inf; M_hat = (d .* M) + (((1 - d) / N) .* ones(N, N)); while(norm(v - last_v, 2) > v_quadratic_error) last_v = v; v = M_hat * v; v = v ./ norm(v, 2); end endfunction function [v] = rank2(M, d, v_quadratic_error) N = size(M, 2); % N is equal to half the size of M v = rand(N, 1); v = v ./ norm(v, 1); % This is now L1, not L2 last_v = ones(N, 1) * inf; M_hat = (d .* M) + (((1 - d) / N) .* ones(N, N)); while(norm(v - last_v, 2) > v_quadratic_error) last_v = v; v = M_hat * v; % removed the L2 norm of the iterated PR end endfunction
Contoh pemanggilan fungsi rank yang diimplementasikan diatas adalah sebagai berikut: M = [0 0 0 0 1 ; 0.5 0 0 0 0 ; 0.5 0 0 0 0 ; 0 1 0.5 0 0 ; 0 0 0.5 1 0]; rank(M, 0.80, 0.001)
Makalah IF2120 Matematika Diskrit – Sem. I Tahun 2014/2015
VI. UCAPAN TERIMA KASIH Alhamdulillah saya ucapkan, atas karunia dan rahmat Allah SWT sehingga saya dapat menyelesaikan makalah ini. Tak lupa saya ucapkan terima kasih kepada kedua orang tercinta yang selalu memberikan dukungan. Terima kasih juga saya ucapkan kepada para dosen Teknik Informatika ITB atas bimbingan dan pembelajaran di kelas maupun diluar kelas. Terakhir, saya ucapkan terima kasih kepada teman-teman saya yang selalu siap membantu.
REFERENSI [1] [2]
[3]
[4]
[5]
K. H. Rosen, “Discrete Mathematics and its Applications” 6th ed. New York: McGraw-Hill, 2007, pp. 589-682 Sullivan, Danny. "What Is Google PageRank? A Guide For Searchers & Situsmasters". http://searchengineland.com/what-isgoogle-PageRank-a-guide-for-searchers-situsmasters-11068 diakses pada Minggu 7 Desember 2014 pukul 09:23 WIB. Rogers, Ian (2002). “The Google PageRank Algorithm and How It Works”. http://www.sirgroane.net/google-page-rank/ diakses Minggu 7 Desember 2014 pukul 20:08 WIB. Brin, S., Page, L. (1998). "The anatomy of a large-scale hypertextual Situs search engine". http://infolab.stanford.edu/pub/papers/google.pdf diakses pada Minggu 7 Desember 2014 pukul 11:09 WIB. Bunker, Angela. “SEO 101: Top Ten PageRank Factors”. http://blog.boostability.com/seo-101-top-ten-pagerank-factors/ diakses pada 10 Desember 2014 pukul 19:14 WIB.
PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 12 Desember 2014
Muhamad Fikri Alhawarizmi - 13513009
Makalah IF2120 Matematika Diskrit – Sem. I Tahun 2014/2015