-
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