Makine öğrenmesi kullanarak film öneri sistemi oluşturma

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

Bu makalede açıklanan çözüm, otomatik olarak ve uygun ölçekte film önerileri oluşturmak için makine öğrenmesini kullanır.

Mimari

Film önerilerini eğiten makine öğrenmesi modelinin mimarisinin diyagramı.

Bu mimarinin bir Visio dosyasını indirin.

İş akışı

  1. Ön uç web sitesi veya uygulama hizmeti, izleyici film derecelendirmelerinin geçmişini toplar.
  2. Geçmişi Azure Blog Depolama'da depolar.
  3. DSVM, derecelendirme geçmişinin bir alt kümesi olan bir eğitim veri kümesini kullanarak Makine Öğrenmesi modelini eğitmektedir.
    • İş yükü, bir DSVM'nin bir ürünü denemeye ve geliştirmeye uygun olacak kadar küçük.
    • Eğitim veri kümesi, bir veri bölme stratejisi uygulanarak derecelendirme geçmişinden çekilir. Örneğin, veri kümesi iş gereksinimine bağlı olarak rastgele, kronolojik veya katmanlı kümelere ayrılabilir.
    • Diğer makine öğrenmesi görevlerinde olduğu gibi model de precision@k, recall@k,MAP ve nDCG@k) gibi değerlendirme ölçümleri kullanılarak doğrulanır.
  4. Machine Learning, hiper parametre süpürme ve model yönetimi gibi görevler gerçekleştirerek denemeyi koordine eder.
  5. DSVM, eğitilen modeli Azure Cosmos DB'ye kaydeder. Artık model, belirli bir kullanıcı için en iyi k filmleri önermek için kullanılabilir.
  6. Model, Azure Container Instances veya Azure Kubernetes Service (AKS) kullanılarak bir web veya uygulama hizmetine dağıtılır.

Önerilen hizmeti oluşturma ve ölçeklendirmeye yönelik ayrıntılı bir kılavuz için Azure'da gerçek zamanlı öneri API'sini oluşturma makalesine bakın.

Bileşenler

  • Veri Bilimi Sanal Makineler veri analizi, makine öğrenmesi ve yapay zeka eğitimi için araçlarla önceden yüklenmiş, yapılandırılmış ve test edilmiş Azure Sanal Makine görüntüleri olan DSVM'ler sağlar. DSVM, ALS'yi çalıştırmak için kullanılabilecek tek başına bir Spark ortamına sahiptir. Daha küçük bir iş yükünüz olduğunda ve dağıtılmış bir çözüme ihtiyacınız olmadığında DSVM kullanın.
  • Azure Depolama , veriler, uygulamalar ve iş yükleri için yüksek düzeyde ölçeklenebilir ve güvenli bulut hizmetleri kümesidir. Azure Dosyalar, Blob Depolama, Azure Tablo Depolama, Azure Kuyruk Depolama ve diğer hizmetleri içerir.
  • Blob Depolama , yapılandırılmamış veriler için ölçeklenebilir ve güvenli nesne depolama alanıdır. Arşivler, veri gölleri, yüksek performanslı bilgi işlem, makine öğrenmesi ve bulutta yerel iş yükleri için kullanabilirsiniz. Bu çözümde film önerileri veri kümesini barındırıyor.
  • Machine Learning , modelleri hızla oluşturmaya ve dağıtmaya yönelik kurumsal düzeyde bir makine öğrenmesi hizmetidir. Tüm beceri düzeylerindeki kullanıcılara düşük kod tasarımcısı, otomatik makine öğrenmesi ve çeşitli IDE'leri destekleyen barındırılan bir Jupyter not defteri ortamı sağlar.
  • Azure Cosmos DB , modern uygulama geliştirme için tam olarak yönetilen, yüksek oranda duyarlı, ölçeklenebilir bir NoSQL veritabanıdır. Kurumsal düzeyde güvenlik sağlar ve birçok veritabanı, dil ve platform için API'leri destekler. Örnek olarak SQL, MongoDB, Gremlin, Tablo ve Apache Cassandra verilebilir. Azure Cosmos DB'deki sunucusuz, otomatik ölçeklendirme seçenekleri, uygulamaların kapasite taleplerini verimli bir şekilde yönetir.
  • Container Instances, Azure'da kapsayıcı çalıştırmanın en hızlı ve en basit yolunu sağlar. Sanal makineleri yönetmenizi veya daha üst düzey bir hizmeti benimsemenizi gerektirmez. AKS, saniyeler içinde başlayan Container Instances içinde pod sağlamak için Sanal Kubelet'i kullanabilir. Bu, AKS'nin ortalama iş yükünüz için yeterli kapasiteyle çalışmasını sağlar. AKS kümenizde kapasiteniz tükendikçe, yönetecek başka sunucu oluşturmadan ACI'deki ek podların ölçeğini genişletin.
  • AKS yüksek oranda kullanılabilir, güvenli ve tam olarak yönetilen bir Kubernetes hizmetidir. Sistem durumu izleme ve bakım gibi kritik görevleri Azure'a boşaltarak Kubernetes'in basitleştirilmiş dağıtımını ve yönetimini sağlar. AKS, Apache Spark gibi büyük veri işleme altyapıları açık kaynak barındırır. AKS kullanarak, yönetilen bir ortamda büyük ölçekli akış işleme işleri çalıştırabilirsiniz.

Alternatifler

Azure Databricks , Azure DSVM'lerine alternatiftir. Modelleri eğitip değerlendirmek için yönetilen bir Spark kümesidir. Yönetilen Spark ortamını dakikalar içinde ayarlayabilir ve kümeleri el ile ölçeklendirmeyle ilişkili kaynakları ve maliyetleri azaltmaya yardımcı olmak için otomatik ölçeklendirmeyi artırıp azaltabilirsiniz. Başka bir kaynak kaydetme seçeneği, etkin olmayan kümeleri otomatik olarak sonlandıracak şekilde yapılandırmaktır.

Senaryo ayrıntıları

Müşterilere kişiselleştirilmiş ürün önerileri sağlamak, bir işletmenin satışları artırması için etkili bir yol olabilir. Ayrıca, çoğu durumda önerileri sağlamak için makine öğrenmesini kullanabileceğiniz için uygun maliyetli de olabilir.

Bu makalede açıklanan çözüm, otomatik olarak ve uygun ölçekte film önerileri oluşturmak için makine öğrenmesini kullanır. Azure Machine Learning, bir görüntüleyici film derecelendirmesi veri kümesine alternatif en küçük kareler (ALS) algoritmasını uygulayarak önerileri hesaplar. Veri bilimi sanal makinesi (DSVM), Machine Learning modelini eğitma sürecini koordine eder.

Olası kullanım örnekleri

Kişiselleştirilmiş öneriler perakende, haberler ve medya/eğlence gibi birçok sektörde yararlı olabilir. Olası uygulamalar şunlardır:

  • Çevrimiçi bir mağazada ürün önerileri.
  • Bir haber veya sosyal medya sitesinde haberler veya gönderi önerileri.
  • Akış uygulamasında veya çevrimiçi mağazada müzik önerileri.
  • Film akışı uygulamasında film önerileri.

Dikkat edilmesi gerekenler

Bu önemli noktalar, bir iş yükünün kalitesini artırmak için kullanılabilecek bir dizi yol gösteren ilke olan Azure Well-Architected Framework'ün yapı taşlarını uygular. Daha fazla bilgi için bkz. Microsoft Azure Well-Architected Framework.

Güvenilirlik

Güvenilirlik, uygulamanızın müşterilerinize sağladığınız taahhütleri karşılayabilmesini sağlar. Daha fazla bilgi için bkz . Güvenilirlik sütununa genel bakış.

  • Makine öğrenmesini temel alan uygulamalar için kaynaklar genellikle eğitim kaynaklarına ve kullanıma yönelik kaynaklara ayrılır. Canlı üretim istekleri bu kaynaklara doğrudan ulaşmaz çünkü eğitim için gereken kaynaklar genellikle yüksek kullanılabilirliğe ihtiyaç duymaz. Hizmet vermek 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'ler dünyanın dört bir yanındaki birden çok bölgede kullanılabilir. Sanal makineler için hizmet düzeyi sözleşmesini (SLA) karşılar. AKS, hizmet vermek için yüksek oranda kullanılabilir bir altyapı sağlar. Aracı düğümleri ayrıca sanal makineler için SLA'yı izler.

Güvenlik

Güvenlik, kasıtlı saldırılara ve değerli verilerinizin ve sistemlerinizin kötüye kullanılmasına karşı güvence sağlar. Daha fazla bilgi için bkz. Güvenlik sütununa genel bakış.

  • Bu senaryo, kod, model ve (bellek içi) verilerinizi içeren DSVM'ye erişim için kullanıcıların kimliğini doğrulamak için Azure Active Directory (Azure AD) kullanabilir. Veriler, Depolama Hizmeti Şifrelemesi kullanılarak otomatik olarak şifrelendiği bir DSVM'ye yüklenmeden önce Azure Depolama'da depolanır. İzinler Azure AD kimlik doğrulaması veya rol tabanlı erişim denetimi aracılığıyla yönetilebilir.

Performans verimliliği

Performans verimliliği, kullanıcılar tarafından anlamlı bir şekilde yerleştirilen talepleri karşılamak amacıyla iş yükünüzü ölçeklendirme becerisidir. Daha fazla bilgi için bkz . Performans verimliliği sütununa genel bakış.

  • Büyük bir veri kümeniz varsa, eğitim süresini kısaltmak için DSVM'nizi ölçeklendikleyebilirsiniz. VM boyutunu değiştirerek bir VM'nin ölçeğini artırıp azaltabilirsiniz. Veri kümenizi bellek içine sığdıracak kadar büyük bir bellek boyutu seçin ve eğitimin aldığı süreyi azaltmak için vCPU sayısını artırın.

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 senaryonun tüm kodları Microsoft Recommenders deposunda kullanılabilir.

ALS hızlı başlangıç not defterini çalıştırmak için şu adımları izleyin:

  1. Azure portal bir DSVM oluşturun.

  2. Notebooks 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ı yükleyin.

  4. Tarayıcıda JupyterLab VM'nize gidin ve adresine notebooks/00_quick_start/als_pyspark_movielens.ipynbgidin.

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

Sonraki adımlar