Percakapan online ada di mana-mana dalam kehidupan modern, mulai dari industri video game hingga telekomunikasi. Hal ini telah menyebabkan pertumbuhan eksponensial dalam jumlah data percakapan online, yang telah membantu dalam pengembangan sistem pemrosesan bahasa alami (NLP) yang canggih seperti chatbots dan model generasi bahasa alami (NLG). Seiring waktu, berbagai teknik NLP untuk analisis teks juga telah berkembang. Ini memerlukan persyaratan untuk layanan terkelola sepenuhnya yang dapat diintegrasikan ke dalam aplikasi menggunakan panggilan API tanpa memerlukan keahlian machine learning (ML) yang ekstensif. AWS menawarkan layanan AI AWS terlatih seperti Amazon Comprehend, yang secara efektif dapat menangani kasus penggunaan NLP yang melibatkan klasifikasi, peringkasan teks, pengenalan entitas, dan lainnya untuk mengumpulkan wawasan dari teks.
Selain itu, percakapan online telah menyebabkan meluasnya fenomena penggunaan bahasa non-tradisional. Teknik NLP tradisional sering kali berkinerja buruk pada data teks ini karena kosakata khusus domain yang terus berkembang dan ada dalam platform yang berbeda, serta penyimpangan leksikal kata yang signifikan dari bahasa Inggris yang tepat, baik secara tidak sengaja atau sengaja sebagai bentuk serangan permusuhan. .
Dalam posting ini, kami menjelaskan beberapa pendekatan ML untuk klasifikasi teks percakapan online dengan alat dan layanan yang tersedia di AWS.
Prasyarat
Sebelum mendalami kasus penggunaan ini, harap selesaikan prasyarat berikut:
- Siapkan Akun AWS dan buat pengguna IAM.
- Siapkan AWS CLI dan SDK AWS.
- (Opsional) Siapkan Lingkungan Cloud9 IDE.
Dataset
Untuk posting ini, kami menggunakan Jigsaw Bias yang Tidak Diinginkan dalam kumpulan data Klasifikasi Toksisitas, tolok ukur untuk masalah spesifik klasifikasi toksisitas dalam percakapan online. Dataset memberikan label toksisitas serta beberapa atribut subkelompok seperti cabul, serangan identitas, penghinaan, ancaman, dan eksplisit secara seksual. Label diberikan sebagai nilai pecahan, yang mewakili proporsi annotator manusia yang percaya bahwa atribut diterapkan pada bagian teks tertentu, yang jarang sekali. Untuk menghasilkan label biner (misalnya, beracun atau tidak beracun), ambang batas 0.5 diterapkan pada nilai pecahan, dan komentar dengan nilai lebih besar dari ambang batas diperlakukan sebagai kelas positif untuk label tersebut.
Penyematan subkata dan RNN
Untuk pendekatan pemodelan pertama kami, kami menggunakan kombinasi penyematan subkata dan jaringan saraf berulang (RNN) untuk melatih model klasifikasi teks. Penyematan subkata diperkenalkan oleh Bojanowski dkk. di 2017 sebagai peningkatan dari metode penyisipan tingkat kata sebelumnya. Model skip-gram Word2Vec tradisional dilatih untuk mempelajari representasi vektor statis dari kata target yang secara optimal memprediksi konteks kata itu. Model subkata, di sisi lain, mewakili setiap kata target sebagai kantong karakter n-gram yang membentuk kata, di mana n-gram terdiri dari sekumpulan n karakter berurutan. Metode ini memungkinkan model embedding untuk lebih mewakili morfologi yang mendasari kata-kata terkait dalam korpus serta perhitungan embeddings untuk kata-kata baru, out-of-vocabulary (OOV). Ini sangat penting dalam konteks percakapan online, ruang masalah di mana pengguna sering salah mengeja kata (kadang-kadang sengaja untuk menghindari deteksi) dan juga menggunakan kosa kata unik yang terus berkembang yang mungkin tidak ditangkap oleh korpus pelatihan umum.
Amazon SageMaker memudahkan untuk melatih dan mengoptimalkan model penyematan subkata tanpa pengawasan pada korpus data teks khusus domain Anda sendiri dengan built-in Algoritme BlazingText. Kami juga dapat mengunduh model tujuan umum yang ada yang dilatih pada kumpulan data teks online yang besar, seperti berikut ini: Model bahasa Inggris tersedia langsung dari fastText. Dari instans notebook SageMaker Anda, cukup jalankan yang berikut ini untuk mengunduh model fastText yang telah dilatih sebelumnya:
Baik Anda telah melatih penyematan Anda sendiri dengan BlazingText atau mengunduh model yang telah dilatih sebelumnya, hasilnya adalah biner model zip yang dapat Anda gunakan dengan pustaka gensim untuk menyematkan kata target yang diberikan sebagai vektor berdasarkan subkata penyusunnya:
Setelah melakukan praproses pada segmen teks tertentu, kita dapat menggunakan pendekatan ini untuk menghasilkan representasi vektor untuk setiap kata konstituen (yang dipisahkan oleh spasi). Kami kemudian menggunakan SageMaker dan kerangka kerja pembelajaran mendalam seperti PyTorch untuk melatih RNN yang disesuaikan dengan tujuan klasifikasi biner atau multilabel untuk memprediksi apakah teks beracun atau tidak dan sub-jenis toksisitas spesifik berdasarkan contoh pelatihan berlabel.
Untuk mengunggah teks praproses Anda ke Layanan Penyimpanan Sederhana Amazon (Amazon S3), gunakan kode berikut:
Untuk memulai pelatihan model multi-GPU yang skalabel dengan SageMaker, masukkan kode berikut:
Dalam , kami mendefinisikan Dataset PyTorch yang digunakan oleh train.py
untuk menyiapkan data teks untuk pelatihan dan evaluasi model:
Perhatikan bahwa kode ini mengantisipasi bahwa vectors.zip
file yang berisi penyematan fastText atau BlazingText Anda akan disimpan di .
Selain itu, Anda dapat dengan mudah menerapkan model fastText yang telah dilatih sebelumnya sendiri ke titik akhir SageMaker langsung untuk menghitung vektor penyematan dengan cepat untuk digunakan dalam tugas tingkat kata yang relevan. Lihat berikut ini Contoh GitHub lebih lanjut.
Transformer dengan Wajah Memeluk
Untuk pendekatan pemodelan kedua kami, kami beralih ke penggunaan Transformers, yang diperkenalkan di makalah ini Perhatian Yang Anda Butuhkan. Transformer adalah model pembelajaran mendalam yang dirancang untuk secara sengaja menghindari jebakan RNN dengan mengandalkan mekanisme perhatian-diri untuk menarik ketergantungan global antara input dan output. Arsitektur model Transformer memungkinkan paralelisasi yang jauh lebih baik dan dapat mencapai kinerja tinggi dalam waktu pelatihan yang relatif singkat.
Dibangun di atas kesuksesan Transformers, BERT, diperkenalkan di koran BERT: Pra-pelatihan Transformers Dua Arah Dalam untuk Pemahaman Bahasa, menambahkan pra-pelatihan dua arah untuk representasi bahasa. Terinspirasi oleh tugas Cloze, BERT dilatih sebelumnya dengan pemodelan bahasa bertopeng (MLM), di mana model belajar untuk memulihkan kata-kata asli untuk token bertopeng secara acak. Model BERT juga dilatih pada tugas prediksi kalimat (NSP) berikutnya untuk memprediksi apakah dua kalimat berada dalam urutan bacaan yang benar. Sejak kemunculannya pada tahun 2018, BERT dan variasinya telah banyak digunakan dalam tugas klasifikasi teks.
Solusi kami menggunakan varian BERT yang dikenal sebagai RoBERTa, yang diperkenalkan di makalah RoBERTa: Pendekatan Pra-pelatihan BERT yang Dioptimalkan dengan Kuat. RoBERTa lebih lanjut meningkatkan kinerja BERT pada berbagai tugas bahasa alami dengan pelatihan model yang dioptimalkan, termasuk model pelatihan yang lebih lama pada korpus yang 10 kali lebih besar, menggunakan hyperparameter yang dioptimalkan, masking acak dinamis, menghapus tugas NSP, dan banyak lagi.
Model berbasis RoBERTa kami menggunakan Memeluk Transformer Wajah library, yang merupakan kerangka kerja Python open-source populer yang menyediakan implementasi berkualitas tinggi dari semua jenis model Transformer canggih untuk berbagai tugas NLP. Hugging Face telah bermitra dengan AWS untuk memungkinkan Anda melatih dan menerapkan model Transformer di SageMaker dengan mudah. Fungsi ini tersedia melalui Memeluk gambar Face AWS Deep Learning Container, yang mencakup perpustakaan Transformer, Tokenizer, dan Kumpulan Data, dan integrasi yang dioptimalkan dengan SageMaker untuk pelatihan model dan inferensi.
Dalam implementasi kami, kami mewarisi tulang punggung arsitektur RoBERTa dari kerangka Hugging Face Transformers dan menggunakan SageMaker untuk melatih dan menerapkan model klasifikasi teks kami sendiri, yang kami sebut RoBERTox. RoBERTox menggunakan pengkodean pasangan byte (BPE), diperkenalkan di Terjemahan Mesin Neural dari Kata Langka dengan Unit Subword, untuk menandai teks masukan menjadi representasi subkata. Kami kemudian dapat melatih model dan tokenizer kami pada data Jigsaw atau korpus khusus domain besar (seperti log obrolan dari game tertentu) dan menggunakannya untuk klasifikasi teks yang disesuaikan. Kami mendefinisikan kelas model klasifikasi kustom kami dalam kode berikut:
Sebelum pelatihan, kami menyiapkan data teks dan label kami menggunakan pustaka dataset Hugging Face dan mengunggah hasilnya ke Amazon S3:
Kami memulai pelatihan model dengan cara yang mirip dengan RNN:
Terakhir, cuplikan kode Python berikut mengilustrasikan proses penyajian RoBERTox melalui titik akhir SageMaker langsung untuk klasifikasi teks waktu nyata untuk permintaan JSON:
Evaluasi kinerja model: Jigsaw kumpulan data bias yang tidak diinginkan
Tabel berikut berisi metrik performa untuk model yang dilatih dan dievaluasi berdasarkan data dari kompetisi Jigsaw Unintended Bias in Toxicity Detection Kaggle. Kami melatih model untuk tiga tugas yang berbeda tetapi saling terkait:
- Kasus biner โ Model dilatih pada dataset pelatihan lengkap untuk memprediksi
toxicity
label saja - Kasus berbutir halus โ Subset dari data pelatihan yang
toxicity>=0.5
digunakan untuk memprediksi label sub-tipe toksisitas lainnya (obscene
,threat
,insult
,identity_attack
,sexual_explicit
) - Kasus multitugas โ Dataset pelatihan lengkap digunakan untuk memprediksi keenam label secara bersamaan
Kami melatih model RNN dan RoBERTa untuk masing-masing dari tiga tugas ini menggunakan label pecahan yang disediakan Jigsaw, yang sesuai dengan proporsi annotator yang menganggap label itu sesuai untuk teks, serta dengan label biner yang dikombinasikan dengan bobot kelas dalam jaringan fungsi kerugian. Dalam skema pelabelan biner, proporsi dibatasi pada 0.5 untuk setiap label yang tersedia (1 jika label>=0.5, 0 sebaliknya), dan fungsi kehilangan model dibobot berdasarkan proporsi relatif dari setiap label biner dalam dataset pelatihan. Dalam semua kasus, kami menemukan bahwa menggunakan label pecahan secara langsung menghasilkan kinerja terbaik, yang menunjukkan nilai tambah informasi yang melekat pada tingkat kesepakatan antara annotator.
Kami menampilkan dua metrik model: presisi rata-rata (AP), yang memberikan ringkasan kurva presisi-ulang dengan menghitung rata-rata tertimbang dari nilai presisi yang dicapai pada setiap ambang klasifikasi, dan area di bawah kurva karakteristik operasi penerima (AUC) , yang menggabungkan kinerja model di seluruh ambang klasifikasi sehubungan dengan tingkat positif benar dan tingkat positif palsu. Perhatikan bahwa kelas sebenarnya untuk contoh teks tertentu dalam set pengujian sesuai dengan apakah proporsi sebenarnya lebih besar dari atau sama dengan 0.5 (1 jika label>=0.5, 0 sebaliknya).
. | Penyematan Subkata + RNN | RobertTa | ||
. | Label pecahan | Label biner + Pembobotan kelas | Label pecahan | Label biner + Pembobotan kelas |
Biner | AP=0.746, AUC = 0.966 | AP=0.730, AUC=0.963 | AP=0.758, AUC=0.966 | AP=0.747, AUC=0.963 |
berbutir halus | AP=0.906, AUC=0.909 | AP=0.850, AUC=0.851 | AP=0.913, AUC=0.913 | AP=0.911, AUC=0.912 |
Multitask | AP=0.721, AUC = 0.972 | AP=0.535, AUC=0.907 | AP=0.740, AUC=0.972 | AP=0.711, AUC=0.961 |
Kesimpulan
Dalam posting ini, kami menyajikan dua pendekatan klasifikasi teks untuk percakapan online menggunakan layanan AWS ML. Anda dapat menggeneralisasi solusi ini di seluruh platform komunikasi online, dengan industri seperti game yang kemungkinan besar akan mendapat manfaat dari peningkatan kemampuan untuk mendeteksi konten berbahaya. Di postingan mendatang, kami berencana untuk membahas lebih lanjut arsitektur ujung ke ujung untuk penerapan model yang mulus ke akun AWS Anda.
Jika Anda ingin membantu mempercepat penggunaan ML dalam produk dan proses Anda, harap hubungi Lab Solusi Amazon ML.
Tentang Penulis
Ryan Merek adalah Ilmuwan Data di Lab Solusi Pembelajaran Mesin Amazon. Dia memiliki pengalaman khusus dalam menerapkan pembelajaran mesin pada masalah dalam perawatan kesehatan dan ilmu kehidupan, dan di waktu luangnya dia menikmati membaca sejarah dan fiksi ilmiah.
Sourav Bhabesh adalah Ilmuwan Data di Amazon ML Solutions Lab. Dia mengembangkan solusi AI/ML untuk pelanggan AWS di berbagai industri. Spesialisasinya adalah Natural Language Processing (NLP) dan sangat menyukai pembelajaran yang mendalam. Di luar pekerjaan dia suka membaca buku dan jalan-jalan.
Liutong Zhou adalah Ilmuwan Terapan di Amazon ML Solutions Lab. Dia membangun solusi AI/ML yang dipesan lebih dahulu untuk pelanggan AWS di berbagai industri. Dia berspesialisasi dalam Pemrosesan Bahasa Alami (NLP) dan bersemangat tentang pembelajaran mendalam multi-modal. Dia adalah seorang penyanyi tenor lirik dan suka menyanyi opera di luar pekerjaan.
Sia Gholami adalah Senior Data Scientist di Amazon ML Solutions Lab, tempat ia membangun solusi AI/ML untuk pelanggan di berbagai industri. Dia bersemangat tentang pemrosesan bahasa alami (NLP) dan pembelajaran mendalam. Di luar pekerjaan, Sia senang menghabiskan waktu di alam dan bermain tenis.
Daniel Horowitz adalah Manajer Sains AI Terapan. Dia memimpin tim ilmuwan di Amazon ML Solutions Lab yang bekerja untuk memecahkan masalah pelanggan dan mendorong adopsi cloud dengan ML.
- Coinsmart. Pertukaran Bitcoin dan Crypto Terbaik Eropa.
- Platoblockchain. Intelijen Metaverse Web3. Pengetahuan Diperkuat. AKSES GRATIS.
- CryptoHawk. Radar Altcoin. Uji Coba Gratis.
- Sumber: https://aws.amazon.com/blogs/machine-learning/text-classification-for-online-conversations-with-machine-learning-on-aws/
- '
- "
- 10
- 100
- 7
- a
- kemampuan
- Tentang Kami
- mempercepat
- Akun
- Mencapai
- dicapai
- di seluruh
- menambahkan
- Adopsi
- Persetujuan
- AI
- Layanan AI
- Semua
- memungkinkan
- Amazon
- jumlah
- analisis
- api
- aplikasi
- terapan
- Mendaftar
- Menerapkan
- pendekatan
- pendekatan
- sesuai
- arsitektur
- DAERAH
- atribut
- tersedia
- rata-rata
- AWS
- tas
- patokan
- manfaat
- TERBAIK
- Lebih baik
- antara
- lebih besar
- Buku-buku
- membangun
- built-in
- panggilan
- kasus
- kasus
- karakter
- kelas
- klasifikasi
- awan
- kode
- kombinasi
- bergabung
- komentar
- Komunikasi
- kompetisi
- lengkap
- tersusun
- komputasi
- menghitung
- komputasi
- berturut-turut
- terus-menerus
- kontak
- Wadah
- mengandung
- Konten
- Percakapan
- percakapan
- membuat
- melengkung
- adat
- pelanggan
- pelanggan
- data
- ilmuwan data
- mendalam
- menyebarkan
- penyebaran
- menggambarkan
- dirancang
- rincian
- Deteksi
- Menentukan
- Pengembangan
- berbeda
- Dimensi
- langsung
- membahas
- Display
- Download
- mendorong
- selama
- dinamis
- setiap
- mudah
- efektif
- aktif
- ujung ke ujung
- Titik akhir
- Inggris
- Enter
- entitas
- evaluasi
- berkembang
- contoh
- contoh
- ada
- pengalaman
- keahlian
- luas
- Menghadapi
- Fashion
- Fiksi
- Pertama
- berikut
- bentuk
- Depan
- ditemukan
- fraksional
- Kerangka
- Gratis
- dari
- penuh
- fungsi
- fungsi
- fungsi
- lebih lanjut
- masa depan
- permainan
- Games
- game
- Umum
- tujuan umum
- menghasilkan
- generasi
- Aksi
- lebih besar
- Pertumbuhan
- menangani
- kepala
- kesehatan
- membantu
- membantu
- High
- berkualitas tinggi
- sejarah
- HTTPS
- manusia
- identitas
- implementasi
- penting
- ditingkatkan
- perbaikan
- memasukkan
- Termasuk
- industri
- informasi
- inheren
- memasukkan
- wawasan
- terinspirasi
- contoh
- Menghina
- terpadu
- integrasi
- IT
- gergaji ukir
- Pekerjaan
- kunci-kunci
- dikenal
- laboratorium
- label
- pelabelan
- Label
- bahasa
- besar
- lebih besar
- lapisan
- Memimpin
- BELAJAR
- pengetahuan
- Dipimpin
- Perpustakaan
- Biologi
- Mungkin
- hidup
- memuat
- mesin
- Mesin belajar
- membuat
- MEMBUAT
- berhasil
- manajer
- masker
- masker
- Cocok
- Matriks
- mekanisme
- Memori
- metode
- Metrik
- mungkin
- ML
- model
- model
- lebih
- beberapa
- Alam
- Alam
- jaringan
- jaringan
- berikutnya
- buku catatan
- jumlah
- Penawaran
- secara online
- operasi
- Optimize
- dioptimalkan
- urutan
- asli
- Lainnya
- jika tidak
- sendiri
- kertas
- khususnya
- bermitra
- bergairah
- prestasi
- bagian
- Platform
- bermain
- silahkan
- Populer
- positif
- Posts
- meramalkan
- ramalan
- Mempersiapkan
- sebelumnya
- Masalah
- masalah
- proses
- proses
- pengolahan
- Produk
- Proyeksi
- disediakan
- menyediakan
- Bacaan
- real-time
- Memulihkan
- relevan
- menghapus
- mewakili
- perwakilan
- mewakili
- permintaan
- kembali
- Pengembalian
- Peran
- Run
- terukur
- skema
- Ilmu
- ILMU PENGETAHUAN
- ilmuwan
- ilmuwan
- mulus
- ruas
- layanan
- Layanan
- porsi
- set
- beberapa
- Pendek
- penting
- mirip
- Sederhana
- sejak
- ENAM
- Ukuran
- larutan
- Solusi
- MEMECAHKAN
- Space
- spasi
- spesialisasi
- Khusus
- tertentu
- Pengeluaran
- state-of-the-art
- Negara
- penyimpanan
- sukses
- sistem
- target
- tugas
- tim
- teknik
- telekomunikasi
- uji
- Grafik
- tiga
- ambang
- Melalui
- waktu
- kali
- Token
- alat
- obor
- tradisional
- Pelatihan VE
- Pelatihan
- transisi
- Terjemahan
- Perjalanan
- bawah
- unik
- menggunakan
- Pengguna
- pengesahan
- nilai
- variasi
- berbagai
- Video
- Video game
- apakah
- SIAPA
- dalam
- tanpa
- kata
- Kerja
- kerja
- Anda