全部产品
Search
文档中心

Platform For AI:Buat model rekomendasi berbasis Alink menggunakan algoritma FM

更新时间:Jul 06, 2025

Factorization Machine (FM) adalah model nonlinier yang dirancang untuk menangkap interaksi antar fitur. Model ini ideal untuk skenario rekomendasi seperti e-commerce, periklanan, dan live streaming. Machine Learning Designer menyediakan template berbasis Alink untuk membantu Anda membuat model FM dan menerapkan sistem rekomendasi. Topik ini menjelaskan cara menggunakan template algoritma FM bawaan yang disediakan oleh Machine Learning Designer untuk membangun model rekomendasi Anda.

Prasyarat

  • Ruang kerja telah dibuat. Untuk informasi lebih lanjut, lihat Buat dan Kelola Ruang Kerja.

  • Sumber daya MaxCompute terhubung dengan ruang kerja. Untuk informasi lebih lanjut, lihat Kelola Ruang Kerja.

  • Sumber daya Flink yang dikelola sepenuhnya telah dibeli dan dihubungkan dengan ruang kerja. Untuk informasi lebih lanjut, lihat Kuota Sumber Daya Flink.

Prosedur

  1. Pergi ke halaman Machine Learning Designer.

    1. Masuk ke Konsol PAI.

    2. Di panel navigasi sebelah kiri, klik Workspaces. Pada halaman Workspaces, klik nama ruang kerja yang ingin Anda kelola.

    3. Di panel navigasi sebelah kiri, pilih Model Training > Visualized Modeling (Designer).

  2. Buat pipeline.

    1. Pada halaman Visualized Modeling (Designer), klik tab Preset Templates.

    2. Pada tab ini, temukan template [Alink]FM-Embedding for Rec-System dan klik Create.

    3. Dalam kotak dialog Create Pipeline, konfigurasikan parameter. Anda dapat menggunakan nilai default mereka.

      Nilai yang ditentukan untuk parameter Pipeline Data Path adalah jalur bucket Object Storage Service (OSS) dari data sementara dan model yang dihasilkan selama waktu proses pipeline.

    4. Klik OK.

      Dibutuhkan sekitar 10 detik untuk membuat pipeline.

    5. Pada tab Pipelines, klik pipeline yang telah dibuat. Di bagian Informasi Dasar di sebelah kanan, klik Open.

      Anda dapat melihat pipeline yang telah dibuat pada kanvas, seperti yang ditunjukkan pada gambar berikut.image.png

      Template ini menyediakan dua metode untuk menggunakan Alink dalam pelatihan dan prediksi FM:

      • Metode 1: Gunakan komponen Alink yang terenkapsulasi

        Alink menyediakan komponen terenkapsulasi untuk pelatihan dan prediksi FM, yang ditandai dengan titik ungu dalam pipeline. Komponen Alink dapat berjalan dalam grup. Untuk informasi tentang cara menjalankan komponen Alink dalam grup dan kelebihan serta kekurangannya, lihat Komponen Alink.

      • Metode 2: Gunakan komponen PyAlink kustom

        Anda dapat menggunakan komponen PyAlink kustom untuk melakukan pelatihan dan prediksi FM menggunakan kode Python. Metode ini mengimplementasikan fungsi yang sama dengan Metode 1.

  3. Atur parameter untuk komponen FM Training-1.

    1. Klik komponen FM Training -1 pada kanvas.

    2. Pada tab Fields Setting di panel sebelah kanan, atur bidang yang tercantum dalam tabel berikut.

      Bidang

      Deskripsi

      Feature Columns

      Nama kolom fitur dalam format key:value. Pisahkan beberapa pasangan key-value dengan koma (,).

      Label Column

      Nama kolom label. Kolom label harus bertipe data DOUBLE.

      Algoritma FM yang disediakan oleh Machine Learning Designer memerlukan data dalam format LIBSVM. Untuk mengonversi data dari format lain ke LIBSVM, gunakan komponen one-hot encoding dan pastikan bahwa data input mencakup kolom fitur dan kolom label, seperti yang ditunjukkan pada gambar berikut.image.png

    3. Pada tab Parameters Setting dan Tuning di panel sebelah kanan, konfigurasikan parameter pelatihan.

      Sebagai contoh, jika pipeline melibatkan 120 juta rekaman data sampel dan 1,3 juta rekaman data fitur, kami sarankan Anda menetapkan parameter pelatihan ke nilai yang direkomendasikan dalam tabel berikut, dan menggunakan nilai default untuk parameter lainnya. Anda dapat memodifikasi nilai parameter pelatihan berdasarkan jumlah data yang terlibat.

      Tab

      Bidang

      Deskripsi

      Parameters Setting

      Learning rate

      Tingkat pembelajaran. Nilai yang direkomendasikan: 0,005. Jika pelatihan divergen, tetapkan parameter ini ke nilai yang lebih kecil.

      Dimensions

      Dimensi fitur yang ditentukan dalam array tiga elemen. Nilai yang direkomendasikan: 1,1,16.

      Block size

      • Ukuran blok. Jika kurang dari dua juta rekaman data fitur terlibat, kami sarankan Anda menetapkan parameter ini ke 1000000.

      • Jika dua juta rekaman data fitur atau lebih terlibat, Anda tidak perlu mengonfigurasi parameter ini.

      Tuning

      Number of Workers

      Jumlah worker yang akan digunakan. Nilai yang direkomendasikan: 32. Jika sejumlah besar data terlibat, tetapkan parameter ini ke nilai yang lebih besar.

      Memory Size per Node (MB)

      Ukuran memori yang dialokasikan untuk setiap node. Nilai yang direkomendasikan: 16384. Satuan: MB.

  4. Tambahkan kode ke komponen PyAlink-FM Training dan PyAlink-FM Prediction.

    • Klik komponen PyAlink-FM Training dan tempelkan kode berikut ke Editor Kode.image.png

      from pyalink.alink import *
      
      def main(sources, sinks, parameter):
          print('start')
          # Metode 1 
          # train = EnormousFmTrainBatchOp().setVectorCol('features').setLabelCol('label').linkFrom(sources[0])
          # Metode 2 
          train = EnormousFmTrainBatchOp(
              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 hilir. 
          sources[0].link(train).link(sinks[0])
          BatchOperator.execute()
          print('end')
                                  
    • Klik komponen PyAlink-FM Prediction dan tempelkan kode berikut ke Editor Kode. image.png

      from pyalink.alink import *
      
      def main(sources, sinks, parameter):
          predictor = EnormousFmPredictBatchOp().setPredictionCol("prediction_result")\
          .setPredictionDetailCol("prediction_detail").setReservedCols(["label"])
          output = predictor.linkFrom(sources[0], sources[1])
          # Hasil prediksi dihasilkan dari port keluaran pertama dan dilewatkan ke hilir.
          output.link(sinks[0])
          BatchOperator.execute()
          print('prediksi selesai')
                                  
  5. Atur sumber daya komputasi yang digunakan untuk eksekusi algoritma.

    1. Klik area kosong pada kanvas. Pada tab Pipeline Attributes di panel sebelah kanan, pilih Flink dari daftar drop-down Default Resource Preferred by Alink or FlinkML.

    2. Pada kanvas, klik komponen PyAlink-FM Training dan komponen PyAlink-FM Prediction secara bergantian, dan modifikasi parameter berikut pada tab Tuning di panel sebelah kanan.

      1. Choose Running Mode: Pilih Flink (Distributed).

      2. The number of workers: Pilih 2.

    3. Di sudut kiri atas kanvas, klik Save.

  6. Di sudut kiri atas kanvas, klik ikon Run image.png untuk menjalankan pipeline.

  7. Setelah pipeline dijalankan, klik kanan komponen Binary Classification Evaluation-1 pada kanvas dan pilih Visual Analysis.

    Berdasarkan data template yang digunakan, algoritma FM yang disediakan oleh Machine Learning Designer dapat membuat model dengan luas di bawah kurva (AUC) mendekati 0,92.

    • Grafik evaluasi yang dihasilkan menggunakan Metode 1评估图表

    • Grafik evaluasi yang dihasilkan menggunakan Metode 2 评估图表

Referensi

Untuk informasi lebih lanjut tentang komponen algoritma, lihat topik-topik berikut: