Utwórz potok rekomendacji wsadowych za pomocą usługi Amazon Personalizuj bez kodu PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Utwórz potok rekomendacji wsadowych za pomocą Amazon Personalizuj bez kodu

Dzięki spersonalizowanym treściom, które z większym prawdopodobieństwem będą zwiększać zaangażowanie klientów, firmy nieustannie starają się dostarczać treści dostosowane do ich profilu i zachowania. Systemy rekomendacji w szczególności starają się przewidzieć preferencje, jakie użytkownik końcowy nada produktowi. Niektóre typowe przypadki użycia obejmują rekomendacje produktów w internetowych sklepach detalicznych, personalizowanie biuletynów, generowanie rekomendacji list odtwarzania muzyki, a nawet znajdowanie podobnych treści w internetowych usługach medialnych.

Jednak stworzenie skutecznego systemu rekomendacji może być trudne ze względu na złożoność uczenia modeli, wyboru algorytmów i zarządzania platformą. Amazon Personalizuj umożliwia programistom zwiększenie zaangażowania klientów dzięki spersonalizowanym rekomendacjom produktów i treści bez wymaganej wiedzy na temat uczenia maszynowego (ML). Deweloperzy mogą od razu zacząć angażować klientów, korzystając z przechwyconych danych o zachowaniu użytkowników. Za kulisami Amazon Personalizacja analizuje te dane, identyfikuje, co jest istotne, wybiera odpowiednie algorytmy, trenuje i optymalizuje model personalizacji dostosowany do Twoich danych oraz dostarcza rekomendacje za pośrednictwem punktu końcowego interfejsu API.

Chociaż dostarczanie rekomendacji w czasie rzeczywistym może pomóc zwiększyć zaangażowanie i satysfakcję, czasami może to nie być w rzeczywistości wymagane, a wykonywanie tego wsadowo zgodnie z harmonogramem może być po prostu bardziej opłacalną i łatwiejszą do zarządzania opcją.

Ten post pokazuje, jak korzystać z usług AWS, aby nie tylko tworzyć rekomendacje, ale także operacjonalizować potok rekomendacji wsadowych. Przechodzimy przez kompleksowe rozwiązanie bez ani jednej linii kodu. Szczegółowo omawiamy dwa tematy:

Omówienie rozwiązania

W tym rozwiązaniu wykorzystujemy Obiektyw filmu zbiór danych. Ten zestaw danych zawiera 86,000 2,113 ocen filmów od XNUMX użytkowników. Staramy się wykorzystywać te dane do generowania rekomendacji dla każdego z tych użytkowników.

Przygotowanie danych jest bardzo ważne, aby upewnić się, że otrzymujemy dane o zachowaniach klientów w formacie gotowym do personalizacji Amazon. Architektura opisana w tym poście wykorzystuje AWS Glue, bezserwerową usługę integracji danych, aby przeprowadzić transformację surowych danych do formatu, który jest gotowy do użycia przez Amazon Personalizuj. Rozwiązanie wykorzystuje usługę Amazon Personalizuj do tworzenia rekomendacji wsadowych dla wszystkich użytkowników przy użyciu wnioskowania wsadowego. Następnie używamy przepływu pracy Step Functions, aby zautomatyzowany przepływ pracy mógł być uruchamiany poprzez wywoływanie interfejsów API Amazon Personalizacja w sposób powtarzalny.

Poniższy diagram przedstawia to rozwiązanie.Schemat Architektury

Zbudujemy to rozwiązanie w następujących krokach:

  1. Zbuduj zadanie transformacji danych, aby przekształcić nasze surowe dane za pomocą kleju AWS.
  2. Zbuduj rozwiązanie Amazon Personalizuj za pomocą przekształconego zestawu danych.
  3. Utwórz przepływ pracy funkcji Step Functions, aby zorkiestrować generowanie wniosków wsadowych.

Wymagania wstępne

Do tego przewodnika potrzebne są następujące elementy:

Zbuduj zadanie transformacji danych, aby przekształcić surowe dane za pomocą AWS Glue

W przypadku usługi Amazon Personalizuj dane wejściowe muszą mieć określony schemat i format pliku. Dane z interakcji między użytkownikami i elementami muszą być w formacie CSV z określonymi kolumnami, natomiast lista użytkowników, dla których chcesz wygenerować rekomendacje, musi być w formacie JSON. W tej sekcji używamy AWS Glue Studio do przekształcania surowych danych wejściowych w wymagane struktury i format dla Amazon Personalizuj.

AWS Glue Studio zapewnia interfejs graficzny zaprojektowany do łatwego tworzenia i uruchamiania zadań wyodrębniania, przekształcania i ładowania (ETL). Możesz wizualnie tworzyć obciążenia związane z transformacją danych za pomocą prostych operacji przeciągania i upuszczania.

Najpierw przygotowujemy nasze dane źródłowe w Usługa Amazon Simple Storage (Amazon S3), następnie przekształcamy dane bez kodu.

  1. W konsoli Amazon S3 utwórz zasobnik S3 z trzema folderami: nieprzetworzonym, przekształconym i wyselekcjonowanym.
  2. Pobierz Zbiór danych MovieLens i prześlij nieskompresowany plik o nazwie user_ratingmovies-timestamp.dat do swojego zasobnika w folderze raw.
  3. W konsoli AWS Glue Studio wybierz Oferty pracy w okienku nawigacji.
  4. Wybierz Wizualny ze źródłem i celem, A następnie wybierz Stwórz.
  5. Wybierz pierwszy węzeł o nazwie Źródło danych – wiadro S3. Tutaj określamy nasze dane wejściowe.
  6. Na Właściwości źródła danych kartę, wybierz Lokalizacja S3 i przejdź do przesłanego pliku.
  7. W razie zamówieenia projektu Format danychwybierz CSV, A na Ogranicznikwybierz zakładka.
    Studio Kleju AWS - S3
  8. Możemy wybrać kartę Schemat wyjściowy, aby sprawdzić, czy schemat poprawnie wywnioskował kolumny.
  9. Jeśli schemat nie spełnia Twoich oczekiwań, wybierz Edytuj aby edytować schemat.
    AWS Klej Studio - Pola

Następnie przekształcamy te dane, aby były zgodne z wymaganiami schematu dla usługi Amazon Personalizuj.

  1. Wybierz Przekształć – zastosuj mapowanie węzeł i, na Przekształcać zaktualizuj klucz docelowy i typy danych.
    Amazon Personalizuj co najmniej oczekuje następującej struktury zbiór danych interakcji:
    • user_id (strunowy)
    • item_id (strunowy)
    • timestamp (długi, w formacie czasu epoki Unix)
      AWS Glue Studio - Mapowanie w terenie

W tym przykładzie wykluczamy ze zbioru danych słabo ocenione filmy.

  1. Aby to zrobić, usuń ostatni węzeł o nazwie wiadro S3 i dodaj węzeł filtrowania na Przekształcać patka.
  2. Dodaj Dodaj warunek i odfiltruj dane, gdy ocena < 3.5.
    AWS Glue Studio - Wyjście

Teraz zapisujemy dane wyjściowe z powrotem do Amazon S3.

  1. rozwiń cel menu i wybierz Amazon S3.
  2. W razie zamówieenia projektu Lokalizacja docelowa S3, wybierz folder o nazwie transformed.
  3. Dodaj CSV jako format i sufiks Docelowa lokalizacja w interactions/.

Następnie wyświetlamy listę użytkowników, dla których chcemy uzyskać rekomendacje.

  1. Wybierz Zastosuj mapowanie węzeł ponownie, a następnie rozwiń Przekształcać menu i wybierz Zastosuj mapowanie.
  2. Usuń wszystkie pola z wyjątkiem user_id i zmień nazwę tego pola na userId. Amazon Personalizacja oczekuje, że to pole zostanie nazwane identyfikator użytkownika.
  3. rozwiń cel menu ponownie i wybierz Amazon S3.
  4. Tym razem wybierz JSON jako format, a następnie wybierz przekształcony folder S3 i dodaj do niego batch_users_input/.

Daje to JSON lista użytkowników jako dane wejściowe do personalizacji Amazon. Powinniśmy mieć teraz diagram, który wygląda jak poniżej.

AWS Glue Studio - Cały przepływ pracy

Jesteśmy teraz gotowi do uruchomienia naszego zadania transformacji.

  1. W konsoli uprawnień utwórz rolę o nazwie klej-usługa-role i dołącz następujące zarządzane zasady:
    • AWSGlueServiceRole
    • AmazonS3FullAccess

Aby uzyskać więcej informacji na temat tworzenia ról usługi uprawnień, zapoznaj się z Tworzenie roli do delegowania uprawnień do usługi AWS.

  1. Wróć do swojej pracy w AWS Glue Studio i wybierz Szczegóły pracy patka.
  2. Ustaw nazwę zadania jako batch-personalize-input-transform-job.
  3. Wybierz nowo utworzoną rolę uprawnień.
  4. Zachowaj wartości domyślne dla wszystkiego innego.
    AWS Glue Studio - Szczegóły oferty
  5. Dodaj Zapisz.
  6. Kiedy będziesz gotowy, wybierz run i monitorować pracę w Działa patka.
  7. Po zakończeniu zadania przejdź do konsoli Amazon S3, aby sprawdzić, czy plik wyjściowy został pomyślnie utworzony.

Teraz ukształtowaliśmy nasze dane do formatu i struktury wymaganej przez Amazon Personalizuj. Przekształcony zbiór danych powinien mieć następujące pola i format:

  • Zbiór danych interakcji – format CSV z polami USER_ID, ITEM_ID, TIMESTAMP
  • Zbiór danych wejściowych użytkownika – format JSON z elementem userId

Zbuduj rozwiązanie Amazon Personalizuj z przekształconym zbiorem danych

Dzięki naszemu zbiorowi danych o interakcjach i danym wprowadzanym przez użytkownika w odpowiednim formacie, możemy teraz stworzyć nasze rozwiązanie do personalizacji Amazon. W tej sekcji tworzymy naszą grupę zestawów danych, importujemy nasze dane, a następnie tworzymy zadanie wnioskowania wsadowego. Grupa zestawów danych organizuje zasoby w kontenery dla komponentów Amazon Personalizuj.

  1. W konsoli Amazon Personalize wybierz Stwórz grupa zbiorów danych.
  2. W razie zamówieenia projektu Domena, Wybierz Zamówienia Indywidualne.
  3. Dodaj Utwórz grupę danych i kontynuuj.
    Amazon Personalizuj - utwórz grupę zbiorów danych

Następnie utwórz zbiór danych interakcji.

  1. Wpisz nazwę zbioru danych i wybierz Utwórz nowy schemat.
  2. Dodaj Utwórz zbiór danych i kontynuuj.
    Amazon Personalizuj - utwórz zbiór danych interakcji

Teraz importujemy dane interakcji, które utworzyliśmy wcześniej.

  1. Przejdź do zasobnika S3, w którym utworzyliśmy zbiór danych CSV interakcji.
  2. Na Uprawnienia dodaj następującą zasadę dostępu do zasobnika, aby usługa Amazon Personalizacja miała dostęp. Zaktualizuj zasady, aby uwzględnić nazwę zasobnika.
    {
       "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> /*"
             ]
          }
       ]
    }

Wróć do Amazon Personalizuj i wybierz Utwórz zadanie importu zbioru danych. Nasz zbiór danych interakcji powinien być teraz importowany do usługi Amazon Personalizuj. Poczekaj, aż zadanie importu zostanie zakończone ze statusem Aktywne, zanim przejdziesz do następnego kroku. Powinno to zająć około 8 minut.

  1. W konsoli Amazon Personalize wybierz Przegląd w okienku nawigacji i wybierz Utwórz rozwiązanie.
    Amazon Personalizacja — pulpit nawigacyjny
  2. Wprowadź nazwę rozwiązania.
  3. W razie zamówieenia projektu Typ rozwiązaniewybierz Rekomendacja przedmiotu.
  4. W razie zamówieenia projektu Przepis, Wybierz aws-user-personalization przepis.
  5. Dodaj Twórz i trenuj rozwiązanie.
    Amazon Personalizacja - stwórz rozwiązanie

Rozwiązanie teraz trenuje na podstawie zestawu danych interakcji, który został zaimportowany za pomocą receptury personalizacji użytkownika. Monitoruj stan tego procesu pod Wersje rozwiązania. Poczekaj, aż się zakończy, zanim przejdziesz dalej. Powinno to zająć około 20 minut.
Amazon Personalizacja - Stan

Teraz tworzymy nasze zadanie wnioskowania wsadowego, które generuje rekomendacje dla każdego z użytkowników obecnych w danych wejściowych JSON.

  1. W okienku nawigacji w obszarze Zasoby niestandardowewybierz Zadania wnioskowania wsadowego.
  2. Wpisz nazwę pracy, a dla Rozwiązanie, wybierz rozwiązanie utworzone wcześniej.
  3. Dodaj Utwórz zadanie wnioskowania wsadowego.
    Amazon Personalizacja - utwórz zadanie wnioskowania wsadowego
  4. W razie zamówieenia projektu Konfiguracja danych wejściowych, wprowadź ścieżkę S3 miejsca, w którym batch_users_input plik jest zlokalizowany.

To jest plik JSON, który zawiera userId.

  1. W razie zamówieenia projektu Konfiguracja danych wyjściowych ścieżka, wybierz wyselekcjonowaną ścieżkę w S3.
  2. Dodaj Utwórz zadanie wnioskowania wsadowego.

Ten proces trwa około 30 minut. Po zakończeniu zadania zalecenia dla każdego użytkownika określonego w pliku wejściowym użytkownika są zapisywane w lokalizacji wyjściowej S3.

Z powodzeniem wygenerowaliśmy zestaw rekomendacji dla wszystkich naszych użytkowników. Jednak dotychczas zaimplementowaliśmy rozwiązanie tylko za pomocą konsoli. Aby upewnić się, że to wnioskowanie wsadowe działa regularnie z najnowszym zestawem danych, musimy utworzyć przepływ pracy aranżacji. W następnej sekcji pokażemy, jak utworzyć przepływ pracy aranżacji przy użyciu funkcji kroków.

Zbuduj przepływ pracy funkcji Step Functions, aby zorkiestrować przepływ pracy wnioskowania wsadowego

Aby zaaranżować potok, wykonaj następujące kroki:

  1. W konsoli Step Functions wybierz Utwórz maszynę stanową.
  2. Wybierz Zaprojektuj swój przepływ pracy wizualnie, A następnie wybierz Następna.
    Funkcje kroków AWS - Utwórz przepływ pracy
  3. Przeciągnij CreateDatasetImportJob węzeł od lewej (możesz wyszukać ten węzeł w polu wyszukiwania) na kanwę.
  4. Wybierz węzeł, a po prawej stronie powinny pojawić się parametry interfejsu API konfiguracji. Zapisz ARN.
  5. Wprowadź własne wartości w Parametry API pole tekstowe.

To nazywa UtwórzZestawDanychImportZadania API z określonymi przez Ciebie wartościami parametrów.

Przepływ pracy funkcji krokowych AWS

  1. Przeciągnij CreateSolutionVersion węzeł na płótnie.
  2. Zaktualizuj parametry interfejsu API za pomocą ARN rozwiązania, które zanotowałeś.

Spowoduje to utworzenie nowej wersji rozwiązania z nowo zaimportowanymi danymi, wywołując Utwórz wersję rozwiązania API.

  1. Przeciągnij CreateBatchInferenceJob węzeł na kanwę i podobnie zaktualizuj parametry API odpowiednimi wartościami.

Upewnij się, że używasz $.SolutionVersionArn składnia do pobrania parametru ARN wersji rozwiązania z poprzedniego kroku. Te parametry API są przekazywane do UtwórzWnioskowanieWsadoweZadanie API.

Przepływ pracy funkcji krokowych AWS

Musimy skompilować logikę oczekiwania w przepływie pracy Step Functions, aby upewnić się, że zadanie wnioskowania wsadowego rekomendacji zostanie zakończone przed zakończeniem przepływu pracy.

  1. Znajdź i przeciągnij węzeł oczekiwania.
  2. W konfiguracji dla Czekać, wpisz 300 sekund.

To jest wartość arbitralna; należy zmienić ten czas oczekiwania zgodnie z konkretnym przypadkiem użycia.

  1. Wybierz CreateBatchInferenceJob węzeł ponownie i przejdź do Obsługa błędów patka.
  2. W razie zamówieenia projektu zapasy błędy, wchodzić Personalize.ResourceInUseException.
  3. W razie zamówieenia projektu Stan awaryjnywybierz Czekać.

Ten krok pozwala nam okresowo sprawdzać status zadania i kończy pętlę dopiero po zakończeniu zadania.

  1. W razie zamówieenia projektu Ścieżka wyniku, wchodzić $.errorMessage.

W praktyce oznacza to, że po odebraniu wyjątku „zasób w użyciu”, zadanie czeka przez x sekund przed ponowną próbą z tymi samymi danymi wejściowymi.

Przepływ pracy funkcji krokowych AWS

  1. Dodaj Zapisz, a następnie wybierz Rozpocznij egzekucję.

Pomyślnie zaaranżowaliśmy nasz potok rekomendacji partii dla usługi Amazon Personalizuj. Jako opcjonalny krok możesz użyć Most zdarzeń Amazona aby regularnie planować wyzwalanie tego przepływu pracy. Aby uzyskać więcej informacji, zobacz EventBridge (zdarzenia CloudWatch) do zmiany stanu wykonania Step Functions.

Sprzątać

Aby uniknąć ponoszenia przyszłych opłat, usuń zasoby utworzone dla tego przewodnika.

Wnioski

W tym poście pokazaliśmy, jak utworzyć potok rekomendacji wsadowych za pomocą kombinacji AWS Glue, Amazon Personalise i Step Functions, bez konieczności używania pojedynczego wiersza kodu lub doświadczenia w ML. Użyliśmy kleju AWS, aby przygotować nasze dane do formatu wymaganego przez Amazon Personalizacja. Następnie skorzystaliśmy z usługi Amazon Personalizuj, aby zaimportować dane, stworzyć rozwiązanie z recepturą personalizacji użytkownika i utworzyć zadanie wnioskowania wsadowego, które generuje domyślnie 25 rekomendacji dla każdego użytkownika na podstawie wcześniejszych interakcji. Następnie zorganizowaliśmy te kroki przy użyciu funkcji kroków, dzięki czemu możemy automatycznie uruchamiać te zadania.

Aby podjąć kolejne kroki, segmentacja użytkowników jest jedną z nowszych receptur w Amazon Personalizuj, którą możesz chcieć zbadać, aby utworzyć segmenty użytkowników dla każdego wiersza danych wejściowych. Aby uzyskać więcej informacji, zobacz Uzyskiwanie rekomendacji zbiorczych i segmentów użytkowników.


O autorze

Maxine Wee

Maxine Wee jest architektem rozwiązań AWS Data Lab. Maxine współpracuje z klientami nad ich przypadkami użycia, projektuje rozwiązania w celu rozwiązania ich problemów biznesowych i prowadzi ich przez budowanie skalowalnych prototypów. Przed rozpoczęciem podróży z AWS Maxine pomagała klientom wdrażać projekty BI, hurtowni danych i Data Lake w Australii.

Znak czasu:

Więcej z Uczenie maszynowe AWS