PS-SMART Regression adalah algoritma pembelajaran mesin yang menggabungkan parameter server (PS) dengan scalable multiple additive regression tree (SMART). Algoritma ini dirancang untuk melatih model secara efisien pada set data berskala besar. PS-SMART menggunakan arsitektur PS untuk berjalan pada sistem terdistribusi dan mendukung puluhan miliar sampel serta ratusan ribu fitur. Algoritma ini juga memanfaatkan optimisasi iteratif dari gradient boosting decision tree (GBDT) dan teknik seperti aproksimasi histogram untuk meningkatkan kecepatan pelatihan dan efisiensi penggunaan sumber daya.
Batasan
Data masukan untuk komponen PS-SMART Regression harus memenuhi persyaratan berikut:
-
Kolom target hanya mendukung tipe numerik. Jika data dalam tabel MaxCompute bertipe STRING, Anda harus melakukan konversi tipe.
-
Jika data dalam format key-value, ID fitur harus berupa bilangan bulat positif dan nilai fitur harus berupa bilangan real. Jika ID fitur bertipe STRING, Anda dapat menggunakan komponen serialisasi untuk melakukan serialisasi data. Jika nilai fitur berupa string kategorikal, Anda dapat melakukan rekayasa fitur, seperti diskretisasi fitur.
-
Komponen PS-SMART Regression mendukung tugas dengan ratusan ribu fitur, tetapi tugas tersebut mengonsumsi banyak sumber daya dan berjalan lambat. Sebagai alternatif, Anda dapat menggunakan algoritma GBDT untuk pelatihan. Algoritma GBDT cocok untuk pelatihan langsung dengan fitur kontinu. Saat menggunakan algoritma GBDT, Anda dapat menerapkan one-hot encoding pada fitur kategorikal untuk menyaring fitur frekuensi rendah, tetapi hindari melakukan diskretisasi pada fitur numerik kontinu lainnya.
-
Algoritma PS-SMART dapat memperkenalkan keacakan. Misalnya, keacakan dapat terjadi pada sampling data dan fitur, yang direpresentasikan oleh data_sample_ratio dan fea_sample_ratio. Keacakan juga dapat terjadi pada optimisasi aproksimasi histogram yang digunakan algoritma dan keacakan sekuensial saat menggabungkan sketsa lokal menjadi sketsa global. Meskipun struktur pohon mungkin berbeda ketika tugas dijalankan secara terdistribusi di beberapa worker, performa model secara teoretis serupa. Oleh karena itu, wajar jika hasil eksekusi berulang dengan data dan parameter yang sama tidak konsisten.
-
Untuk mempercepat Pelatihan, tingkatkan number of computing cores. Algoritma PS-SMART memulai Pelatihan hanya setelah semua sumber daya yang diminta dialokasikan. Oleh karena itu, jika kluster sedang sibuk, permintaan sumber daya tambahan akan memperpanjang waktu tunggu.
Perhatian
Perhatikan hal-hal berikut saat menggunakan komponen PS-SMART Regression:
-
Komponen PS-SMART Regression mendukung tugas dengan ratusan ribu fitur, tetapi tugas tersebut mengonsumsi banyak sumber daya dan berjalan lambat. Sebagai alternatif, Anda dapat menggunakan algoritma GBDT untuk pelatihan. Algoritma GBDT cocok untuk pelatihan langsung dengan fitur kontinu. Saat menggunakan algoritma GBDT, Anda dapat menerapkan one-hot encoding pada fitur kategorikal untuk menyaring fitur frekuensi rendah, tetapi hindari melakukan diskretisasi pada fitur numerik kontinu lainnya.
-
Algoritma PS-SMART dapat memperkenalkan keacakan. Misalnya, keacakan dapat terjadi pada sampling data dan fitur, yang direpresentasikan oleh data_sample_ratio dan fea_sample_ratio. Keacakan juga dapat terjadi pada optimisasi aproksimasi histogram yang digunakan algoritma dan keacakan sekuensial saat menggabungkan sketsa lokal menjadi sketsa global. Meskipun struktur pohon mungkin berbeda ketika tugas dijalankan secara terdistribusi di beberapa worker, performa model secara teoretis serupa. Oleh karena itu, wajar jika hasil eksekusi berulang dengan data dan parameter yang sama tidak konsisten.
-
Untuk mempercepat pelatihan, Anda dapat meningkatkan number of computing cores. Namun, algoritma PS-SMART baru memulai pelatihan setelah semua sumber daya yang diminta dialokasikan. Oleh karena itu, permintaan sumber daya tambahan saat kluster sedang sibuk akan memperpanjang waktu tunggu.
Konfigurasi komponen
Metode 1: Gunakan antarmuka visual
Anda dapat menambahkan komponen PS-SMART Regression ke kanvas Designer dan mengonfigurasi parameternya di panel sebelah kanan.
|
Parameter type |
Parameter |
Description |
|
Fields setting |
Is sparse format |
Pisahkan key-value pairs dalam format sparse dengan spasi. Pisahkan key dan value dengan tanda titik dua (:). Contoh: 1:0.3 3:0.9. |
|
Select feature columns |
Kolom fitur dari tabel masukan yang digunakan untuk pelatihan. Jika data masukan dalam format dense, Anda hanya dapat memilih kolom bertipe BIGINT atau DOUBLE. Jika data masukan dalam format sparse key-value dan key serta value bertipe numerik, Anda hanya dapat memilih kolom bertipe STRING. |
|
|
Select label column |
Kolom label dari tabel masukan. Tipe STRING dan numerik didukung. Untuk penyimpanan internal, hanya tipe numerik yang didukung, seperti 0 dan 1 untuk klasifikasi biner. |
|
|
Select weight column |
Kolom yang digunakan untuk memberi bobot setiap baris sampel. Hanya tipe numerik yang didukung. |
|
|
Parameters setting |
Objective function type |
Tipe yang didukung adalah:
|
|
Tweedie distribution index |
Parameter ini hanya tersedia ketika Anda mengatur Objective function type ke Tweedie regression. Parameter ini menentukan indeks hubungan antara varians dan rata-rata distribusi Tweedie. |
|
|
Evaluation metric type |
Tipe yang didukung adalah:
|
|
|
Number of trees |
Jumlah pohon. Nilai ini harus berupa bilangan bulat positif. Number of trees berbanding lurus dengan waktu pelatihan. |
|
|
Maximum tree depth |
Nilai default adalah 5, yang berarti maksimal 32 node daun. |
|
|
Data sampling ratio |
Saat setiap pohon dibangun, sebagian data disampling untuk membangun weak learner, yang mempercepat pelatihan. |
|
|
Feature sampling ratio |
Saat setiap pohon dibangun, sebagian fitur disampling untuk membangun weak learner, yang mempercepat pelatihan. |
|
|
L1 penalty coefficient |
Mengontrol ukuran node daun. Semakin besar nilainya, semakin seragam distribusi ukuran node daun. Jika terjadi overfitting, tingkatkan nilai ini. |
|
|
L2 penalty coefficient |
Mengontrol ukuran node daun. Semakin besar nilainya, semakin seragam distribusi ukuran node daun. Jika terjadi overfitting, tingkatkan nilai ini. |
|
|
Learning rate |
Nilai harus berada dalam rentang (0,1). |
|
|
Approximate sketch precision |
Ambang batas kuantil untuk pemisahan saat sketsa dibangun. Semakin kecil nilainya, semakin banyak bucket yang diperoleh. Anda dapat menggunakan nilai default 0.03. |
|
|
Minimum split loss change |
Perubahan loss minimum yang diperlukan untuk memisahkan sebuah node. Semakin besar nilainya, semakin konservatif pemisahannya. |
|
|
Number of features |
Jumlah fitur atau ID fitur maksimum. Jika parameter ini tidak dikonfigurasi saat memperkirakan penggunaan sumber daya, sistem akan menjalankan task SQL untuk menghitung nilai tersebut secara otomatis. |
|
|
Global bias |
Nilai prediksi awal untuk semua sampel. |
|
|
Random number generator seed |
Seed untuk penghasil angka acak. Nilai harus berupa bilangan bulat. |
|
|
Feature importance type |
Tipe yang didukung adalah:
|
|
|
Execution tuning |
Number of cores |
Dialokasikan oleh sistem secara default. |
|
Memory per core (MB) |
Memori yang digunakan oleh satu core, dalam MB. Secara default, sistem mengalokasikan memori secara otomatis. |
Metode 2: Gunakan perintah PAI
Untuk mengonfigurasi parameter komponen PS-SMART Regression, Anda dapat memanggil perintah PAI dari komponen skrip SQL. Untuk informasi selengkapnya, lihat SQL Script.
# Latih model.
PAI -name ps_smart
-project algo_public
-DinputTableName="smart_regression_input"
-DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
-DoutputTableName="pai_temp_24515_545859_2"
-DoutputImportanceTableName="pai_temp_24515_545859_3"
-DlabelColName="label"
-DfeatureColNames="features"
-DenableSparse="true"
-Dobjective="reg:linear"
-Dmetric="rmse"
-DfeatureImportanceType="gain"
-DtreeCount="5"
-DmaxDepth="5"
-Dshrinkage="0.3"
-Dl2="1.0"
-Dl1="0"
-Dlifecycle="3"
-DsketchEps="0.03"
-DsampleRatio="1.0"
-DfeatureRatio="1.0"
-DbaseScore="0.5"
-DminSplitLoss="0"
# Lakukan prediksi.
PAI -name prediction
-project algo_public
-DinputTableName="smart_regression_input";
-DmodelName="xlab_m_pai_ps_smart_bi_545859_v0"
-DoutputTableName="pai_temp_24515_545860_1"
-DfeatureColNames="features"
-DappendColNames="label,features"
-DenableSparse="true"
-Dlifecycle="28"
|
Parameter type |
Parameter |
Required |
Default |
Description |
|
Data parameters |
featureColNames |
Yes |
None |
Kolom fitur dari tabel masukan yang digunakan untuk pelatihan. Jika tabel masukan dalam format dense, Anda hanya dapat memilih kolom bertipe BIGINT atau DOUBLE. Jika tabel masukan dalam format sparse key-value dan key serta value bertipe numerik, Anda hanya dapat memilih kolom bertipe STRING. |
|
labelColName |
Yes |
None |
Kolom label dari tabel masukan. Tipe STRING dan numerik didukung. Untuk penyimpanan internal, hanya tipe numerik yang didukung, seperti 0 dan 1 untuk klasifikasi biner. |
|
|
weightCol |
No |
None |
Kolom yang digunakan untuk memberi bobot setiap baris sampel. Hanya tipe numerik yang didukung. |
|
|
enableSparse |
No |
false |
Menentukan apakah data dalam format sparse. Nilai yang valid adalah {true,false}. Pisahkan key-value pairs dalam format sparse dengan spasi. Pisahkan key dan value dengan tanda titik dua (:). Contoh: 1:0.3 3:0.9. |
|
|
inputTableName |
Yes |
None |
Nama tabel masukan. |
|
|
modelName |
Yes |
None |
Nama model output. |
|
|
outputImportanceTableName |
No |
None |
Nama tabel output yang berisi informasi pentingnya fitur. |
|
|
inputTablePartitions |
No |
None |
Formatnya adalah ds=1/pt=1. |
|
|
outputTableName |
No |
None |
Tabel output di MaxCompute. Datanya dalam format biner. |
|
|
lifecycle |
No |
3 |
Siklus hidup tabel output, dalam hari. |
|
|
Algorithm parameters |
objective |
Yes |
reg:linear |
Tipe fungsi objektif. Tipe yang didukung adalah:
|
|
metric |
No |
None |
Tipe metrik evaluasi untuk set data pelatihan. Output ditulis ke file stdout di area koordinator Logview. Tipe yang didukung adalah:
|
|
|
treeCount |
No |
1 |
Jumlah pohon. Nilai ini berbanding lurus dengan waktu pelatihan. |
|
|
maxDepth |
No |
5 |
Kedalaman maksimum pohon. Nilai harus berada dalam rentang 1 hingga 20. |
|
|
sampleRatio |
No |
1.0 |
Rasio sampling data. Nilai harus berada dalam rentang (0,1]. Nilai 1.0 menunjukkan bahwa tidak ada sampling yang dilakukan. |
|
|
featureRatio |
No |
1.0 |
Rasio sampling fitur. Nilai harus berada dalam rentang (0,1]. Nilai 1.0 menunjukkan bahwa tidak ada sampling yang dilakukan. |
|
|
l1 |
No |
0 |
Koefisien penalti L1. Semakin besar nilainya, semakin seragam distribusi node daun. Jika terjadi overfitting, tingkatkan nilai ini. |
|
|
l2 |
No |
1.0 |
Koefisien penalti L2. Semakin besar nilainya, semakin seragam distribusi node daun. Jika terjadi overfitting, tingkatkan nilai ini. |
|
|
shrinkage |
No |
0.3 |
Tingkat pembelajaran. Nilai harus berada dalam rentang (0,1). |
|
|
sketchEps |
No |
0.03 |
Ambang batas kuantil untuk pemisahan saat sketsa dibangun. Jumlah bucket adalah O(1.0/sketchEps). Semakin kecil nilainya, semakin banyak bucket yang diperoleh. Anda dapat menggunakan nilai default. Nilai harus berada dalam rentang (0,1). |
|
|
minSplitLoss |
No |
0 |
Perubahan loss minimum yang diperlukan untuk memisahkan sebuah node. Semakin besar nilainya, semakin konservatif pemisahannya. |
|
|
featureNum |
No |
None |
Jumlah fitur atau ID fitur maksimum. Jika parameter ini tidak dikonfigurasi saat memperkirakan penggunaan sumber daya, sistem akan menjalankan task SQL untuk menghitung nilai tersebut secara otomatis. |
|
|
baseScore |
No |
0.5 |
Nilai prediksi awal untuk semua sampel. |
|
|
randSeed |
No |
None |
Seed untuk penghasil angka acak. Nilai harus berupa bilangan bulat. |
|
|
featureImportanceType |
No |
gain |
Metode untuk menghitung pentingnya fitur. Termasuk:
|
|
|
tweedieVarPower |
No |
1.5 |
Indeks hubungan antara varians dan rata-rata distribusi Tweedie. |
|
|
Tuning parameters |
coreNum |
No |
System allocated |
Jumlah core. Semakin besar nilainya, semakin cepat algoritma berjalan. |
|
No |
System allocated |
Memori setiap core, dalam MB. |
Contoh
-
Anda dapat menggunakan node ODPS SQL untuk menjalankan pernyataan SQL berikut guna menghasilkan data masukan. Contoh ini menggunakan data dalam format key-value.
drop table if exists smart_regression_input; create table smart_regression_input as select * from ( select 2.0 as label, '1:0.55 2:-0.15 3:0.82 4:-0.99 5:0.17' as features union all select 1.0 as label, '1:-1.26 2:1.36 3:-0.13 4:-2.82 5:-0.41' as features union all select 1.0 as label, '1:-0.77 2:0.91 3:-0.23 4:-4.46 5:0.91' as features union all select 2.0 as label, '1:0.86 2:-0.22 3:-0.46 4:0.08 5:-0.60' as features union all select 1.0 as label, '1:-0.76 2:0.89 3:1.02 4:-0.78 5:-0.86' as features union all select 1.0 as label, '1:2.22 2:-0.46 3:0.49 4:0.31 5:-1.84' as features union all select 0.0 as label, '1:-1.21 2:0.09 3:0.23 4:2.04 5:0.30' as features union all select 1.0 as label, '1:2.17 2:-0.45 3:-1.22 4:-0.48 5:-1.41' as features union all select 0.0 as label, '1:-0.40 2:0.63 3:0.56 4:0.74 5:-1.44' as features union all select 1.0 as label, '1:0.17 2:0.49 3:-1.50 4:-2.20 5:-0.35' as features ) tmp;Data yang dihasilkan ditampilkan di bawah.

-
Buat alur kerja berikut dan jalankan komponennya. Untuk informasi selengkapnya, lihat Algorithm modeling.

-
Di daftar komponen di sebelah kiri kanvas Designer, cari komponen Read Table, PS-SMART Regression, Prediction, dan Write Table, lalu seret ke kanvas.
-
Konfigurasi parameter komponen.
-
Di kanvas, klik komponen Read Table-1. Di tab Select Table di panel kanan, atur Table Name ke smart_regression_input.
-
Di kanvas, klik komponen PS-SMART Regression-1. Di panel sisi kanan, konfigurasikan parameter seperti pada tabel berikut. Gunakan nilai default untuk parameter lainnya.
Parameter type
Parameter
Description
Fields setting
Is sparse format
Pilih kotak centang Is sparse format.
Feature columns
Pilih kolom features.
Label column
Pilih kolom label.
Parameters setting
Objective function type
Atur ke Linear regression.
Evaluation metric type
Pilih rooted mean square error.
Number of trees
Atur ke 5.
-
Di kanvas, klik komponen Prediction-1. Di panel kanan, konfigurasikan parameter seperti pada tabel berikut. Gunakan nilai default untuk parameter yang tersisa.
Parameter type
Parameter
Description
Fields setting
Feature columns
Secara default, semua kolom dipilih. Kolom tambahan tidak memengaruhi hasil prediksi.
Pass-through columns
Pilih kolom label.
Sparse matrix
Pilih kotak centang Sparse matrix.
Key-value separator
Atur ke tanda titik dua (:).
Separator between key-value pairs
Atur ke spasi.
-
Di kanvas, klik komponen Write Table-1. Di panel kanan, pada tab Select Table, atur parameter Table Name for Output ke smart_regression_output.
-
-
Setelah mengonfigurasi parameter, klik tombol run
untuk menjalankan alur kerja.
-
-
Klik kanan komponen Prediction-1 dan pilih .

-
Untuk melihat pentingnya fitur, klik kanan komponen PS-SMART Regression-1 dan pilih dari menu pintasan.

Kolom id menunjukkan nomor urut fitur masukan. Karena data masukan dalam contoh ini dalam format key-value, kolom id merepresentasikan key dalam pasangan kunci-nilai. Tabel pentingnya fitur hanya berisi dua fitur, yang menunjukkan bahwa hanya dua fitur tersebut yang digunakan selama proses pemisahan pohon. Pentingnya fitur untuk fitur lainnya adalah 0. Kolom value menunjukkan tipe pentingnya fitur. Nilai default adalah gain, yaitu jumlah informasi gain yang dikontribusikan fitur tersebut terhadap model.
Petunjuk penerapan model PS-SMART
Untuk menerapkan model yang dihasilkan oleh komponen PS-SMART sebagai layanan online, Anda harus menambahkan komponen General-purpose Model Export di downstream komponen PS-SMART. Anda dapat mengonfigurasi parameter komponen tersebut dengan cara yang sama seperti komponen seri PS lainnya. Untuk informasi selengkapnya, lihat General-purpose Model Export.
Setelah eksekusi berhasil, Anda dapat membuka halaman PAI-EAS Model Online Service untuk menerapkan layanan model. Untuk informasi selengkapnya, lihat Deploy a service in the console.
Referensi
-
Untuk informasi selengkapnya tentang komponen Designer, lihat Designer overview.
-
Designer menyediakan berbagai komponen algoritma. Anda dapat memilih komponen yang sesuai untuk memproses data dalam berbagai skenario. Untuk informasi selengkapnya, lihat Designer component overview.