Doc2Vec adalah algoritma pembelajaran mesin yang menghasilkan vektor dokumen berdimensi tetap dengan memperlakukan ID dokumen sebagai kata khusus selama pelatihan. Algoritma ini secara simultan mempelajari vektor kata dan vektor dokumen, sehingga memungkinkan Anda membandingkan hubungan semantik antar dokumen melalui pengukuran jarak dalam ruang vektor.
Gunakan Doc2Vec ketika Anda perlu:
Memberi peringkat dokumen berdasarkan kemiripannya terhadap dokumen kueri
Membangun sistem rekomendasi konten
Mengelompokkan dokumen berdasarkan topik
Algoritma ini menggunakan tabel kosakata sebagai input dan menghasilkan hingga tiga output: tabel vektor dokumen, tabel vektor kata, dan tabel kosakata opsional.
Batasan
Doc2Vec hanya dapat dijalankan pada sumber daya komputasi MaxCompute.
Konfigurasikan komponen Doc2Vec
Terdapat dua metode konfigurasi: Konsol PAI (Machine Learning Designer) dan perintah PAI melalui skrip SQL.
Konfigurasi di Konsol PAI
Pada halaman pipeline Machine Learning Designer, konfigurasikan komponen Doc2Vec menggunakan parameter yang dijelaskan di bawah ini.
Fields Setting tab
| Parameter | Deskripsi |
|---|---|
| Document ID Column | Nama kolom dokumen yang digunakan untuk pelatihan. |
| Document Content | Kata-kata yang digunakan untuk pelatihan. Pisahkan kata dengan spasi. |
Tab Parameters Setting
| Parameter | Deskripsi |
|---|---|
| Dimensions of Word Features | Jumlah dimensi untuk vektor kata. Nilai valid: 0–1000. Nilai default: 100. |
| Language Model | Model pelatihan. Nilai valid: Skip-gram Model (default) dan CBOW Model. |
| Word Window Size | Ukuran jendela konteks. Harus berupa bilangan bulat positif. Nilai default: 5. |
| Minimum Frequency of Words | Frekuensi minimum kata untuk dimasukkan dalam pelatihan. Kata yang muncul lebih sedikit dari ambang batas ini akan dikecualikan. Harus berupa bilangan bulat positif. Nilai default: 5. |
| Hierarchical Softmax | Apakah akan menggunakan hierarchical softmax untuk optimasi pelatihan. Dipilih secara default. |
| Negative Sampling | Ukuran jendela negative sampling. Harus berupa bilangan bulat positif. Nilai default: 5. Atur ke 0 untuk menonaktifkan negative sampling. |
| Downsampling Threshold | Ambang batas untuk downsampling kata yang sering muncul. Nilai valid: 1e-3 hingga 1e-5. Nilai default: 1e-3. Atur ke 0 untuk menonaktifkan downsampling. |
| Initial Learning Rate | Tingkat pembelajaran awal. Harus lebih besar dari 0. Nilai default: 0,025. |
| Training Iterations | Jumlah iterasi pelatihan. Harus lebih besar dari atau sama dengan 1. Nilai default: 1. |
| Use Random Window | Mode jendela kata. Nilai valid: A Random Value Between 1 to 5 dan Specified by the Window Parameter (default). |
Tab Tuning
| Parameter | Deskripsi |
|---|---|
| Number of Computing Cores | Jumlah core komputasi yang digunakan. Sistem menentukan nilai ini secara otomatis secara default. |
| Memory Size per Core (MB) | Memori yang dialokasikan per core. Sistem menentukan nilai ini secara otomatis secara default. |
Konfigurasi menggunakan perintah PAI
Panggil komponen Doc2Vec dengan perintah PAI. Untuk informasi tentang menjalankan perintah PAI dalam skrip SQL, lihat SQL Script.
Contoh berikut menunjukkan konfigurasi minimal:
PAI -name pai_doc2vec
-project algo_public
-DinputTableName="d2v_input"
-DdocIdColName="docid"
-DdocColName="text_seg"
-DoutputWordTableName="d2v_word_output"
-DoutputDocTableName="d2v_doc_output";Tabel input harus berisi setidaknya dua kolom: kolom ID dokumen (misalnya docid) dan kolom konten dokumen (misalnya text_seg), dengan kata-kata dipisahkan oleh spasi.
Referensi parameter lengkap adalah sebagai berikut.
| Parameter | Wajib | Default | Deskripsi |
|---|---|---|---|
inputTableName | Ya | — | Nama tabel kosakata input. |
inputTablePartitions | Tidak | — | Partisi yang digunakan dari tabel input. Format: partition_name=value. Untuk beberapa partisi, gunakan name1=value1/name2=value2, dan pisahkan set partisi dengan koma (,). |
docIdColName | Ya | — | Nama kolom ID dokumen yang digunakan untuk pelatihan. |
docColName | Ya | — | Nama kolom konten dokumen yang digunakan untuk pelatihan. Kata harus dipisahkan dengan spasi. |
layerSize | Tidak | 100 | Jumlah dimensi untuk vektor kata. Nilai valid: 0–1000. |
cbow | Tidak | 0 | Model pelatihan. 0 = model Skip-gram; 1 = model CBOW. |
window | Tidak | 5 | Ukuran jendela konteks. Harus berupa bilangan bulat positif. |
minCount | Tidak | 5 | Frekuensi minimum kata untuk dimasukkan dalam pelatihan. Harus berupa bilangan bulat positif. |
hs | Tidak | 1 | Apakah akan menggunakan hierarchical softmax. 0 = dinonaktifkan; 1 = diaktifkan. |
negative | Tidak | 5 | Ukuran jendela negative sampling. Harus berupa bilangan bulat positif. Atur ke 0 untuk menonaktifkan negative sampling. |
sample | Tidak | 1e-3 | Ambang batas downsampling untuk kata yang sering muncul. Nilai valid: 1e-3 hingga 1e-5. Atur ke 0 untuk menonaktifkan downsampling. |
alpha | Tidak | 0,025 | Tingkat pembelajaran awal. Harus lebih besar dari 0. |
iterTrain | Tidak | 1 | Jumlah iterasi pelatihan. Harus lebih besar dari atau sama dengan 1. |
randomWindow | Tidak | 1 | Mode jendela kata. 0 = gunakan nilai yang ditentukan oleh window; 1 = gunakan nilai acak dari 1 hingga 5. |
outVocabularyTableName | Tidak | — | Nama tabel kosakata output. |
outputWordTableName | Ya | — | Nama tabel vektor kata output. |
outputDocTableName | Ya | — | Nama tabel vektor dokumen output. |
lifecycle | Tidak | — | Siklus hidup tabel output. Harus berupa bilangan bulat positif. |
coreNum | Tidak | Auto | Jumlah core komputasi. Hanya berlaku jika coreNum dan memSizePerCore keduanya diatur. Harus berupa bilangan bulat positif. |
memSizePerCore | Tidak | Auto | Ukuran memori per core dalam MB. Hanya berlaku jika coreNum dan memSizePerCore keduanya diatur. Harus berupa bilangan bulat positif. |
Referensi
Untuk ikhtisar Machine Learning Designer, lihat Overview of Machine Learning Designer.