기계 학습을 사용하여 영화 추천 시스템 빌드

Blob Storage
Container Instances
Cosmos DB
Data Science Virtual Machine
Machine Learning

이 예제 시나리오에서는 기업에서 기계 학습을 사용하여 고객에 대한 제품 권장 사항을 자동화하는 방법을 보여줍니다. 특히 Azure DSVM(Data Science Virtual Machine)은 영화 등급에 따라 사용자에게 영화를 추천하는 모델을 Azure에서 학습하는 데 사용됩니다.

맞춤형 추천은 소매업에서 뉴스, 미디어에 이르는 다양한 산업에서 유용할 수 있습니다. 잠재적인 애플리케이션에는 가상 스토어에서 제품 권장 사항 제공, 뉴스 또는 게시물 추천 제공 또는 음악 추천 제공이 포함됩니다. 고객에게 맞춤형 추천을 제공하기 위해 직원을 고용하는 대신, 기업은 Azure를 사용하여 고객 기본 설정을 이해하기 위해 모델을 학습시켜 규모에 맞게 사용자 지정된 권장 사항을 제공할 수 있습니다.

관련 사용 사례

이 시나리오에 적합한 사용 사례는 다음과 같습니다.

  • 웹 사이트의 동영상 추천 사항입니다.
  • 모바일 앱의 소비자 제품 추천 사항입니다.
  • 스트리밍 미디어의 뉴스 추천 사항입니다.

영화 추천 시스템의 아키텍처

학습 동영상 추천을 위한 기계 학습 모델 아키텍처

이 시나리오에서는 동영상 등급 데이터 세트에 대한 Spark ALS(Alternating Least Square) 알고리즘을 사용하여 기계 학습 모델을 학습하고 평가합니다. 이 시나리오의 단계는 다음과 같습니다.

  1. 프런트 엔드 웹 사이트 또는 앱 서비스에서 사용자, 항목 및 숫자 등급 튜플의 테이블에 표시되는 사용자-동영상 상호 작용의 기록 데이터를 수집합니다.

  2. 수집된 기록 데이터는 Blob Storage에 저장됩니다.

  3. DSVM(Data Science Virtual Machine)은 소규모 워크로드에서 Spark ALS 추천 모델을 기반으로 제품을 실험하거나 개발하는 데 자주 사용됩니다. ALS 모델은 데이터 분할 전략을 적용하여 전체 데이터 세트에서 생성되는 학습 데이터 세트를 사용하여 학습됩니다. 예를 들어 데이터 세트는 비즈니스 요구 사항에 따라 임의, 연대순 또는 계층화된 세트로 분할할 수 있습니다. 다른 기계 학습 작업과 마찬가지로 추천기는 평가 메트릭(예: precision@k,recall@k,MAP, nDCG@k)을 사용하여 유효성을 검사합니다.

  4. Azure Machine Learning 하이퍼 부모 비우기 및 모델 관리와 같은 실험을 조정합니다.

  5. 학습된 모델은 Azure Cosmos DB에 저장되며, 지정된 사용자에 대해 상위 k개 영화를 추천하는 데 적용할 수 있습니다.

  6. 그러면 Azure Container Instances 또는 Azure Kubernetes Service를 사용하여 웹 또는 앱 서비스에 모델을 배포합니다.

추천 서비스 빌드 및 크기 조정에 대한 자세한 가이드는 Azure에서 실시간 추천 API 빌드문서를 참조하세요.

구성 요소

  • DSVM(Data Science Virtual Machine)은 기계 학습 및 데이터 과학을 위한 딥 러닝 프레임워크 및 도구가 있는 Azure 가상 머신입니다. DSVM에는 ALS를 실행하는 데 사용할 수 있는 독립 실행형 Spark 환경이 있습니다. 워크로드가 더 작고 분산 솔루션이 필요하지 않은 경우 DSVM을 사용합니다.

  • Azure Blob 스토리지는 동영상 추천 사항에 대한 데이터 세트를 저장합니다.

  • Azure Machine Learning 기계 학습 모델의 빌드, 관리 및 배포를 가속화하는 데 사용됩니다.

  • Azure Cosmos DB는 글로벌 분산 및 다중 모델 데이터베이스 스토리지를 사용할 수 있게 합니다.

  • Azure Container Instances는 필요에 따라 Azure Kubernetes Service를 사용하여 웹 또는 애플리케이션 서비스에 학습된 모델을 배포하는 데 사용됩니다.

DSVM 대체

Azure Databricks는 모델 학습 및 평가가 수행되는 관리형 Spark 클러스터입니다. 관리형 Spark 환경을 몇 분 내에 설정하고 자동으로 크기를 강화하거나 축소하여 클러스터 크기 수동 조정과 관련된 리소스와 비용을 줄일 수 있습니다. 또 다른 리소스 절약 옵션은 비활성 클러스터를 자동으로 종료하도록 구성하는 것입니다.

고려 사항

가용성

기계 학습을 기반으로 하는 앱용 리소스는 일반적으로 학습을 위한 리소스 및 서비스를 위한 리소스로 분할됩니다. 라이브 프로덕션 요청이 이러한 리소스에 직접 적중하지 않기 때문에 일반적으로 학습에 필요한 리소스에는 고가용성이 필요하지 않습니다. 서비스에 필요한 리소스에는 고객 요청을 처리하기 위해 HA(고가용성)가 필요합니다.

DSVM은 학습을 위해 전 세계 여러 지역에서 사용할 수 있으며 가상 머신에 대한 SLA(서비스 수준 계약)를 충족합니다. Azure Kubernetes Service는 서비스를 제공하기 위해 고가용성 인프라를 제공합니다. 또한 에이전트 노드는 가상 머신에 대한 SLA를 따릅니다.

확장성

큰 데이터 집합이 있는 경우 학습 시간을 단축하도록 DSVM을 확장할 수 있습니다. VM 크기를 변경하여 VM을확장 또는 축소할 수 있습니다. 메모리 내 데이터 세트에 맞게 충분히 큰 메모리 크기를 선택하고 학습에 걸리는 시간을 줄이기 위해 vCPU 수를 늘립니다.

보안

이 시나리오에서는 Azure Active Directory를 사용하여 코드, 모델 및 데이터(메모리 내)가 포함된 DSVM에 대한 액세스를 인증할 수 있습니다. 데이터는 DSVM에 로드되기 전에 Azure Storage에 저장되며, 스토리지 서비스 암호화를 사용하여 자동으로 암호화됩니다. 권한은 Azure Active Directory 인증 또는 역할 기반 액세스 제어를 통해 관리할 수 있습니다.

시나리오 배포

필수 조건:기존 Azure 계정이 있어야 합니다. Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.

이 시나리오에 대한 모든 코드는 Microsoft 추천기 리포지토리에서 사용할 수 있습니다.

ALS 빠른 시작 Notebook을 실행하려면 다음 단계를 수행합니다.

  1. Azure Portal에서 DSVM을 만듭니다.

  2. notebooks 폴더에서 리포지토리를 복제합니다.

    cd notebooks
    git clone https://github.com/Microsoft/Recommenders
    
  3. SETUP.md 파일에 설명된 단계에 따라 conda 종속성을 설치합니다.

  4. 브라우저에서 JupyterLab VM으로 이동하여 로 notebooks/00_quick_start/als_pyspark_movielens.ipynb 이동합니다.

  5. Notebook을 실행합니다.

다음 단계

다른 Azure 아키텍처 센터 문서를 참조하세요.

몇 가지 코드를 사용해 보세요.