Temu Kembali Informasi Model Vector Space Putra Pandu Adikara, S.Kom, M.Kom Rizal Setya Perdana, S.Kom, M.Kom Indriati, S.T, M.Kom Universitas Brawijaya
Outline Vector Space Model Pembobotan Term (TF, IDF) Cosine Similarity Case Study Latihan Individu & Tugas Kelompok Demo program IR (Java + Matlab)
Review Boolean Model Kelebihan: Mengembalikan dokumen pencarian yang match saja atau tidak sama sekali. Sangat cocok untuk expert user yang sudah pengalaman tentang kebutuhan pencarian mereka (misalnya di library search, bookstore search, etc). Aplikasi dengan konsep Boolean Retrieval Model dapat menghemat konsumsi waktu pencarian dokumen dalam search engine.
Review Boolean Model Kekurangan: Tidak bagus untuk sebagian besar pengguna. Sebagian besar pengguna tidak mampu menulis Query Boolean dengan baik (mereka berpikir itu akan menambah pekerjaan dalam pencarian). Sebagian besar pengguna tidak ingin mengarungi hasil pencarian yang banyak dan kurang spesifik (misalnya, web search). Query Boolean sering menghasilkan pencarian dengan jumlah yang kadang-kadang terlalu sedikit (=0) atau terlalu banyak (=1000000). Contohnya: Query 1: “standard AND user AND dlink AND 650” → 200,000 hits Query 2: “standard AND user AND dlink AND 650 AND NO found” → 0 hits
Model Pencarian yang Baik? Pencocokan dengan memilih yang terbaik (best match) Query mendeskripsikan dokumen yang paling baik atau yang paling cocok Hasilnya daftar dokumen yang diurutkan Hasil perolehan dokumen dapat memberi petunjuk mengenai kualitas dokumen Model pencocokan berdasarkan yang terbaik biasanya memperlihatkan perolehan yang lebih baik Dokumen yang relevan muncul di urutan teratas
Model Vector Space Vector Space Model adalah Model proses pencarian informasi dari query yang menggunakan ekspresi kemiripan berdasarkan frekuensi terms/token/kata yang terdapat pada dokumen. Ekspresi Vector Space berupa faktor similarity dari kumpulan nilai frekuensi kemunculan term/token/kata dalam korpus yang membentuk matrik vektor. Hasil perhitungannya dapat berupa nilai binary (1 atau 0) maupun nilai kontinyu yang ada di antara keduanya [0,1]. Contohnya ketika menghitung nilai Cosine Similarity. Artinya, Vector Space Model (VSM) mampu mempertimbangan dokumen yang ‘mirip’ dengan dokumen query pencariannnya.
Model Vector Space Scoring merupakan dasar untuk melakukan proses pemeringkatan dari hasil dokumen yang telah di-retrieval. Harapannya, setiap pengembalian hasil pencarian untuk suatu dokumen yang dicari adalah dokumen yang paling berguna untuk user. Bagaimana kita membuat proses pemeringkatan (rank-order) dari beberapa dokumen dalam koleksi yang berhubungan dengan query yang dijalankan? Menetapkan skor (score), misalkan dalam interval [0, 1] untuk setiap dokumen. Skor ini dapat digunakan untuk mengukur seberapa baik tingkat "match" dokumen yang dicari dengan query yang dibuat.
Model Vector Space Kelebihan: Kekurangan: Lebih efektif daripada pencocokan yang tepat Lebih mudah digunakan (mendukung query teks utuh) Memberikan bobot kata Dapat mengukur similarity antara dokumen dan query Kekurangan: Teks yang utuh tidak berarti mengerti bahasa alami Kurang efisien dibandingkan dengan pencocokan secara tepat (tidak dapat menolak dokumen lebih awal) Tidak memasukkan unsur relevansi, kebutuhan informasi seseorang, model bahasa, dll.
Model Vector Space Contoh dari sistem ini: SMART yang dikembangkan oleh Salton dkk. Lucene (mesin pencari yang open source)
Pemodelan vector ruang (d) dokumen, t (term) Model Vector Space Dokumen, query, kata merupakan vector pada ruang berdimensi tinggi Postulate: Dokumen yang saling “berdekatan” pada dimensi vector ruang memiliki isi yang sama Pemodelan vector ruang (d) dokumen, t (term)
Representasi dokumen & query Dokumen & query direpresentasikan sebagai jumlah dari vektor-vector katanya Anjing kucing Dok 1 Anjing Query (Q)
Koefisien Vektor Koefisien (elemen vector, bobot kata) merepresentasikan tingkat kepentingan dari suatu kata Pada model tidak terdapat petunjuk mengenai cara memberi bobot kata Beberapa pilihan bobot kata: Biner : nilai 1 jika ada, nilai 0 jika tidak ada TF: Frekuensi jumlah kata pada suatu dokumen TF * IDF: IDF mengindikasikan seberapa unik/berbeda terhadap kemunculan kata pada kumpulan dokumen
Model Vector Space Perbandingan Model: Boolean & Vector Space Boolean: Setiap dokumen direpresentasikan dengan binary vector ∈ {0,1} Vector: Setiap dokumen dibentuk dalam jumlah real vector ∈ ℕ Antony and Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth Antony 1 Brutus Caesar Calpurnia Cleopatra mercy worser Antony and Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth Antony 157 73 Brutus 4 1 Caesar 232 227 2 Calpurnia 10 Cleopatra 57 mercy 3 5 worser
Model Vector Space Structure: Vector Space Model Membuat vektor “query/dokumen yang dicari/keyword pencarian” dalam bentuk terms weighting Membuat vektor “dokumen” dalam terms weighting Menghitung nilai “Cosine Similarity” dari ruang vektor “query” terhadap setiap ruang vektor “dokumen” Mengurutkan dokumen berdasarkan query/dokumen yang dicari/keyword pencarian Mengambil N tertinggi(e.g., top-N = 10) untuk pengguna/user
Model Vector Space Bag of Words: Vector Space Model Representasi vektor tidak mempertimbangkan urutan kata dalam dokumen. Contohnya sebagai berikut: Doc 1: "John is quicker than Mary" dan Doc 2: "Mary is quicker than John" Dokumen 1 dan 2 dianggap mempunyai nilai vektor yang sama. Inilah yang disebut sebagai "bag of words model". Ketika ingin membedakan dokumen tersebut, maka dapat dilihat dari posisi indeks dari kata yang sama.
Pembobotan Kata Term Weighting: Term Frequency (TF) TFt,d adalah banyaknya kemunculan term/token/kata t dalam dokumen d. Bobot dari TF(TF weight) dapat dihitung menggunakan rumus berikut: Inverse Document Frequency (IDF) IDFt adalah banyaknya dokumen yang mengandung term/token/kata t. Rumus untuk menghitung IDFt adalah sebagai berikut: N menyatakan banyaknya dokumen yang ada.
Pembobotan Kata TF.IDF Weighting Bobot TF.IDF dari suatu term/token/kata merupakan hasil perkalian antara tf weight dengan idf. N = jumlah total dokumen dft = banyak dokumen yang memuat t tft,d = frekuensi kemunculan kata t pada dokumen d
Case Study A (1 of 6) Perhatikan tabel berikut. (Vektor baris menyatakan keberadaan suatu Token/Term/Kata unik yang ada dalam semua dokumen. Vektor kolom menyatakan semua nama dokumen yang digunakan). Diketahui N=6 dokumen dengan masing-masing kata yang terdapat di dalamnya. Setiap dokumen direpresentasikan dengan nilai real dari frekuensi setiap token/term/kata dalam bentuk vektor space. tf Antony & Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth Antony 157 73 Brutus 4 1 Caesar 232 227 2 Calpurnia 10 Cleopatra 57 Mercy 3 5 Worser
Case Study A (2 of 6) Hitung tf weight Wtf Antony & Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth Antony 1+ 10log(157) 1+ 10log(73) Brutus 1+ 10log(4) 1+ 10log(1) Caesar 1+ 10log(232) 1+ 10log(227) 1+ 10log(2) Calpurnia 1+ 10log(10) Cleopatra 1+ 10log(57) Mercy 1+ 10log(3) 1+ 10log(5) Worser
Case Study A (3 of 6) Hitung tf weight Wtf Antony & Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth Antony 3.195899652 2.86332286 Brutus 1.602059991 1 Caesar 3.365487985 3.356025857 1.301029996 Calpurnia 2 Cleopatra 2.755874856 Mercy 1.477121255 1.698970004 Worser
Case Study A (4 of 6) Hitung dft: Antony & Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth dft Antony 157 73 2 Brutus 4 1 3 Caesar 232 227 5 Calpurnia 10 Cleopatra 57 Mercy Worser Hitung dft: Hitung nilai idft (Inverse Document Frequency): dft idft Antony 2 10log (6/2) 0.47712125 Brutus 3 10log (6/3) 0.30103 Caesar 5 10log (6/5) 0.07918125 Calpurnia 1 10log (6/1) 0.77815125 Cleopatra Mercy Worser 4 10log (6/4) 0.17609126
Case Study A (5 of 6) Hitung Wt,d: Wtf Antony & Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth idft Antony 3.195899652 2.86332286 0.47712125 Brutus 1.602059991 1 0.30103 Caesar 3.365487985 3.356025857 1.301029996 0.07918125 Calpurnia 2 0.77815125 Cleopatra 2.755874856 Mercy 1.477121255 1.698970004 Worser 0.17609126 Wt,d Antony & Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth Antony 1.524831652 1.366152196 Brutus 0.482268112 0.962061659 0.301029996 Caesar 0.266483532 0.265734309 0.103017176 0.079181246 0.07918 Calpurnia 1.556302501 Cleopatra 2.144487465 Mercy 0.116960302 0.134526562 Worser 0.22910001 0.176091259
Case Study A (6 of 6) Hitung Normalization Wt,d: Wt,d Antony & Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth Antony 0.56472793 0.594281114 Brutus 0.17861006 0.418500279 0.776384136 Caesar 0.098693317 0.115595379 0.265690803 0.33648421 0.70711 Calpurnia 0.67699718 Cleopatra 0.794220113 Mercy 0.038152852 0.553278482 0.346956417 0.57167658 Worser 0.08484817 0.832996352 0.454155606 0.7483076
Latihan Individu 1 Diberikan kumpulan dokumen yang memiliki terms frekuensi A(3), B(2) dan C(1) pada Doc2. Jika jumlah semua dokumen diasumsikan 10000 dan dokumen frekuensi terms- nya adalah A(50), B(1300), C(250). Tentukan Wt,d dari term A,B dan C pada dokumen Doc2: tf Doc1 Doc2 .. Doc10000 dft A .3 50 B 2 1300 C 1 250
Cosine Similarity Cosine similarity adalah fungsi yang digunakan untuk menghitung besarnya derajat kemiripan di antara dua vector (dokumen dan query). Ukuran nilai Cosine similarity dihitung berdasarkan besarnya nilai fungsi cosine terhadap sudut yang dibentuk oleh dua vector (dokumen dan query). Proximity Cosine similarity: proximity = similarity of vectors proximity ≈ inverse of distance Dokumen Vs Query (Dokumen Lain) dua Vector: Dokumen(Di) & Query(Q) direpresentasikan sebagai titik atau vektor dalam space. Menghitung tingkat kemiripan Dokumen satu dengan Query (Dokumen lain).
Jarak antar vektor Cosine Similarity Jarak antara vector (dokumen & query) merupakan kosinus (cosine) dari sudut x diantara kedua vektor
Jarak antar vektor Representasi grafik dari Di dan Q: T3 T1 T2 Misalnya: D1 = 2T1 + 3T2 + 5T3 D2 = 3T1 + 7T2 + T3 Q = 0T1 + 0T2 + 2T3 Apakah D1 atau D2 yang lebih besar kemiripannya terhadap Q? Bagaimana cara menghitung besarnya kemiripan (similarity) diantara setiap dua vektor tersebut? T3 T1 T2 D1 = 2T1+ 3T2 + 5T3 D2 = 3T1 + 7T2 + T3 Q = 0T1 + 0T2 + 2T3 7 3 2 5
Cosine Similarity Rumus untuk menghitung nilai similarity diantara dua vektor adalah sebagai berikut: Without normalization Wt,d: With normalization Wt,d: CosSim(dj, q) = CosSim(dj, q) =
Case Study B (1 of 5) Perhatikan tabel dokumen-dokumen novel berikut: AAC: Ayat-Ayat Cinta KCB: Ketika Cinta Bertasbih ADH: Asmara Di Atas Haram Setiap dokumen direpresentasikan dengan nilai real dari frekuensi setiap token/term/kata dalam bentuk vektor space. Tentukan nilai kemiripan dari setiap novel tersebut menggunakan konsep Cosine Similarity! tf AAC KCB ADH Cinta 227 99 Benci 15 10 Cemburu 7 Wanita 12 19
Case Study B (2 of 5) Hitung tf weight Wtf AAC KCB ADH Cinta 1 + 10log(227) 1 + 10log(99) Benci 1 + 10log(15) 1 + 10log(10) Cemburu 1 + 10log(7) Wanita 1 + 10log(12) 1 + 10log(19) Wtf AAC KCB ADH Cinta 3.356025857 2.995635195 Benci 2.176091259 2 Cemburu 1.84509804 Wanita 2.079181246 2.278753601
Case Study B (3 of 5) Hitung dft: Hitung nilai idft (Inverse Document Frequency): tf AAC KCB ADH dft Cinta 227 99 2 Benci 15 10 Cemburu 7 Wanita 12 19 tf AAC KCB ADH dft idft Cinta 227 99 2 10log (3/2) 0.17609126 Benci 15 10 Cemburu 7 Wanita 12 19
Case Study B (4 of 5) Hitung Wt,d: Wtf AAC KCB ADH idft Cinta 3.356025857 2.995635195 0.17609126 Benci 2.176091259 2 Cemburu 1.84509804 Wanita 2.079181246 2.278753601 Wt,d AAC KCB ADH Cinta 0.590966819 0.527505173 Benci 0.38319065 0.352182518 Cemburu 0.324905637 Wanita 0.366125643 0.401268591
Case Study B (5 of 5) Hitung Normalization Wt,d: Hitung Cosine Similarity: Wt,d AAC KCB ADH Cinta 0.761894003 0.720287255 Benci 0.494022082 0.480891169 Cemburu 0.418879112 0.659641586 Wanita 0.49992995 0.75158032 Kesimpulan: Jadi dokumen Novel AAC dan KCB lebih besar similarity-nya daripada Novel AAC dengan ADH. Note: Semakin kecil sudut yang dibentuk oleh dua vektor, maka akan semakin besar nilai similarity-nya. Semakin besar sudut yang dibentuk oleh dua vektor, maka similarity-nya akan semakin kecil. CosSim(dj, q) = cosSim AAC KCB ADH 1 0.786353396 0.276310082 0.375737512
Latihan Individu 2 Perhatikan tabel dokumen-dokumen novel berikut: AAC: Ayat-Ayat Cinta KCB: Ketika Cinta Bertasbih ADH: Asmara Di Atas Haram Jika Wt,d = Wtf.Tentukan nilai kemiripan dari setiap novel tersebut menggunakan konsep Cosine Similarity! tf AAC KCB ADH Cinta 115 58 20 Benci 10 7 11 Cemburu 2 6 Wanita 38
Tugas Kelompok Perhatikan semua daftar token/term/kata dari 8 dokumen berikut: Terms: Token/term/kata = {'drink','eat','food','fork','spoon','water'}; Dokumen: docs{1} = “drink water drink drink”; docs{2} = “eat drink spoon”; docs{3} = “water drink drink water”; docs{4} = “eat food eat food food”; docs{5} = “fork spoon spoon fork fork”; docs{6} = “eat food food eat eat”; docs{7} = “fork spoon fork spoon”; docs{8} = “food water fork”; Buatlah tabel vector space model-nya, lalu tentukan nilai kemiripan dari setiap dokumen tersebut menggunakan konsep Cosine Similarity !
Selesai