Embeddings: Mendapatkan embedding

Bagian ini berfokus pada dua teknik umum untuk mendapatkan penyematan:

  • Pengurangan dimensi
  • Mengekstrak penyematan dari model jaringan saraf yang lebih besar

Teknik pengurangan dimensi

Ada banyak teknik matematis untuk mengetahui struktur penting dari ruang berdimensi tinggi dalam ruang berdimensi rendah. Secara teori, teknik-teknik tersebut dapat digunakan dalam membuat embeddings untuk sistem machine learning.

Misalnya, analisis komponen utama (PCA) telah digunakan untuk membuat penyematan kata. Dengan sekumpulan instance seperti vektor bag of words, PCA mencoba menemukan dimensi yang sangat berkorelasi yang dapat diciutkan menjadi satu dimensi.

Melatih embedding sebagai bagian dari jaringan neural

Anda dapat membuat penyematan saat melatih jaringan saraf untuk tugas target Anda. Pendekatan ini memberi Anda penyematan yang disesuaikan dengan baik untuk sistem tertentu, tetapi mungkin memerlukan waktu lebih lama daripada melatih penyematan secara terpisah.

Secara umum, Anda dapat membuat lapisan tersembunyi berukuran d di jaringan neural yang ditetapkan sebagai lapisan penyematan, dengan d mewakili jumlah node di lapisan tersembunyi dan jumlah dimensi di ruang penyematan. Lapisan penyematan ini dapat digabungkan dengan fitur lain dan lapisan tersembunyi. Seperti pada deep neural network lainnya, parameter akan dioptimalkan selama pelatihan untuk meminimalkan kerugian pada node di lapisan output jaringan.

Kembali ke contoh rekomendasi makanan, tujuan kita adalah memprediksi makanan baru yang akan disukai pengguna berdasarkan makanan favorit mereka saat ini. Pertama, kita dapat mengompilasi data tambahan tentang lima makanan favorit pengguna. Kemudian, kita dapat mencontohkan tugas ini sebagai masalah supervised learning. Kita menetapkan empat dari lima makanan teratas ini sebagai data fitur, lalu secara acak mengesampingkan makanan kelima sebagai label positif yang ingin diprediksi model kita, dengan mengoptimalkan prediksi model menggunakan softmax loss.

Selama pelatihan, model jaringan saraf akan mempelajari bobot optimal untuk node di lapisan tersembunyi pertama, yang berfungsi sebagai lapisan penyematan. Misalnya, jika model berisi tiga node di lapisan tersembunyi pertama, model tersebut dapat menentukan bahwa tiga dimensi item makanan yang paling relevan adalah sandwich, dessert, dan cairan. Gambar 12 menunjukkan nilai input yang dienkode one-hot untuk "hot dog" yang diubah menjadi vektor tiga dimensi.

Gambar 12. Jaringan saraf untuk enkode one-hot hot dog. Lapisan pertama adalah lapisan input dengan 5 node, masing-masing dianotasi dengan ikon makanan yang diwakilinya (borscht, hot dog, salad, ..., dan shawarma). Node ini masing-masing memiliki nilai [0, 1, 0, ..., 0], yang merepresentasikan encoding one-hot untuk 'hot dog'. Lapisan input terhubung ke lapisan penyematan 3 node, yang node-nya memiliki nilai 2,98, -0,75, dan 0. Lapisan
    penyematan terhubung ke lapisan tersembunyi 5 node, yang kemudian
    dihubungkan ke lapisan output 5 node.
Gambar 12. Encoding one-hot hot dog yang disediakan sebagai input ke deep neural network. Lapisan embedding menerjemahkan encoding one-hot menjadi vektor embedding tiga dimensi [2.98, -0.75, 0].

Selama pelatihan, bobot lapisan embedding akan dioptimalkan sehingga vektor embedding untuk contoh serupa lebih dekat satu sama lain. Setiap dimensi lapisan penyematan (yang diwakili oleh setiap node di lapisan penyematan) jarang dipahami seperti "dessertness" atau "liquidness". Terkadang, "makna"nya dapat disimpulkan, tetapi tidak selalu begitu.

Penyematan biasanya akan bersifat khusus untuk tugas, dan akan berbeda satu sama lain saat tugas berbeda. Misalnya, penyematan yang dihasilkan oleh model klasifikasi vegetarian vs. non-vegetarian mungkin memiliki dua dimensi: konten daging dan konten susu. Sementara itu, penyematan yang dihasilkan oleh pengklasifikasi sarapan vs. makan malam untuk masakan Amerika mungkin memiliki dimensi yang sedikit berbeda: kandungan kalori, kandungan biji-bijian, dan kandungan daging. "Sereal" dan "sandwich telur dan bacon" mungkin berdekatan di ruang penyematan klasifikasi sarapan vs. makan malam, tetapi berjauhan di ruang penyematan klasifikasi vegetarian vs. non-vegetarian.

Melatih embedding kata

Di bagian sebelumnya, Anda telah mempelajari visualisasi hubungan semantik di ruang penyematan word2vec.

Word2vec adalah salah satu dari banyak algoritma yang digunakan untuk melatih embeddings kata. Model ini mengandalkan hipotesis distribusi untuk memetakan kata yang serupa secara semantik ke vektor penyematan yang secara geometris dekat. Hipotesis distribusi menyatakan bahwa kata-kata yang sering memiliki kata tetangga yang sama cenderung serupa secara semantik. "dog" dan "cat" sering kali muncul di dekat kata "veterinarian", dan fakta ini mencerminkan kesamaan semantiknya. Seperti yang dikatakan oleh ahli bahasa John Firth pada tahun 1957, "Anda akan mengetahui kata dari sekelompok kata yang menyertainya".

Video berikut menjelaskan metode lain untuk membuat penyematan kata sebagai bagian dari proses pelatihan jaringan saraf, menggunakan model yang lebih sederhana:

Penyematan statis vs. kontekstual

Salah satu keterbatasan embedding kata seperti yang dibahas dalam video di atas adalah bahwa embedding tersebut statis. Setiap kata diwakili oleh satu titik dalam ruang vektor, meskipun kata tersebut mungkin memiliki berbagai arti yang berbeda, bergantung pada cara kata tersebut digunakan dalam kalimat. Dalam latihan terakhir, Anda menemukan kesulitan memetakan kemiripan semantik untuk kata oranye, yang dapat menandakan warna atau jenis buah.

Penyematan kontekstual dikembangkan untuk mengatasi kekurangan ini. Penyematan kontekstual memungkinkan beberapa representasi kata yang sama, yang masing-masing menyertakan informasi tentang konteks yang digunakan kata tersebut. Dalam penyematan kontekstual, kata orange mungkin memiliki dua representasi terpisah: satu menangkap penggunaan "warna" kata, seperti dalam kalimat seperti "Sweater favorit saya memiliki garis-garis oranye", dan satu lagi menangkap penggunaan "buah" kata, seperti dalam kalimat seperti "Jeruk dipetik dari pohon sebelum sepenuhnya matang".