Penyematan: Ruang penyematan dan penyematan statis

Embedding adalah representasi vektor data dalam ruang penyematan. Secara umum, model menemukan potensi penyematan dengan memproyeksikan ruang dimensi tinggi vektor data awal ke ruang dimensi yang lebih rendah. Untuk pembahasan data berdimensi tinggi versus data berdimensi rendah, lihat modul Data Kategoris.

Embedding mempermudah machine learning pada vektor fitur besar, seperti vektor jarang yang mewakili item makanan yang dibahas di bagian sebelumnya. Terkadang posisi relatif item dalam ruang penyematan memiliki potensi hubungan semantik, tetapi sering kali proses menemukan ruang berdimensi lebih rendah, dan posisi relatif dalam ruang tersebut, tidak dapat ditafsirkan oleh manusia, dan penyematan yang dihasilkan sulit dipahami.

Namun, demi pemahaman manusia, untuk memberikan gambaran tentang cara vektor penyematan merepresentasikan informasi, pertimbangkan representasi satu dimensi berikut dari hidangan hot dog, pizza, salad, shawarma, dan borscht, pada skala "paling tidak mirip dengan sandwich" hingga "paling mirip dengan sandwich". Satu dimensi adalah ukuran imajiner dari "sandwichness".

Gambar 3. Sepanjang sumbu sandwichness, dari yang paling sedikit hingga paling banyak:
    borscht, salad, pizza, hot dog, shawarma.
Gambar 3. Makanan di sepanjang dimensi "sandwichness" yang dibayangkan.

Di mana pada garis ini apple strudel akan jatuh? Dapat dikatakan, nilai ini dapat ditempatkan antara hot dog dan shawarma. Namun, strudel apel juga tampaknya memiliki dimensi tambahan manis atau makanan penutup yang membuatnya sangat berbeda dengan opsi lainnya. Gambar berikut memvisualisasikan hal ini dengan menambahkan dimensi "dessertness":

Gambar 4. Gambar yang sama seperti sebelumnya, tetapi dengan sumbu vertikal
    dessertness. Apple strudel berada di antara hot dog dan shawarma, tetapi berada di atas
    sumbu horizontal, tetapi lebih tinggi di sumbu kemanisan.
Gambar 4. Makanan diplot berdasarkan "sandwichness" dan "dessertness".

Embedding mewakili setiap item dalam ruang dimensi n dengan n angka floating point (biasanya dalam rentang –1 hingga 1 atau 0 hingga 1). Penyematan dalam Gambar 3 mewakili setiap makanan dalam ruang satu dimensi dengan satu koordinat, sedangkan Gambar 4 mewakili setiap makanan dalam ruang dua dimensi dengan dua koordinat. Pada Gambar 4, "apple strudel" berada di kuadran kanan atas grafik dan dapat diberi titik (0,5, 0,3), sedangkan "hot dog" berada di kuadran kanan bawah grafik dan dapat diberi titik (0,2, –0,5).

Dalam penyematan, jarak antara dua item dapat dihitung secara matematika, dan dapat ditafsirkan sebagai ukuran kesamaan relatif antara dua item tersebut. Dua hal yang berdekatan, seperti shawarma dan hot dog pada Gambar 4, lebih terkait dalam representasi data model daripada dua hal yang lebih jauh dari satu sama lain, seperti apple strudel dan borscht.

Perhatikan juga bahwa dalam ruang 2D pada Gambar 4, apple strudel jauh lebih jauh dari shawarma dan hot dog daripada di ruang 1D, yang cocok dengan intuisi: apple strudel tidak semirip hot dog atau shawarma seperti hot dog dan shawarma satu sama lain.

Sekarang pertimbangkan borscht, yang jauh lebih cair daripada item lainnya. Hal ini menunjukkan dimensi ketiga, kekentalan, atau seberapa cair makanan. Dengan menambahkan dimensi tersebut, item dapat divisualisasi dalam 3D dengan cara ini:

Gambar 5. Gambar yang sama seperti sebelumnya, tetapi dengan sumbu ketiga cairan
    yang ortogonal dengan dua lainnya, dan borscht dipindahkan jauh di sepanjang sumbu tersebut.
Gambar 5. Makanan dipetakan berdasarkan "sandwichness", "dessertness", dan "liquidness".

Di mana dalam ruang 3D ini tangyuan akan ditempatkan? Makanan ini seperti sup, seperti borscht, dan hidangan penutup manis, seperti strudel apel, dan pastinya bukan sandwich. Berikut adalah salah satu kemungkinan penempatan:

Gambar 6. Gambar yang sama seperti sebelumnya, tetapi dengan tangyuan ditempatkan tinggi pada
    makanan penutup dan cairan dan rendah pada sandwich.
Gambar 6. Menambahkan tangyuan ke gambar sebelumnya, dengan nilai tinggi untuk "dessertness" dan "liquidness" serta nilai rendah untuk "sandwichness".

Perhatikan jumlah informasi yang dinyatakan dalam ketiga dimensi ini. Anda dapat membayangkan menambahkan dimensi tambahan, seperti seberapa banyak daging atau makanan yang dipanggang, meskipun ruang 4D, 5D, dan dimensi yang lebih tinggi sulit divisualisasikan.

Ruang penyematan di dunia nyata

Di dunia nyata, ruang penyematan bersifat d-dimensi, dengan d jauh lebih tinggi dari 3, meskipun lebih rendah dari dimensi data, dan hubungan antara titik data tidak selalu seintuitif dalam ilustrasi buatan di atas. (Untuk embedding kata, d sering kali 256, 512, atau 1024.1)

Dalam praktiknya, praktisi ML biasanya menetapkan tugas tertentu dan jumlah dimensi penyematan. Model kemudian mencoba mengatur contoh pelatihan agar dekat dalam ruang penyematan dengan jumlah dimensi yang ditentukan, atau menyesuaikan jumlah dimensi, jika d tidak tetap. Masing-masing dimensi jarang dipahami seperti "dessertness" atau "liquidness". Terkadang, "maksud"nya dapat disimpulkan, tetapi tidak selalu demikian.

Penyematan biasanya akan bersifat khusus untuk tugas, dan berbeda satu sama lain saat tugas berbeda. Misalnya, penyematan yang dihasilkan oleh model klasifikasi vegetarian versus non-vegetarian akan berbeda dengan penyematan yang dihasilkan oleh model yang menyarankan hidangan berdasarkan waktu hari atau musim. "Sereal" dan "sosis sarapan" mungkin akan berdekatan di ruang penyematan model waktu, tetapi sangat berbeda di ruang penyematan model vegetarian versus non-vegetarian, misalnya.

Penyematan statis

Meskipun penyematan berbeda-beda dari satu tugas ke tugas lainnya, satu tugas memiliki beberapa kemampuan penerapan umum: memprediksi konteks kata. Model yang dilatih untuk memprediksi konteks kata mengasumsikan bahwa kata yang muncul dalam konteks serupa terkait secara semantik. Misalnya, data pelatihan yang menyertakan kalimat "Mereka menunggangi keledai ke Grand Canyon" dan "Mereka menunggangi kuda ke dalam ngarai" menunjukkan bahwa "kuda" muncul dalam konteks yang mirip dengan "keledai". Ternyata, embedding berdasarkan kemiripan semantik berfungsi dengan baik untuk banyak tugas bahasa umum.

Meskipun merupakan contoh yang lebih lama, dan sebagian besar digantikan oleh model lain, model word2vec tetap berguna untuk ilustrasi. word2vec dilatih pada korpus dokumen untuk mendapatkan satu penyematan global per kata. Jika setiap kata atau titik data memiliki satu vektor penyematan, hal ini disebut penyematan statis. Video berikut menjelaskan ilustrasi sederhana pelatihan word2vec.

Riset menunjukkan bahwa setelah dilatih, penyematan statis ini akan mengenkode beberapa tingkat informasi semantik, terutama dalam hubungan antar-kata. Artinya, kata-kata yang digunakan dalam konteks serupa akan lebih dekat satu sama lain di ruang penyematan. Vektor penyematan tertentu yang dihasilkan akan bergantung pada korpus yang digunakan untuk pelatihan. Lihat T. Mikolov et al (2013), "Estimasi representasi kata yang efisien dalam ruang vektor", untuk mengetahui detailnya.


  1. François Chollet, Deep Learning with Python (Shelter Island, NY: Manning, 2017), 6.1.2.