### 12.5 Representing Context: Word Embedding

Subbab ini menceritakan salah satu aplikasi _autoencoder_. Pada domain NLP,
kita ingin komputer mampu mengerti bahasa selayaknya manusia mengerti
bahasa. Misalkan komputer mampu mengetahui bahwa “meja” dan “kursi”
memiliki hubungan yang erat. Hubungan seperti ini tidak dapat terlihat
berdasarkan teks tertulis, tetapi kita dapat menyusun kamus hubungan kata
seperti WordNet.^9 WordNet memuat ontologi kata seperti hipernim, antonim,
sinonim. Akan tetapi, hal seperti ini tentu sangat melelahkan, seumpama ada
kata baru, kita harus memikirkan bagaimana hubungan kata tersebut terhadap
seluruh kamus yang sudah dibuat. Pembuatan kamus ini memerlukan
kemampuan para ahli linguistik.
Oleh sebab itu, kita harus mencari cara lain untuk menemukan hubungan
kata ini. Ide utama untuk menemukan hubungan antarkata adalah _statistical_
semantics hypothesisyang menyebutkan pola penggunaan kata dapat
digunakan untuk menemukan arti kata [74]. Contoh sederhana, kata yang
muncul pada “konteks” yang sama cenderung memiliki makna yang sama.
Perhatikan “konteks” dalam artian NLP adalah kata-kata sekitar (surrounding
_word_ s);^10 contohnya kalimat “ _budi menendang bola_ ”, “konteks” dari “bola”
adalah “budi menendang”. Kata “cabai” dan “permen” pada kedua kalimat
“budi suka cabai” dan “budi suka permen” memiliki kaitan makna, dalam
artian keduanya muncul pada konteks yang sama. Sebagai manusia, kita tahu
ada keterkaitan antara “cabai” dan “permen” karena keduanya bisa dimakan.
Berdasarkan hipotesis tersebut, kita dapat mentransformasi kata menjadi
sebuah bentuk matematis dimana kata direpresentasikan oleh pola penggunaannya
[64]. Arti kata _embedding_ adalah transformasi kata (beserta konteksnya)
menjadi bentuk matematis ( _vektor_ ), i.e., mirip/sama dengan _coding_.
“Kedekatan hubungan makna” ( _semantic relationship_ ) antarkata kita
harapkan dapat tercermin pada operasi vektor. Salah satu metode sederhana
untuk merepresentasikan kata sebagai vektor adalahVector Space
Model. Konsep _embedding_ dan _autoencoder_ sangatlah dekat, tapi kami ingin
menakankan bahwa _embedding_ adalah bentuk representasi konteks.

(^9) https:// _word_ net.princeton.edu/
(^10) Selain _surrounding words_, konteks dalam artian NLP dapat juga berupa kalimat,
paragraph, atau dokumen.


172 12 Auto _encoder_

```
Dokumen 1 Dokumen 2 Dokumen 3 Dokumen 4···
King 1 0 0 0 ···
Queen 0 1 0 1 ···
Prince 1 0 1 0 ···
Princess 0 1 0 1 ···
···
```
```
Tabel 12.1: Contoh 1-of-V en _coding_.
```
_Semantic relationship_  dapat diartikan sebagai attributional atau
_relational similarity_. _Attributional similarity_ berarti dua kata memiliki
atribut/sifat yang sama, misalnya anjing dan serigala sama-sama berkaki empat,
menggongong, serta mirip secara fisiologis. _Relational similarity_ berarti
derajat korespondensi, misalnyaanjing:menggongongmemiliki hubungan
yang erat dengankucing:mengeong.

12.5.1 Vector Space Model

_Vector space model_  (VSM)^11 adalah bentuk _embedding_ yang relatif sudah
cukup lama tapi masih digunakan sampai saat ini. Pada pe _model_ an ini, kita
membuat sebuah matriks dimana baris melambangkan kata, kolom melambangkan
dokumen. Metode VSM ini selain mampu menangkap hubungan antarkata
juga mampu menangkap hubungan antardokumen ( _to some degree_ ).
Asal muasalnya adalah _statistical semantics hypothesis_. Tiap sel pada matriks
berisi nilai 1 atau 0. 1 apabilakataimuncul didokumenidan 0 apabila tidak.
Model ini disebut _1-of-V/1-hot encoding_ dimanaV adalah ukuran kosa
kata. Ilustrasi dapat dilihat pada Tabel 12.1.
Akan tetapi, _1-of-V encoding_ tidak menyediakan banyak informasi untuk
kita. Dibanding sangat ekstrim saat mengisi sel dengan nilai 1 atau 0 saja, kita
dapat mengisi sel dengan frekuensi kemunculan kata pada dokumen, disebut
_term frequency_ (TF). Apabila suatu kata muncul pada banyak dokumen,
kata tersebut relatif tidak terlalu ”penting” karena muncul dalam berbagai
konteks dan tidak mampu membedakan hubungan dokumen satu dan dokumen
lainnya ( _inverse document frequency_ /IDF). Formula IDF diberikan
pada persamaan 12.10. Tingkat kepentingan kata berbanding terbalik dengan
jumlah dokumen dimana kata tersebut dimuat.Nadalah banyaknya dokumen,|dD;td|adalah
banyaknya dokumen dimana katatmuncul.

```
IDF(t,D) = log
```
#### (

#### N

```
|dD;td|
```
#### )

#### (12.10)

Dengan menggunakan perhitungan TF-IDF yaituTF×IDFuntuk mengisi
sel pada matriks Tabel 12.1, kita memiliki lebih banyak informasi. TF-IDF

(^11) Mohon bedakan dengan VSM ( _vector space model_ ) dan SVM ( _support vector_
machine)


```
12.5 Representing Context: Word Embedding 173
```
sampai sekarang menjadi _baseline_ pada _information retrieval_. Misalkan
kita ingin menghitung kedekatan hubungan antar dua dokumen, kita hitung
_cosine distance_ antara kedua dokumen tersebut ( _vektor_ suatu dokumen
disusun oleh kolom pada matriks). Apabila kita ingin menghitung kedekatan
hubungan antar dua kata, kita hitung _cosine distance_ antara kedua kata tersebut
dimana vektor suatu kata merupakan baris pada matriks. Tetapi seperti
intuisi yang mungkin kamu miliki, mengisi _entry_ dengan nilai TF-IDF pun
akan menghasilkan _sparse matrix_.

```
_Statistical semantics hypothesis_  diturunkan lagi menjadi empat macam
hipotesis [74]:
1. _Bag of words_
2. _Distributional hypothesis_
3. _Extended distributional hypothesis_
4. _Latent relation hypothesis_
Silakan pembaca mencari sumber tersendiri untuk mengerti keempat hipotesis
tersebut atau membaca _paper_ Turney dan Pantel [74].
```
12.5.2 Sequential, Time Series dan Compositionality

Bahasa manusia memiliki dua macam karakteristik yaitu adalah data berbentuk _sequential_
_data_ dan memenuhi sifat _compositionality_. _Sequential data_
adalah sifat data dimana suatu kemunculan _data_ idipengaruhi oleh data sebelumnya
( _data_ i− 1 , _data_ i− 2 ,...). Perhatikan kedua kalimat berikut:

1. Budi melempar bola.
2. Budi melempar gedung bertingkat.

Pada kedua kalimat tersebut, kalimat pertama lebih masuk akal karena
bagaimana mungkin seseorang bisa melempar gedung bertingkat. Keputusan
kita dalam memilih kata berikutnya dipengaruhi oleh kata-kata sebelumnya,
dalam hal ini “Budi melempar” setelah itu yang lebih masuk akal adalah
“bola”. Contoh lain adalah data yang memiliki sifat _time series_ yaitu gelombang
laut, angin, dan cuaca. Kita ingin memprediksi data dengan rekaman
masa lalu, tapi kita tidak mengetahui masa depan. Kita mampu memprediksi
cuaca berdasarkan rekaman parameter cuaca pada hari-hari sebelumnya.
Ada yang berpendapat beda _time series_ dan _sequential_ (sekuensial) adalah
diketahuinya sekuens kedepan secara penuh atau tidak. Penulis tidak dapat
menyebutkan _time series_ dan sekuensial sama atau beda, silahkan pembaca
menginterpretasikan secara bijaksana.
Data yang memenuhi sifat _compositionality_ berarti memiliki struktur
hirarkis. Struktur hirarkis ini menggambarkan bagaimana unit-unit lebih kecil
berinteraksi sebagai satu kesatuan. Artinya, interpretasi/pemaknaan unit
yang lebih besar dipengaruhi oleh interpretasi/pemaknaan unit lebih kecil


174 12 Auto _encoder_

(subunit). Sebagai contoh, kalimat “saya tidak suka makan cabai hijau”. Unit
”cabai” dan ”hijau” membentuk suatu frasa ”cabai hijau”. Mereka tidak bisa
dihilangkan sebagai satu kesatuan makna. Kemudian interaksi ini naik lagi
menjadi kegiatan “makan cabai hijau” dengan keterangan “tidak suka”, bahwa
ada seseorang yang “tidak suka makan cabai hijau” yaitu “saya”. Pemecahan
kalimat menjadi struktur hirarkis berdasarkan _syntactical role_ disebutconstituent
parsing, contoh lebih jelas pada Gambar 12.6.Nadalah _noun_,D
adalah _determiner_,NPadalah _noun phrase_,VPadalah _verb phrase_, danS
adalah _sentence_. Selain bahasa manusia, gambar juga memiliki struktur hirarkis.
Sebagai contoh, gambar rumah tersusun atas tembok, atap, jendela,
dan pintu. Tembok, pintu, dan jendela membentuk bagian bawah rumah; lalu
digabung dengan atap sehingga membentuk satu kesatuan rumah.

```
Gambar 12.6: Contoh constituent tree.^12
```
12.5.3 Distributed Word Representation

Seperti yang disebutkan pada bagian sebelumnya, kita ingin hubungan kata
(yang di _infer_ ensi dari konteksnya) dapat direpresentasikan sebagai operasi
_vektor_  seperti pada ilustrasi Gambar 12.7. Kata “raja” memiliki sifat-sifat
yang dilambangkan oleh suatu vektor (misal 90% aspek loyalitas, 80% kebijaksanaan,
90% aspek kebangsaan, dst), begitu pula dengan kata “pria”,
“wanita”, dan “ratu”. Jika sifat-sifat yang dimiliki “raja” dihilangkan bagian
sifat-sifat “pria”-nya, kemudian ditambahkan sifat-sifat “wanita” maka idealnya
operasi ini menghasilkan vektor yang dekat kaitannya dengan “ratu”. Dengan
kata lain, raja yang tidak maskulin tetapi fenimin disebut ratu. Seperti
yang disebutkan sebelumnya, ini adalah tujuan utama _embedding_ yaitu merepresentasikan
“makna” kata sebagai vektor sehingga kita dapat memanipulasi
banyak hal berdasarkan operasi vektor. Hal ini mirip (tetapi tidak sama)

(^12) source: Pinterest


```
12.5 Representing Context: Word Embedding 175
```
dengan prinsip _singular value decomposition_ dan _autoencoder_ yang telah dijelaskan
sebelumnya.

```
Gambar 12.7: Contoh operasi vektor kata.
```
Selain _vector space model_, apakah ada cara lain yang mampu merepresentasikan
kata dengan lebih baik? Salah satu kekurangan VSM adalah
tidak memadukan sifat sekuensial pada konstruksi vektornya. Cara lebih baik
d _item_ ukan oleh [48, 49] dengan ekstensi pada [70]. Idenya adalah menggunakan
teknik _representation learning_ dan prinsip _statistical semantics hypothesis_.
Metode ini lebih dikenal dengan sebutan _word_ 2 vec. Tujuan _word_ 2 vec
masih sama, yaitu merepresentasikan kata sebagai vektor, sehingga kita dapat
melakukan operasi matematis terhadap kata. _Encoder_ -nya berbentukContinous
bag of words(CBOW)atauSkip-gram. Pada CBOW, kita memprediksi
kata diberikan suatu “konteks”. Pada arsitektur ”Skip-gram” kita
memprediksi konteks, diberikan suatu kata. Ilustrasi dapat dilihat pada Gambar
12.8. Bagian _projection layer_ pada Gambar 12.8 adalah _coding_ layer. Kami
akan memberikan contoh CBOW secara lebih detil. Kedua arsitektur ini dapat
dilatih menggunakan _one-hot encoding_, i.e.,wimerepresentasikanone-hot
_encoding_ untuk kata ke-i.
Perhatikan Gambar 12.9. Diberikan sebuah konteks “si kucing duduk ...
tiker”. Kita harus menebak apa kata pada “...” tersebut. Dengan menggunakan
teknik _autoencoder_, _output layer_ adalah distribusi probabili _task_ atai
pada konteks tersebut. Kata yang menjadi jawaban adalah kata dengan probabilitas
terbesar, misalkan pada kasus ini adalah “beralaskan”. Dengan arsitektur
ini, prinsip sekuensial atau _time series_ dan _statistical semantics hypothesis_
terpenuhi ( _to a certain extent_ ). Teknik ini adalah salah satu contoh penggunaan _neural_
_network_ untuk _unsupervised learning_. Kita tidak perlu mengkorespondensikan
kata dan _output_ yang sesuai karena _input vektor_ didapat dari
statistik penggunaan kata. Agar lebih tahu kegunaan vektor kata, kamu dapat
mencoba kode dengan bahasa pemrograman Python 2.7 yang disediakan
penulis.^13 Buku ini telah menjelaskan ide konseptual _word embedding_ pada

(^13) https://github.com/wiragotama/GloVe_Playground


176 12 Auto _encoder_

```
𝑤!"#
```
```
𝑤!$%
```
```
𝑤!"%
```
```
𝑤!$#
```
```
𝑤!
```
```
Weighted
Sum
```
```
INPUT OUTPUT
```
```
𝑤!
```
```
𝑤!"#
```
```
𝑤!$%
```
```
𝑤!"%
```
```
𝑤!$#
```
```
Projection
(Representation)
```
```
INPUT OUTPUT
```
