Yardım Kaggle üzerinde TensorFlow ile Büyük Bariyer Resifi korumak Meydan Üyelik

Öneri

TensorFlow.org'da görüntüleyin Google Colab'da çalıştırın Kaynağı GitHub'da görüntüleyin

Kişiselleştirilmiş öneriler, mobil cihazlarda medya içeriği alma, alışveriş ürünü önerisi ve bir sonraki uygulama önerisi gibi çeşitli kullanım durumları için yaygın olarak kullanılmaktadır. Kullanıcı gizliliğine saygı gösterirken uygulamanızda kişiselleştirilmiş öneriler sunmakla ilgileniyorsanız, aşağıdaki örneği ve araç setini incelemenizi öneririz.

Başlamak

Android'de kullanıcılara alakalı öğelerin nasıl önerileceğini gösteren bir TensorFlow Lite örnek uygulaması sunuyoruz.

Android örneği

Android dışında bir platform kullanıyorsanız veya TensorFlow Lite API'lerine aşina iseniz, başlangıç ​​öneri modelimizi indirebilirsiniz.

Başlangıç ​​modelini indirin

Kendi modelinizi yapılandırılabilir bir şekilde eğitmek için Github'da eğitim komut dosyası da sağlıyoruz.

Eğitim kodu

Model mimarisini anlayın

Sıralı kullanıcı geçmişini kodlamak için bağlam kodlayıcı ve tahmin edilen öneri adayını kodlamak için etiket kodlayıcı ile çift kodlayıcı model mimarisinden yararlanıyoruz. Bağlam ve etiket kodlamaları arasındaki benzerlik, tahmin edilen adayın kullanıcının ihtiyaçlarını karşılama olasılığını temsil etmek için kullanılır.

Bu kod tabanıyla üç farklı sıralı kullanıcı geçmişi kodlama tekniği sağlanır:

  • Kelime torbası kodlayıcı (BOW): bağlam sırasını dikkate almadan kullanıcı etkinliklerinin düğünlerinin ortalamasını alma.
  • Evrişimli sinir ağı kodlayıcı (CNN): bağlam kodlaması oluşturmak için birden çok evrişimli sinir ağı katmanının uygulanması.
  • Tekrarlayan sinir ağı kodlayıcı (RNN): bağlam dizisini kodlamak için tekrarlayan sinir ağı uygulama.

Her bir kullanıcı etkinliğini modellemek için etkinlik öğesinin kimliğini (kimlik tabanlı) veya öğenin birden çok özelliğini (özellik tabanlı) veya her ikisinin bir kombinasyonunu kullanabiliriz. Kullanıcı davranışlarını toplu olarak kodlamak için birden çok özelliği kullanan özellik tabanlı model. Bu kod tabanıyla, yapılandırılabilir bir şekilde kimlik tabanlı veya özellik tabanlı modeller oluşturabilirsiniz.

Eğitimden sonra, öneri adayları arasında doğrudan ilk K tahminleri sağlayabilen bir TensorFlow Lite modeli ihraç edilecek.

Egzersiz verilerinizi kullanın

Eğitimli modele ek olarak, modelleri kendi verilerinizle eğitmek için GitHub'da açık kaynaklı bir araç seti sağlıyoruz. Araç setini nasıl kullanacağınızı öğrenmek ve eğitimli modelleri kendi mobil uygulamalarınızda dağıtmak için bu öğreticiyi takip edebilirsiniz.

Kendi veri kümelerinizi kullanarak bir öneri modeli eğitmek için burada kullanılanla aynı tekniği uygulamak için lütfen bu öğreticiyi izleyin.

Örnekler

Örnek olarak, hem kimlik tabanlı hem de özellik tabanlı yaklaşımlarla öneri modellerini eğittik. Kimlik tabanlı model, giriş olarak yalnızca film kimliklerini alır ve özellik tabanlı model, hem film kimliklerini hem de film türü kimliklerini giriş olarak alır. Lütfen aşağıdaki giriş ve çıkış örneklerini bulun.

Girişler

  • Bağlam filmi kimlikleri:

    • Aslan Kral (ID: 362)
    • Oyuncak Hikayesi (ID: 1)
    • (ve dahası)
  • Bağlam filmi türü kimlikleri:

    • Animasyon (ID: 15)
    • Çocuk (ID: 9)
    • Müzikal (ID: 13)
    • Animasyon (ID: 15)
    • Çocuk (ID: 9)
    • Komedi (ID: 2)
    • (ve dahası)

Çıktılar:

  • Önerilen film kimlikleri:
    • Oyuncak Hikayesi 2 (ID: 3114)
    • (ve dahası)

Performans testleri

Performans karşılaştırma numaraları, burada açıklanan araçla oluşturulur.

Model adı Model Boyutu cihaz İşlemci
öneri (giriş olarak film kimliği) 0.52 Mb Piksel 3 0,09 ms *
Piksel 4 0,05 ms *
öneri (giriş olarak film kimliği ve film türü) 1.3 Mb Piksel 3 0,13 ms *
Piksel 4 0,06 ms *

* 4 iplik kullanıldı.

Egzersiz verilerinizi kullanın

Eğitimli modele ek olarak, modelleri kendi verilerinizle eğitmek için GitHub'da açık kaynaklı bir araç seti sağlıyoruz. Araç setini nasıl kullanacağınızı öğrenmek ve eğitimli modelleri kendi mobil uygulamalarınızda dağıtmak için bu öğreticiyi takip edebilirsiniz.

Kendi veri kümelerinizi kullanarak bir öneri modeli eğitmek için burada kullanılanla aynı tekniği uygulamak için lütfen bu öğreticiyi izleyin.

Verilerinizle model özelleştirmeye yönelik ipuçları

Bu demo uygulamasına entegre edilmiş önceden eğitilmiş model, MovieLens veri kümesiyle eğitilmiştir; kelime haznesi boyutu, gömme boyutları ve girdi bağlam uzunluğu gibi kendi verilerinize dayalı olarak model yapılandırmasını değiştirmek isteyebilirsiniz. İşte birkaç ipucu:

  • Giriş bağlam uzunluğu: En iyi giriş bağlam uzunluğu, veri kümelerine göre değişir. Girdi bağlam uzunluğunu, etiket olaylarının uzun vadeli ilgi alanlarına karşı kısa vadeli bağlamla ne kadar ilişkili olduğuna göre seçmenizi öneririz.

  • Kodlayıcı türü seçimi: Giriş bağlam uzunluğuna göre kodlayıcı türünü seçmenizi öneririz. Kelime torbası kodlayıcı, kısa giriş bağlam uzunluğu (örneğin <10) için iyi çalışır, CNN ve RNN kodlayıcılar, uzun giriş bağlam uzunluğu için daha fazla özetleme yeteneği sağlar.

  • Öğeleri veya kullanıcı etkinliklerini temsil etmek için temel özellikleri kullanmak, model performansını artırabilir, yeni öğelere daha iyi uyum sağlayabilir, muhtemelen gömme alanlarını küçültebilir, dolayısıyla bellek tüketimini azaltabilir ve cihaz üzerinde daha kolay olabilir.