Öneri

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

tutucu17 l10n-yertutucu19 l10n-yer
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, medya içeriği alma, alışveriş ürünü önerisi ve sonraki uygulama önerisi gibi mobil cihazlarda ç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 sağlamakla ilgileniyorsanız, aşağıdaki örneği ve araç setini incelemenizi öneririz.

Başlamak

İlgili öğelerin Android'deki kullanıcılara 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'lerini zaten biliyorsanız, 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ı ile üç 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 yerleştirmelerinin ortalamasını alma.
  • Evrişimli sinir ağı kodlayıcı (CNN): bağlam kodlaması oluşturmak için birden çok evrişimli sinir ağı katmanı uygulamak.
  • Tekrarlayan sinir ağı kodlayıcı (RNN): bağlam sırasını kodlamak için tekrarlayan sinir ağının uygulanması.

Her kullanıcı etkinliğini modellemek için, etkinlik öğesinin kimliğini (kimliğe dayalı) veya öğenin birden fazla ö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ı ile, yapılandırılabilir bir şekilde ID tabanlı veya özellik tabanlı modeller oluşturabilirsiniz.

Eğitimden sonra, öneri adayları arasında doğrudan en iyi tahminleri sağlayabilecek bir TensorFlow Lite modeli dışa aktarılacaktır.

Egzersiz verilerinizi kullanın

Eğitilmiş 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ı ve eğitimli modelleri kendi mobil uygulamalarınızda nasıl dağıtacağınızı öğrenmek için bu öğreticiyi takip edebilirsiniz.

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

Örnekler

Örnek olarak, öneri modellerini hem kimlik tabanlı hem de özellik tabanlı yaklaşımlarla eğittik. Kimliğe dayalı model, girdi olarak yalnızca film kimliklerini alır ve özellik tabanlı model, girdi olarak hem film kimliklerini hem de film türü kimliklerini 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 karşılaştırmaları

Performans kıyaslama 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ılmıştır.

Egzersiz verilerinizi kullanın

Eğitilmiş 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ı ve eğitimli modelleri kendi mobil uygulamalarınızda nasıl dağıtacağınızı öğrenmek için bu öğreticiyi takip edebilirsiniz.

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

Verilerinizle model özelleştirmesi için ipuçları

Bu demo uygulamasına entegre edilen önceden eğitilmiş model, MovieLens veri seti ile eğitilmiştir, model yapılandırmasını kelime boyutu, gömme karartma ve giriş bağlam uzunluğu gibi kendi verilerinize göre 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. Etiket olaylarının uzun vadeli çıkarlarla kısa vadeli bağlam arasında ne kadar ilişkili olduğuna bağlı olarak girdi bağlamı uzunluğunu 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ısı, kısa girdi bağlam uzunluğu (örneğin <10) için iyi çalışır, CNN ve RNN kodlayıcıları, uzun girdi 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ı iyileştirebilir, yeni öğeleri daha iyi barındırabilir, muhtemelen gömme alanlarını küçültebilir, dolayısıyla bellek tüketimini azaltabilir ve daha fazla cihaz dostu olabilir.