Cara Kerja Google Translate

Prinsip dasar dari engine machine translation

Ron Ashrovy
5 min readOct 2, 2017
Original work: Daniil Korbut From Statsbot

Setiap harinya kita menggunakan teknologi yang berbeda tanpa mengetahui bagaimana cara kerjanya. Pada faktanya, tidak mudah mudah untuk mengerti engine untuk machine learning. Team statbot ingin membuat machine learning terasa jelas dimata masyarakat melalui blog ini. Harini , kami memutuskan untuk meng-explore dan mejelaskan machine learning translator terutama pada kinerja algoritma Google Translate.

Beberapa tahun yang lalu (blog ini di post tahun 2017), cukup memakan waktu untuk menerjemahkan teks dari bahasa yang tidak diketahui ke bahasa yang kita mengerti. Cara yang umum digunakan pada saat itu ialah menggunakan kamus dengan menerjemahkan satu-per-satu dan hal ini sangat menyulitkan untuk dua alasan:

  1. Pembaca (yang ingin menterjemahkan harus mengetahui aturan grammar)
  2. Kita harus menyimpan dengan baik bahasa tersebut didalam otak kita selama melakukan terjemahan.

Sekarang hal itu lebih mudah dengan google translate, baik menerjemahkan per-kata, per-kalimat, hingga teks dalam ukuran besar. Tetapi kebanyakan dari kita tidak mengetahui bagaimana sih mesin tersebut berkerja. Postingan ini khusus pada anda yang berminat.

Deep learning translation problems

Jika engine Google Translate mencoba untuk mentranslasi kalimat dari yang panjang hingga yang pendek, tetapi sering kali tidak berhasil karena besarnya jumlah variasi kemungkinan yang terjadi. Maka solusi terbaiknya ialah melatih/mengajarkan komputer untuk menentukan aturan grammar dan mentranslasi kalimat oleh komputer itu sendiri.

Jika anda mencoba mempelajari bahasa asing, anda tentu akan dikenalkan dengan beberapa aturan khusus. Jika mencoba merekam dan menerapkan aturan-pengecualian-aturan-pengecualian pada sebuah program maka kualitas terjemahan menjadi rusak.

Machine Translation System menggunakan pendekatan yang berbeda: aturan-aturan dialokasikan dari teks dengan menganalisis sejumlah dokumen dalam skala besar.

Sekarang, mari kita meng-investigasi apa yang tersembunyi dibalik “kotak box (black box)” yang kita sebut sebagai mesin translator. Deep neural network telah menunjukkan kemampuan yang luar biasa untuk melakukan tugas-tugas rumit (seperti recognisi suara/visual), disamping fleksibilitas deep neural network, mereka hanya bisa diterapkan pada tugas-tugas dimana input dan target (output) memiliki dimensi yang tetap.

Recurrent Neural Networks

Disini dimana kita menggunakan Long Short-Term (LSTMs) untuk menggantu kita mengerjakan urutan (sequence) yang tidak diketahui panjangnya dan letak prioritasnya.

LSTM adalah bagian dari RNN (Recurrent Neural Network) yang mampu mempelajari long-term dependecies. Semua RNN terlihat seperti rantai pengulangan pada module.

Unrolled recurrent neural network

Bidirectional RNNs

Langkah kita berikutnya adalah bidirectional recurrent neural networks (BRNNs). Apa itu? BRNN memisahkan neuron RNN biasa ke dua tujuan. Tujuan pertama adalah untuk waktu positif (positive time), atau state kedepannya/selanjutnya (forward). Tujuan yang kedua adalah untuk waktu negatif (negative time), atau state sebelumnya/kebelakang (backward). Outpu dari dua state ini tidak berhubungan pada input dari state dari arah berlawananan. Berikut gambarannya:

Bidirectional recurrent neural networks

Untuk mengerti mengapa BRNN bisa berkerja lebih baik dibanding RNN biasa, anda bisa membayangkan sebuah kalimat dari 9 kata, kita ingin memprediksi kata ke-5. Kita hanya bisa mengetahuinya hanya dengan 4 kata pertama, atau 4 kata pertama dan terakhir.

Sequence to sequence

Langkah berikutnya adalah sequence to sequence model (atau biasa disebut dengan seq2seq). Model seq2seq memiliki dua RNN: 1 untuk encoder network (jaringan) yang memproses input dan 1 lagi untuk decoder network (jaringan) untuk menghasilkan output.

Sequence to sequence model

Akhirnya dengan ini semua kita bisa membuat machine translator!

Google translate saat ini (2017) mendukung 103 bahasa, maka kita harus memiliki 103x102 model bahasa yang berbeda untuk saling dipasangkan. Yap benar, kualitas model ini bervariasi sesuai dengan popularitas bahasa dan jumlah dokumen yang tersedia untuk melatih network (jaringan) ini.

Google Translate

Ide ini direalisasikan oleh Google engineers diakhir tahun 2016. Arsitektur NN dibuat dengan model seq2seq yang telah dipelajari sebelumnya.

Salah satu pengecualinnya adalah diantara encoder dan decoder terdapat 8 layer LSTM-RNN yang mempunyai residu (sisa) keterkaitan antar layer tersebut dengan beberapa tweak akurasi dan speed. Jika anda ingin lebih dalam untuk mempelajari hal tersebut anda bisa lihat pada link berikut:

Hal yang utama dari pendekatan ini ialah saat ini algoritma Google Translate hanya menggunakan satu sistem dan bukan satu set besar untuk setiap pasangan bahasa.

Sistem mebutuhkan sebuah “token” pada awal input kalimat yang dikhususkan pada bahasa yang ingin ada terjemahkan.

Hal tersebut meningkatkan kualitas terjemahan dan mampu menerjemahkan walaupun antara dua bahasa tersebut tidak dimiliki oleh sistem. Metode ini disebut “Zero-Shot Translation.”

What Means Better Translation?

Saat kita berbicara mengenai peningkatan dan hasil yang lebih baik pada algoritma google translate, muncul satu pertanyaan baru, bagaimana cara meng-evaluasi bahwa kandidat pertama translasi lebih baik dibanding yang kedua?

Ini bukanlah masalah sepele, karena beberapa kalimat umum yang digunakan kita memiliki kumpulan referensi terjemahan dari penerjemah profesional dan tentu itu membuat suatu perbedaan.

Beberapa pendekatan untuk memecahkan masalah ini adalah menggunakan BLEU (bilingual evaluation understudy) yang cukup populer, dan merupakan matrix yang efekif. Sekarang coba bayangkan kita memiliki dua mesin penerjemah:

Candidate 1: Statsbot makes it easy for companies to closely monitor data from various analytical platforms via natural language.

Candidate 2: Statsbot uses natural language to accurately analyze businesses’ metrics from different analytical platforms.

Sekalipun keduanya memiliki makna yang sama tetapi kualitas dan strukturnya berbeda. Jika kita lihat pada hasil penerjemahan manusia:

Reference 1: Statsbot helps companies closely monitor their data from different analytical platforms via natural language.

Reference 2: Statsbot allows companies to carefully monitor data from various analytics platforms by using natural language.

Jelas sekali bahwa kandidat 1 lebih baik, sharing more words dan frasa jika dibandingkan dengan kandidat kedua. Ini adalah adalah kunci pemikiran dari pendekatan BLEU. Kita bisa membandingkan n-grams kandidat dengan n-gram translasi referensi dan menghitung jumlah kesamaan (tidak tergantung dari posisinya). Kita cukup menggunakan ketepatan n-gram, karena menghitung recall (penarikan/ingatan) sangat sulit dengan beberapa refs dan hasilnya ialah rata-rata geometric dari nilai n-gram.

Nah kita bisa meng-evaluasi mesin yang complex pada machine learning tanslation. Kedepannya jika anda men-translate seperti Google Translate, bayangkan berapa juta dokumen yang dianalisis sebelum memberikan hasil translasi yang terbaik untuk anda.

--

--

Ron Ashrovy
Ron Ashrovy

No responses yet