Geniş ve Derin Önericisi Eğit

Bu makalede, öneri modelini eğitmek için Azure Machine Learning tasarımcısında Train Wide ve Deep Recommender bileşeninin nasıl kullanılacağı açıklanmaktadır. Bu bileşen, Google tarafından önerilen Geniş ve Derin öğrenmeyi temel alır.

Train Wide & Deep Recommender bileşeni, kullanıcı öğe derecelendirme üçlülerinin ve isteğe bağlı olarak bazı kullanıcı ve öğe özelliklerinin veri kümesini okur. Eğitilmiş bir Geniş ve Derin önerisini döndürür. Ardından, Score Wide ve Deep Recommender bileşenini kullanarak derecelendirme tahminleri veya öneriler oluşturmak için eğitilen modeli kullanabilirsiniz.

Öneri modelleri ve Geniş ve Derin önericisi hakkında daha fazla bilgi

Bir öneri sisteminin temel amacı, sistem kullanıcılarına bir veya daha fazla öğe önermektir. Bir öğeye örnek olarak film, restoran, kitap veya şarkı verilebilir. Kullanıcı bir kişi, kişi grubu veya öğe tercihlerine sahip başka bir varlık olabilir.

Önerilen sistemler için iki temel yaklaşım vardır.

  • birincisi, hem kullanıcılar hem de öğeler için özellikleri kullanan içerik tabanlı yaklaşımdır. Kullanıcılar yaş ve cinsiyet gibi özelliklerle, öğeler ise yazar ve üretici gibi özelliklerle açıklanabilir. İçerik tabanlı öneri sistemlerinin tipik örnekleri sosyal çöpçatanlık sitelerinde bulunabilir.
  • İkinci yaklaşım, yalnızca kullanıcıların ve öğelerin tanımlayıcılarını kullanan ve kullanıcılar tarafından öğelere verilen derecelendirme matrisinden (seyrek) bir derecelendirme matrisinden bu varlıklar hakkında örtük bilgiler alan işbirliğine dayalı filtrelemedir. Derecelendirdikleri öğelerden ve aynı öğeleri derecelendirmiş diğer kullanıcılardan bir kullanıcı hakkında bilgi edinebiliriz.

Geniş ve Derin önericisi, işbirliğine dayalı filtrelemeyi içerik tabanlı bir yaklaşımla kullanarak bu yaklaşımları birleştirir. Bu nedenle karma bir öneri olarak kabul edilir.

Bu nasıl çalışır: Bir kullanıcı sisteme göre yeni olduğunda, tahminler kullanıcı hakkındaki özellik bilgilerinden yararlanılarak iyileştirilir ve böylece iyi bilinen "soğuk başlangıç" sorunu giderilir. Ancak, belirli bir kullanıcıdan yeterli sayıda derecelendirme topladıktan sonra, yalnızca özelliklerine değil, belirli derecelendirmelerine göre onlar için tamamen kişiselleştirilmiş tahminler yapmak mümkündür. Bu nedenle, içerik tabanlı önerilerden işbirliğine dayalı filtrelemeye dayalı önerilere sorunsuz bir geçiş vardır. Kullanıcı veya öğe özellikleri kullanılamasa bile Geniş ve Derin öneri, işbirliğine dayalı filtreleme modunda çalışmaya devam eder.

Geniş ve Derin önericisi ve temel olasılığa dayalı algoritma hakkında daha fazla ayrıntı, ilgili araştırma makalesinde bulunabilir: Önerilen Sistemler için Geniş ve Derin Öğrenme.

Train Wide ve Deep Recommender'ı yapılandırma

Verileri hazırlama

Bileşeni kullanmaya çalışmadan önce, verilerinizin öneri modeli için beklenen biçimde olduğundan emin olun. Kullanıcı-öğe derecelendirme üçlülerinin eğitim veri kümesi gereklidir, ancak kullanıcı özelliklerini ve öğe özelliklerini (varsa) ayrı veri kümelerine de ekleyebilirsiniz.

Kullanıcı öğesi derecelendirmelerinin gerekli veri kümesi

Eğitim için kullanılan giriş verileri doğru biçimde doğru veri türünü içermelidir:

  • İlk sütun kullanıcı tanımlayıcıları içermelidir.
  • İkinci sütun öğe tanımlayıcıları içermelidir.
  • Üçüncü sütun, kullanıcı öğesi çiftinin derecelendirmesini içerir. Derecelendirme değerleri sayısal türde olmalıdır.

Örneğin, tipik bir kullanıcı öğesi derecelendirme kümesi şöyle görünebilir:

Kullanıcı Kimliği MovieId Rating
1 68646 10
223 31381 10

Kullanıcı özellikleri veri kümesi (isteğe bağlı)

Kullanıcı özellikleri veri kümesi, kullanıcılar için tanımlayıcılar içermelidir ve users-items-ratings veri kümesinin ilk sütununda sağlanan tanımlayıcıların aynısını kullanmalıdır. Kalan sütunlar, kullanıcıları tanımlayan herhangi bir sayıda özellik içerebilir.

Örneğin, tipik bir kullanıcı özellikleri kümesi şöyle görünebilir:

Kullanıcı Kimliği Yaş Cinsiyet İlgi Alanı Konum
1 25 erkek Drama Avrupa
223 40 kadın Romantizm Asya

Öğe özellikleri veri kümesi (isteğe bağlı)

Öğe özelliklerinin veri kümesi ilk sütununda öğe tanımlayıcıları içermelidir. Kalan sütunlar, öğeler için herhangi bir sayıda açıklayıcı özellik içerebilir.

Örneğin, tipik bir öğe özellikleri kümesi şöyle görünebilir:

MovieId Başlık Özgün Dil Tür Year
68646 Vaftiz Babası İngilizce Drama 1972
31381 Rüzgar Gibi Geçti İngilizce Geçmiş 1939

Modeli eğitme

  1. Tasarımcıdaki denemenize Train Wide ve Deep Recommender bileşenini ekleyin ve eğitim veri kümesine bağlayın.

  2. Kullanıcı özellikleri ve/veya öğe özelliklerinden oluşan ayrı bir veri kümeniz varsa bunları Train Wide ve Deep Recommender bileşenine bağlayın.

    • Kullanıcı özellikleri veri kümesi: kullanıcıları ikinci girişe açıklayan veri kümesini Bağlan.
    • Öğe özellikleri veri kümesi: Üçüncü girişe öğeleri açıklayan veri kümesini Bağlan.
  3. Dönemler: Algoritmanın tüm eğitim verilerini kaç kez işlemesi gerektiğini belirtir.

    Bu sayı ne kadar yüksekse eğitim o kadar yeterli olur; ancak, eğitim daha fazla zaman alır ve fazla uygunluk neden olabilir.

  4. Toplu iş boyutu: Bir eğitim adımında kullanılan eğitim örneklerinin sayısını yazın.

    Bu hiper parametre eğitim hızını etkileyebilir. Daha yüksek bir toplu iş boyutu, daha az zaman maliyeti dönemlerine yol açar, ancak yakınsama süresini artırabilir. Toplu iş GPU/CPU'ya sığmayacak kadar büyükse bir bellek hatası oluşabilir.

  5. Geniş parça iyileştirici: Modelin geniş bölümüne gradyan uygulamak için bir iyileştirici seçin.

  6. Geniş iyileştirici öğrenme oranı: Geniş parça iyileştiricisinin öğrenme oranını tanımlayan 0,0 ile 2,0 arasında bir sayı girin.

    Bu hiper parametre, minimum kayıp işlevine doğru ilerlerken her eğitim adımındaki adım boyutunu belirler. Büyük bir öğrenme oranı öğrenmenin minima atlayışına neden olabilirken, çok küçük bir öğrenme oranı yakınsama sorununa neden olabilir.

  7. Çapraz özellik boyutu: İstenen kullanıcı kimliklerini ve öğe kimliği özelliklerini girerek boyutu yazın.

    Geniş ve Derin önericisi, varsayılan olarak kullanıcı kimliği ve öğe kimliği özellikleri üzerinde çapraz ürün dönüşümü gerçekleştirir. Çapraz sonuç, boyutu sağlamak için bu sayıya göre karma olarak eklenir.

  8. Derin parça iyileştirici: Modelin derin kısmına gradyanlar uygulamak için bir iyileştirici seçin.

  9. Derin iyileştirici öğrenme oranı: Derin parça iyileştiricisinin öğrenme oranını tanımlayan 0,0 ile 2,0 arasında bir sayı girin.

  10. Kullanıcı ekleme boyutu: Kullanıcı kimliği ekleme boyutunu belirtmek için bir tamsayı yazın.

    Geniş ve Derin önericisi, hem geniş hem de derin kısım için paylaşılan kullanıcı kimliği eklemelerini ve öğe kimliği eklemelerini oluşturur.

  11. Öğe ekleme boyutu: Öğe kimliği ekleme boyutunu belirtmek için bir tamsayı yazın.

  12. Kategorik özellikler ekleme boyutu: Kategorik özellik ekleme boyutlarını belirtmek için bir tamsayı girin.

    Geniş ve Derin öneri öğesinin derin bileşeninde, her kategorik özellik için bir ekleme vektörü öğrenilir. Bu ekleme vektörleri de aynı boyutu paylaşır.

  13. Gizli birimler: Derin bileşenin gizli düğüm sayısını yazın. Her katmandaki düğüm sayısı virgülle ayrılır. Örneğin, "1000.500.100" türüne göre, derin bileşenin üç katmanı olduğunu belirtirsiniz ve ilk katmanda sırasıyla 1000 düğüm, 500 düğüm ve 100 düğüm bulunur.

  14. Etkinleştirme işlevi: Her katmana uygulanan bir etkinleştirme işlevi seçin, varsayılan değer ReLU'dur.

  15. Açılan liste: Eğitim sırasında çıkışların her katmana bırakılma olasılığını belirlemek için 0,0 ile 1,0 arasında bir sayı girin.

    Bırakma, sinir ağlarının fazla uygunluk sağlamasını önlemeye yönelik bir normalleştirme yöntemidir. Bu değerin yaygın kararlarından biri, çok çeşitli ağlar ve görevler için en uygun değere yakın gibi görünen 0,5 ile başlamaktır.

  16. Batch Normalleştirme: Derin bileşendeki her gizli katmandan sonra toplu normalleştirmeyi kullanmak için bu seçeneği belirleyin.

    Batch normalleştirmesi, ağ eğitimi sırasında iç birlikte değişken kaydırma sorunuyla mücadele etmek için kullanılan bir tekniktir. Genel olarak, ağların hızını, performansını ve kararlılığını artırmaya yardımcı olabilir.

  17. Ardışık düzeni çalıştırma.

Teknik notlar

Wide & Deep, ezberleme ve genelleştirmenin güçlü yönlerini birleştirmek için geniş doğrusal modelleri ve derin sinir ağlarını birlikte eğitmektedir. Geniş bileşen, özellik etkileşimlerini ezberlemek için bir dizi ham özelliği ve özellik dönüşümlerini kabul eder. Daha az özellik mühendisliğiyle, derin bileşen, düşük boyutlu yoğun özellik eklemeleri aracılığıyla görünmeyen özellik birleşimlerine genelleştirir.

Geniş ve Derin önericisi uygulamasında, bileşen varsayılan bir model yapısı kullanır. Geniş bileşen, kullanıcı eklemelerini, öğe eklemelerini ve kullanıcı kimliklerinin ve öğe kimliklerinin ürün arası dönüşümlerini giriş olarak alır. Modelin derin kısmı için her kategorik özellik için bir ekleme vektörü öğrenilir. Diğer sayısal özellik vektörleriyle birlikte, bu vektörler daha sonra derin ilerleme sinir ağına beslenir. Geniş bölüm ve derin kısım, tahmin olarak son çıkış günlüğü olasılıkları toplanarak birleştirilir ve sonunda ortak eğitim için ortak bir kayıp işlevine gider.

Sonraki adımlar

Bkz. Azure Machine Learning'in kullanabileceği bileşenler kümesi.