Embeddings: Mendapatkan embedding

Bagian ini berfokus pada dua teknik umum untuk mendapatkan embedding:

  • Pengurangan dimensi
  • Mengekstrak embedding dari model neural net yang lebih besar

Teknik pengurangan dimensi

Ada banyak teknik matematika untuk menangkap komponen yang penting struktur ruang dimensi tinggi dalam ruang berdimensi rendah. Secara teori, salah satu teknik ini dapat digunakan untuk membuat {i>embedding<i} bagi sebuah mesin learning otomatis.

Misalnya, analisis komponen utama (PCA) digunakan untuk membuat embedding kata. Dengan sekumpulan instance seperti vektor kantong kata, PCA akan mencoba untuk menemukan dimensi yang berkorelasi tinggi yang dapat diciutkan menjadi satu dimensi kustom.

Melatih embedding sebagai bagian dari jaringan neural

Anda bisa membuat embedding saat melatih model jaringan neural untuk tugas yang Anda targetkan. Pendekatan ini memberi Anda embeddings yang disesuaikan dengan baik untuk sistem tertentu, tetapi mungkin memakan waktu lebih lama daripada melatih embedding secara terpisah.

Secara umum, Anda dapat membuat lapisan tersembunyi berukuran d di jaringan yang ditetapkan sebagai lapisan embedding, dengan d mewakili jumlah {i>node<i} di {i>hidden layer<i} dan jumlah dalam ruang embedding. Lapisan embedding ini dapat digabungkan dengan fitur dan lapisan tersembunyi lainnya. Seperti dalam jaringan neural dalam mana pun, parameter akan dioptimalkan selama pelatihan untuk meminimalkan kerugian pada node lapisan output jaringan.

Kembali ke contoh rekomendasi makanan, tujuan kita adalah untuk memprediksi makanan baru yang akan disukai pengguna berdasarkan favorit mereka saat ini makanan. Pertama, kita bisa mengumpulkan data tambahan tentang lima favorit teratas makanan. Kemudian, kita dapat mencontohkan tugas ini sebagai masalah supervised learning. Kita tetapkan empat dari lima makanan teratas ini untuk menjadi data fitur, dan kemudian secara acak menyisihkan makanan kelima sebagai label positif yang akan diprediksi oleh model kita, mengoptimalkan prediksi model menggunakan softmax kerugian.

Selama pelatihan, model jaringan neural akan mempelajari bobot optimal untuk simpul di lapisan tersembunyi pertama, yang berfungsi sebagai lapisan embedding. Misalnya, jika model berisi tiga {i>node<i} di lapisan tersembunyi pertama, model mungkin menentukan bahwa tiga dimensi bahan makanan yang paling relevan {i>sandwich<i}, {i>dessertness<i}, dan {i>likuidness<i}. Gambar 12 menunjukkan metode one-hot yang dienkode nilai input untuk "hot dog" diubah menjadi vektor tiga dimensi.

Gambar 12. Jaringan neural untuk encoding one-hot hot dog. Lapisan pertama adalah
    lapisan input dengan 5 node, masing-masing dianotasikan dengan ikon makanan
    (borscht, hot dog, salad, ..., dan shawarma). Node ini memiliki
    nilai [0, 1, 0, ..., 0], masing-masing, yang mewakili one-hot
    pengkodean &#39;hot dog&#39;. Lapisan input terhubung ke penyematan 3 node
    , yang {i>node<i}nya memiliki nilai masing-masing 2,98, -0,75, dan 0. Tujuan
    lapisan embedding terhubung ke lapisan
tersembunyi 5 node, yang kemudian
    terhubung ke lapisan output 5 node.
Gambar 12. Encoding one-hot hot dog disediakan sebagai input ke deep neural network. Lapisan embedding menerjemahkan encoding one-hot ke dalam vektor embedding tiga dimensi [2.98, -0.75, 0].

Dalam pelatihan, bobot lapisan embedding akan dioptimalkan sehingga vektor yang disematkan untuk contoh serupa akan lebih dekat dengan lainnya. Dimensi individu lapisan embedding (apa yang setiap simpul dalam yang diwakili lapisan embedding) jarang dapat dimengerti oleh atau "likuiditas". Terkadang apa yang mereka "maksudkan" dapat disimpulkan, namun tidak selalu tersebut, meskipun mereka tidak membuatnya.

Embeddings biasanya akan spesifik untuk tugas tersebut, dan akan berbeda satu sama lain apabila tugasnya berbeda. Misalnya, embedding yang dihasilkan oleh vegetarian vs. model klasifikasi non-vegetarian mungkin memiliki dua dimensi: isi daging dan kandungan susu. Sementara itu, embedding yang dihasilkan oleh pengklasifikasi makan malam untuk masakan Amerika mungkin memiliki dimensi yang sedikit berbeda: kandungan kalori, kandungan gandum, dan kandungan daging. "Sereal" dan "roti lapis telur dan daging asap" mungkin saling berdekatan dalam ruang embedding pengklasifikasi sarapan vs. makan malam namun berjauhan di ruang embedding pengklasifikasi vegetarian vs. non-vegetarian.

Melatih embedding kata

Di bagian sebelumnya, Anda telah menjelajahi visualisasi hubungan semantik dalam ruang penyematan word2vec.

Word2vec adalah salah satu dari banyak algoritma yang digunakan untuk melatih embeddings kata. Teknik ini mengandalkan hipotesis distribusi untuk memetakan serupa secara semantik kata untuk menutup vektor embedding secara geometris. Atribut distribusi hipotesis menyatakan bahwa kata-kata yang seringkali memiliki kata-kata bersebelahan cenderung mirip secara semantik. Kedua "dog" dan "cat" sering tampak dekat dengan kata "dokter hewan", dan fakta ini mencerminkan kesamaan semantiknya. Seperti yang dikatakan oleh ahli bahasa John Firth pada tahun 1957, “Anda akan mengetahui sebuah kata dari yang disimpannya."

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

Penyematan statis vs. kontekstual

Salah satu keterbatasan {i>embedding<i} kata seperti yang dibahas dalam video di atas adalah bahwa variabel tersebut statis. Setiap kata diwakili oleh satu titik dalam vektor ruang angkasa, meskipun mungkin memiliki berbagai arti yang berbeda, tergantung pada bagaimana bentuk ini digunakan dalam kalimat. Dalam latihan terakhir, Anda menemukan kesulitan untuk memetakan kesamaan semantik untuk kata tersebut oranye, yang dapat menandakan warna atau jenis buah.

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