Machine Learning kullanarak bir film önerisi sistemi oluşturma

Blob Depolama
Container Instances
Cosmos DB
Veri Bilimi Sanal Makineleri
Machine Learning

Bu örnek senaryo, işletmelerin müşterilerinin ürün önerilerini otomatikleştirmek için makine öğrenimini nasıl kullanabileceğinizi gösterir. Özellikle, Azure 'da film derecelendirmelerine göre kullanıcılara film öneren bir modeli eğitmek için bir azure veri bilimi sanal makinesi (DSVM) kullanılır.

Kişiselleştirilmiş öneriler, perakende ile haberlere kadar çeşitli sektörlerde yararlı olabilir. Potansiyel uygulamalar, bir sanal depoda ürün önerileri sağlamayı, Haberler veya Gönderi önerileri sağlamayı ya da müzik önerileri sağlamayı içerir. İşletmeler, müşteriler için kişiselleştirilmiş öneriler sunmak yerine, Azure kullanarak, müşteri tercihlerini anlamak için modeller eğitmek üzere özelleştirilmiş öneriler sağlayabilir.

İlgili kullanım örnekleri

Aşağıdaki kullanım örnekleri için bu senaryoyu göz önünde bulundurun:

  • Web sitesinde film önerileri.
  • Bir mobil uygulamada tüketici ürün önerileri.
  • Akış ortamında haber önerileri.

Bir film önerisi sisteminin mimarisi

Eğitim filmi için bir makine öğrenimi modelinin mimarisi

Bu senaryo, film derecelendirmelerinin bir veri kümesi üzerinde Spark, en az kareler (ALS) algoritmasını kullanarak makine öğrenimi modelinin eğitim ve değerlendirme konularını ele alır. Bu senaryonun adımları şunlardır:

  1. Ön uç Web sitesi veya App Service, Kullanıcı, öğe ve sayısal derecelendirme tanımlama grupları tablosunda temsil edilen kullanıcı-film etkileşimlerinin geçmiş verilerini toplar.

  2. Toplanan geçmiş verileri BLOB depolama alanında depolanır.

  3. Bir Veri Bilimi Sanal Makinesi (DSVM) genellikle daha küçük iş yükleri için bir Spark öneren modeline dayalı bir ürün denemek veya geliştirmek için kullanılır. ALS modeli, veri bölme stratejisi uygulanarak genel veri kümesinden üretilen bir eğitim veri kümesi kullanılarak eğitilir. Örneğin, veri kümesi iş gereksinimine bağlı olarak rastgele, kronolojik veya dikey kümelere ayrılabilir. Diğer makine öğrenimi görevlerine benzer şekilde, bir öneren, değerlendirme ölçümleri (örneğin, precision@k, Recall@k, Map, nDCG@k) kullanılarak onaylanır.

  4. Azure Machine Learning, hiper parametre sweve model yönetimi gibi deneme koordine eder.

  5. eğitilen bir model, belirli bir kullanıcı için en üstteki k filmlerinizi önererek uygulanabilen Azure Cosmos DB kaydedilir.

  6. Model daha sonra Azure Container Instances veya Azure Kubernetes hizmeti kullanılarak bir Web veya App Service 'e dağıtılır.

Bir öneren hizmeti oluşturmaya ve ölçeklendirmeye yönelik derinlemesine bir kılavuz için, Azure 'da gerçek zamanlı bir öneri API 'Si oluşturmamakalesine bakın.

Bileşenler

  • Veri bilimi sanal makinesi (dsvm), Machine Learning ve veri bilimi için derin öğrenme çerçeveleri ve araçları olan bir Azure sanal makinedir. DSVM, ALS çalıştırmak için kullanılabilen bir tek başına Spark ortamına sahiptir. Daha küçük bir iş yükünüz varsa ve dağıtılmış bir çözüme ihtiyacınız yoksa DSVM kullanın.

  • Azure Blob depolama , film önerileri için veri kümesini depolar.

  • Azure Machine Learning , makine öğrenimi modellerini oluşturma, yönetme ve dağıtma sürecini hızlandırmak için kullanılır.

  • Azure Cosmos DB , genel olarak dağıtılmış ve çok modelli veritabanı depolamayı mümkün.

  • Azure Container Instances , isteğe bağlı olarak Azure Kubernetes hizmetinikullanarak eğitilen modelleri Web veya App Services 'a dağıtmak için kullanılır.

DSVM 'ye alternatif

Azure Databricks , model eğitimi ve değerlendirmesi gerçekleştirilen yönetilen bir Spark kümesidir. Yönetilen bir Spark ortamını dakikalar içinde ayarlayabilir ve kümelerin ölçeklendirilmesi ile ilişkili kaynakları ve maliyetleri el ile azaltmaya yardımcı olmak için Otomatik olarak yukarı ve aşağı doğru değiştirebilirsiniz. Başka bir kaynak kaydetme seçeneği, etkin olmayan kümelerin otomatik olarak sona ermesini yapılandırmak için kullanılır.

Dikkat edilmesi gerekenler

Kullanılabilirlik

Makine öğrenimini temel alan uygulamalar için kaynaklar, genellikle eğitim ve kaynak hizmetleri için kaynaklara ayrılır. Canlı üretim istekleri doğrudan bu kaynaklara ulaşmıyorsa, eğitim için gereken kaynakların genellikle yüksek kullanılabilirliğe ihtiyacı yoktur. Hizmet verme için gereken kaynakların, müşteri isteklerine hizmet vermek için yüksek kullanılabilirliğe sahip olması gerekir.

Eğitim için DSVM, dünyanın dört bir yanındaki birden fazla bölgede mevcuttur ve sanal makineler için hizmet düzeyi sözleşmesi 'ni (SLA) karşılar. Hizmet sunmak için Azure Kubernetes hizmeti, yüksek oranda kullanılabilir bir altyapı sağlar. Aracı düğümleri Ayrıca sanal makineler için SLA 'yı izler.

Ölçeklenebilirlik

Büyük bir veri ayarladıysanız, eğitim süresini kısaltmak için DSVM 'nizi ölçeklendirebilirsiniz. VM boyutunudeğiştirerek bir VM 'yi yukarı veya aşağı ölçeklendirebilirsiniz. Veri kümenizin bellek içinde sığması için yeterince büyük bir bellek boyutu seçin ve eğitimin harcadığı süreyi azaltmak için vCPU sayısını artırın.

Güvenlik

bu senaryo, kodunuzun, modellerinizin ve (bellek içi) verilerin bulunduğu dsvm 'ye erişimiçin kullanıcıların kimliğini doğrulamak üzere Azure Active Directory kullanabilir. veriler, Depolama Hizmeti Şifrelemesikullanılarak otomatik olarak şifrelendiği bir dsvm 'ye yüklenmeden önce Azure Depolama depolanır. izinler, Azure Active Directory kimlik doğrulaması veya rol tabanlı erişim denetimi aracılığıyla yönetilebilir.

Bu senaryoyu dağıtın

Önkoşullar: mevcut bir Azure hesabınız olmalıdır. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Bu senaryoya yönelik tüm kodlar Microsoft Recommenders deposundabulunabilir.

ALS hızlı başlangıç Not defteriniçalıştırmak için aşağıdaki adımları izleyin:

  1. Azure portal BIR DSVM oluşturun .

  2. Not defterleri klasöründeki depoyu kopyalayın:

    cd notebooks
    git clone https://github.com/Microsoft/Recommenders
    
  3. Setup.MD dosyasında açıklanan adımları izleyerek Conda bağımlılıklarını kurun.

  4. Bir tarayıcıda, Jupyıterlab sanal makinenize gidin ve adresine gidin notebooks/00_quick_start/als_pyspark_movielens.ipynb .

  5. Not defterini yürütün.

Sonraki adımlar

Diğer Azure Mimari Merkezi makalelerine bakın:

Bir kod deneyin: