Rekayasa fitur adalah proses dalam algoritma rekomendasi untuk memproses set data mentah—seperti tabel user, item, dan perilaku—serta menghasilkan tabel fitur baru yang kemudian digunakan untuk pengambilan dan pengurutan selanjutnya.
Prasyarat
-
Platform for AI (PAI) Machine Learning Designer telah diaktifkan dan ruang kerja default telah dibuat. Untuk informasi selengkapnya, lihat Aktifkan PAI dan buat ruang kerja default.
-
Resource MaxCompute telah disambungkan ke ruang kerja. Untuk informasi selengkapnya, lihat Kelola resource komputasi untuk ruang kerja.
-
Sumber data MaxCompute telah dibuat dan disambungkan sebagai engine untuk ruang kerja. Untuk informasi selengkapnya, lihat Buat sumber data MaxCompute.
Set data
Untuk mendemonstrasikan rekayasa fitur, topik ini menggunakan skrip untuk mensimulasikan dan menghasilkan tabel user, item, dan perilaku. Tabel-tabel ini bersifat contoh dan tidak berisi data nyata.
Tabel user: pai_online_project.rec_sln_demo_user_table
|
Field |
Type |
Description |
|
user_id |
bigint |
tag pengguna. |
|
gender |
string |
Jenis kelamin. |
|
age |
bigint |
Usia. |
|
city |
string |
Kota. |
|
item_cnt |
bigint |
Jumlah pengikut. |
|
follow_cnt |
bigint |
Jumlah user yang diikuti. |
|
follower_cnt |
bigint |
Jumlah pengikut. |
|
register_time |
bigint |
Waktu pendaftaran. |
|
tags |
string |
Tag user. |
|
ds |
string |
Waktu publikasi. |
Tabel item: pai_online_project.rec_sln_demo_item_table
|
Field |
Type |
Description |
|
item_id |
bigint |
ID instrumentasi atau ID permintaan. |
|
duration |
double |
Durasi video. |
|
title |
string |
Jumlah total klik. |
|
category |
string |
Kategori level-1. |
|
author |
bigint |
Penulis. |
|
click_count |
bigint |
Total jumlah klik. |
|
praise_count |
bigint |
Total jumlah suka. |
|
pub_time |
bigint |
Waktu publikasi. |
|
ds |
string |
kolom kunci partisi tabel. |
Tabel perilaku: pai_online_project.rec_sln_demo_behavior_table
|
Field |
Type |
Description |
|
request_id |
bigint |
ID instrumen atau ID permintaan. |
|
user_id |
bigint |
ID unik user. |
|
exp_id |
string |
Jenis event dari perilaku. |
|
page |
string |
Halaman. |
|
net_type |
string |
jenis jaringan. |
|
event_time |
bigint |
Waktu terjadinya event perilaku. |
|
item_id |
bigint |
ID item. |
|
event |
string |
Jenis event dari perilaku tersebut. |
|
playtime |
double |
Durasi pemutaran atau membaca. |
|
ds |
string |
kolom kunci partisi tabel. |
Rekayasa fitur
Langkah 1: Buka halaman Designer
-
Masuk ke Konsol PAI.
-
Pada panel navigasi sebelah kiri, klik Workspace Management. Di halaman Workspace Management, klik nama ruang kerja yang ingin Anda kelola.
-
Pada panel navigasi sebelah kiri halaman ruang kerja, pilih Model Development and Training > Machine Learning Designer untuk membuka halaman Designer.
Langkah 2: Bangun alur kerja
-
Di halaman Designer, klik tab Preset Templates.
-
Di bagian Recommendation Solution - Feature Engineering, klik Create.
-
Pada kotak dialog Create Workflow, konfigurasikan parameter dengan nilai default.
Atur Workflow Data Storage ke path bucket OSS. Path ini digunakan untuk menyimpan data sementara dan model yang dihasilkan selama eksekusi alur kerja.
-
Klik OK.
Tunggu sekitar 10 detik hingga alur kerja selesai dibuat.
-
Pada daftar alur kerja, klik ganda alur kerja Recommendation Solution - Feature Engineering untuk membukanya.
-
Sistem secara otomatis membangun alur kerja berdasarkan template preset, seperti yang ditunjukkan pada gambar berikut.

Node
Description
1
Pra-pemrosesan tabel item:
-
Ganti pemisah untuk fitur tag dengan
chr(29)agar dapat digunakan dalam langkah pembuatan fitur (FG) selanjutnya. -
Menunjukkan apakah output merupakan fitur dari item yang baru dipublikasikan.
2
Pra-pemrosesan tabel perilaku: Hasilkan fitur turunan berbasis waktu untuk perilaku, seperti day_h dan week_day.
3
Pra-pemrosesan tabel user:
-
Output adalah fitur yang menunjukkan apakah user baru mendaftar.
-
Ganti pemisah untuk fitur tag dengan
chr(29)agar dapat digunakan dalam langkah FG selanjutnya.
4
Hubungkan tabel perilaku, user, dan item untuk membentuk tabel log perilaku lebar (wide behavior log table) yang mencakup properti statistik.
5
Hasilkan tabel fitur item yang berisi fitur statistik item dalam suatu periode:
-
item__{event}_cnt_{N}d: Jumlah kali suatu event tertentu terjadi pada item dalam N hari. Ini menunjukkan popularitas item tersebut. -
item__{event}_{itemid}_dcnt_{N}d: Jumlah user unik yang melakukan event tertentu pada item dalam N hari. Ini menunjukkan popularitas item tersebut. -
item__{min|max|avg|sum}_{field}_{N}d: Distribusi statistik properti numerik user untuk event positif pada item dalam N hari. Ini menunjukkan preferensi user dengan properti numerik tertentu. -
item__kv_{cate}_{event}_{N}d: Statistik properti kategorikal user untuk event tertentu pada item dalam N hari. Ini menunjukkan preferensi user dengan properti kategorikal tertentu.
6
Hasilkan tabel fitur user yang berisi fitur statistik user dalam suatu periode.
-
Langkah 3: Tambahkan fungsi
-
Buat business flow. Untuk informasi selengkapnya, lihat Buat business flow.
-
Klik kanan MaxCompute di bawah business flow baru dan pilih untuk membuat resource skrip Python bernama count_cates_kvs.py. Untuk informasi selengkapnya, lihat Buat dan gunakan resource MaxCompute.
-
Klik kanan MaxCompute di bawah business flow baru dan 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 user-defined function.
Langkah 4: Jalankan alur kerja dan lihat output
Secara default, set data ini menggunakan data selama 45 hari, sehingga eksekusi dapat memakan waktu lama. Untuk mempercepat eksekusi, lakukan langkah-langkah berikut:
-
Perbarui parameter jendela waktu eksekusi agar menggunakan data dari periode yang lebih singkat.
-
Klik masing-masing node berikut. Pada tab Parameter Settings 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 node berikut. Pada tab Parameter Settings di sebelah kanan, ubah parameter Execution Time Window dari nilai default
(-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 subset user.
-
Klik node
2_rec_sln_demo_behavior_table_preprocess_ v2. Pada tab Parameter Settings di sebelah kanan, ubah baris 32 pada parameter SQL Script dariWHERE ds = '${pai.system.cycledate}'menjadiWHERE ds = '${pai.system.cycledate}' AND user_id % 10 = 1. -
Klik node
3_rec_sln_demo_user_table_preprocess_v2. Pada tab Parameter Settings di sebelah kanan, ubah baris 38 pada parameter SQL Script dariWHERE ds = '${pai.system.cycledate}'menjadiWHERE ds = '${pai.system.cycledate}' AND user_id % 10 = 1.
-
-
Klik tombol Run
pada bilah alat di atas kanvas Designer. -
Setelah alur kerja selesai dijalankan, verifikasi bahwa tabel MaxCompute berikut berisi data selama 30 hari:
-
Tabel fitur item:
rec_sln_demo_item_table_preprocess_all_feature_v2 -
Tabel log perilaku lebar:
rec_sln_demo_behavior_table_preprocess_v2 -
Tabel fitur user:
rec_sln_demo_user_table_preprocess_all_feature_v2
Lakukan kueri data pada tabel-tabel di atas melalui halaman kueri SQL. Untuk informasi selengkapnya, lihat Sambungkan menggunakan DataWorks.
CatatanProyek melarang full table scan pada tabel partisi. Tentukan kondisi partisi dalam kueri Anda. Jika full table scan diperlukan, tambahkan pernyataan
set odps.sql.allow.fullscan=true;sebelum Pernyataan SQL Anda dan jalankan bersamaan. Full table scan membaca lebih banyak data dan dapat mengakibatkan biaya yang lebih tinggi. -