Embeddings: Mendapatkan Embeddings

Ada beberapa cara untuk mendapatkan embeddings, termasuk dengan menggunakan algoritme tercanggih yang dibuat oleh Google.

Teknik Reduksi Dimensi Standar

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

Misalnya, analisis komponen utama (PCA) telah digunakan untuk membuat embeddings kata. Dalam contoh seperti vektor tas kata-kata, PCA mencoba menemukan dimensi yang memiliki korelasi tinggi yang dapat diciutkan menjadi satu dimensi.

Word2vec

Word2vec adalah algoritme yang dibuat oleh Google untuk melatih embeddings kata. Word2vec bergantung pada hipotesis distribusi untuk memetakan kata-kata yang memiliki kesamaan secara semantik guna menutup vektor embeddings secara geometris.

Hipotesis distribusi menunjukkan bahwa kata-kata yang memiliki kata bersebelahan yang sama cenderung serupa secara semantik. Kata "anjing" dan "kucing" sering muncul di dekat kata "dokter hewan", hal ini mencerminkan kesamaan semantik mereka. Seperti kata ahli bahasa John Firth pada tahun 1957, "Anda bisa memahami sebuah kata dengan melihat kata yang berhubungan dengannya".

Word2Vec memanfaatkan informasi kontekstual seperti ini dengan melatih jaringan neural untuk membedakan kelompok kata yang sering muncul bersamaan dengan kata-kata yang dikelompokkan secara acak. Lapisan masukan mengelompokkan representasi renggang dari kata target dengan satu atau lebih kata konteks. Masukan ini terhubung ke satu lapisan tersembunyi yang lebih kecil.

Dalam satu versi algoritme, sistem membuat contoh negatif dengan mengganti kata target dengan kata bunyi acak. Dalam contoh positif "pesawat tersebut terbang", sistem dapat menukar kata target tersebut dengan "jogging" untuk membuat contoh negatif yang berlawanan, seperti "jogging tersebut terbang".

Versi lain dari algoritme membuat contoh negatif dengan memasangkan kata target yang sebenarnya dengan kata konteks yang dipilih secara acak. Jadi, algoritme ini dapat mengambil contoh positif (pesawat, tersebut), (terbang, pesawat) dan contoh negatif (kumpulan, pesawat), (siapa, pesawat) dan belajar untuk mengidentifikasi pasangan mana yang muncul bersamaan dalam sebuah teks.

Namun, pengklasifikasi bukanlah tujuan sebenarnya dari versi sistem mana pun. Setelah model dilatih, Anda akan memiliki embeddings. Anda dapat menggunakan bobot yang menghubungkan lapisan masukan dengan lapisan tersembunyi untuk memetakan representasi renggang dari kata ke vektor yang lebih kecil. Embeddings ini dapat digunakan kembali di pengklasifikasi lain.

Untuk informasi lebih lanjut tentang word2vec, buka tutorial di tensorflow.org

Melatih Embeddings sebagai Bagian dari Model yang Lebih Besar

Anda juga dapat mempelajari embeddings sebagai bagian dari jaringan neural untuk tugas target. Pendekatan ini memberi Anda embedding yang disesuaikan dengan baik untuk sistem tertentu milik Anda, namun mungkin akan memakan waktu yang lebih lama daripada melatih embedding secara terpisah.

Secara umum, saat Anda memiliki data renggang (atau data padat yang ingin disematkan), Anda dapat membuat unit embedding yang merupakan jenis khusus unit tersembunyi dari ukuran d saja. Lapisan embedding ini dapat digabungkan dengan fitur lain dan lapisan tersembunyi. Seperti dalam DNN apa pun, lapisan terakhir akan menjadi kerugian yang dioptimalkan. Misalnya, anggap saja kita melakukan penyaringan kolaboratif, yang tujuannya adalah untuk memprediksi minat seorang pengguna dari minat pengguna lain. Kita dapat memodelkan ini sebagai masalah supervised learning dengan menyisihkan (atau menahan) secara acak sejumlah kecil film yang telah ditonton oleh pengguna sebagai label positif, lalu mengoptimalkan kerugian softmax.

Gambar 5. Sampel arsitektur DNN untuk mempelajari embeddings film dari data penyaringan kolaboratif.

Sebagai contoh lain, jika Anda ingin membuat lapisan embedding untuk kata dalam iklan real estate sebagai bagian dari DNN untuk memprediksi harga perumahan, Anda perlu mengoptimalkan Kerugian L2 menggunakan harga promo rumah yang diketahui dalam data pelatihan Anda sebagai label.

Saat mempelajari embedding d dimensi, setiap item dipetakan ke titik dalam ruang d dimensi sehingga item yang serupa berdekatan dalam ruang ini. Gambar 6 membantu menggambarkan hubungan antara bobot yang dipelajari dalam lapisan embedding dengan tampilan geometris. Bobot tepi antara simpul masukan dan simpul dalam lapisan embedding dimensi d sesuai dengan nilai koordinat untuk masing-masing sumbu d.

Gambar yang mengilustrasikan hubungan antara bobot lapisan embedding dan tampilan geometris dari embedding.

Gambar 6. Tampilan geometris dari bobot lapisan embedding.