Terima kasih telah mendengarkan Google I/O. Lihat semua sesi sesuai permintaan Tonton sesuai permintaan

Rekomendasi

Lihat di TensorFlow.org 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, sebaiknya jelajahi contoh dan toolkit berikut.

Memulai

Kami menyediakan aplikasi contoh TensorFlow Lite yang menunjukkan 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 mengunduh model rekomendasi pemula kami.

Unduh model pemula

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

Kode pelatihan

Memahami arsitektur model

Kami memanfaatkan arsitektur model encoder ganda, dengan encoder konteks untuk mengkodekan riwayat pengguna berurutan dan encoder label untuk mengkodekan kandidat rekomendasi yang diprediksi. Kesamaan antara pengkodean konteks dan 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 saraf convolutional (CNN): menerapkan beberapa lapisan jaringan saraf convolutional untuk menghasilkan pengkodean konteks.
  • Encoder jaringan saraf berulang (RNN): menerapkan jaringan saraf berulang untuk mengkodekan urutan konteks.

Untuk memodelkan setiap aktivitas pengguna, kita dapat menggunakan ID item aktivitas (berbasis ID), atau beberapa fitur item (berbasis fitur), atau kombinasi keduanya. Model berbasis fitur yang memanfaatkan beberapa fitur untuk secara kolektif mengkodekan 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 dapat langsung 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.

Silakan 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)
    • Cerita Mainan (ID: 1)
    • (dan banyak lagi)
  • 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 banyak lagi)

Keluaran:

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

Tolok ukur kinerja

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

Nama model Ukuran Model Perangkat CPU
rekomendasi (ID film sebagai masukan) 0,52 Mb Piksel 3 0,09 ms*
Piksel 4 0,05 ms*
rekomendasi (ID film dan genre film sebagai input) 1,3 Mb Piksel 3 0.13ms*
Piksel 4 0,06 ms*

* 4 benang 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.

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

Kiat untuk penyesuaian model dengan data Anda

Model pra-pelatihan yang terintegrasi dalam aplikasi demo ini dilatih dengan dataset MovieLens , Anda mungkin ingin memodifikasi konfigurasi model berdasarkan data Anda sendiri, seperti ukuran vocab, penyematan redup, dan panjang konteks input. Berikut adalah beberapa tips:

  • Panjang konteks input: Panjang konteks input terbaik bervariasi menurut kumpulan data. Sebaiknya pilih panjang konteks masukan berdasarkan seberapa banyak peristiwa label berkorelasi dengan minat jangka panjang vs konteks jangka pendek.

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

  • Menggunakan fitur yang mendasari untuk mewakili item atau aktivitas pengguna dapat meningkatkan kinerja model, mengakomodasi item baru dengan lebih baik, mungkin mengurangi ruang penyematan sehingga mengurangi konsumsi memori dan lebih ramah pada perangkat.