• Home
  • About
  • Archives
  • Contact
  • Projects
Logo

  • Data Science
  • Machine Learning
  • Research

Cara Kerja Word Embedding GloVe | Catatan Penelitian #7

22 December 2020
Rifqi Fauzi Rahmadzani
0 Comments
  • Email
  • Facebook
  • Twitter
  • Pinterest
  • LinkedIn
22 December 2020
0 Comments

GloVe termasuk metode unsupervised learning saat melakukan proses pembelajaran representasi kata dari kemunculan kata dalam corpus yang diberikan. Unsupervised learning merupakan metode yang tidak menggunakan data latih sehingga data berasal dari data yang ada dengan mengklasifikasikan menjadi beberapa bagian. Global Vectors for Word Representation (GloVe) merupakan representasi kata untuk menghasilkan word embedding untuk dapat digunakan menangani word similarity, word analogy, dan named entity recognition [1].

Analogi

Pada prinsipnya GloVe memperoleh hubungan semantik antar kata berdasarkan co-occurrence matrix (Matrik kemunculan kata secara bersamaan). Diberikan korpus kata-kata dalam V, co-occurance matrix sebagai X yang akan membentuk matrik V x V. Di mana i adalah baris dan j adalah kolom dari X. Xij menunjukkan kata i muncul bersamaan dengan kata j. Contoh co-occurrence matrix ditunjukkan sebagai berikut.

Co-occurrence matrix pada kalimat “the cat sat on the mat” dengan ukuran window = 1. Terlihat bahwa matriks tersebut adalah matriks simetris.

Untuk dapat mengukur kesamaan semantik antar kata, maka dibutuhkan tiga kata yang terlibat. Terlihat dari Count matrix di atas bahwa i (the) dengan j (cat) adalah 1 yang mana dua kata itu muncul secara bersamaan dalam ukuran window =1.

Dengan mempertimbangkan entitas sebagai berikut:

Pik/Pjk dimana Pik = Xik/Xi

Pik menunjukkan probabilitas terjadinya kata i dan k secara bersamaan yang dihitung dengan membagi berapa kali i dan k muncul bersama Xik dengan jumlah total kata i muncul dalam korpus Xi.

Sebagaimana contoh pada dua kata yaitu “ice” dan “steam”. Kata dalam k dapat disebut “probe word”.

  • Mis. k = solid sangat serupa dengan ice namun tidak serupa dengan steam, maka probabilitas Pik/Pjk akan sangat tinggi (>1)
  • Mis. k = gas sangat serupa dengan steam namun tidak serupa dengan ice, maka probabilitas Pik/Pjk akan sangat rendah (<1)
  • Mis. k = water serupa dengan ice dan steam atau Mis. k = fashion tidak serupa dengan ice dan steam, maka probabilitas Pik/Pjk akan mendekati 1

Sehingga apabila ingin menggabungkan Pik/Pjk ke dalam hitungan vektor kata diperlukan statistik global ketika melakukan pembelajaran vektor kata.

Konversi Metric ke Word Vector

Word vector merupakan vektor berdimensi tinggi, dan Pik/Pjk merupakan scalar. Jadi kali ini kita tidak menggunakan persamaan seperti F(i,j,k) = Pik/Pjk akan tetapi hanya menggunakan expression. Terdapat tiga entitas kata yaitu (i, j, dan k) dan berikut GloVe dapat memberikan vektor hubungan antara ketiga entitas tersebut.

Diberikan arti dari setiap notasi sebagai berikut:

  • w, u : pemisah antara dua lapisan embedding
  • w* : transpose dari w
  • x : co-occurrence matrix
  • bw dan bu: bias dari w dan u
  • P : Probabilitas kata

Asumsikan terdapat fungsi F yang mewakili vektor kata dari i, j dan k yang memberikan output rasio sebagai mana pada persamaan berikut.

F(wi,wj,uk) = Pik/Pjk

Persamaan tersebut terdapat dua lapisan embedding yang disisipkan (w dan u). Kedua lapisan ini bekerja secara setara dan hanya berbeda pada inisialisasi randomnya. Memiliki dua lapisan ini dapat membantu model untuk mengurangi overfitting.

Vektor kata adalah sistem linear yang dapat melakukan aritmatika dalam embedding space.

wking – wmale + wfemale = wqueen

Dari persamaan di atas dapat kita diubah menjadi seperti berikut.

F(wi – wj,uk) = Pik/Pjk

Selain itu, pada gambar berikut juga dapat diamati mengenai karakteristik Pik/Pjk dalam embedding space.

Jarak vektor terhadap probe word w.r.t. wi – wj

Terlihat dari gambar di atas bagaimana jarak (garis putus-putus) berubah sebagaimana dengan mempertimbangkan kata yang berbeda. Jarak antara dua kata i dan k, berkorelasi dengan kebalikan dari P(ik). Hal ini dikarenakan jarak antara vektor kata wi – wj (garis merah) selalu dihitung. Dimana solid lebih dekat dengan ice dari pada steam dan gas lebih dekat dengan steam daripada ice.

Vektor ke Scalar

Berikutnya adalah bagaimana membuat vektor ke skalar. Proses ini akan melibatkan operasi transpose dan multiplication antara dua entitas seperti berikut.

F((wi – wj)*,uk) = Pik/Pjk

Jika diasumsikan sebuah word vector sebagai matrix Dx1 (wi – wj)*,  akan berbentuk 1xD yang memberikan skalar saat dikalikan dengan uk.

Selanjutnya, jika F dianggap memiliki properti tertentu (mis. homomorfisme antara kelompok additif dan kelompok multiplikatif) yang memberi,

F(wi* uk – wj* uk) = F(wi* uk)/F(wj* uk) = Pik/Pjk

Atau dapat di intuisikan bahwa homomorfisme memastikan pengurangan F(A-B) dapat direpresentasikan sebagai pembagian F(A)/F(B) dan mendapatkan hasil yang sama. Oleh karena itu,

F(wi* uk)/F(wj* uk) = Pik/Pjk dan F(wi* uk) = Pik

Oleh karenanya F(A)/F(B) = G(A)/G(B) namun bukan berarti F(A) = G(A). Karena F(A)/F(B) = 2F(A)/2F(B), bukan berarti F(A) = 2F(A). Hubungan di atas dapat didefinisikan dengan benar maka akan menjadi,

F(wi* uk) = c Pik dimana c adalah konstanta

Hal itu juga dapat direpresentasikan kedalam j sehingga F(wi* uk) = c Pik. Jadi, jika kesamaan antara i dan k (untuk setiap j) juga akan membangkitkan c. Sehingga dengan cara tertentu bahwa semua vektor kata akan naik / turun dengan faktor c.

Apabila diasumsikan F=exp sebagai properti homomorfisme di atas yang terpenuhi. Kemudian dapat diatur melalui persamaan berikut.

Exp(wi* uk) = Pik = Xik/Xi dan wi* uk = log(Xik) – log(Xi)

Xi merupakan independen dari k, selanjutnya pemindahan ruas log(Xi)

wi* uk + log(Xi) = log(Xik)

Mengingat persamaan di atas belum memiliki bias, maka berikutnya mengubah log(Xi) sebagai notasi bias.

wi* uk + bwi + buk = log(Xik) atau wi* uk + bwi + buk – log(Xik) = 0

Dimana bw dan bu adalah bias dalam jaringan.

Menentukan Nilai Cost

Idealnya dalam pengaturan ketika kita memiliki vektor kata yang sempurna, ekspresi di atas akan menjadi nol. Jadi perlu menetapkan fungsi cost dalam persamaan berikut.

J(wi – wj) = wi* uj + bwi + buj – log(Xik)2

Fungsi kuadrat untuk memberikan fungsi kuadrat rata-rata cost. Selain itu k juga telah diganti dengan j.

Menentukan Fungsi Akhir Cost

Fungsi ini berguna ketika hanya menggunakan fungsi cost sebelumnya maka akan ada masalah yang terjadi apabila Xik = 0. Masalah ini menimbulkan munculnya 3 huruf yaitu NaN. Karena log(0) tidak ditentukan. Perbaikan dari masalah tersebut adalah dengan menggunakan

J = f(Xij) f(Xik) (WiT uj + bwi + buj – log(Xik)2

Dimana f(Xij) = (x/x{max})a if x < x{max} else 0

Referensi

[1] J. Pennington, R. Socher, and C. D. Manning, “GloVe : Global Vectors for Word Representation,” Proceedings ofthe 2014 Conference on Empirical Methods in Natural Language Processing, pp. 1532–1543, 2014.

[2] https://towardsdatascience.com/light-on-math-ml-intuitive-guide-to-understanding-glove-embeddings-b13b4f19c010

  • Email
  • Facebook
  • Twitter
  • Pinterest
  • LinkedIn
Previous

Membuat Model Word2Vec Menggunakan Library Python Gensim | Catatan Penelitian #6

Next

Membuat Model GloVe Dari Korpus Wikipedia Bahasa Indonesia | Catatan Penelitian #8

The Author

Rifqi Fauzi Rahmadzani

Being someone who is able to contend with my interest and to learn new imaginative, intuitive, and communicative things. The greatest hope of my ability can be beneficial to others.

  • facebook
  • twitter
  • instagram
  • linkedin

Leave A Comment Cancel reply

author image

The Author

Rifqi Fauzi Rahmadzani

  • facebook
  • twitter
  • instagram

Being someone who is able to contend with my interest and to learn new imaginative, intuitive, and communicative things. The greatest hope of my ability can be beneficial to others.

Logo

© 2020 Rifqifai.com. Developed by Rifqi Fauzi Rahmadzani