Skip to content Skip to sidebar Skip to footer

Penjelasan BERT: Model bahasa canggih untuk NLP

Daftar Isi

Penjelasan BERT: Model bahasa canggih untuk NLP
Penjelasan BERT: Model bahasa canggih untuk NLP



BERT (Bidirectional Encoder Representations from Transformers) adalah makalah terbaru yang diterbitkan oleh para peneliti di Google AI Language. Ini telah menyebabkan kegemparan di komunitas Pembelajaran Mesin dengan menyajikan hasil mutakhir dalam berbagai tugas NLP, termasuk Menjawab Pertanyaan (SQuAD v1.1), Inferensi Bahasa Alami (MNLI), dan lainnya.

Inovasi teknis utama BERT adalah menerapkan pelatihan dua arah Transformer, model perhatian populer, ke pemodelan bahasa. Ini berbeda dengan upaya sebelumnya yang melihat urutan teks baik dari kiri ke kanan atau gabungan pelatihan kiri-ke-kanan dan kanan-ke-kiri.

Hasil makalah ini menunjukkan bahwa model bahasa yang dilatih dua arah dapat memiliki pemahaman konteks dan aliran bahasa yang lebih dalam daripada model bahasa satu arah. Dalam makalah tersebut, para peneliti merinci teknik baru bernama Masked LM (MLM) yang memungkinkan pelatihan dua arah dalam model yang sebelumnya tidak mungkin.

Latar

Di bidang visi komputer, para peneliti telah berulang kali menunjukkan nilai pembelajaran transfer — pra-pelatihan model jaringan saraf pada tugas yang diketahui, misalnya ImageNet, dan kemudian melakukan fine-tuning — menggunakan jaringan saraf terlatih sebagai dasar dari model khusus tujuan baru. Dalam beberapa tahun terakhir, para peneliti telah menunjukkan bahwa teknik serupa dapat berguna dalam banyak tugas bahasa alami.

Pendekatan yang berbeda, yang juga populer dalam tugas NLP dan dicontohkan dalam makalah ELMo baru-baru ini, adalah pelatihan berbasis fitur. Dalam pendekatan ini, jaringan saraf yang telah dilatih sebelumnya menghasilkan penyematan kata yang kemudian digunakan sebagai fitur dalam model NLP.

Cara kerja BERT

BERT memanfaatkan Transformer, mekanisme perhatian yang mempelajari hubungan kontekstual antara kata-kata (atau sub-kata) dalam sebuah teks. Dalam bentuk vanilanya, Transformer mencakup dua mekanisme terpisah — encoder yang membaca input teks dan decoder yang menghasilkan prediksi untuk tugas tersebut. Karena tujuan BERT adalah untuk menghasilkan model bahasa, hanya mekanisme encoder yang diperlukan. Cara kerja Transformer yang terperinci dijelaskan dalam sebuah makalah oleh Google.

Berbeda dengan model arah, yang membaca input teks secara berurutan (kiri-ke-kanan atau kanan-ke-kiri), encoder Transformer membaca seluruh urutan kata sekaligus. Oleh karena itu dianggap dua arah, meskipun akan lebih akurat untuk mengatakan bahwa itu tidak terarah. Karakteristik ini memungkinkan model untuk mempelajari konteks kata berdasarkan semua lingkungannya (kiri dan kanan kata).

Bagan di bawah ini adalah deskripsi tingkat tinggi dari encoder Transformer. Input adalah urutan token, yang pertama kali tertanam ke dalam vektor dan kemudian diproses dalam jaringan saraf. Output adalah urutan vektor ukuran H, di mana setiap vektor sesuai dengan token input dengan indeks yang sama.

Saat melatih model bahasa, ada tantangan untuk menentukan tujuan prediksi. Banyak model memprediksi kata berikutnya dalam urutan (misalnya "Anak pulang dari ___"), pendekatan terarah yang secara inheren membatasi pembelajaran konteks. Untuk mengatasi tantangan ini, BERT menggunakan dua strategi pelatihan:

MASK LM (MLM)

Sebelum memasukkan urutan kata ke dalam BERT, 15% kata di setiap urutan diganti dengan token [MASK]. Model kemudian mencoba untuk memprediksi nilai asli dari kata-kata bertopeng, berdasarkan konteks yang diberikan oleh kata-kata lain yang tidak bertopeng, dalam urutan. Dalam istilah teknis, prediksi kata-kata keluaran membutuhkan:

Menambahkan layer klasifikasi di atas output encoder.

Mengalikan vektor keluaran dengan matriks penyematan, mengubahnya menjadi dimensi kosakata.
Menghitung probabilitas setiap kata dalam kosakata dengan softmax.

Fungsi kehilangan BERT hanya mempertimbangkan prediksi nilai bertopeng dan mengabaikan prediksi kata-kata yang tidak bertopeng. Akibatnya, model bertemu lebih lambat dari model terarah, karakteristik yang diimbangi oleh peningkatan kesadaran konteksnya (lihat Takeaways #3).

Catatan: Dalam praktiknya, implementasi BERT sedikit lebih rumit dan tidak menggantikan semua kata bertopeng 15%. Lihat Lampiran A untuk informasi tambahan.

Prediksi Kalimat Berikutnya (NSP)

Dalam proses pelatihan BERT, model menerima pasangan kalimat sebagai input dan belajar memprediksi apakah kalimat kedua dalam pasangan adalah kalimat berikutnya dalam dokumen asli. Selama pelatihan, 50% dari input adalah pasangan di mana kalimat kedua adalah kalimat berikutnya dalam dokumen asli, sedangkan di 50% lainnya kalimat acak dari korpus dipilih sebagai kalimat kedua. Asumsinya adalah bahwa kalimat acak akan terputus dari kalimat pertama.

Untuk membantu model membedakan antara dua kalimat dalam pelatihan, input diproses dengan cara berikut sebelum memasukkan model:

Token [CLS] disisipkan di awal kalimat pertama dan token [SEP] disisipkan di akhir setiap kalimat.

Penyematan kalimat yang menunjukkan Kalimat A atau Kalimat B ditambahkan ke setiap token. Penyematan kalimat memiliki konsep yang mirip dengan penyematan token dengan kosakata 2.
Penyematan posisi ditambahkan ke setiap token untuk menunjukkan posisinya dalam urutan. Konsep dan implementasi positional embedding disajikan dalam makalah Transformer.
Untuk memprediksi apakah kalimat kedua memang terhubung ke yang pertama, langkah-langkah berikut dilakukan:


Seluruh urutan input melewati model Transformer.
Output token [CLS] diubah menjadi vektor berbentuk 2×1, menggunakan lapisan klasifikasi sederhana (matriks bobot dan bias yang dipelajari).
Menghitung probabilitas IsNextSequence dengan softmax.
Saat melatih model BERT, Masked LM dan Next Sentence Prediction dilatih bersama, dengan tujuan meminimalkan fungsi kerugian gabungan dari kedua strategi tersebut.

Cara menggunakan BERT (Fine-tuning)

Menggunakan BERT untuk tugas tertentu relatif mudah:

BERT dapat digunakan untuk berbagai tugas bahasa, sementara hanya menambahkan lapisan kecil ke model inti:
  1. Tugas klasifikasi seperti analisis sentimen dilakukan mirip dengan klasifikasi Next Sentence, dengan menambahkan layer klasifikasi di atas output Transformer untuk token [CLS].
  2. Dalam tugas Menjawab Pertanyaan (misalnya SQuAD v1.1), perangkat lunak menerima pertanyaan mengenai urutan teks dan diperlukan untuk menandai jawaban dalam urutan. Menggunakan BERT, model Tanya Jawab dapat dilatih dengan mempelajari dua vektor tambahan yang menandai awal dan akhir jawaban.
  3. Dalam Named Entity Recognition (NER), perangkat lunak menerima urutan teks dan diperlukan untuk menandai berbagai jenis entitas (Orang, Organisasi, Tanggal, dll) yang muncul dalam teks. Menggunakan BERT, model NER dapat dilatih dengan memasukkan vektor output dari setiap token ke dalam lapisan klasifikasi yang memprediksi label NER.

Dalam pelatihan fine-tuning, sebagian besar hyper-parameter tetap sama seperti dalam pelatihan BERT, dan makalah ini memberikan panduan khusus (Bagian 3.5) tentang hyper-parameter yang memerlukan penyetelan. Tim BERT telah menggunakan teknik ini untuk mencapai hasil mutakhir pada berbagai tugas bahasa alami yang menantang, yang dirinci dalam Bagian 4 makalah.

Kesimpulan

Ukuran model penting, bahkan dalam skala besar. BERT_large, dengan 345 juta parameter, adalah model terbesar dari jenisnya. Ini terbukti lebih unggul pada tugas skala kecil daripada BERT_base, yang menggunakan arsitektur yang sama dengan "hanya" 110 juta parameter.

Dengan data pelatihan yang cukup, lebih banyak langkah pelatihan == akurasi yang lebih tinggi. Misalnya, pada tugas MNLI, akurasi BERT_base meningkat sebesar 1,0% ketika dilatih pada langkah 1 juta (ukuran batch 128.000 kata) dibandingkan dengan langkah 500K dengan ukuran batch yang sama.

Pendekatan dua arah (MLM) BERT bertemu lebih lambat daripada pendekatan kiri-ke-kanan (karena hanya 15% kata yang diprediksi di setiap batch) tetapi pelatihan dua arah masih mengungguli pelatihan kiri-ke-kanan setelah sejumlah kecil langkah pra-pelatihan.

BERT tidak diragukan lagi merupakan terobosan dalam penggunaan Pembelajaran Mesin untuk Pemrosesan Bahasa Alami. Fakta bahwa itu dapat didekati dan memungkinkan fine-tuning cepat kemungkinan akan memungkinkan berbagai aplikasi praktis di masa depan.

Dalam ringkasan ini, kami mencoba menggambarkan ide-ide utama makalah ini sambil tidak tenggelam dalam detail teknis yang berlebihan. Bagi mereka yang ingin menyelam lebih dalam, kami sangat menyarankan untuk membaca artikel lengkap dan artikel tambahan yang dirujuk di dalamnya.

Referensi lain yang berguna adalah kode sumber dan model BERT, yang mencakup 103 bahasa dan dirilis dengan murah hati sebagai sumber terbuka oleh tim peneliti.

Lampiran A — Penyamaran Kata
Pelatihan model bahasa di BERT dilakukan dengan memprediksi 15% token dalam input, yang dipilih secara acak. Token ini telah diproses sebelumnya sebagai berikut — 80% diganti dengan token "[MASK]", 10% dengan kata acak, dan 10% menggunakan kata aslinya.

Intuisi yang membuat penulis memilih pendekatan ini adalah sebagai berikut (Terima kasih kepada Jacob Devlin dari Google atas wawasannya):

  • Jika kita menggunakan [MASK] 100% dari waktu model tidak akan selalu menghasilkan representasi token yang baik untuk kata-kata yang tidak bertopeng. Token yang tidak bertopeng masih digunakan untuk konteks, tetapi model ini dioptimalkan untuk memprediksi kata-kata bertopeng.
  • Jika kita menggunakan [MASK] 90% dari waktu dan kata-kata acak 10% dari waktu, ini akan mengajarkan model bahwa kata yang diamati tidak pernah benar.
  • Jika kita menggunakan [MASK] 90% dari waktu dan menyimpan kata yang sama 10% dari waktu, maka model hanya bisa dengan sepele menyalin penyematan non-kontekstual.
Tidak ada ablasi yang dilakukan pada rasio pendekatan ini, dan mungkin bekerja lebih baik dengan rasio yang berbeda. Selain itu, performa model tidak diuji hanya dengan menutupi 100% token yang dipilih.

Post a Comment for "Penjelasan BERT: Model bahasa canggih untuk NLP"