AnungEdit - Thomas Anung Basuki Penggunaan Semi Discrete...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Thomas Anung Basuki Penggunaan Semi Discrete Decomposition pada Latent Semantic Indexing untuk TemuKembali Informasi Intisari Makalah ini membahas suatu cara untuk temu kembali informasi yang diusulkan oleh Kolda dan O’Leary [1] . Cara ini disebut Semi Discrete Decomposition for Latent Semantic Indexing. Cara ini diimplementasikan pada data dari beberapa artikel surat kabar Indonesia yang beredar secara on-line. Algorithma diimplemntasikan pada PC dengan menggunakan Matlab. Abstract This paper discusses a method for information retrieval proposed by Kolda and O’Leary [1]. The method was called SemiDiscrete Decomposition for Latent Semantic Indexing. In this paper, the writer implement the method with data from documents selected from online Indonesian newspapers. The algorithm is implemented on PC using Matlab programming language. 1 Pendahuluan Saat ini banyak sistem informasi berbasis teks, artinya informasi disimpan dalam dokumen-dokumen berupa file teks. Hal ini didukung dengan berkembangnya internet, di mana dokumen disimpan dalam file-file hypertext, yang merupakan gabungan teks dan data multimedia (citra, suara). Dengan menggunakan file hypertext, maka penyimpanannya efisien dan aksesnya lebih cepat. Dengan demikian sejumlah besar dokumen dapat disimpan. Karena banyaknya dokumen yang dapat disimpan, maka pengguna sistem informasi bisa mengalami kesulitan untuk mendapatkan informasi yang diinginkannya. Dia tidak bisa melihat isi dokumen satu demi satu untuk mendapatkan informasi yang tepat. Diperlukan suatu cara agar I N T E G R A L, vol . 6 no 1, April 2001 pengguna dapat mengakses informasi secara cepat dan tepat. Salah satu cara adalah dengan melakukan query. Pengguna sistem informasi akan mengetikkan kata-kata kunci (terms) yang mewakili hal yang ingin dicarinya. Sistem akan mencari dokumen-dokumen yang mengandung kata-kata kunci yang terdapat dalam query dan menampilkan dokumendokumen tersebut, biasanya terurut menurut tingkat relevansinya. Hal ini disebut temukembali informasi (information retrieval). Jika dianggap query yang diketikkan pengguna hanya berupa kata-kata kunci saja, maka masalah utama pada temukembali informasi adalah pada teknik mencari dokumen yang tepat. Tentu saja masalahnya bisa diperumit jika query yang diketikkan adalah sebuah kalimat utuh. 5 Untuk itu diperlukan sebuah program pengenal bahasa alami. Dalam makalah ini akan dibahas salah satu teknik temu-kembali informasi yang disebut Latent Semantic Indexing (LSI). Teknik ini dinamai demikian karena teknik ini menemukan hubungan tersembunyi antara semua term yang secara kontekstual berdekatan artinya. Dengan demikian teknik ini menawarkan solusi terhadap masalah polysemy dan synonymy yang sering terjadi pada information retrieval. Teknik LSI awalnya dikembangkan dengan Singular Value menggunakan Decomposition (SVD), suatu teknik untuk mendekomposisi matriks. Kelemahan utama dari LSI berbasis SVD adalah ukuran matriks hasil dekomposisi menjadi besar, lebih besar daripada matriks semula. Sebagai alternatif dari LSI berbasis SVD adalah LSI berbasis SDD (Semi-Discrete Decomposition). Pada teknik ini ukuran matriks hasil dekomposisi menjadi jauh lebih kecil, namun tingkat akurasinya tidak terlalu jauh berbeda. Pada makalah ini akan dibahas information retrieval menggunakan LSI berbasis SDD. Mula-mula akan dibahas beberapa definisi dan teori dasar yang diperlukan. Kemudian dilanjutkan dengan beberapa hasil percobaan yang dilakukan. Pada bagian terakhir dibahas beberapa kesimpulan yang dapat diambil dan beberapa catatan untuk penelitian selanjutnya. 2 Metode Ruang Vektor [4] dokumen Di (atau query Qi) dan bernilai 0 jika sebaliknya. Bisa juga nilainya > 1 untuk menyatakan seberapa penting term tersebut dalam dokumen atau query. Jika terdapat t term yang dapat mendeskripsikan seluruh dokumen pada sistem, maka setiap term dapat dinyatakan sebagai sebuah vektor T. Jika vektor-vektor T bebas linier maka T akan menjadi basis dari ruang vektor V. Setiap vektor pada V dapat dinyatakan sebagai kombinasi linier dari T. Dokumen ke-r Dr dapat ditulis sebagai Dr = ∑ a ri T i di mana aris diartikan sebagai komponen Dr pada vektor Ti. Hubungan antara term dan dokumen dapat dinyatakan sebagai sebuah matriks A sebagai berikut : dokumen a11 ... a1n A= term . . . a n1 ... a nn Setiap baris pada matriks A menyatakan vektor term dan setiap kolomnya menyatakan vektor dokumen. Jelas bahwa A merupakan matriks besar dan jarang (large and sparse matrix). Pada sistem temu-kembali informasi, pemrosesan sebuah query dilakukan dengan cara mengalikan vektor query dengan matriks A, Metode Ruang Vektor adalah suatu metode untuk merepresentasikan sistem temukembali informasi. Suatu sistem temukembali informasi terdiri atas dua bagian, yaitu penyimpanan dokumen dan pemrosesan query. Untuk mengimplementasikan metode ruang vektor, diasumsikan sudah tersedia sekumpulan term yang dapat mendeskripsikan kumpulan dokumen yang tersimpan dalam suatu sistem temu-kembali informasi. Baik query maupun dokumen-dokumen yang disimpan, dapat dinyatakan dalam bentuk vektor : Qi = (qi1, qi2,…, qit) dan Di = (ai1, ai2,…, ait), di mana qik dan aik merepresentasikan nilai dari term ke-k pada query Qi dan dokumen Di. Biasanya aik (atau qik) bernilai 1 jika term ke-k muncul dalam Telah disebutkan sebelumnya bahwa matriks term-dokumen menyatakan hubungan antara term-term dengan 6 I N T E G R A L, vol . 6 no 1, April 2001 s = qTA dan menghasilkan suatu vektor s (score vector) yang menyatakan nilai (score) dokumen-dokumen dalam sistem terhadap query tersebut. Jika vektor s kita urutkan mengecil, maka didapatkan urutan relevansi dokumen-dokumen dalam sistem terhadap query tersebut. 3 Pembuatan Matriks TermDokumen [1] dokumen-dokumen dalam sistem temukembali informasi. Jika aij menyatakan elemen matriks term-dokumen A pada baris ke-i dan kolom ke-j, maka salah satu representasi yang paling sering dipakai adalah menggunakan frekuensi kemunculan term ke-i dalam dokumen ke-j sebagai nilai aij. Pembentukan matriks term-dokumen terdiri atas tiga langkah, sebagai berikut : (1) membuat daftar kata-kata yang muncul dalam seluruh dokumen, (2) menghilangkan kata-kata yang tergolong sebagai common function words, dengan cara membentuk stop list yang berisi semua kata yang muncul dalam banyak dokumen, lalu menghilangkan semua kata dalam stop list dari matriks term-dokumen, (3) melakukan pemotongan lebih lanjut dengan cara menghilangkan kata-kata yang hanya muncul dalam sebuah dokumen. 4 Latent Semantic Indexing (LSI) Pembuatan matriks term-dokumen bertujuan untuk membuat indeks dari kumpulan dokumen yang disimpan. Pada metode ruang vektor, matriks term-dokumen yang dibuat berukuran m × n, di mana m adalah banyaknya term pada kumpulan dokumen tersebut dan n adalah banyaknya dokumen. Terdapat dua masalah utama yang ditemui dalam metode ruang vektor yaitu : masalah akurasi dan masalah ruang penyimpanan yang dibutuhkan untuk menyimpan matriks term-dokumen. Sebagian besar sistem temu kembali informasi merepresentasikan dokumen dan query menggunakan kata-kata yang terdapat di dalamnya (termasuk metode ruang vektor), dan menggunakan jumlah kata yang sama yang terdapat pada query dan dokumen sebagai dasar perbandingan. Semakin banyak kata dalam dokumen yang sama dengan kata-kata dalam query, semakin tinggi peringkat kesesuaian dokumen tersebut. Ini disebut coordination match. Ada dua masalah yang terjadi jika kita menggunakan cara di atas dalam sistem temu kembali dokumen. Masalah pertama adalah, kata-kata bersifat ambigu, sehingga bisa menyebabkan temu-kembali I N T E G R A L, vol . 6 no 1, April 2001 menghasilkan dokumen yang tidak relevan. Masalah ini terjadi karena adanya kata-kata yang sama penulisannya namun memiliki arti berbeda (polysemy). Masalah yang kedua adalah, suatu dokumen bisa saja relevan terhadap suatu query meskipun tidak mengandung kata-kata yang terdapat dalam query tersebut. Hal ini karena suatu konsep bisa didefinisikan dengan banyak cara (synonymy). LSI adalah pengembangan dari metode ruang vektor. Tujuannya adalah mengatasi kedua masalah di atas. Pada LSI tidak digunakan matriks term-dokumen yang utuh melainkan pendekatannya saja. Untuk membentuk pendekatan dari matriks termdokumen digunakan Singular Value Decomposition (SVD). SVD adalah suatu teknik untuk mendekomposisi matriks. Misalkan A adalah matriks term-dokumen, maka SVD dari A adalah A = UΣVT, di mana U dan V adalah matriks orthogonal dan Σ adalah matriks diagonal. Σ = diag(σ1,…, σmin(m,n)). Kita bisa memperkirakan A dengan cara melakukan SVD sebagian (partial SVD) Aj= UjΣjVjT, di mana Uj dan Vj adalah matriks yang diambil dari j kolom pertama U dan V dan Σj = diag(σ1,…, σj) dengan j << r (rank A). Dapat diperlihatkan bahwa Aj adalah perkiraan berrank j terbaik dari A dengan ukuran norm Frobenius[5]. Karena hasil dari SVD sebagian cukup dekat dengan matriks semula, maka sistem temu-kembali informasi berbasis SVD sebagian bisa diharapkan mempunyai hasil sebaik sistem berbasis matriks semula. Bahkan sebenarnya ada keuntungan tambahan dengan menggunakan SVD. Matriks Aj berasal dari matriks A yang noise. ditambahi Dengan demikian dokumen-dokumen dalam sistem menjadi lebih mirip satu sama lain bahkan memunculkan hubungan tersembunyi antar term dalam sistem. Misalkan term a dan term b sering muncul bersamaan dalam dokumen-dokumen tersebut. Berarti terdapat hubungan tersembunyi antara a dan b. Dengan pemilihan j yang tepat, maka hubungan tersembunyi tersebut bisa dimunculkan. Kelemahan dari SVD adalah ruang yang dibutuhkan untuk penyimpanan cukup besar. Pada metode ruang vektor hanya A yang perlu disimpan. Karena matriks A 7 adalah matriks jarang, hanya sebagian kecil elemennya saja yang perlu disimpan. Pada LSI berbasis SVD, harus disimpan matriks U, V dan Σ. Hanya matriks Σ saja yang merupakan matriks jarang. Akibatnya bisa saja membutuhkan ruang penyimpanan yang lebih besar dari matriks semula. 5 LSI Berbasis SDD Akan dicari triplet (dk , xk , yk) yang memenuhi Fk (d , x, y ) ≡ Rk − dxy T x ∈ϑ y ∈ϑ n d >0 d* = 2 y 2 =0 x T Ry x 2 2 y 2 2 Disubstitusikan ke F F ( d * , x, y ) = R = R 2 F (x − F xT Ry − 2 2 2 xT Ry + x y 2 2 x T 2 y 2 2 2 Ry ) 2 2 2 y 2 2 Sehingga masalahnya menjadi mencari triplet (d, x, y) yang memenuhi F x ∈ϑ m y ∈ϑ n mixed 2 2 xT Ry 2 2 x x y 2 2 max ~ F ( x, y ) = (x x T Ry 2 2 y ) 2 2 2 integer Masalah tersebut bisa diubah menjadi integer programming problem dengan cara mengeliminasi d. Agar lebih mudah selanjutnya akan dihilangkan subscript k. Didapat : m 2 Maka diperoleh nilai optimal d* 2 m yang merupakan programming problem. 2 = −2 x T Ry + 2d x ∂d [1] Untuk memperbaiki kinerja dalam hal penyimpanan, kita bisa menggunakan SDD untuk memperkirakan matriks A : Ak = Xk Dk YkT, di mana Xk = {x1…xk}, Yk = {y1…yk}, Dk = diag(d1,…,dk). xi dan yi adalah vektorvektor diskret dengan elemen-elemen ∈ ϑ = {-1, 0, 1}. Setiap elemennya cukup disimpan dalam 2 bit data saja. Dengan demikian ruang penyimpanan yang dibutuhkan jauh lebih sedikit dibandingkan dengan SVD. Pada SVD digunakan bilangan real double precision yang membutuhkan 8 byte untuk setiap elemennya. Implementasi SDD dilakukan secara iteratif. Mula-mula A0 = 0 dan Rk adalah matriks residu pada tahap ke-k, maka Rk = A – Ak-1. min ∂F n F (d , x, y ) = ∑∑ (rij − dxi y T ) 2 = j Karena m dan n besar akan dicari solusi pendekatan dengan alternating algorithm. Dimulai dengan menetapkan nilai y dan mencari nilai x, kemudian menetapkan nilai x dan mencari nilai y, dan seterusnya. Jika x atau y ditetapkan maka solusi dapat dicari. Misalkan nilai y ditetapkan maka harus dicari solusi i =1 j =1 R 2 F − 2dx T Ry + d 2 x 2 2 y 2 2 max Solusi optimal diperoleh jika turunan pertamanya bernilai 0 : 8 x ∈ϑ m ( ) xT s ~ F ( x, y ) = 2 x2 2 I N T E G R A L, vol . 6 no 1, April 2001 sign( si ), si ≠ 0 xi = 0, s i = 0 di mana s = Ry/||y||2. Solusi dari masalah di atas adalah Berikut ini adalah algoritma O’Leary-Peleg untuk melakukan SDD dengan rank kmax 1) R1 = A 2) For k = 1 to kmax (a) pilih suatu vektor awal y sehingga Rky ≠ 0. (b) change = 1 (x max (c) Cari x yang memenuhi T Rk y (y max (d) Cari y yang memenuhi T Rk x y y ∈ϑ n (e) newchange = T 2 2 x x ∈ϑ m ) 2 ) 2 2 2 ( x T Rk y ) 2 xk (f) improvement = 2 2 yk 2 2 newchange − change change (g) change = newchange (h) if improvement > 0.01 ulangi dari langkah (c) (i) xk = x, yk = y, d k = T x k Rk y k xk 2 2 yk 2 2 (j) Rk+1 = Rk - dkxkykT Sebagai vektor awal untuk y, dipilih vektor yang elemen ke-100,200,… bernilai 1 dan elemen lainnya bernilai 0. 6 Pengukuran Akurasi [1] Untuk mengukur akurasi hasil temu-kembali informasi, digunakan dua ukuran yaitu recall dan precision. Misalkan ri adalah jumlah dokumen relevan sampai posisi ke-i dari vektor terurut hasil pemrosesan query. Recall adalah proporsi dari dokumen relevan yang sudah diperoleh, yaitu ri / rn (rn I N T E G R A L, vol . 6 no 1, April 2001 adalah banyaknya dokumen relevan dalam sistem). Sedangkan precision adalah proporsi dari dokumen yang diperoleh yang relevan, pi = ri / i. Pseudoprecision pada recall level x adalah precision maksimum yang recallnya tidak kurang dari x 9 ~ ( x) = max{ p | ri p i rn ≥ x, i = 1,..., n} N-point (interpolated) average precision untuk satu query didefinisikan sebagai 1 N N −1 i p ∑ ~ N − 1 i =0 Digunakan 11-point average precision agar recall level dari pseudoprecisionnya 0, 0.1, 0.2, …,1. Karena menggunakan beberapa query, maka dihitung rataan (mean) dan median dari semua query tersebut. 7 Implementasi Tahap pertama dari implementasi adalah mencari data uji. Sebagai data uji dipilih 100 dokumen yang diambil dari artikel koran-koran online berbahasa Indonesia di internet (Kompas dan detik.com) pada periode Oktober-November 2000. Dari kumpulan dokumen tersebut dibentuk matriks term-dokumen. Kemudian dilakukan pembuangan kata-kata yang muncul pada lebih dari 15 dokumen (dimasukkan ke stop list). Kata-kata tersebut tidak memiliki makna (void of semantic). Namun dari pengamatan ternyata tidak semuanya merupakan kata-kata yang tidak mempunyai makna, sehingga dipilih kata- kata yang benar-benar tidak bermakna (misalnya dan, tetapi, sebab). Dalam hal ini penulis kurang mempunyai acuan dalam menentukan kata-kata tersebut, namun melakukannya secara manual (dipilih satu per satu). Langkah terakhir dari pembentukan matriks term dokumen adalah membuang kata-kata yang hanya muncul pada 1 dokumen saja. Matriks yang terbentuk berukuran 28.. X 100. Pembentukan matriks term-dokumen dilakukan dengan program yang dibuat dalam bahasa C. Setelah itu diimplementasikan algoritma O’Leary-Peleg pada matriks term-dokumen yang telah dibuat. Penulis melakukan sedikit modifikasi, yaitu memilih k pada selang [10,20,30,…,100] untuk mempercepat proses. Implementasi algoritma ini dilakukan dengan Matlab. Dari algoritma SDD di atas tampak bahwa banyak perhitungan norm-2 dari vektor. Pada Matlab sudah tersedia fungsi tersebut. Namun pada kasus ini, matriksnya diskret dengan elemen bernilai 0, 1 atau –1. Sehingga penulis mencoba mengoptimasikan implementasi dengan tidak menggunakan fungsi Matlab. Norm-2 dari vektor bisa dihitung dengan cara menghitung banyaknya elemen yang tidak nol. Hasilnya memang jumlah operasi floating point (flops) sedikit menurun dibandingkan bila menggunakan fungsi dari Matlab. Flops pada Proses SDD 600 flops (jutaan) 500 400 optimized 300 Matlab function 200 100 0 10 20 30 40 50 60 70 80 90 100 k 10 I N T E G R A L, vol . 6 no 1, April 2001 Selanjutnya didefinisikan query yang akan dipakai untuk menguji akurasi. Digunakan 11 query untuk menguji akurasi. Untuk setiap query ditentukan kumpulan dokumen yang relevan dengan query tersebut. Ternyata pemrosesan query berlangsung cepat (rata-rata 0.06 detik) dan flopsnya sedikit. flops Flops pada query processing 45000 40000 35000 30000 25000 20000 15000 10000 5000 0 mean median 10 20 30 40 50 60 70 80 90 100 k Puncaknya adalah pada k = 100 yang merupakan rank A. Namun dari grafik pertama (pembentukan SDD) tampak bahwa semakin besar k semakin lama proses pembentukannya dan semakin besar flopsnya. Kemudian dilakukan pengukuran tingkat akurasi untuk setiap hasil query processing. Dihitung mean dan median dari akurasi tersebut dan ditampilkan dalam grafik berikut ini. Dari grafik di atas tampak bahwa semakin besar k, semakin besar akurasinya. 60% 11-p o in t averag e p recisio n u n tu k 100 d o ku m en m ean m edian precisi 55% 50% 45% 40% 35% 30% 25% 20% 10 20 30 40 I N T E G R A L, vol . 6 no 1, April 2001 50 k 60 70 80 90 100 11 Akan dicari nilai k optimal. Idenya adalah dengan menggabung kedua grafik di atas. Tantu saja flops harus dinormalisasi sehingga nilainya antara 0 – 1. Agar dapat ditemukan k optimal, bukan digunakan akurasi melainkan ketidakakurasian (1akurasi). Dari grafik tersebut tampak bahwa k optimal sekitar 50. Mencari k optimal 100.00% 90.00% 80.00% 70.00% 60.00% 1-akurasi 50.00% normalized flops 40.00% 30.00% 20.00% 10.00% 0.00% 10 20 30 40 50 60 70 80 90 100 k 8 Kesimpulan Dari percobaan yang dilakukan dapat diambil beberapa kesimpulan : a. LSI menggunakan SDD memakan waktu lama dalam pembentukannya, namun cepat dalam pemrosesan query. b. Hasil pemrosesan query cukup baik, apalagi bila k dipilih cukup besar. c. Sebagai kompromi dari akurasi hasil pemrosesan query dan lamanya proses pembentukan, diambil k optimal = 50, dengan tingkat akurasi 50%. Bebarapa hal yang dapat dilakukan untuk melanjutkan penelitian ini adalah : 1) Menggunakan penyimpanan data yang lebih efisien (agar bisa 2 bit untuk setiap elemen matriks). Pada penelitian ini karena keterbatasan penulis pada pemahaman tentang Matlab, hal itu belum dilakukan. 12 2) Melakukan penambahan dan pengurangan dokumen dan term, tanpa perlu melakukan pembentukan ulang matriks term-dokumen. Daftar Pustaka [1] [2] KOLDA, T. G., dan O’LEARY, D. P. “A Semidiscrete Matrix Decomposition for Latent Semantic Indexing in Information Retrieval”. ACM Transactions on Information Systems, Vol. 16, No. 4, 1998, 322 – 346. KROVETZ, R., dan CROFT, W. B. “Lexical Ambiguity and Information Retrieval”. ACM Transactions on Information Systems, Vol. 10, No. 2, 1992, 115 – 141. I N T E G R A L, vol . 6 no 1, April 2001 [3] [4] [5] [6] HARMAN, D.K. The 3rd Text Retrieval Conference (TREC-3). NIST Special Publication 500-225. http://trec.nist.gov. Automatic Text SALTON G. Processing. Addison-Wesley, New York, 1989. GOLUB, G. H. dan VAN LOAN, C. F. Matrix Computations, 2nd ed. Johns Hopskins University Press, Baltimore, MD, 1989. BERRY, M. W. “Large-Scale Sparse Singular Value Computations”. The International Journal of I N T E G R A L, vol . 6 no 1, April 2001 [7] Supercomputer Applications, Vol. 6, No. 1, 1992, 13 – 49. Aljabar Linear ANTON, H. Elementer. (Terjemahan ke Bahasa Indonesia oleh Pantur Silaban), Penerbit Erlangga, 1985 Penulis Thomas Anung Basuki adalah dosen pengajar pada jurusan Ilmu Komputer, FMIPA Universitas Katolik Parahyangan 13 ...
View Full Document

Ask a homework question - tutors are online