Algoritma Factorization Machine (FM) adalah model nonlinear yang mempertimbangkan interaksi antarfitur, cocok untuk skenario rekomendasi di e-commerce, periklanan, dan siaran langsung. Platform for AI (PAI) Machine Learning Designer menyediakan templat algoritma FM bawaan yang dapat Anda gunakan untuk membangun model rekomendasi FM berdasarkan kerangka kerja Alink.
Prosedur
Buka halaman Machine Learning Designer.
Masuk ke Konsol PAI.
Di panel navigasi kiri, klik Workspaces. Pada halaman Workspaces, klik nama ruang kerja yang ingin Anda kelola.
Di panel navigasi kiri, pilih .
-
Buat pipeline.
-
Pada halaman Visualized Modeling (Designer), klik tab Preset Templates.
-
Pada tab tersebut, temukan templat [Alink]FM-Embedding for Rec-System lalu klik Create.
-
Pada kotak dialog Create Pipeline, konfigurasikan parameter. Anda dapat menggunakan pengaturan default untuk semua parameter.
Parameter Data Storage menentukan path OSS Bucket untuk menyimpan data sementara dan model yang dihasilkan selama eksekusi pipeline.
-
Klik Confirm.
Pembuatan pipeline memerlukan waktu sekitar 10 detik.
-
Pada tab Pipelines, klik pipeline yang telah dibuat. Di bagian Basic Information di sisi kanan, klik Open.
Pada tab konfigurasi pipeline, Anda dapat melihat pipeline yang telah dibuat pada Kanvas.

Pipeline ini mendukung dua metode pelatihan dan prediksi FM menggunakan algoritma Alink:
-
Metode 1: Gunakan komponen FM Train dan FM Prediction yang telah dikapsulasi untuk melakukan pelatihan dan prediksi FM.
FM Train dan FM Prediction adalah komponen Alink yang ditandai dengan titik ungu dan dapat dijalankan dalam kelompok. Untuk informasi lebih lanjut tentang eksekusi kelompok, lihat Alink component.
-
Metode 2: Gunakan komponen PyAlink untuk melakukan pelatihan dan prediksi FM.
Komponen PyAlink kustom mencapai hasil yang sama seperti Metode 1 melalui kode Python. Untuk daftar operator yang didukung, lihat Overview of Alink.
-
-
-
Konfigurasikan parameter node FM Train-1.
-
Klik node FM Train-1 pada Kanvas.
-
Pada tab Fields Setting di panel kanan, konfigurasikan parameter yang dijelaskan dalam tabel berikut.
Parameter
Deskripsi
Feature Columns
Nama kolom fitur. Data dalam kolom fitur berada dalam format kunci:nilai. Beberapa pasangan kunci-nilai dalam kolom fitur dipisahkan oleh koma (,).
Label column
Nama kolom label. Kolom label harus bertipe data DOUBLE.
Algoritma FM yang disediakan oleh Machine Learning Designer hanya mendukung data dalam format LIBSVM. Anda dapat mengonversi data dari format lain ke format LIBSVM menggunakan komponen one-hot encoding. Untuk informasi lebih lanjut, lihat One-hot encoding. Data masukan harus mencakup kolom fitur dan kolom label, seperti yang ditunjukkan pada gambar berikut.

-
Pada tab Parameters Setting dan Tuning di panel kanan, konfigurasikan parameter pelatihan.
Untuk pipeline dengan 120 juta sampel dan 1,3 juta fitur, gunakan nilai yang direkomendasikan dalam tabel berikut dan pertahankan nilai default untuk parameter lainnya. Sesuaikan nilai-nilai ini berdasarkan volume data Anda.
Tab
Parameter
Deskripsi
Parameters Setting
Learning rate
Tingkat pembelajaran. Nilai yang direkomendasikan: 0,005. Jika pelatihan divergen, atur parameter ini ke nilai yang lebih kecil.
Dimensions
Jumlah dimensi. Nilai yang direkomendasikan: 1,1,16.
Block size
-
Ukuran blok. Jika melibatkan kurang dari dua juta catatan data fitur, kami merekomendasikan Anda mengatur parameter ini ke 1000000.
-
Jika melibatkan dua juta catatan data fitur atau lebih, Anda tidak perlu mengatur parameter ini.
Tuning
Number of Workers
Jumlah node yang akan digunakan. Nilai yang direkomendasikan: 32. Jika melibatkan volume data besar, atur parameter ini ke nilai yang lebih tinggi.
Memory Size per Node (MB)
Ukuran memori yang dialokasikan untuk setiap node. Nilai yang direkomendasikan: 16384. Satuan: MB.
-
-
-
Tulis kode untuk node pelatihan FM PyAlink dan node prediksi FM PyAlink.
-
Tulis kode untuk node pelatihan FM PyAlink.
from pyalink.alink import * def main(sources, sinks, parameter): print('start') # Mode 1 untuk memanggil algoritma Alink. # train = HugeFmTrainBatchOp().setVectorCol('features').setLabelCol('label').linkFrom(sources[0]) # Mode 2 untuk memanggil algoritma Alink. train = HugeFmTrainBatchOp( vectorCol='features', labelCol='label', task='binary_classification', numEpochs=10) # Dapatkan data pelatihan dari port input 0. Model yang telah dilatih dihasilkan dari port output 0 dan diteruskan ke downstream. sources[0].link(train).link(sinks[0]) BatchOperator.execute() print('end') -
Tulis kode untuk node prediksi FM PyAlink.
from pyalink.alink import * def main(sources, sinks, parameter): predictor = HugeFmPredictBatchOp().setPredictionCol("prediction_result")\ .setPredictionDetailCol("prediction_detail").setReservedCols(["label"]) output = predictor.linkFrom(sources[0], sources[1]) # Hasil prediksi dihasilkan dari port output pertama dan diteruskan ke downstream. output.link(sinks[0]) BatchOperator.execute() print('predict end')
-
-
Di pojok kiri atas Kanvas, klik ikon Run.
-
Setelah pipeline dijalankan, klik kanan node Binary Classification Evaluation pada Kanvas lalu pilih Visual Analysis.
Dengan data templat [Alink]FM-Embedding for Rec-System, algoritma FM mencapai luas di bawah kurva (AUC) mendekati 0,92.
-
Laporan evaluasi yang dihasilkan menggunakan Metode 1

-
Laporan evaluasi yang dihasilkan menggunakan Metode 2

-