VECTOR SPACE
MODEL
Budi Susanto
Tujuan
• Memahami model index berdasar pada bobot untuk
binary retrieval model
• Memahami model retrieval berdasar perangkingan
• Memahami vector space model dalam information
retrieval
Parametric dan zone Index
• Sebuah dokumen, selain tersusun dari deretan term, juga
mengandung metadata.
• Contoh: judul, pengarang.
• Metadata adalah bentuk khusus data tentang dokumen.
• Metadata tersebut umumnya disertai dengan beberapa
field, seperti tanggal pembuatan, format dokumen, status.
• Index yang juga menyertakan field pada postings nya
disebut sebagai parametric index.
• Nilai yang mungkin dicari dari fields sebaiknya terbatas, yaitu
berdasar nilai-nilai yang terindex.
Parametric dan zone Index
• Zone index serupa dengan parametric hanya saja nilai
yang tersimpan adalah free text.
• Contoh zone index untuk metadata judul, pengarang.
• Sebaiknya dibangun inverted index terpisah untuk tiap
zone.
Contoh
• Query:
• data mining AND judul:apriori OR thn:[2002 TO 2010] OR
dosen1:BUDI SUSANTO
Inverted Index untuk Zone Index
• Bentuk Struktur Dasar
• Bentuk Struktur Terenkodekan
Weighted zone scoring
• Diberikan sebuah Boolean query q dan sebuah dokumen d, weighted zone scoring menyatakan sebuah nilai untuk
pasangan (q, d) dalam suatu nilai interval [0, 1], dengan perhitungan sebuah kombinasi linier dari zone score.
• Diberikan sehimpunan dokumen dimana setiap dokumen
memiliki zone. • Diberikan • Sehingga
g1,..., g∈ 0,1[ ]
g
i= 1
i=1 ∑
Weighted zone scoring
• Untuk 1 ≤ I ≤ , diberikan si sebagai nilai Boolean yang
menyatakan ada atau tidaknya antara q dan zone ke-i.
• Sebagai contoh, nilai Boolean dari sebuah zone bernilai 1
jika semua term query muncul dalam zone tersebut, dan 0 jika sebaliknya. Sehingga weighted zone score
didefinisikan:
• Weighted zone scoring disebut juga ranked Boolean retrieval.
Text & Web Mining - Budi Susanto - TI UKDW 8
g
is
ii=1
Weighted zone scoring
• Terdapat 3 buah zone: author, title, dan body.
• Bobot masing-masin zone:
• g1 = 0.2
• g2 = 0.3
• g3 = 0.5
• Query : shakespeare.
• Jika sebuah dokumen mengandung query di zone title
dan body, berapa nilai dokumen tersebut?
• 0.2 * 0 + 0.3 * 1 + 0.5 * 1 = 0.8
Weighted zone scoring
Learning weights
• Bagaimana caranya menentukan nilai bobot tiap zone gi?
• Diberikan oleh pakar atau pendapat umum pemakai
• Melalui pembelajaran menggunakan contoh pelatihan yang telah
dinilai secara editorial.
• Dikenal sebagai machine-learned relevance.
• Pengembangan machine-learned relevance:
1. Menyediakan sekumpulan contoh pelatihan,masing-masing
terdiri dari pasangan sebuah query, q, dan sebuah dokumen, d, beserta penilaian relevansi untuk d terhadap q.
2. Bobot gi kemudian “dipelajari” dari contoh-contoh tersebut,
dalam rangka nilai skor hasil pembelajaran mendekati penilaian relevansi dalam contoh pelatihan.
Learning weights
Learning weights
• Setiap dokumen pelatihan, d, dan query pelatihan, q,
dihitung nilai skor:
• Dari hasil penilaian dari editor untuk setiap dokumen
pelatihan, akan diberikan nilai r(dj, qj)
• 0 jika tidak relevan
• 1 jika relevan
• Sehingga dapat dihitung nilai error dari tiap dokumen
pelatihan:
Learning weights
• Nilai konstanta g diuji cobakan berulang-ulang untuk nilai
[0, 1]
• Diantara percobaan tersebut, dipilih untuk nilai konstanta
dengan nilai total error terkecil.
Ranked Retrieval Model
• Bentuk inverted index untuk parametric dan zone index
(slide 5) digunakan untuk Boolean query.
• Dokumen cocok dengan query atau tidak.
• Boolean query cocok untuk pemakai yang sudah pakar
• Mudah dalam menterjemahan kebutuhan informasi menjadi
sebuah boolean query.
• Boolean query tidak cocok untuk pemakai pada
umumnya.
Ranked Retrieval Model
• Ranked Retrieval model akan mengembalikan
dokumen-dokumen k-teratas dalam kolekasi untuk query.
• Menggunakan pendetakan query free text.
• Mengabaikan operator atau ekspresi boolean.
• Oleh karena mengembalikan k-dokumen teratas, maka
seberapapun besarnya hasil query bukan menjadi suatu masalah.
Ranked Retrieval Model
• Kita ingin mengembalikan dokumen-dokumen yang
memiliki kemiripan dengan query.
• Untuk itu dibutuhkan suatu mekanisme perhitungan skor
antara query dengan tiap dokumen.
• Misalnya nilai peringkat tiap dokumen yang relevan [0, 1].
• Jika term query tidak muncul dalam dokumen, score adalah 0
• Semakin besar frekuensi term query muncul dalam dokumen,
maka score juga akan besar.
• Kita akan membicarakan beberapa alternatif pemberian
nilai score.
Alt. 1: Jaccard Coefficient
• Secara umum digunakan untuk mengukur overlap dua
himpunan A dan B.
• jaccard(A,B) = |A ∩ B| / |A ∪ B|
• jaccard(A,A) = 1
• jaccard(A,B) = 0 if A ∩ B = 0
• A dan B tidak perlu dalam ukuran vektor yang sama.
• Contoh berapa nilai JC?
• Query: ides of march
• Document 1: caesar died in march
• Document 2: the long march
Kelemahan JC
• Tidak memperhatikan term frequency
• Sangat dipengaruhi oleh ukuran kata dalam tiap
dokumen.
• Kecenderungannya: Semakin besar dokumen maka nilai JC akan
semakin kecil, walaupun dokumen tersebut relevan.
• JC tidak memperhatikan “term yang jarang muncul dalam
dokumen lebih informatif daripada term yang sering muncul.”
• Perlu adanya alternatif untuk menormalisasikan panjang.
• Sehingga JC dengan normalisasi panjang adalah
|A B| |A B|
Term Frequency
• Daripada menggunakan incidence matrix, yang hanya
mencatat ada atau tidak sebuah term dalam dokumen, pembobotan munculnya kata dalam dokumen dapat digunakan.
Text & Web Mining - Budi Susanto - TI UKDW 20
Antony and Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth
Antony 157 73 0 0 0 0 Brutus 4 157 0 1 0 0 Caesar 232 227 0 2 1 1 Calpurnia 0 10 0 0 0 0 Cleopatra 57 0 0 0 0 0 mercy 2 0 3 5 5 1 worser 2 0 1 1 1 0
Bag of word
• Representasi vektor TF tidak mencerminkan urutan kata
dalam dokumen.
• Contoh: antara dokumen berisi “Indah suka Andi” denagn “Andi
suka Indah” memiliki vektor yang sama.
• Ini disebut sebagai bag of word.
Term Frequency - tf
• Term Frequency, @t,d, mendefiniskan jumlah kemunculan
kata t dalam dokumen d.
• Kita ingin menggunakan tf saat perhitungan nilai
kemiripan antara dokumen dan query.
• Sebuah dokumen dengan 10 kemunculan term lebih relevan
daripada 1 kali kemunculan term tersebut.
• Namun tidak menunjukkan 10 kali lebih relevan.
• Contoh q=“Ibu Kota Indonesia”
• D1 = “Ibu kota Negara Indonesia adalah Jakarta. Jakarta
merupakan ibu kota daerah khusus Jakarta.”
• Maka nilai score(q, D1) = tibu + tkota + tindonesia
Log-‐frequency weighGng
• Relevansi sebuah dokumen tidak akan semakin tinggi jika
tf semakin tinggi.
• Log-frequency weighting dari t dalam d
• Score dari pasangan s(q, d) dapat dihitung dengan
⎩ ⎨ ⎧ + > = otherwise 0, 0 tf if , tf log 1 10 t,d t,d t,d w
∑
∈ ∩+
=
t q d(1
log
tf
t,d)
Frekuensi Dokumen
• Sekarang kita ingin lebih memperhatikan tentang term
yang jarang muncul,
• Term yang jarang muncul lebih informatif daripada term yang
sering muncul
• Contohnya stop word.
• Kita akan menggunakan frekuensi dokumen untuk
mencoba memperhatikan hal tersebut.
Frekuensi Dokumen
• dft adalah frekuensi dokumen untuk kata t.
• Jumlah dokumen yang mengandung kata t.
• dft adalah ukuran pembalik dari keinformatifan dari term t.
• dft ≤ N
• Kita definisikan idf (inverse document frequency) sebagai
)
/df
(
log
idf
t=
10N
tContoh idf
• Misalnya N = 1 juta dokumen
Text & Web Mining - Budi Susanto - TI UKDW 26
term dft idft calpurnia 1 animal 100 sunday 1,000 fly 10,000 under 100,000 the 1,000,000
Pengaruh idf untuk peringkat
• Apakah idf memberi pengaruh pada peringkat untuk query
satu term?
• TIDAK!
• Idf memiliki pengaruh pada peringkat jika query
mengandung lebih dari 2 term.
Frekuensi Koleksi atau Dokumen
• Frekuensi koleksi dari term t adalah jumlah total
kemunculan term t dalam koleksi dokumen.
• Mana yang lebih baik antara frekuensi koleksi atau
dokumen untuk menunjukkan bahwa term yang jarang muncul lebih informatif?
Text & Web Mining - Budi Susanto - TI UKDW 28
Word Collection frequency Document frequency
insurance 10440 3997
tf-idf
• tf-idf sebuah term dalam kumpulan dokumen dapat
dihitung sebagai
• Bobot akan semakin besar jika term semakin jarang
dalam koleksi.
• Bobot dari pasangan dokumen, d, dengan query, q, dapat
dihitung sebagai
w
t,d= 1+ log(tf
t,d) × log
10(N / df
t)
€
Score(q,d) =
tf.idf
t,d t ∈q∩d∑
Matrik bobot
• Binary -> frekuensi -> matrik bobot
Text & Web Mining - Budi Susanto - TI UKDW 30
Antony and Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth
Antony 5.25 3.18 0 0 0 0.35 Brutus 1.21 6.1 0 1 0 0 Caesar 8.59 2.54 0 1.51 0.25 0 Calpurnia 0 1.54 0 0 0 0 Cleopatra 2.85 0 0 0 0 0 mercy 1.51 0 1.9 0.12 5.25 0.88 worser 1.37 0 0.11 4.15 0.25 1.95
Dokumen sebagai Vektor
• Sekarang kita memiliki |V|-dimensional vector space
• Term adalah sumbu dari space
• Dokumen adalah titik/vektor dalam space tersebut
• Web search engine pada umumnya memiliki dimensi
yang sangat tinggi.
• Namun memiliki sparse vector, yaitu kebanyakan bernilai
0.
• Terhadap query, kita akan membawa query ke dalam
space.
Query sebagai vektor
• Kunci ide 1 : lakukan hal yang sama terhadap query
(seperti terhadap dokumen): representasikan query sebagai vektor dalam space.
• Kunci ide 2 : lakukan perangkingan dokumen berdasar
kedekatan dengan query dalam space
• Kedekatan (proximity) = kemiripan vektor
• Sehingga perangkingan akan menjadi pilihan terbaik
untuk menampilkan dokumen-dokumen yang memiliki kedekatan
• Menempatkan dokumen yang lebih relevan di atas
Vector space proximity
• Pendekatan 1: menghitung jarak antar dua titik (q dan d)
• Jarak antar titik dari 2 vektor
• Formula perhitungan jarak, seperti Eucledian Distance,
adalah pilihan tidak tepat
• Karena Eucledian distance akan menghasilkan nilai yang sangat
besar untuk dua vektor dengan panjang yang berbeda.
Vector space proximity
•
Eucledian distance q
dan d2 bernilai besar
walaupun distribusi
kata antara q dan d2
adalah serupa.
Gunakan sudut daripada jarak
• Percobaan:
• Ambil sebuah dokumen, d.
• Tambahkan isi dokumen d ke dalam dirinya sendiri, d’
• Secara arti, d dan d’ adalah sama.
• Eucledian distance antar d dan d’ akan bernilai besar.
• Namun sudut antara d dan d’ adalah 0.
Dari sudut ke cosinus
• Dua pernyataan berikut ini adalah sama:
• Ranking dokumen dalam urutan descending terhadap sudut antara
query dan dokumen.
• Raking dokumen dalam urutan ascending dari cosine(q,d)
Normalisasi Panjang
• Sebuah vektor dapat dinormalisasikan dengan membagi
setiap komponennya dengan panjangnya – menggunakan L2 norm
∑
=
i ix
x
2 2
d
→= x
[
1, y
1, x
1]
d
→=
x
1x
1 2+ y
1 2+ z
1 2,
y
1x
1 2+ y
1 2+ z
1 2,
z
1x
1 2+ y
1 2+ z
1 2"
#
$
$
%
&
'
'
cosine(query, dokumen)
• qi adalah bobot tf-idf dari term i dalam query.
• di adalah bobot tf-idf dari term i dalam dokumen.
Text & Web Mining - Budi Susanto - TI UKDW 38
∑
∑
∑
= = ==
•
=
•
=
V i i V i i V i i id
q
d
q
d
d
q
q
d
q
d
q
d
q
1 2 1 2 1)
,
cos(
Cosine untuk length-‐normalized vector
• Jika dua vektor masing-masing sudah merupakan
length-normalized, maka cosine dapat dihitung dengan cukup melakukan dot product.
€
cos(
q ,
d ) =
q •
d =
q
id
i i=1 V∑
Ilustrasi kemiripan cosine
Contoh
•How similar are
the novels
•
SaS
:
Sense and
Sensibility
•
PaP
: Pride and
Prejudice, and
•
WH
: Wuthering
Heights?
term SaS PaP WH
affection 115 58 20
jealous 10 7 11
gossip 2 0 6
wuthering 0 0 38
Term frequencies (counts)
Contoh (mengabaikan idf)
Text & Web Mining - Budi Susanto - TI UKDW 42
• Log frequency weighGng
term SaS PaP WH
affection 3.06 2.76 2.30
jealous 2.00 1.85 2.04
gossip 1.30 0 1.78
wuthering 0 0 2.58
• ASer length normalizaGon
term SaS PaP WH
affection 0.789 0.832 0.524 jealous 0.515 0.555 0.465 gossip 0.335 0 0.405 wuthering 0 0 0.588 cos(SaS,PaP) ≈ 0.789 × 0.832 + 0.515 × 0.555 + 0.335 × 0.0 + 0.0 × 0.0 ≈ 0.94 cos(SaS,WH) ≈ 0.79
Cosine score
Contoh
• Terdapat 3 dokumen
• D1 = Manajemen Sistem Informasi
• D2 = Penggajian untuk meningkatkan Sumber Daya Manusia
• D3 = Sistem Informasi Penggajian
• Q = informasi daya manusia
• Hitunglah rangking dari semua dokumen terhadap query
dengan pendekatan vector space model!