Tutorial ini menggunakan rekayasa fitur yang disesuaikan untuk algoritma rekomendasi guna memproses set data asli—yang mencakup tabel user, item, dan behavior—serta menghasilkan tabel fitur baru untuk tahap recall dan ranking selanjutnya.
Prasyarat
-
PAI (Designer) telah diaktifkan dan ruang kerja default telah dibuat. Untuk informasi selengkapnya, lihat Aktifkan PAI dan buat ruang kerja default.
-
Sumber daya komputasi MaxCompute telah ditautkan ke ruang kerja Anda. Untuk informasi selengkapnya, lihat Kelola sumber daya komputasi untuk ruang kerja.
-
Sumber data MaxCompute telah dibuat dan ditautkan sebagai engine untuk ruang kerja. Untuk informasi selengkapnya, lihat Buat sumber data MaxCompute.
Set data
Tabel user, item, dan behavior yang digunakan dalam tutorial ini dihasilkan oleh skrip untuk tujuan demonstrasi dan tidak berisi data nyata.
Tabel user
|
Parameter |
Type |
Deskripsi |
|
user_id |
bigint |
ID unik pengguna. |
|
gender |
string |
Jenis kelamin pengguna. |
|
age |
bigint |
Usia pengguna. |
|
city |
string |
Kota tempat tinggal pengguna. |
|
item_cnt |
bigint |
Jumlah item yang dibuat oleh pengguna. |
|
follow_cnt |
bigint |
Jumlah pengguna yang diikuti oleh pengguna ini. |
|
follower_cnt |
bigint |
Jumlah pengikut. |
|
register_time |
bigint |
Waktu pendaftaran. |
|
tags |
string |
Tag pengguna. |
|
ds |
string |
Kunci partisi tabel. |
Tabel item
|
Parameter |
Type |
Deskripsi |
|
item_id |
bigint |
ID unik item. |
|
duration |
double |
Durasi video. |
|
title |
string |
Judul. |
|
category |
string |
Kategori utama. |
|
author |
bigint |
Penulis. |
|
click_count |
bigint |
Total jumlah klik. |
|
praise_count |
bigint |
Total jumlah suka. |
|
pub_time |
bigint |
Waktu publikasi. |
|
ds |
string |
Kunci partisi tabel. |
Tabel behavior
|
Parameter |
Type |
Deskripsi |
|
request_id |
bigint |
ID permintaan atau ID pelacakan. |
|
user_id |
bigint |
ID unik pengguna. |
|
exp_id |
string |
ID eksperimen. |
|
page |
string |
Halaman. |
|
net_type |
string |
Jenis jaringan. |
|
event_time |
bigint |
Waktu terjadinya event. |
|
item_id |
bigint |
ID item. |
|
event |
string |
Jenis event. |
|
playtime |
double |
Durasi pemutaran atau membaca. |
|
ds |
string |
Kunci partisi tabel. |
Prosedur
Langkah 1: Buka halaman Designer
-
Masuk ke Konsol PAI.
-
Pada panel navigasi kiri, klik Workspaces. Di halaman Workspaces, klik nama ruang kerja yang ingin Anda kelola.
-
Pada panel navigasi kiri ruang kerja, pilih Model Development and Training > Visualized Modeling (Designer).
Langkah 2: Bangun pipeline
-
Di halaman Designer, klik tab Preset Templates.
-
Di bagian Recommended solution-feature engineering, klik Create.
-
Pada kotak dialog Create pipeline, konfigurasikan parameter. Anda dapat menggunakan pengaturan default.
Parameter Pipeline data storage menentukan path Bucket OSS untuk menyimpan data sementara dan model yang dihasilkan selama eksekusi pipeline.
-
Klik OK.
Pipeline akan dibuat dalam waktu sekitar 10 detik.
-
Pada daftar pipeline, klik dua kali pipeline Recommended solution-feature engineering untuk membukanya.
-
Sistem secara otomatis membangun pipeline berdasarkan templat, seperti yang ditunjukkan pada gambar berikut.

Komponen
Deskripsi
1
Memproses awal tabel item:
-
Mengganti pemisah fitur tag dengan
chr(29)untuk langkah pembuatan fitur (FG). -
Menghasilkan fitur yang menunjukkan apakah suatu item baru.
2
Memproses awal tabel behavior: Menghasilkan fitur turunan waktu, seperti day_h dan week_day, dari waktu event.
3
Memproses awal tabel user:
-
Menghasilkan fitur yang menunjukkan apakah pengguna baru.
-
Mengganti pemisah fitur tag dengan
chr(29)untuk langkah pembuatan fitur (FG).
4
Menggabungkan tabel behavior, user, dan item untuk membuat tabel log behavior lebar yang dilengkapi atribut statistik.
5
Menghasilkan tabel fitur item, yang berisi fitur statistik untuk item dalam periode tertentu:
-
item__{event}_cnt_{N}d: Jumlah kali event tertentu terjadi pada suatu item dalam N hari. Ini menunjukkan popularitas item tersebut. -
item__{event}_{itemid}_dcnt_{N}d: Jumlah pengguna unik yang berinteraksi dengan item tersebut untuk event tertentu dalam N hari. Ini menunjukkan popularitas item tersebut. -
item__{min|max|avg|sum}_{field}_{N}d: Distribusi statistik (min, max, avg, atau sum) dari atribut numerik pengguna untuk interaksi positif dengan item dalam N hari. Ini menunjukkan preferensi pengguna dengan atribut numerik tertentu. -
item__kv_{cate}_{event}_{N}d: Statistik atribut kategorikal pengguna untuk event tertentu pada item dalam N hari. Ini menunjukkan preferensi pengguna dengan atribut kategorikal tertentu.
6
Menghasilkan tabel fitur user, yang berisi fitur statistik untuk pengguna dalam periode tertentu.
-
Langkah 3: Tambahkan fungsi kustom
-
Buat alur kerja. Untuk informasi selengkapnya, lihat Buat alur kerja.
-
Klik kanan MaxCompute di bawah alur kerja yang telah dibuat, lalu pilih New Resource > Python untuk membuat resource skrip Python bernama count_cates_kvs.py. Untuk informasi selengkapnya, lihat Buat dan gunakan resource MaxCompute.
-
Klik kanan MaxCompute di bawah alur kerja yang telah dibuat, lalu pilih New Function. Buat fungsi MaxCompute bernama COUNT_CATES_KVS. Atur Class name menjadi
count_cates_kvs.CountCatesKVSdan Resource list menjadicount_cates_kvs.py. Untuk informasi selengkapnya, lihat Buat dan gunakan fungsi kustom.
Langkah 4: Jalankan pipeline dan lihat hasilnya
Secara default, pipeline ini memproses data selama 45 hari, yang membutuhkan waktu lama untuk dijalankan. Agar proses lebih cepat, Anda dapat mengurangi jumlah data yang diproses sebagai berikut:
-
Perbarui parameter jendela waktu eksekusi agar menggunakan data dari periode yang lebih singkat.
-
Klik masing-masing komponen berikut, lalu pada tab Parameters di sebelah kanan, ubah parameter Execution Time Window dari nilai default
(-45,0]menjadi(-9,0]:-
1_rec_sln_demo_item_table_preprocess_v2 -
2_rec_sln_demo_behavior_table_preprocess_v2 -
3_rec_sln_demo_user_table_preprocess_v2 -
4_rec_sln_demo_behavior_table_preprocess_wide_v2
-
-
Klik masing-masing komponen berikut, lalu pada tab Parameters di sebelah kanan, ubah parameter Execution Time Window dari
(-31,0]menjadi(-8,0]:-
5_rec_sln_demo_item_table_preprocess_all_feature_v2 -
6_rec_sln_demo_user_table_preprocess_all_feature_v2
-
-
-
Modifikasi skrip SQL untuk memilih sampel pengguna yang lebih kecil.
-
Klik node
2_rec_sln_demo_behavior_table_preprocess_v2, lalu pada tab Parameters di sebelah kanan, ubah baris ke-32 pada kode parameter SQL Script dariWHERE ds = '${pai.system.cycledate}'menjadiWHERE ds = '${pai.system.cycledate}' AND user_id % 10 = 1. -
Klik komponen
3_rec_sln_demo_user_table_preprocess_v2, lalu pada tab Parameters di sebelah kanan, ubah baris ke-38 pada parameter SQL Script dariWHERE ds = '${pai.system.cycledate}'menjadiWHERE ds = '${pai.system.cycledate}' AND user_id % 10 = 1.
-
-
Klik ikon Run
pada bilah alat di atas kanvas Designer. -
Setelah pipeline selesai dijalankan, verifikasi bahwa tabel MaxCompute berikut berisi data selama sembilan hari:
-
Tabel fitur item:
rec_sln_demo_item_table_preprocess_all_feature_v2 -
Tabel log behavior lebar:
rec_sln_demo_behavior_table_preprocess_v2 -
Tabel fitur user:
rec_sln_demo_user_table_preprocess_all_feature_v2
Anda dapat mengkueri data di tabel-tabel tersebut pada halaman kueri SQL. Untuk informasi selengkapnya, lihat Koneksi menggunakan DataWorks.
CatatanProyek tempat tabel-tabel ini berada melarang pemindaian tabel penuh pada tabel partisi. Anda harus menentukan kondisi partisi dalam kueri Anda. Jika pemindaian tabel penuh diperlukan, tambahkan pernyataan
set odps.sql.allow.fullscan=true;sebelum Pernyataan SQL Anda dan jalankan bersama-sama. Pemindaian tabel penuh memproses lebih banyak data, yang dapat meningkatkan biaya Anda. -