Öneri

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 öngörülen öneri adayını kodlamak için etiket kodlayıcı ile çift kodlayıcı bir 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 katlamalı evrişimli sinir ağı uygulama.
  • 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 çok özelliğini (özellik tabanlı) veya her ikisinin bir kombinasyonunu kullanabiliriz. Kullanıcıların 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, hem kimlik tabanlı hem de özellik tabanlı yaklaşımlarla öneri modellerini eğittik. Kimlik tabanlı model, girdi olarak yalnızca film kimliklerini, özellik tabanlı model ise 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 edilmiş önceden eğitilmiş model, MovieLens veri seti ile eğitilmiştir, model konfigürasyonunu kelime boyutu, gömme kararmaları ve giriş bağlam uzunluğu gibi kendi verilerinize göre değiştirmek isteyebilirsiniz. İşte birkaç ipucu:

  • Girdi bağlamı uzunluğu: En iyi girdi 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.