Arsitektur Kedua: Word Embedding untuk Klasifikasi Sentimen
Tujuan dari pembelajaran dengan arsitektur kedua ini adalah untuk memahami bagaimana word embedding dapat menciptakan relasi semantik antar kata. Kita akan menggunakan arsitektur RNN nanti untuk memanfaatkan word embedding sepenuhnya.
Dari intuisi hingga matematika, pemahaman konsep word embedding & arsitektur RNN dasar diharapkan dapat memuaskan rasa ingin tahu Anda tentang bagaimana sebuah model benar-benar dapat memahami sebuah kalimat.
Word Embedding: Setiap Kata Memiliki Datanya Masing-Masing
Kita sudah mempelajari intuisi di atas bahwa word embedding itu seperti "scorecard" untuk setiap kata. Memanfaatkan word embedding itu tentang memahami bahwa setiap kata dapat mengandung informasinya masing-masing, entah itu tentang:
- Gender - Apakah kata ini maskulin atau feminin?
- Aturan gramatikal - Apakah ini kata kerja, kata benda, atau kata sifat?
- Makna - Apa arti kata ini dalam berbagai konteks?
- Hubungan - Kata apa saja yang sering muncul bersamaan?
Bayangkan setiap kata memiliki "profil" dengan berbagai karakteristik yang diukur dalam bentuk angka. Kata-kata dengan makna serupa akan memiliki profil yang mirip!
Scatter Chart untuk Relasi Kata dalam GloVe
Salah satu kamus word embedding terpopuler adalah GloVe (Global Vectors for word representation). GloVe pada dasarnya adalah kamus word embedding dalam bahasa Inggris yang mengumpulkan ratusan ribu hingga jutaan kosakata & memetakan setiap kosakata ke matriks word embedding yang dikhususkan untuk masing-masing kosakata.
NLP & Kata-kata: Masalah dalam Menemukan Relasi
Kita akan membahas lebih lanjut tentang bagaimana sebuah kata dapat terikat pada sebuah konteks nanti ketika kita mempelajari bagaimana cara menghasilkan word embedding, tetapi secara garis besar word embedding dihasilkan dengan mempelajari relasi kata.
Untuk sekarang mari kita lihat contoh di atas untuk melihat sebuah kata & kata-kata apa saja yang GloVe pelajari memiliki kaitan dengan kata tersebut.
Contoh: Relasi untuk kata "king"
GloVe word embedding menciptakan relasi dari kata "king" ke kata-kata lain:
- "queen" adalah istilah untuk istri raja
- "empire", "kingdom" adalah istilah tentang wilayah kekuasaan raja
- "death" adalah istilah yang berarti seorang raja bisa meninggal
Tentu saja sulit untuk benar-benar menentukan konteks apa yang GloVe pahami untuk sebuah kata, mengapa GloVe "berpikir" bahwa sebuah kata berhubungan dengan kata lain karena GloVe word embeddings diciptakan oleh neural network - yang berarti bahwa word embedding sebagian besar kekurangan kemampuan untuk menjelaskan dalam pembuatan relasi mereka, kita hanya bisa menebak.
Kesamaan dalam Konteks
Sebelum kita lanjutkan, satu terminologi yang harus Anda tahu adalah ketika kita memeriksa bagaimana sebuah kata berhubungan dengan kata lain, istilah itu sebagian besar disebut "kesamaan" (similarity). Kesamaan berarti seberapa mirip kata yang diberikan dengan konteks untuk kata lain, dalam konteks NLP yang kita berikan, kesamaan sebagian besar berarti:
- Seberapa sering dua kata muncul bersama dalam sebuah kalimat berdekatan satu sama lain
- Bagaimana dua kata bahkan ketika tidak sering muncul bersama, sebagian besar dipasangkan dengan kata-kata serupa. Contohnya: car sering muncul dengan kata drive, & bus juga sering muncul dengan kata drive.
Catatan: Kita menggunakan data dari Wikipedia untuk menghasilkan word embedding. Semakin banyak teks yang dikumpulkan dapat memberikan konteks yang lebih baik & kurangnya sumber ini dapat melemahkan akurasi word embedding dalam memberikan konteks ke setiap kata.
Relasi Banyak Kata
Kita juga dapat mencoba memvisualisasikan relasi kata untuk beberapa kata sekaligus, sehingga kita dapat mengetahui apa yang GloVe word embedding pikirkan tentang bagaimana beberapa kata berhubungan dengan yang lain.
🔍 Visualisasi Interaktif Word Embedding
Eksperimen dengan relasi kata, cosine similarity, dan visualisasi multi-dimensi di Google Colab
Buka di Google ColabKata Positif & Negatif
Anda dapat menambahkan kata-kata positif (kata yang ingin Anda cari kemiripannya) dan kata-kata negatif (kata yang ingin Anda hindari dalam pencarian). Ini memungkinkan pencarian yang lebih spesifik!
Melihat Bagaimana Beberapa Kata Saling Berhubungan
Cara lain untuk memvisualisasikan word embedding adalah dengan memeriksa kekuatan relasi sebuah kata dengan beberapa kata lainnya.
Misalkan Anda ingin tahu apakah seorang queen lebih terkait dengan kata "he" atau "she", Anda dapat memeriksa kekuatannya menggunakan cosine similarity.
Reduksi Dimensi
Apa itu Reduksi Dimensi?
Ingat bahwa pada kenyataannya dimensi word embedding jauh lebih besar daripada 2 dimensi (GloVe word embedding kita di atas memiliki 50, 100, atau bahkan 300 dimensi per kata). Apa yang kita lakukan di visualisasi disebut reduksi dimensi menggunakan t-SNE.
Analogi Sederhana
Kita hidup di dunia 3 dimensi, kita sering "mereduksi dimensi" dari apa yang kita lihat di alam dengan mengambil foto (foto adalah 2 dimensi).
Analogi di atas dapat membantu Anda untuk memahami bahwa:
- Kita dapat menangkap vektor dimensi yang lebih tinggi ke dimensi yang lebih rendah
- Kita akan kehilangan banyak informasi selama proses tersebut. 2 dimensi tidak dapat dengan jelas memberikan konteks yang hilang dari dunia nyata kita seperti kedalaman, kita tidak dapat melihat apa yang ada di belakang objek pada foto kita, dll.
Mengurangi Dimensi = Menghapus Konteks
Ingat intuisi sebelumnya bahwa ketika kita melakukan embedding setiap dimensi disematkan dengan berbagai jenis konteks? Jika kita mengurangi dimensi apa pun seperti scatter plot sebelumnya, kita akan menemukan bahwa banyak konteks akan hilang.
Kutukan Dimensi
Masalah dalam menemukan data yang serupa tidak sesederhana menemukan kunci Anda yang hilang di kamar Anda. Datanglah kutukan dimensi (curse of dimensionality):
Analogi: Bermain Petak Umpet
1 Dimensi - Lorong Lurus:
Bayangkan Anda bermain petak umpet dengan teman Anda di lorong lurus panjang dengan pintu di kedua sisinya. Setiap pintu mengarah ke sebuah ruangan. Meskipun mungkin membutuhkan waktu, Anda hanya memiliki satu arah untuk dituju - Anda dapat berjalan ke satu arah, lalu kembali ke arah lain untuk memeriksa setiap ruangan secara sistematis.
2 Dimensi - Labirin Lantai:
Sekarang, bayangkan jika temanmu bisa bersembunyi di ruangan mana pun di satu lantai bangunan, tetapi lantai itu memiliki labirin dengan banyak arah untuk dituju, bukan lagi lorong lurus tunggal. Sekarang Anda memiliki lebih banyak tempat untuk berpotensi mencari teman Anda karena ruang persembunyian lebih lebar & lebih panjang.
3 Dimensi - Gedung Bertingkat:
Mari kita melangkah lebih jauh. Temanmu bisa berada di ruangan mana pun dari bangunan bertingkat besar dengan banyak ruangan di setiap lantai. Sekarang, teman Anda memiliki lebih banyak tempat persembunyian yang mungkin karena Anda tidak hanya mencari di sepanjang panjang & lebar bangunan, tetapi juga tinggi & rendah ke atas di beberapa lantai.
Inilah alasannya jika Anda mengeklik putar pada visualisasi kita di atas, nilai yang dekat dengan permintaan Anda terus berubah: Kita (ilmuwan data) menemukan beberapa cara untuk mencari kesamaan dengan cepat, tetapi hampir tidak mungkin untuk benar-benar tahu apakah itu benar-benar yang terdekat - kita hanya menebak bahwa itu kemungkinan besar yang paling mirip, tetapi sumber daya komputasi untuk memastikan bahwa itu benar-benar tetangga terdekat itu mahal.
Implikasi untuk ChatGPT
Konsep ini adalah salah satu alasan mengapa ketika kita berbicara dengan ChatGPT kita mungkin memiliki jawaban yang berbeda dari pertanyaan yang sama.
Context-Aware Embedding vs Static Embedding
Hal terakhir yang akan kita pelajari sekarang untuk intuisi tentang word embedding adalah perbedaan antara context-aware embeddings & static embeddings.
Context-Aware Embedding
Context-aware embedding adalah word embedding yang dihasilkan per input kalimat. Contoh:
Perhatikan kata bank dalam dua
kalimat berikut:
🏦 "I need to go to the bank to deposit my paycheck."
🌊 "We sat by the river bank and watched the sunset."
Kata "bank" memiliki banyak arti yang mungkin. Static word embedding seperti GloVe hanya memiliki satu vektor untuk kata "bank", yang merupakan rata-rata dari semua konteks yang pernah dilihat model. Akibatnya, vektor tersebut tidak sepenuhnya mewakili makna di kalimat pertama (bank keuangan) maupun kalimat kedua (tepi sungai).
Sebaliknya, context-aware embedding membaca seluruh kalimat terlebih dahulu, kemudian menghasilkan vektor yang berbeda untuk kata "bank" di setiap kalimat, sehingga model memahami konteks yang tepat dan tidak mencampurkan kedua makna tersebut.
Perbedaan Utama
- Static Embedding (contoh: GloVe): Setiap kata memiliki satu vektor tetap, tidak peduli konteksnya
- Context-Aware Embedding (contoh: BERT): Vektor kata berubah tergantung pada konteks kalimatnya
Contoh untuk static word embedding adalah GloVe, yang sudah kita pelajari. Dan contoh untuk context-aware embedding adalah BERT, yang akan kita selami lebih jauh di bagian yang dikhususkan untuk itu.
Rangkuman: Intuisi Word Embedding
Selamat! Anda telah mempelajari intuisi fundamental tentang word embedding. Mari kita rangkum poin-poin penting:
Poin-Poin Penting
- Word Embedding: Representasi kata sebagai vektor angka multi-dimensi
- GloVe: Salah satu kamus word embedding paling populer
- Relasi Semantik: Kata dengan makna serupa memiliki vektor yang dekat
- Kesamaan: Diukur dengan cosine similarity
- Reduksi Dimensi: t-SNE untuk visualisasi, tapi kehilangan informasi
- Kutukan Dimensi: Mencari kesamaan lebih sulit di dimensi tinggi
- Static vs Context-Aware: GloVe tetap, BERT berubah per konteks