Bahkan, vektor keluaran tidak dihitung dari input menggunakan operasi matematika apa pun. Sebagai gantinya, setiap integer input digunakan sebagai indeks untuk mengakses tabel yang berisi semua vektor yang memungkinkan. Itulah alasan mengapa Anda perlu menentukan ukuran kosa kata sebagai argumen pertama (sehingga tabel dapat diinisialisasi).
Aplikasi paling umum dari lapisan ini adalah untuk pemrosesan teks. Mari kita lihat contoh sederhana. Set pelatihan kami hanya terdiri dari dua frase:
Semoga bisa melihat Anda segera
Senang bertemu denganmu lagi
Jadi kita dapat menyandikan frasa-frasa ini dengan memberi setiap kata angka integer unik (misalnya dengan urutan penampilan dalam set data pelatihan kami). Maka frasa kami dapat ditulis ulang sebagai:
[0, 1, 2, 3, 4]
[5, 1, 2, 3, 6]
Sekarang bayangkan kita ingin melatih sebuah jaringan yang lapisan pertama adalah lapisan penyematan. Dalam hal ini, kita harus menginisialisasi sebagai berikut:
Embedding(7, 2, input_length=5)
Argumen pertama (7) adalah jumlah kata yang berbeda dalam set pelatihan. Argumen kedua (2) menunjukkan ukuran vektor embedding. The input_length argumet, tentu saja, menentukan ukuran masing-masing urutan input.
Setelah jaringan telah dilatih, kita bisa mendapatkan bobot dari layer embedding, yang dalam hal ini akan berukuran (7, 2) dan dapat dianggap sebagai tabel yang digunakan untuk memetakan bilangan bulat untuk menanamkan vektor:
+------------+------------+
| index | Embedding |
+------------+------------+
| 0 | [1.2, 3.1] |
| 1 | [0.1, 4.2] |
| 2 | [1.0, 3.1] |
| 3 | [0.3, 2.1] |
| 4 | [2.2, 1.4] |
| 5 | [0.7, 1.7] |
| 6 | [4.1, 2.0] |
+------------+------------+
Jadi menurut embeddings ini, frasa pelatihan kedua kami akan direpresentasikan sebagai:
[[0.7, 1.7], [0.1, 4.2], [1.0, 3.1], [0.3, 2.1], [4.1, 2.0]]
Pada awalnya mungkin tampak kontra intuitif, tetapi mesin diferensiasi otomatis yang mendasarinya (misalnya, Tensorflow atau Theano) berhasil mengoptimalkan vektor-vektor yang terkait dengan setiap bilangan bulat input seperti parameter lain dari model Anda. Menarik juga untuk menggunakan embedding yang dipelajari oleh metode / orang lain di domain yang berbeda (lihat https://blog.keras.io/using-pre-trained-word-embeddings-in-a-keras-model.html ) sebagai dilakukan di [1].
[1] López-Sánchez, D., Herrero, JR, Arrieta, AG, & Corchado, pembelajaran metrik JM Hibridisasi dan penalaran berbasis kasus untuk deteksi clickbait yang dapat disesuaikan. Kecerdasan Terapan, 1-16.