Embeddings: Data Input Kategoris

Data kategoris mengacu pada fitur input yang mewakili satu atau beberapa item yang berlainan dari kumpulan pilihan yang terbatas. Misalnya, data dalam kategori ini dapat berupa serangkaian film yang telah ditonton pengguna, kumpulan kata dalam dokumen, atau pekerjaan seseorang.

Data kategoris direpresentasikan paling efisien melalui tensor renggang, yang merupakan tensor dengan sedikit elemen selain nol. Misalnya, jika sedang membuat model rekomendasi film, kita dapat menetapkan ID unik ke setiap kemungkinan film, lalu merepresentasikan setiap pengguna dengan tensor renggang dari film yang telah mereka tonton, seperti yang ditunjukkan pada Gambar 3.

Input sampel untuk masalah rekomendasi film kami.

Gambar 3. Data untuk masalah rekomendasi film kita.

Setiap baris matriks pada Gambar 3 adalah contoh yang merekam histori penayangan film pengguna, dan direpresentasikan sebagai tensor renggang karena setiap pengguna hanya menonton sebagian kecil dari semua kemungkinan film. Baris terakhir sesuai dengan tensor renggang [1, 3, 999999], menggunakan indeks kosakata yang ditampilkan di atas ikon film.

Demikian pula, seseorang dapat mewakili kata, kalimat, dan dokumen sebagai vektor renggang dengan setiap kata dalam kosakata memainkan peran yang mirip dengan film dalam contoh rekomendasi kami.

Untuk menggunakan representasi seperti itu dalam sistem machine learning, kita memerlukan cara untuk merepresentasikan setiap vektor renggang dengan vektor angka, sehingga item yang mirip secara semantik (film atau kata) memiliki jarak yang sama dalam ruang vektor. Namun, bagaimana cara merepresentasikan kata sebagai vektor angka?

Cara termudah adalah menentukan lapisan input yang besar dengan node untuk setiap kata dalam kosakata Anda, atau setidaknya node untuk setiap kata yang muncul di data. Jika 500.000 kata unik muncul dalam data, Anda dapat merepresentasikan kata dengan vektor sepanjang 500.000 dan menetapkan setiap kata ke slot dalam vektor.

Jika Anda menetapkan "kuda" ke indeks 1247, maka untuk memberi makan "kuda" ke jaringan Anda Anda dapat menyalin 1 ke node masukan ke-1247 dan 0 ke yang lainnya. Representasi semacam ini disebut enkode sekali klik, karena hanya satu indeks yang memiliki nilai bukan nol.

Biasanya, vektor Anda mungkin berisi jumlah kata dalam potongan teks yang lebih besar. Hal ini dikenal sebagai "kantong kata" representasi. Dalam vektor tas kata-kata, beberapa dari 500.000 node akan memiliki nilai bukan nol.

Namun, bagaimana pun Anda menentukan nilai selain nol, satu node per kata akan memberikan Anda vektor input yang sangat renggang—vektor yang sangat besar dengan nilai selain nol yang relatif sedikit. Representasi renggang memiliki beberapa masalah yang dapat mempersulit model untuk belajar secara efektif.

Ukuran Jaringan

Vektor input yang besar berarti jumlah bobot yang sangat besar untuk jaringan neural. Jika ada M kata dalam kosakata Anda dan N node di lapisan pertama jaringan di atas input, Anda memiliki bobot MxN untuk dilatih untuk lapisan tersebut. Sejumlah besar bobot menyebabkan masalah lebih lanjut:

  • Jumlah data. Semakin banyak bobot dalam model Anda, semakin banyak data yang perlu Anda latih secara efektif.

  • Jumlah komputasi. Semakin banyak bobot, semakin banyak komputasi yang diperlukan untuk melatih dan menggunakan model. Sangat mudah untuk melampaui kemampuan hardware Anda.

Kurangnya Hubungan yang Bermakna Antarvektor

Jika memasukkan nilai piksel saluran RGB ke dalam pengklasifikasi gambar, Anda dapat membahas nilai "tutup&quot. Biru kemerahan mendekati biru murni, baik secara semantik dan dalam hal jarak geometris antara vektor. Tetapi vektor dengan 1 pada indeks 1247 untuk "kuda" tidak lebih dekat dengan vektor dengan 1 pada indeks 50.430 untuk "antelope" daripada vektor dengan 1 pada indeks 238 untuk "televisi".

Solusinya: Embeddings

Solusi dari masalah ini adalah dengan menggunakan embeddings, yang menerjemahkan vektor renggang ke dalam ruang dimensi lebih rendah yang mempertahankan hubungan semantik. Kita akan mempelajari penyematan secara intuitif, konseptual, dan terprogram di bagian berikut pada modul ini.