Anggota Kelompok: Basica (113081059) Cindy Mayland (113080272) Kukung Kurniawan (113081114) Tugik Rangga Pramana (113081047)
Outline
What is Inverted Index? How does it works?
Construction Compression
Tujuan menggunakan index, untuk meningkatkan kecepatan dan efisiensi dalam melakukan pencarian pada sekumpulan dokumen. Tanpa semacam index, query user secara sequential discan pada kumpulan dokumen tersebut untuk menemukan dokumendokumen yang mengandung query user. Contoh : Find operation in Windows
Inverted index mempunyai vocabulary, yang berisi seluruh term yang berbeda pada masing-masing dokumennya, dan tiap-tiap term yang berbeda ditempatkan pada daftar inverted (inverted list)
Notasi
Artinya idj adalah ID dokumen dj yang mengandung term ti fij adalah frekuensi kemunculan term ti didokumen dj ok adalah posisi term ti di dokumen dj.
Set vocabulary :{algoritma, genetik, dapat, digunakan, untuk, optimasi, fuzzy, fungsi, keanggotaan, pada, merupakan, learning}
Merupakan Optimasi
Pada Untuk
Merupakan Optimasi
Pada Untuk Back1 back2
Tolerant Retrieval
Techniques that are robust to typographical errors in the query, as well as alternative spellings. Jenis search structure pada dictionary yaitu hashing dan search tree.
Hashing umum digunakan oleh berbagai search engine, tetapi pada hashing jika query yang diinputkan tidak lengkap misalnya automat, akan tidak mudah untuk menemukan varian dari automat (automatic, automation, automated)dan membutuhkan waktu komputasi yang lebih besar selain sulit untuk diimplementasikan.
Pada search tree khususnya binary tree yang umum dikenal, tetapi karena jumlah leaf nodenya yang selalu 2, maka jika terjadi proses insert delete, perlu dilakukan proses rebalanced. Proses rebalanced ini yang membutuhkan computasi yang besar.
Oleh karena itu digunakan B-tree, dimana leaf nodenya lebih flexible dengan interval tertentu. Interval [a,b] sehingga node cabangnya boleh sebanyak interval tersebut. Nilai a,b merupakan size of disk block
Wildcard query
the user is uncertain of the spelling of a query term (e.g., Sydney vs. Sidney the user is aware of multiple variants of spelling a term and (consciously) seeks documents containing any of the variants (e.g., color vs. colour);
the user seeks documents containing variants of a term that would be caught by stemming, but is unsure whether the search engine performs stemming (e.g., judicial vs. judiciary, leading to the wildcard query judicia*) the user is uncertain of the correct rendition of a foreign word or phrase (e.g., the query Universit* Stuttgart)
There are 2 techniques for handling general wildcard queries : - Permuterm indexes - k-gram indexes for wildcard queries
Permuterm indexes
One disadvantage of the permuterm index is that its dictionary becomes quite large, including as it does all rotations of each term.
k-gram Indexes
k-gram is a sequence of k characters Examp : cas, ast and stl <= term castle. Each postings list points from a k-gram to all vocabulary terms containing that k-gram.
the 3-gram etr would point to vocabulary terms such as metric and retrieval.
Spelling correction
Examp : query carot but means carrot two basic spelling correction algorithms : 1. choose the nearest correct spellings. 2. When two correctly spelled queries are tied (or nearly tied), select the one that is more common. Examp : query grnt -> grant atau grunt
Phonetic correction
phonetic correction: misspellings that arise because the user types a query that sounds like the target term especially names of people. Idea from : international police departments seeking to match names for wanted criminals names being spelled differently in different countries. Algorithms for phonetic correction is soundex algorithms.
Soundex Scheme
1. Retain the first letter of the term. 2. Change all occurrences of the following letters to 0 (zero): A, E, I, O, U, H, W, Y. 3. Change letters to digits as follows: B, F, P, V to 1. C, G, J, K, Q, S, X, Z to 2. D,T to 3. L to 4. M, N to 5. R to 6. 4. Repeatedly remove one out of each pair of consecutive identical digits. 5. Remove all zeros from the resulting string. Pad the resulting string with trailing zeros and return the first four positions, which will consist of a letter followed by three digits.
Index Construction
What is it?
Merupakan proses konstruksi indeks atau pengindeksan dari sekumpulan koleksi data, disebut juga proses dari sebuah sistem atau mesin yang melakukan pengindeksan.
How it works?
Melakukan pengumpulan susunan semua pasangan istilah dan docID yang kemudian akan di urutkan secara berpasangan dengan istilah/term sebagai dominant key. Mengatur setiap docID dan istilah ke daftar posting dan menghitung statistik seperti frekuensi dan dokumen yang berfungsi sebagai secondary key. Merepresentasikan istilah/term sebagai termID, dimana setiap termID adalah serial number yang unik.
link
continue
Implementation
Reuters-RCV1
Terdapat lebih dari 800.000 dokumen yang dikirimkan melalui router RCV1 dalam jangka waktu kurang lebih 1 tahun namun sebagai catatan dalam kasus ini tidak disertakan dokumen multimedia karena hanya fokus pada dokumen berbasis teks saja.
Algoritma SPIMI
DISTRIBUTED INDEXING
Konsep indexing dengan mebagi-bagi(split) collection dalalam berbagai mesin yang tersebar dengan menetapkan distribut index pada tiap chunk atau bongkahan collection yang ada, sehingga sesuai dengan kemampuan kapasitas yang dapat dilakukan oleh mesin tersebut. Terdapat pembaruan terms pada posting list secara berkala. Penggunaan MapReduce , yaitu berfungsi untuk memecahkan masalah komputasi besar pada mesin komoditas murah atau node yang dibangun dari bagian standar (prosesor, memori, disk) sebagai lawan pada superkomputer dengan perangkat keras khusus.
lanjutan
Adanya key-value pair proses distributed indexing dapat melakukan proses re-assign splits oleh masternode ketika terjadi off pada mesin atau melambatan proses karena masalah hardware. Masternode mengarahkan proses untuk menempatkan dan pemindahan tugas ke node individu pekerja Adanya Mapphase(oleh parser) yang melakukan penulisan segment file yang cocok dengan nilai pada split dan ReducePhase(oleh Inverter) yang melakukan pegumpulan semua nilainilai(maksudnya adalah docsID) yang menjadi satu berdasarkan kunci yag diberikan(termID).
Lanjutan
Parser dan inverter tersebut tidak terpisah pada mesin yang berbeda. Pada MapPhase Untuk meminimalisir waktu inverter me-reduce data, tiap parser melakukan penyimpanan segment files ke local disk. Sedangkan pada ReducePhase, master node berkomunikasi dengan inverter dimana lokasi dari relevan segment file yang dimaksud. Sehingga tiap segment file hanya membutuhkan satu kali pembacaan sekuensial, karena semua data yang relevan untuk inverter tertentu sudah dituliskan dalam segment file tertentu oleh parser
Dynamic indexing
Kita telah mengasumsikan bahwa koleksi dokumen statis. Teknik indexing sebelumnya tepat untuk koleksi yang jarang atau tidak pernah berubah. Tapi sebagian besar dari koleksi yang dimodifikasi sering dengan dokumen yang ditambahkan, dihapus, dan diperbarui. Ini berarti bahwa istilah baru yang perlu ditambahkan ke dalam kamus, dan daftar posting perlu diperbarui untuk istilah yang ada. Cara paling sederhana untuk mencapai ini adalah dengan merekonstruksi secara berkala indeks dari awal. Ini adalah solusi yang baik jika jumlah perubahan dari waktu ke waktu kecil dan penundaan dalam membuat dokumen baru yang dicari dapat diterima dan juga jika sumber daya yang tersedia cukup untuk membangun sebuah indeks baru, sementara sebelumnya masih tersedia untuk proses query.
Proses penghapusan disimpan dalam sebuah invalidation bit vector, yang membuat kita dapat memfilter keluar data-data yang terhapus sebelum mendapatkan hasil pencarian. Proses peng-updatean terms yang ada dilakukan melakukapenghapusan terlebih dahulu dan re-inserting mereka. Penyimpanan hasil indexing pada posting list disimpan dalam sebuah file yang besar yang merupakan konkatenasi dari semua posting list.
Pada kondisi irs seperti apa masing-masing algoritma Indexing tadi di implementasikan?
BSBI
Jika dokumen yang diretrieve sifatnya statis Jika kapasitas memori baik pemrosesan maupun penyimpanan sifatnya terbatas
SPIMI
Jika dokumen yang diretrieve sifatnya statis Jika kapasitas memori baik pemrosesan maupun penyimpanan sifatnya terbatas Ketika sistem pengindexan IRS tidak memerlukan pengurutan terms dan mapping term menjadi termID
Distributed Indexing
Jika IRS melakukan pembaharuan koleksi terms secara periodik Jika penyimpanan terms yang ada dilakukan tersebar diberbagai server
Dynamic Indexing
Jika dokumen yang diretrieve sifanya dinamis yang berarti perubahan data terms dapat terjadi kapan saja.
Index Compression
Algoritma kompresi
Data A
compress
decompress
Data B
Index compression
Teknik yang digunakan untuk lebih mengefisienkan indeks, baik dari kapasitas maupun performansi Information Retrieval System Index compression dapat mengurangi ukuran index dan waktu yang digunakan untuk mengevaluasi query
Manfaat
1. Compressed index membutuhkan media penyimpanan yang lebih kecil dibanding dengan uncompressed index 2. Waktu yang dibutuhkan untuk mentransfer compressed data dan kemudian melakukan dekompresi terhadapat data tersebut lebih cepat dibandingkan mentransfer data yang tidak dikompresi 3. Meningkatkan penggunaan caching, karena index yang dibutuhkan untuk mengevaluasi query telah terdapat pada cache memory, jadi tidak perlu mengakses disk
Index Compression
Inverted index terdiri dari 2 komponen utama: vocabulary (dictionary) of term dan posting list. Link
Studi Kasus
Misalnya Karakteristik koleksi dokumen pada detik.com adalah sebagai berikut:
Api
Atom .. Zona 15 bytes
54
7 . 26 4 bytes 4bytes .
Space yang dibutuhkan untuk menyimpan dictionary untuk skema ini: 380.000 x (15+4+4)= 8,74 MB
Dictionary as string
Dictionary compression
abrasiagrarisalasanalpukatambulanamputasianemiaantariksaargumenasimilasiatraksi
Freq 39 14 54 7
Posting pointer
Term Pointer
.. 8 bytes
. 4 bytes
. 4bytes 3bytes
Term pointer 380.000x8 =3.040.000 posisi Jadi dibutuhkan log2 (3.040.000) 22bits Atau 3 bytes.
Space yang dibutuhkan untuk menyimpan dictionary untuk skema ini: 380.000 x (8+4+4+3)= 7,22 MB
Freq 39 14 54 7
Posting pointer
Term Pointer
.. Ambulan
. 11
.
..
Misal jumlah term/blok (k)=4 Berarti kita menghemat (k-1)*3bytes= 9 bytes Dikurangi dengan 4 bytes untuk menyimpan jumlah term. Sehingga kita menghemat 5 bytes per 4 term disetiap block. Atau secara keseluruhan, kita menghemat 380.000x5/4=0.475 MB space Dengan skema ini dibutuhkan 6.745 MB.
8oto*matis4masi5 motif5ritas
Keterangan: * = akhiran prefix = penghapusan prefix
heliosentris
docID
Gaps
100
23000
22900
.
..
...
.
codes
Mengimplementasikan variable length encoding dengan mensplit gap (G) kedalam length dan offset. Offset adalah G in binary. Ex: 13 in binary= 1101, offset is 101. Length mengencode panjang offset, misal offset 13 adalah 101, maka length offset 3 bit (dlm unary code=1110), sehingga codes dari 13 adalah 1110101
codes (cont)
Inverted { 1 ,3 } Does {3} index works on information retrieval How does inverted Index { 1, 2 , 3 } Works {3}
Index Result
How {1,3} To {1} Create {1} An {1,2} Inverted {1,3} Index {1,2,3} Makes {2} Based {2} On {2,3} Terms {2} Does {3} Works {3} Information {3} Retrieval {3}
Windows Search Engine Mainframe-based DBMS (DATACOM/DB, ADABAS, Model 204) SDK (Java, Delphi, Python, dll)
Inverted Index
Google Caffeine
Google Percolator
Caffeine takes up nearly 100 million gigabytes of storage in one database and adds new information at a rate of hundreds of thousands of gigabytes per day.
Google Percolator
Distributed-data processing system Large scale data set Incrementally processing update Latency problem
Referensi
Introduction to Information retrieval Christopher D. Manning Advances in information retrieval: 28th European Conference on IR Research, ECIR 2006, London, UK, April 1012, 2006 Scholer, Falk, et.al. Compression of Inverted Indexes For Fast Query Evaluation, RMIT University http://www.scribd.com/doc/32495423/What-is-a-Fully-Inverted-Google-StyleIndex http://infolab.stanford.edu/~backrub/google.html Sergey Brin and Lawrence Page . The Anatomy of a Large-Scale Hypertextual Web Search Engine. Stanford University http://www.theregister.co.uk/2010/09/24/google_percolator/ http://googleblog.blogspot.com/2010/06/our-new-search-index-caffeine.html http://webglimpse.net/pubs/glimpse.ps http://nlp.stanford.edu/IR-book/html/htmledition/an-example-informationretrieval-problem-1.html