Train Wide & Deep Recommender

Artikel ini menjelaskan cara menggunakan komponen Train Wide & Deep Recommender di perancang Azure Machine Learning, untuk melatih model rekomendasi. Komponen ini didasarkan pada pembelajaran Wide & Deep, yang diusulkan oleh Google.

Komponen Train Wide & Deep Recommender membaca himpunan data tiga kali lipat peringkat item pengguna dan, secara opsional, beberapa fitur pengguna dan item. Modul ini menampilkan pemberi rekomendasi Wide & Deep yang terlatih. Anda kemudian dapat menggunakan model terlatih untuk menghasilkan prediksi peringkat atau rekomendasi dengan menggunakan komponen Score Wide and Deep Recommender.

Selengkapnya tentang model rekomendasi dan pemberi rekomendasi Wide & Deep

Tujuan utama sistem rekomendasi adalah untuk merekomendasikan satu atau beberapa item kepada pengguna sistem. Contoh item bisa berupa film, restoran, buku, atau lagu. Pengguna bisa menjadi orang, sekelompok orang, atau entitas lain dengan preferensi item.

Ada dua pendekatan utama untuk sistem pemberi rekomendasi.

  • Yang pertama adalah pendekatan berbasis konten, yang menggunakan fitur untuk pengguna dan item. Pengguna dapat dijelaskan oleh properti seperti usia dan jenis kelamin, dan item dapat dijelaskan oleh properti seperti penulis dan produsen. Contoh umum sistem rekomendasi berbasis konten dapat ditemukan di situs pencocokan sosial.
  • Pendekatan kedua adalah pemfilteran kolaboratif, yang hanya menggunakan pengidentifikasi pengguna dan item dan mendapatkan informasi implisit tentang entitas ini dari matriks peringkat (ringan) yang diberikan oleh pengguna ke item. Kita dapat mempelajari tentang pengguna dari item yang telah mereka beri peringkat dan dari pengguna lain yang telah memberi peringkat item yang sama.

Pemberi rekomendasi Wide & Deep menggabungkan pendekatan ini, menggunakan pemfilteran kolaboratif dengan pendekatan berbasis konten. Oleh karena itu dianggap sebagai pemberi rekomendasi hibrid.

Cara kerjanya: Jika pengguna relatif baru dalam sistem, prediksi ditingkatkan dengan memanfaatkan informasi fitur tentang pengguna, sehingga mengatasi masalah "cold-start" yang dikenal. Namun, setelah mengumpulkan cukup banyak peringkat dari pengguna tertentu, Anda dapat membuat prediksi yang sepenuhnya dipersonalisasi untuk mereka berdasarkan peringkat spesifik daripada pada fitur mereka saja. Oleh karena itu, ada transisi yang lancar dari rekomendasi berbasis konten ke rekomendasi berdasarkan pemfilteran kolaboratif. Meskipun fitur pengguna atau item tidak tersedia, pemberi rekomendasi Wide & Deep akan tetap berfungsi dalam mode pemfilteran kolaboratifnya.

Detail selengkapnya tentang pemberi rekomendasi Wide and Deep dan algoritma probabilistik yang mendasarinya dapat ditemukan di makalah penelitian yang relevan: Wide & Deep Learning for Recommender Systems.

Cara Mengonfigurasi Train Wide & Deep Recommender

Siapkan data

Sebelum mencoba menggunakan komponen, pastikan data Anda dalam format yang diharapkan untuk model rekomendasi. Diperlukan himpunan data pelatihan tiga serangkai pengguna-item-peringkat, tetapi Anda juga dapat menyertakan fitur pengguna dan fitur item (jika tersedia), dalam himpunan data terpisah.

Set data yang diperlukan dari item-pengguna-peringkat

Data input yang digunakan untuk pelatihan harus berisi jenis data yang tepat dalam format yang benar:

  • Kolom pertama harus berisi ID pengguna.
  • Kolom kedua harus berisi pengidentifikasi item.
  • Kolom ketiga berisi peringkat untuk pasangan pengguna-item. Nilai peringkat harus berupa jenis numerik.

Misalnya, sekumpulan item-pengguna-peringkat yang umum mungkin terlihat seperti ini:

UserId MovieId Peringkat
1 68646 10
223 31381 10

Himpunan data fitur pengguna (opsional)

Himpunan data fitur pengguna harus berisi pengidentifikasi untuk pengguna, dan menggunakan pengidentifikasi yang sama dengan yang disediakan di kolom pertama himpunan data pengguna-item-peringkat. Kolom yang tersisa dapat berisi sejumlah fitur yang menjelaskan pengguna.

Misalnya, sekumpulan fitur pengguna yang umum mungkin terlihat seperti ini:

UserId Usia Jenis kelamin Minat Lokasi
1 25 laki-laki Drama Eropa
223 40 perempuan Roman Asia

Himpunan data fitur item (opsional)

Himpunan data fitur item harus berisi pengidentifikasi item di kolom pertamanya. Kolom lainnya dapat berisi sejumlah fitur deskriptif untuk item.

Misalnya, sekumpulan fitur item yang umum mungkin terlihat seperti ini:

MovieId Judul Bahasa Asli Genre Tahun
68646 The Godfather Inggris Drama 1972
31381 Gone with the Wind Inggris Riwayat 1939

Melatih model

  1. Tambahkan komponen Train Wide and Deep Recommender ke eksperimen Anda di perancang, dan hubungkan ke himpunan data pelatihan.

  2. Jika Anda memiliki himpunan data terpisah dari fitur pengguna dan/atau fitur item, hubungkan ke komponen Train Wide and Deep Recommender.

    • Himpunan data fitur pengguna: Sambungkan himpunan data yang menjelaskan pengguna ke input kedua.
    • Himpunan data fitur item: Sambungkan himpunan data yang menjelaskan item ke input kedua.
  3. Epochs: menunjukkan berapa kali algoritma harus memproses seluruh data pelatihan.

    Semakin tinggi jumlah ini, semakin memadai pelatihan; namun, pelatihan memerlukan lebih banyak waktu dan dapat menyebabkan overfitting.

  4. Ukuran batch: ketikkan jumlah contoh pelatihan yang digunakan dalam satu langkah pelatihan.

    Hyperparameter ini dapat memengaruhi kecepatan pelatihan. Ukuran batch yang lebih tinggi akan mengakibatkan epoch penggunaan waktu yang lebih sedikit, tetapi dapat meningkatkan waktu konvergensi. Dan jika batch terlalu besar agar sesuai dengan GPU/CPU, kesalahan memori dapat dinaikkan.

  5. Pengoptimal bagian lebar: pilih satu pengoptimal untuk menerapkan gradien ke bagian lebar model.

  6. Tingkat pembelajaran pengoptimal bagian lebar: masukkan angka antara 0,0 dan 2,0 yang menentukan tingkat pembelajaran pengoptimal bagian lebar.

    Hyperparameter ini menentukan ukuran langkah pada setiap langkah pelatihan saat bergerak menuju fungsi kerugian minimum. Tingkat pembelajaran yang besar dapat menyebabkan pembelajaran melompati minima, sementara tingkat pembelajaran yang terlalu kecil dapat menyebabkan masalah konvergensi.

  7. Dimensi fitur yang disilangkan: ketik dimensi dengan memasukkan ID pengguna dan fitur ID item yang diinginkan.

    Pemberi rekomendasi Wide & Deep melakukan transformasi lintas produk melalui fitur ID pengguna dan ID item secara default. Hasil yang disilangkan akan di-hash sesuai dengan angka ini untuk memastikan dimensi.

  8. Pengoptimal bagian dalam: pilih satu pengoptimal untuk menerapkan gradien ke bagian dalam model.

  9. Tingkat pembelajaran pengoptimal bagian dalam: masukkan angka antara 0,0 dan 2,0 yang menentukan tingkat pembelajaran pengoptimal bagian dalam.

  10. Dimensi penyematan pengguna: ketik bilangan bulat untuk menentukan dimensi penyematan ID pengguna.

    Pemberi rekomendasi Wide & Deep membuat penyematan ID pengguna dan penyematan ID item bersama untuk bagian lebar dan bagian dalam.

  11. Dimensi penyematan item: ketik bilangan bulat untuk menentukan dimensi penyematan ID item.

  12. Dimensi penyematan fitur kategoris: masukkan bilangan bulat untuk menentukan dimensi penyematan fitur kategoris.

    Dalam komponen dalam pada pemberi rekomendasi Wide & Deep, vektor penyematan dipelajari untuk setiap fitur kategoris. Dan vektor penyematan ini memiliki dimensi yang sama.

  13. Unit tersembunyi: ketik jumlah node tersembunyi dari komponen dalam. Nomor node di setiap lapisan dipisahkan oleh koma. Misalnya, berdasarkan jenis "1000,500,100", Anda menentukan komponen dalam memiliki tiga lapisan, dengan lapisan pertama hingga yang terakhir masing-masing memiliki 1000 node, 500 node, dan 100 node.

  14. Fungsi aktivasi: pilih satu fungsi aktivasi yang diterapkan pada setiap lapisan, defaultnya adalah ReLU.

  15. Penghilangan: masukkan angka antara 0,0 dan 1,0 untuk menentukan probabilitas, output akan dihilangkan di setiap lapisan selama pelatihan.

    Penghilangan adalah metode regularisasi untuk mencegah jaringan saraf overfitting. Salah satu keputusan umum untuk nilai ini adalah memulai dengan 0,5, yang tampaknya dekat dengan optimal untuk berbagai jaringan dan tugas.

  16. Normalisasi Batch: pilih opsi ini untuk menggunakan normalisasi batch setelah setiap lapisan tersembunyi di komponen dalam.

    Normalisasi batch adalah teknik untuk melawan masalah pergeseran kovariat internal selama pelatihan jaringan. Secara umum, hal ini dapat membantu meningkatkan kecepatan, performa, dan stabilitas jaringan.

  17. Jalankan alur.

Catatan teknis

The Wide & Deep bersama-sama melatih model linier yang luas dan jaringan saraf yang dalam untuk menggabungkan kekuatan hafalan dan generalisasi. Komponen yang luas menerima serangkaian fitur mentah dan transformasi fitur untuk menghafal interaksi fitur. Dan dengan rekayasa fitur yang lebih sedikit, komponen dalam digeneralisasikan ke kombinasi fitur yang tidak terlihat melalui penyematan fitur padat dimensi rendah.

Dalam implementasi Wide & Deep Recommender, komponen menggunakan struktur model default. Komponen yang luas mengambil penyematan pengguna, penyematan item, dan transformasi lintas produk pada ID pengguna dan ID item sebagai input. Untuk bagian dalam model, vektor penyematan dipelajari untuk setiap fitur kategoris. Bersama dengan vektor fitur numerik lainnya, vektor ini kemudian dimasukkan ke dalam jaringan saraf penerusan umpan yang dalam. Bagian lebar dan bagian dalam digabungkan dengan meringkas kemungkinan log output akhir mereka sebagai prediksi, yang akhirnya masuk ke satu fungsi kerugian umum untuk pelatihan bersama.

Langkah berikutnya

Lihat set komponen yang tersedia dari Azure Machine Learning.