PENGANTAR
Sistem Rekomendasi
Rekomendasi merupakan salah satu hal yang sangat dibutuhkan oleh banyak orang.
Kebutuhan akan rekomendasi ini didasari ketidakmampuan seseorang dalam menentukan
sebuah pilihan. Kesulitan dalam membuat pilihan ini dapat disebabkan oleh beberapa hal.
Salah satu kesulitan tersebut adalah kurangnya pengetahuan seseorang akan suatu hal,
sehingga alternatif atau pilihan yang ada hanya sedikit. Selain kurangnya pengetahuan,
kondisi informasi yang terlampau banyak membuat seseorang akan sulit menentukan pilihan
yang tepat dari sekian banyak pilihan yang tersedia.
Dalam kondisi informasi yang semakin banyak dan mudah didapatkan, juga dengan
kekurangan-kekurangan yang dimiliki oleh proses untuk mendapatkan rekomendasi dengan
cara manual (bertanya pada orang lain), maka dikembangkanlah sebuah sistem untuk
mengatasi permasalahan tersebut yang dinamakan sistem rekomendasi. Sistem rekomendasi
merupakan sebuah sistem cerdas yang mampu memberikan sejumlah rekomendasi kepada
pengguna sistem rekomendasi tersebut. Sistem ini dapat memberikan rekomendasi mengenai
suatu hal atau informasi yang bersesuaian dengan keinginan atau kebutuhan pengguna.
Sistem tersebut dapat mengenali dan mengetahui karakteristik, selera, atau kebutuhan dari
pengguna sistem dan mampu beradaptasi dengan perubahan-perubahan perilaku serta
karakteristik pengguna.
Sistem rekomendasi mulai banyak dikembangkan untuk berbagai kasus. Hal ini didasari
akan kebutuhan sistem rekomendasi yang semakin tinggi dan diharapkan dapat
diimplementasikan pada berbagai jenis kasus.
Hirarki Sistem Rekomendasi
Sistem rekomendasi terbagi menjadi beberapa tipe dan memiliki banyak metode dalam
pembangunan dan pengembangannya. Pembagian tipe dan metode sistem rekomendasi dapat
dilihat pada gambar 1.1.
Gambar 1.1 Hirarki sistem rekomendasi
Tipe sistem rekomendasi serta metode pengembangannya yang beragam membuat sistem
rekomendasi dapat diimplementasikan pada berbagai jenis kasus. Namun tipe dan metode
tersebut harus dipilih dan disesuaikan dengan kasus yang dihadapi.
Non-Personalized Recommender System
Non-personalized recommender system merupakan jenis sistem rekomendasi yang paling
dasar dan paling mudah diimplementasikan. Dalam memberikan rekomendasi sistem tidak
memperhatikan karakteristik, baik pengguna sistem maupun item yang akan
direkomendasikan. Hal ini membuat hasil rekomendasi yang diberikan tidak spesifik atau
dikhususkan untuk pengguna tertentu.
Kelebihan dari jenis ini adalah kemudahan dalam pembangunan sistem serta dapat
diimplementasikan pada berbagai kasus. Kekurangan utama dari jenis ini adalah
rekomendasi yang diberikan masih terlalu umum serta tidak mencerminkan karakteristik
atau kebutuhan pengguna sistem.
Personalized Recommender System
Personalized recommender system merupakan jenis sistem rekomendasi yang memberikan
hasil rekomendasi sesuai dengan karakteristik atau kebutuhan pengguna sistem. Sistem
terlebih dahulu mempelajari baik karakteristik pengguna maupun item yang akan
direkomendasikan. Setelah mengetahui karakteristik pengguna dan item, maka sistem akan
merekomendasikan item yang sesuai tersebut kepada pengguna.
Kelebihan jenis sistem rekomendasi ini dibanding non-personalized recommender system
adalah rekomendasinya tidak bersifat umum, melainkan spesifik untuk setiap pengguna yang
menggunakan sistem. Kekurangannya dibanding non-personalized recommender system
hanya pada proses implementasinya yang lebih rumit karena menggunakan metode tertentu
dan harus disesuaikan dengan kasus yang ditangani.
Collaborative Filtering
Collaborative filtering merupakan salah satu metode yang digunakan pada personalized
recommender system. Metode ini bekerja dengan cara membandingkan dan menghitung
kemiripan hubungan baik antar sesama pengguna (user-to-user) maupun antar item (item-to-
item). Ide dasar yang mengawali teknik ini adalah pemikiran bahwa seandainya seorang
pengguna A menyukai item X dan pengguna A dan pengguna B memiliki karakteristik yang
sama maka diasumsikan pengguna B akan menyukai item X (user-to-user method).
Collaborative filtering mempunyai tiga teknik dalam menghasilkan sebuah rekomendasi,
yaitu Memory-Based CF, Model-Based CF, dan Memory-Model Hybrid CF.
Memory-based CF merupakan teknik dari collaborative filtering yang bekerja dengan cara
menghitung similarity atau kemiripan antara user dengan user atau antara item dengan item.
Memory-based CF secara langsung menghitung similarity tersebut berdasarkan historical
data yang ada. Hasil perhitungan similarity tersebut yang menjadi dasar bagi sistem untuk
menentukan karakteristik user sehingga sistem dapat memberikan rekomendasi yang
bersesuaian dengan karakteristik user tersebut. Kelebihan teknik ini adalah adaptasi
terhadap historical data yang baru ditambahkan. Data baru tersebut dapat langsung
diikutsertakan dalam perhitungan dalam menghasilkan rekomendasi. Selain itu teknik ini
mudah untuk diimplementasikan. Kekurangan teknik ini adalah waktu yang dibutuhkan
untuk menghasilkan rekomendasi cukup lama. Hal ini disebabkan perhitungan melibatkan
seluruh historical data yang ada. Selain itu data sparsity problem merupakan masalah utama
dari memory-based CF.
Berikut ini adalah langkah-langkah umum dari teknik memory based collaborative filtering
:
1. User Similarity Measurement
Pada tahapan ini, sistem akan menghitung kemiripan seorang pengguna yang akan diberikan
rekomendasi (active user) dengan seluruh pengguna lain yang terdapat pada sistem. Dalam
menghitung kemiripan pengguna, sistem menggunakan data-data rating yang diberikan oleh
pengguna terhadap sejumlah image. Rumus yang digunakan untuk menghitung kemiripan
pengguna adalah Pearsons Correlation Coefficient (PCC)
, ,
2 2
, ,
( )( )
( , )
( ) ( )
a f a b f b
f items
a f a b f b
f items f items
N N N N
r a b
N N N N
Keterangan :
Na, f = nilai yang diberikan user a terhadap item f
Na = nilai rata-rata yang diberikan user a terhadap seluruh item f
Items = populasi item yang dinilai oleh user a dan user b (beririsan)
Nilai yang dihasilkan akan memiliki rentang antara -1 sampai 1. Semakin mendekati 1 maka
hubungan antara kedua pengguna adalah semakin mirip. Sebaliknya semakin mendekati -1
maka karakteristik dan minat kedua pengguna semakin berlawanan. Namun semakin
mendekati 0, maka kedua pengguna dapat dikatakan tidak memiliki hubungan atau korelasi.
2. Neighborhood Selection
Tahapan kedua adalah dengan memisahkan antara pengguna-pengguna yang memiliki
kemiripan dengan active user dengan yang tidak memiliki kemiripan. Pemisahan dan
pengelompokan user ini dapat dilakukan dengan beberapa teknik antara lain K-Means,
penentuan batas minimal nilai kemiripan dan lain-lain.
.....(1)
3. Prediction Generation
Setelah menentukan pengguna-pengguna yang tergabung pada neighborhood, maka langkah
terakhir adalah dengan memprediksikan rating yang akan diberikan oleh active user tersebut
terhadap sejumlah image tertentu. Perhitungan menggunakan Resnicks algorithm.
, ,
,
,
( )( )
| |
a x x i x
x Na i a
a x
x N
w r r
P rw
Keterangan :
Pai = Prediksi nilai untuk active user a terhadap item i
Wa,x = Nilai kemiripan antara active user a dengan pengguna x
rx,i = Nilai yang diberikan pengguna x terhadap item i
ra = Nilai rata-rata yang diberikan oleh active user a
rx = Nilai rata-rata yang diberikan oleh user x
N = Jumlah pengguna yang tergabung didalam neighborhood yang me-
rating item i.
model-based CF merupakan teknik lain dari collaborative filtering. Teknik ini bekerja
dengan cara menggunakan sejumlah historical data sebagai training set data yang akan
dipelajari oleh sistem untuk membangun sebuah model. Model tersebut akan
mendeskripsikan karakteristik tertentu sehingga membuat sistem rekomendasi mampu
memprediksikan rekomendasi yang sesuai dengan karakteristik pengguna yang tergabung
pada model tertentu. Kelebihan model-based dibandingkan dengan memory-based adalah
waktu yang dibutuhkan untuk menghasilkan rekomendasi lebih singkat serta menanggulangi
data sparsity lebih baik. Kecepatan dan penanganan data sparsity yang lebih baik dapat
dicapai karena model-based CF menggunakan model dalam menentukan sebuah
karakteristik, bukan keseluruhan data seperti pada memory-based CF. Namun
kekurangannya adalah biaya dan tingkat kerumitan menjadi tinggi saat proses pembangunan
model. Selain itu terkadang beberapa informasi penting dapat hilang serta beberapa model
yang dihasilkan tidak mendeskripsikan karakteristik tertentu. Beberapa algoritma yang
digunakan dalam pembangunan model dalam metode model-based collaborative filtering
antara lain bayesian networks, clustering models, latent semantic models.
.....(2)
Memory-model hybrid CF merupakan gabungan dari dua teknik yang telah dijelaskan
sebelumnya. Penggabungan teknik ini dilakukan dengan tujuan untuk menutupi kekurangan
dari masing teknik. Namun teknik hybrid ini akan menambah kerumitan dan kompleksitas
sistem rekomendasi itu sendiri.
Social Tagging Systems
Tagging telah dipakai cukup lama, meskipun dikenal dengan istilah lain seperti metadata,
kategorisasi, label, dan sebagainya. Tagging adalah proses melampirkan kata-kata natural
language sebagai metadata untuk menggambarkan beberapa resource seperti image, foto,
buku, dll. Dalam penelitian ini, kata resource akan sering penulis gunakan. Resource yang
dimaksud oleh penulis disini adalah image. Kosakata Tagging biasanya tidak terkontrol,
dimana pengguna sendiri dapat memutuskan apa kata atau kombinasi kata-kata yang tepat.
Penggunaan utama tagging adalah untuk tujuan search, dimana pengguna dapat mencari tag
dan resource dengan tag dilabeli akan kembali ke pengguna. Pengguna yang menambahkan
tag dapat menggunakan tag untuk retriaval nantinya. Bagi pengguna lain, tag berfungsi
sebagai cara untuk menemukan resource baru dengan mencari apapun tag mereka inginkan.
Dalam beberapa tahun terakhir, munculnya Social Tagging Systems telah membawa tagging
kembali menjadi pusat perhatian. Saat ini, ada beberapa social tagging system online yang
populer dan merupakan subjek penelitian yang berkelanjutan, sistem ini berkisar dari
bookmark website seperti del.icio.us, berbagi foto , pencarian makalah penelitian , bahkan
people rating. Semua situs-situs tersebut menggunakan tagging untuk berbagai tujuan, tetapi
di samping itu, mereka fokus pada aspek tagging social networking untuk meningkatkan
pengalaman bagi pengguna akhir. Namun, dalam bentuknya yang sekarang, tag biasanya
digunakan untuk tag searching, pencocokan profil pengguna. Seperti disebutkan
sebelumnya, tag memberikan petunjuk mengapa pengguna menyukai sesuatu. Karena itu,
penggunaan serupa pada jejaring sosial, social tagging system memberikan pilihan ideal
untuk kombinasi dengan sistem CF.
TagBased Contextual Collaborative Filtering
Tag-Based Contextual Collaborative Filtering (TCCF) yang selanjutnya akan sering penulis
singkat dengan Tag-Based CCF adalah kombinasi dari sistem Collaborative Filtering
tradisional dan Social Tagging System yang memungkinkan untuk rekomendasi resource
dengan akurat yang mempertimbangkan konteks preferensi. Suatu contoh sistem
ditunjukkan pada gambar 1.1. Dalam kasus ini, pengguna melampirkan tag ke resource yang
mereka suka dan ingin diakses kembali nantinya. Resource mungkin apapun termasuk
musik, video, dan lain-lain. Tetapi pada penelitian ini, resource yang penulis maksud adalah
image.
1.1 Contextual CF Model
Suatu contoh sistem yang akan menggunakan model TCCF akan mengikuti proses berikut:
Pengguna mengevaluasi sebuah resource seperti website, image.
Jika pengguna menyukai resource tersebut, mereka akan bookmark dengan tag yang
mereka inginkan. Tag ini menyatakan apa makna resource tersebut kepada mereka.
Sistem mengkalkulasi kesamaan antar pengguna berdasarkan bookmark dan tag
tersebut.
Kemudian, sistem mengkalkulasi prediksi skor untuk unrated recource tersebut
berdasarkan kesamaan pengguna yang dikalkulasi di langkah sebelumnya dan
bookmark pengguna lainnya.
Sistem merekomendasikan resource baru kepada pengguna berdasarkan langkah 3 dan
4.
Tidak seperti model tradisional Collaborative Filtering yang menggunakan rating numerik,
model ini menggunakan tag-based TCCF sebagai indikator bahwa seorang pengguna
menyukai sesuatu: jika pengguna bookmark sesuatu, sistem melihatnya sebagai sesuatu yang
pengguna suka. Dengan demikian, dalam pengertian ini, itu adalah model CF yang sederhana
karena menggunakan rating boolean sebagai lawan skala numerik seperti dalam sistem CF
kebanyakan. Skala dimaksudkan akan dari nol sampai satu. Bookmark akan di rating tinggi
atau satu, dan tidak adanya bookmark akan dianalogikan dengan rating non-atau nol.
Namun, tag juga menyediakan faktor pembeda utama dari CF traditional system tag yang
melekat pada resource yang dapat dilihat sebagai konteks di mana pengguna menyukai
resource tersebut. Biasanya pengguna akan menggunakan tag untuk menggambarkan
resource sebagai tag mereka sendiri, dan dalam kebanyakan kasus, itu akan menjadi
'konteks'. Dari asumsi ini, kita membuat penggabungan menggunakan konteks ini untuk
memodifikasi model CF.
Karena itu, kini diperkenalkan dua submodel di mana model CF tradisional dimodifikasi
berdasarkan user similarity dan resource recommendation stage.
Contextual CF User Simalirity Model:
1.3 Contextual CF User Simalirity Model
Model ini berfokus pada pertimbangan konteks saat menghitung kesamaan antara user dan
user lainnya. Dalam CF tradisional, peringkat kesamaan didasarkan pada peringkat numerik
seperti ditunjukkan pada tabel berikut:
1 2 3 4
A 1 - - -
B 1 1 1 -
C - - 1 -
D - - 1 1
Tabel 1.1 Rating CF Tradisional
dimana A, B, C, D adalah user dan 1-4 adalah resource. Untuk mudahnya ketika
membandingkan ini dengan model baru , satu sesuai dengan rating tinggi dan peringkat
negatif atau rendah telah dihilangkan. Selain itu, non-rating dilambangkan oleh '-'. User
similarity adalah kosinus similarity vektor dari rating score user untuk setiap resource :
A B C D
A - 0.58 - -
B 0.58 - 0.58 0.41
C 0 0.58 - 0.71
D - 0.41 0.71 -
Tabel 1.2 CF User Similarity Score Tradisional
Jika user memiliki rating cukup mirip atas resource yang sama, sistem akan memberikan
mereka high similarity rating. Jika user memiliki rating yang berbeda, atau tidak menilai
resource yang sama, sistem tidak memberikan high similarity rating. Namun, hanya
menggunakan angka tidak dapat memberitahu, seperti mengapa user menyukai sesuatu, atau
dengan kata lain, dalam konteks apa resource disukai. Tag, bagaimanapun, memberikan
wawasan lebih tentang mengapa user mungkin menyukainya.
Pertimbangkan dua user men-tag sebuah blog tentang politik. Salah satu user yang memiliki
pandangan yang sejalan dengan blog mungkin menandai resource 'informatif' atau
'berwawasan', namun, user lain yang memiliki pandangan tidak setuju mungkin menandai
blog sebagai 'lucu' atau 'hiburan'. Seperti yang bisa dilihat di sini, user dapat mengikuti blog
yang sama, tetapi mengikutinya untuk alasan yang berbeda.
Dengan demikian, model pertama memodifikasi perhitungan user similarity. Pengguna
kesamaan antara user A dan user B dihitung dengan menggunakan persamaan berikut:
(, ) =
{(, ) + }
= ----- 5
dimana n adalah jumlah resource yang ditandai antara user A dan B. Umumnya tag berarti
baik pengguna bookmark resource yang sama, mungkin dengan berbeda vektor tag. Jadi:
(, ) = .
|||| -------6
dimana adalah tag vektor bahwa user A men-tag resource k dan adalah tag
vektor bahwa user B men-tag resource k. Kesamaan dari dua vektor tag tersebut dihitung
melalui cosine similarity.
Pada dasarnya, dalam model user similarity, cosine similarity vektor tag dari semua
resource yang ditag antara user A dan user B dirata-ratakan. Selain itu, satu akan
ditambahkan ke nilai cosine similarity untuk memberikan nilai ke resource yang ditag.
Terlepas dari ketidakcocokan tag set, resource paling umum umum ditandai lebih berharga
daripada tidak ada sama sekali.
Sebagai contoh, untuk sistem yang ditunjukkan pada gambar 1.3, kita dapat menghitung
similarity user B dan C. Karena user B dan user C hanya memiliki satu tag link-resource
yaitu nomor 3 , jadi n = 1 dan similarity score mereka didasarkan sepenuhnya pada resource
3 ini.
Vektor tag user B dan C di resource 3 akan menjadi:
bush tax reform
1 1 1
1 1 0
Tabel 1.3 User Similarity user B dan C
Cosine Similarity antar 2 vektor tag adalah 0.5 sehingga (, ) = 0.75. Hasil dari
user similarity dari semua sistem pada gambar 1.3 adalah :
A B C D
A - 0.75 0 0
B 0.75 - 0.91 0.5
C 0 0.91 - 0.5
D 0 0.5 0.5 -
Tabel 1.4 Contextual CF User Similarity Score
Dengan model user similarity baru, konteks dipertimbangkan ketika menghitung user
similarity. User yang memiliki bookmark resource yang sama masih dianggap similiar,
namun similarity lebih tinggi jika menggunakan tag untuk menggambarkan resource
tersebut juga sama. Dengan demikian, Kecocokan konteks didorong lebih tinggi daripada
ketika konteks tidak cocok.
Namun, kelemahan dari model ini masih ada. Dalam sistem ini, hanya ada pilihan untuk
bookmark atau tidak. Dengan demikian, sebagian besar user hanya akan bookmark resource
jika dan hanya jika mereka menyukai resource tersebut. Namun, kurangnya bookmark tidak
selalu berarti tidak suka, tetapi mungkin saja mereka tidak evaluasi resource tersebut.
Mengingat hal ini, model ini hanya tergantung pada resource yang umumnya ditag, ini dapat
menjadi masalah ketika link ditag sedikit. Masalah ini umum untuk sistem berbasis CF lain
juga.
Selain itu, ada isu-isu natural language yang ada pada situs tagging. Isu seperti sinonim dan
polisemi mungkin harus diperhitungkan dan dalam hal bahwa metode untuk
menghubungkan kata-kata yang secara semantik terkait harus dipertimbangkan ketika
menerapkan model ini. Selain itu, ada masalah apakah user yang berbeda akan menggunakan
tag yang sama tujuan kategorisasi, penamaan, dll dan apakah tujuan tersebut akan cocok
antara user.
Contextual CF Score Prediction Model
1.4 Contextual CF Score Prediction Model
Model ini memodifikasi perhitungan score prediction. Dalam CF tradisional, setelah user
similarity telah dihitung, score prediction untuk beberapa user A untuk resource x yang tidak
dievaluasi dihitung sebagai berikut:
(, ) = {(,)(,)}
=
(,)=
------- 7
dimana n adalah jumlah user lain. Pada dasarnya, nilai semua user lain, ditukur oleh
similarity mereka, di rata-ratakan untuk memprediksi skor A untuk x.
Misalnya, untuk peringkat data yang diberikan dalam tabel 1.1, menghitung score prediksi
user B untuk resource 4 akan menjadi 0,26. Sisa prediksi akan seperti yang ditunjukkan
dalam tabel 1.5.
1 2 3 4
A - 1.0 1.0 0.0
B - - - 0.26
C 0.45 0.45 - 0.55
D 0.37 0.37 - -
Tabel 1.5 CF Score Prediction Tradisional
CF tradisional bekerja dengan baik ketika merekomendasikan resource dalam domain yang
sama seperti hanya dalam image komedi atau hanya video sepak bola. Namun, dalam kasus
bookmark website dan internet, banyak domain dan banyak konteks dilingkupi. Ketika user
mungkin memiliki preferensi yang sama untuk satu konteks, preferensi mungkin tidak
terbawa ke yang lain: Sebagai contoh, meskipun dua user mungkin suka membaca buku
Harry Potter, ini tidak berarti bahwa jika salah satu sepak bola suka, user lain akan juga.
Context Filtering diperlukan untuk menghasilkan rekomendasi yang lebih akurat.
Dengan demikian, model ini berfokus pada mempertimbangkan konteks ketika memprediksi
score untuk seorang user. Ini terjadi setelah user similarity telah dihitung. Setelah ini
dilakukan, prediksi score resource dilakukan. Alih-alih memprediksi skor untuk sumber
daya hanya berdasarkan score rata-rata seperti yang ditunjukkan dalam persamaan 7, model
ini mempertimbangkan jika konteks resource serupa. Dengan demikian, Contextual CF
Score Prediction resource x untuk user A seperti yang ditunjukkan dalam persamaan 8.
(, ) =
{(,)((( ,), ,( ,))+)}
=
(,)=
---
8
Dalam persamaan ini, adalah user di set dari semua user dengan score similarity dengan
user A di atas similarity threshold tertentu dan n adalah jumlah user di set ini.
Juga di (( , ), , ( , )) , m adalah jumlah resource
yang di tag umumnya yang user punya dengan user A. Bagian ini mengembalikan tag
vektor dari resource umum yang ditag yang memiliki similarity tertinggi dengan tag vektor
resource target . Hal ini dilakukan dalam rangka untuk hanya menggunakan konteks
yang paling tepat (tag vector similarity tertinggi) untuk score prediction.
Jelasnya, jika user tidak memiliki resource yang biasanya ditag dengan user A, score
maks akan menjadi nol. Sebuah nilai satu ditambahkan ke max untuk memberikan nilai
terhadap keberadaan resource yang ditag, terlepas dari similarity tag vektor. Terakhir,
similarity tag vektor dihitung seperti yang ditunjukkan dalam persamaan 6.
Secara keseluruhan, model baru ini ditunjukkan dalam fungsi persamaan 8 yang sama
dengan tradisional CF score prediction model yang ditunjukkan dalam persamaan 7, kecuali
bahwa kesamaan vektor tag dirata-ratakan sebagai gantinya.
Dalam kasus gambar 1.4, kita ingin memprediksi score user C untuk resource 2, resource di
mana ia belum ditag. Menggunakan nilai CCF user similarity score ditunjukkan dalam tabel
1.4, user B memiliki similatiry yang tinggi dengan user C. Untuk user B, hanya resource 3
ditandai sama dengan user C. Dengan demikian, vektor tag user B yang melekat resource
2 dan 3 adalah sebagai berikut:
bush tax reform irag
1 1 1 0
1 0 0 1
Oleh karena itu (,) = 0,41. Jika user B punya resource yang ditag lebih
banyak dengan user C, similarity pada tag vector , dan juga akan dihitung dan
similarity tertinggi yang digunakan dalam perhitungan score.
Mengingat similarity user B ke C adalah 0,91, prediction score akhir adalah: score(C, 2) =
0,71. Sebaliknya, katakanlah kita ingin memprediksi score user C untuk resource 1. Karena
similarity user B untuk user C tinggi, tag set benar-benar berbeda dari tag set
resource yang ditag B , yang berarti bahwa konteks preferensi berbeda, dan akibatnya, score
prediction akan lebih rendah: score (C, 1) = 0,5. Resource 2 akan direkomendasikan atas
resource 1. Sebelumnya, resource 1 dan resource 2 memiliki score yang sama seperti yang
ditunjukkan dalam tabel 1.5. Menggunakan model ini, jika tag resource target yang sesuai
dengan tag yang digunakan pada resource yang ditandai, maka nilai yang lebih tinggi. Jika
tidak, skor akan lebih rendah.
Melalui ini, konteks akan dipertimbangkan ketika membuat score prediction. Sistem seperti
ini akan lebih berhasil pada rekomendasi domain yang lebih besar. Hal ini akan berlaku baik
ke situs bookmark situs seperti del.icio.us dan sebagainya. Manfaat lain adalah bahwa tidak
seperti perhitungan CCF user similarity, model ini tidak berpengaruh banyak dari masalah
natural language. Karena pencocokan tag dilakukan hanya dalam ruang tag seorang user
tunggal, lebih mungkin bahwa seorang user akan menggunakan tag yang sama ketika
menggambarkan resource lain. Selain itu, mereka kemungkinan besar akan menggunakan
struktur organisasi tag yang sama. Oleh karena itu, tidak perlu menggunakan pencocokan
semantik antara kata-kata.
Sebagai rekomendasi, hal tersebut tergantung pada tag yang cocok, jika tidak ada
penggunaan kembali tag untuk user, sistem mungkin memiliki masalah menghasilkan
rekomendasi. Dalam kasus ini, threshold batas untuk rekomendasi itu harus diubah.
Permasalahan Umum Sistem Rekomendasi
Sistem rekomendasi memiliki beberapa kondisi yang akan menimbulkan masalah bagi
sistem dalam memberikan rekomendasi. Berikut beberapa permasalahan umum yang sering
dihadapi oleh sistem rekomendasi.
1. Cold Start
Cold start merupakan kondisi suatu obyek pada sistem rekomendasi dimana informasi
tentang obyek tersebut kurang memadai atau mencukupi. Kurangnya informasi tersebut
mengakibatkan menurunnya performa dari sebuah sistem rekomendasi. Cold strart dapat
terjadi pada baik pada item maupun pada user. User cold start merupakan kondisi yang
sering dijumpai pada sistem rekomendasi. Keadaan ini pada umumnya terjadi ketika seorang
user baru ditambahkan. User tersebut belum memiliki cukup historical data (seperti data
rating) sehingga sistem belum mengetahui karakteristik user tersebut dan berakibat pada
sulitnya memberikan rekomendasi yang tepat. Item cold start pada umumnya terjadi saat
terdapat item yang baru ditambahkan. Item tersebut belum memiliki historical data (seperti
pembelian atau rating) sehingga sistem belum mengetahui karakteristik item tersebut dan
pada akhirnya sistem sulit untuk merekomendasikan item baru tersebut kepada pengguna.
Namun beberapa metode sistem rekomendasi tidak bermasalah dengan item cold start.
Metode content-based dapat mengatasi masalah ini karena melalui deskripsi item tersebut,
maka karakteristik item baru tersebut dapat diketahui dan dapat langsung direkomendasikan.
2. Data Sparsity
Data sparsity merupakan kondisi dimana historical data yang dimiliki sistem masih sedikit
atau jika data-data tersebut dimodelkan menjadi sebuah matriks maka matriks tersebut masih
sangat renggang. Data sparsity merupakan permasalahan besar bagi performa sistem
rekomendasi. Kondisi historical data yang renggang akan menyulitkan sistem dalam
membangun karakteristik atau ciri dari user maupun item, sehingga dapat dipastikan
rekomendasi yang diberikan memiliki tingkat akurasi yang rendah.
3. Overspecialization
Overspecialization merupakan kondisi, dimana hasil rekomendasi dihasilkan yang hanya
terbatas pada suatu kriteria atau hanya terbatas pada item yang telah telah diketahui
sebelumnya. Kondisi ini membuat item yang baru ditambahkan akan sulit untuk
direkomendasikan. Permasalahan tidak hanya pada item yang baru namun juga pada item
yang memilki karakteristik. Overspecialization membuat hasil rekomendasi hanya terbatas
pada kategori tertentu (sering terjadi pada metode content-based).
4. Scalability
Scalability merupakan salah satu permasalahan yang perlu diperhatikan dalam membangun
sebuah sistem rekomendasi. Sebuah sistem rekomendasi yang memiliki jumlah data besar
baik user, item maupun historical data (seperti sistem rekomendasi image) sering
menjumpai masalah skalabilitas. Permasalahan yang sering dijumpai adalah waktu untuk
menghasilkan rekomendasi. Ukuran data yang besar ditambah dengan pemilihan metode
yang kurang tepat akan berakibat pada lamanya waktu yang dibutuhkan untuk memberikan
rekomendasi kepada penggguna. Maka dari itu harus dipilih metode yang tepat dan sesuai
dengan kasus sistem rekomendasi agar terhindar dari scalability problem.
ANALISIS DAN PERANCANGAN SISTEM
Karakteristik dan Metode Sistem Rekomendasi Image
Pemilihan metode yang akan digunakan dalam membangun sebuah sistem rekomendasi
image akan dipengaruhi oleh karakteristik yang terdapat pada sebuah image serta
karakteristik dari sistem rekomendasi yang akan dibangun. Secara umum karakteristik
image dan sistem rekomendasi image adalah sebagai berikut :
1. Sebuah image memiliki sejumlah informasi dasar mengenai image tersebut. informasi
tersebut antara lain nama file Image, Genre, Form, Camera and photography
equipment, Photographic processing, Photographic techniques, General photography
concepts dan lain-lain.
2. Pengguna sistem rekomendasi memiliki sejumlah informasi pribadi. Informasi tersebut
antara lain nama, jenis kelamin, umur, pekerjaan, pendidikan, asal negara dan lain-lain.
3. Skalabilitas data sangat besar baik data image, data pengguna, maupun historical data
seperti data rating pengguna terhadap image.
4. Frekuensi penambahan dan perubahan data sangat tinggi. Image baru dan user baru
yang ditambahkan pada sistem sangat sering terjadi. Hal tersebut juga mendorong
tingginya frekuensi penambahan data rating yang diberikan oleh user.
5. User dan image baru pada umumnya belum cukup memiliki data rating yang berguna
untuk menarik informasi karakteristik dari user dan image tersebut.
6. Secara umum user tidak suka untuk memberikan informasi pribadi yang dimilikinya
kepada sistem.
Berdasarkan metode-metode sistem rekomendasi yang telah dijelaskan pada bagian
sebelumnya serta karakteristik dari sebuah sistem rekomendasi image yang telah dijabarkan
diatas, maka metode sistem rekomendasi yang dipilih penulis adalah metode tag-based
contextual collaborative filtering.
Alasan pertama dalam pemilihan metode-metode tersebut didasari pada salah satu kelebihan
dari metode collaborative filtering yaitu kemampuannya dalam beradaptasi dengan kasus
yang memiliki tingkat frekuensi perubahan data yang tinggi. Kasus rekomendasi image
merupakan salah satu kasus yang memiliki frekuensi perubahan data yang tinggi. Alasan
kedua adalah metode collaborative filtering (user-to-user) memiliki kesamaan cara kerja
dengan cara rekomendasi manual yang sering dilakukan seseorang, yaitu dengan
menemukan orang lain yang memiliki kemiripan karakteristik dan selera kemudian
mendapatkan rekomendasi image dari orang tersebut. Sedangkan tujuan awal digunakannya
metode content based filtering adalah untuk menutupi kekurangan metode collaborative
filtering dalam menangani item cold start problem (item atau image yang belum cukup
memiliki data rating). Dengan cara kerjanya yang membandingkan deskripsi dari atribut-
atribut image, maka content based filtering dapat langsung merekomendasikan beberapa
image yang baru ditambahkan kedalam sistem, dengan catatan image lain yang memiliki
nilai atribut yang sama sudah sering di-rating dengan nilai baik oleh user sistem. Sedangkan
penggunaan tag-based adalah, karena bisa saja pengguna tidak menyukai image yang sama,
tetapi karena alasan yang berbeda. Sehingga diperlukan tag-based, agar hasil dari filtering
dapat lebih baik.
Sistem Rekomendasi Image menggunakan Tag-based Contextual Collaborative
Modelling
Pada sub bab ini, dijelaskan penerapan metode traditional CF dan tag-based CCF. Langkah-
langkah untuk mendapatkan score prediction seorang user akan diterangkan secara detail.
Setelah itu, kedua metode tersebut akan dibandingkan untuk menunjukkan bahwa tag-based
CCF dapat dengan baik menangani rekomendasi image.
Sistem Rekomendasi Image dengan Traditional Collaborative filtering
Pengertian umum
Pada bagian sebelumnya telah dijelaskan mengenai cara kerja metode traditional
collaborative filtering secara umum serta alasan dipilihnya metode collaborative filtering
pada pembangunan sistem rekomendasi image ini. Berdasarkan cara kerja dan alasan
tersebut, penulis memfokuskan untuk menggunakan teknik memory based pada metode
collaborative filtering yang telah dipilih sebelumnya. Memory based dipilih karena
kemampuan adaptasinya terhadap penambahan data baru dengan tingkat frekuensi tinggi.
Kekurangan teknik memory based dalam hal kebutuhan waktu dan kebutuhan memory
komputer yang besar dalam komputasi dapat dioptimasi dengan menggunakan teknik pre-
computation serta neighborhood sampling and selection. Selanjutnya penulis akan
menggunakan Traditional CF untuk menuliskan Traditional Collaborative filtering.
Alur kerja
Secara umum, metode memory based CF memiliki beberapa langkah dalam menghasilkan
sebuah rekomendasi. Langkah-langkah tersebut antara lain user similarity measurement,
neighborhood selection, dan prediction generation.
Agar lebih mudah dipahami, maka gambar 3.1 akan memberi gambaran tentang langkah-
langkah dalam menghasilkan rekomendasi image dengan metode traditional CF.
Gambar 3.1 Flowhchart Rekomendasi sistem menggunakan Traditional CF
Berikut adalah penjelasan dari setiap langkah-langkah pada gambar 3.1.
1. Check Neighborhood Model Dari User
Langkah pertama adalah dengan melakukan pengecekan terhadap informasi dari active user.
Harus diketahui apakah active user tersebut telah memiliki neighborhood model atau belum.
Hasil pengecekan akan menentukan proses selanjutnya yang akan dilalui.
2. Check Perubahan Rating User
Jika active user diketahui telah memiliki neighborhood model, maka selanjutnya akan
diperiksa apakah active user tersebut telah melakukan perubahan rating data yang dimiliki
sebelumnya. Jika perubahan rating data telah melebihi batas minimal untuk melakukan
update terhadap rekomendasi, maka langkah berikutnya akan dilanjutkan kepada proses
update rekomendasi.
3. Hitung User Similarity
Pada proses ini, sistem akan menghitung kemiripan seorang pengguna yang akan diberikan
rekomendasi (active user) dengan seluruh pengguna lain yang terdapat pada sistem. Dalam
menghitung kemiripan user, sistem menggunakan data-data rating yang diberikan oleh
pengguna terhadap sejumlah image. Rumus yang digunakan untuk menghitung kemiripan
pengguna adalah menggunakan Cosine Similarity.
4. Ciptakan Neighborhood Model User
Proses selanjutnya adalah dengan mengelompokkan user sistem menjadi dua kelompok.
Kelompok pertama adalah user yang memiliki kemiripan dengan active user, sedangkan
kelompok kedua adalah yang tidak memiliki kemiripan dengan active user. Secara umum
untuk memisahkan kelompok user adalah dengan menentukan batas minimal nilai kemiripan
bagi pengguna yang tergabung dalam neighborhood dari active user. Pada pembuatan sistem
rekomendasi film ini, batas awal yang digunakan adalah similarity yang bernilai positif.
Selanjutnya akan ditentukan jumlah maksimal neighborhood user dari seorang active user.
Proses tersebut dilakukan agar neighborhood user yang dihasilkan tidak telalu banyak
sehingga membuat proses selanjutnya tidak membutuhkan waktu dan memory yang
berlebihan. Setelah menyelesaikan tahapan ini, maka akan dihasilkan sebuah model user
yang disebut neighborhood model. Neighborhood model merupakan daftar neighbor dari
seorang user. Model akan menyimpan daftar user-user lain yang merupakan neighbor dari
user tersebut yang dihasilkan dari proses user similarity measurement dan neighborhood
selection.
5. Ciptakan User Prediction
Setelah mendapatkan user-user yang tergabung pada neighborhood, maka langkah terakhir
adalah dengan memprediksikan rating yang akan diberikan oleh active user tersebut
terhadap sejumlah image tertentu. Rumus yang akan kita gunakan adalah :
(, ) = {(, ) (, )}
=
(, )=
Setalah mendapatkan hasil score user A untuk semua resource yang belum di evaluasi oleh
user A, maka kita akan memilih score tertinggi yang akan digunakan untuk menciptakan
rekomendasi bagi user A tersebut.
6. Ciptakan Rekomendasi
Setalah mendapatkan user prediction, maka sistem akan menciptakan rekomendasi image
kepada seseorang. Image yang akan di rekomendasikan akan dibatasi jumlahnya. Dalam hal
ini, jumlah image makasismu yang akan di rekomendasi kan berjumlah 10 buah image.
Penggunaan Tag-based Contextual
Pada bagian ini, akan diterangkan penggunaan tag-based untuk memperbaiki traditional CF
diatas. Tag-based yang digunakan seorang active user, akan digunakan untuk mendapatkan
rekomendasi yang lebih baik.
Representasi Data
Data - data yang akan diolah pada metode Tag-based CCD di representasikan sebagai
matriks. Beberapa matriks yang akan mempresentasikan data pada metode ini adalah :
- Matriks dua dimensi untuk mempresentasikan hubungan antara semua user dan
resource yang ada.
Resources 1 2 n
U A 1 0 1
s B 1 1 0
e C 0 1 0
r . .
s m 1 0 1
Gambar 3.2 Matriks user terhadap resource
- Matriks dua dimensi kedua adalah matriks m n untuk melihat keterhubungan antara
user satu sama lain (user smiliraty). Matriks ini akan digunakan untuk mendapatkan
neigborhood model dari active user. Matriks tersebut dapat kita lihat seperti gambar
dibawah ini :
Users A B n
U A - 0.5 1
s B 0.1 - 0
e C 0 1 0
r . .
s n 1.42 0 -
Gambar 3.3 Matriks user similarity semua user
- Matriks dua dimensi dimana untuk tag vector seorang active user dengan user lain.
Tagging active user dan user lain pada res x
a b n
Tag
1 0.5 1
Vector 0.1 0.9 0
Gambar 3.4 Matriks tagging active seorang active user dan user lain
- Matriks satu dimensi contextual user similarity seorang active user. Matriks ini
didapatkan dari matriks m n dari semua hubungan antar user satu sama lain diatas.
Users A B n
A - 0.5 1
Gambar 3.5 Matrik contextual user similarity active user
- Matriks dua dimensi tag vector seorang user yang memiliki user similarity terbesar
terhadap seorang active user.
Tagging bersama active user dan user lain
a b n
Tag
1 0.5 1
Vector 0.1 0.9 0
1
2
Gambar 3.6 Matriks tagging active user dan user laing
- Matriks satu dimensi score prediction active user terhadap resource yang ditag user
lain yang memiliki user similarity tertinggi dengan active user.
Resource yang di tag user lain yang memiliki
user similarity terbesar terhadap active user
a b n
Active User
0.4 0.5 0.2
Gambar 3.7 Matriks score prediction active user
2.1.1 Alur Kerja
Langkah-langkah yang digunakan pada tag-based contextual collaborative filtering yang
selanjutnya akan penulis sebut sebagai tag-based CCF dapat kita lihat pada gambar 3.8
dibawah ini.
Gambar 3.8 Flow Chart Tag-based Contextual Collaborative filtering
Pada tag-based CCF ini, pada dasarnya mempunyai kemiripan seperti pada traditional CF.
Beberapa perbedaan yang ada adalah :
1. Ciptakan Tag-based Vector User dan Resource
Setelah menciptakan Neighborhood User Model, langkah yang selanjutnya tidak langsung
user prediction, namun terlebih dahulu menciptakan tag-based vector user yang mempunyai
similarity dengan user yang akan di prediksi dan resource yang akan di prediksi. Setalah kita
mendapatkan tag-based vector-nya, langkah selanjutnya adalah mendapatkan cosine
similarity dari tag-based vector tersebut dengan menggunakan rumus :
Keterangan :
, : nilai matriks ke i dari matriks user A dan B
Cos() : cosine similarity
i : indeks matriks user
n : panjang matriks pada user A atau B
2. Ciptakan User Prediction.
Pada langkah ini, kita tidak lagi menggunakan score prediction yang traditional. Tetapi kita
akan menggunakan rumus yang telah dirubah seperti dibawah ini :
(, )
=
{(, ) ( (( , ), , ( , )) + )}=
(, )=
(, ) : score prediction user A terhadap resource x
(, ) : cosine similarity user A terhadap user
( , ) : cosine similarity tag vector user terhadap resource m dan
resource x
k : indeks neighbor model user dari user A
n : jumlah user pada neihbourhood model user A
Berbeda dengan traditional CF, disini untuk mendapatkan score prediction seorang active
user, kita telah memperhitungkan tag-based contextual yang digunakan.
Penerapan metode dan algoritma
Sebagai contoh kasus, diketahui rating data user sistem terhadap image beserta tag-based
yang diberikan oleh user sebagai berikut :
Gambar 3.9 Model User dan Image besera tag-based
Fakta yang didapatkan pada contoh kasus diatas :
User
Resource Image
user memiliki resource
user menyukai resource user lain
xxx user memiliki resource dan memberi tagging
xxx user menyukai resource user lain dan memberi tagging
Keterangan gambar
1. User B memiliki satu resource dan menyukai resource 1 kepunyaan user A dan
memberikan tagging pemandangan, hutan, serta menyukai resource 3 kepunyaan user
C dan memberikan tagging cantik, indah, pakaian.
2. User D menyukai resource 3 kepunyaan user C, tetapi dengan konteks yang berbeda
dengan user C sebagai pemilik resource. User C menggunakan tag cantik, indah,
sedangkan user D menggunakan tagging jelek, kolot.
3. User F memiliki resource 6 yang mempunyai tag pemandangan, bukit. Tetapi hal ini
tidak ada korelasi karena resource yang di tag berbeda.
4. User E menyukai resource 6 kepunyaan user F, tetapi tidak memberikan tagging apapun
pada resource tersebut.
5. User G meng-upload resource 7 tanpa memberikan tagging apapun.
Misalkan kita mempunyai active user C saat ini. Maka kita akan merekomendasikan memilih
resource 1, 2, 4, 5, 6, 7 kepada user C. Resource 3 tidak diberikan rekomendasi kepadanya
karena resource 3 dimiliki oleh user 3 sendiri.
Dari kasus diatas, kita dapatkan tabel rating traditional secara keseluruhan seperti dibawah
ini :
1 2 3 4 5 6 7
A 1 - - - - - -
B 1 1 1 - - - -
C - - 1 - - - -
D - - 1 1 - - -
E - - - - 1 1 -
F - - - - - 1 -
G - - - - - - 2
Tabel 3.1 Rating Traditional
Langkah pertama yang akan dilakukan, baik oleh traditioanal CF maupun tag-based
contextual CF adalah menentukan neighborhood model dari active user yang dalam hal ini
user C. Proses selanjutnya adalah dengan mengelompokkan penguna sistem menjadi dua
kelompok. Kelompok pertama adalah pengguna yang memiliki kemiripan dengan active
user, sedangkan kelompok kedua adalah yang tidak memiliki kemiripan dengan active user.
Secara umum, untuk memisahkan kelompok pengguna adalah dengan menentukan batas
minimal nilai kemiripan bagi pengguna yang tergabung dalam neighborhood dari active
user. Pada pembuatan sistem rekomendasi image ini, batas awal yang digunakan adalah
similarity yang bernilai lebih besar dari 0. Selanjutnya akan ditentukan jumlah maksimal
neighborhood user dari active user. Proses tersebut dilakukan agar neighborhood user yang
dihasilkan tidak telalu banyak sehingga membuat proses selanjutnya tidak membutuhkan
waktu dan memory yang berlebihan. Setelah menyelesaikan tahapan ini, maka akan
dihasilkan sebuah model pengguna yang disebut neighborhood model. Neighborhood model
merupakan daftar neighbor dari seorang pengguna. Model akan menyimpan daftar penguna-
pengguna lain yang merupakan neighbor dari pengguna tersebut yang dihasilkan dari proses
user similarity measurement.
Dari contoh kasus diatas, apabila kita melakukan cosine user similarity pada semua user,
akan didapatkan data seperti tabel dibawah ini :
Cara menentukan neighborhood model user C adalah :
1. Menentukan tetangga user C yang memiliki kesamaan terhadap resource yang sama-
sama disukai. Dalam hal ini, user B dan D akan terpilih karena user C dan user B
menyukai resource 3, demikian juga, user C dan D yang menyukai resource 3 juga.
2. Mencari user tetangga dari user B dan D. Dari user B, kita akan mendapatkan user A,
dikarenakan user A dan B, sama-sama menyukai resource 1. Sedangkan dari user D, kita
tidak mendapatkan user tetangga lain.
3. Dari langkah diatas, kita mendapatkan tetangga dari user C adalah user A, B, D.
Sedangkan user E, F, G tidak masuk kedalam neighborhood model dari user active C.
Dari langkah diatas maka kita akan mendapatkan neighborhood model dari user active C
seperti yang terlihat pada tabel dibawah ini :
A B C D E F G
A - 0.58 0 0 0 0 0
B 0.58 - 0.58 0.41 0 0 0
C 0 0.58 - 0.71 0 0 0
D 0 0.41 0.71 - 0 0 0
E 0 0 0 0 - 0.71 0
F 0 0 0 0 0.71 - 0
G 0 0 0 0 0 0 -
Tabel 3.2 Neighborhood Model User Active C
Dari langkah diatas maka akan didapatkan neighborhood model dari user active C adalah
seperti ditabel dibawah ini :
1 2 3 4
B 1 1 1 -
C - - 1 -
D - - 1 1
Tabel 3.3 CF Rating Traditional
Untuk perhitungan selanjutnya menggunakan kedua algoritama yang ada, kita hanya akan
menggunakan model diatas. Hal ini dilakukan, agar hasil rekomendasi didapatkan dengan
lebih cepat.
Pendekatan Traditional Collaborative Filtering
Langkah pertama yang akan kita lakukan adalah mendapatkan user similarity score setiap
user. Disini kita menggunakan cosine similarity menggunakan rumus di bawah ini :
Keterangan :
, : nilai matriks ke i dari matriks user A dan B
Cos() : cosine similarity
i : indeks matriks user
n : panjang matriks pada user A atau B
Sebagai contohnya kita akan mencari user similarity dari user A dan B. Kalkulasi yang kita
lakukan adalah :
1. Dot Product user C (-,-,1,-) dan B (1,1,1,-) yaitu (0*1) + (0*1) + (1*1) + (0*0) = 1
2. Magnitude user C = + + + = 1
3. Magnitude user B = + + + = 1.73
4. Product dari magnitude C dan B = 1 * 1.73 = 1.73
5. Pembagian dari Dot Product C dan B di bagi Product dari Magnitude B dan C = 1/1.73
= 0.58
Dari perhitungan diatas, maka user similarity user C dan B adalah 0.58. Dengan cara yang
sama, kita akan mendapatkan user similarity dari semua user seperti pada tabel dibawah ini
:
A B C D
B 0.58 - 0.58 0.41
C 0 0.58 - 0.71
D - 0.41 0.71 -
Tabel 3.4 CF User Similarity Score Traditional
Ketika user similarity telah dikalkulasi, maka kita akan mencari score prediction user C
untuk resource x yang belum di evaluasi menggunakan rumus umum dibawah ini :
(, ) = {(, ) (, )}
=
(, )=
Kita ambil contoh, untuk data rating yang tersedia pada tabel 3.1, kalkulasi user score
prediction B untuk resource 4 akan seperti langkah dibawah ini :
(, ) = {(, ) (, )}
=
(, )=
1. Menghitung jumlah perkalian semua similarity sim(B,) * score(, ) untuk semua
user lainnya.
a. Sim(B,C) * score(C,4) = 0.58 * 0 = 0
b. Sim(B,D) * score(D,4) = 0.41 * 1 = 0.41
Penjumlahan dari semua user adalah 0 + 0 + 0.41 = 0.41
2. Menghitung total similarity user B terhadap semua user lainnya yaitu Sim(B,C) +
Sim(B,D) = 0.58 + 0.41 = 0.99
3. Pembagian dari kalkulasi langkah pertama dan kedua. Sehingga kita mendapatkan
score(B,4) = 0.41 / 0.99 = 0.41
Dari langkah diatas kita mendapatkan score prediction user B terhadap resource 4 adalah
0.41. Dengan langkah yang sama, score prediction semua user untuk semua resource yang
belum mereka evaluasi pada traditional CF adalah :
1 2 3 4
B - - - 0.41
C 0.45 0.45 - 0.55
D 0.37 0.37 - -
Tabel 3.5 Score Prediciton untuk Semua User
Dari tabel diatas kita akan mendapatkan score prediction terhadap active user C seperti tabel
dibawah ini :
1 2 4
C 0.45 0.45 0.55
Tabel 3.6 Hasil Score Prediction User C
Dari tabel diatas, apabila kita akan merekomendasikan User C suatu resource, dan kita
membatasi hanya boleh 1 resource yang di rekomendasikan, maka User C, akan di
rekomendasikan resource 4, karena score prediction tertinggi untuk user C adalah resource
4.
User prediction ini untuk active user C ini masih kurang baik, karena traditional CF belum
memperhitungkan tag-based contextual-nya. Memang terdapat kedekatan antara user C dan
user D yang sama-sama menyukai resource 3. Tetapi kita harus melihat bahwa sebagai
pemilik resource 3, user C menggunakan tag cantik, indah yang berbeda jauh dengan user
D yang menggunakan tag jelek, kolot. Kedua user menyukai resource tersebut, namun
dengan konteks yang berbeda. Karena alasan tersebut, traditional CF akan diperbaiki
menggunakan tag-based contextual CF yang memperhitungkan konteks yang ada
berdasarkan tagging image.
Pendekatan Tag-Based Contextual Collaborative Filtering
Pada model ini, user similarity yang di gunakan tidak menggunakan cosine similarity lagi,
namun telah dirubah menggunakan fungsi persamaan dibawah ini :
(, ) =
{(, ) + }
=
Keterangan :
(, ) : similarity contextual CF user A dan B
n : jumlah resource ditag bersama user A dan B
(, ) : cosine similarity tag vector user A dan B terhadap resource k
Misalkan kita akan mencari user similarity dari user B dan C. Karena user B dan C, hanya
melakukan tagging pada resource 3 secara bersama-sama, maka tag-based vector user B dan
C pada resource 3 akan terlihat seperti tabel dibawah ini :
cantik indah pakaian
1 1 1
1 1 0
Tabel 3.7 Tag-based Vector User B dan C pada Resource 3
Untuk mendapatkan user similarity yang baru sesuai dengan rumus yang telah di perbaharui
tersebut, kita menggunakan langkah-langkah sebagai berikut :
1. Mendapatkan cosine similarity dari kedua tag-based vector diatas. Dari hasil
perhitungan kita akan mendapatkan similarity kedua tag-based vector tersebut adalah
0.5.
2. Dari hasil itu menggunakan rumus diatas
(, ) =
{(, ) + }
=
kita mendapatkan (, ) = * (0.5+1 ) = *1.5 = 0.75
Dengan cara yang sama seperti diatas, kita mendapatkan Contextual CF User Similarity
Score untuk semua user seperti yang terlihat pada tabel di bawah ini :
A B C D
A - 0.75 0 0
B 0.75 - 0.91 0.5
C 0 0.91 - 0.5
D 0 0.5 0.5 -
Tabel 3.8 Contextual CF User Similarity Score
Namun, kelemahan dari model ini masih ada. Dalam sistem ini, hanya ada pilihan untuk suka
atau tidak. Dengan demikian, sebagian besar user hanya akan tag-based resource jika dan
hanya jika mereka menyukai resource tersebut. Namun, kurangnya tag-based tidak selalu
berarti tidak suka, tetapi mungkin saja mereka tidak evaluasi resource tersebut. Mengingat
hal ini, model ini hanya tergantung pada resource yang umumnya di tag-based, ini dapat
menjadi masalah ketika image di tag-based atau disuka sedikit. Masalah ini umum untuk
sistem berbasis CF lain juga. Selanjutnya kita akan melakukan kalkulasi score prediction
menggunakan rumus :
(, ) =
{(, ) ( ((, ), , (, )) + )}=
(, )=
Keterangan :
(, ) : score prediction user A terhadap resource x
(, ) : cosine similarity user A terhadap user
( , ) : cosine similarity tag vector user terhadap resource m dan
resource x
k : indeks neighbor model user dari user A
n : jumlah user pada neighborhood model user A
Misalnya, kita ingin melakukan prediksi score user C untuk resource 2, dimana resource 2
tersebut belum di tag-based oleh user C. Langkah- langkanh yang akan kita lakukan adalah
:
1. Menggunakan CCF User Similarity pada tabel 3.4 , kita menentukan user lain yang
mempunyai user similarity yang tinggi dengan user C. Disini kita mendapatkan user
B karena user similarity user B dan C adalah 0.91.
2. Menentukan resource yang di tag-based bersama oleh kedua user. Kemudian
melakukan cosine similarity resource yang di tag-based terhadapat resource 2. Apabila
terdapat lebih dari satu, maka similarity tertinggilah yang akan digunakan untuk score
prediction. Disini user B dan C , sama-sama melakukan tag-basedging pada resource
3.
Jadi, tag-based vector B untuk resource 2 dan 3 seperti yang terdapat pada tabel dibawah ini
:
cantik indah pakaian bunga
1 1 1 0
1 0 0 1
Tabel 3.9 Tag-based Vector Resource 3 dan 2 Terhadap user B
Menggunakan cosine similarity kita mendapatkan sim(, ) = 0.41.
3. Langkah selanjutnya adalah mencari score prediction user C terhadap resource 2.
Menggunakan rumus diatas, kita mendapatkan
(, ) =
{(, ) (((, )) + )}=
= (, )
=
{.(.+)}
. = 0.71
Sehingga kita mendapatkan score prediksi user C untuk resource dua dalah 0.71. Dengan
cara yang sama kita mendapatkan score(C,1) = 0.5 .
Hasil score prediksi untuk traditional CF dan tag-based CCF user C pada resource 1 dan 2
seperti pada tabel di bawah ini :
Resource 1 Resource 2
Tradisioanl CF 0.45 0.45
Tag-based CCF 0.5 0.71
Tabel 3.10 Perbandingan Hasil Traditional CF dan Tag-basedCCF
Pada hasil score prediction diatas, kita dapat melihat bahwa Traditional CF memberikan
score yang sama kepada User C. Padahal dari segi tag-based, user B melakukan tag-based
pemandangan dan hutan, yang benar-benar berbeda dibandingkan dengan tag-based yang
pernah digunakan user C yaitu cantik dan indah. Sedangkan pada tag-based CCF, hal ini
telah diperbaiki dengan membuat resource 2 sebagai resource yang paling
direkomendasikan kepada user C karena terdapat kesamaan antar tag-based yang digunakan
oleh user C, dan tag-based yang digunakan oleh user B pada resource 2.
Perancangan Sistem
Pada bagian ini akan dijelaskan tentang perancangan sistem dari sistem rekomendasi
film yang akan dibangun. Perancangan meliputi ER diagram, use case diagram dan class
diagram.
3.4.1 ER Diagram
Basis data yang digunakan secara umum terdiri dari dua entitas utama yaitu pengguna dan
image yang dihubungkan dengan dua relasi yaitu tagging dan like. Relasi Pengguna dan
Image bersifat many to many yang menjadikan Tagging dan Like akan menjadi sebuah table
pada database dengan idImage dan username merupakan foreign key, dan secara bersama-
sama bertindak sebagai primary key untuk table Tagging dan Like tersebut.
Gambar 13.10 ERD Diagram Sistem
3.4.2 Use Case Diagram
Gambar 3.11 akan menerangkan tentang fungsionalitas-fungsionalitas yang terdapat
pada sistem rekomendasi film yang akan dibangun. Pada sistem ini, user yang adalah satu
jenis yaitu pengguna yang telah mendaftarkan dirinya pada sistem, sehingga dapat
menggunakan fungsi-fungsi yang terdapat pada sistem, termasuk fungsi rekomendasi.
Gambar 3.11 Usecase Diagram
Penjelasan Use Case Diagram diatas adalah :
1. Add Image, adalah fungsionalitas bagi pengguna untuk dapat menambahkan image
yang dipunyainya pada system.
2. Like Image, adalah fungsionalitas untuk memberi tanda suka pada image orang lain
di system.
3. Tagging Image adalah fungsionalitas untuk melakukan tagging pada image. Tagging
yang dilakukan dapat lebih dari satu pada sebuah image.
4. View Images, adalah fungsionalitas untuk melihat images milik sendiri dan milik
orang lain pada system.
5. Get Collaborative Recommendation, adalah Fungsionalitas untuk mendapatkan
rekomendasi berdasarkan tradisional CF oleh system.
6. Get Tag-Based Collaorative Recommendation, adalah fungsionalitas untuk
mendapatkan rekomendasi yang dihasilkan tag-based collaborative filtering.
Class Diagram
Pada Class Diagram ini, penulis akan membagi kedalam 3 kategori, yaitu Model,
View Dan Controller sehingga didapatkan penjelasan yang lebih mengenai system
rekomendasi tersebut.
Model
Gambar dibawah ini, akan mendetailkan model yang terdapat pada system.
Gambar 3.12.1 Class Diagram Model Dan Persistance Sistem
Gambar 3.12.2 Class Diagram Model Dan Persistance Sistem
Terdapat 2 entitas pada system, yaitu entitas pengguna dan myImage. Properti pada
Pengguna adalaha imagePengguna yang bertipe bufferedImage untuk menyimpan profil
picture untuk pengguna tersebut, dan property lainnya seperti nama, username dan password
yang bertipe String. Sedangkan kelas myImage, property seperti bufImage yang bertipe
BufferedImage, pemilikImage, deskripsi dan nama image yang berupa String, list kumpulan
user yang menyukai dan mentag image tersebut, serta sebuah property tagOrangLain bertipe
HashMap yang merupakan tagging user lain terhadap image tersebut. Kelas
KontrollerDatabase merupakan kelas static yang melakukan proses persistence pada system.
Kelas tersebut bertanggung jawab pada transaksi system ke system database yang dalam hal
ini, adalah MySql.
4.3.3.2 View
Kelas dibawah ini, adalah kelas yang bertanggung jawab untuk menampilkan data
menggunkan model yang ada dan perintah dari kelas-kelas controller.
Gambar 3.13 View Pada Sistem Rekomendasi
Controller
Pada kelas-kelas dibwah ini, adalah kelas yang akan melakukan perubahan pada view sistem.
Fungsionalitas Get Collaborative dan Get Tag-Based Collaborative Filtering dilakukan pada
kelas tersebut.
IMPLEMENTASI DAN CARA
KERJA SISTEM
Bab ini menjelaskan mengenai implementasi dan pengujian pada aplikasi
sistem rekomendasi yang dibangun dengan metode collaborative filtering
dan tag-based collaborative filtering dan disertai dengan analisis hasil
pengujian yang telah didapatkan.
Lingkungan Pengembangan
Bagian ini menjelaskan spesifikasi perangkat keras yang digunakan dan
perangkat lunak yang dipakai dalam membangun dan mengembangkan
aplikasi sistem rekomendasi.
Lingkungan Perangkat Keras
Spesifikasi perangkat keras yang digunakan dalam pengembangan
aplikasi dan situs ini adalah sebagai berikut:
1. Processor Core i7 2.4 GHz
2. Memory 8 GB
3. Hard Disk 256 GB
Lingkungan Perangkat Lunak
Pengembangan aplikasi ini membutuhkan beberapa perangkat lunak,
diantaranya adalah sebagai berikut:
1. Sistem Operasi Mac OSX 10.9.3 Mavericks
2. NetBeans IDE 8.0
3. Java Development Kit 8.0u5
4. Java Runtime Environment 8.0u5
5. MySQL Server 5.1
Implementasi Model
Pada tahapan implementasi sistem rekomendasi gambar terdapat
beberapa model utama yang diimplementasikan. Model-model tersebut
digunakan dalam proses pengolahan serta penyajian data-data pada proses
yang akan menghasilkan sebuah rekomendasi. Berikut ini adalah
penjelasan dari model-model tersebut.
1. User Model
Atribut Tipe Data Fungsi
username String variabel untuk nama active
user
namaUser String Variabel nama aktif user
password String variabel password user
imagePengguna BufferedImage variable berisi image aktif user
Ketika seorang user melakukan login dengan benar dengan memasukkan
username dan password yang telah teregistrasi pada database, makan
model ini akan diciptakan, sehingga detail pengguna dapat ditampilkan
pada halaman utama user tersebut.
2. Image Model
Atribut Tipe Data Fungsi
idImage Int variabel untuk nama id
Image
pemilikImage String Variabel u s e r n a m e p e m i l i k aktif user
namaImage String variabel nama Image
deskripsiImage String variable berisi deskripsi image
tagImagePemilik List Variable berisi tag Pemilik akan image yang image tersebut
tagOrangLain HashMap>
Variable berisi tag dari user lain terhadap image tersebut
likeUsers List Variabel berisi list username user lain yang menyukai image tersebut.
Pada model image tersebut, akan terdapat semua data tentang image yang
didapat dari database server.
Ketika seorang user aktif, kedua model itu akan di load. Sedangkan untuk
mencari rekomendasi kepada user tersebut, akan di ekstrak data user dan
image kedalam matrik korelasi antara keduanya..
Implementasi Aplikasi
Implementasi aplikasi sistem rekomendasi image dilakukan dengan cara
membangun sebuah situs untuk para penggemar gambar. Aplikasi ini
memiliki fasilitas sistem rekomendasi image yang menggunakan
metode collaborative filtering dan Tag based). Berikut adalah tampilan dan
penjelasan halaman- halaman pada aplikasi sistem rekomendasi ini.
4.3.1 Home (sebelum user melakukan proses
login)
Saat pengguna membuka situs untuk pertama kalinya maka sistem
akan menampilkan halaman utama atau home. Halaman Home dapat
dilihat pada gambar 4.6.
gambar 4.6 Halaman Home (sebelum login)
Berikut ini adalah penjelasan dari bagian-bagian yang terdapat pada gambar
4.6 :
1. Login, bagian ini berfungsi bagi pengguna untuk masuk dan
menggunakan fungsi sistem secara keseluruhan. Pengguna harus
mengisi username dan password terlebih dahulu untuk masuk ke
halaman profile pengguna
2. Registration, bagian ini berfungsi bagi pengguna yang belum
terdaftar pada aplikasi system rekomendasi ini dengan cara melakukan
registrasi terlebih dahulu.
Home (setelah user melakukan proses login)
Setelah pengguna melakukan proses login dan masuk kedalam sistem, maka
halaman utama akan mengalami perubahan. Halaman My Profile setelah login
terlihat pada gambar 4.7.
Gambar 4.7 Halaman Profile Pengguna
Berikut ini adalah penjelasan dari bagian-bagian yang terdapat pada gambar 4.7 :
1. Tab Main menu, pada bagian ini menampilkan menu-menu utama bagi
pengguna dalam menggunakan aplikasi ini.
2. Collaborative Filtering, bagian ini menampilkan hasil gambar-gambar yang
direkomendasikan dengan menggunakan metode Colllaborative Filtering. Pada
tampilan gambar yang direkomendasikan, pengguna dapat memperbesar gambar
tersebut untuk dapat melihat detail deskripsi gambar.
3. Tag-Based Contextual Collaborative Filtering, pada bagian ini menampilkan
hasil gambar-gambar yang direkomendasikan dengan menggunakan metode
Tag-Based contextual Collaborative filtering. Pada tampilan gambar yang
direkomendasikan, pengguna dapat memperbesar gambar tersebut untuk dapat
melihat detail deskripsi gambar.
4. Add Image, pada bagian ini memberikan fasilitas bagi pengguna untuk dapat
menambahkan gambar kedalam view image milik pengguna. Untuk tampilannya
dapat dilihat pada gambar berikut ini.
Gambar 4.8 tampilan add image
5. Log Out, pada bagian ini memberikan fasilitas bagi pengguna untuk keluar dari
akun aplikasi sistem rekomendasi.
View Analisa Rekomendasi
Halaman ini berfungsi untuk menampilkan hasil perbandingan menggunakan metode
Collaborative Filtering dan metode Tag-Based Contextual Collaborative Filtering.
Halaman analisa rekomendasi dapat dilihat pada gambar 4.9
Gambar 4.9 Tampilan Analisa Rekomendasi
Gambar 4.10 Tampilan Analisa Rekomendasi Collaborative Filtering
Pada gambar 4.10 ditampilkan nama, deskripsi, dan jumlah gambar yang dimiliki oleh
pengguna yang sedang aktif. Terdapat juga jumlah user lain dan deskripsi masing-
masing gambar yang dimiliki oleh user lain.
Gambar 4.11 Tampilan hasil perhitungan menggunakan metode Collaborative Filtering
Gambar 4.11 menampilkan tahap-tahap pencarian untuk menemukan hasil gambar
yang akan direkomendasikan dengan menggunakan metode Collaborative Filtering.
1. Matriks Tradisional Semua User
Bagian baris menujukan berapa banyak user yang menggunakan aplikasi ini,
bagian kolom menunjukan semua gambar yang dimiliki oleh user. Nilai yang
terdapat pada data tersebut adalah untuk menjukkan apakah user tersebut
memiliki hubungan dengan gambar atau tidak. Untuk nilai 1, dapat diartikan
bahwa user tersebut memiliki hubungan (sebagai pemilik atau menyukai)
terhadap gambar tersebut, dan nilai 0 diartikan bahwa user tersebut tidak
memiliki hubungan (sebagai pemilik atau menyukai) terhadap gambar tersebut.
2. User similarity semua user
Menunjukan nilai kedekatan antar setiap user apakah user tersebut sama-sama
memiliki atau menyukai gambar yang sama. Rumus yang digunakan pada
perhitungan ini adalah rumus Cosine Similarity.
3. Matriks Tradisional User Aktif
Menujukan user mana saja yang memiliki kesamaan dengan user yang sedang
login (Neighboorhood model)
4. Matriks User Similarity User Aktif
Sama seperti User similarity semua user akan tetapi hanya khusus user yang
sedang login.
5. Matriks Score Prediction
Menampilkan hasil perhitungan score prediction dari resource terhadap user
yang aktif.
Gambar 4.12 Tampilan analisa rekomendasi metode Tag-Based Contextual Collaborative Filtering
Gambar 4.13 Tampilan hasil pencarian Score Prediction menggunakan metode Tag-Based Contextual
Collaborative Filtering
1. Matriks Tradisional Semua User
Bagian baris menujukan berapa banyak user yang menggunakan aplikasi ini,
bagian kolom menunjukan semua gambar yang dimiliki oleh user. Bagian ini
dihitung berdasarkan apakah user tersebut di tag ke gambar tertentu.
2. User similarity semua user
Menunjukan nilai kedekatan antar setiap user apakah user ditag ke gambar yang
sama. Rumus yang digunakan pada perhitungan ini adalah rumus Cosine
Similarity.
3. Matriks Tradisional User Aktif
Menujukan user mana saja yang memiliki kesamaan dengan user yang sedang
login (Neighboorhood model)
4. Matriks User Similarity User Aktif
Sama seperti User similarity semua user akan tetapi hanya khusus user yang
sedang login.
5. Matriks Score Prediction
Menampilkan hasil perhitungan score prediction dari resource terhadap user yang
aktif berdasarkan Tag-Based Contextual Collaborative Filltering.
Gambar 4.14 Tampilan View Images
Berikut ini merupakan penjelasan dari bagian-bagian yang terdapat pada tampilan view
images:
1. Pada bagian ini menampilkan kumpulan gambar yang dimiliki oleh pengguna
yang sedang aktif.
2. Pada bagian ini menampilkan kumpulan gambar yang dimiliki oleh pengguna
lain
Pengujian Hasil Rekomendasi
Pada bagian ini akan diberikan hasil pengujian terhadap pengguna baru dan pengguna
lama.
Pengujian untuk Pengguna baru (New User)
1. Membuat user baru pada aplikasi, pada pengujian ini pengguna mendaftarkan
user h. Pendaftaran tampak pada gambar berikut :
gambar 4.4.1.1
3. Pada Saat pertama kali login User, user aktif tidak memiliki rekomendasi gambar.
Ini dikarenakan user aktif belum memiliki gambar dan belum pernah menyukai
gambar milik user lain.
4. Untuk Menambahkan Image pada aplikasi, pilih add image. Setelah itu akan
muncul tampilan seperti gambar di bawah ini :
5. Untuk memulai proses rekomendasi, pilih view images, pilih gambar 1, setelah
itu klik like
6. Setelah me-like gambar maka hasil rekomendasi akan muncul pada bagian my
profile dan analisa rekomendasi
7. Untuk mendapatkan nilai rekomendasi berdasarkan Tag, pilih gambar satu lalu
pilih tag dan isikan nama tag yang diinginkan pada pengujian menggunakan tag
cantik
8. Hasil Prediksi akan muncul pada tab my Profile dan Analisa rekomendasi, seperti
gambar di bawah ini :
Pengujian untuk pengguna lama
Pengujian untuk pengguna lama, rekomendasi akan langsung diberikan ketika user
melakukan login, rekomendasi gambar akan langsung muncul pada tab my profile
berdasarkan data yang sudah ada sebelumnya.
Kesimpulan
Kesimpulan yang dapat diambil dari pembuatan situs dengan sistem
rekomendasi film ini adalah:
1. Nilai user similarity pada metode collaborative filtering
dapat menggambarkan kemiripan antar pengguna sistem. Namun
tingkat kepercayaan terhadap nilai tersebut akan berbanding lurus
dengan jumlah like yang beririsan.
2. Terdapat perbedaan tingkat performansi dari masing-masing
metode dalam menghasilkan rekomendasi terhadap pengguna baru
dan pengguna lama. Metode collaborative filtering memiliki tingkat
performansi yang masih kurang baik untuk pengguna baru, namun
seiring bertambahnya rating data seorang pengguna, performansi
dari metode collaborative filtering semakin baik. Peningkatan
performansi metode collaborative filtering dapat terlihat pada
hasil rekomendasi untuk pengguna lama. Metode content based
filtering sudah mampu menghasilkan rekomendasi image dengan
hasil yang cukup baik, untuk pengguna baru maupun pengguna
lama.
3. Pada metode tag based based filtering, tag menjadi faktor yang
dominan dalam penentuan image yang akan direkomendasikan. Tag
yang semakin bervariasi akan mempengaruhi hasil dari rekomendasi
tersebut.
4.
Saran
Hal-hal berikut dapat dijadikan masukkan untuk pengembangan lebih
lanjut di kemudian hari:
1. Teknik-teknik lain dari metode collaborative filtering seperti
teknik model-based dan hybrid perlu dicoba untuk digunakan.
Penggunaan teknik lain mungkin akan menghasilkan performansi
yang lebih baik untuk metode collaborative filtering.
2. Penggunakan rating dengan skala dilakukan sehingga bukan hanya
tergantung pada nilai suka atau tidak suka saja, tetapi skala suka dan
tidak suka pun dapat lebih bervariasi sehingga menghasilkan nilai
yang lebih baik.
2. Penggunaan teknik hybrid yang menggabungkan collaborative
filtering dan tag-based contextual collaborative layak untuk
dilakukan untuk mendapatkan hasil yang lebih baik.
3. Dapat ditemukan dan digunakan teknik-teknik lain untuk
mengukur akurasi sistem rekomendasi, agar nilai nilai akurasi
akurat
61