全部产品
Search
文档中心

PolarDB:BST algoritma

更新时间:Nov 09, 2025

Algoritma Behavior Sequence Transformer (BST) menggunakan Kerangka Transformer yang kuat untuk menangkap informasi deret waktu jangka panjang dari urutan perilaku pengguna. BST dapat mengekstrak fitur implisit dari urutan perilaku dan membuat prediksi, memberikan manfaat signifikan dalam skenario bisnis terkait urutan perilaku seperti Sistem rekomendasi dan penambangan nilai siklus hidup pengguna.

Skenario

Algoritma BST dirancang untuk mendukung berbagai tugas prediksi, termasuk klasifikasi dan regresi.

  • Data input algoritma BST adalah urutan perilaku dengan fitur deret waktu. Data ini disimpan dalam format LONGTEXT di database, misalnya perilaku klik pengguna selama tujuh hari sebelumnya.

  • Output algoritma BST adalah prediksi berupa bilangan bulat atau bilangan titik mengambang, seperti jumlah yang diperkirakan dibayar oleh pengguna, churn pengguna, atau status pembayaran.

  • Contoh skenario klasifikasi:

    Prediksi jumlah pengguna baru yang membayar serta potensi churn pengguna rutin dan pengguna dengan pembayaran tinggi dalam skenario permainan. Sebagai contoh, perilaku dalam game dari pengguna yang membayar selama 14 hari sebelumnya dalam skenario operasi game digunakan sebagai input urutan perilaku algoritma BST. Algoritma BST mengekstrak fitur relevan dari urutan perilaku untuk memprediksi potensi churn dalam 14 hari berikutnya. Pengguna dianggap telah churn jika tidak masuk selama 14 hari berturut-turut.

  • Contoh skenario regresi:

    Prediksi total pengeluaran pengguna baru dalam skenario permainan. Sebagai contoh, perilaku dalam game dari pengguna baru dalam 24 jam pertama dalam skenario operasi game digunakan sebagai input urutan perilaku algoritma BST. Algoritma BST mengekstrak fitur relevan dari urutan perilaku untuk memprediksi total pengeluaran pengguna baru dalam tujuh hari berikutnya.

Batasan

Algoritma BST bekerja efektif ketika data input memiliki distribusi kelas yang seimbang. Jika data input tidak seimbang, seperti ketika kelas mayoritas memiliki lebih dari 20 kali jumlah sampel dari kelas minoritas, disarankan untuk menggunakan algoritma pengelompokan K-means yang disediakan di PolarDB untuk AI guna memproses kelas yang tidak seimbang, seperti kelompok non-pembayar, dan menyediakan distribusi data keseluruhan yang seimbang di seluruh kelas. Untuk informasi lebih lanjut, lihat algoritma pengelompokan K-means.

Format tabel data untuk pembuatan model algoritma

Kolom

Diperlukan

Tipe data

Deskripsi

Contoh

uid

Ya

VARCHAR

ID setiap entri data, seperti ID pengguna atau ID produk.

253460731706911258

event_list

Ya

LONGTEXT

Urutan perilaku untuk pembuatan model. Setiap perilaku dalam urutan direpresentasikan oleh ID integer unik. Perilaku dalam urutan dipisahkan oleh koma (,) dan diurutkan berdasarkan timestamp mereka secara menaik.

"[183, 238, 153, 152]"

target

Ya

INT, FLOAT, dan DOUBLE

Label yang mengukur metrik model algoritma.

0

val_row

Tidak

INT

Untuk mencegah model overfitting, Anda dapat menentukan set validasi. Nilai valid:

  • 0: melabeli baris sebagai data pembuatan model.

  • 1: melabeli baris sebagai data validasi model.

Catatan

Dalam kebanyakan kasus, parameter ini digunakan bersama dengan parameter pembuatan model version dan val_flag.

  • Ketika parameter version diatur ke 1 dan parameter val_flag diatur ke 1, parameter val_row berlaku.

  • Ketika parameter val_flag diatur ke 0 dan Anda sebelumnya mendefinisikan parameter val_row, hanya data yang ditandai sebagai val_row=0 yang digunakan sebagai data pembuatan model.

1

other_feature

Tidak

INT, FLOAT, DOUBLE, dan LONGTEXT

Fitur lain dari model. Untuk menggunakan fitur, sertakan nama kolom fitur dalam parameter pembuatan model x_value_cols dan x_statics_cols.

Catatan
  • Jika tipe data kolom other_feature adalah LONGTEXT, Anda dapat menyimpan berbagai format data teks di kolom tersebut, termasuk string JSON, daftar, atau string yang dipisahkan oleh koma (,).

  • Anda dapat menentukan beberapa parameter other_feature, seperti other_feature1 dan other_feature2.

2

val_x_cols

Tidak

LONGTEXT

Urutan perilaku untuk validasi model dan penyetelan parameter. Setiap perilaku dalam urutan direpresentasikan oleh ID integer unik. Perilaku dalam urutan dipisahkan oleh koma (,) dan diurutkan berdasarkan timestamp mereka secara menaik.

Catatan

Parameter ini hanya berlaku jika Anda mengatur parameter version ke 0. Untuk informasi lebih lanjut, lihat deskripsi parameter version dalam topik ini.

"[183, 238, 153, 152]"

val_y_cols

Tidak

INT, FLOAT, dan DOUBLE

Label dari urutan perilaku yang digunakan untuk menyetel parameter.

Catatan

Parameter ini hanya berlaku jika Anda mengatur parameter version ke 0. Untuk informasi lebih lanjut, lihat deskripsi parameter version dalam topik ini.

1

Anda dapat menjalankan pernyataan CREATE MODEL untuk membuat model algoritma. Tabel berikut menjelaskan opsi konfigurasi untuk parameter model_parameter dalam pernyataan CREATE MODEL.

Parameter

Deskripsi

version

Versi model. Kami sarankan Anda menentukan versi baru. Nilai valid:

  • 0 (default): versi lama.

  • 1: versi baru.

Catatan

Dalam versi lama, parameter val_x_cols dan val_y_cols berlaku dan parameter val_row tidak berlaku untuk pembuatan tabel data model. Tugas klasifikasi multi-kelas dan fitur fusi/penumpukan model tidak didukung.

model_task_type

Tipe tugas. Nilai valid:

  • klasifikasi (default).

  • regresi.

  • multi_classification.

num_classes

Jumlah kelas yang diprediksi dalam tugas klasifikasi multi-kelas. Nilai default: 2. Untuk menggunakan parameter ini, pastikan label adalah bilangan bulat berturut-turut mulai dari 0. Jumlah label unik dalam dataset Anda tidak boleh melebihi nilai parameter ini.

Contoh: Jika Anda mengatur num_classes ke 3, label valid adalah {0, 1, 2}.

batch_size

Ukuran batch. Ukuran batch kecil dapat meningkatkan risiko overfitting dalam model. Nilai default: 16.

window_size

Digunakan untuk penyandian tertanam ID perilaku. Nilainya harus lebih besar dari atau sama dengan nilai maksimum ID perilaku ditambah satu. Jika tidak, terjadi kesalahan parsing.

sequence_length

Panjang urutan perilaku yang terlibat dalam perhitungan model algoritma. Nilainya tidak boleh melebihi 3000. Jika parameter window_size lebih besar dari 900, jangan atur parameter sequence_length ke nilai yang terlalu besar.

success_id

ID perilaku yang diprediksi oleh model.

max_epoch

Jumlah maksimum iterasi. Nilai default: 1.

learning_rate

Tingkat pembelajaran. Nilai default: 0.0002.

loss

Fungsi loss. Nilai valid:

  • CrossEntropyLoss (default): digunakan untuk masalah klasifikasi biner.

  • mse: digunakan untuk tugas regresi.

  • mae: digunakan untuk tugas regresi.

  • msle: digunakan untuk tugas regresi.

val_flag

Menentukan apakah akan melakukan validasi setelah setiap iterasi model. Nilai valid:

  • 0 (default): tidak melakukan validasi setelah setiap iterasi model. Anda tidak perlu menentukan parameter val_metric dan menentukan parameter val_row dalam tabel data pembuatan model. Model algoritma dari putaran terakhir disimpan.

  • 1: melakukan validasi setelah setiap iterasi model. Anda harus menentukan parameter val_metric dan menentukan parameter val_row dalam tabel data pembuatan model. Model algoritma dengan kinerja terbaik berdasarkan metrik validasi disimpan.

val_metric

Metrik yang digunakan untuk validasi. Nilai valid:

  • loss (default): metrik yang sama dengan metrik loss selama pembuatan model. Metrik ini dapat digunakan untuk klasifikasi, klasifikasi multi-kelas, dan tugas regresi.

  • f1score: rata-rata harmonik Presisi dan Recall. Metrik ini dapat digunakan untuk tugas klasifikasi dan klasifikasi multi-kelas.

  • r2_score: koefisien determinasi. Metrik ini dapat digunakan untuk tugas regresi.

  • mse: kesalahan kuadrat rata-rata. Metrik ini dapat digunakan untuk tugas regresi.

  • mape: kesalahan persentase absolut rata-rata. Metrik ini dapat digunakan untuk tugas regresi.

  • mape_plus: varian MAPE yang hanya mengukur kesalahan label positif. Metrik ini dapat digunakan untuk tugas regresi.

auto_data_statics

Menentukan apakah akan secara otomatis menghasilkan fitur statistik. Nilai valid:

  • on: menghitung kemunculan ID dalam urutan dan menghasilkan fitur statistik.

  • off (default): tidak menghitung kemunculan ID dalam urutan.

auto_heads

Menentukan apakah akan secara otomatis menentukan jumlah header multi-perhatian. Nilai valid:

  • 1 (default): secara otomatis menentukan jumlah header multi-perhatian.

  • 0: secara manual menentukan jumlah header multi-perhatian.

Catatan
  • Jika Anda mengatur parameter ini ke 1, risiko memori video yang tidak mencukupi mungkin terjadi.

  • Pastikan hasil perhitungan dari int ( sqrt \{window\_size \} ) + int ( sqrt\{sequence\_length\}) +2 bukan bilangan prima.

num_heads

Jika Anda mengatur parameter auto_heads ke 0, Anda harus menentukan parameter ini. Nilai default: 4.

x_value_cols

Menentukan kolom tertentu sebagai fitur diskrit numerik. Nilainya tidak boleh kosong.

Catatan
  • Contoh: Jika Anda menentukan x_value_cols='num_events, max_level, max_viplevel', kolom num_events, max_level, dan max_viplevel digunakan sebagai fitur diskrit numerik.

  • Nilai di setiap kolom harus berupa bilangan bulat atau bilangan titik mengambang.

x_statics_cols

Menentukan kolom tertentu sebagai fitur statistik. Nilainya tidak boleh kosong. Panjang data di setiap baris kolom yang ditentukan tetap.

Catatan
  • Contoh: Jika Anda menentukan x_statics_cols='stats_item_list, stats_event_list', kolom stats_item_list dan stats_event_list digunakan sebagai fitur statistik.

  • Tipe data setiap kolom adalah LONGTEXT. Anda dapat menyimpan berbagai format data teks dalam kolom LONGTEXT, termasuk string JSON, daftar, atau string yang dipisahkan oleh koma (,). Dalam string JSON, nilai dalam pasangan key-value digunakan sebagai fitur statistik. Contoh: {"money":30,"level":21}. Dalam daftar atau string yang dipisahkan oleh koma (,), nilai harus bertipe INT atau FLOAT. Contoh:

    • stats_event_list="[1,2,4,23,2]".

    • stats_item_list="232,23123,232,2".

x_seq_cols

Menentukan kolom tertentu sebagai fitur urutan.

Catatan
  • Contoh: x_seq_cols='event_list'.

  • Tipe data setiap kolom adalah LONGTEXT. Anda dapat menyimpan berbagai format data teks dalam kolom LONGTEXT, termasuk daftar atau string yang dipisahkan oleh koma (,). Contoh: "[183, 238, 153, 152]".

data_normalization

Menentukan apakah akan menormalisasi data di kolom yang ditentukan oleh parameter x_value_cols. Nilai valid:

  • 0 (default): tidak melakukan operasi normalisasi.

  • 1: melakukan operasi normalisasi.

remove_seq_adjacent_duplicates

Menentukan apakah akan menghapus nilai duplikat berdekatan dari kolom yang ditentukan oleh parameter x_seq_cols. Nilai valid:

  • off (default)

  • on

stacking

Menentukan apakah akan melakukan fusi model BST. Parameter ini hanya berlaku jika Anda mengatur model_task_type ke klasifikasi.

  • off (default)

  • on

stacking_model

Model yang termasuk dalam proses fusi. Parameter ini hanya berlaku jika Anda mengatur stacking ke on. Model yang valid adalah bst, gbdt, svc, dan rt. Nilai default: gbdt, svc, dan rt.

Format tabel data untuk evaluasi model algoritma

Kolom

Diperlukan

Tipe data

Deskripsi

Contoh

uid

Ya

VARCHAR(255)

ID setiap entri data, seperti ID pengguna atau ID produk.

123213

event_list

Ya

LONGTEXT

Urutan perilaku untuk pembuatan model. Setiap perilaku dalam urutan direpresentasikan oleh ID integer unik. Perilaku dalam urutan dipisahkan oleh koma (,) dan diurutkan berdasarkan timestamp mereka secara menaik.

"[183, 238, 153, 152]"

target

Ya

INT, FLOAT, dan DOUBLE

Label sampel yang digunakan untuk menghitung kesalahan model algoritma.

0

other_feature

Tidak

INT, FLOAT, DOUBLE, dan LONGTEXT

Fitur lain dari model, yang sama dengan yang ada di tabel data pembuatan model. Untuk menggunakan fitur, sertakan nama kolom fitur dalam parameter pembuatan model x_value_cols dan x_statics_cols.

Catatan
  • Jika tipe data kolom other_feature adalah LONGTEXT, Anda dapat menyimpan berbagai format data teks di kolom tersebut, termasuk string JSON, daftar, atau string yang dipisahkan oleh koma (,).

  • Anda dapat menentukan beberapa parameter other_feature, seperti other_feature1 dan other_feature2.

2

Anda dapat menjalankan pernyataan EVALUATE untuk mengevaluasi model algoritma. Tabel berikut menjelaskan opsi konfigurasi untuk parameter metrics dalam pernyataan EVALUATE.

Parameter

Deskripsi

metrics

Metrik yang digunakan untuk validasi. Nilai valid:

  • acc: akurasi. Metrik ini dapat digunakan untuk tugas klasifikasi dan klasifikasi multi-kelas.

  • auc: area di bawah kurva ROC. Metrik ini dapat digunakan untuk tugas klasifikasi dan klasifikasi multi-kelas.

  • Fscore: rata-rata harmonik Presisi dan Recall. Metrik ini dapat digunakan untuk tugas klasifikasi dan klasifikasi multi-kelas.

  • r2_score: koefisien determinasi. Metrik ini dapat digunakan untuk tugas regresi.

  • mse: kesalahan kuadrat rata-rata. Metrik ini dapat digunakan untuk tugas regresi.

  • mape: kesalahan persentase absolut rata-rata. Metrik ini dapat digunakan untuk tugas regresi.

  • mape_plus: varian MAPE yang hanya mengukur kesalahan label positif. Metrik ini dapat digunakan untuk tugas regresi.

Format tabel data untuk prediksi model algoritma

Kolom

Diperlukan

Tipe data

Deskripsi

Contoh

uid

Ya

VARCHAR(255)

ID setiap entri data, seperti ID pengguna atau ID produk.

123213

event_list

Ya

LONGTEXT

Urutan perilaku untuk pembuatan model. Setiap perilaku dalam urutan direpresentasikan oleh ID integer unik. Perilaku dalam urutan dipisahkan oleh koma (,) dan diurutkan berdasarkan timestamp mereka secara menaik.

"[183, 238, 153, 152]"

other_feature

Tidak

INT, FLOAT, DOUBLE, dan LONGTEXT

Fitur lain dari model, yang sama dengan yang ada di tabel data pembuatan model. Untuk menggunakan fitur, sertakan nama kolom fitur dalam parameter pembuatan model x_value_cols dan x_statics_cols.

Catatan
  • Jika tipe data kolom other_feature adalah LONGTEXT, Anda dapat menyimpan berbagai format data teks di kolom tersebut, termasuk string JSON, daftar, atau string yang dipisahkan oleh koma (,).

  • Anda dapat menentukan beberapa parameter other_feature, seperti other_feature1 dan other_feature2.

2

Contoh

Catatan

Tugas klasifikasi digunakan dalam contoh-contoh berikut. Untuk informasi lebih lanjut tentang jenis tugas, lihat deskripsi parameter model_task_type dalam topik ini.

Buat model BST

/*polar4ai*/CREATE MODEL sequential_bst WITH (
model_class = 'bst', 
x_cols = 'event_list,other_feature1', 
y_cols='target',
model_parameter=(
  batch_size=128,
   window_size=900, 
   sequence_length=3000, 
   success_id=900, 
   max_epoch=2, 
   learning_rate=0.0008, 
   val_flag=1, 
   x_seq_cols='event_list', 
   x_value_cols='other_feature1', 
   val_metric='f1score', 
   auto_data_statics='on', 
   data_normalization=1, 
   remove_seq_adjacent_duplicates='on', 
   version=1)) AS (SELECT * FROM seqential_train);
Catatan

sequential_train adalah nama tabel data sampel yang digunakan untuk pembuatan model algoritma.

Evaluasi model

/*polar4ai*/SELECT uid,target FROM evaluate(MODEL sequential_bst,
SELECT * FROM seqential_eval) WITH 
(x_cols = 'event_list,other_feature1', y_cols='target', metrics='Fscore');
Catatan

sequential_eval adalah nama tabel data sampel untuk evaluasi model algoritma.

Buat prediksi menggunakan model

/*polar4ai*/SELECT uid,target FROM PREDICT(MODEL sequential_bst, SELECT * FROM seqential_test) WITH 
(x_cols= 'event_list,other_feature1',mode='async');
Catatan

seqential_test adalah nama tabel data sampel untuk prediksi model algoritma.