Amazon Neptunus ML adalah kemampuan pembelajaran mesin (ML) dari Amazon Neptunus yang membantu Anda membuat prediksi yang akurat dan cepat pada data grafik Anda. Di bawah tenda, Neptune ML menggunakan Graph Neural Networks (GNNs) untuk secara bersamaan memanfaatkan struktur grafik dan properti node/edge untuk menyelesaikan tugas yang ada. Metode tradisional hanya menggunakan properti dan tanpa struktur grafik (misalnya, XGBoost, Neural Networks), atau hanya menggunakan struktur grafik dan tanpa properti (misalnya, node2vec, Label Propagation). Untuk memanipulasi properti node/edge dengan lebih baik, algoritme ML mengharuskan data menjadi data numerik yang berperilaku baik, tetapi data mentah dalam database dapat memiliki tipe lain, seperti teks mentah. Untuk memanfaatkan jenis data lain ini, kami memerlukan langkah pemrosesan khusus yang mengubahnya dari jenis aslinya menjadi data numerik, dan kualitas hasil ML sangat bergantung pada kualitas transformasi data ini. Teks mentah, seperti kalimat, adalah salah satu jenis yang paling sulit untuk diubah, tetapi kemajuan terbaru di bidang Pemrosesan Bahasa Alami (NLP) telah menghasilkan metode kuat yang dapat menangani teks yang berasal dari berbagai bahasa dan panjang yang beragam.
Dimulai dengan versi 1.1.0.0, Neptune ML mendukung beberapa encoder teks (teks_teks cepat, teks_sbert, teks_kata2vec, dan teks_tfidf), yang membawa manfaat kemajuan terbaru dalam NLP dan memungkinkan dukungan untuk properti teks multi-bahasa serta persyaratan inferensi tambahan seputar bahasa dan panjang teks. Misalnya, dalam kasus penggunaan rekomendasi pekerjaan, posting pekerjaan di negara yang berbeda dapat dijelaskan dalam bahasa yang berbeda dan panjang deskripsi pekerjaan sangat bervariasi. Selain itu, Neptunus ML mendukung dan mobil opsi yang secara otomatis memilih metode pengkodean terbaik berdasarkan karakteristik fitur teks dalam data.
Dalam posting ini, kami mengilustrasikan penggunaan setiap encoder teks, membandingkan kelebihan dan kekurangannya, dan menunjukkan contoh bagaimana memilih encoder teks yang tepat untuk tugas rekomendasi pekerjaan.
Apa itu penyandi teks?
Tujuan pengkodean teks adalah untuk mengubah properti tepi/simpul berbasis teks di Neptunus menjadi vektor ukuran tetap untuk digunakan dalam model pembelajaran mesin hilir baik untuk klasifikasi simpul atau tugas prediksi tautan. Panjang fitur teks dapat sangat bervariasi. Ini bisa berupa kata, frasa, kalimat, paragraf, atau bahkan dokumen dengan beberapa kalimat (ukuran maksimum satu properti adalah 55 MB di Neptunus). Selain itu, fitur teks bisa dalam bahasa yang berbeda. Mungkin juga ada kalimat yang mengandung kata-kata dalam beberapa bahasa yang berbeda, yang kami definisikan sebagai alih kode.
Dimulai dengan rilis 1.1.0.0, Neptune ML memungkinkan Anda memilih dari beberapa pembuat enkode teks yang berbeda. Setiap encoder bekerja sedikit berbeda, tetapi memiliki tujuan yang sama untuk mengubah bidang nilai teks dari Neptunus menjadi vektor ukuran tetap yang kami gunakan untuk membangun model GNN kami menggunakan Neptune ML. Encoder baru adalah sebagai berikut:
- teks_teks cepat (baru) โ Kegunaan teks cepat pengkodean. FastText adalah perpustakaan untuk pembelajaran representasi teks yang efisien.
text_fasttext
direkomendasikan untuk fitur yang menggunakan satu dan hanya satu dari lima bahasa yang didukung fastText (Inggris, Cina, Hindi, Spanyol, dan Prancis). Itutext_fasttext
metode opsional dapat mengambilmax_length
bidang, yang menentukan jumlah maksimum token dalam nilai properti teks yang akan dikodekan, setelah string dipotong. Anda dapat menganggap token sebagai sebuah kata. Ini dapat meningkatkan kinerja ketika nilai properti teks berisi string panjang, karena jikamax_length
tidak ditentukan, fastText mengkodekan semua token terlepas dari panjang string. - teks_sbert (baru) โ Menggunakan Kalimat BERT (SBERT) metode pengkodean. SBERT merupakan salah satu metode penyisipan kalimat dengan menggunakan model pembelajaran representasi kontekstual BERT-Networks.
text_sbert
direkomendasikan ketika bahasa tidak didukung olehtext_fasttext
. Neptunus mendukung dua metode SBERT:text_sbert128
, yang merupakan default jika Anda hanya menentukantext_sbert
, dantext_sbert512
. Perbedaan di antara mereka adalah jumlah maksimum token dalam properti teks yang dikodekan. Itutext_sbert128
pengkodean hanya mengkodekan 128 token pertama, sedangkantext_sbert512
mengkodekan hingga 512 token. Akibatnya, menggunakantext_sbert512
dapat membutuhkan lebih banyak waktu pemrosesan daripadatext_sbert128
. Kedua metode lebih lambat daritext_fasttext
. - teks_kata2vec - Kegunaan Kata2Vec algoritma awalnya diterbitkan oleh Google untuk menyandikan teks. Word2Vec hanya mendukung bahasa Inggris.
- teks_tfidf โ Menggunakan istilah frekuensi terbalik dokumen frekuensi (TF-IDF) vectorizer untuk menyandikan teks. Pengkodean TF-IDF mendukung fitur statistik yang tidak dimiliki pengkodean lainnya. Ini mengukur pentingnya atau relevansi kata-kata dalam satu properti node di antara semua node lainnya.
Perhatikan bahwa text_word2vec
dan text_tfidf
sebelumnya didukung dan metode baru text_fasttext
dan text_sbert
direkomendasikan atas metode lama.
Perbandingan encoder teks yang berbeda
Tabel berikut menunjukkan perbandingan mendetail dari semua opsi penyandian teks yang didukung (text_fasttext
, text_sbert
, dan text_word2vec
). text_tfidf
bukan metode pengkodean berbasis model, melainkan ukuran berbasis hitungan yang mengevaluasi seberapa relevan token (misalnya, kata) dengan fitur teks di node atau tepi lain, jadi kami tidak menyertakan text_tfidf
untuk perbandingan. Kami merekomendasikan menggunakan text_tfidf
ketika Anda ingin mengukur pentingnya atau relevansi beberapa kata dalam satu simpul atau properti tepi di antara semua simpul atau properti tepi lainnya.)
. | . | teks_teks cepat | teks_sbert | teks_kata2vec |
Kemampuan Model | Bahasa yang didukung | Inggris, Cina, Hindi, Spanyol, dan Prancis | Lebih dari 50 bahasa | Inggris |
Dapat mengkodekan properti teks yang berisi kata-kata dalam bahasa yang berbeda | Tidak | Yes | Tidak | |
Dukungan panjang maksimum | Tidak ada batas panjang maksimum | Mengkodekan urutan teks dengan panjang maksimum 128 dan 512 | Tidak ada batas panjang maksimum | |
Biaya Waktu | pemuatan | Kira-kira 10 detik | Kira-kira 2 detik | Kira-kira 2 detik |
Kesimpulan | Cepat | Lambat | Medium |
Perhatikan tips penggunaan berikut:
- Untuk nilai properti teks dalam bahasa Inggris, Cina, Hindi, Spanyol, dan Prancis,
text_fasttext
adalah pengkodean yang direkomendasikan. Namun, itu tidak dapat menangani kasus di mana kalimat yang sama mengandung kata-kata dalam lebih dari satu bahasa. Untuk bahasa lain selain lima itufastText
mendukung, menggunakantext_sbert
pengkodean. - Jika Anda memiliki banyak string teks nilai properti yang lebih panjang dari, misalnya, 120 token, gunakan
max_length
bidang untuk membatasi jumlah token di setiap string yangtext_fasttext
mengkodekan.
Untuk meringkas, tergantung pada kasus penggunaan Anda, kami merekomendasikan metode pengkodean berikut:
- Jika properti teks Anda menggunakan salah satu dari lima bahasa yang didukung, sebaiknya gunakan
text_fasttext
karena inferensinya yang cepat.text_fasttext
adalah pilihan yang direkomendasikan dan Anda juga dapat menggunakantext_sbert
dalam dua pengecualian berikut. - Jika properti teks Anda dalam bahasa yang berbeda, sebaiknya gunakan
text_sbert
karena ini satu-satunya metode yang didukung yang dapat mengkodekan properti teks yang berisi kata-kata dalam beberapa bahasa berbeda. - Jika properti teks Anda menggunakan satu bahasa yang bukan salah satu dari lima bahasa yang didukung, sebaiknya gunakan
text_sbert
karena mendukung lebih dari 50 bahasa. - Jika panjang rata-rata properti teks Anda lebih dari 128, pertimbangkan untuk menggunakan
text_sbert512
ortext_fasttext
. Kedua metode dapat menggunakan encode urutan teks yang lebih panjang. - Jika properti teks Anda hanya dalam bahasa Inggris, Anda dapat menggunakan
text_word2vec
, tapi kami sarankan menggunakantext_fasttext
untuk inferensi cepatnya.
Demo kasus penggunaan: Tugas rekomendasi pekerjaan
Tujuan dari tugas rekomendasi pekerjaan adalah untuk memprediksi pekerjaan apa yang akan dilamar oleh pengguna berdasarkan aplikasi mereka sebelumnya, informasi demografis, dan riwayat pekerjaan. Postingan ini menggunakan kumpulan data Kaggle terbuka. Kami membangun dataset sebagai grafik tipe tiga simpul: pekerjaan, pemakai, dan kota.
Sebuah pekerjaan dicirikan oleh judul, deskripsi, persyaratan, lokasi kota, dan negara bagian. Seorang pengguna dijelaskan dengan properti jurusan, jenis gelar, jumlah riwayat pekerjaan, jumlah total tahun untuk pengalaman kerja, dan banyak lagi. Untuk use case ini, jabatan, deskripsi pekerjaan, persyaratan pekerjaan, dan jurusan semuanya dalam bentuk teks.
Dalam kumpulan data, pengguna memiliki properti berikut:
- Negara โ Misalnya, CA atau (Cina)
- Utama โ Misalnya, Manajemen Sumber Daya Manusia atau Lic Cytura Fisica (Spanyol)
- Tipe Gelar โ Misalnya, Sarjana, Magister, PhD, atau Tidak Ada
- Hitung Riwayat Pekerjaan โ Misalnya, 0, 1, 16, dan seterusnya
- TotalTahunPengalaman โ Misalnya, 0.0, 10.0, atau NAN
Pekerjaan memiliki properti berikut:
- Judul โ Misalnya, Asisten Administrasi atau Lic Cultura Fรญsica (Spanyol).
- Deskripsi Produk โ Misalnya, โPosisi Asisten Administrasi ini bertanggung jawab untuk melakukan berbagai fungsi pendukung administrasi dan administrasi di bidang komunikasi, โฆโ Jumlah rata-rata kata dalam deskripsi adalah sekitar 192.2.
- Persyaratan โ Misalnya, โPERSYARATAN PEKERJAAN: 1. Perhatian terhadap detail; 2.Kemampuan untuk bekerja di lingkungan yang serba cepat;3.Fakturโฆโ
- Negara: โ Misalnya, CA, NY, dan sebagainya.
Jenis simpul kota seperti Washington DC dan Orlando FL hanya memiliki pengenal untuk setiap node. Di bagian berikut, kami menganalisis karakteristik fitur teks yang berbeda dan mengilustrasikan cara memilih penyandi teks yang tepat untuk properti teks yang berbeda.
Bagaimana memilih penyandi teks yang berbeda
Untuk contoh kita, Utama dan Judul properti dalam berbagai bahasa dan memiliki urutan teks pendek, jadi text_sbert
direkomendasikan. Contoh kode untuk parameter ekspor adalah sebagai berikut. Untuk text_sbert
ketik, tidak ada bidang parameter lain. Di sini kita memilih text_sbert128
selain text_sbert512
, karena panjang teks relatif lebih pendek dari 128.
Grafik Deskripsi Produk dan Persyaratan properti biasanya dalam urutan teks yang panjang. Panjang rata-rata deskripsi adalah sekitar 192 kata, yang lebih panjang dari panjang input maksimum text_sbert
(128). Kita bisa menggunakan text_sbert512
, tetapi mungkin menghasilkan inferensi yang lebih lambat. Selain itu, teks dalam satu bahasa (Inggris). Oleh karena itu, kami merekomendasikan text_fasttext
pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. en nilai bahasa karena inferensinya yang cepat dan panjang input yang tidak terbatas. Contoh kode untuk parameter ekspor adalah sebagai berikut. Itu text_fasttext
pengkodean dapat disesuaikan menggunakan bahasa dan panjang maksimal. itu language
nilai diperlukan, tetapi max_length
bersifat opsional.
Rincian lebih lanjut dari kasus penggunaan rekomendasi pekerjaan dapat ditemukan di Tutorial buku catatan Neptunus.
Untuk tujuan demonstrasi, kami memilih satu pengguna, yaitu pengguna 443931, yang memegang gelar Master di bidang 'Manajemen dan Sumber Daya Manusia. Pengguna telah melamar ke lima pekerjaan berbeda, berjudul sebagai โManajer Sumber Daya Manusia (SDM)โ, โGeneralis SDMโ, โManajer Sumber Daya Manusiaโ, โAdministrator Sumber Daya Manusiaโ, dan โSpesialis Penggajian Seniorโ. Untuk mengevaluasi kinerja tugas rekomendasi, kami menghapus 50% dari pekerjaan yang diterapkan (tepi) pengguna (di sini kami menghapus "Administrator Sumber Daya Manusia" dan "Manajer Sumber Daya Manusia (SDM)) dan mencoba memprediksi posisi teratas 10 pekerjaan yang kemungkinan besar akan dilamar oleh pengguna ini.
Setelah mengkodekan fitur pekerjaan dan fitur pengguna, kami melakukan tugas prediksi tautan dengan melatih model jaringan konvolusi grafik relasional (RGCN). Pelatihan model ML Neptune memerlukan tiga langkah: pemrosesan data, pelatihan model, dan pembuatan titik akhir. Setelah titik akhir inferensi dibuat, kami dapat membuat rekomendasi untuk pengguna 443931. Dari 10 pekerjaan teratas yang diprediksi untuk pengguna 443931 (yaitu, "Generalis SDM", "Manajer Sumber Daya Manusia (SDM)", "Spesialis Penggajian Senior", "Manajer Administrator Sumber Dayaโ, โAnalis SDMโ, dkk.), kami mengamati bahwa dua pekerjaan yang dihapus adalah di antara 10 prediksi.
Kesimpulan
Dalam posting ini, kami menunjukkan penggunaan encoder teks yang baru didukung di Neptune ML. Encoder teks ini mudah digunakan dan dapat mendukung banyak persyaratan. Kesimpulan,
- text_fasttext direkomendasikan untuk fitur yang menggunakan satu dan hanya satu dari lima bahasa yang didukung text_fasttext.
- text_sbert direkomendasikan untuk teks yang tidak didukung text_fasttext.
- text_word2vec hanya mendukung bahasa Inggris, dan dapat diganti dengan text_fasttext dalam skenario apa pun.
Untuk detail lebih lanjut tentang solusi, lihat GitHub repo. Sebaiknya gunakan encoder teks pada data grafik Anda untuk memenuhi kebutuhan Anda. Anda cukup memilih nama encoder dan mengatur beberapa atribut encoder, sambil menjaga model GNN tidak berubah.
Tentang penulis
Jiani Zhang adalah ilmuwan terapan dari AWS AI Research and Education (AIRE). Dia bekerja untuk memecahkan aplikasi dunia nyata menggunakan algoritme pembelajaran mesin, terutama bahasa alami dan masalah terkait grafik.
- Lanjutan (300)
- AI
- ai seni
- generator seni ai
- punya robot
- Amazon Neptunus
- kecerdasan buatan
- sertifikasi kecerdasan buatan
- kecerdasan buatan dalam perbankan
- robot kecerdasan buatan
- robot kecerdasan buatan
- perangkat lunak kecerdasan buatan
- Pembelajaran Mesin AWS
- blockchain
- konferensi blockchain
- kecerdasan
- kecerdasan buatan percakapan
- konferensi kripto
- dall's
- belajar mendalam
- google itu
- Mesin belajar
- plato
- plato ai
- Kecerdasan Data Plato
- Permainan Plato
- Data Plato
- permainan plato
- skala ai
- sintaksis
- zephyrnet.dll