• Tidak ada hasil yang ditemukan

Temu-Kembali Informasi 2017

N/A
N/A
Protected

Academic year: 2021

Membagikan "Temu-Kembali Informasi 2017"

Copied!
59
0
0

Teks penuh

(1)

Temu-Kembali Informasi

2017

07: Penskoran, Pembobotan Term & Model Ruang Vektor

Husni

[email protected]

(2)

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

(3)

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

(4)

Temu-Kembali Berperingkat

• Sejauh ini, query kita semuanya berbentuk Boolean.

• Dokumennya cocok atau tidak.

• Bagus bagi pengguna pakar dengan pemahaman ketepatan dari kebutuhan 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.

(5)

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

(6)

Model Temu-Kembali Berperingkat

• Daripada sehimpuan dokumen yang memenuhi suatu ekspresi query, dalam model retrieval berperingkat, sistem mengembalikan suatu

pengurutan terhadap dokumen (top) dalam koleksi yang berkaitan

dengan query

• Query teks bebas: Daripada suatu bahasa query berisi operators dan ekspresi, query pengguna hanya satu atau lebih kata dalam suatu

bahasa manusia (alami)

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

(7)

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.

(8)

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”.

(9)

Skor Relevansi Query-Dokumen

• Kita perlu suatu cara penentuan skor terhadap suatu paangan query/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 tinggi skornya

• Kita akan melihat sejumlah alternatif untuk ini.

(10)

#1: Koefisien Jaccard

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

• 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.

(11)

Koefisien Jaccard: Contoh Penskoran

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

• Query: ides of march

• Dokumen 1: caesar died in march • Dokumen 2: the long march

(12)

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 |  

(13)

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|

(14)

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

(15)

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 mempunyai vektor 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.

(16)

Frekuensi Term: tf

• Frekuensi term tft,d dari term t di dalam dokumen d didefinisikan sebagai 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

(17)

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 dalam

kedua q dan d: Skor

• Skor bernilai 0 jika tidak ada term query yang hadir di dalam dokumen tersebut.       otherwise 0, 0 tf if , tf log 1 10 t,d t,d t,d w

 

d q t

(1

log

tf

t,d

)

Sec. 6.2

(18)

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 besar kemungkinan relevan dengan query arachnocentric

→ Kita ingin bobot tinggi untuk term yang jarang seperti

arachnocentric.

(19)

Frekuensi Dokumen (Lanj.)

• Term yang sering muncul dalam dokumen sifatnya kurang informatif dibandingkan term yang jarang

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

increase, line)

• Suatu dokumen yang mengandung term demikian lebih mungkin relevan daripada 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) untuk menangkap ini.

(20)

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

t

10

N

t

Perubahan basis log tidaklah penting

(21)

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

t

10

N

t

(22)

Pengaruh dari idf Terhadap Pemeringkatan

• Apakah idf mempunyaui efek pada pemeringkatan untuk

query 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 membuat

kemunculan capricious terhitung lebih besar dalam pemerinkatan dokumen akhir daripada kemunculan person.

(23)

Koleksi vs. Frekuensi Dokumen

• Frekuensi koleksi dari t adalah jumlah kehadiran dari t di dalam koleksi, 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

(24)

Pembobotan tf-idf

• Bobot tf-idf dari suatu term adalah perkalian antara bobot tf dan bobot 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

)

tf

log

1

(

w

, 10 ,d t d

N

t t

Sec. 6.2.2

(25)

Peringkat Akhir dari Dokumen terhadap Query

25

d

q

t

t

d

d

q

,

)

tf.idf

,

(

Skor

Sec. 6.2.2

(26)

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 dari bobot tf-idf ∈ R|V| bernilai ril

(27)

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 saat

diterapkan pada suatu

web search engine (jutaan dokumen)

• Ini merupakan vektor yang sangat sparse (jarang): sebagian

besar entri bernilai nol.

(28)

Query juga Menjadi Vektor

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

• Gagasan Kunci 2: Ranking dokumen sesuai dengan kedekatannya terhadap 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.

(29)

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-vektor

dengan selisih panjang sangat jauh.

(30)

Mengapa Jarak adalah Gagasan Kurang Baik?

Euclidean distance antara

q dan d2 adalah besar padahal distribusi term dalam query q dan

distribusi term dalam

dokumen d2 sangat mirip.

(31)

Menggunakan Sudut, Bukan Jarak

• Eksperimen gagasan: ambil suatu dokumen d dan tambahkan ke dirinya. 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 kemiripan maksimal.

• Gagasan kunci

:

Rankingkan dokumen-dokumen berdasarkan

sudutnya dengan query.

(32)

Dari Sudut ke Kosinus

• Dua kalimat berikut sama maknanya:

• Rankingkan dokumen dalam urutan MENURUN dari sudut antara query dan dokumen

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

• Kosinus adalah fungsi yang

menurun secara monoton untuk

interval [0

o

, 180

o

]

(33)

Dari Sudut ke Kosinus

Tetapi bagaimana – dan mengapa – kita harus menghitung kosinus?

(34)

Normalisasi Panjang

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

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

• Pengaruh pada dua dokumen d dan d′ (d yang ditambahkan ke dirinya dari slide sebelumnya): keduanya mempunyai vektor identic setelah normalisasi panjang.

• Sehingga dokumen panjang dan pendek mempunyai boot yang

comparable.

i ix x 2 2  Sec. 6.3

(35)

cos(query, dokumen)

  

V i i V i i V i i i

d

q

d

q

d

d

q

q

d

q

d

q

d

q

1 2 1 2 1

)

,

cos(

Dot product Vektor satuan

qi adalah bobot tf-idf dari term i di dalam query

di 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.

(36)

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

q

i

d

i

d

q

d

q

1

)

,

cos(

(37)

Ilustrasi Kemiripan Cosinus

(38)

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.

(39)

Contoh 3 Dokumen (Lanj.)

Pembobotan frekuensi Log

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

Setelah normalisasi panjang

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 cos(PaP,WH) ≈ 0.69

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

(40)

Menghitung Skor Kosinus

(41)

Varian Pembobotan tf-idf

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

Mengapa dasar log dalam idf tidak penting?

(42)

Pembobotan Berbeda thd. Query vs. Dokumen

• Banyak search engines membolehkan pembobotan berbeda untuk query vs. dokumen

• Notasi SMART: merupakan kombinasi yang digunakan dalam suatu engine, dengan notasi ddd.qqq, menggunakan akronim dari tabel sebelumnya

• Skema pembobotan standard: lnc.ltc

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

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

Gagasan Kurang Bagus?

(43)

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

(44)

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 setiap vektor dokumen

• Meranking (memeringkatkan) dokumen-dokumen sesuai dengan skornya terhadap query

(45)

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!

(46)

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?

(47)
(48)
(49)

Python: Perhitungan Normalized TF

def termFrequency(term, document):

normalizeDocument = document.lower().split()

(50)

Langkah 2: Inverse Document Frequency (IDF)

• IDF(game) = 1 + log

e

(Jumlah total dokumen / Jumlah

dokumen dengan term game di dalamnya)

• Total ada 3 dokumen =

Document1, Document2, Document3

• Term game hadir dalam Document1

IDF(game) = 1 + log

e

(3 / 1)

= 1 + 1.098726209

(51)
(52)

Python: Perhitungan IDF

def inverseDocumentFrequency(term, allDocuments):

numDocumentsWithThisTerm = 0 for 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

(53)
(54)

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) |

(55)
(56)
(57)
(58)
(59)

UTS: Ujian Tengah Semester

1. Buat matriks kemunculan term dari 5 dokumen tersebut

2. Buat inverted index dari 5 dokumen tersebut. Struktur datanya harus

mencantumkan 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

Gambar

Ilustrasi Kemiripan Cosinus

Referensi

Dokumen terkait

Nama penyakit infeksi telur cacing tambang oleh Ancylostoma duodenale disebut Ankilostomiasis sedangkan Necator americanus menimbulkan Nekatoriasis. Cacing dewasa hidup di

• β-bloker reseptor adrenergik dapat menyebabkan atau mencetuskan gagal jantung pada penderita dengan gangguan fungsi otot jantung misalnya gagal jantung yang masih

Rumah Sakit Immanuel mempunyai 2 (dua) saranan pelayanan yaitu rawat jalan dan rawat inap. Salah satu unit pelayanan kesehatan di Rumah Sakit Immanuel adalah ruang

Etis Etis tidaknya tidaknya suatu suatu tindakan tindakan lebih lebih disebabkan disebabkan tingkat kesadaran individual para perilaku dalam aktivitas ekonomi (oknum

Artinya pada suatu tingkat upah tertentu, jumlah orang yang diminta untuk. bekerja dalam suatu lapangan pekerjaan tertentu lebih

Ilustrasi cover ini terdiri dari pesan visual dan pesan verbal, dimana pesan visual ini berupa lima orang laki – laki yang dilihat dari kontur mereka adalah sebagai tokoh

Jenis penelitian yang digunakan dalam penelitian ini adalah deskriptif kualitatif. Deskripsi atau pemaparan merupakan kegiatan menentukan isi aturan hukum setepat

Di dalam penyusunan proposal digitalisasi Laboratorium Fisika Dasar berbasis IoT ini mempunyai tujuan untuk meningkatkan pengelolaan layanan laboratorium bagi peserta didik di