Bantuan melindungi Great Barrier Reef dengan TensorFlow pada Kaggle Bergabung Tantangan

Rekomendasi

Lihat di TensorFlow.org Jalankan di Google Colab Lihat sumber di GitHub

Rekomendasi hasil personalisasi banyak digunakan untuk berbagai kasus penggunaan di perangkat seluler, seperti pengambilan konten media, saran produk belanja, dan rekomendasi aplikasi berikutnya. Jika Anda tertarik untuk memberikan rekomendasi yang dipersonalisasi dalam aplikasi Anda dengan tetap menghormati privasi pengguna, kami sarankan untuk menjelajahi contoh dan toolkit berikut.

Memulai

Kami menyediakan aplikasi contoh TensorFlow Lite yang mendemonstrasikan cara merekomendasikan item yang relevan kepada pengguna di Android.

Contoh Android

Jika Anda menggunakan platform selain Android, atau Anda sudah terbiasa dengan TensorFlow Lite API, Anda dapat mendownload model rekomendasi awal kami.

Unduh model permulaan

Kami juga menyediakan skrip pelatihan di Github untuk melatih model Anda sendiri dengan cara yang dapat dikonfigurasi.

Kode pelatihan

Pahami arsitektur model

Kami memanfaatkan arsitektur model encoder ganda, dengan encoder konteks untuk mengenkode riwayat pengguna berurutan dan label-encoder untuk mengenkode kandidat rekomendasi yang diprediksi. Kesamaan antara konteks dan pengkodean label digunakan untuk mewakili kemungkinan bahwa kandidat yang diprediksi memenuhi kebutuhan pengguna.

Tiga teknik pengkodean riwayat pengguna berurutan yang berbeda disediakan dengan basis kode ini:

  • Encoder bag-of-words (BOW): rata-rata embeddings aktivitas pengguna tanpa mempertimbangkan urutan konteks.
  • Encoder jaringan neural konvolusional (CNN): menerapkan beberapa lapisan jaringan neural konvolusional untuk menghasilkan enkode konteks.
  • Encoder jaringan neural berulang (RNN): menerapkan jaringan neural berulang untuk mengenkode urutan konteks.

Untuk memodelkan setiap aktivitas pengguna, kita bisa menggunakan ID item aktivitas (berbasis ID), atau beberapa fitur item (berbasis fitur), atau kombinasi keduanya. Model berbasis fitur memanfaatkan beberapa fitur untuk secara kolektif menyandikan perilaku pengguna. Dengan basis kode ini, Anda dapat membuat model berbasis ID atau berbasis fitur dengan cara yang dapat dikonfigurasi.

Setelah pelatihan, model TensorFlow Lite akan diekspor yang secara langsung dapat memberikan prediksi K teratas di antara kandidat rekomendasi.

Gunakan data pelatihan Anda

Selain model terlatih, kami menyediakan toolkit open source di GitHub untuk melatih model dengan data Anda sendiri. Anda dapat mengikuti tutorial ini untuk mempelajari cara menggunakan toolkit dan menerapkan model terlatih di aplikasi seluler Anda sendiri.

Ikuti tutorial ini untuk menerapkan teknik yang sama yang digunakan di sini untuk melatih model rekomendasi menggunakan kumpulan data Anda sendiri.

Contoh

Sebagai contoh, kami melatih model rekomendasi dengan pendekatan berbasis ID dan berbasis fitur. Model berbasis ID hanya mengambil ID film sebagai input, dan model berbasis fitur mengambil ID film dan ID genre film sebagai input. Silakan temukan contoh input dan output berikut.

Masukan

  • ID film konteks:

    • Raja Singa (ID: 362)
    • Toy Story (ID: 1)
    • (dan lebih)
  • ID genre film konteks:

    • Animasi (ID: 15)
    • Anak-anak (ID: 9)
    • Musikal (ID: 13)
    • Animasi (ID: 15)
    • Anak-anak (ID: 9)
    • Komedi (ID: 2)
    • (dan lebih)

Keluaran:

  • ID film yang direkomendasikan:
    • Toy Story 2 (ID: 3114)
    • (dan lebih)

Tolok ukur kinerja

Angka tolok ukur kinerja dibuat dengan alat yang dijelaskan di sini .

Nama model Ukuran Model Alat CPU
rekomendasi (ID film sebagai masukan) 0,52 Mb Pixel 3 0,09 md *
Pixel 4 0,05 md *
rekomendasi (ID film dan genre film sebagai input) 1.3 Mb Pixel 3 0,13 md *
Pixel 4 0,06 md *

* 4 utas digunakan.

Gunakan data pelatihan Anda

Selain model terlatih, kami menyediakan toolkit open source di GitHub untuk melatih model dengan data Anda sendiri. Anda dapat mengikuti tutorial ini untuk mempelajari cara menggunakan toolkit dan menerapkan model terlatih di aplikasi seluler Anda sendiri.

Ikuti tutorial ini untuk menerapkan teknik yang sama yang digunakan di sini untuk melatih model rekomendasi menggunakan kumpulan data Anda sendiri.

Tips untuk penyesuaian model dengan data Anda

Model yang dilatih sebelumnya yang terintegrasi dalam aplikasi demo ini dilatih dengan kumpulan data MovieLens , Anda mungkin ingin mengubah konfigurasi model berdasarkan data Anda sendiri, seperti ukuran vocab, penyematan redup, dan panjang konteks masukan. Berikut beberapa tip:

  • Panjang konteks masukan: Panjang konteks masukan terbaik bervariasi dengan kumpulan data. Kami menyarankan memilih panjang konteks masukan berdasarkan seberapa banyak peristiwa label yang berkorelasi dengan kepentingan jangka panjang vs konteks jangka pendek.

  • Pemilihan jenis encoder: sebaiknya pilih jenis encoder berdasarkan panjang konteks masukan. Encoder bag-of-words bekerja dengan baik untuk panjang konteks input pendek (misalnya <10), encoder CNN dan RNN menghadirkan kemampuan meringkas yang lebih untuk panjang konteks input yang panjang.

  • Menggunakan fitur yang mendasari untuk merepresentasikan item atau aktivitas pengguna dapat meningkatkan performa model, mengakomodasi item baru dengan lebih baik, kemungkinan memperkecil ruang penyematan sehingga mengurangi konsumsi memori dan lebih ramah perangkat.