Swing adalah algoritma recall item. Anda dapat menggunakan komponen Swing Train dari Platform for AI (PAI) untuk mengukur kesamaan item berdasarkan prinsip user-item-user. Topik ini menjelaskan cara mengonfigurasi komponen Swing Train.
Batasan
Komponen Swing Train dapat digunakan dengan sumber daya komputasi MaxCompute dan Realtime Compute for Apache Flink.
Konfigurasikan komponen
Anda dapat mengonfigurasi komponen menggunakan salah satu metode berikut:
Metode 1: Konfigurasikan komponen di konsol PAI
Konfigurasikan komponen Swing Train pada halaman pipeline Machine Learning Designer. Tabel berikut menjelaskan parameter-parameter yang tersedia.
Tab | Parameter | Deskripsi |
Field Setting | itemCol | Nama kolom item. |
userCol | Nama kolom pengguna. | |
Parameter Setting | alpha | Parameter alpha. Nilai default: 1.0. |
maxItemNumber | Jumlah maksimum pengguna yang menggunakan item untuk perhitungan. Nilai default: 1000. Catatan Jika jumlah kemunculan suatu item lebih besar dari nilai ini, algoritma secara acak memilih jumlah maksimum pengguna berdasarkan total jumlah pengguna. | |
maxUserItems | Jumlah maksimum item yang digunakan oleh seorang pengguna untuk perhitungan. Nilai default: 1000. Catatan Jika jumlah item yang digunakan oleh seorang pengguna untuk perhitungan lebih besar dari nilai ini, pengguna tersebut tidak akan dimasukkan dalam perhitungan. | |
minUserItems | Jumlah minimum item yang digunakan oleh seorang pengguna untuk perhitungan. Nilai default: 10. Catatan Jika jumlah item yang digunakan oleh seorang pengguna untuk perhitungan kurang dari nilai ini, pengguna tersebut tidak akan dimasukkan dalam perhitungan. | |
resultNormalize | Menentukan apakah hasilnya dinormalisasi. | |
userAlpha | Parameter alpha untuk pengguna. Nilai default: 5.0. | |
userBeta | Parameter beta untuk pengguna. Nilai default: -0.35. | |
Execute Tuning | Number of Workers | Jumlah node pekerja. Nilainya harus bilangan bulat positif. Parameter ini harus digunakan bersama dengan parameter Memory per worker, unit MB. Nilai valid: 1 hingga 9999. |
Memory per worker | Ukuran memori setiap node pekerja. Unit: MB. Nilainya harus bilangan bulat positif. Nilai valid: 1024 hingga 65536. |
Metode 2: Konfigurasikan komponen menggunakan kode Python
Anda dapat mengonfigurasi komponen Swing Train menggunakan komponen PyAlink Script untuk memanggil kode Python. Untuk informasi lebih lanjut, lihat dokumentasi skrip PyAlink.
Parameter | Diperlukan | Deskripsi | Nilai default |
itemCol | Ya | Nama kolom item. | Tidak tersedia |
userCol | Ya | Nama kolom pengguna. | Tidak tersedia |
alpha | Tidak | Parameter alpha, yang merupakan faktor penghalusan. | 1.0 |
userAlpha | Tidak | Parameter alpha untuk pengguna. Catatan Parameter ini digunakan untuk menghitung bobot pengguna menggunakan rumus berikut: Bobot pengguna = 1.0/(userAlpha + userClickCount)^userBeta. | 5.0 |
userBeta | Tidak | Parameter beta untuk pengguna. Catatan Parameter ini digunakan untuk menghitung bobot pengguna menggunakan rumus berikut: Bobot pengguna = 1.0/(userAlpha + userClickCount)^userBeta. | -0.35 |
resultNormalize | Tidak | Menentukan apakah nilai dinormalisasi. | false |
maxItemNumber | Tidak | Jumlah maksimum pengguna yang menggunakan item untuk perhitungan. Catatan Jika jumlah kemunculan suatu item lebih besar dari nilai ini, algoritma secara acak memilih jumlah maksimum pengguna berdasarkan total jumlah pengguna. | 1000 |
minUserItems | Tidak | Jumlah minimum item yang digunakan oleh seorang pengguna untuk perhitungan. Catatan Jika jumlah item yang digunakan oleh seorang pengguna untuk perhitungan kurang dari nilai ini, pengguna tersebut tidak akan dimasukkan dalam perhitungan. | 10 |
maxUserItems | Tidak | Jumlah maksimum item yang digunakan oleh seorang pengguna untuk perhitungan. Catatan Jika jumlah item yang digunakan oleh seorang pengguna untuk perhitungan lebih besar dari nilai ini, pengguna tersebut tidak akan dimasukkan dalam perhitungan. | 1000 |
Contoh kode Python:
df_data = pd.DataFrame([
["a1", "11L", 2.2],
["a1", "12L", 2.0],
["a2", "11L", 2.0],
["a2", "12L", 2.0],
["a3", "12L", 2.0],
["a3", "13L", 2.0],
["a4", "13L", 2.0],
["a4", "14L", 2.0],
["a5", "14L", 2.0],
["a5", "15L", 2.0],
["a6", "15L", 2.0],
["a6", "16L", 2.0],
])
data = BatchOperator.fromDataframe(df_data, schemaStr='user string, item string, rating double')
model = SwingTrainBatchOp()\
.setUserCol("user")\
.setItemCol("item")\
.setMinUserItems(1)\
.linkFrom(data)
model.print()
predictor = SwingRecommBatchOp()\
.setItemCol("item")\
.setRecommCol("prediction_result")
predictor.linkFrom(model, data).print()Contoh
Gambar berikut menunjukkan contoh pipeline di mana komponen Swing Train digunakan.
Dalam contoh ini, langkah-langkah berikut dilakukan untuk mengonfigurasi komponen pada gambar sebelumnya:
Siapkan set data pelatihan dan set data uji.
Buat dua tabel MaxCompute bernama Tabel 1 dan Tabel 2. Tabel 1 berisi bidang userid dan itemid, sedangkan Tabel 2 berisi bidang itemid. Bidang-bidang tersebut bertipe STRING. Jalankan perintah tunnel pada klien MaxCompute untuk mengunggah set data pelatihan ke Tabel 1 dan set data uji ke Tabel 2. Kemudian, atur parameter Table Name dari komponen Read Table-1 ke Tabel 1 dan parameter Table Name dari komponen Read Table-2 ke Tabel 2. Untuk informasi tentang cara menginstal dan mengonfigurasi klien MaxCompute, lihat Klien MaxCompute (odpscmd). Untuk informasi tentang perintah Tunnel, lihat Perintah Tunnel.
Impor set data pelatihan ke komponen Swing Train dan konfigurasikan parameter komponen. Untuk informasi lebih lanjut, lihat bagian Metode 1: Konfigurasikan Komponen di Konsol PAI dari topik ini.
Gunakan set data uji dan model terlatih sebagai input ke komponen Swing Recommendation untuk melakukan prediksi.