Kursus Matematika untuk AI · Pelajaran 14 dari 180
Vektor sebagai Data AI: Bagaimana Fitur Mengubah Dokumen Menjadi Angka
Pelajari cara membaca vektor baris dan kolom, membuat vektor fitur dokumen secara manual dan dengan NumPy, serta menemukan kesalahan bentuk atau urutan fitur.
“Model AI menggunakan data. Model AI menggunakan vektor.” (terjemahan) Pembaca melihat sebuah kalimat. Model numerik memerlukan sekumpulan posisi tetap yang berisi angka. Salah satu pengodean sederhana menghitung kata-kata terpilih dan menghasilkan
Keempat angka itu tidak menjelaskan dirinya sendiri. Angka-angka tersebut baru berguna setelah aturan pengodean menyatakan bahwa posisi 1 menghitung ai, posisi 2 menghitung model, posisi 3 menghitung data, dan posisi 4 menghitung vector. Angka yang tersusun berurutan, bersama makna koordinatnya, membentuk vektor fitur.
Di akhir pelajaran ini, Anda akan dapat membaca vektor baris dan kolom, menafsirkan koordinatnya sebagai fitur, mengodekan dokumen kecil secara manual dan dengan NumPy, serta mendiagnosis kode yang nilainya benar tetapi urutan fitur atau bentuk array-nya salah.
Hasil belajar: Membaca vektor baris dan kolom serta menafsirkan koordinat sebagai fitur.
Pelajaran ini kembali ke Pelajaran 5: Indeks Tensor untuk AI. Di sana, indeks menjawab “posisi yang mana?” Di sini, posisi-posisi tersebut bergerak bersama sebagai satu representasi. Situs pendamping resmi Mathematics for Machine Learning mengembangkan notasi vektor baris dan kolom dalam Bagian 2.2. Dokumen, aturan pengodean, perhitungan, kode, diagram, dan penilaian di bawah ini adalah karya orisinal.
Vektor memerlukan nilai dan makna koordinat
Superskrip berarti transpose, yang mengubah tampilan baris menjadi kolom atau tampilan kolom menjadi baris. Simbol tebal menamai seluruh vektor; simbol biasa menamai satu koordinat. Jadi,
memuat empat nilai koordinat yang sama, tetapi orientasinya berbeda.
Untuk data AI, koordinat biasanya mewakili fitur yang disepakati, bukan slot anonim. Fitur adalah sifat terukur yang diberikan kepada model. Fitur dapat berupa hitungan kata, intensitas piksel, pembacaan suhu, atau sinyal yang dipelajari. Jika menamai fitur , sebuah encoder dapat memetakan item menjadi
Persamaan ini memisahkan dua pekerjaan. Encoder menentukan cara mengukur tiap fitur. Vektor mempertahankan hasil pengukuran dalam urutan tetap. Setiap dokumen harus memakai fitur yang sama pada koordinat yang sama agar model berikutnya dapat membandingkan atau menggabungkan nilai tersebut secara konsisten.
Membangun vektor dokumen koordinat demi koordinat
Kodekan dokumen ini:
AI models use data. AI models use vectors.
Gunakan kosakata berurutan berikut:
Untuk contoh yang sengaja kecil ini, aturan normalisasi mengubah teks menjadi huruf kecil, menghapus tanda baca, mengubah models menjadi model, dan mengubah vectors menjadi vector. Aturan ini mengabaikan use karena kata tersebut tidak memiliki koordinat dalam kosakata tetap. Sistem teks nyata memerlukan tokenizer dan kosakata yang terdokumentasi; aturan mainan ini ditampilkan agar setiap hitungan dapat diaudit.
Token yang telah dinormalisasi adalah
ai, model, use, data, ai, model, use, vector
Sekarang hitung satu koordinat pada satu waktu:
Maka,
| Koordinat | Fitur | Hitungan | Makna |
|---|---|---|---|
| 1 | ai | 2 | Token ai yang telah dinormalisasi muncul dua kali. |
| 2 | model | 2 | Dua kemunculan models menjadi model. |
| 3 | data | 1 | Token data yang telah dinormalisasi muncul sekali. |
| 4 | vector | 1 | Token vectors menjadi vector. |
Diagram tersebut membuat kontrak representasi terlihat: setiap hitungan mengikuti label fiturnya menuju koordinat. Kolom itu memiliki tinggi empat entri, sehingga bentuknya . Kolom tersebut tetap mewakili satu dokumen, bukan empat dokumen.
Mengapa koordinat tetap memungkinkan pembelajaran numerik
Model tidak dapat memberi perilaku yang sama pada koordinat 3 jika koordinat itu berarti data untuk satu dokumen dan vector untuk dokumen lain. Karena itu, peta fitur menetapkan dua hal di seluruh contoh:
- jumlah koordinat; dan
- fitur yang ditetapkan pada setiap koordinat.
Untuk dua dokumen mana pun dan , nilai pada posisi harus merupakan jenis pengukuran yang sama, :
Inilah mekanisme di balik perangkat lunak vektorisasi teks yang umum. Dokumentasi resmi scikit-learn CountVectorizer menjelaskan kosakata sebagai pemetaan dari istilah ke indeks fitur. Metode transform-nya menggunakan kosakata tersebut untuk membuat array hitungan dokumen-istilah dengan bentuk (n_samples, n_features): satu baris per dokumen dan satu kolom per fitur kosakata.
Vektor hitungan berguna justru karena sifatnya selektif. Vektor ini mempertahankan seberapa sering fitur yang dipilih muncul. Vektor ini membuang urutan kata asli, batas kalimat, dan setiap token yang tidak ada dalam kosakata. Dua dokumen berikut
ai model data
data model ai
keduanya dipetakan ke dengan pengodean ini. Vektor yang sama berarti hitungan yang dipertahankan sama, bukan prosa atau makna yang sama.
Baris dan kolom adalah bentuk, bukan arah membaca
Vektor abstrak berada di . Matematika biasanya menampilkan koordinatnya sebagai matriks kolom berukuran :
Mentranspose tampilan kolom itu menghasilkan vektor baris:
Bentuk pertama memiliki empat baris dan satu kolom; bentuk kedua memiliki satu baris dan empat kolom. Tidak ada orientasi yang mengubah penetapan koordinat-ke-fitur. Entri pertama tetap milik ai, entri kedua milik model, dan seterusnya.
| Representasi | Bentuk tertulis | Bentuk | Orientasi |
|---|---|---|---|
| Vektor kolom | empat baris, satu kolom | ||
| Vektor baris | satu baris, empat kolom | ||
| Array NumPy 1-D | np.array([2, 2, 1, 1]) | (4,) | belum memiliki sumbu baris/kolom |
Baris terakhir merupakan batas implementasi yang penting. Array NumPy satu dimensi memiliki satu sumbu dengan panjang 4. Array itu bukan array baris atau kolom dua dimensi. Dokumentasi resmi NumPy tentang ndarray mendefinisikan shape sebagai tuple yang memuat ukuran setiap dimensi array, sedangkan ndim menghitung sumbu. Untuk shape == (4,), hanya ada satu sumbu.
NumPy membuat orientasi eksplisit dengan menambahkan sumbu
Contoh yang dapat dieksekusi berikut mencerminkan perhitungan manual:
from collections import Counter
import numpy as np
document = "AI models use data. AI models use vectors."
vocabulary = ("ai", "model", "data", "vector")
raw_tokens = document.lower().replace(".", "").split()
normalization = {"models": "model", "vectors": "vector"}
tokens = [normalization.get(token, token) for token in raw_tokens]
counts = Counter(tokens)
x = np.array([counts[feature] for feature in vocabulary], dtype=np.int64)
column = x.reshape(-1, 1)
row = x.reshape(1, -1)
print("features:", vocabulary)
print("values:", x.tolist())
print("1-D shape:", x.shape)
print("column shape:", column.shape)
print("row shape:", row.shape)
print("x.T shape:", x.T.shape)
Output yang telah diverifikasi adalah:
features: ('ai', 'model', 'data', 'vector')
values: [2, 2, 1, 1]
1-D shape: (4,)
column shape: (4, 1)
row shape: (1, 4)
x.T shape: (4,)
Dokumentasi resmi numpy.reshape menyatakan bahwa reshape yang kompatibel menghasilkan array dengan bentuk baru tanpa mengubah datanya. Di sini, reshape(-1, 1) meminta NumPy menyimpulkan jumlah baris dan membuat satu kolom; reshape(1, -1) meminta satu baris dan menyimpulkan jumlah kolom.
Output terakhir memperlihatkan bug yang umum. Dokumentasi resmi numpy.transpose menetapkan bahwa mentranspose array 1-D menghasilkan view yang tidak berubah. Tidak ada sumbu kedua untuk ditukar. Gunakan x[:, np.newaxis] atau x.reshape(-1, 1) untuk membuat bentuk (4, 1), dan gunakan x[np.newaxis, :] atau x.reshape(1, -1) untuk membuat bentuk (1, 4).
Tiga array yang tampak benar dapat menggambarkan data yang berbeda
Bentuk hanyalah separuh kontrak. Urutan fitur menyediakan separuh lainnya. Misalkan satu pipeline menyatakan
dan menyimpan . Pipeline lain menyatakan
tetapi mengirimkan urutan angka yang sama tanpa mengurutkannya ulang. Dalam , koordinat pertama menyatakan dua kemunculan data, padahal itu salah untuk dokumen tersebut. Array memiliki panjang dan dtype yang diharapkan, sehingga validasi bentuk saja tidak akan menangkap kesalahan semantik.
Perubahan yang benar dari ke harus memindahkan setiap nilai bersama labelnya:
Jadi vektor dalam urutan adalah .
Dua kasus batas lain memperjelas definisi ini:
- Jika dokumen tidak memuat satu pun istilah kosakata, dokumen tersebut dipetakan ke vektor nol . Dimensinya tetap 4; nol adalah nilai koordinat, bukan koordinat yang hilang.
- Ketika , vektor baris dan vektor kolom sama-sama memiliki bentuk setelah transpose. Kasus satu koordinat menyembunyikan perbedaan orientasi yang terlihat, sehingga merupakan contoh debugging bentuk yang buruk.
Representasi baru siap ketika nilai, label fitur, dan bentuk yang diharapkan cocok. Pelajaran 15 akan menjumlahkan vektor komponen demi komponen. Operasi itu masuk akal karena koordinat pada kedua masukan mengacu pada jenis sinyal yang sama—invarian yang ditetapkan di sini.
Uji pemahaman Anda
Pertanyaan 1
Misalkan x = [4, 0, −2]ᵀ, dengan fitur berurutan (clicks, purchases, returns). Nyatakan dimensi vektor dan tafsirkan setiap koordinat.
Tampilkan solusi langkah demi langkah
Ada tiga koordinat berurutan, jadi dan dimensi vektor adalah 3.
Cocokkan posisi dengan label fitur secara berurutan:
- berarti empat clicks;
- berarti nol purchases; dan
- berarti fitur returns bernilai menurut pengodean yang dinyatakan.
Nilai ketiga yang negatif mungkin memerlukan konteks domain—mungkin merupakan fitur yang dipusatkan atau perubahan bersih, bukan hitungan mentah—tetapi tidak mengubah dimensi atau urutan koordinat vektor.
Pertanyaan 2
Dengan kosakata berurutan (ai, model, data, vector), kodekan “Data guides a model; data helps AI.” Hitung hanya empat istilah kosakata setelah diubah menjadi huruf kecil dan tanda baca dihapus.
Tampilkan solusi langkah demi langkah
Setelah diubah menjadi huruf kecil dan tanda baca dihapus, token relevan yang telah dinormalisasi adalah
data, model, data, aiHitung dalam urutan kosakata, bukan urutan dokumen:
Jadi vektor dokumen adalah . Istilah kosakata yang tidak ada menyumbang nilai nol; koordinatnya tetap ada.
Pertanyaan 3
Sebuah vektor [3, 1, 0]ᵀ menggunakan urutan fitur (cat, dog, bird). Layanan kedua mengharapkan (bird, cat, dog). Nilai apa yang harus dikirim, dan mengapa mengirim [3, 1, 0]ᵀ tanpa perubahan itu salah?
Tampilkan solusi langkah demi langkah
Pertama, pasangkan setiap nilai asli dengan labelnya:
Sekarang baca nilai itu dalam urutan layanan kedua:
Mengirim tanpa perubahan akan menyatakan bird: 3, cat: 1, dan dog: 0. Bentuknya akan lolos, tetapi setiap koordinat membawa makna fitur yang salah.
Pertanyaan 4
Klasifikasikan bentuk (5,), (1, 5), dan (5, 1) sebagai array NumPy 1-D, array baris, atau array kolom. Lalu nyatakan mana yang berdimensi dua.
Tampilkan solusi langkah demi langkah
Hitung entri dalam setiap tuple bentuk:
(5,)berisi satu sumbu sepanjang 5, jadi merupakan array NumPy 1-D tanpa orientasi baris atau kolom eksplisit.(1, 5)berisi dua sumbu: satu baris dan lima kolom. Ini adalah array baris.(5, 1)berisi dua sumbu: lima baris dan satu kolom. Ini adalah array kolom.
Dua yang terakhir berdimensi dua karena tuple bentuknya berisi dua ukuran sumbu. Ketiganya menyimpan lima nilai skalar, sehingga jumlah nilai tersimpan saja tidak menentukan orientasi.
Pertanyaan 5
Mengapa x.T gagal mengubah x = np.array([2, 2, 1, 1]) menjadi array kolom? Berikan satu ekspresi yang benar-benar membuat bentuk (4, 1).
Tampilkan solusi langkah demi langkah
Array x memiliki bentuk (4,), yang berarti hanya memiliki satu sumbu. Transpose dapat mengatur ulang sumbu yang sudah ada, tetapi tidak ada sumbu kedua untuk ditukar dengan sumbu pertama. Karena itu, x.T.shape tetap (4,).
Tambahkan sumbu secara eksplisit:
column = x[:, np.newaxis]
print(column.shape) # (4, 1)Irisan tersebut memilih keempat nilai pada sumbu yang ada, sedangkan np.newaxis membuat sumbu kedua dengan panjang 1. x.reshape(-1, 1) merupakan konstruksi bentuk yang ekuivalen untuk contoh ini.
Pertanyaan 6
Dua kalimat dipetakan ke vektor hitungan yang sama [1, 1, 1, 0]ᵀ dengan kosakata (ai, model, data, vector). Apa yang dapat Anda simpulkan, dan apa yang tidak dapat disimpulkan?
Tampilkan solusi langkah demi langkah
Kesamaan koordinat memungkinkan kita menyimpulkan bahwa encoder mempertahankan empat hitungan yang sama untuk kedua kalimat:
Kita tidak dapat menyimpulkan bahwa kalimat asli memakai urutan kata, tata bahasa, kata tambahan, atau makna yang sama. Representasi hitungan membuang sifat-sifat tersebut. Kesamaan vektor terkodekan berarti kesamaan fitur yang dipertahankan, bukan bukti bahwa dokumen sumber identik.
Pertanyaan 7
Sebuah dokumen tidak memuat satu pun dari empat istilah kosakata dan dipetakan ke [0, 0, 0, 0]ᵀ. Apakah vektor kehilangan dimensinya? Jelaskan hasilnya dan satu keterbatasannya.
Tampilkan solusi langkah demi langkah
Tidak. Vektor tersebut tetap memiliki empat koordinat berurutan, sehingga tetap merupakan elemen . Setiap koordinat ada dan bernilai nol:
Hasil itu hanya mengatakan bahwa tidak satu pun fitur kosakata yang dipilih muncul menurut aturan encoder. Hasil itu tidak mengatakan bahwa dokumen kosong atau tidak bermakna. Dokumen mungkin berisi banyak kata di luar kosakata, yang sengaja diabaikan oleh representasi ini.