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.
Zbudujemy to rozwiązanie w następujących krokach:
- Zbuduj zadanie transformacji danych, aby przekształcić nasze surowe dane za pomocą kleju AWS.
- Zbuduj rozwiązanie Amazon Personalizuj za pomocą przekształconego zestawu danych.
- 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.
- W konsoli Amazon S3 utwórz zasobnik S3 z trzema folderami: nieprzetworzonym, przekształconym i wyselekcjonowanym.
- Pobierz Zbiór danych MovieLens i prześlij nieskompresowany plik o nazwie user_ratingmovies-timestamp.dat do swojego zasobnika w folderze raw.
- W konsoli AWS Glue Studio wybierz Oferty pracy w okienku nawigacji.
- Wybierz Wizualny ze źródłem i celem, A następnie wybierz Stwórz.
- Wybierz pierwszy węzeł o nazwie Źródło danych – wiadro S3. Tutaj określamy nasze dane wejściowe.
- Na Właściwości źródła danych kartę, wybierz Lokalizacja S3 i przejdź do przesłanego pliku.
- W razie zamówieenia projektu Format danychwybierz CSV, A na Ogranicznikwybierz zakładka.
- Możemy wybrać kartę Schemat wyjściowy, aby sprawdzić, czy schemat poprawnie wywnioskował kolumny.
- Jeśli schemat nie spełnia Twoich oczekiwań, wybierz Edytuj aby edytować schemat.
Następnie przekształcamy te dane, aby były zgodne z wymaganiami schematu dla usługi Amazon Personalizuj.
- 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:
W tym przykładzie wykluczamy ze zbioru danych słabo ocenione filmy.
- Aby to zrobić, usuń ostatni węzeł o nazwie wiadro S3 i dodaj węzeł filtrowania na Przekształcać patka.
- Dodaj Dodaj warunek i odfiltruj dane, gdy ocena < 3.5.
Teraz zapisujemy dane wyjściowe z powrotem do Amazon S3.
- rozwiń cel menu i wybierz Amazon S3.
- W razie zamówieenia projektu Lokalizacja docelowa S3, wybierz folder o nazwie
transformed
. - Dodaj CSV jako format i sufiks Docelowa lokalizacja w
interactions/
.
Następnie wyświetlamy listę użytkowników, dla których chcemy uzyskać rekomendacje.
- Wybierz Zastosuj mapowanie węzeł ponownie, a następnie rozwiń Przekształcać menu i wybierz Zastosuj mapowanie.
- Usuń wszystkie pola z wyjątkiem
user_id
i zmień nazwę tego pola nauserId
. Amazon Personalizacja oczekuje, że to pole zostanie nazwane identyfikator użytkownika. - rozwiń cel menu ponownie i wybierz Amazon S3.
- 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.
Jesteśmy teraz gotowi do uruchomienia naszego zadania transformacji.
- 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.
- Wróć do swojej pracy w AWS Glue Studio i wybierz Szczegóły pracy patka.
- Ustaw nazwę zadania jako
batch-personalize-input-transform-job
. - Wybierz nowo utworzoną rolę uprawnień.
- Zachowaj wartości domyślne dla wszystkiego innego.
- Dodaj Zapisz.
- Kiedy będziesz gotowy, wybierz run i monitorować pracę w Działa patka.
- 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.
- W konsoli Amazon Personalize wybierz Stwórz grupa zbiorów danych.
- W razie zamówieenia projektu Domena, Wybierz Zamówienia Indywidualne.
- Dodaj Utwórz grupę danych i kontynuuj.
Następnie utwórz zbiór danych interakcji.
Teraz importujemy dane interakcji, które utworzyliśmy wcześniej.
- Przejdź do zasobnika S3, w którym utworzyliśmy zbiór danych CSV interakcji.
- 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.
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.
- W konsoli Amazon Personalize wybierz Przegląd w okienku nawigacji i wybierz Utwórz rozwiązanie.
- Wprowadź nazwę rozwiązania.
- W razie zamówieenia projektu Typ rozwiązaniewybierz Rekomendacja przedmiotu.
- W razie zamówieenia projektu Przepis, Wybierz
aws-user-personalization
przepis. - Dodaj Twórz i trenuj 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.
Teraz tworzymy nasze zadanie wnioskowania wsadowego, które generuje rekomendacje dla każdego z użytkowników obecnych w danych wejściowych JSON.
- W okienku nawigacji w obszarze Zasoby niestandardowewybierz Zadania wnioskowania wsadowego.
- Wpisz nazwę pracy, a dla Rozwiązanie, wybierz rozwiązanie utworzone wcześniej.
- Dodaj Utwórz zadanie wnioskowania wsadowego.
- 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
.
- W razie zamówieenia projektu Konfiguracja danych wyjściowych ścieżka, wybierz wyselekcjonowaną ścieżkę w S3.
- 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:
- W konsoli Step Functions wybierz Utwórz maszynę stanową.
- Wybierz Zaprojektuj swój przepływ pracy wizualnie, A następnie wybierz Następna.
- Przeciągnij
CreateDatasetImportJob
węzeł od lewej (możesz wyszukać ten węzeł w polu wyszukiwania) na kanwę. - Wybierz węzeł, a po prawej stronie powinny pojawić się parametry interfejsu API konfiguracji. Zapisz ARN.
- Wprowadź własne wartości w Parametry API pole tekstowe.
To nazywa UtwórzZestawDanychImportZadania API z określonymi przez Ciebie wartościami parametrów.
- Przeciągnij
CreateSolutionVersion
węzeł na płótnie. - 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.
- 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.
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.
- Znajdź i przeciągnij węzeł oczekiwania.
- W konfiguracji dla Czekać, wpisz 300 sekund.
To jest wartość arbitralna; należy zmienić ten czas oczekiwania zgodnie z konkretnym przypadkiem użycia.
- Wybierz
CreateBatchInferenceJob
węzeł ponownie i przejdź do Obsługa błędów patka. - W razie zamówieenia projektu zapasy błędy, wchodzić
Personalize.ResourceInUseException
. - 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.
- 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.
- 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 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.
- Zaawansowane (300)
- AI
- ai sztuka
- generator sztuki ai
- masz robota
- Amazon Personalizuj
- sztuczna inteligencja
- certyfikacja sztucznej inteligencji
- sztuczna inteligencja w bankowości
- robot sztucznej inteligencji
- roboty sztucznej inteligencji
- oprogramowanie sztucznej inteligencji
- Klej AWS
- Uczenie maszynowe AWS
- blockchain
- konferencja blockchain ai
- pomysłowość
- sztuczna inteligencja konwersacyjna
- konferencja kryptograficzna
- Dall's
- głęboka nauka
- google to
- uczenie maszynowe
- plato
- Platon Ai
- Analiza danych Platona
- Gra Platona
- PlatoDane
- platogaming
- skala ai
- składnia
- Instrukcje techniczne
- zefirnet