Topik ini menjelaskan algoritma DeepFM.
Ikhtisar
Deep Factorization Machine (DeepFM) menggabungkan kekuatan model deep neural network (DNN) dan factorization machine (FM). Algoritma ini dapat menangkap interaksi fitur eksplisit orde rendah serta interaksi fitur implisit orde tinggi, sehingga menghilangkan kebutuhan untuk rekayasa fitur manual. DeepFM sering digunakan dalam sistem rekomendasi atau periklanan.
Fitur input ke model DeepFM umumnya dikategorikan menjadi dua jenis:
Fitur kategorikal: direpresentasikan sebagai string, seperti gender (pria atau wanita) dan kategori komoditas (seperti pakaian, mainan, atau elektronik).
Fitur numerik: direpresentasikan sebagai bilangan bulat atau floating-point, seperti aktivitas pengguna atau harga komoditas.
Bilangan floating-point antara 0 dan 1 sering kali dikembalikan, yang menunjukkan probabilitas bahwa nilainya adalah 1. Nilai ini dapat digunakan untuk pengurutan atau klasifikasi biner.
Skenario
DeepFM banyak digunakan dalam skenario klasifikasi dan pengurutan, terutama efektif ketika fitur dibangun secara manual tetapi tidak langsung mencerminkan hasil. Dalam skenario rekomendasi, interaksi fitur orde rendah maupun orde tinggi memengaruhi perilaku akhir pengguna. Namun, Anda mungkin kesulitan mengidentifikasi interaksi tersebut. DeepFM dapat secara otomatis menangkap interaksi tersebut.
Sebagai contoh, dalam skenario rekomendasi komoditas personalisasi, model prediksi klik digunakan untuk memprediksi klik atau pembelian pengguna. Model ini dibangun berdasarkan data perilaku pengguna historis, termasuk catatan klik, non-klik, dan pembelian. Jika pengguna memiliki sejarah perilaku yang substansial namun tidak langsung menunjukkan klik atau pembelian masa depan mereka, DeepFM dapat secara efektif mengintegrasikan perilaku pengguna dan mentransformasikan fitur jarang menjadi fitur padat berdimensi tinggi.
Parameter
Nilai parameter yang dijelaskan dalam tabel berikut sesuai dengan nilai parameter model_parameter yang ditentukan dalam pernyataan CREATE MODEL yang digunakan untuk membuat model. Anda dapat mengonfigurasi parameter sesuai kebutuhan bisnis Anda.
Parameter | Deskripsi |
metrics | Metrik yang digunakan untuk mengevaluasi model. Nilai valid:
|
loss | Tugas pembelajaran dan tujuan pembelajaran dari tugas tersebut. Nilai valid:
|
optimizer | Optimizer. Nilai valid:
|
validation_split | Rasio data validasi silang. Nilai default: 0,2. |
epochs | Jumlah iterasi. Nilai default: 6. |
batch_size | Panjang batch. Batch pendek rentan terhadap overfitting. Nilai default: 64. |
task | Jenis tugas. Nilai valid:
|
Contoh
Membuat model DeepFM.
/*polar4ai*/CREATE MODEL airline_deepfm WITH
(model_class = 'deepfm',
x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length',
y_cols='Delay',model_parameter=(epochs=6))
AS (SELECT * FROM db4ai.airlines);Evaluasi model.
/*polar4ai*/SELECT Airline FROM EVALUATE(MODEL airline_deepfm,
SELECT * FROM db4ai.airlines LIMIT 20) WITH
(x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length',y_cols='Delay',metrics='acc');Gunakan model untuk prediksi.
/*polar4ai*/SELECT Airline FROM PREDICT(MODEL airline_deepfm,
SELECT * FROM db4ai.airlines limit 20) WITH
(x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length');