Bagikan melalui


FieldAwareFactorizationMachineTrainer Kelas

Definisi

IEstimator<TTransformer> untuk memprediksi target menggunakan model mesin faktorisasi sadar bidang yang dilatih menggunakan metode gradien stochastic.

public sealed class FieldAwareFactorizationMachineTrainer : Microsoft.ML.IEstimator<Microsoft.ML.Trainers.FieldAwareFactorizationMachinePredictionTransformer>
type FieldAwareFactorizationMachineTrainer = class
    interface IEstimator<FieldAwareFactorizationMachinePredictionTransformer>
Public NotInheritable Class FieldAwareFactorizationMachineTrainer
Implements IEstimator(Of FieldAwareFactorizationMachinePredictionTransformer)
Warisan
FieldAwareFactorizationMachineTrainer
Penerapan

Keterangan

Kolom Input dan Output

Data kolom label input harus Boolean. Data kolom fitur input harus merupakan vektor berukuran besar yang diketahui dari Single.

Pelatih ini menghasilkan kolom berikut:

Nama Kolom Output Jenis Kolom Deskripsi
Score Single Skor tidak terikat yang dihitung oleh model.
PredictedLabel Boolean Label yang diprediksi, berdasarkan tanda skor. Skor negatif memetakan ke false dan skor positif memetakan ke true.
Probability Single Probabilitas dihitung dengan mengkalibrasi skor memiliki true sebagai label. Nilai probabilitas berada dalam rentang [0, 1].

Untuk membuat pelatih ini, gunakan FieldAwareFactorizationMachineFieldAwareFactorizationMachine, atau FieldAwareFactorizationMachine(Options).

Berbeda dengan pengklasifikasi biner lainnya, yang hanya dapat mendukung satu kolom fitur, mesin faktorisasi yang sadar bidang dapat menggunakan beberapa kolom fitur. Setiap kolom dilihat sebagai kontainer dari beberapa fitur dan kontainer seperti itu disebut bidang . Perhatikan bahwa semua kolom fitur harus vektor float tetapi dimensinya bisa berbeda. Motivasi pemisahan fitur menjadi bidang yang berbeda adalah untuk memodelkan fitur dari berbagai distribusi secara independen. Misalnya, di toko game online, fitur yang dibuat dari profil pengguna dan fitur dari profil game dapat ditetapkan ke dua bidang yang berbeda.

Karakteristik Pelatih

Tugas pembelajaran mesin Klasifikasi biner
Apakah normalisasi diperlukan? Ya
Apakah penembolokan diperlukan? Tidak
NuGet yang diperlukan selain Microsoft.ML Tidak ada
Dapat diekspor ke ONNX Tidak

Background

Keluarga mesin faktorisasi adalah grup model yang kuat untuk masalah pembelajaran yang diawasi. Ini pertama kali diperkenalkan dalam makalah Factorization Machines Steffen Rendle pada tahun 2010. Kemudian, salah satu versi umumnya, mesin faktorisasi sadar bidang, menjadi modul prediktif penting dalam sistem pemberi rekomendasi terbaru dan kontes prediksi laju klik-taut. Misalnya, lihat solusi pemenang di steffen Rendle's KDD-Cup 2012 (Track 1 dan Track 2), Criteo's, Avazu's, dan tantangan prediksi klik Outbrain di Kaggle.

Mesin faktorisasi sangat kuat ketika konjungsi fitur sangat berkorelasi dengan sinyal yang ingin Anda prediksi. Contoh pasangan fitur yang dapat membentuk hubungan penting adalah ID pengguna dan ID musik dalam rekomendasi musik. Ketika himpunan data hanya terdiri dari fitur numerik yang padat, penggunaan mesin faktorisasi tidak disarankan atau beberapa fiturisasi harus dilakukan.

Fungsi Penilaian

Mesin faktorisasi yang sadar bidang adalah fungsi penilaian yang memetakan vektor fitur dari bidang yang berbeda ke skor skalar. Asumsikan bahwa semua kolom fitur $m$ digabungkan ke dalam vektor fitur panjang $\textbf{x} \in {\mathbb R}^n$ dan ${\mathcal F}(j)$ menunjukkan pengidentifikasi bidang fitur $j$-th. Skor yang sesuai adalah $\hat{y}(\textbf{x}) = \langle \textbf{w}, \textbf{x} \rangle + \sum_{j = 1}^n \sum_{j' = j + 1}^n \langle \textbf{v}_{j, {\mathcal F}(j')}, \textbf{v}_{j', {\mathcal F}(j)} \rangle x_j x_{j'}$, di mana $\langle \cdot, \cdot \rangle$ adalah operator produk dalam, $\textbf{w} \in {\mathbb R}^n$ menyimpan koefisien linier, dan $\textbf{v}_{j, f}\in {\mathbb R}^k$ adalah representasi fitur $j$-th di ruang laten bidang $f$-th. Perhatikan bahwa $k$ adalah dimensi laten yang ditentukan oleh pengguna.

Label yang diprediksi adalah tanda $\hat{y}$. Jika $\hat{y} > $ 0, model ini memprediksi true. Jika tidak, ia memprediksi false.

Untuk pengenalan sistematis mesin faktorisasi sadar bidang, silakan lihat makalah ini

Detail Algoritma Pelatihan

Algoritma yang diterapkan di FieldAwareFactorizationMachineTrainer didasarkan pada metode gradien stochastic. Detail algoritma dijelaskan dalam Algoritma 3 dalam dokumen online ini. Fungsi kerugian yang diminimalkan adalah kehilangan logistik, sehingga model terlatih dapat dilihat sebagai regresi logistik non-linear.

Periksa bagian Lihat Juga untuk tautan ke contoh penggunaan.

Metode

Fit(IDataView)

Melatih dan mengembalikan FieldAwareFactorizationMachinePredictionTransformer.

Fit(IDataView, IDataView, FieldAwareFactorizationMachineModelParameters)

Melanjutkan pelatihan menggunakan data dan/atau validasi yang FieldAwareFactorizationMachineTrainer sudah dilatih modelParameters , dan mengembalikan FieldAwareFactorizationMachinePredictionTransformer.

GetOutputSchema(SchemaShape)

Penyebaran skema untuk transformator. Mengembalikan skema output data, jika skema input seperti yang disediakan.

Metode Ekstensi

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Tambahkan 'titik pemeriksaan penembolokan' ke rantai estimator. Ini akan memastikan bahwa estimator hilir akan dilatih terhadap data cache. Sangat membantu untuk memiliki titik pemeriksaan penembolokan sebelum pelatih yang mengambil beberapa data berlalu.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Mengingat estimator, kembalikan objek pembungkus yang akan memanggil delegasi setelah Fit(IDataView) dipanggil. Seringkali penting bagi estimator untuk mengembalikan informasi tentang apa yang cocok, itulah sebabnya Fit(IDataView) metode mengembalikan objek yang ditik secara khusus, bukan hanya umum ITransformer. Namun, pada saat yang sama, IEstimator<TTransformer> sering dibentuk menjadi alur dengan banyak objek, jadi kita mungkin perlu membangun rantai estimator melalui EstimatorChain<TLastTransformer> tempat estimator yang ingin kita dapatkan transformator dikubur di suatu tempat dalam rantai ini. Untuk skenario itu, kita dapat melalui metode ini melampirkan delegasi yang akan dipanggil setelah pas dipanggil.

Berlaku untuk

Lihat juga