Matchbox öneren eğitme

Matchbox algoritmasını kullanarak bir Bayetri öneren yapın

Kategori: Machine Learning/eğitme

Not

Uygulama hedefi: Machine Learning Studio (klasik)

Bu içerik yalnızca Studio (klasik) ile ilgilidir. Benzer sürükle ve bırak modülleri Azure Machine Learning tasarımcısına eklenmiştir. Bu makalede iki sürümü karşılaştırandaha fazla bilgi edinin.

Modüle genel bakış

Bu makalede, bir öneri modelini eğitebilmeniz için Azure Machine Learning Studio (klasik) ' de eğitim Matchbox öneren modülünün nasıl kullanılacağı açıklanır.

Azure Machine Learning 'daki öneri algoritması, Microsoft Researchtarafından geliştirilen Matchbox modelini temel alır. Algoritmayı ayrıntılı olarak açıklayan bir kağıt indirmek için Microsoft Research sitesindebu bağlantıya tıklayın.

Eğit Matchbox öneren modülü, Kullanıcı-öğe derecelendirmesi, Üçlü ve isteğe bağlı olarak bazı Kullanıcı ve öğe özellikleri veri kümesini okur. Eğitimli Matchbox öneren döndürür. Daha sonra eğitilen modeli kullanarak öneriler oluşturabilir, ilgili kullanıcıları bulabilir veya puan Matchbox öneren modülünü kullanarak ilgili öğeleri bulabilirsiniz.

İpucu

.NET geliştirme ekibinin bu öğreticide bir öneri sistemi oluşturma hakkında bilgi edinmek için gereken her şeyi öğrenin. , Bir uygulamadan Azure Machine Learning nasıl çağrılacağını gösteren örnek kodu ve tartışmayı içerir.

Azure Machine Learning kullanarak .NET uygulamaları için öneri altyapısı oluşturma

Öneri modelleri ve Matchbox öneren hakkında daha fazla bilgi

Öneri sisteminin ana amacı, sistem kullanıcılarına bir veya daha fazla öğe önermektir. Bir öğe örnekleri bir film, Restoran, kitap veya şarkı olabilir. Bir Kullanıcı bir kişi, kişi grubu veya öğe tercihleri olan başka bir varlık olabilir.

Öneren sistemlerinde iki ana 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çıklanmıştır. İçerik tabanlı öneri sistemlerinin tipik örnekleri sosyal eşleştirme 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 derecelendirmelerden (seyrek) bir matristen bu varlıklar hakkında örtülü bilgiler alan işbirliğine dayalı filtrelemedir. Bir kullanıcı hakkında, derecelendirilen öğelerden ve aynı öğeleri derecelendirilmiş diğer kullanıcılardan öğrenebilirsiniz.

Matchbox önerici, 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.

Bunun nasıl çalıştığını: Bir kullanıcı sistemde görece yeni olduğunda, tahminler kullanıcıyla ilgili özellik bilgilerden ve dolayısıyla iyi bilinen "soğuk başlatma" sorununun elesi ile geliştirilmiştir. Ancak, belirli bir kullanıcıdan yeterli sayıda derecelendirme toplanmışsa, tek başına ö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ılamıyor olsa bile Matchbox, işbirliğine dayalı filtreleme modunda çalışmaya devam ediyor.

Matchbox önerisini ve temel alınan olasılıksal algoritma hakkında daha fazla ayrıntıyı ilgili araştırma makalesinde bulunabilir: Matchbox: Large Scale Bayesian Recommendations Recommendations. Ayrıca, Machine Learning Blog'un öneri algoritmaları için üst düzey bir giriş sağlayan Recommendations Everywhere başlıklı bir makalesi vardır.

Train Matchbox Recommender'i yapılandırma

Verileri hazırlama

Modülünü kullanmayı denemeden önce, verilerinizin öneri modeli tarafından beklenen biçimde olması önemlidir. Eğitim verileri Kullanıcı-öğe derecelendirme Üçlü kümesi gereklidir, ancak farklı veri kümelerinde Kullanıcı özelliklerini ve öğe özelliklerini (varsa) da dahil edebilirsiniz.

Kaynak verileri eğitim ve test veri kümelerine bölmek için bölünmüş veri modülündeki öneren Split seçeneğini kullanın.

Kullanıcı-öğe derecelendirmelerinin gerekli veri kümesi

Eğitim için kullanılan giriş verilerinin doğru biçimdeki doğru veri türünü içermesi çok önemlidir:

  • İlk sütunun Kullanıcı tanımlayıcıları içermesi gerekir.
  • İkinci sütunun öğe tanımlayıcıları içermesi gerekir.
  • Üçüncü sütun, Kullanıcı öğesi çiftinin derecelendirmesini içerir. Derecelendirme değerleri sayısal ya da kategorik olmalıdır.

Eğitim sırasında, derecelendirme değerlerinin hepsi aynı olamaz. Ayrıca, sayısal ise, en düşük ve en yüksek derecelendirme değerleri arasındaki fark 100 ' den küçük ve ideal olarak 20 ' den büyük olmalıdır.

Azure Machine Learning Studio (klasik) içindeki Restoran derecelendirme veri kümesi ( kayıtlı veri kümelerine tıklayın ve sonra örnekler) beklenen biçimi gösterir:

userID Placeıd rating
U1077 135085 2
U1077 135038 2

Bu örnekten, tek bir kullanıcının iki ayrı Restoranları derecelendirdiğinden emin olabilirsiniz.

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

Kullanıcı özelliklerinin veri kümesi, kullanıcılar için tanımlayıcı içermeli ve Users-Items-derecelendirmeler veri kümesinin ilk sütununda sağlanmış olan tanımlayıcıların aynısını kullanmalıdır. Kalan sütunlar, kullanıcıları açıklayan herhangi bir sayıda özellik içerebilir.

Örneğin, Azure Machine Learning Studio'da (klasik) Restaurant müşteri veri kümesine bakın. Tipik bir kullanıcı özellikleri kümesi şöyledir:

userID Ortam Dress_preference taşıma Sigara içen
U1004 aile Gayri resmi Yaya olarak FALSE
U1005 Arkadaşlar Tercih yok Araba sahibi TRUE

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

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

Örneğin, Azure Machine Learning Studio'da (klasik) sağlanan Restaurant özelliği veri veri kümesine bakın (Kaydedilen Veri Kümeleri'ne ve ardından Örnekler'e tıklayın). Tipik bir öğe özellikleri kümesi (bu durumda öğe bir restorandır) şöyle olabilir:

placeID Alkol Smoking_area price Kormbence
135106 Wine-Beer yok zayıf aile
132667 No_Alcohol_Served belirlen orta yasadışı

Modeli eğitme

  1. .Net 'teki denemenize Matchbox öneren modülünü ekleyin (klasik) ve eğitim verilerine bağlayın.

  2. Kullanıcı özellikleri ve/veya öğe özelliklerinin ayrı bir veri kümeniz varsa, bunları tren Matchbox öneren modülüne bağlayın.

    • Kullanıcı özellikleri veri kümesi: kullanıcıları açıklayan veri kümesini ikinci girişe bağlama.

    • Öğe özellikleri veri kümesi: öğeleri açıklayan veri kümesini üçüncü girişe bağlama.

  3. Eğitim toplu Işi sayısı için eğitim sırasında verileri bölmek için toplu işlerin sayısını yazın.

    Bu değere bağlı olarak, Kullanıcı-öğe derecelendirmesi Üçlü listesi, eğitim sırasında birden çok parçaya veya toplu iş kümesine ayrılmıştır.

    Matchbox öneren eğitimi, toplu işlemleri paralel olarak çalıştırdığından, tüm eğitim verilerinin belleğe sığması halinde eğitim toplu iş sayısının kullanılabilir çekirdek sayısına ayarlanması önerilir. Aksi takdirde, eğitim toplu iş sayısı, eğitim verilerinin belleğe sığması için kullanılabilir çekirdek sayısının en düşük katı olarak ayarlanmalıdır.

    Eğitim verileri varsayılan olarak dört (4) toplu işlem halinde bölünür. Yalnızca Kullanıcı-öğe derecelendirmesi üçlü veri kümesi bölünür. Özelliklerin bölünmesi gerekmay olduğundan kullanıcı veya öğe özellikleri bölünmez.

  4. Nitelik sayısı için, her kullanıcı ve öğe için öğrenilen gizli nitelik sayısını yazın.

    Nitelik sayısı ne kadar yüksek ise tahminler genellikle o kadar doğru olur; ancak, eğitim daha yavaş olacaktır. Nitelik sayısı genellikle 2 - 20 aralığındadır.

  5. Öneri algoritması yineleme sayısı için, algoritmanın giriş verilerini kaç kez işlemesi gerektiğini belirtir.

    Matchbox önerici, giriş verileri üzerinde birden çok kez tekrarlana bir ileti geçirme algoritması kullanılarak eğitilmiş olur. Bu sayı ne kadar yüksek ise tahminler o kadar doğru olur; ancak, eğitim daha yavaştır. Yineleme sayısı genellikle 1 - 10 aralığındadır.

  6. Denemeyi çalıştırın veya yalnızca Train Matchbox Recommender modülünü ve Ardından Çalıştır'ı seçin.

Örnekler

Öneri modellerinin verilerde nasıl Azure Machine Learning örnekler için, Azure Yapay Zeka Galerisi' içinde bu örnek denemelere bakın:

  • Film öneri örneği:Bir öneri modeli kullanarak eğitim, değerlendirme ve puan göstermeyi gösterir.

Teknik notlar

Bu bölümde uygulama ayrıntıları, ipuçları ve sık sorulan soruların yanıtları yer almaktadır.

Kullanım ipuçları

  • Özellik sütununda eksik değerler varsa, eksik değerlerin yerine eksik olmayan değerlerin modu kullanılır.

  • Tüm kullanıcı ve öğe özellikleri birim uzunluğuna sahip olacak şekilde yeniden ölçeklendirildi. Böylece maksimum mutlak değer 1 olur. Özellik değerlerine çeviri uygulanmaz; bu nedenle, bunların sparsitesini korumak için.

Kısıtlamalar

Bir öneri modelinin çevrimiçi güncelleştirmesi (veya sürekli eğitimi) şu anda Azure Machine Learning. Önerilere kullanıcı yanıtlarını yakalamak ve modeli geliştirmek için bunları kullanmak için tam modeli düzenli aralıklarla yeniden eğitmanızı öneririz. Artımlı eğitim mümkün değildir, ancak en son veriler kullanılırken veri hacminin en aza indirilmesi için eğitim verilerine kayan bir pencere uygulayabilirsiniz.

Öneren bellek kullanımı tahmin ediliyor

Şu anda, Matchbox 'ın bellek parmak izine ait alt sınır 16 * N\(4\T + 2\R) bayttır. burada N , eğitim veri kümesindeki kullanıcı-öğe derecelendirmesi ve en düşük ve en yüksek derecelendirme (eğitim veri kümesinde) arasındaki farkı gösterir.

Seri hale getirilmiş bir Matchbox öneren modelinin boyutu yaklaşık 16 * T\(U\R + I + X + Y) bayttır; burada U Kullanıcı sayısını, öğe sayısı olarak X , Kullanıcı özelliklerinin sayısına ve Y 'yi öğe özelliklerinin sayısına başvurur.

Beklenen girişler

Ad Tür Description
Kullanıcı-öğe derecelendirmesi için eğitim veri kümesi Veri tablosu Kullanıcılara göre öğelerin derecelendirmeleri, Üçlü (Kullanıcı, öğe, derecelendirme) olarak ifade edilir
Kullanıcı özelliklerinin eğitim veri kümesi Veri tablosu Kullanıcıları tanımlayan özellikleri içeren veri kümesi (isteğe bağlı)
Öğe özelliklerinin eğitim veri kümesi Veri tablosu Öğeleri tanımlayan özellikleri içeren veri kümesi (isteğe bağlı)

Modül parametreleri

Name Aralık Tür Varsayılan Description
Nitelikler sayısı >= 0 Tamsayı 10 Öneren ile kullanılacak nitelikler sayısını belirtin (isteğe bağlı)
Öneri algoritması yinelemesi sayısı >= 1 Tamsayı 5 Öneri modeline eğitim yaparken gerçekleştirilecek en fazla yineleme sayısını belirtin (isteğe bağlı)
Eğitim toplu işlerinin sayısı >=1 Tamsayı 4 Öneriyle birlikte kullanmak üzere eğitim toplu işlerinin sayısını belirtin (isteğe bağlı)

Çıkışlar

Ad Tür Description
Eğitilen Matchbox önerici ILearner arabirimi Eğitilen Matchbox önerici

Özel durumlar

Özel durum Description
Hata 0022 Giriş veri kümesinde seçilen sütun sayısı beklenen sayıya eşit yoksa özel durum oluşur.
Hata 0036 Bir kullanıcı veya öğe için birden çok özellik vektörü sağlandı ise özel durum oluşur.
Hata 0018 Giriş veri kümesi geçerli değilse özel durum oluşur.
Hata 0035 Özel durum, verilen bir kullanıcı veya öğe için hiçbir özellik sağlanamıyorsa oluşur.
Hata 0034 Bir kullanıcı öğesi çifti için birden fazla derecelendirme varsa özel durum oluşur.
Hata 0053 Matchbox önerileri için kullanıcı özellikleri veya öğeleri yoksa özel durum oluşur.
Hata 0003 Bir veya daha fazla giriş null veya boşsa özel durum oluşur.

Studio (klasik) modüllerine özgü hataların listesi için bkz. Machine Learning hata kodları.

API özel durumlarının listesi için bkz. Machine Learning REST API hata kodları.

Ayrıca bkz.

Çapraz doğrulama modeli
Öneren değerlendir
Eğit
Puan Matchbox öneren