Topik ini menggunakan dataset publik untuk membantu Anda memulai dengan PAI-Rec. Ikuti langkah-langkah berikut untuk mengonfigurasi fitur-fitur utama—seperti rekayasa fitur, recall, dan peringkat detail halus—untuk algoritma rekomendasi kustom. Setelah itu, Anda dapat menghasilkan kode dan menerapkannya ke alur kerja yang sesuai di DataWorks.
Prasyarat
Sebelum memulai, lengkapi prasyarat berikut:
Aktifkan PAI. Untuk informasi selengkapnya, lihat Aktifkan PAI dan buat ruang kerja default.
Buat virtual private cloud (VPC) dan vSwitch. Untuk informasi selengkapnya, lihat Buat VPC dengan blok CIDR IPv4.
Aktifkan PAI-FeatureStore. Untuk informasi selengkapnya, lihat bagian Prasyarat pada Buat sumber data. Anda tidak perlu mengaktifkan Hologres. Sebagai gantinya, pilih FeatureDB sebagai sumber data. Untuk informasi selengkapnya, lihat Buat online store: FeatureDB.
Aktifkan MaxCompute dan buat proyek MaxCompute bernama project_mc. Untuk informasi selengkapnya, lihat Aktifkan MaxCompute dan Buat proyek MaxCompute.
Buat bucket Object Storage Service (OSS). Untuk informasi selengkapnya, lihat Buat bucket.
Aktifkan DataWorks dan lakukan operasi berikut:
Buat ruang kerja DataWorks. Untuk informasi selengkapnya, lihat Buat ruang kerja.
Beli kelompok sumber daya Serverless untuk DataWorks. Untuk informasi selengkapnya, lihat Gunakan kelompok sumber daya Serverless. Kelompok sumber daya ini digunakan untuk menyinkronkan data ke PAI-FeatureStore dan menjalankan perintah eascmd guna membuat serta memperbarui layanan PAI-EAS.
Konfigurasi sumber data DataWorks:
Buat dan sambungkan sumber data OSS. Untuk informasi selengkapnya, lihat Manajemen Sumber Data.
Buat dan sambungkan sumber data MaxCompute. Untuk informasi selengkapnya, lihat Sambungkan resource komputasi MaxCompute.
Buat proyek FeatureStore dan entitas fitur. Lewati langkah ini jika Anda menggunakan kelompok sumber daya Serverless. Jika Anda menggunakan kelompok sumber daya khusus untuk DataWorks, Anda harus menginstal kit pengembangan perangkat lunak (SDK) Python FeatureStore. Untuk informasi selengkapnya, lihat II. Buat dan daftarkan FeatureStore dan Instal SDK Python FeatureStore.
Aktifkan Flink. Untuk informasi selengkapnya, lihat Aktifkan Realtime Compute for Apache Flink. Catatan: Atur Tipe Penyimpanan ke bucket OSS, bukan Fully Managed Storage. Pastikan bucket OSS untuk Flink sama dengan yang dikonfigurasi untuk PAI-Rec. Flink digunakan untuk mencatat data perilaku pengguna real-time dan menghitung fitur pengguna real-time.
Jika Anda memilih EasyRec (TensorFlow), model dilatih di MaxCompute secara default.
Jika Anda memilih TorchEasyRec (PyTorch), model dilatih di PAI-DLC secara default. Untuk mengunduh data MaxCompute di PAI-DLC, Anda harus mengaktifkan Data Transmission Service. Untuk informasi selengkapnya, lihat Beli dan gunakan kelompok sumber daya khusus untuk Data Transmission Service.
1. Buat instans PAI-Rec dan inisialisasi layanan
Login ke halaman utama Personalized Recommendation Platform dan klik Buy Now.
Pada halaman pembelian instans PAI-Rec, konfigurasikan parameter utama berikut dan klik Buy Now.
Parameter
Deskripsi
Region And Zone
Wilayah tempat layanan cloud Anda diterapkan.
Service Type
Pilih Premium Edition untuk solusi ini.
CatatanDibandingkan Edisi Standar, Edisi Premium menambahkan fitur diagnostik data dan solusi rekomendasi kustom.
Login ke Konsol PAI-Rec. Di bilah menu atas, pilih wilayah.
Di panel navigasi sebelah kiri, pilih Instance List. Klik nama instans untuk masuk ke halaman detail instans.
Di bagian Operation Guide, klik Init. Anda akan diarahkan ke halaman System Configurations > End-to-End Service. Klik Edit, konfigurasikan resource seperti pada tabel berikut, lalu klik Done.
Di panel navigasi sebelah kiri, pilih System Configurations > Permission Management. Pada tab Access Service, periksa status otorisasi setiap produk cloud untuk memastikan akses telah diberikan.
2. Klon dataset publik
1. Sinkronisasi tabel data
Anda dapat menyediakan data masukan untuk solusi ini dengan dua cara:
Klon data untuk jendela waktu tetap dari proyek pai_online_project. Metode ini tidak mendukung penjadwalan tugas rutin.
Gunakan skrip Python untuk menghasilkan data. Anda dapat menjalankan tugas di DataWorks untuk menghasilkan data dalam periode tertentu.
Untuk menjadwalkan pembuatan data harian dan pelatihan model, gunakan metode kedua. Anda harus menerapkan kode Python yang ditentukan untuk menghasilkan data yang diperlukan. Untuk informasi selengkapnya, lihat tab Generate data using code.
Sinkronisasi data untuk jendela waktu tetap
PAI-Rec menyediakan tiga tabel umum untuk algoritma rekomendasi di proyek pai_online_project yang dapat diakses publik:
Tabel pengguna: pai_online_project.rec_sln_demo_user_table
Tabel item: pai_online_project.rec_sln_demo_item_table
Tabel perilaku: pai_online_project.rec_sln_demo_behavior_table
Operasi selanjutnya dalam solusi ini didasarkan pada ketiga tabel tersebut. Datanya dihasilkan dan disimulasikan secara acak serta tidak memiliki makna bisnis nyata. Oleh karena itu, metrik seperti Area Under the Curve (AUC) yang diperoleh dari pelatihan akan rendah. Anda harus menjalankan perintah SQL di DataWorks untuk menyinkronkan data tabel dari proyek pai_online_project ke proyek DataWorks Anda, misalnya DataWorks_a. Prosedurnya sebagai berikut:
Login ke Konsol DataWorks. Di bilah menu atas, pilih wilayah.
Di panel navigasi sebelah kiri, klik Data Development And O&M > Data Development.
Pilih ruang kerja DataWorks yang telah Anda buat dan klik Go To Data Development.
Arahkan kursor ke Create dan pilih Create Node > MaxCompute > ODPS SQL. Konfigurasikan parameter seperti pada tabel berikut dan klik Confirm.
Di bagian node baru, salin dan jalankan kode berikut untuk menyinkronkan tabel pengguna, item, dan perilaku dari proyek pai_online_project ke proyek MaxCompute Anda, misalnya project_mc. Untuk menjalankan kode, Anda harus mengatur variabel untuk menentukan data dari bizdate hingga 100 hari sebelum bizdate. Biasanya, Anda dapat mengatur bizdate ke hari sebelum tanggal saat ini. Konfigurasikan parameter penjadwalan sebagai berikut:
Jalankan kode berikut sekali untuk menyalin data dari proyek publik pai_online_project ke proyek Anda:
CREATE TABLE IF NOT EXISTS rec_sln_demo_user_table_v1(
user_id BIGINT COMMENT 'Unique user ID',
gender STRING COMMENT 'Gender',
age BIGINT COMMENT 'Age',
city STRING COMMENT 'City',
item_cnt BIGINT COMMENT 'Number of created items',
follow_cnt BIGINT COMMENT 'Number of follows',
follower_cnt BIGINT COMMENT 'Number of followers',
register_time BIGINT COMMENT 'Registration time',
tags STRING COMMENT 'User tags'
) PARTITIONED BY (ds STRING) STORED AS ALIORC;
INSERT OVERWRITE TABLE rec_sln_demo_user_table_v1 PARTITION(ds)
SELECT *
FROM pai_online_project.rec_sln_demo_user_table
WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";
CREATE TABLE IF NOT EXISTS rec_sln_demo_item_table_v1(
item_id BIGINT COMMENT 'Item ID',
duration DOUBLE COMMENT 'Video duration',
title STRING COMMENT 'Title',
category STRING COMMENT 'Primary tag',
author BIGINT COMMENT 'Author',
click_count BIGINT COMMENT 'Total clicks',
praise_count BIGINT COMMENT 'Total likes',
pub_time BIGINT COMMENT 'Publication time'
) PARTITIONED BY (ds STRING) STORED AS ALIORC;
INSERT OVERWRITE TABLE rec_sln_demo_item_table_v1 PARTITION(ds)
SELECT *
FROM pai_online_project.rec_sln_demo_item_table
WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";
CREATE TABLE IF NOT EXISTS rec_sln_demo_behavior_table_v1(
request_id STRING COMMENT 'Instrumentation ID/Request ID',
user_id STRING COMMENT 'Unique user ID',
exp_id STRING COMMENT 'Experiment ID',
page STRING COMMENT 'Page',
net_type STRING COMMENT 'Network type',
event_time BIGINT COMMENT 'Behavior time',
item_id STRING COMMENT 'Item ID',
event STRING COMMENT 'Behavior type',
playtime DOUBLE COMMENT 'Playback/Read duration'
) PARTITIONED BY (ds STRING) STORED AS ALIORC;
INSERT OVERWRITE TABLE rec_sln_demo_behavior_table_v1 PARTITION(ds)
SELECT *
FROM pai_online_project.rec_sln_demo_behavior_table
WHERE ds >= "${bizdate_100}" and ds <= "${bizdate}";Generate data using code
Menggunakan data dari jendela waktu tetap tidak mendukung penjadwalan tugas rutin. Untuk menjadwalkan tugas, Anda harus menerapkan kode Python tertentu untuk menghasilkan data yang diperlukan. Prosedurnya sebagai berikut:
Di konsol DataWorks, buat node PyODPS 3. Untuk informasi selengkapnya, lihat Buat dan kelola node MaxCompute.
Unduh create_data.py dan tempel konten file ke dalam node PyODPS 3.
Di panel kanan, klik Scheduling Configurations, konfigurasikan parameter, lalu klik ikon Simpan
dan Submit
di pojok kanan atas.Konfigurasikan parameter penjadwalan:
Catat penggantian variabel:
Ganti $user_table_name dengan rec_sln_demo_user_table.
Ganti $item_table_name dengan rec_sln_demo_item_table.
Ganti $behavior_table_name dengan rec_sln_demo_behavior_table.

Setelah penggantian:

Konfigurasikan dependensi penjadwalan.
Masuk ke Operation Center dan pilih .
Di kolom Actions tugas target, pilih .
Di panel Backfill Data, atur stempel waktu data dan klik Submit And Go.
Rentang waktu backfill yang baik adalah 60 hari. Kami menyarankan agar Anda mengatur stempel waktu data ke
Scheduled Task Date - 60untuk memastikan integritas data.
2. Konfigurasi node dependensi
Untuk memastikan pembuatan dan penerapan kode berjalan lancar, tambahkan tiga node kode SQL ke proyek DataWorks Anda terlebih dahulu. Konfigurasikan dependensi penjadwalan node-node ini ke node root ruang kerja. Setelah semua pengaturan selesai, publikasikan node tersebut. Prosedurnya sebagai berikut:
Arahkan kursor ke Create dan pilih Create Node > General > Virtual Node. Buat tiga node virtual seperti pada tabel berikut dan klik Confirm.

Pilih sebuah node, atur konten node menjadi
select 1;untuk setiap node, lalu klik Scheduling Configurations di panel kanan untuk menyelesaikan konfigurasi:Di bagian Time Property, atur Rerun Property ke Rerun When Succeeded Or Failed.
Di bagian Scheduling Dependencies > Upstream Dependencies, masukkan nama ruang kerja DataWorks, pilih node dengan akhiran _root, lalu klik Add.
Konfigurasikan ketiga node virtual tersebut.

Klik ikon
di depan node virtual untuk mengirimnya.
3. Daftarkan data
Untuk mengonfigurasi rekayasa fitur, recall, dan algoritma pengurutan dalam solusi rekomendasi kustom, Anda harus terlebih dahulu mendaftarkan ketiga tabel yang telah Anda sinkronkan ke proyek DataWorks. Prosedurnya sebagai berikut:
Login ke Konsol PAI-Rec. Di bilah menu atas, pilih wilayah.
Di panel navigasi sebelah kiri, pilih Instance List. Klik nama instans untuk masuk ke halaman detail instans.
Di panel navigasi sebelah kiri, pilih Custom Recommendation Solution > Data Registration. Pada tab MaxCompute Table, klik Add Data Table. Tambahkan satu tabel pengguna, satu tabel item, dan satu tabel perilaku seperti pada tabel berikut, lalu klik Start Import.
Parameter
Deskripsi
Solusi default contoh
MaxCompute project
Pilih proyek MaxCompute yang telah Anda buat.
project_mc
MaxCompute table
Pilih tabel data yang telah Anda sinkronkan ke ruang kerja DataWorks.
User table: rec_sln_demo_user_table_v1
Item table: rec_sln_demo_item_table_v1
Behavior table: rec_sln_demo_behavior_table_v1
Data table name
Masukkan nama kustom.
User Table
Item Table
Behavior Table
4. Buat skenario rekomendasi
Sebelum mengonfigurasi tugas rekomendasi, Anda harus membuat skenario rekomendasi. Untuk informasi tentang konsep dasar skenario rekomendasi dan arti ID trafik, lihat Terms.
Di panel navigasi sebelah kiri, pilih Recommendation Scenarios. Klik Create Scenario, buat skenario rekomendasi seperti pada tabel berikut, lalu klik OK.
5. Buat dan konfigurasi solusi algoritma
Untuk mengonfigurasi skenario dunia nyata yang lengkap, kami merekomendasikan konfigurasi recall dan peringkat detail halus berikut.
Global hot recall: Mengurutkan k item teratas berdasarkan statistik dari data log.
Global hot fallback recall: Menggunakan Redis sebagai cadangan untuk mencegah API rekomendasi mengembalikan data kosong.
Grouped hot recall: Melakukan recall item berdasarkan kategori, seperti kota dan jenis kelamin, untuk membantu meningkatkan akurasi rekomendasi item populer.
etrec u2i recall: Berdasarkan algoritma filtering kolaboratif etrec.
swing u2i recall (opsional): Berdasarkan algoritma Swing.
Cold-start recall (opsional): Menggunakan algoritma DropoutNet untuk cold-start recall.
Fine-grained ranking: Anda dapat memilih MultiTower untuk peringkat tujuan tunggal atau DBMTL untuk peringkat multi-tujuan.
Algoritma recall vektor atau PDN biasanya diaktifkan setelah tahap recall komprehensif. Recall vektor memerlukan mesin recall vektor. Kami tidak mengonfigurasi recall vektor dalam contoh ini karena FeatureDB tidak mendukungnya.
Topik ini dirancang untuk memandu Anda melalui proses konfigurasi dan penerapan. Oleh karena itu, pada tahap konfigurasi recall, kami hanya mengonfigurasi global hot recall dan strategi recall u2i dari RECommender (eTREC, implementasi filtering kolaboratif). Untuk konfigurasi peringkat, kami memilih fine-grained ranking untuk mengoptimalkan pengalaman. Prosedurnya sebagai berikut:
Di panel navigasi sebelah kiri, pilih Custom Recommendation Solution > Solution Configuration. Pilih skenario yang telah Anda buat, klik Create Recommendation Solution, buat solusi seperti pada tabel berikut, lalu klik Save And Configure Algorithm Solution.
Pertahankan nilai default untuk parameter yang tidak dijelaskan. Untuk informasi selengkapnya, lihat Data Table Configuration.
Pada node Data Table Configuration, klik Add di sebelah kanan tabel data target. Konfigurasikan Behavior Log Table, User Table, dan Item Table seperti pada tabel berikut. Atur field partisi, event, fitur, dan stempel waktu, lalu klik Next.
Pertahankan nilai default untuk parameter yang tidak dijelaskan. Untuk informasi selengkapnya, lihat Data Table Configuration.
Pada node Feature Configuration, konfigurasikan parameter seperti pada tabel berikut, klik Generate Features, atur versi fitur, lalu klik Next.
Setelah Anda mengklik Generate Features, berbagai fitur statistik diturunkan untuk pengguna dan item. Dalam solusi ini, kami tidak mengedit fitur yang diturunkan dan mempertahankan pengaturan default. Anda dapat mengedit fitur yang diturunkan sesuai kebutuhan. Untuk informasi selengkapnya, lihat Feature Configuration.
Pada node Recall Configuration, klik Add di sebelah kanan kategori target, konfigurasikan parameter, klik Confirm, lalu klik Next.
Bagian berikut menjelaskan beberapa metode konfigurasi recall. Untuk memandu Anda dengan cepat melalui proses penerapan, Anda dapat hanya mengonfigurasi Global hot recall dan etrec u2i recall. Metode lain, seperti recall vektor dan recall metrik kolaboratif, hanya sebagai referensi.
Pada node Ranking Configuration, klik Add di sebelah Fine-grained Ranking, konfigurasikan parameter seperti pada tabel berikut, klik Confirm, lalu klik Next.
Pada node Generate Script, klik Generate Deployment Script.
PentingSetelah skrip berhasil dihasilkan, sistem menghasilkan alamat OSS seperti pada gambar di atas. Path OSS ini menyimpan semua file yang akan diterapkan. Anda dapat menyimpan alamat ini secara lokal untuk menerapkan skrip secara manual nanti.
Setelah skrip dihasilkan, klik OK di kotak dialog. Anda akan diarahkan ke halaman Custom Recommendation Solution > Deployment Records.
Jika pembuatan gagal, lihat log run, analisis dan selesaikan error spesifik, lalu hasilkan skrip lagi.
6. Terapkan solusi rekomendasi
Setelah skrip dihasilkan, Anda dapat menerapkannya ke DataWorks dengan salah satu dari dua cara berikut.
Metode 1: Terapkan melalui Personalized Recommendation Platform
Klik Go To Deploy di sebelah kanan solusi target.

Pada halaman Deployment Preview, di bagian File Diff, pilih file yang akan diterapkan. Karena ini adalah penerapan pertama, klik Select All lalu klik Deploy To DataWorks.
Halaman secara otomatis kembali ke halaman Deployment Records, yang menunjukkan bahwa penerapan skrip sedang berlangsung.

Tunggu sebentar, lalu klik
untuk merefresh daftar dan memeriksa status penerapan.Jika penerapan gagal, klik View Log di kolom Actions, analisis dan selesaikan error spesifik, lalu hasilkan dan terapkan skrip lagi.
Saat Deployment Status berubah menjadi Success, skrip berhasil diterapkan. Anda dapat masuk ke halaman Data Development ruang kerja DataWorks yang dikonfigurasi untuk solusi ini untuk melihat kode yang telah diterapkan. Untuk informasi selengkapnya, lihat Data development process guide.

Lihat proses pengisian ulang data tugas.
Pada halaman , klik Details di kolom Actions solusi rekomendasi yang berhasil diterapkan.
Pada halaman Deployment Preview, klik View Task Data Backfill Process untuk memahami proses backfill dan instruksi terkait guna memastikan integritas data.
Pastikan partisi tabel pengguna, tabel item, dan tabel perilaku pengguna berisi data untuk n hari terakhir, di mana n adalah jumlah jendela waktu pelatihan dan jendela waktu fitur maksimum. Jika Anda menggunakan data demo dari topik ini, sinkronkan partisi data terbaru. Jika Anda menghasilkan data menggunakan skrip Python, lakukan backfill data di Operation Center DataWorks untuk menghasilkan partisi data terbaru.
Klik Create Deployment Task. Di bawah Backfill Task List, klik Start Tasks Sequentially. Pastikan semua tugas berjalan berhasil. Jika tugas gagal, klik Details untuk melihat informasi log, analisis dan selesaikan error, lalu jalankan ulang tugas tersebut. Setelah berhasil dijalankan ulang, klik Continue di pojok kiri atas halaman hingga semua tugas berhasil.

Metode 2: Terapkan menggunakan Migration Assistant
Setelah skrip berhasil dihasilkan, Anda juga dapat masuk ke konsol DataWorks dan menerapkan skrip secara manual menggunakan fitur Migration Assistant. Parameter utama dijelaskan di bawah ini. Untuk operasi lainnya, lihat Buat dan lihat tugas impor DataWorks.
Import Name: Atur ini sesuai petunjuk di konsol.
Upload Method: Pilih OSS File, masukkan OSS Link, lalu klik Verify.
File penerapan disimpan di alamat OSS yang dihasilkan di Langkah 5, misalnya
oss://examplebucket/algoconfig/plan/1723717372/package.zip. Anda dapat login ke konsol OSS dan ikuti langkah-langkah berikut untuk mendapatkan URL file yang sesuai.
7. Bekukan node
Topik ini menggunakan data demo. Setelah pengisian ulang data selesai, bekukan tugas di Operation Center (ketiga node dari Langkah 2.2) untuk mencegahnya dijadwalkan dan dijalankan setiap hari.
Masuk ke Operation Center DataWorks. Pilih Periodic Task O&M > Periodic Tasks. Cari nama node yang telah Anda buat, misalnya rec_sln_demo_user_table_v1. Pilih node target (Ruang Kerja.Nama Node) dan pilih Pause (Freeze).













