Sistem Rekomendasi Berdasarkan Minat dan

advertisement
1
PENDAHULUAN
Latar Belakang
Saat ini perkembangan dan kemajuan
teknologi
informasi
berbasis
jaringan,
khususnya teknologi pada jaringan Internet
berlangsung dengan pesat. Berkat teknologi
informasi Internet, hampir seluruh pengguna di
dunia dapat mengakses informasi yang ada di
dalam Internet.
Situs-situs web yang ada di dalam Internet
pun mengalami perkembangan yang pesat.
Informasi dan konten yang ada di dalam situs
web pun semakin banyak dan beragam.
Dengan semakin banyak dan beragamnya
informasi dan konten yang disediakan oleh
sebuah situs web, semakin banyak waktu yang
diperlukan oleh pengguna/pengunjung untuk
menjelajahi (browse) seluruh isi konten yang
ada di dalam situs web. Hal ini membuat
pengguna merasa kurang nyaman dalam
menjelajahi isi konten sebuah situs web untuk
mencari informasi atau konten yang diinginkan
pengguna situs web.
Oleh karena itu, diperlukan aplikasi yang
dapat membantu pengunjung sebuah situs web
untuk mencari konten yang sesuai dengan
keinginan pengguna. Penelitian ini berusaha
membantu pengguna dalam mencari konten di
dalam sebuah web dengan memberikan
rekomendasi konten yang cocok dengan profil
pengguna.
Di dalam sebuah situs web, informasi dan
konten yang diminta (request) oleh pengguna
umumnya tercatat dalam browsing history.
Oleh karena itu,
browsing history dapat
dijadikan sumber untuk mengetahui pola minat
dan perilaku pengguna situs web.
Tujuan
Tujuan penelitian adalah mengembangkan
sistem yang dapat memberikan rekomendasi
kepada pengguna berdasarkan profil minat dan
perilaku pengguna yang diambil dari data
transaksi yang dilakukan oleh penggguna
dalam mengakses isi informasi yang ada dalam
situs web.
Ruang Lingkup
Ruang lingkup yang diteliti adalah
personalisasi rekomendasi koleksi berdasarkan
profil minat dan perilaku pengguna (dengan
studi kasus rekomendasi koleksi wallpaper) .
Koleksi-koleksi yang direkomendasikan oleh
sistem adalah koleksi-koleksi yang belum
diunduh oleh pengguna. Penelitian dilakukan
dengan mengacu pada penelitian yang
dilakukan oleh Yong (2001).
Manfaat
Hasil penelitian ini diharapkan dapat
mempermudah pengguna dalam menjelajahi
(browsing) isi dan informasi yang ada di dalam
sebuah situs web sesuai dengan keinginan
pengguna.
TINJAUAN PUSTAKA
Association Mining Rule
Jika I={i1,i2,...,im} adalah himpunan entitas
yang disebut Item. Andaikan D adalah
himpunan transaksi T, di mana setiap transaksi
T adalah himpunan Item di mana T  I .
Sebuah Identifier (pengenal) yang unik yang
disebut
TID,
digunakan
untuk
mengasosiasikan setiap transaksi. Kita katakan
sebuah transaksi T terdapat X, sebuah
himpunan yang terdiri dari beberapa item di
dalam I, jika X  T . Sebuah Association Rule
(aturan asosiasi) adalah sebuah implikasi dari
di
mana
X I,
X Y ,
Y  I dan X  Y =Ø. Aturan X  Y berlaku
di dalam himpunan transaksi D dengan
keyakinan (confidence) c jika c% transaksi di
dalam D terdapat X juga terdapat Y. Aturan
X  Y memiliki nilai support s di dalam
himpunan transaksi D jika s% di dalam
himpunan
transaksi
D
terdapat
X  Y (Agrawal 1994).
Jika ada himpunan transaksi D, masalah di
dalam xzAssociation Mining Rule adalah
bagaimana menghasilkan aturan asosisasi yang
memiliki nilai support dan nilai keyakinan
(confidence) yang lebih besar daripada nilai
minimum support dan nilai minimum
keyakinan (confidence) yang telah ditentukan.
Algortima yang menggunakan teknik
Association Mining Rule (Agrawal 1994),
antara lain:
a. Algoritma Appriori
Pada Tabel 1 dapat dilihat notasi yang
digunakan pada algoritma yang menggunakan
teknik Association Mining Rule.
Tabel 1 Notasi Algoritma
Item k
Lk
Ck
Himpunan item yang memilki
item k.
Himpunan large k-items
(dengan nilai minimum support)
Setiap
anggota
himpunan
memiliki dua field, yaitu itemset
dan support count.
Himpunan kandidat k-items
(himpunan item dengan jumlah
yang besar).
2
Item k
Ck
Himpunan item yang memilki
item k.
Setiap
anggota
himpunan
memiliki dua field, yaitu itemset
dan support count.
Himpunan kandidat k-items di
mana TID yang dihasilkan
transaksi
disimpan
dan
diasosiasikan
dengan
para
kandidiat
1)
2)
3)
4)
1)
2)
3)
L1={large 1-itemset};
for (k=2;Lk-1=Ø;k++) do begin
Ck=Appriori-gen(Lk-1);
//Kandidat baru
4)
forall transaction t  D do
begin
5)
Ct=subset(Ck,t); //kandidat
yang terdapat pada t
6)
forall candidates c  Ct do
7)
c.count++;
8)
end
9)
Lk={ c  Ck | c.count≥minsup}
10) end
11) Answer=  k
Lk ;
Algoritma Appriori Candidate Generation
Dalam alogritma Appriori diperlukan
sebuah algoritma yang mengambil input Lk-1,
di dalam himpunan large (k-1) itemset dan
menghasilkan himpunan superset yang terdiri
dari semua himpunan large (k-1) itemset.
Seperti yang tampak pada kode sumber di
bawah.
1)
2)
Insert into Ck
select p.item1,p.item2,…,p.itemk1,q.itemk-1
3) from Lk-1 p,Lk-1 q
4) where p.item1=q.item1,…,p.itemk2=q.itemk-2 ,p.itemk-1<q.itemk-1;
5) forall itemset c  Ck do
6)
forall (k-1) subset s of c do
7)
If (s  L) then
8)
delete c form Ck;
9)
end
10)
end
11) end
b. Algoritma ApprioriTid
Pada Algoritma ApprioriTid seperti yang
tampak pada kode sumber di bawah, juga
terjadi pemanggilan fungsi appriori-gen yang
merupakan
fungsi
algoritma
Appriori
Candidate Generation.
C k =Appriori-gen(Lk-1);
//Kandidat baru
5)
6)
C k =Ø;
forall entries t
 C k 1 do
begin //untuk
menentukan himpunan
itemset di dalam Ck terdapat pada transaksi
dengan identfier t.TD
7)
Pada Algoritma Appriori seperti yang
tampak pada kode sumber di bawah, terjadi
pemanggilan fungsi Appriori-gen yang
merupakan
fungsi
algoritma
Appriori
Candidate Generation.
L1={large 1-itemset};.
C1=Database D;
for (k=2;Lk-1=Ø;k++) do begin
8)
Ct={ c  Ck |(c-c[k])
 t.set-of-itemsets ^ (c-c[k-1])
 t.set-of-itemsets };
forall candidates c  Ct
do
9)
c.count++;
10)
end
11)
Lk={ c  Ck | c.count≥minsup}
12) end
13)
Answer=  k
Lk ;
Selain dua algortima di atas ada juga
algoritma hasil modifikasinya, yaitu:
c. Algoritma Incremental mining
Algoritma ini merupakan modifikasi dari
Algoritma
Appriori
dan
Algoritma
ApprioriTid yang dikembangkan oleh Yong
(2001). Di mana tujuan algoritma ini adalah
menentukan profil pengguna di dalam tabel
Interest dan tabel Behavior.
Personalisasi Rekomendasi
Dalam menentukan rekomendasi yang akan
diberikan kepada pengguna, ada dua
pendekatan yang umum digunakan dalam
personalisasi rekomendasi (Balabanovic 1997)
yaitu:
a. Content-Based Recommendation
Pendekatan yang digunakan dalam
content-based
untuk
menghasilkan
rekomendasi berasal dari teknik temu
kembali
informasi.
Teks
dokumen
direkomendasi berdasarkan perbandingan
antara isi dokumen dengan profil pengguna.
Rekomendasi
yang
akan
dihasilkan
berdasarkan tingkat kesesuaian isi konten
suatu dokumen dengan isi konten dokumendokumen yang pernah diunduh oleh
pengguna sebelumnya.
Ada dua kelemahan yang terdapat di
dalam pendekatan content-based. Kelemahan
pertama adalah bahwa sistem ini umumnya
hanya dapat digunakan untuk item yang
berisi teks. Untuk item yang berisikan media
yang lain yang tidak menggunakan teks
seperti film dan musik, pendekatan contentbased tidak dapat digunakan.
3
Kelemahan yang kedua adalah sistem
hanya dapat merekomendasikan item yang
memiliki nilai tinggi terhadap profil
pengguna, pengguna hanya dapat melihat
rekomendasi item yang mirip dengan yang
telah dilihat sebelumnya. Jika jumlah
pengguna yang ada jauh lebih sedikit dengan
volume informasi yang ada (karena ada
perubahan dalam jumlah yang besar atau
terlalu cepat di dalam basis data) maka akan
menghasilkan rekomendasi yang terlalu luas.
b.Collaborative Recommendation
Pendekatan
Collaborative
Recommendation berbeda dengan ContentBased.
Pendekatan
Collaborative
Recommendation tidak merekomendasi item
yang karena kemiripan item yang diminati
pengguna
pada
masa
lalu,
tetapi
merekomendasikan item yang diminati
pengguna yang lain.
Pendekatan inipun memiliki kelemahan.
Kelemahan yang pertama adalah, jika
terdapat item yang baru di dalam basis data
maka
tidak
dapat
langsung
direkomendasikan sampai ada pengguna lain
berminat terhadap item tersebut.
Masalah yang kedua yang dihadapi
adalah jika terdapat pengguna yang memiliki
selera yang berbeda (tidak lazim), maka
tidak ada pengguna yang lain yang bisa
dikatakan mirip dengan pengguna tersebut,
sehingga tidak dapat menghasilkan suatu
rekomendasi (poor recommendation)
Profil Minat (Interest Profile)
Jika support (c) didefinisikan sebagai
support atas kategori c. Kemudian, jika
diberikan sebuah threshold α, maka Interest
Profile (I) pengguna didefinisikan sebagai
berikut:
I={c| Support (c)≥ α } ........................................(1)
Jika count (c) didefinisikan sebagai jumlah
kemunculan kategori c dalam data transaksi
suatu pengguna. Kemudian, jika first (c) adalah
kemunculan yang pertama kategori c di dalam
himpunan transaksi pengguna. Serta jika
diberikan himpunan transaksi pengguna dengan
sebanyak T transaksi, maka tingkat minat
pengguna terhadap kategori c (support (c))
didefinisikan sebagai berikut:
Support(c) 
count(c)
T  first(c)  1
........................(2)
Profil Perilaku (Behavior Profile)
Jika support[c,d] didefinisikan sebagai
support atas 2-category set [c,d]. Kemudian,
jika diberikan threshold β, maka Behavior
Profile (B) pengguna didefinisikan sebagai
berikut:
B= {[c,d]| Support [c,d]≥ β }……………….……..(3)
Jika count [c,d] didefinisikan sebagai
jumlah kemunculan 2-set category [c,d] dalam
data transaksi suatu pengguna. Kemudian, jika
first [c,d] adalah kemunculan yang pertama 2set category [c,d] di dalam himpunan transaksi
pengguna. Serta jika diberikan himpunan
transaksi pengguna sebanyak T transaksi, maka
tingkat perilaku pengguna terhadap kategori c
dan d (support [c,d]) didefinisikan sebagai
berikut:
Support[c, d] 
count[c, d]
T  first[c, d]  1
..................(4)
Dynamic Clustering
Dynamic Clustering dikembangkan oleh
Yong (2001), di mana digunakan jarak
Euclidean untuk mengukur jarak masingmasing matriks vektor. Berikut ini algoritma
Dynamic Clustering:
1) forall vector matrix do
2) if cluster=Ø then
3)
create new cluster;
4)
centroid=vector matrix;
5) end
6) else
7)
if minimal distance ≤ δ then
8)
put vector matrix into cluster
with shortest distance;
9)
update centroid considering the
vector matrix;
10)
end
11) else
12)
create new cluster;
13)
centroid=vektor matriks;
14) end
15) end
16) End
Euclidean distance
Jika A dan B merupakan sebuah matriks
vektor, serta Ai dan Bi merupakan elemen ke-i
dari vektor A dan vektor B, maka jarak
Euclidean vektor A dengan vektor B
dirumuskan sebagai berikut:
Distance(A, B) 


n
2
 A  Bi
i 1 i
……….......(5)
Web Mining
Web mining adalah proses menggali dan
menemukan suatu informasi (knowledge)
menggunakan teknik data mining terhadap
4
dokumen, layanan, dan data pada World Wide
Web (Etzoni 1996). Web mining merupakan
bagian dari proses data mining yang khusus
dilakukan pada sebuah situs web.
Klasifikasi web mining dapat dibagi dalam
tiga kategori (Huysmans et al. 2004), yaitu:
a. Web content mining
Web content mining adalah penggalian
informasi
dari
konten/informasi
dan
dokumen web untuk membantu pengunjung
menemukan informasi yang diinginkannya.
b.Web structure mining
Web structure mining
adalah ekstraksi
informasi struktur link situs web untuk
mengelompokkan interkoneksi dokumen
web sehingga memudahkan pencarian
informasi dari situs web lain.
c. Web usage mining
Web usage mining adalah aplikasi teknik
data mining untuk mengetahui pola akses
pengunjung terhadap suatu situs web. Pola
akses ini diolah dari data sekunder yang
menyimpan aktivitas pengunjung seperti data
log server, log proxy, log browser, session,
cookies, dan sebagainya.
METODOLOGI
Metodologi
yang digunakan
dalam
penelitian ini mengikuti dan mengadaptasi
semua tahapan pengembangan sistem sesuai
linear sequential model seperti berikut :
1. Analisis
Pada tahapan ini akan dilakukan proses
analisis mengenai permasalahan yang
berhubungan dengan kebutuhan sistem.
Hasil analisis yang didapat adalah:
a. Sistem harus dapat menampilkan semua
koleksi wallpaper dan informasi yang
berkaitan dengan walllpaper tersebut yang
ada dalam basis data.
b. Sistem harus dapat mencatat setiap kali
pengguna mengunduh sebuah koleksi
wallpaper.
c. Sistem harus dapat menghitung dan
menentukan profil minat dan profil
perilaku setiap pengguna berdasarkan data
transaksi wallpaper yang telah diunduh.
d. Sistem harus dapat membentuk matriks
vektor setiap pengguna berdasarkan profil
pengguna pengguna.
e. Sistem harus dapat mengelompokkan
setiap pengguna ke dalam cluster
berdasarkan jarak masing-masing vektor
matriks setiap pengguna.
f. Sistem
harus
dapat
memberikan
rekomendasi koleksi wallpaper yang
belum diunduh kepada pengguna dari
koleksi yang sudah diunduh pengguna lain
yang memiliki minat dan perilaku yang
mirip dengan
pengguna di dalam
kelompok cluster sama.
2. Desain
Hal-hal yang akan dilakukan dan
diperoleh dalam tahap ini adalah :
a. Membuat basis data yang akan berisikan
informasi-informasi yang berkaitan dengan
koleksi wallpaper.
b. Membuat algoritma pencatatan yang akan
mencatat setiap kali pengguna mengunduh
koleksi wallpaper.
c. Membuat algoritma yang akan menghitung
dan menentukan profil minat dan profil
perilaku setiap pengguna berdasarkan data
transaksi yang telah tercatat sebelumnya.
d. Membuat
algoritma
yang
dapat
menghasilkan matriks vektor pengguna
berdasarkan profil minat dan profil
perilaku setiap pengguna.
e. Membuat algoritma clustering dengan
menggunakan Euclidean Distance untuk
mengelompokkan penguna berdasarkan
jarak masing-masing vektor matriks
pengguna.
f. Membuat
algoritma
yang
dapat
memberikan rekomendasi koleksi yang
belum diunduh berdasarkan koleksi yang
sudah diunduh pengguna lain yang
memilik profil minat dan perilaku yang
sama dengan pengguna di dalam satu
cluster pengguna.
g. Membuat desain antarmuka pengguna
yang dapat menampilkan wallpaper yang
ada di dalam basis data dan informasiinformasi yang lain berkaitan dengan
wallpaper
tersebut
serta
dapat
menampilkan rekomendasi koleksi untuk
masing-masing pengguna.
3. Pengkodean (Code)
Pada tahap ini akan dilakukan proses
implementasi pengkodean program sesuai
analisis dan perancangan yang sudah
dilakukan.
4. Pengujian (Test)
Pada tahap ini dilakukan proses
pengujian dan percobaan terhadap terhadap
sistem sesuai dengan spesifikasi yang
ditentukan sebelumnya.
Faktor yang digunakan dalam percobaan
adalah nilai-nilai threshold yang digunakan
dalam proses perhitungan.
Hal-hal yang akan diamati selama
dilakukan proses pengujian terhadap sistem
yang dikembangkan:
a. Jumlah cluster yang terbentuk.
Download