PlatoBlockchain Data Intelligence'a kod gerekmeden Amazon Personalize'ı kullanarak bir toplu öneri hattı oluşturun. Dikey Arama. Ai.

Amazon Kişiselleştir'i kullanarak kodsuz bir toplu öneri işlem hattı oluşturun

Müşteri etkileşimini artırma olasılığı daha yüksek olan kişiselleştirilmiş içerikle, işletmeler sürekli olarak müşterilerinin profiline ve davranışlarına göre uyarlanmış içerik sağlamaya çalışır. Özellikle tavsiye sistemleri, bir son kullanıcının bir öğeye vereceği tercihi tahmin etmeye çalışır. Bazı yaygın kullanım örnekleri, çevrimiçi perakende mağazalarında ürün önerilerini, haber bültenlerini kişiselleştirmeyi, müzik çalma listesi önerileri oluşturmayı ve hatta çevrimiçi medya hizmetlerinde benzer içeriği keşfetmeyi içerir.

Ancak model eğitimi, algoritma seçimi ve platform yönetimindeki karmaşıklıklar nedeniyle etkili bir öneri sistemi oluşturmak zor olabilir. Amazon Kişiselleştir geliştiricilerin, makine öğrenimi (ML) uzmanlığı gerektirmeden kişiselleştirilmiş ürün ve içerik önerileri aracılığıyla müşteri etkileşimini geliştirmesini sağlar. Geliştiriciler, yakalanan kullanıcı davranışı verilerini kullanarak müşterilerin ilgisini hemen çekmeye başlayabilir. Arka planda Amazon Personalize bu verileri inceler, neyin anlamlı olduğunu belirler, doğru algoritmaları seçer, verileriniz için özelleştirilmiş bir kişiselleştirme modelini eğitir ve optimize eder ve bir API uç noktası aracılığıyla öneriler sunar.

Önerilerin gerçek zamanlı olarak sağlanması, katılımı ve memnuniyeti artırmaya yardımcı olsa da, bazen bu gerçekten gerekli olmayabilir ve bunu toplu olarak planlanmış bir temelde gerçekleştirmek sadece daha uygun maliyetli ve yönetilebilir bir seçenek olabilir.

Bu gönderi, yalnızca öneriler oluşturmak için değil, aynı zamanda toplu öneri işlem hattını operasyonel hale getirmek için AWS hizmetlerini nasıl kullanacağınızı gösterir. Tek bir kod satırı olmadan uçtan uca çözümde ilerliyoruz. İki konuyu ayrıntılı olarak tartışıyoruz:

Çözüme genel bakış

Bu çözümde kullandığımız Film Lensi veri kümesi. Bu veri kümesi, 86,000 kullanıcıdan gelen 2,113 film derecelendirmesini içerir. Bu verileri, bu kullanıcıların her biri için öneriler oluşturmak üzere kullanmaya çalışıyoruz.

Müşteri davranışı verilerini Amazon Kişiselleştirme için hazır bir biçime aldığımızdan emin olmak için veri hazırlama çok önemlidir. Bu gönderide açıklanan mimari, ham verilerin Amazon Personalize'ın tüketmeye hazır bir biçime dönüştürülmesini gerçekleştirmek için sunucusuz bir veri entegrasyon hizmeti olan AWS Glue'u kullanır. Çözüm, bir toplu çıkarım kullanarak tüm kullanıcılar için toplu öneriler oluşturmak için Amazon Kişiselleştirme'yi kullanır. Ardından, Amazon Personalize API'lerini tekrarlanabilir bir şekilde çağırarak otomatikleştirilmiş iş akışının çalıştırılabilmesi için bir Step Functions iş akışı kullanırız.

Aşağıdaki diyagram bu çözümü göstermektedir.mimari diyagram

Bu çözümü aşağıdaki adımlarla oluşturacağız:

  1. AWS Glue kullanarak ham verilerimizi dönüştürmek için bir veri dönüştürme işi oluşturun.
  2. Dönüştürülen veri kümesiyle bir Amazon Kişiselleştirme çözümü oluşturun.
  3. Toplu çıkarımların oluşturulmasını düzenlemek için bir Step Functions iş akışı oluşturun.

Önkoşullar

Bu izlenecek yol için aşağıdakilere ihtiyacınız var:

AWS Glue ile ham verileri dönüştürmek için bir veri dönüştürme işi oluşturun

Amazon Personalize ile giriş verilerinin belirli bir şemaya ve dosya biçimine sahip olması gerekir. Kullanıcılar ve öğeler arasındaki etkileşimlerden elde edilen veriler, belirli sütunlarla birlikte CSV biçiminde olmalı, kendileri için öneriler oluşturmak istediğiniz kullanıcıların listesi ise JSON biçiminde olmalıdır. Bu bölümde, ham girdi verilerini Amazon Personalize için gerekli yapılara ve biçime dönüştürmek için AWS Glue Studio kullanıyoruz.

AWS Glue Studio, ayıklama, dönüştürme ve yükleme (ETL) işlerinin kolay oluşturulması ve çalıştırılması için tasarlanmış bir grafik arabirim sağlar. Basit sürükle ve bırak işlemleriyle görsel olarak veri dönüştürme iş yükleri oluşturabilirsiniz.

Önce kaynak verilerimizi hazırlıyoruz. Amazon Basit Depolama Hizmeti (Amazon S3), ardından verileri kodsuz dönüştürüyoruz.

  1. Amazon S3 konsolunda üç klasör içeren bir S3 klasörü oluşturun: ham, dönüştürülmüş ve seçilmiş.
  2. Atomic Cüzdanı indirin : Film Lensi veri kümesi ve user_ratingmovies-timestamp.dat adlı sıkıştırılmamış dosyayı ham klasörün altındaki kovanıza yükleyin.
  3. AWS Glue Studio konsolunda şunu seçin: Mesleki Öğretiler Gezinti bölmesinde.
  4. seç Kaynak ve hedef içeren görsel, Daha sonra seçmek oluşturmak.
  5. Çağrılan ilk düğümü seçin Veri kaynağı – S3 paketi. Giriş verilerimizi burada belirtiyoruz.
  6. Üzerinde Veri kaynağı özellikleri sekmesini seçin S3 konumu ve yüklediğiniz dosyaya göz atın.
  7. İçin Veri formatı, seçmek CSV, Ve için Sınırlayıcı, seçmek çıkıntı.
    AWS Tutkal Stüdyosu - S3
  8. Şemanın sütunları doğru çıkardığını doğrulamak için Çıktı şeması sekmesini seçebiliriz.
  9. Şema beklentilerinizi karşılamıyorsa, seçin Düzenle şemayı düzenlemek için
    AWS Glue Studio - Alanlar

Ardından, bu verileri Amazon Personalize için şema gereksinimlerini takip edecek şekilde dönüştürüyoruz.

  1. Seçin Dönüştür – Eşleme Uygula düğüm ve üzerinde Dönüştürmek sekmesinde hedef anahtarı ve veri türlerini güncelleyin.
    Amazon Personalize, en azından aşağıdaki yapıyı beklemektedir: etkileşim veri kümesi:
    • user_id (Dize)
    • item_id (Dize)
    • timestamp (uzun, Unix çağ saati biçiminde)
      AWS Glue Studio - Alan eşleme

Bu örnekte, kötü derecelendirilmiş filmleri veri kümesine dahil etmiyoruz.

  1. Bunu yapmak için, S3 kovası olarak adlandırılan son düğümü kaldırın ve üzerine bir filtre düğümü ekleyin. Dönüştürmek sekmesi.
  2. Klinik Ekle koşul ve derecelendirmenin <3.5 olduğu verileri filtreleyin.
    AWS Glue Studio - Çıktı

Şimdi çıktıyı Amazon S3'e geri yazıyoruz.

  1. genişletmek Hedef menü ve seçim Amazon S3.
  2. İçin S3 Hedef Konumu, adlı klasörü seçin transformed.
  3. Klinik CSV biçim ve son ek olarak Hedef konum ile interactions/.

Ardından, öneriler almak istediğimiz kullanıcıların bir listesini çıkarıyoruz.

  1. Seçin UygulaMapping düğümü tekrar genişletin ve ardından Dönüştürmek menü ve seçim UygulaMapping.
  2. dışındaki tüm alanları bırak user_id ve bu alanı yeniden adlandırın userId. Amazon Personalize, bu alanın adlandırılmasını bekliyor Kullanıcı kimliği.
  3. genişletmek Hedef tekrar menü ve seçin Amazon S3.
  4. Bu sefer seç JSON format olarak seçin ve ardından dönüştürülmüş S3 klasörünü seçin ve batch_users_input/.

Bu üretir JSON Amazon Personalize için girdi olarak kullanıcı listesi. Şimdi aşağıdakine benzeyen bir diyagramımız olmalı.

AWS Glue Studio - Tüm İş Akışı

Artık dönüşüm işimizi yürütmeye hazırız.

  1. IAM konsolunda, yapıştırıcı hizmet rolü adlı bir rol oluşturun ve aşağıdaki yönetilen politikaları ekleyin:
    • AWSGlueServiceRole
    • AmazonS3FullAccess

IAM hizmet rollerinin nasıl oluşturulacağı hakkında daha fazla bilgi için bkz. Bir AWS hizmetine izinleri devretmek için bir rol oluşturma.

  1. AWS Glue Studio işinize geri dönün ve İş detayları sekmesi.
  2. İş adını şu şekilde ayarlayın: batch-personalize-input-transform-job.
  3. Yeni oluşturulan IAM rolünü seçin.
  4. Diğer her şey için varsayılan değerleri koruyun.
    AWS Glue Studio - İş ayrıntıları
  5. Klinik İndirim.
  6. Hazır olduğunuzda seçin koşmak ve içindeki işi izlemek Runs sekmesi.
  7. İş tamamlandığında, çıktı dosyanızın başarıyla oluşturulduğunu doğrulamak için Amazon S3 konsoluna gidin.

Artık verilerimizi Amazon Kişiselleştirme'nin gerektirdiği biçim ve yapıya göre şekillendirdik. Dönüştürülen veri kümesi aşağıdaki alanlara ve biçime sahip olmalıdır:

  • Etkileşimler veri kümesi – Alanları olan CSV formatı USER_ID, ITEM_ID, TIMESTAMP
  • Kullanıcı girişi veri kümesi – elemanlı JSON formatı userId

Dönüştürülen veri kümesiyle bir Amazon Kişiselleştirme çözümü oluşturun

Etkileşim veri setimiz ve doğru formattaki kullanıcı giriş verilerimizle artık Amazon Kişiselleştirme çözümümüzü oluşturabiliriz. Bu bölümde veri seti grubumuzu oluşturuyor, verilerimizi içe aktarıyoruz ve ardından toplu çıkarım işi oluşturuyoruz. Bir veri kümesi grubu, kaynakları Amazon Kişiselleştirme bileşenleri için kapsayıcılar halinde düzenler.

  1. Amazon Kişiselleştirme konsolunda, oluşturmak veri kümesi grubu.
  2. İçin domainseçin görenek.
  3. Klinik Veri kümesi grubu oluşturun ve devam edin.
    Amazon Kişiselleştir - veri kümesi grubu oluşturun

Ardından, etkileşim veri kümesini oluşturun.

  1. Bir veri kümesi adı girin ve Yeni şema oluştur.
  2. Klinik Veri kümesi oluştur ve devam et.
    Amazon Kişiselleştirin - etkileşim veri kümesi oluşturun

Şimdi daha önce oluşturduğumuz etkileşim verilerini içe aktarıyoruz.

  1. Etkileşim CSV veri kümemizi oluşturduğumuz S3 klasörüne gidin.
  2. Üzerinde İzinler sekmesinde, Amazon Personalize'ın erişime sahip olması için aşağıdaki paket erişim ilkesini ekleyin. Paket adınızı eklemek için politikayı güncelleyin.
    {
       "Version":"2012-10-17",
       "Id":"PersonalizeS3BucketAccessPolicy",
       "Statement":[
          {
             "Sid":"PersonalizeS3BucketAccessPolicy",
             "Effect":"Allow",
             "Principal":{
                "Service":"personalize.amazonaws.com"
             },
             "Action":[
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
             ],
             "Resource":[
                "arn:aws:s3:::<your-bucket-name>",
                "arn:aws:s3:::<your-bucket-name> /*"
             ]
          }
       ]
    }

Amazon Kişiselleştir'e geri dönün ve Veri kümesi içe aktarma işinizi oluşturun. Etkileşim veri kümemiz artık Amazon Kişiselleştir'e aktarılıyor olmalıdır. Sonraki adıma geçmeden önce içe aktarma işinin Etkin durumuyla tamamlanmasını bekleyin. Bu yaklaşık 8 dakika sürmelidir.

  1. Amazon Kişiselleştirme konsolunda, Genel Bakış gezinme bölmesinde seçin ve Çözüm oluştur.
    Amazon Kişiselleştir - Kontrol Paneli
  2. Bir çözüm adı girin.
  3. İçin Çözüm türü, seçmek Ürün önerisi.
  4. İçin Yemek tarifi, seç aws-user-personalization yemek tarifi.
  5. Klinik Çözüm oluşturun ve eğitin.
    Amazon Kişiselleştirin - çözüm oluşturun

Çözüm artık, kullanıcı kişiselleştirme tarifiyle içe aktarılan etkileşim veri kümesine karşı eğitim veriyor. altında bu işlemin durumunu izleyin. Çözüm sürümleri. Devam etmeden önce tamamlanmasını bekleyin. Bu yaklaşık 20 dakika sürmelidir.
Amazon Kişiselleştir - Durum

Şimdi, JSON girişinde bulunan kullanıcıların her biri için öneriler üreten toplu çıkarım işimizi oluşturuyoruz.

  1. Gezinti bölmesinde, altında Özel kaynaklar, seçmek Toplu çıkarım işleri.
  2. Bir iş adı girin ve Çözüm, daha önce oluşturulan çözümü seçin.
  3. Klinik Toplu çıkarım işi oluştur.
    Amazon Kişiselleştir - toplu çıkarım işi oluşturun
  4. İçin Giriş verileri yapılandırması, S3 yolunu girin. batch_users_input dosya bulunur.

Bu, içeren JSON dosyasıdır. userId.

  1. İçin Çıkış verileri yapılandırması yol, S3'te seçilen yolu seçin.
  2. Klinik Toplu çıkarım işi oluştur.

Bu işlem yaklaşık 30 dakika sürer. İş bittiğinde, kullanıcı giriş dosyasında belirtilen kullanıcıların her biri için öneriler S3 çıkış konumuna kaydedilir.

Tüm kullanıcılarımız için bir dizi öneriyi başarıyla oluşturduk. Ancak şu ana kadar sadece konsolu kullanarak çözümü uyguladık. Bu toplu çıkarımın en son veri kümesiyle düzenli olarak çalıştığından emin olmak için bir düzenleme iş akışı oluşturmamız gerekir. Sonraki bölümde, Step Functions kullanarak bir orkestrasyon iş akışının nasıl oluşturulacağını göstereceğiz.

Toplu çıkarım iş akışını düzenlemek için bir Step Functions iş akışı oluşturun

İşlem hattınızı düzenlemek için aşağıdaki adımları tamamlayın:

  1. Step Functions konsolunda, öğesini seçin. Durum Makinesi Oluştur.
  2. seç İş akışınızı görsel olarak tasarlayın, Daha sonra seçmek Sonraki.
    AWS Step Functions - İş akışı oluşturun
  3. Sürükleyin CreateDatasetImportJob düğümü soldan (bu düğümü arama kutusunda arayabilirsiniz) tuval üzerine yerleştirin.
  4. Düğümü seçin ve sağ tarafta yapılandırma API parametrelerini görmelisiniz. ARN'yi kaydedin.
  5. alanına kendi değerlerinizi girin. API Parametreleri Metin kutusu.

Bu CreateDatasetImportJob Belirttiğiniz parametre değerlerine sahip API.

AWS Adım İşlevleri İş Akışı

  1. Sürükleyin CreateSolutionVersion tuval üzerine düğümleyin.
  2. Not ettiğiniz çözümün ARN'si ile API parametrelerini güncelleyin.

Bu, yeni içe aktarılan verilerle yeni bir çözüm sürümü oluşturur. Çözüm Sürümü Oluştur API.

  1. Sürükleyin CreateBatchInferenceJob tuval üzerine düğüm atın ve benzer şekilde API parametrelerini ilgili değerlerle güncelleyin.

kullandığınızdan emin olun. $.SolutionVersionArn önceki adımdan çözüm sürümü ARN parametresini almak için sözdizimi. Bu API parametreleri, CreateBatchInferenceİş API.

AWS Adım İşlevleri İş Akışı

Öneri toplu çıkarım işinin iş akışı tamamlanmadan önce bittiğinden emin olmak için Step Functions iş akışında bir bekleme mantığı oluşturmamız gerekiyor.

  1. Bir Bekle düğümünü bulun ve sürükleyin.
  2. için yapılandırmada Bekleyin, 300 saniye girin.

Bu keyfi bir değerdir; bu bekleme süresini özel kullanım durumunuza göre değiştirmelisiniz.

  1. Seçin CreateBatchInferenceJob tekrar düğüme gidin ve Hata işleme sekmesi.
  2. İçin Yakalamak hataları, girmek Personalize.ResourceInUseException.
  3. İçin geri dönüş durumu, seçmek Bekleyin.

Bu adım, işin durumunu periyodik olarak kontrol etmemizi sağlar ve yalnızca iş tamamlandığında döngüden çıkar.

  1. İçin Sonuç Yolu, girmek $.errorMessage.

Bu, "kullanılan kaynak" istisnası alındığında, işin aynı girdilerle yeniden denemeden önce x saniye beklediği anlamına gelir.

AWS Adım İşlevleri İş Akışı

  1. Klinik İndirimve sonra seçim yapın Yürütmeyi başlat.

Amazon Personalize için toplu öneri işlem hattımızı başarıyla düzenledik. İsteğe bağlı bir adım olarak kullanabilirsiniz Amazon EventBridge düzenli olarak bu iş akışının bir tetikleyicisini planlamak için. Daha fazla ayrıntı için bkz. Step Functions yürütme durumu değişiklikleri için EventBridge (CloudWatch Events).

Temizlemek

Gelecekte ücret alınmasını önlemek için, bu izlenecek yol için oluşturduğunuz kaynakları silin.

Sonuç

Bu gönderide, tek bir kod satırına veya ML deneyimine ihtiyaç duymadan AWS Glue, Amazon Personalize ve Step Functions kombinasyonunu kullanarak toplu öneri işlem hattının nasıl oluşturulacağını gösterdik. Verilerimizi Amazon Kişiselleştirme'nin gerektirdiği biçimde hazırlamak için AWS Glue kullandık. Ardından verileri içe aktarmak, kullanıcı kişiselleştirme tarifiyle bir çözüm oluşturmak ve geçmiş etkileşimlere dayalı olarak her kullanıcı için varsayılan 25 öneri oluşturan bir toplu çıkarım işi oluşturmak için Amazon Kişiselleştirme'yi kullandık. Daha sonra bu işleri otomatik olarak çalıştırabilmemiz için Step Functions kullanarak bu adımları düzenledik.

Sonraki adımlar için kullanıcı segmentasyonu, giriş verilerinin her satırı için kullanıcı segmentleri oluşturmak üzere keşfetmek isteyebileceğiniz Amazon Personalize'daki daha yeni tariflerden biridir. Daha fazla ayrıntı için bkz. Toplu öneriler ve kullanıcı segmentleri alma.


Yazar hakkında

maxine çiş

maxine çiş bir AWS Veri Laboratuvarı Çözümleri Mimarıdır. Maxine, müşterilerle kullanım durumları üzerinde çalışır, iş sorunlarını çözmek için çözümler tasarlar ve ölçeklenebilir prototipler oluşturma konusunda onlara rehberlik eder. Maxine, AWS yolculuğundan önce müşterilerin Avustralya'da BI, veri ambarı ve veri gölü projelerini uygulamalarına yardımcı oldu.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi