Bagikan melalui


Alokasi Latent Dirichlet

Penting

Dukungan untuk Studio Azure Machine Learning (klasik) akan berakhir pada 31 Agustus 2024. Sebaiknya Anda transisi ke Azure Machine Learning sebelum tanggal tersebut.

Mulai 1 Desember 2021, Anda tidak akan dapat membuat sumber daya Studio Azure Machine Learning (klasik) baru. Hingga 31 Agustus 2024, Anda dapat terus menggunakan sumber daya Pembelajaran Mesin Studio (klasik) yang ada.

ML Dokumentasi Studio (klasik) sedang berhenti dan mungkin tidak diperbarui di masa mendatang.

Gunakan perpustakaan Vowpal Wabbit untuk melakukan VW LDA

Kategori: Analiză text

Catatan

Berlaku untuk: Pembelajaran Mesin Studio (klasik) saja

Modul drag-and-drop serupa tersedia di Azure Machine Learning desainer.

Ringkasan Modul

Artikel ini menjelaskan cara menggunakan modul Alokasi Dirichlet Laten di Pembelajaran Mesin Studio (klasik), untuk mengelompokkan teks yang tidak diklasifikasikan ke dalam sejumlah kategori. Latent Dirichlet Allocation (LDA) sering digunakan dalam pemrosesan bahasa alami (NLP) untuk menemukan teks yang serupa. Istilah umum lainnya adalah pemodelan topik.

Modul ini mengambil kolom teks, dan menghasilkan output ini:

  • Teks sumber, bersama dengan skor untuk setiap kategori

  • Matriks fitur, yang berisi istilah dan koefisien yang diekstraksi untuk setiap kategori

  • Perubahan, yang dapat Anda simpan dan terapkan kembali ke teks baru yang digunakan sebagai input

Karena modul ini menggunakan perpustakaan Vowpal Wabbit, sangat cepat. Untuk informasi lebih lanjut tentang Vowpal Wabbit, lihat repositori GitHub yang mencakup tutorial dan penjelasan tentang algoritma.

Lebih lanjut tentang Alokasi Dirichlet Laten (LDA)

Secara umum, LDA bukanlah metode untuk klasifikasi per se, tetapi menggunakan pendekatan generatif. Apa artinya ini adalah Bahwa Anda tidak perlu memberikan label kelas yang diketahui dan kemudian menyimpulkan pola. Sebaliknya, algoritma menghasilkan model probabilistik yang digunakan untuk mengidentifikasi kelompok topik. Anda dapat menggunakan model probabilistik untuk mengklasifikasikan kasus pelatihan yang ada, atau kasus baru yang Anda berikan ke model sebagai input.

Model generatif dapat lebih disukai karena menghindari membuat asumsi yang kuat tentang hubungan antara teks dan kategori, dan hanya menggunakan distribusi kata-kata untuk model topik secara matematis.

Untuk informasi lebih lanjut, lihat bagian Catatan teknis.

Cara mengonfigurasi Alokasi Dirichlet Laten

Modul ini memerlukan himpunan data yang berisi kolom teks, baik mentah atau pra-proses.

  1. Tambahkan modul Alokasi Dirichlet Laten ke eksperimen Anda.

  2. Sebagai input untuk modul, sediakan himpunan data yang berisi satu atau beberapa kolom teks.

  3. Untuk kolom Target, pilih satu atau beberapa kolom yang berisi teks untuk dianalisis.

    Anda dapat memilih beberapa kolom tetapi harus dari tipe data string.

    Secara umum, karena LDA membuat matriks fitur besar dari teks, Anda biasanya akan menganalisis satu kolom teks.

  4. Untuk Jumlah topik yang akan dimodelkan, ketik bilangan bulat antara 1 dan 1000 yang menunjukkan berapa banyak kategori atau topik yang ingin Anda peroleh dari teks input.

    Secara default, 5 topik dibuat.

  5. Untuk N-gram, tentukan panjang maksimum N-gram yang dihasilkan selama hashing.

    Defaultnya adalah 2, yang berarti bahwa bigram dan unigram dihasilkan.

  6. Pilih opsi Normalisasi untuk mengonversi nilai output menjadi probabilitas. Oleh karena itu, alih-alih mewakili nilai yang diubah sebagai bilangan bulat, nilai dalam himpunan data output dan fitur akan diubah sebagai berikut:

    • Nilai dalam himpunan data akan direpresentasikan sebagai peluang di mana P(topic|document).

    • Nilai dalam matriks topik fitur akan direpresentasikan sebagai peluang di mana P(word|topic).

  7. Pilih opsi, Tampilkan semua opsi, lalu atur ke TRUE jika Anda ingin melihat lalu atur parameter lanjutan tambahan.

    Parameter ini khusus untuk implementasi Vowpal Wabbit LDA. Ada beberapa tutorial bagus tentang LDA di Vowpal Wabbit online, serta Wiki Wabbit Vowpal resmi.

    Lihat contoh ini untuk contoh di versi 8 dan penggunaan VW di Azure ML.

    • Parameter Rho. Berikan peluang sebelumnya untuk ketersebaran distribusi topik. Sesuai dengan parameter VW lda_rho . Anda akan menggunakan nilai 1 jika Anda berharap bahwa distribusi kata-kata datar; Yaitu, semua kata dianggap equiprobable. Jika Anda berpikir sebagian besar kata jarang muncul, Anda mungkin mengaturnya ke nilai yang jauh lebih rendah.

    • Parameter alfa. Tentukan peluang sebelumnya untuk ketersebaran bobot topik per dokumen. Sesuai dengan parameter VW lda_alpha .

    • Estimasi jumlah dokumen. Ketik angka yang mewakili perkiraan terbaik Anda tentang jumlah dokumen (baris) yang akan diproses. Ini memungkinkan modul mengalokasikan tabel hash dengan ukuran yang cukup. Sesuai dengan parameter di lda_D Vowpal Wabbit.

    • Ukuran batch. Ketik angka yang menunjukkan berapa banyak baris yang akan disertakan di setiap batch teks yang dikirim ke Vowpal Wabbit. Sesuai dengan parameter di batch_sz Vowpal Wabbit.

    • Nilai awal perulangan yang digunakan dalam jadwal pembaruan pembelajaran. Tentukan nilai awal untuk tingkat pembelajaran. Sesuai dengan parameter di initial_t Vowpal Wabbit.

    • Daya diterapkan ke perulangan selama pembaruan. Tunjukkan tingkat daya yang diterapkan pada jumlah iterasi selama pembaruan online. Sesuai dengan parameter di power_t Vowpal Wabbit.

    • Jumlah lintasan data. Tentukan berapa kali algoritma akan berputar di atas data. Sesuai dengan parameter di epoch_size Vowpal Wabbit.

  8. Pilih opsi, Buat kamus ngram atau Buat kamus ngram sebelum LDA, jika Anda ingin membuat daftar n-gram dalam pass awal, sebelum mengklasifikasikan teks.

    Jika Anda membuat kamus awal sebelumnya, Anda nantinya dapat menggunakan kamus saat meninjau model. Mampu memetakan hasil ke teks daripada indeks numerik umumnya lebih mudah untuk interpretasi. Namun, menyimpan kamus akan memakan waktu lebih lama dan menggunakan penyimpanan tambahan.

  9. Untuk Ukuran maksimum kamus ngram, ketik jumlah total baris yang dapat dibuat dalam kamus n-gram.

    Opsi ini berguna untuk mengontrol ukuran kamus. Namun, jika jumlah ngram dalam input melebihi ukuran ini, tabrakan dapat terjadi.

  10. Jalankan eksperimen. Modul LDA menggunakan teorema Bayes untuk menentukan topik apa yang mungkin terkait dengan kata-kata individual. Kata-kata tidak secara eksklusif terkait dengan topik atau grup apa pun; Sebaliknya, setiap n-gram memiliki probabilitas belajar dikaitkan dengan salah satu kelas yang ditemukan.

Hasil

Modul ini memiliki dua output:

  • Himpunan data yang diubah: Berisi teks input, dan sejumlah kategori yang ditemukan, bersama dengan skor untuk setiap contoh teks untuk setiap kategori.

  • Matriks topik fitur: Kolom paling kiri berisi fitur teks yang diekstraksi, dan ada kolom untuk setiap kategori yang berisi skor untuk fitur tersebut dalam kategori itu.

Untuk detailnya, lihat Contoh hasil LDA.

Perubahan LDA

Modul ini juga menghasilkan transformasi yang menerapkan LDA ke dataset, sebagai antarmuka ITransform.

Anda dapat menyimpan transformasi ini dan menggunakannya kembali untuk himpunan data lain. Ini mungkin berguna jika Anda telah berlatih pada korpus besar dan ingin menggunakan kembali koefisien atau kategori.

Menyempurnakan model atau hasil LDA

Biasanya Anda tidak dapat membuat model LDA tunggal yang akan memenuhi semua kebutuhan, dan bahkan model yang dirancang untuk satu tugas mungkin memerlukan banyak iterasi untuk meningkatkan akurasi. Sebaiknya coba semua metode ini untuk meningkatkan model Anda:

  • Mengubah parameter model
  • Menggunakan visualisasi untuk memahami hasilnya
  • Mendapatkan umpan balik dari para ahli materi pelajaran untuk memastikan apakah topik yang dihasilkan berguna.

Tindakan kualitatif juga dapat berguna untuk menilai hasilnya. Untuk mengevaluasi hasil pemodelan topik, pertimbangkan:

  • Akurasi - Apakah item serupa benar-benar serupa?
  • Keragaman - Dapatkah model membedakan antara barang-barang serupa bila diperlukan untuk masalah bisnis?
  • Skalabilitas - Apakah itu bekerja pada berbagai kategori teks atau hanya pada domain target yang sempit?

Keakuratan model berdasarkan LDA sering dapat ditingkatkan dengan menggunakan pemrosesan bahasa alami untuk membersihkan, meringkas dan menyederhanakan, atau mengkategorikan teks. Misalnya, teknik berikut, semua didukung dalam Pembelajaran Mesin, dapat meningkatkan akurasi klasifikasi:

  • Menghentikan penghapusan kata

  • Normalisasi kasus

  • Lemmatisasi atau stemming

  • Pengenalan entitas karakter

Untuk informasi selengkapnya, lihat Teks Praproses dan Pengenalan Entitas Bernama.

Di Studio (klasik), Anda juga dapat menggunakan pustaka R atau Python untuk pemrosesan teks: Jalankan Skrip R, Jalankan Skrip Python

Contoh

Untuk contoh analisis teks, lihat eksperimen ini di Galeri AI Azure:

Untuk detail dan contoh berdasarkan teks ulasan pelanggan, lihat Memahami Hasil LDA.

Contoh hasil LDA

Untuk mengilustrasikan cara kerja modul Alokasi Dirichlet Laten, contoh berikut menerapkan LDA dengan pengaturan default ke himpunan data Book Review yang disediakan di Pembelajaran Mesin Studio (klasik).

Himpunan data sumber

Himpunan data berisi kolom peringkat, serta teks komentar lengkap yang disediakan oleh pengguna.

Tabel ini hanya menampilkan beberapa contoh perwakilan.

teks
Buku ini memiliki poin yang bagus. Jika ada, itu membantu Anda memasukkan ke dalam kata-kata apa yang Anda inginkan dari seorang supervisor.
Saya akui, saya belum menyelesaikan buku ini. Seorang teman merekomendasikannya kepada saya karena saya mengalami masalah dengan insomnia ...
Ditulis dengan buruk saya mencoba membaca buku ini tetapi menemukannya begitu turgid dan ditulis dengan buruk sehingga saya meletakkannya dengan frustrasi. ...
Sejak meminjam salinan bertelinga anjing dari teman-teman yang melewatinya sekitar beberapa tahun yang lalu, saya belum bisa mendapatkan buku ini yang menjadi favorit kultus berumur pendek.
Plot buku ini menarik, dan itu bisa menjadi buku yang bagus. Sayangnya, ternyata tidak. Masalah utama bagi saya adalah bahwa ...

Selama pemrosesan, modul Alokasi Dirichlet Laten membersihkan dan menganalisis teks, berdasarkan parameter yang Anda tentukan. Misalnya, ia dapat secara otomatis tokenize teks dan menghapus tanda baca, dan pada saat yang sama menemukan fitur teks untuk setiap topik.

Himpunan data yang diubah LDA

Tabel berikut berisi himpunan data yang diubah , berdasarkan sampel Book Review. Output berisi teks input, dan sejumlah kategori yang ditemukan, bersama dengan skor untuk setiap kategori.

Nama film Topik 1 Topik 2 Topik 3 Topik 4 Topik 5
Buku ini memiliki poin-poin yang baik 0.001652892 0.001652892 0.001652892 0.001652892 0.9933884
Teman merekomendasikannya kepada saya 0.00198019 0.001980198 0.9920791 0.001980198 0.001980198
Mencoba membaca buku ini 0.002469135 0.002469135 0.9901233 0.002469135 0.002469135
Meminjamnya dari teman 0.9901232 0.002469135 0.002469135 0.002469135 0.002469135
Plot buku ini menarik 0.001652892 0.001652892 0.9933884 0.001652892 0.001652892

Dalam contoh ini, kami menggunakan nilai default 5 untuk Jumlah topik untuk dimodelkan. Oleh karena itu, modul LDA membuat lima kategori, yang dapat kita asumsikan akan sesuai kira-kira dengan sistem peringkat lima skala asli.

Modul ini juga menetapkan skor untuk setiap entri untuk masing-masing dari lima kategori yang mewakili topik. Skor menunjukkan probabilitas bahwa baris harus ditetapkan ke kategori tertentu.

Matriks topik fitur

Output kedua dari modul ini adalah matriks topik fitur. Ini adalah himpunan data tabular yang berisi teks featurized, , di kolom Fitur, bersama dengan skor untuk masing-masing kategori, di kolom yang tersisa Topik 1, Topik 2, ... Topik N. Skor mewakili koefisien.

Fitur Topik 1 Topik 2 Topik 3 Topik 4 Topik 5
menarik 0.0240282071983144 0.0354678954779375 0.363051866576914 0.0276637824315893 0.660663576149515
sebelumnya 0.0171478729532397 0.0823969031108669 0.00452966877950789 0.0408714510319233 0.025077322689733
dari 0.0148224220349217 0.0505086981492109 0.00434423322461094 0.0273389126293824 0.0171484355106826
komplot 0.0227415889348212 0.0408709456489325 0.182791041345191 0.086937090812819 1 0.0169680136708971
Membaca 0.0227415889348212 0.0408709456489325 0.182791041345191 0.0869370908128191 0.0169680136708971
Mencoba 0.0269724979147211 0.039026263551767 0.00443749106785087 0.0628829816088284 0.0235340728818033
me 0.0262656945140134 0.0366941302751921 0.00656837975179138 0.0329214576160066 0.0214121851106808
ke 0.0141026103224462 0.043359976919215 0.00388640531859447 0.0305925953440055 0.0228993750526364
it 0.0264490547105951 0.0356674440311847 0.00541759897864314 0.0314539386250293 0.0140606468587681
teman 0.0135971322960941 0.0346118171467234 0.00434999437350706 0.0666507321888536 0.018156863779311
points 0.0227415889348212 0.0396233855719081 0.00404663601474112 0.0381156510019025 0.0337788009496797
Bagus 0.651813073836783 0.0598646397444108 0.00446809691985617 0.0358975694646062 0.0138989124411206
dia 0.0185385588647078 0.144253986783184 0.00408876416453866 0.0583049240441475 0.015442805566858
dari 0.0171416780245647 0.0559361180418586 0.0100633904544953 0.087093930106723 0.0182573833869842
Meminjam 0.0171416780245647 0.0559361180418586 0.0100633904544953 0.087093930106723 0.0182573833869842
Memiliki 0.0171416780245647 0.0559361180418586 0.0100633904544953 0.087093930106723 0.0182573833869842
buku 0.0143157047920681 0.069145948535052 0.184036340170983 0.0548757337823903 0.0156837976985903
disarankan 0.0161486848419689 0.0399143326399534 0.00550113530229642 0.028637149142764 0.0147675139039372
ini 0.0161486848419689 0.0399143326399534 0.00550113530229642 0.028637149142764 0.0147675139039372

Catatan teknis

Bagian ini berisi detail implementasi, tips, dan jawaban atas pertanyaan yang sering diajukan.

Detail implementasi

Secara default, distribusi output untuk dataset yang diubah dan matriks topik fitur dinormalisasi sebagai probabilitas.

  • Himpunan data yang diubah dinormalisasi sebagai peluang kondisional dari topik yang diberikan dokumen. Dalam kasus ini, jumlah setiap baris sama dengan 1.

  • Matriks topik fitur dinormalisasi sebagai peluang kondisional dari kata-kata yang diberikan topik. Dalam kasus ini, jumlah setiap kolom sama dengan 1.

Tip

Kadang-kadang modul mungkin mengembalikan topik kosong, yang paling sering disebabkan oleh inisialisasi pseudo-acak algoritma. Jika ini terjadi, Anda dapat mencoba mengubah parameter terkait, seperti ukuran maksimum kamus N-gram atau jumlah bit yang digunakan untuk hashing fitur.

LDA dan pemodelan topik

Latent Dirichlet Allocation (LDA) sering digunakan untuk pemodelan topik berbasis konten, yang pada dasarnya berarti mempelajari kategori dari teks yang tidak diklasifikasikan. Dalam pemodelan topik berbasis konten, topiknya adalah distribusi melalui kata-kata.

Misalnya, asumsikan bahwa Anda telah memberikan korpus ulasan pelanggan yang mencakup banyak, banyak produk. Teks ulasan yang telah dikirimkan oleh banyak pelanggan dari waktu ke waktu akan berisi banyak istilah, beberapa di antaranya digunakan dalam berbagai topik.

Topik yang diidentifikasi oleh proses LDA mungkin mewakili ulasan untuk Produk A individu, atau mungkin mewakili sekelompok ulasan produk. Bagi LDA, topik itu sendiri hanyalah distribusi peluang dari waktu ke waktu untuk kumpulan kata-kata.

Istilah jarang eksklusif untuk satu produk, tetapi dapat merujuk ke produk lain, atau istilah umum yang berlaku untuk segala sesuatu ("hebat", "mengerikan"). Istilah lain mungkin merupakan kata tidak penting. Namun, penting untuk dipahami bahwa metode LDA tidak dimaksudkan untuk menangkap semua kata di alam semesta, atau untuk memahami bagaimana kata-kata terkait, selain dari probabilitas kejadian bersama. Itu hanya dapat mengelompokkan kata-kata yang digunakan dalam domain target.

Setelah istilah indeks dihitung, baris teks individu dibandingkan menggunakan ukuran kesamaan berbasis jarak, untuk menentukan apakah dua potongan teks saling menyukai. Misalnya, Anda mungkin menemukan bahwa produk memiliki beberapa nama memiliki korelasi yang kuat. Atau, Anda mungkin menemukan bahwa istilah yang sangat negatif biasanya dikaitkan dengan produk tertentu. Anda dapat menggunakan ukuran kesamaan baik untuk mengidentifikasi istilah terkait dan membuat rekomendasi.

Input yang diharapkan

Nama Jenis Deskripsi
Himpunan Data Tabel Data Himpunan data input

Parameter modul

Nama Jenis Rentang Opsional Default Deskripsi
Jumlah bit hash Bilangan bulat [1;31] Berlaku saat kotak centang Perlihatkan semua opsitidak dipilih 12 Jumlah bit yang digunakan untuk hashing fitur
Kolom target Pilihan Kolom Diperlukan StringFeature Nama atau indeks kolom target
Jumlah topik untuk dimodelkan Bilangan bulat [1;1000] Diperlukan 5 Memodelkan distribusi dokumen terhadap topik N
N-gram Bilangan bulat [1;10] Diperlukan 2 Urutan N-grams yang dihasilkan selama hashing
Menormalkan Boolean Diperlukan true Menormalkan output ke peluang. Dataset yang diubah akan menjadi P (topic|document) dan matriks topik fitur akan menjadi P (word|topic).
Lihat semua opsi Boolean True atau False Diperlukan False Menyajikan parameter tambahan khusus untuk Vowpal Wabbit online LDA
Parameter Rho Float [0.00001;1.0] Berlaku saat kotak centang Perlihatkan semua opsi dipilih 0.01 Parameter Rho
Parameter alfa Float [0.00001;1.0] Berlaku saat kotak centang Perlihatkan semua opsi dipilih 0.01 Parameter alfa
Estimasi jumlah dokumen Bilangan bulat [1;int. MaxValue] Berlaku saat kotak centang Perlihatkan semua opsi dipilih 1000 Perkiraan jumlah dokumen (Sesuai dengan parameter lda_D)
Ukuran batch Bilangan bulat [1;1024] Berlaku saat kotak centang Perlihatkan semua opsi dipilih 32 Ukuran batch
Nilai awal perulangan yang digunakan dalam jadwal pembaruan tingkat pembelajaran Bilangan bulat [0;int.MaxValue] Berlaku saat kotak centang Perlihatkan semua opsi dipilih 0 Nilai awal jumlah iterasi yang digunakan dalam jadwal pembaruan tingkat pembelajaran (Sesuai dengan parameter initial_t)
Daya diterapkan ke perulangan selama pembaruan Float [0.0;1.0] Berlaku saat kotak centang Perlihatkan semua opsi dipilih 0.5 Daya yang diterapkan ke jumlah iterasi selama pembaruan online (Sesuai dengan parameter power_t)
Jumlah perulangan pelatihan Bilangan bulat [1;1024] Berlaku saat kotak centang Perlihatkan semua opsi dipilih 25 Jumlah perulangan pelatihan
Menyusun kamus ngram Boolean True atau False Berlaku saat kotak centang Perlihatkan semua opsitidak dipilih True Menyusun kamus ngram sebelum menghitung LDA. Berguna untuk inspeksi dan interpretasi model
Jumlah bit yang digunakan untuk hashing fitur Bilangan bulat [1;31] Berlaku saat opsi Buat kamus ngram adalah False 12 Jumlah bit yang digunakan selama hashing fitur
Ukuran maksimum kamus ngram Bilangan bulat [1;int. MaxValue] Berlaku saat opsi Menyusun kamus ngram adalah True 20000 Ukuran maksimum kamus ngram. Jika jumlah token dalam input melebihi ukuran ini, tabrakan dapat terjadi
Menyusun kamus ngram sebelum LDA Boolean True atau False Berlaku saat kotak centang Perlihatkan semua opsi dipilih True Menyusun kamus ngram sebelum LDA. Berguna untuk inspeksi dan interpretasi model
Jumlah maksimum ngram dalam kamus Bilangan bulat [1;int. MaxValue] Berlaku saat opsi Buat kamus ngram adalah True dan kotak centang Perlihatkan semua opsi dipilih 20000 Ukuran maksimum kamus. Jika jumlah token dalam input melebihi ukuran ini, tabrakan dapat terjadi

Output

Nama Jenis Deskripsi
Mengubah himpunan data Tabel Data Himpunan data output
Matriks topik fitur Tabel Data Matriks topik fitur yang diproduksi oleh LDA
Perubahan LDA Antarmuka ITransform Transformasi yang menerapkan LDA ke himpunan data

Pengecualian

Pengecualian Deskripsi
Kesalahan 0002 Pengecualian terjadi jika satu atau beberapa kolom himpunan data tertentu tidak dapat ditemukan.
Kesalahan 0003 Pengecualian terjadi jika satu atau beberapa input null atau kosong.
Kesalahan 0004 Pengecualian terjadi jika parameter kurang dari atau sama dengan nilai tertentu.
Kesalahan 0017 Pengecualian terjadi jika satu atau beberapa kolom tertentu memiliki jenis yang tidak didukung oleh modul saat ini.

Untuk daftar kesalahan khusus untuk modul Studio (klasik), lihat Pembelajaran Mesin Kode kesalahan.

Untuk daftar pengecualian API, lihat Pembelajaran Mesin Kode Kesalahan REST API.

Lihat juga

Text Analytics
Hashing Fitur
Pengenalan Entitas Bernama
Skor Vowpal Wabbit 7-4 Model
Latih Vowpal Wabbit 7-4 Model
Kereta Vowpal Wabbit 8 Model