Monday, March 19, 2012

Latent Semantic Analysis - Singular Value Decomposition

Mau sharing mengenai pemahaman LSA - SVD yang udah nempel di kepala, walau belum 100% paham pengimplementasiannya ke dalam coding... hehe, cekidot...

Latent Semantic Analysis (LSA) merupakan teknik matematika/statistika untuk mengekstraksi dan menyimpulkan hubungan kontekstual arti kata yang diaplikasikan pada bagian teks yang dibutuhkan (Landauer, Foltz and Laham, 1998). Pada LSA, dilakukan preprocessing yang salah satunya berfungsi sebagai penentu kumpulan term untuk direpresentasikan dalam sebuah matriks semantik dan kemudian diolah secara matematis menggunakan teknik aljabar linier Singular Value Decomposition (SVD), sehingga dalam hal ini, query dapat dibandingkan dengan hasil SVD untuk menghitung similaritas antara query-document (Baker, 2005). Selain itu, juga dilakukan representasi ke dalam bentuk matriks, sehingga dari hasil dekomposisi SVD, terdapat tiga jenis operasi perbandingan yang dapat dilakukan yaitu:

  1. Membandingkan dua kata (terms)
  2. Membandingkan dua dokumen (documents)
  3. Membandingkan kata (terms) dengan dokumen (documents)
Berbeda dari dua operasi sebelumnya yang memerlukan penghitungan  cosine similarity, untuk membandingkan kata i dengan dokumen j dapat diketahui dari nilai cell(i,  j) dari matriks aproksimasi kata-dokumen yang didapat dari perhitungan SVD.
(Deerwester et al., 1990)


Gambar 1 - Representasi geometri 2 dimensi dari term dan dokumen pada analisis SVD

Pada gambar di atas, kumpulan term yang ada dipetakan keberadaannya ke tiap dokumen, sehingga didapatkan nilai keberadaan tiap term pada dokumen-dokumen yang ada, sehingga isu yang muncul adalah “seberapa dekat hubungan antara term i dengan dokumen j?”. Melalui standar informasi pendekatan sistem temu balik, untuk membandingkan dua baris, kolom, atau menguji cell digunakan matriks X, yang terdiri dari term pada dokumen (Deerwester et al., 1990). Namun kita menggunakan X^ yang merepresentasikan pola dari X dan nilainya mendekati X yang sebenarnya. Karena X^ = TSD’ (Deerwester et al., 1990), maka dapat digambarkan sebagai berikut.

T : mendeskripsikan baris asli sebagai vektor turunan nilai faktor ortogonal
S : adalah matriks diagonal yang memuat nilai skala jika ketiga komponen matriks dikalikan
D : mendeskripsikan kolom seperti matriks T
t : adalah jumlah baris pada X
d : adalah jumlah kolom pada X
m : adalah rank pada X (≤min(t,d))

Berikut merupakan contoh pengimplementasian rumus di atas.
                                    
                                         Misal, X =
 

Dengan,
T (9 dimensi vektor singular kiri untuk 12 term)
S (matriks diagonal dari 9 nilai singular)
D (9 dimensi vektor singular kanan untuk 9 dokumen)

Maka untuk mencari X^ (agar mengetahui keterhubungan antara term dan dokumen lebih detil), maka perlu untuk mencari matriks T, S, dan DT untuk kemudian dihitung ke dalam rumus yang telah disebutkan di atas.


Untuk mencari T, dilakukan:
  1. Mencari hasil dari XXT
  2. Mencari eigenvalue dan eigenvector dari XXT. Eigenvector adalah vektor tak nol yang memenuhi persamaan. Dimana A adalah matriks segiempat, λ bernilai skalar, dan v adalah eigenvector / vektor karakteristik. λ adalah eigenvalue / akar karakteristik nya.
  3. Konversi matriks vektor ke matriks ortogonal menggunakan proses Gram-Schmidt orthonormalization


Gambar 2 - Hasil matriks T


Untuk mencari D, dilakukan:
  1. Mencari hasil dari XTX
  2. Mencari eigenvalue dan eigenvector dari XTX
  3. Konversi matriks vektor ke matriks ortogonal menggunakan proses Gram-Schmidt orthonormalization
  4. Didapatkan D, namun yang dibutuhkan adalah DT, maka dilakukan transpose terhadap D

Gambar 3 - Hasil matriks D transpose


Untuk mendapatkan S, hanya perlu mengakarkan nilai eigenvalue yang sudah didapatkan dan merangkaikan dalam matriks secara diagonal.
Gambar 4 - Hasil matriks S


Lalu dimasukkan ke dalam rumus perkalian matriks berikut,

Sehingga didapatkan hasil berikut,

Dari hasil tersebut, ditemukan dokumen yang paling mewakili makna dari kumpulan term yang ada. Sehingga dapat diberikan rekomendasi dokumen sesuai dengan nilai yang dihasilkan.

9 comments:

  1. kk, maaf mau bertanya, step by step perhitungan manual untuk hasil metrik T,D,S itu sperti apa ya?? saya belum memahami step by step hitungan manual secara mendetail. makasih kk, mohon pencerahanya :)

    ReplyDelete
    Replies
    1. Maaf lama ya balasnya.
      Terkait perhitungan untuk mendapatkan matriks T, S, D, sebenarnya saya pun agak kesulitan saat melakukannya secara manual. Karena pada prakteknya saya biarkan mesin laptop saya yang bekerja (saya pakai bahasa Java, engine nya netbeans, pakai library SingularValueDecomposition), jadi tinggal panggil fungsi seperti getU, getS, getV (misal matriks2nya jadi S,V,D - nama tak masalah).
      Namun untuk referensi utamanya, insyaAllah saya akan upload dan sertakan link nya di sini (tapi maaf, datanya sekarang tidak saya pegang).
      Tapi untuk wawasan bisa kunjungi http://www.miislita.com/information-retrieval-tutorial/svd-lsi-tutorial-4-lsi-how-to-calculations.html. Bahkan di situs ini untuk mendapatkan U,S,V digunakan Bluebit Matrix Calculator (agar dapat langsung di-generate matriks2nya).
      Semoga membantu ^^.

      Delete
    2. http://www.cob.unt.edu/itds/faculty/evangelopoulos/dsci5910/LSA_Deerwester1990.pdf
      ini referensi utamanya untuk LSA,monggo dibaca...
      Tapi kalo cuma ingin memahami kalkulasi SVD, buka link yang di atas saja.

      Delete
    3. mba bisa minta alamat email untuk tanya2, kebetulan tugas akhir saya ttg LSA

      Delete
  2. fungsi proses SVD untuk pencarian apa ya?

    ReplyDelete
  3. link yg pertama kug eror ya,,, butuh buat memahami kalkulasi SVDnya,,,

    ReplyDelete
  4. permisi saya bisa minta jurnal tentang LSA dan Perhitungan SVD

    ReplyDelete
  5. Artikel y bagus kebetulan saya lagi TA boleh minta referensi yah bak ,mksih
    Azwar.kreatif@gmail.com

    ReplyDelete
  6. In the ever-evolving realm of SEO, embracing innovations like Latent Semantic Indexing is crucial for achieving sustainable success. By understanding the power of LSI keywords and incorporating them intelligently into your content, you not only enhance your search engine visibility but also provide users with valuable and contextually relevant information.

    In the intricate dance between websites and search engines, dynamic ways of SEO emerges as the orchestrator of success. From content optimization to technical intricacies, embracing these dynamic ways allows your website to not only survive but thrive in the competitive digital sphere.

    Embracing Semantic SEO is a strategic move towards future-proofing your digital presence. By transitioning from a keyword-centric to a context-driven approach, you signal to search engines that your content is not only relevant but also aligned with user intent.

    ReplyDelete