Komponen Collaborative Filtering (etrec) yang disediakan oleh Platform for AI (PAI) menggunakan etrec, yaitu algoritma collaborative filtering berbasis item. Algoritma ini memproses dua kolom input dan menghasilkan N item dengan kemiripan tertinggi sebagai output.
Konfigurasikan komponen
Anda dapat menggunakan salah satu metode berikut untuk mengonfigurasi komponen Collaborative Filtering (etrec).
Metode 1: Konfigurasikan komponen di konsol PAI
Anda dapat mengonfigurasi parameter komponen Collaborative Filtering (etrec) pada halaman pipeline Machine Learning Designer dari PAI. Tabel berikut menjelaskan parameter tersebut.
Tab | Parameter | Deskripsi |
Fields Setting | User Column | Nama kolom pengguna. |
Item Column | Nama kolom item. | |
Delimiter between items in the output table | Tentukan pemisah antar item dalam tabel output. Pemisah default adalah spasi. | |
Delimiter between key-value in the output table | Pemisah yang digunakan untuk memisahkan kunci dan nilai dalam tabel output. Pemisah default adalah titik dua (:). Spasi tidak didukung. | |
Parameters Setting | Similarity Type | Tipe kemiripan. Nilai valid: WbCosine, asymcosine, dan Jaccard. |
TopN | Jumlah maksimum item serupa yang dapat disimpan dalam tabel output. | |
Calculation Behavior | Metode yang digunakan untuk menghitung payload ketika sebuah item dari pengguna muncul beberapa kali. Nilai valid: Add, Mul, Min, dan Max. Catatan Parameter ini sudah tidak digunakan lagi dan tidak efektif. | |
Minimum Item Value | Jika jumlah item dari seorang pengguna kurang dari nilai parameter ini, perilaku pengguna diabaikan. | |
Maximum Item Value | Jika jumlah item dari seorang pengguna lebih besar dari nilai parameter ini, perilaku pengguna diabaikan. | |
Smoothing Factor | Parameter ini hanya valid jika parameter Similarity Type diatur ke asymcosine. | |
Weighting Coefficient | Parameter ini hanya valid jika parameter Similarity Type diatur ke asymcosine. |
Metode 2: Konfigurasikan parameter menggunakan perintah PAI
Konfigurasikan parameter komponen menggunakan perintah PAI. Bagian berikut menjelaskan parameter tersebut. Anda dapat menggunakan skrip SQL untuk memanggil perintah PAI. Untuk informasi lebih lanjut, lihat SQL Script.
PAI -name pai_etrec
-project algo_public
-DsimilarityType="wbcosine"
-Dweight="1"
-DminUserBehavior="2"
-Dlifecycle="28"
-DtopN="2000"
-Dalpha="0.5"
-DoutputTableName="etrec_test_result"
-DmaxUserBehavior="500"
-DinputTableName="etrec_test_input"
-DuserColName="user"
-DitemColName="item"Parameter | Diperlukan | Deskripsi | Nilai default |
inputTableName | Ya | Nama tabel input. | N/A |
userColName | Ya | Nama kolom pengguna dalam tabel input. | Tidak ada |
itemColName | Ya | Nama kolom item dalam tabel input. | Tidak ada |
inputTablePartitions | Tidak | Partisi yang dipilih dari tabel input untuk pelatihan. | Tabel lengkap |
outputTableName | Ya | Nama tabel output. | Tidak ada |
outputTablePartition | Tidak | Partisi dalam tabel output. | Tidak ada |
similarityType | Tidak | Tipe kemiripan. Nilai valid: wbcosine, asymcosine, and jaccard. | wbcosine |
topN | Tidak | Jumlah item dengan kemiripan terbesar yang dapat disimpan dalam tabel output. Jumlah pohon. Nilai valid: 1 hingga 10000. | 2000 |
minUserBehavior | Tidak | Jumlah minimum catatan perilaku pengguna. | 2 |
maxUserBehavior | Tidak | Jumlah maksimum catatan perilaku pengguna. | 500 |
itemDelimiter | Tidak | Pemisah yang digunakan untuk memisahkan item dalam tabel output. | Backspace |
kvDelimiter | Tidak | Pemisah yang digunakan untuk memisahkan kunci dan nilai dalam tabel output. | Titik dua (:) |
alpha | Tidak | Faktor penghalusan ketika parameter similarityType diatur ke asymcosine. Nilai valid: (0,1). | 0.5 |
weight | Tidak | Indeks pembobotan ketika parameter similarityType diatur ke asymcosine. | 1.0 |
lifecycle | Tidak | Siklus hidup tabel output. | 1 |
coreNum | Tidak | Jumlah core. | Ditetapkan oleh sistem |
memSizePerCore | Tidak | Ukuran memori setiap core. Satuan: MB. | Ditetapkan oleh sistem |
Contoh
Jalankan pernyataan SQL berikut untuk menghasilkan data pelatihan:
drop table if exists etrec_test_input; create table etrec_test_input as select * from ( select cast(0 as string) as user, cast(0 as string) as item union all select cast(0 as string) as user, cast(1 as string) as item union all select cast(1 as string) as user, cast(0 as string) as item union all select cast(1 as string) as user, cast(1 as string) as item ) a;Tabel data pelatihan bernama etrec_test_input telah dibuat.
pengguna
item
0
0
0
1
1
0
1
1
Jalankan perintah PAI berikut untuk mengirimkan parameter pelatihan:
drop table if exists etrec_test_result; PAI -name pai_etrec -project algo_public -DsimilarityType="wbcosine" -Dweight="1" -DminUserBehavior="2" -Dlifecycle="28" -DtopN="2000" -Dalpha="0.5" -DoutputTableName="etrec_test_result" -DmaxUserBehavior="500" -DinputTableName="etrec_test_input" -DuserColName="user" -DitemColName="item";Lihat tabel hasil output bernama etrec_test_result.
itemid
kemiripan
0
1:1
1
0:1