### 13.8 Multi- _task_ Learning

Subbab ini akan menjelaskan _framework_ melatih model pembelajaran mesin
menggunakan _multi-task learning_ (MTL). Walaupun konsep MTL tidak terbatas
pada _neural network_, bab ini membahas konsep tersebut menggunakan
arsitektur _neural network_ sebagai contoh (karena itu dimasukkan ke dalam
bab ini). Kami hanya memberikan penjelasan paling inti MTL menggunakan
contoh yang sederhana.
Pada MTL, kita melatih model untuk mengerjakan beberapa hal yang
mirip atau berkaitan, secara bersamaan. Misalnya, melatih model POS _tagging_
dan _named-entity recognition_ [95], mesin penerjemah untuk beberapa pasangan
bahasa [96], klasifikasi teks [97] dan _discourse parsing_ [98]. Karena model
dilatih untuk beberapa permasalahan yang mirip (sejenis), kita berharap agar
_model_  mampu mendapatkan “intuisi” dasar yang dapat digunakan untuk
menyelesaikan semua permasalahan. Perbedaan TL (dalam konteks pembahasan
sebelumnya) dan MTL terletak pada _timing_ pelatihan. Apabila pada
TL, model untuk _task_ T 1 danT 2 dilatih pada waktu yang berbeda, sedangkan
untuk MTL, dilatih bersamaan.
Perhatikan Gambar 13.32 yang merupakan ilustrasi permasalahan POS
_tagging_. Diberikan _input_ sekuens katax, kita ingin mencari sekuenstagy
terbaik untuk melambangkan kelas tiap kata. Kami harap kamu masih ingat
definisi permasalahan tersebut karena sudah dibahas pada bab-bab sebelumnya.
Kita ingin me _model_ kan _conditional probability_ p(y|x,θ). POS _tagging_
adalah salah satu _sequence tagging task_, dimana setiap elemen _input_ berkorespondensi
dengan elemen _output_. Kita dapat melatih model BiRNN ditambah
dengan MLP untuk melakukan prediksi kelas kata. Sebelumnya, telah
dijelaskan bahwa BiRNN mungkin lebih intuitif untuk POS _tagging_ dibanding
RNN biasa. Hal ini karena kita dapat me _model_ kan “konteks” kata (surrounding
_word_ s) dengan lebih baik, yaitu informasi dari kata sebelum dan sesudah
(BiRNN), dibanding hanya mendapat informasi dari kata sebelum (RNN).
Sekarang kamu perhatikan Gambar 13.33 yang mengilustrasikannamed
entity recognition task(NER). _Named entity_ secara sederhana adalah objek
yang bernama, misal lokasi geografis, nama perusahaan, dan nama orang.
Pada NER, kita ingin mengekstrasi _named entity_ yang ada pada _input_. _Task_
ini biasanya direpresentasikan dengan BIO _coding scheme_. Artinya, _output_


208 13 Arsitektur Neural Network

```
Gambar 13.32: POStagger.
```
untuk NER adalah pilihan B ( _begin_ ), I ( _inside_ ) dan O ( _outside_ ). Apabila suatu
kata adalah kata pertama dari suatu _named entity_, kita mengasosiasikannya
dengan _output_ B. Apabila suatu kata adalah bagian dari _named entity_, tetapi
bukan kata pertama, maka diasosiasikan dengan _output_ I. Selain keduanya,
diasosiasikan dengan _output_ O. Seperti POS _tagging_, NER juga merupakan
_sequence tagging_ karena kita ingin me _model_ kanp(y|x,θ) untukxadalah
_input_ danyadalah _output_ (BIO).

```
Gambar 13.33: _Named Entity Recognition_.
```
POS _tagging_ dan NER dianggap sebagai _task_ yang “mirip” karena keduanya
memiliki cara penyelesaian masalah yang mirip. Selain dapat diselesaikan
dengan cara yang mirip, kedua _task_ tersebut memiliki _nature_ yang sama. Dengan
alasan ini, kita dapat melatih model untuk POS _tagging_ dan NER dengan
kerangka _multi-task learning_. Akan tetapi, menentukan apakah dua _task_
memiliki _nature_ yang mirip ibarat sebuah seni (butuh _sense_ ) dibandinghard
science[1].

Gambar 13.34: _Multi-task Learning_ untuk POS _tagging_ danNamed Entity
Recognition.


```
13.8 Multi- _task_ Learning 209
```
Ide utama MTL adalah melatih _shared representation_. Sebagai ilustrasi,
perhatikan Gambar 13.34. Sebelumnya, kita melatih dua model dengan
BiRNN yang dilewatkan pada MLP. Pada saat ini, kita melatih BiRNN yang
dianggap sebagai _shared representation_. BiRNN diharapkan memiliki “intuisi”
untuk menyelesaikan kedua permasalahan, berhubung keduanya memiliki _nature_ yang
sama. Setiap _hidden layer_ pada BiRNN dilewatkan pada MLP untuk
melakukan prediksi pada masing-masing _task_. Tujuan utama MTL adalah untuk
meningkatkan kinerja. Kita melatih model untuk _task_ Xdengan meminjam
“intuisi” penyelesaikan dari _task_ Ydengan harapan “intuisi” yang dibawa
dari _task_ Y dapat memberikan informasi tambahan untuk penyelesaian _task_
X.

```
Gambar 13.35: _Multi-task Learning_ pada mesin translasi.
```
Perhatikan contoh berikutnya tentang MTL pada mesin translasi (Gambar
13.35). Pada permasalahan mesin translasi, kita melatih model menggunakan
_data_  paralel kombinasi pasangan bahasaX-Y.
Penggunaan MTL pada mesin mesin translasi pada umumnya dimotivasi
oleh dua alasan.

- Pada kombinasi pasangan bahasa tertentu, tersedia _dataset_ dengan jum-
    lah yang banyak. Tetapi, bisa jadi kita hanya memiliki _dataset_ berukuran
    kecil untuk bahasa tertentu. Sebagai contoh, data mesin translasi untuk
    pasangan English-France lebih besar dibanding English-Indonesia. Karena
    kedua kombinasi pasangan bahasa memiliki _nature_ yang cukup sama,
    kita dapat menggunakan MTL sebagai kompensasi data English-Indonesia


210 13 Arsitektur Neural Network

```
yang sedikit agar model pembelajaran bisa konvergen. Dalam artian, _encoder_ yang
dilatih menggunakan sedikit data kemungkinan memiliki performa
yang kurang baik. Dengan ini, kita latih suatu _encoder_ menggunakan
_data_  English-France dan English-Indonesia agar model bisa konvergen.
Pada kasus ini, transfer learning juga dapat digunakan. Kita melatih
_model_  English-France, kemudian memasangkan _encoder_ yang sudah dilatih
dengan _decoder_ baru untuk bahasa Indonesia.
```
- Seperti yang sudah dijelaskan sebelumnya, kita ingin menggunakan “in-
    tuisi” penyelesaian suatu permasalahan untuk permasalahan lainnya,
    berhubung solusinya keduanya mirip. Dengan hal ini, kita harap kita
    mampu meningkatkan kinerja model. Sebagai contoh, kombinasi pasangan
    bahasa English-Japanese dan English-Korean, berhubung kedua bahasa
    target memiliki struktur yang mirip.
Pada kerangka MTL, _utility function_ atau objektif _training_ adalah meminimalkanjoint
_loss_ semua _tasks_ (hal ini juga membedakan TL dan MTL),
diberikan pada persamaan 13.19. Kita dapat mendefinisikan _loss_ pada kerangka
MTL sebagai penjumlahan _loss_ pada masing-masing _task_, seperti pada persamaan
13.20. Apabila kita mengganggap suatu _task_ lebih penting dari _task_
lainnya, kita dapat menggunakan _weighted sum_, seperti pada persamaan 13.21.
Kita juga dapat menggunakan _dynamic weighting_ untuk memperhitungkan
_uncertainty_  pada tiap _task_, seperti pada persamaan 13.22 [99], dimanaσ
melambangkan varians _task-specific loss_.

```
LMTL=q(LT 1 ,...LTD) (13.19)
```
```
q(LT 1 ,...LTD) =
```
#### ∑D

```
i
```
```
LTi (13.20)
```
```
q(LT 1 ,...LTD) =
```
#### ∑D

```
i
```
```
αiLTi (13.21)
```
```
q(LTi,...LTD) =
```
#### ∑D

```
i
```
#### 1

```
2 σ^2 i
```
```
LTi+ ln(σi) (13.22)
```
Saat melatih MTL, tujuan _training_ dapat mempengaruhi proses penyajian
_data_. Seumpama saat melatih mesin translasi untuk English-{Chinese,
Japanese, Korean}, kita ingin menganggap English-Korean sebagai _main task_
sementara sisanya sebagai _supporting task_, kita dapat melakukan _pre-training_
menggunakan data English-Chinese dan English-Japanese terlebih dahulu,
diikuti oleh English-Korean (tetapi _loss_ tetap _joint loss_ ). Pada kasus ini,
penggunaan _joint weighted loss_ dapat dijustifikasi. Di lain pihak, apabila kita
mengganggap semua _tasks_ penting, kita dapat melakukan data _shuffling_ sehingga
urutan _training data_ tidak bias pa _data_ sk tertentu. Pada kasus ini,


```
13.8 Multi- _task_ Learning 211
```
```
Gambar 13.36: _Multi-task Learning_ setup.
```
penggunaan _joint loss_ –sumdapat dijustifikasi. Ilustrasi diberikan pada Gambar
13.36.

