소매업 데이터에서 판매 예측 생성

이 페이지에서는 BigQuery로 내보낸 소매업 데이터를 기반으로 Vertex AI에서 예측을 수행하는 방법을 안내합니다. Google은 소매 제품 및 사용자 이벤트 데이터를 Vertex AI가 사용할 수 있는 형식으로 변환하는 데 도움이 되는 몇 가지 SQL 코드 블록을 제공합니다. 이러한 코드 블록 뒤에는 Vertex AI 콘솔이 데이터 세트를 만들고, 모델을 학습시키고, 예측을 생성하는 절차가 이어집니다.

시작하기 전에

소매업 데이터를 사용하여 판매 예측을 생성하려면 먼저 다음을 수행해야 합니다.

  • 소매업용 Vertex AI Search를 사용하여 소매업 데이터를 업로드합니다. 자세한 내용은 다음을 참조하세요.

  • 소매업 데이터를 소매업용 Vertex AI Search에서 BigQuery로 내보냅니다. 이렇게 하면 다음 절차를 위해 사용할 수 있는 BigQuery의 제품 테이블 및 사용자 이벤트 테이블이 남습니다. 자세한 내용은 BigQuery로 데이터 내보내기를 참조하세요.

    또는 제품 및 사용자 이벤트 데이터가 이미 BigQuery에 있는 경우 이 데이터를 사용하여 소매업 데이터에서 판매 예측을 소매업용 Vertex AI Search 형식으로 생성할 수 있습니다. 이 경우 소매업 데이터를 업로드하고 BigQuery로 내보낼 필요가 없습니다. 형식에 대한 자세한 내용은 제품 스키마사용자 이벤트 정보를 참조하세요.

  • Vertex AI 콘솔을 사용하여 절차를 수행할 수 있도록 roles/aiplatform.user IAM 역할이 부여되었는지 확인합니다.

집계된 판매 테이블 만들기

이 섹션에서 SQL 코드는 사용자 이벤트 테이블을 집계된 판매 테이블로 변환합니다. 즉, 최소 1회 이상 판매된 사용자 이벤트 테이블의 제품마다 제품 판매 수량이 일주일 동안 집계됩니다. 또한 SQL 코드에서 다음을 수행합니다.

  • 사용자 이벤트 테이블의 모든 제품에 대해 테이블 내 첫 번째 제품 판매와 테이블 내 마지막 제품 판매 사이에 타임스탬프가 누락된 경우 누락된 각 타임스탬프는 판매 수량이 0인 새 행으로 백필됩니다. 이는 판매 내역의 간격을 없애기 위함입니다.

  • 사용자 이벤트 테이블에 타임스탬프가 20개 이상 있는 제품이 하나 이상 없으면 테이블의 제품이 무작위로 선택되어 타임스탬프 20개에 도달할 만큼 충분한 행(판매 수량은 0)으로 백필됩니다. 모델 학습 시 타임스탬프 20개 이상이 필요한 Vertex AI 요구사항을 수용해야 하기 때문입니다.

집계된 판매 테이블을 만드는 방법:

  1. 다음 SQL 예시 코드의 변수를 다음과 같이 바꿉니다.

    • starting_day_of_week. 해당 주의 시작 날짜입니다. 유효한 값: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.

    • rdm_user_event_table. BigQuery로 내보낸 사용자 이벤트 테이블의 프로젝트, 데이터 세트, 테이블 ID입니다. 형식은 project_id.dataset_id.table_id입니다.

    • rdm_product_table. BigQuery로 내보낸 제품 테이블의 프로젝트, 데이터 세트, 테이블 ID입니다. 형식은 project_id.dataset_id.table_id입니다.

    • aggregated_sales_table. 새로운 집계 판매 테이블의 BigQuery에 있는 프로젝트, 데이터 세트, 테이블 ID입니다. 제품 및 사용자 이벤트 테이블과 동일한 프로젝트 ID를 사용합니다. 기존 데이터 세트의 ID를 사용합니다. 테이블 ID를 지정하지만 덮어쓰지 않으려면 기존 테이블의 ID를 사용하지 마세요. 형식은 project_id.dataset_id.table_id입니다.

  2. SQL 코드 샘플을 복사합니다.

  3. Google Cloud 콘솔에서 BigQuery 페이지를 엽니다.

    BigQuery 페이지로 이동

  4. 아직 제품 및 사용자 이벤트 테이블이 포함된 프로젝트를 선택하지 않았으면 선택합니다.

  5. 편집자 창에 SQL 코드 샘플을 붙여넣습니다.

  6. 실행을 클릭하고 쿼리 실행이 완료될 때까지 기다립니다.

새 집계 판매 테이블은 aggregated_sales_table 변수를 사용하여 BigQuery에서 설정한 위치에 작성됩니다.

제품 테이블 처리

이 섹션의 SQL 코드는 BigQuery로 내보낸 제품 테이블에서 작동하며 반복 및 구조체 필드를 삭제하고 price_info 필드를 하위 필드에 중첩 해제합니다. 이는 Vertex AI가 목록 또는 중첩 구조를 허용하지 않기 때문에 필요합니다. 결과는 처리된 제품 테이블입니다.

제품 테이블을 처리하려면 다음 안내를 따르세요.

  1. 다음 SQL 예시 코드의 변수를 다음과 같이 바꿉니다.

    • rdm_product_table. BigQuery로 내보낸 제품 테이블의 프로젝트, 데이터 세트, 테이블 ID입니다. 형식은 project_id.dataset_id.table_id입니다.

    • processed_product_table. 새로 처리된 제품 테이블의 BigQuery에 있는 프로젝트, 데이터 세트, 테이블 ID입니다. 제품 및 사용자 이벤트 테이블과 동일한 프로젝트 ID를 사용합니다. 기존 데이터 세트의 ID를 사용합니다. 테이블 ID를 지정하지만 덮어쓰지 않으려면 기존 테이블의 ID를 사용하지 마세요. 형식은 project_id.dataset_id.table_id입니다.

    CREATE OR REPLACE TABLE `PROCESSED_PRODUCT_TABLE` AS
    SELECT * EXCEPT (id, attributes, price_info, rating, expire_time,
    available_time, fulfillment_info, images, audience, color_info, promotions,
    publish_time, retrievable_fields, categories, brands, conditions, sizes,
    collection_member_ids, tags, materials, patterns),
    id as sku,
    price_info.price as price_info_price,
    price_info.currency_code as price_info_currency_code,
    price_info.cost as price_info_cost,
    FROM `RDM_PRODUCT_TABLE`
    
  2. SQL 코드 샘플을 복사합니다.

  3. Google Cloud 콘솔에서 BigQuery 페이지를 엽니다.

    BigQuery 페이지로 이동

  4. 아직 제품 및 사용자 이벤트 테이블이 포함된 프로젝트를 선택하지 않았으면 선택합니다.

  5. 편집자 창에 SQL 코드 샘플을 붙여넣습니다.

  6. 실행을 클릭하고 쿼리 실행이 완료될 때까지 기다립니다.

새로 처리된 제품 테이블은 processed_product_table 변수를 사용하여 설정한 BigQuery 위치에 작성됩니다.

이벤트 예측 테이블 만들기

이 섹션에서 SQL 코드는 사용자 이벤트 테이블에서 최소 1회 이상 판매된 각 SKU를 추출합니다. 이 코드는 향후 모든 타임스탬프에서 추출된 SKU가 모두 포함된 이벤트 예측 테이블을 만듭니다. 이후 타임스탬프는 사용자 이벤트 테이블의 마지막 주부터 일주일 후에 시작되며 사용자 이벤트 테이블의 마지막 주부터 future_length 주 후에 끝나는 연속적인 주간 타임스탬프 배열입니다. future_length 값을 모델에서 예측할 미래의 주 수로 설정합니다. 이벤트 예측 테이블의 각 행은 SKU 및 타임스탬프로 고유하게 식별될 수 있습니다.

이벤트 예측 테이블을 만들려면 다음 안내를 따르세요.

  1. 다음 SQL 예시 코드의 변수를 다음과 같이 바꿉니다.

    • starting_day_of_week. 해당 주의 시작 날짜입니다. 유효한 값: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.

    • rdm_user_event_table. BigQuery로 내보낸 사용자 이벤트 테이블의 프로젝트, 데이터 세트, 테이블 ID입니다. 형식은 project_id.dataset_id.table_id입니다.

    • events_prediction_table. 새 이벤트 예측 테이블의 BigQuery에 있는 프로젝트, 데이터 세트, 테이블 ID입니다. 제품 및 사용자 이벤트 테이블과 동일한 프로젝트 ID를 사용합니다. 기존 데이터 세트의 ID를 사용합니다. 테이블 ID를 지정하지만 덮어쓰지 않으려면 기존 테이블의 ID를 사용하지 마세요. 형식은 project_id.dataset_id.table_id입니다.

    • rdm_product_table. BigQuery로 내보낸 제품 테이블의 프로젝트, 데이터 세트, 테이블 ID입니다. 형식은 project_id.dataset_id.table_id입니다.

    • future_length. 모델이 예측할 향후 주 수(사용자 이벤트 테이블의 마지막 주 이후)입니다.

  2. SQL 코드 샘플을 복사합니다.

  3. Google Cloud 콘솔에서 BigQuery 페이지를 엽니다.

    BigQuery 페이지로 이동

  4. 아직 제품 및 사용자 이벤트 테이블이 포함된 프로젝트를 선택하지 않았으면 선택합니다.

  5. 편집자 창에 SQL 코드 샘플을 붙여넣습니다.

  6. 실행을 클릭하고 쿼리 실행이 완료될 때까지 기다립니다.

새 이벤트 예측 테이블은 events_prediction_table 변수를 사용하여 BigQuery의 위치에 작성됩니다.

Vertex AI 학습 테이블 만들기

이 섹션의 SQL 코드는 집계된 판매 테이블과 처리된 제품 테이블을 조인합니다. 그러면 Vertex AI가 모델 학습에 사용하는 Vertex AI 학습 테이블이 생성됩니다.

Vertex AI 학습 테이블을 만들려면 다음 안내를 따르세요.

  1. 다음 SQL 예시 코드의 변수를 다음과 같이 바꿉니다.

    • vertex_ai_training_table. 새 Vertex AI 학습 테이블의 BigQuery에 있는 프로젝트, 데이터 세트, 테이블 ID입니다. 제품 및 사용자 이벤트 테이블과 동일한 프로젝트 ID를 사용합니다. 기존 데이터 세트의 ID를 사용합니다. 테이블 ID를 지정하지만 덮어쓰지 않으려면 기존 테이블의 ID를 사용하지 마세요. 형식은 project_id.dataset_id.table_id입니다.

    • aggregated_sales_table. 집계 판매 테이블 만들기에서 만든 집계 판매 테이블의 BigQuery에 있는 프로젝트, 데이터 세트, 테이블 ID입니다.

    • processed_product_table. 제품 테이블 처리에서 만든 처리된 제품 테이블의 BigQuery에 있는 프로젝트, 데이터 세트, 테이블 ID입니다.

    CREATE OR REPLACE TABLE `VERTEX_AI_TRAINING_TABLE` AS
    SELECT t1.*, t2.* EXCEPT(sku) FROM `AGGREGATED_SALES_TABLE` AS t1
    LEFT
    JOIN `PROCESSED_PRODUCT_TABLE` AS t2 ON t1.sku = t2.sku
    
  2. SQL 코드 샘플을 복사합니다.

  3. Google Cloud 콘솔에서 BigQuery 페이지를 엽니다.

    BigQuery 페이지로 이동

  4. 아직 제품 및 사용자 이벤트 테이블이 포함된 프로젝트를 선택하지 않았으면 선택합니다.

  5. 편집자 창에 SQL 코드 샘플을 붙여넣습니다.

  6. 실행을 클릭하고 쿼리 실행이 완료될 때까지 기다립니다.

새 Vertex AI 학습 테이블은 vertex_ai_training_table 변수를 사용하여 BigQuery에서 설정한 위치에 작성됩니다.

Vertex AI 예측 테이블 만들기

이 섹션에서 SQL 코드는 이벤트 예측 테이블을 집계된 판매 테이블에 추가한 후 처리된 제품 테이블과 조인합니다. 결과는 예측을 만드는 데 사용되는 Vertex AI 예측 테이블입니다.

Vertex AI 예측 테이블을 만들려면 다음 안내를 따르세요.

  1. 다음 SQL 예시 코드의 변수를 다음과 같이 바꿉니다.

    • vertex_ai_prediction_table. 새 Vertex AI 예측 테이블의 BigQuery에 있는 프로젝트, 데이터 세트, 테이블 ID입니다. 제품 및 사용자 이벤트 테이블에 사용한 것과 동일한 프로젝트 ID 및 데이터 세트 ID를 사용합니다. 덮어쓰지 않으려면 기존 테이블의 ID를 사용하지 마세요. 형식은 project_id.dataset_id.table_id입니다.

    • aggregated_sales_table. 집계 판매 테이블 만들기에서 만든 집계된 판매 테이블의 BigQuery에 있는 프로젝트, 데이터 세트, 테이블 ID입니다.

    • processed_product_table. 제품 테이블 처리에서 만든 처리된 제품 테이블의 BigQuery에 있는 프로젝트, 데이터 세트, 테이블 ID입니다.

    • events_prediction_table. 이벤트 예측 테이블 만들기에서 만든 이벤트 예측 테이블의 BigQuery에 있는 프로젝트, 데이터 세트, 테이블 ID입니다.

    CREATE OR REPLACE TABLE `VERTEX_AI_PREDICTION_TABLE` AS
    WITH append_predict_to_history AS (
      SELECT add_to_cart_quantity, category_page_view_quantity,
      detail_page_view_quantity, last_day_of_week, quantity, search_quantity, sku
      FROM `AGGREGATED_SALES_TABLE` UNION ALL SELECT NULL AS
      add_to_cart_quantity, NULL AS category_page_view_quantity, NULL AS
      detail_page_view_quantity, last_day_of_week, NULL AS quantity, NULL AS
      search_quantity, sku FROM `EVENTS_PREDICTION_TABLE`
    )
    SELECT t1.*, t2.* EXCEPT(sku) FROM append_predict_to_history AS t1 LEFT JOIN
    `PROCESSED_PRODUCT_TABLE` AS t2 ON t1.sku = t2.sku
    
  2. SQL 코드 샘플을 복사합니다.

  3. Google Cloud 콘솔에서 BigQuery 페이지를 엽니다.

    BigQuery 페이지로 이동

  4. 아직 제품 및 사용자 이벤트 테이블이 포함된 프로젝트를 선택하지 않았으면 선택합니다.

  5. 편집자 창에 SQL 코드 샘플을 붙여넣습니다.

  6. 실행을 클릭하고 쿼리 실행이 완료될 때까지 기다립니다.

새 Vertex AI 예측 테이블은 vertex_ai_prediction_table 변수를 사용하여 BigQuery에서 설정한 위치에 작성됩니다.

Vertex AI 데이터 세트 만들기

이 섹션에서는 예측 모델을 학습시키는 데 사용할 수 있는 Vertex AI 데이터 세트를 만드는 방법을 보여줍니다. 자세한 내용은 Vertex AI 문서의 예측 모델 학습을 위한 데이터 세트 만들기를 참조하세요.

Vertex AI 데이터 세트를 만들려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔의 Vertex AI 섹션에서 데이터 세트 페이지로 이동합니다.

    데이터 세트 페이지로 이동

  2. 만들기를 클릭하여 데이터 세트 만들기 페이지를 엽니다.

  3. 데이터 세트 이름 필드에 새 데이터 세트 이름을 입력합니다.

  4. 표 형식 탭을 선택합니다.

  5. 예측 목표를 선택합니다.

  6. 리전 목록에서는 BigQuery로 소매업 데이터를 내보내기 위해 데이터 세트를 만들 때 사용한 리전을 선택합니다. BigQuery 데이터 세트를 만들 때 us를 선택한 경우 미국 내 모든 리전을 선택할 수 있습니다. 마찬가지로 BigQuery 데이터 세트를 만들 때 eu를 선택한 경우 유럽 연합 내 모든 리전을 선택할 수 있습니다. 자세한 내용은 BigQuery로 데이터 내보내기를 참조하세요.

  7. 만들기를 클릭하여 빈 데이터 세트를 만들고 소스 탭으로 이동합니다.

  8. BigQuery에서 테이블 또는 뷰를 선택합니다.

  9. BigQuery에서 테이블 또는 뷰 선택에서 Vertex AI 학습 테이블 만들기에서 만든 Vertex AI 학습 테이블의 프로젝트, 데이터 세트, 테이블 ID를 입력합니다. 형식은 project_id.dataset_id.table_id입니다.

  10. 계속을 클릭합니다.

    데이터 소스가 데이터 세트와 연결되어 있습니다.

  11. 분석 탭에서 시리즈 식별자 열 목록의 sku타임스탬프 열 목록의 last_day_of_week를 선택합니다.

  12. 새 모델 학습을 클릭하여 새 모델 학습 페이지로 이동합니다. 모델 학습에 대한 안내는 예측 모델 학습을 참조하세요.

예측 모델 학습

이 섹션에서는 Vertex AI 데이터 세트 만들기에서 만든 데이터 세트를 사용하여 예측 모델을 학습시키는 방법을 보여줍니다. 자세한 내용은 Vertex AI 문서의 예측 모델 학습을 참조하세요.

시작하기 전에

예측 모델을 학습시키기 전에 Vertex AI 데이터 세트를 생성해야 합니다.

모델 학습

  1. 학습 방법 페이지에서 모델 학습 방법을 선택합니다. 학습 방법은 Vertex AI 문서의 모델 학습을 참조하세요.

    계속을 클릭합니다.

  2. 모델 세부정보 페이지에서 다음과 같이 구성합니다.

    1. 아직 선택하지 않았으면 새 모델 학습을 선택합니다.

    2. 새 모델 이름을 입력합니다.

    3. 타겟 열 목록에서 수량(INTEGER)을 선택합니다.

    4. 데이터 세부사항 목록에서 매주를 선택합니다.

    5. 환경설정 기간예측 범위를 입력합니다.

      예측 범위는 모델이 예측 데이터 각 행의 타겟 값 예측을 수행할 향후 기간을 결정합니다. 예측 범위데이터 세부사항 단위로 지정됩니다.

      환경설정 기간은 학습 중(또는 예측 시) 모델이 찾을 이전 기간을 설정합니다. 즉, 각 학습 데이터 포인트의 환경설정 기간은 모델이 예측 패턴을 찾는 이전 기간의 범위를 결정합니다. 환경설정 기간을 지정하지 않으면 기본값은 예측 범위의 값으로 설정됩니다. 환경설정 기간데이터 세부사항 단위로 지정됩니다.

      자세한 내용은 Vertex AI 문서의 환경설정 기간 및 예측 범위 설정 고려 사항을 참조하세요.

    6. 계속을 클릭합니다.

  3. 학습 옵션 페이지에서 다음과 같이 구성합니다. 드롭다운 화살표가 회색이거나 드롭다운 화살표가 없으면 이 값을 변경할 수 없습니다.

    1. 열 이름 목록에서 다음과 같이 열의 변환 값을 선택합니다.

      • BigQuery 유형 값이 부동 소수점, 정수, 숫자인 경우 변환 값을 숫자로 설정합니다.

      • BigQuery 유형 값이 문자열 또는불리언인 경우 변환 값을범주형으로 설정합니다.

      • BigQuery 유형 값이 날짜인 경우 변환 값을 타임스탬프로 설정합니다.

    2. 다음과 같이 열 이름 목록에서 열의 특성 유형 값을 선택합니다.

      • add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity, search_quantity의 경우 특성 유형 값을 공변으로 설정합니다.

      • 나머지 열 중에서 변경할 수 있는 열에 특성 유형속성으로 설정합니다.

    3. 다음과 같이 열 유형 목록에서 예측에 사용 가능 값을 선택합니다.

      • add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity, search_quantity의 경우 예측에 사용 가능 값을 사용 불가능으로 설정합니다.

      • 나머지 열 중에서 변경할 수 있는 열에 특성 유형 값을 사용 가능으로 설정합니다.

    4. 계속을 클릭합니다.

  4. 컴퓨팅 및 가격 책정 페이지에서 모델을 학습시킬 최대 시간을 입력합니다. 이 설정은 학습 비용에 상한선을 설정하는 데 도움이 됩니다. 새 모델을 만드는 데 관련된 다른 작업이 있으므로 실제 경과 시간은 이 값보다 길 수 있습니다. 고품질 모델을 학습시키는 데 필요한 시간은 Vertex AI 문서의 모델 학습을 참조하세요.

  5. 학습 시작을 클릭합니다.

    데이터의 규모 및 복잡성과 학습 예산(지정한 경우)에 따라 모델 학습에 많은 시간이 소요될 수 있습니다. 탭을 닫았다가 나중에 다시 돌아와도 됩니다. 모델 학습이 완료되면 이메일이 전송됩니다. 모델 학습 진행 상황을 모니터링하려면 학습 진행 상황 모니터링을 참조하세요.

학습 진행 상황 모니터링

  1. Google Cloud 콘솔의 Vertex AI 섹션에서 학습 페이지로 이동합니다.

    학습 페이지로 이동

  2. 아직 선택되지 않은 경우 학습 파이프라인 탭을 선택합니다. 학습 중인 모델이 목록에 있어야 합니다. 상태가 학습 중에서 완료됨으로 변경되면 학습이 완료된 것입니다.

예측 생성

이 페이지에서는 예측 모델 학습에서 학습한 예측 모델을 사용하여 예측을 만드는 방법을 보여줍니다.

시작하기 전에

예측을 만들려면 먼저 예측 모델을 학습시켜야 합니다.

모델에 일괄 예측 요청 보내기

  1. Google Cloud 콘솔의 Vertex AI 섹션에서 일괄 예측 페이지로 이동합니다.

    일괄 예측 페이지로 이동

  2. 만들기를 클릭하여 새 일괄 예측 창을 열고 다음 단계를 완료합니다.

    1. 일괄 예측의 이름을 입력합니다.

    2. 모델 이름 목록에서 예측 모델 학습에서 학습시킨 모델을 선택합니다.

    3. 버전 목록에서 모델 버전을 선택합니다.

    4. 소스 선택에서 다음을 수행합니다.

      1. 아직 선택되지 않았으면 BigQuery 테이블을 선택합니다.

      2. Vertex AI 예측 테이블 만들기에서 만든 Vertex AI 예측 테이블의 프로젝트, 데이터 세트, 테이블 ID를 BigQuery에 입력합니다. 형식은 project_id.dataset_id.table_id입니다.

    5. 일괄 예측 출력에서 다음을 수행합니다.

      1. 출력 형식 목록에서 BigQuery 테이블을 선택합니다.

      2. 생성할 일괄 예측 출력 테이블의 프로젝트 및 데이터 세트 ID를 BigQuery에 입력합니다. 제품 및 사용자 이벤트 테이블에 사용한 것과 동일한 프로젝트 ID 및 데이터 세트 ID를 사용합니다. 형식은 project_id.dataset_id.입니다.

    6. 만들기를 클릭합니다. 일괄 예측 페이지가 나타납니다.

      상태가 대기 중에서 완료됨으로 변경되면 예측이 완료된 것입니다. 또한 일괄 예측이 완료되면 이메일이 전송됩니다. 일괄 예측 요청의 출력은 지정한 BigQuery 프로젝트의 데이터 세트로 반환됩니다. 새 출력 테이블의 이름은 'predictions_'이며, 예측 작업이 시작된 시점의 타임스탬프가 추가됩니다. 예측 결과 검색 및 해석에 대한 자세한 내용은 Vertex AI 문서의 일괄 예측 결과 검색예측 결과 해석을 참조하세요.