Panduan ini menggunakan dataset publik untuk memandu Anda melalui konfigurasi rekayasa fitur, recall, dan ranking detail halus di PAI-Rec, lalu menerapkan kode yang dihasilkan ke DataWorks. Pendekatan modular memungkinkan Anda menerbitkan atau membatalkan penerbitan fungsi individual tanpa memengaruhi sisa pipeline.
Mengapa memodularisasi kustomisasi solusi rekomendasi?
Kelompok fitur menyederhanakan iterasi model.
Penerbitan satu klik menerapkan kode dan memulai pengisian ulang data secara otomatis.
Hanya modul ranking yang sepenuhnya melakukan backfill semua komponen yang diperlukan (kelompok fitur, sampel, dan modul pembangkit fitur), sehingga mengurangi pekerjaan ulang akibat kesalahan rekayasa fitur.
Prasyarat
Lakukan persiapan berikut sebelum memulai:
Buat bucket di OSS.
Buat VPC dan vSwitch. Bangun VPC dengan Blok CIDR IPv4.
Aktifkan PAI-FeatureStore (lihat bagian Prasyarat di Buat Sumber Data). Jangan aktifkan Hologres. Pilih FeatureDB sebagai sumber data Anda (Buat Sumber Data Online: FeatureDB).
Aktifkan MaxCompute dan Buat proyek MaxCompute bernama
project_mc.Aktifkan DataWorks dan lakukan operasi berikut:
Buat ruang kerja di DataWorks.
Beli kelompok sumber daya Serverless (Gunakan kelompok sumber daya Serverless). Kelompok sumber daya ini menyinkronkan data untuk PAI-FeatureStore dan menjalankan perintah
eascmduntuk membuat dan memperbarui layanan PAI-EAS.Konfigurasi sumber data DataWorks:
Buat dan bind sumber data OSS (Manajemen Sumber Data).
Buat dan bind sumber data MaxCompute (Bind sumber daya komputasi MaxCompute).
Buat proyek FeatureStore dan entitas fitur (Langkah 2: Buat dan daftarkan FeatureStore). Lewati langkah ini jika Anda menggunakan kelompok sumber daya Serverless. Jika Anda menggunakan kelompok sumber daya khusus, instal SDK Python FeatureStore pada kelompok sumber daya tersebut (Instal SDK Python FeatureStore).
Aktifkan Realtime Compute for Apache Flink. Untuk Jenis penyimpanan, pilih OSS bucket (bukan Fully managed storage). Bucket OSS harus sesuai dengan yang dikonfigurasi untuk PAI-Rec. Flink mencatat data perilaku pengguna real-time dan menghitung fitur pengguna real-time.
Jika Anda menggunakan EasyRec (framework berbasis TensorFlow), pelatihan berjalan di MaxCompute secara default.
Jika Anda menggunakan TorchEasyRec (framework berbasis PyTorch), pelatihan berjalan di PAI-DLC secara default. Untuk mengunduh data MaxCompute di PAI-DLC, aktifkan Layanan Transmisi Data (Beli dan gunakan kelompok sumber daya Layanan Transmisi Data khusus).
1. Buat instans PAI-Rec dan inisialisasi layanan
Login ke halaman utama Platform Pengembangan Sistem Rekomendasi dan klik Buy Now.
Di halaman pembelian instans PAI-Rec, konfigurasikan parameter utama berikut, lalu klik Buy Now.
Parameter
Deskripsi
Region and zone
Wilayah tempat layanan cloud Anda diterapkan.
Service Type
Pilih Standard Edition and enable Recommendation Solution Customization.
Login ke Konsol Manajemen PAI-Rec. Di pojok kiri atas bilah menu atas, pilih wilayah.
Di panel navigasi kiri, pilih Instances, lalu klik nama instans untuk membuka halaman detail instans.
Di bagian Procedure, klik Cloud Service Configuration untuk membuka halaman System Configuration > Cloud Service Configuration. Klik Edit, konfigurasikan parameter seperti yang ditunjukkan dalam tabel Resource configuration, lalu klik Exit.
Di panel navigasi kiri, pilih System Configuration > Permissions. Di tab Services, verifikasi status otorisasi setiap layanan cloud.
2. Klona dataset publik
1. Sinkronisasi tabel data
Solusi ini menawarkan dua opsi input data:
Klona data dari pai_online_project dalam jendela waktu tetap. Opsi ini tidak mendukung tugas terjadwal.
Gunakan skrip Python untuk menghasilkan data. Anda dapat menjalankan tugas di DataWorks untuk menghasilkan data dalam rentang waktu tertentu.
Untuk menjadwalkan pembuatan data harian dan pelatihan model, gunakan opsi kedua, yang menerapkan kode Python untuk menghasilkan data. Lihat tab Generate data using code.
Jendela waktu tetap
PAI-Rec menyiapkan tiga tabel di proyek publik pai_online_project:
Tabel pengguna:
pai_online_project.rec_sln_demo_user_tableTabel item:
pai_online_project.rec_sln_demo_item_tableTabel perilaku:
pai_online_project.rec_sln_demo_behavior_table
Operasi dalam topik ini didasarkan pada ketiga tabel tersebut. Data dihasilkan secara acak untuk simulasi tanpa makna bisnis nyata, yang dapat mengakibatkan metrik rendah (seperti AUC) selama pelatihan. Jalankan perintah SQL di DataWorks untuk menyinkronkan data tabel dari pai_online_project ke proyek DataWorks Anda (misalnya, DataWorks_a):
Login ke konsol DataWorks dan pilih wilayah dari pojok kiri atas bilah menu atas.
Di panel navigasi kiri, klik Data Development and O&M > Data Development.
Pilih ruang kerja DataWorks yang telah Anda buat dan klik Enter Data Development.
Arahkan kursor ke Create, lalu pilih New node > MaxCompute > ODPS SQL. Konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut, lalu klik Confirm.
Di editor node baru, salin dan jalankan kode berikut untuk menyinkronkan tabel pengguna, item, dan perilaku dari proyek
pai_online_projectke proyek MaxCompute Anda (misalnya,project_mc). Sebelum menjalankan kode, atur variabel untuk menentukan jendela data 100 hari yang berakhir padabizdate. Biasanya, Anda harus mengaturbizdateke hari sebelumnya. Di area Scheduling parameters, klik Add Parameter, lalu tambahkan dua parameter: bizdate dengan nilai$[yyyymmdd-1], dan bizdate_100 dengan nilai$[yyyymmdd-100]. Menjalankan kode berikut akan menyinkronkan data dari proyek publikpai_online_projectke 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 published items',
follow_cnt BIGINT COMMENT 'Number of followed accounts',
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 category',
author BIGINT COMMENT 'Author',
click_count BIGINT COMMENT 'Total clicks',
praise_count BIGINT COMMENT 'Total likes',
pub_time BIGINT COMMENT 'Publish 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 'Tracking 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 'Event time',
item_id STRING COMMENT 'Item ID',
event STRING COMMENT 'Event type',
playtime DOUBLE COMMENT 'Playback/Reading 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}";Pembuatan kode
Data dari jendela waktu tetap tidak dapat digunakan untuk tugas terjadwal. Untuk menjalankan tugas sesuai jadwal, terapkan skrip Python untuk menghasilkan data:
Di konsol DataWorks, buat node PyODPS 3 (Buat dan kelola node MaxCompute).
Unduh create_data.py, lalu tempel isi file tersebut ke editor node PyODPS 3.
Di sisi kanan editor, klik Configure Scheduling dan konfigurasikan parameter. Lalu, klik ikon Simpan
dan Submit
di pojok kanan atas.Konfigurasi parameter penjadwalan:
Catatan tentang substitusi variabel:
Di parameter penjadwalan, atur argumen
$user_table_namemenjadirec_sln_demo_user_table.Atur argumen
$item_table_namemenjadirec_sln_demo_item_table.Atur argumen
$behavior_table_namemenjadirec_sln_demo_behavior_table.Selain tiga argumen nama tabel, skrip juga menggunakan parameter penjadwalan
bizdate, yang diteruskan sebagai variabel$bizdate.Konfigurasi parameter:
Tambahkan parameter bernama
bizdatedan atur nilainya menjadi$[yyyymmdd-1].
Konfigurasi dependensi penjadwalan.
Klik Operation Center, lalu pilih .
Klik di kolom Actions tugas target.
Di panel Data Backfill, atur waktu data, lalu klik Submit and Navigate.
Untuk periode pengisian ulang data optimal 60 hari, atur waktu data menjadi
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 dengan dependensi penjadwalan diatur ke node root. Setelah mengonfigurasi node, terbitkan mereka:
Arahkan kursor ke Create dan pilih new node > General-purpose > virtual node. Buat tiga node virtual menggunakan konfigurasi sumber daya berikut, lalu klik Confirm.
Pilih setiap node dan atur isinya menjadi
select 1;. Lalu, klik Configure Scheduling di sisi kanan dan lengkapi pengaturan berikut:Di bagian Time attributes, atur Rerun attribute menjadi Rerun node after success or failure.
Di bagian Scheduling dependencies > Ancestor Nodes, masukkan nama ruang kerja DataWorks, pilih node dengan akhiran _root, lalu klik Add.
Terapkan konfigurasi dependensi ini ke ketiga node virtual.
Klik ikon
untuk setiap node virtual guna mengirimkan node tersebut.
3. Daftarkan data
Sebelum mengonfigurasi rekayasa fitur, recall, dan ranking, daftarkan ketiga tabel tersinkronisasi di PAI-Rec:
Login ke Konsol Manajemen PAI-Rec dan pilih wilayah dari pojok kiri atas.
Di panel navigasi kiri, klik Instances, lalu klik nama instans untuk membuka halaman detailnya.
Di panel navigasi kiri, navigasikan ke Recommendation Solution Customization > Data Registration. Di tab MaxCompute Table, klik Create Data Table. Tambahkan tabel pengguna, tabel item, dan tabel perilaku menggunakan konfigurasi dalam tabel di bawah. Lalu, klik Import.
Parameter
Deskripsi
Contoh
MaxCompute project
Pilih proyek MaxCompute yang telah Anda buat.
project_mc
MaxCompute table
Pilih tabel data yang telah disinkronkan ke ruang kerja DataWorks Anda.
Tabel pengguna: rec_sln_demo_user_table_v1
Tabel item: rec_sln_demo_item_table_v1
Tabel perilaku: rec_sln_demo_behavior_table_v1
Data table name
Masukkan nama kustom.
Tabel pengguna
Tabel item
Tabel perilaku
4. Buat skenario rekomendasi
Buat skenario rekomendasi sebelum mengonfigurasi tugas rekomendasi. Untuk konsep dasar dan encoding traffic, lihat Basic Concepts.
Di panel navigasi kiri, klik Recommendation Scenario lalu Create Scenario. Konfigurasikan skenario rekomendasi dengan konfigurasi sumber daya berikut dan klik Determine.
5. Siapkan algoritma
Untuk konfigurasi produksi lengkap, gunakan pengaturan recall dan ranking detail halus berikut:
Global hot recall: Mengambil K item terpopuler berdasarkan data log.
Grouped hot recall: Mengambil kandidat item populer dari grup tertentu, seperti kota atau gender, untuk meningkatkan relevansi.
Etrec u2i recall: Menggunakan algoritma filtering kolaboratif etrec.
Swing u2i recall (opsional): Menggunakan algoritma Swing.
Vector recall (opsional): Menghasilkan kandidat menggunakan Deep Structured Semantic Model (DSSM).
Fine-grained ranking: Menggunakan model MultiTower untuk ranking tujuan tunggal dan model DBMTL untuk ranking multi-tujuan.
Panduan ini mencakup global hot recall dan etrec u2i recall dari RECommender (eTREC, implementasi filtering kolaboratif), serta fine-grained ranking. Langkah-langkah:
Di panel navigasi kiri, pilih Recommendation Solution Customization. Pilih skenario yang telah Anda buat, lalu klik Create Modular Recommendation Solution. Buat solusi dengan konfigurasi sumber daya berikut, lalu klik Save and Go to Algorithm Solution Configuration.
Biarkan parameter yang tidak ditentukan pada nilai defaultnya. Data Table Configuration.
Di tab Configure Table, klik Add di sebelah tabel data. Konfigurasikan behavior log table, user table, dan item table dengan mengatur partisi, event, fitur, dan field timestamp yang sesuai, lalu klik Next.
Biarkan parameter yang tidak ditentukan pada nilai defaultnya. Data Table Configuration.
Di bawah Feature Group Configuration, klik Add. Konfigurasikan parameter seperti yang ditunjukkan dalam tabel berikut. Atur nama dan versi modul fitur, lalu pilih tabel pengguna, tabel item, dan tabel log perilaku yang telah Anda konfigurasi di tab Configure Table.
Klik Determine. Tindakan ini menghasilkan berbagai fitur statistik untuk pengguna dan item. Klik Configure Feature untuk grup fitur ini guna melihat fitur validasi. Untuk solusi ini, jangan mengedit fitur turunan dan pertahankan pengaturan default. Anda dapat mengedit fitur turunan sesuai kebutuhan bisnis Anda (Feature Configuration). Klik Publish untuk grup fitur ini, pilih tanggal partisi data terbaru sebagai tanggal eksekusi tugas, atur paralelisme tugas maksimum menjadi 10, dan pertahankan pengaturan lain pada nilai defaultnya. Lalu, klik Determine. Tindakan ini menghasilkan node, menerapkannya ke DataWorks, dan melakukan backfill data berdasarkan tanggal. Tunggu hingga status modul berubah menjadi Published sebelum melanjutkan ke langkah berikutnya. Klik Online Details untuk melihat informasi lebih lanjut tentang modul tersebut. Di Data Refill Task List, Anda dapat memeriksa status eksekusi setiap tugas. Jika tugas gagal, klik View Task Node untuk membuka DataWorks dan melihat informasi error detail. Setelah memperbaiki masalah, temukan node tersebut di Data Refill Task List dan klik Rerun. Setelah tugas berhasil, Anda dapat melanjutkan.
Di bawah Label Table Configuration, modul ini membangun target sampel dari tabel perilaku. Klik Add, pilih Label Module sebagai jenis modul, masukkan nama untuk modul label, lalu pilih modul fitur yang telah Anda konfigurasi pada langkah sebelumnya. Klik Create di sebelah Fine-grained ranking target settings (labels) dan tambahkan dua label berikut:
Target 1: Atur Fine-grained ranking target name menjadi
is_click, atur Fine-grained ranking target expression menjadimax(if(event='click',1,0)), dan pilih CLASSIFICATION untuk Target type.Target 2 (perhatikan bahwa 'l' dalam 'ln' adalah huruf kecil): Atur Fine-grained ranking target name menjadi
ln_playtime, atur Fine-grained ranking target expression menjadiln(sum(playtime)+1), atur Fine-grained ranking target dependency menjadiis_click, dan pilih REGRESSION untuk Target type. Lalu, klik OK.Setelah Anda mengklik Determine, terbitkan modul dengan cara yang sama seperti menerbitkan modul fitur. Tunggu hingga status berubah menjadi Published sebelum melanjutkan ke langkah berikutnya.
Di bawah Sample Configuration, modul ini mengasosiasikan tabel target sampel dengan fitur dan menghasilkan fitur model di FeatureStore. Klik Add, pilih Sample Module sebagai jenis modul, beri nama fitur model, lalu pilih modul fitur dan label dari langkah-langkah sebelumnya. Terbitkan modul dan tunggu hingga status berubah menjadi Published sebelum melanjutkan ke langkah berikutnya.
Di bawah Feature Generation Configuration, modul ini menurunkan fitur tambahan dari semua fitur di tabel sampel. Konfigurasi kustom saat ini tidak didukung. Klik Add, pilih Feature Generation sebagai jenis modul, pilih Ranking sebagai jenis pembangkitan fitur, lalu pilih modul fitur model dari langkah konfigurasi sampel sebelumnya. Tunggu hingga status berubah menjadi Published sebelum melanjutkan ke langkah berikutnya.
Di bawah Configure Sorting Method, klik Add di bagian fine-grained ranking. Untuk output modul fitur, pilih modul pembangkitan fitur dari langkah sebelumnya. Biarkan opsi lain pada nilai defaultnya dan klik Determine. Lalu, terbitkan modul tersebut. Setelah status berubah menjadi Published, layanan model diterapkan ke PAI-EAS.
Di bawah Retrieval Configuration, klik Add di sebelah kategori target, konfigurasikan parameter, klik Confirm, lalu Publish konfigurasi tersebut. Dokumen ini mencakup beberapa metode konfigurasi recall. Untuk menyelesaikan penerapan dengan cepat, Anda hanya perlu mengonfigurasi Global Hot Recall dan etrec u2i Recall. Metode lain, seperti vector recall dan collaborative metric recall, hanya sebagai referensi.