Bagian ini membahas beberapa cara untuk mendapatkan penyematan, serta cara mengubah penyematan statis menjadi penyematan kontekstual.
Teknik pengurangan dimensi
Ada banyak teknik matematika yang menangkap struktur penting 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 dan lapisan tersembunyi lainnya. 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, sasaran 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 membuat model tugas ini sebagai masalah pembelajaran terpandu. 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 neural 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, yang 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 mewakili encoding
one-hot '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.](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/one_hot_hot_dog_embedding.png?authuser=2&hl=id)
hot dog
yang disediakan sebagai input ke deep neural network. Lapisan penyematan menerjemahkan
enkode one-hot menjadi vektor penyematan tiga dimensi
[2.98, -0.75, 0]
.
Selama pelatihan, bobot lapisan penyematan akan dioptimalkan sehingga vektor penyematan untuk contoh yang serupa lebih dekat satu sama lain. Seperti yang disebutkan sebelumnya, dimensi yang dipilih model sebenarnya untuk penyematan tidak mungkin seintuitif atau mudah dipahami seperti dalam contoh ini.
Penyematan kontekstual
Salah satu batasan vektor penyematan statis word2vec
adalah kata dapat memiliki arti
yang berbeda dalam konteks yang berbeda. "Ya" berarti satu hal,
tetapi kebalikannya dalam frasa "Ya, benar". "Post" dapat berarti "surat,"
"untuk memasukkan ke dalam surat," "pendukung anting," "penanda di akhir perlombaan kuda,"
"pascaproduksi," "pilar," "untuk memasang pemberitahuan," "untuk menempatkan penjaga atau
tentara", atau "setelah", di antara kemungkinan lainnya.
Namun, dengan penyematan statis, setiap kata direpresentasikan oleh satu titik
dalam ruang vektor, meskipun mungkin memiliki berbagai arti.
Pada latihan terakhir,
Anda telah menemukan batasan penyematan statis untuk kata
orange, yang dapat menunjukkan warna atau jenis buah. Dengan hanya satu
penyematan statis, orange akan selalu lebih dekat dengan warna lain daripada
juice saat dilatih pada set data word2vec
.
Penyematan kontekstual dikembangkan untuk mengatasi keterbatasan ini. Penyematan kontekstual memungkinkan kata direpresentasikan oleh beberapa penyematan yang menggabungkan informasi tentang kata di sekitarnya serta kata itu sendiri. Orange akan memiliki penyematan yang berbeda untuk setiap kalimat unik yang berisi kata dalam set data.
Beberapa metode untuk membuat penyematan kontekstual, seperti
ELMo, menggunakan penyematan statis
contoh, seperti vektor word2vec
untuk kata dalam kalimat,
dan mengubahnya dengan fungsi yang menggabungkan informasi tentang kata-kata
di sekitarnya. Tindakan ini akan menghasilkan penyematan kontekstual.
Klik di sini untuk mengetahui detail tentang penyematan kontekstual
- Khusus untuk model ELMo, penyematan statis digabungkan dengan penyematan yang diambil dari lapisan lain, yang mengenkode pembacaan kalimat dari depan ke belakang dan belakang ke depan.
- Model BERT menyamarkan bagian urutan yang diambil model sebagai input.
- Model Transformer menggunakan lapisan self-attention untuk memberi bobot relevansi kata lain dalam urutan ke setiap kata. Fungsi ini juga menambahkan kolom yang relevan dari matriks penyematan posisional (lihat enkode posisional) ke setiap penyematan token yang dipelajari sebelumnya, elemen demi elemen, untuk menghasilkan penyematan input yang dimasukkan ke model lainnya untuk inferensi. Embedding input ini, yang unik untuk setiap urutan tekstual yang berbeda, adalah embedding kontekstual.
Meskipun model yang dijelaskan di atas adalah model bahasa, penyematan kontekstual berguna dalam tugas generatif lainnya, seperti gambar. Penyematan nilai RGB piksel dalam foto kuda memberikan lebih banyak informasi ke model saat digabungkan dengan matriks posisional yang mewakili setiap piksel dan beberapa enkode piksel tetangga, yang membuat penyematan kontekstual, daripada penyematan statis asli dari nilai RGB saja.