Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma...

59
Temu-Kembali Informasi 2017 07: Penskoran, Pembobotan Term & Model Ruang Vektor Husni [email protected] Modifikasi dari slide kuliah Stanford CS276

Transcript of Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma...

Page 1: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Temu-Kembali Informasi2017

07: Penskoran, Pembobotan Term & Model Ruang Vektor

Husni

[email protected]

Modifikasi dari slide kuliah Stanford CS276

Page 2: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Rekap Kuliah Sebelumnya

• Statistika koleksi dan kosa kata: Hukum Heaps dan Zipf

• Kompresi kamus untuk indeks boolean

• String kamus, blocks dan front coding

• Kompresi postings: Gap encoding, prefix-unique codes

• Variable-Byte dan kode gamma

Koleksi (text, xml markup etc) 3,600.0

Koleksi (text) 960.0

Term-doc incidence matrix 40,000.0

postings, uncompressed (32-bit words) 400.0

postings, uncompressed (20 bits) 250.0

postings, variable byte encoded 116.0

postings, g-encoded 101.0

MB

Page 3: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Kuliah Hari Ini; IIR Sub-Bab 6.2-6.4.3

• Temu-kembali berperingkat Ranked retrieval

• Penskoran dokumen Scoring documents

• Frekuensi term Term frequency

• Statistika koleksi Collection statistics

• Skema pembobotan Weighting schemes

• Penskoran ruang vektor Vector space scoring

Page 4: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Temu-Kembali Berperingkat

• Sejauh ini, query kita semuanya berbentuk Boolean.• Dokumennya cocok atau tidak.

• Bagus bagi pengguna pakar dengan pemahaman ketepatan darikebutuhan mereka dan koleksinya.• Juga bagus bagi aplikasi: Aplikasi dapat dengan mudah mengkonsumsi ribuah

hasil.

• Tidak bagus bagi mayoritas pengguna.• Sebagian besar pengguna tidak mampu menuliskan query boolean (atau

mampu tetapi berpikir itu pekerjaan yang terlalu banyak).

• Sebagian besar pengguna tidak ingin mmemriksa ribuan hasil.• Ini terutama benar pada pencarian web.

Ch. 6

Page 5: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Masalah dengan Pencarian Boolean:Pesta atau Kelaparan

• Query boolean sering mengakibatkan terlalu sedikit (=0) atau terlalu banyak (1000) hasil.• Query 1: “standard user dlink 650” → 200,000 hits

• Query 2: “standard user dlink 650 no card found”: 0 hits

• Diperlukan banyak keterampilan hadir Bersama dengan suatu query yang menghasilkan sejumlah hit yang dapat dikelola.• AND memberikan terlalu sedikit; OR memberikan terlalu banyak

Ch. 6

Page 6: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Model Temu-Kembali Berperingkat

• Daripada sehimpuan dokumen yang memenuhi suatu ekspresi query, dalam model retrieval berperingkat, sistem mengembalikan suatupengurutan terhadap dokumen (top) dalam koleksi yang berkaitandengan query

• Query teks bebas: Daripada suatu bahasa query berisi operators danekspresi, query pengguna hanya satu atau lebih kata dalam suatubahasa manusia (alami)

• Prinsipnya, ada dua pilihan terpisah di sini, tetapi praktisnya, model retrieval berperingkat normalnya telah diasosiasikan dengan query teks bebas dan sebaliknya.

6

Page 7: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Pesta atau Lapar: Bukan Masalah dalam Temu-Kembali Berperingkat

• Ketika suatu sistem memproduksi sehimpunan hasil berperingkat, himpunan hasil yang besar bukanlah persoalan lagi

• Betul, ukuran dari himpunan hasil bukanlah suatu persoalan

• Kita hanya menampilkan top k ( ≈ 10) hasil

• Kita tidak membanjari pengguna dengan dokumen hasil

• Alasan (premis): Algoritma pemeringkatan bekerja.

Ch. 6

Page 8: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Penskoran: Basis Temu-Kembali Berperingkat

• We wish to return in order the documents most likely to be useful to the searcher

• How can we rank-order the documents in the collection with respect to a query?

• Berikan suatu skor: katakana dalam [0, 1] untuk setiap dokumen

• Skor ini mengukur seberapa baik dokumen dan query “cocok”.

Ch. 6

Page 9: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Skor Relevansi Query-Dokumen

• Kita perlu suatu cara penentuan skor terhadap suatu paanganquery/dokumen

• Mari kita mulai dengan suatu query satu term

• Jika term query tidak muncul di dalam dokumen: skor menjadi 0

• Semakin sering term query dalam dokumen, akan semakin tinggiskornya

• Kita akan melihat sejumlah alternatif untuk ini.

Ch. 6

Page 10: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

#1: Koefisien Jaccard

• Ingat dari Bab 3: Ukuran overlap dua himpunan A dan B yang umumdigunakan

• jaccard(A,B) = |A ∩ B| / |A ∪ B|

• jaccard(A,A) = 1

• jaccard(A,B) = 0 if A ∩ B = 0

• A dan B tidak harus berukuran sama.

• Selalu berikan nilai antara 0 dan 1.

Ch. 6

Page 11: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Koefisien Jaccard: Contoh Penskoran

• Berapakah skor kesesuaian query-dokumen yang dihitung dengankoefisien Jaccard untuk masing-masing dokumen di bawah ini?

• Query: ides of march

• Dokumen 1: caesar died in march

• Dokumen 2: the long march

Ch. 6

Page 12: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Persoalan dengan Penskoran Jaccard

• Tidak mempertimbangkan term frequency (berapa kali suatu term muncul di dalam suatu dokumen)

• Term yang jarang dalam koleksi lebih informatif daripada term yang sering

• Jaccard tidak melibatkan informasi ini

• Kita perlu cara lebih canggih untuk menormalisasi panjang

• Dalam kuliah ini, akan digunakan

• . . . Menggantikan |A ∩ B|/|A ∪ B| (Jaccard) untuk normalisasi panjang.

| B A|/| B A|

Page 13: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Ingat: Matrisk Biner Hubungan Term-Dokumen

Antony and Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth

Antony 1 1 0 0 0 1

Brutus 1 1 0 1 0 0

Caesar 1 1 0 1 1 1

Calpurnia 0 1 0 0 0 0

Cleopatra 1 0 0 0 0 0

mercy 1 0 1 1 1 1

worser 1 0 1 1 1 0

Setiap dokumen direpresentasikan oleh vektor biner ∈ {0,1}|V|

Sec. 6.2

Page 14: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Matriks Hitungan Term-Dokumen

• Perhatikan jumlah kemunculan term dalam suatu dokumen: • Setiap dokumen adalah suatu vektor jumlah dalamℕv: kolom berikut

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

Sec. 6.2

Page 15: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Model Bag of Words

• Representasi vektor tidak mempertimbangkan urutan dari kata di dalam suatu dokumen

• John is quicker than Mary dan Mary is quicker than John mempunyaivektor yang sama

• Ini disebut model bag of words (tas berisi kata-kata).• Dalam arti, ini adalah langkah mundur: Indeks berposisi telah mampu

membedakan dua dokumen ini.

• Kita akan lihat “pemulihan” informasi posisi di kuliah selanjutnya.

• Untuk sekarang: model bag of words

Page 16: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Frekuensi Term: tf

• Frekuensi term tft,d dari term t di dalam dokumen d didefinisikansebagai jumlah kali yang t muncul di dalam d.

• Kita akan menggunakan tf saat menghitung skor kecocokan query-dokumen. Tapi bagaimana?

• Frekuensi term mentah bukanlah apa yang diinginkan:• Suatu dokumen dengan 10 kemunculan dari term adalah lebih relevan

daripada suatu dokumen dengan 1 kemunculan dari term tersebut.

• Tetapi tidak 10 kali lebih relevan.

• Relevansi tidak bertambah secara proporsional dengan frekuensi term.

NB: Frekuensi = jumlah dalam IR

Page 17: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Pembobotan Log-frekuensi

• Bobot frekuensi log dari term t dalam dokumen d adalah

0 → 0, 1 → 1, 2 → 1.3, 10 → 2, 1000 → 4, dll.

• Skor untuk suatu pasangan dokumen-query: akumulasi term t dalamkedua q dan d:

Skor

• Skor bernilai 0 jika tidak ada term query yang hadir di dalam dokumentersebut.

otherwise 0,

0 tfif, tflog 1

10 t,dt,d

t,dw

dqt dt ) tflog (1 ,

Sec. 6.2

Page 18: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Frekuensi Dokumen

• Term yang jarang muncul sebetulnya lebih informatif daripada term yang sering

• Ingat kembali stop words

• Perhatikan suatu term dalam query yang jarang dalam koleksi (misal: arachnocentric)

• Suatu dokumen yang mengandung term ini sangatlah besarkemungkinan relevan dengan query arachnocentric

→ Kita ingin bobot tinggi untuk term yang jarang sepertiarachnocentric.

Sec. 6.2.1

Page 19: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Frekuensi Dokumen (Lanj.)

• Term yang sering muncul dalam dokumen sifatnya kurang informatifdibandingkan term yang jarang

• Perhatikan suatu term query yang sering dalam koleksi (seperti high, increase, line)

• Suatu dokumen yang mengandung term demikian lebih mungkin relevandaripada dokumen yang tidak

• Tetapi itu bukalah indikator pasti dari relevansi.→ Untuk term yang sering, kita ingin bobot positif tinggi untuk kata-kata seperti high, increase, dan line• Tetapi bobot lebih rendah daripada untuk term yang jarang.

• Kita akan gunakan frekuensi dokumen (document frequency, df) untukmenangkap ini.

Sec. 6.2.1

Page 20: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Bobot idf

• dft adalah frekuensi dokumen dari t: jumlah dokumen yang mengandung term t• dft adalah ukuran inversi dari sifat informatif suatu term t

• dft N

• Kita definisikan idf (inverse document frequency) dari t dengan

• Kita gunakan log (N/dft) sebagai ganti dari N/dft untuk “menperkecil” pengaruh dari idf.

)/df( log idf 10 tt N

Perubahan basis log tidaklah penting

Sec. 6.2.1

Page 21: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Contoh idf, Anggap N = 1 juta

term dft idft

calpurnia 1

animal 100

sunday 1,000

fly 10,000

under 100,000

the 1,000,000

Ada satu nilai idf untuk setiap term t dalam suatu koleksi.

Sec. 6.2.1

)/df( log idf 10 tt N

Page 22: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Pengaruh dari idf Terhadap Pemeringkatan

• Apakah idf mempunyaui efek pada pemeringkatan untukquery satu term, seperti• iPhone

• idf tidak berpengaruh pada perankingan query satu term• idf mempengaruhi pemeringkatan dokumen untuk query dengan

panjang minimal dua term

• Untuk query capricious person, pembobotan idf membuatkemunculan capricious terhitung lebih besar dalam pemerinkatandokumen akhir daripada kemunculan person.

22

Page 23: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Koleksi vs. Frekuensi Dokumen

• Frekuensi koleksi dari t adalah jumlah kehadiran dari t di dalamkoleksi, menghitung banyaknya kemunculan.

• Contoh:

• Kata mana yang merupakan term pencarian yang lebih baik (dan harus mendapatkan bobot yang lebih tinggi)?

Kata Frekuensi Koleksi Frekuensi Dokumen

insurance 10440 3997

try 10422 8760

Sec. 6.2.1

Page 24: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Pembobotan tf-idf

• Bobot tf-idf dari suatu term adalah perkalian antara bobot tf danbobot idf-nya.

• Skema pembobotan paling terkenal dalam information retrieval• Catat: “-” dalam tf-idf adalah suatu hyphen, bukan tanda minus!

• Nama alternatif: tf.idf, tf x idf

• Meningkat mengikuti jumlah kemunculan di dalam dokumen

• Meningkat mengikuti kejarangan dari term di dalam koleksi.

)df/(log)tflog1(w 10,, tdt Ndt

Sec. 6.2.2

Page 25: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Peringkat Akhir dari Dokumen terhadap Query

25

dqt dtdq ,tf.idf),(Skor

Sec. 6.2.2

Page 26: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Biner → Jumlah→ Matriks Bobot (tf-idf)

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

Setiap dokumen sekarang direpresentasikan oleh suatu vektor daribobot tf-idf ∈ R|V| bernilai ril

Sec. 6.3

Page 27: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Dokumen Sebagai Vektor

• Jadi kita punya suatu ruang vektor berdimensi |V|-

• Term-term adalah sumbu dari ruang tersebut

• Dokumen adalah titik-titik atau vektor di dalam ruang ini

• Berdimensi sangat tinggi: puluhan juta dimensi saatditerapkan pada suatu web search engine (jutaan dokumen)

• Ini merupakan vektor yang sangat sparse (jarang): sebagianbesar entri bernilai nol.

Sec. 6.3

Page 28: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Query juga Menjadi Vektor

• Gagasan Kunci 1: Lakukan yang sama terhadap query: representasikansebagai vektor dalam ruang tersebut

• Gagasan Kunci 2: Ranking dokumen sesuai dengan kedekatannyaterhadap query di dalam ruang ini

• Proximity (kedekatan) = kemiripan antar vektor

• Proximity ≈ kebalikan dari jarak

• Ingat: Ini dilakukan karena kita ingin keluar dari model Boolean.

• Gantinya: Beri peringkat (ranking) lebih tinggi kepada dokumen yang lebih relevan, lebih rendah untuk dokumen yang kurang relevan.

Sec. 6.3

Page 29: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Merumuskan Kedekatan dalam Ruang Vektor

• Cara pertama: jarak antara dua titik

• ( = jarak antara titik ujung dari dua vektor)

• Euclidean distance?

• Euclidean distance merupakan gagasan yang kurang bagus. . .

• . . . karena Euclidean distance bernilai besar untuk vektor-vektordengan selisih panjang sangat jauh.

Sec. 6.3

Page 30: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Mengapa Jarak adalah Gagasan Kurang Baik?

Euclidean distance antaraq dan d2 adalah besarpadahal distribusi term dalam query q dandistribusi term dalamdokumen d2 sangat mirip.

Sec. 6.3

Page 31: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Menggunakan Sudut, Bukan Jarak

• Eksperimen gagasan: ambil suatu dokumen d dan tambahkan kedirinya. Namakan dokumen ini sebagai d′.

• “Secara semantik” d dan d′ mempunyai isi yang sama

• Euclidean distance antara dua dokumen ini menjadi sangat jauh

• Sudut antara dua dokumen ini adalah 0, sesuai dengan kemiripanmaksimal.

• Gagasan kunci: Rankingkan dokumen-dokumen berdasarkan sudutnya dengan query.

Sec. 6.3

Page 32: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Dari Sudut ke Kosinus

• Dua kalimat berikut sama maknanya:

• Rankingkan dokumen dalam urutan MENURUN dari sudut antaraquery dan dokumen

• Rankingkan dokumen dalam urutan NAIK dari cosinus(query, dokumen)

• Kosinus adalah fungsi yang menurun secara monoton untuk interval [0o, 180o]

Sec. 6.3

Page 33: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Dari Sudut ke Kosinus

Tetapi bagaimana – dan mengapa – kita harus menghitung kosinus?

Sec. 6.3

Page 34: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Normalisasi Panjang

• Suatu vektor dapat dinormalisasikan (panjangnya) dengan membagisetiap komponennya dengan panjangnya – digunakan norma L2:

• Pembagian suatu vektor dengan norma L2 ini mengubahnya menjadivektor satuan (panjang, pada permukaan dari unit hypersphere)

• Pengaruh pada dua dokumen d dan d′ (d yang ditambahkan ke dirinyadari slide sebelumnya): keduanya mempunyai vektor identic setelahnormalisasi panjang.

• Sehingga dokumen panjang dan pendek mempunyai boot yang comparable.

i ixx 2

2

Sec. 6.3

Page 35: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

cos(query, dokumen)

••

V

i i

V

i i

V

i ii

dq

dq

d

d

q

q

dq

dqdq

1

2

1

2

1),cos(

Dot product Vektor satuan

qi adalah bobot tf-idf dari term i di dalam querydi adalah bobot tf-idf dari term i di dalam dokumen

cos(q,d) adalah kemiripan cosinus dari q dan d … atau sama dengan cosinus sudut antara q dan d.

Sec. 6.3

Page 36: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Kosinus Vektor dengan Panjang Ternormalisasi

• Untuk vektor dengan panjang ternormalisasi, kemiripan kosinus adalah dot product (atau perkalian skalar):

untuk q, d sudah ternormalisasi panjang.

36

V

i iidqdqdq1

),cos(

Page 37: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Ilustrasi Kemiripan Cosinus

37

Page 38: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Kemiripan Kosinus Antara 3 Dokumen

term SaS PaP WH

affection 115 58 20

jealous 10 7 11

gossip 2 0 6

wuthering 0 0 38

Seberapa mirip novel-novel:

• SaS: Sense and Sensibility

• PaP: Pride and Prejudice

• WH: Wuthering Heights?

Frekuensi Term (jumlah)

Sec. 6.3

Catatan: untuk menyederhanakan contoh ini, tidak dilakukan

pembobotan idf.

Page 39: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Contoh 3 Dokumen (Lanj.)

Pembobotan frekuensi Logterm 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

Setelah normalisasi panjangterm 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

cos(PaP,WH) ≈ 0.69

Mengapa diperoleh cos(SaS,PaP) > cos(SaS,WH)?

Sec. 6.3

Page 40: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Menghitung Skor KosinusSec. 6.3

Page 41: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Varian Pembobotan tf-idf

Kolom yang berjudul 'n' adalah akronim untuk skema bobot.

Mengapa dasar log dalam idf tidak penting?

Sec. 6.4

Page 42: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Pembobotan Berbeda thd. Query vs. Dokumen

• Banyak search engines membolehkan pembobotan berbeda untukquery vs. dokumen

• Notasi SMART: merupakan kombinasi yang digunakan dalam suatuengine, dengan notasi ddd.qqq, menggunakan akronim dari tabelsebelumnya

• Skema pembobotan standard: lnc.ltc

• Dokumen: logarithmic tf (l sebagai karakter pertama), no idf dannormalisasi kosinus

• Query: logarithmic tf (l dalam kolom paling kiri), idf (t dalam kolomkedua), normalisasi kosinus

Gagasan Kurang Bagus?

Sec. 6.4

Page 43: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Contoh tf-idf: lnc.ltc

Term Query Document Prod

tf-raw tf-wt df idf wt n’lize tf-raw tf-wt wt n’lize

auto 0 0 5000 2.3 0 0 1 1 1 0.52 0

best 1 1 50000 1.3 1.3 0.34 0 0 0 0 0

car 1 1 10000 2.0 2.0 0.52 1 1 1 0.52 0.27

insurance 1 1 1000 3.0 3.0 0.78 2 1.3 1.3 0.68 0.53

Dokumen: car insurance auto insurance

Query: best car insurance

Latihan: Berapa N, jumlah dokumen?

Skor = 0+0+0.27+0.53 = 0.8

Panjang dokumen =

12 02 12 1.32 1.92

Sec. 6.4

Page 44: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Rangkuman: Pemeringkatan Ruang Vektor

• Merepresentasikan query sebagai suatu vector tf-idf berbobot

• Merepresentasikan setiap dokumen sebagai vector tf-idf berbobot

• Menghitung skor kemiripan kosinus antara vektor query dan setiapvektor dokumen

• Meranking (memeringkatkan) dokumen-dokumen sesuai denganskornya terhadap query

• Mengembalikan top K (misal K = 10) kepada pengguna

Page 45: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Referensi Kuliah Hari Ini

• IIR 6.2 – 6.4.3

• http://www.miislita.com/information-retrieval-tutorial/cosine-similarity-tutorial.html• Tutorial pembobotan term dan kemiripan cosinus!

Ch. 6

Page 46: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Latihan

• Ada 3 dokumen dalam koleksi:• Document 1: The game of life is a game of everlasting learning

• Document 2: The unexamined life is not worth living

• Document 3: Never stop learning

• Dan terdapat query:• Query: life learning

• Berapa dekat Q dengan D1, D2 dan D3 jika dihitung dengan cosine similarity?

• Seperti apa rangking yang hasilkan?

Page 47: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Langkah 1: Term Frequency (TF)

Page 48: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Normalized TF

Page 49: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Python: Perhitungan Normalized TF

def termFrequency(term, document):

normalizeDocument = document.lower().split()

return normalizeDocument.count(term.lower()) / float(len(normalizeDocument))

Page 50: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Langkah 2: Inverse Document Frequency (IDF)

• IDF(game) = 1 + loge(Jumlah total dokumen / Jumlahdokumen dengan term game di dalamnya)

• Total ada 3 dokumen = Document1, Document2, Document3

• Term game hadir dalam Document1 IDF(game) = 1 + loge(3 / 1) = 1 + 1.098726209

= 2.09872620

Page 51: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen
Page 52: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Python: Perhitungan IDFdef inverseDocumentFrequency(term, allDocuments):

numDocumentsWithThisTerm = 0for doc in allDocuments:

if term.lower() in allDocuments[doc].lower().split():numDocumentsWithThisTerm = numDocumentsWithThisTerm + 1

if numDocumentsWithThisTerm > 0:return 1.0 + log(float(len(allDocuments)) /

numDocumentsWithThisTerm)else:

return 1.0

Page 53: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Langkah 3: TF * IDF

Page 54: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Langkah 4: Cosine Similarity dalam VSM

Cosine Similarity (d1, d2) = Dot product(d1, d2) / ||d1|| * ||d2|| Dot product (d1,d2) = d1[0] * d2[0] + d1[1] * d2[1] * … * d1[n] * d2[n] ||d1|| = square root(d1[0]2 + d1[1]2 + ... + d1[n]2) |

|d2|| = square root(d2[0]2 + d2[1]2 + ... + d2[n]2)

Page 55: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

TF*IDF Untuk Query

Page 56: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Cosine Similarity Query dan Document1

Page 57: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Cosine Similarity Q dengan Semua Dokumen

Page 58: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

Cosine Similarity Q dengan Semua Dokumen

Page 59: Temu-Kembali Informasi 2017 - Komputasi | Suatu Permulaan · •Variable-Byte dan kode gamma Koleksi (text, xml markup etc) 3,600.0 Koleksi (text) 960.0 ... line) •Suatu dokumen

UTS: Ujian Tengah Semester

1. Buat matriks kemunculan term dari 5 dokumen tersebut

2. Buat inverted index dari 5 dokumen tersebut. Struktur datanya harusmencantumkan frekuensi dokumen dan posisinya dalam dokumen tersebut

3. Jika ada Query: ‘working in information retrieval’, seperti apa rangking yang dikembalikan oleh perhitungan cosine similarity?

Dokumen Isi Dokumen

D1 information retrieval students work hard

D2 hard-working information retrieval students take many classes

D3 the information retrieval workbook is well written

D4 the probabilistic model is an information retrieval paradigm

D5 the Boolean information retrieval model was the first to appear