다음을 통해 공유


Matchbox 추천 학습

중요

Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.

2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.

ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.

Matchbox 알고리즘을 사용하여 Bayes 추천 학습

범주: Machine Learning/학습

참고

적용 대상: Machine Learning Studio(클래식) 전용

유사한 끌어서 놓기 모듈은 Azure Machine Learning 디자이너에서 사용할 수 있습니다.

모듈 개요

이 문서에서는 Machine Learning Studio(클래식)에서 매치박스 추천 학습 모듈을 사용하여 권장 사항 모델을 학습하는 방법을 설명합니다.

Machine Learning 권장 사항 알고리즘은 Microsoft Research에서 개발한 Matchbox 모델을 기반으로 합니다. 알고리즘을 자세히 설명하는 문서를 다운로드하려면 Microsoft Research 사이트에서 이 링크를 클릭합니다.

Matchbox 추천 학습 모듈은 사용자-항목-등급의 삼중 쌍으로 구성된 데이터 집합을 읽으며 필요에 따라 일부 사용자 및 항목 기능도 읽습니다. 그리고 학습된 Matchbox 추천을 반환합니다. 그런 다음, 매치박스 추천 점수 매기기 모듈을 사용하여 학습된 모델을 사용하여 권장 사항을 생성하거나, 관련 사용자를 찾거나, 관련 항목을 찾을 수 있습니다.

.NET 개발 팀의 이 자습서에서 권장 사항 시스템을 빌드하는 엔드 투 엔드 환경에 대해 알아야 할 모든 것을 알아봅니다. 샘플 코드와 애플리케이션에서 Machine Learning 호출하는 방법에 대한 설명이 포함되어 있습니다.

Machine Learning 사용하여 .NET 애플리케이션에 대한 권장 사항 엔진 빌드

권장 사항 모델 및 Matchbox 추천에 대한 자세한 정보

추천 시스템은 기본적으로 시스템의 사용자에게 항목을 하나 이상 추천하는 데 사용됩니다. 항목에는 영화, 식당, 책, 노래 등이 포함될 수 있습니다. 그리고 사용자는 사람, 사람 그룹 또는 항목 기본 설정이 지정된 기타 엔터티일 수 있습니다.

추천 시스템에는 두 가지 기본 접근 방식이 사용됩니다.

  • 그 중 첫 번째는 사용자와 항목 둘 다에 대해 기능을 사용하는 콘텐츠 기반 방식입니다. 사용자는 연령/성별 등의 속성으로 설명할 수 있고 항목은 작성자/제조업체 등의 속성으로 설명할 수 있습니다. 콘텐츠 기반 추천 시스템의 일반적인 예는 소셜 매치메이킹 사이트에서 확인할 수 있습니다.
  • 두 번째 방식은 공동 작업 필터링입니다. 이 방식에서는 사용자와 항목의 식별자만을 사용하며, 사용자가 항목에 지정한 등급의 스파스 행렬에서 이러한 엔터티와 관련된 암시적 정보를 가져옵니다. 특정 사용자에 대한 정보는 해당 사용자가 등급을 지정한 항목과 같은 항목에 등급을 지정한 다른 사용자로부터 파악할 수 있습니다.

Matchbox 추천 도구는 콘텐츠 기반 접근 방식과 공동 작업 필터링을 사용하여 이러한 접근 방식을 결합합니다. 하이브리드 추천이라고 할 수 있습니다.

작동 방식: 시스템을 사용한 지 얼마 되지 않은 사용자의 경우에는 해당 사용자에 대한 특징 정보를 활용하여 예측 성능을 개선합니다. 따라서 일반적으로 발생하는 "콜드 부팅" 문제를 방지할 수 있습니다. 그러나 특정 사용자의 등급 정보가 충분히 수집되면 기능뿐이 아니라 사용자의 특정 등급에 따라 해당 사용자에 대해 완전히 개인 설정된 예측을 할 수 있습니다. 따라서 추천 방식이 콘텐츠 기반 추천에서 공동 작업 필터링 기반 추천으로 원활하게 전환됩니다. 사용자 또는 항목 기능이 제공되지 않더라도 Matchbox는 공동 작업 필터링 모드에서 계속 작동합니다.

매치박스 추천 및 기본 확률 알고리즘에 대한 자세한 내용은 관련 연구 논문인 Matchbox: Large Scale Bayesian 권장 사항 권장 사항 찾을 수 있습니다. 또한 Machine Learning 블로그에는 권장 사항 알고리즘에 대한 개략적인 소개를 제공하는 권장 사항 사방이라는 제목의 문서가 있습니다.

매치박스 추천 학습을 구성하는 방법

데이터 준비

모듈을 사용하려 하기 전에 데이터를 권장 모델에 필요한 형식으로 지정해야 합니다. 사용자-항목-등급 삼중 쌍의 학습 데이터 세트는 필수이지만 별도의 데이터 세트에 사용자 특징 및 항목 특징(사용 가능한 경우)을 포함할 수도 있습니다.

원본 데이터를 학습 및 테스트 데이터 세트로 나누려면 데이터 분할 모듈에서 추천 분할 옵션을 사용합니다.

사용자-항목-등급 데이터 세트 필요

학습에 사용되는 입력 데이터에 올바른 형식의 데이터가 포함되어야 합니다.

  • 첫 번째 열에는 사용자 식별자가 포함되어야 합니다.
  • 두 번째 열에는 항목 식별자가 포함되어야 합니다.
  • 세 번째 열은 사용자-항목 쌍의 등급을 포함합니다. 등급 값은 숫자 또는 범주여야 합니다.

학습 중에 등급 값이 모두 같을 수는 없습니다. 또한 숫자인 경우 최솟값과 최대 등급 값의 차이는 100보다 작아야 하며 이상적으로는 20보다 크지 않아야 합니다.

Machine Learning Studio(클래식)의 레스토랑 등급 데이터 세트(저장된 데이터 세트 클릭 및 샘플)는 예상되는 형식을 보여 줍니다.

userID placeID rating
U1077 135085 2
U1077 135038 2

이 샘플에서는 단일 사용자가 두 개의 별도 레스토랑을 평가했음을 확인할 수 있습니다.

사용자 특징 데이터 세트(옵션)

사용자 특징의 데이터 세트는 사용자에 대한 식별자를 포함하고 사용자-항목-등급 데이터 세트의 첫 번째 열에 제공된 것과 동일한 식별자를 사용해야 합니다. 나머지 열은 사용자에 대해 설명하는 다양한 특징을 포함할 수 있습니다.

예를 들어 Machine Learning Studio(클래식)의 Restaurant 고객 데이터 세트를 참조하세요. 일반적인 사용자 기능 집합은 다음과 같습니다.

userID 분위기 Dress_preference 교통 흡연
U1004 family 비공식 걸어서 FALSE
U1005 friends 기본 설정 없음 자동차 소유자 TRUE

항목 특징 데이터 세트(옵션)

항목 기능 데이터 집합의 첫 번째 열에는 항목 식별자가 포함되어 있어야 합니다. 나머지 열에는 항목에 대한 설명 특징이 개수에 제한 없이 포함될 수 있습니다.

예를 들어 Machine Learning Studio(클래식)에서 제공하는 Restaurant 기능 데이터 세트를 참조하세요(저장된 데이터 세트 클릭 및 샘플 클릭). 일반적인 항목 기능 집합(이 경우 항목은 레스토랑)은 다음과 같이 표시될 수 있습니다.

placeID 알코올 Smoking_area price Rambience
135106 Wine-Beer 없음 low family
132667 No_Alcohol_Served 허용 중간 일반

모델 학습

  1. Studio(클래식)에서 실험에 매치박스 추천 학습 모듈을 추가하고 학습 데이터에 연결합니다.

  2. 사용자 기능 및/또는 항목 기능의 별도 데이터 세트가 있는 경우 매치박스 추천 학습 모듈에 연결합니다.

    • 사용자 특징 데이터 세트: 사용자에 대해 설명하는 데이터 세트를 두 번째 입력에 연결합니다.

    • 항목 특징 데이터 세트: 항목에 대해 설명하는 데이터 세트를 세 번째 입력에 연결합니다.

  3. 학습 일괄 처리 수의 경우 학습 중에 데이터를 나누기 위한 일괄 처리 수를 입력합니다.

    이 값에 따라 사용자 항목 등급 트리플의 데이터 세트는 학습 중에 여러 부분 또는 일괄 처리로 나뉩니다.

    Matchbox 추천 학습은 일괄 처리를 병렬로 실행하므로 전체 학습 데이터가 메모리에 맞는 경우 학습 일괄 처리 수를 사용 가능한 코어 수로 설정하는 것이 좋습니다. 그렇지 않으면 학습 일괄 처리 수를 학습 데이터가 메모리에 맞는 사용 가능한 코어 수의 가장 낮은 배수로 설정해야 합니다.

    기본적으로 학습 데이터는 4개의 일괄 처리로 분할됩니다. 사용자 항목 등급 트리플의 데이터 세트만 분할됩니다. 기능을 분할할 필요가 없으므로 사용자 또는 항목 기능은 분할되지 않습니다.

  4. 특성 수의 경우 각 사용자 및 항목에 대해 학습해야 하는 잠재 특성 수를 입력합니다.

    특성 수가 높을수록 예측이 일반적으로 더 정확해집니다. 그러나 학습 속도가 느려집니다. 특성의 수는 대개 2~20개입니다.

  5. 권장 사항 알고리즘 반복 횟수의 경우 알고리즘이 입력 데이터를 처리해야 하는 횟수를 나타냅니다.

    Matchbox 추천은 입력 데이터를 여러 번 반복할 수 있는 메시지 전달 알고리즘을 사용하여 학습됩니다. 이 숫자가 높을수록 예측이 더 정확해집니다. 그러나 학습은 느립니다. 반복 수는 보통 1~10회입니다.

  6. 실험을 실행하거나 매치박스 추천 학습 모듈만 선택하고 선택한 실행을 선택합니다.

Machine Learning 권장 사항 모델을 사용하는 방법에 대한 예제는 Azure AI 갤러리에서 다음 샘플 실험을 참조하세요.

  • 동영상 추천 샘플: 추천 모델을 사용하여 학습, 평가 및 점수를 매기는 방법을 보여 줍니다.

기술 정보

이 섹션에는 구현 세부 정보, 팁, 자주 묻는 질문에 대한 답변이 포함되어 있습니다.

사용 팁

  • 기능 열에 누락된 값이 있는 경우 누락되지 않은 값의 모드가 누락된 값을 대체하는 것으로 사용됩니다.

  • 모든 사용자 및 항목 기능은 단위 길이로 다시 조정되므로 최대 절대값은 1입니다. 기능 값의 경우 희박도를 유지하기 위해 변환이 적용되지 않습니다.

제한

권장 사항 모델의 온라인 업데이트(또는 지속적인 학습)는 현재 Machine Learning 지원되지 않습니다. 권장 사항에 대한 사용자 응답을 캡처하고 모델 개선에 사용하려는 경우 전체 모델을 주기적으로 다시 학습하는 것이 좋습니다. 증분 학습은 불가능하지만 가장 최근 데이터를 사용하는 동안 데이터 볼륨이 최소화되도록 학습 데이터에 슬라이딩 윈도우를 적용할 수 있습니다.

권장 메모리 사용량 예측

현재 Matchbox 메모리 공간의 하한은 바이트입니다. 여기서 N16 * N\(4\T + 2\R) 학습 데이터 세트의 사용자 항목 등급 3배, 잠재 특성 수에 대한 T, 학습 데이터 세트의 최소 등급과 최대 등급 간의 차이에 대한 R을 나타냅니다.

직렬화된 Matchbox 추천 모델의 크기는 대략 16 * T\(U\R + I + X + Y) 바이트입니다. 여기서 U 는 사용자 수, 항목 수에 대한 I , 사용자 기능 수에 X , 항목 기능 수에 대한 Y 를 참조합니다.

예상 입력

Name 유형 설명
사용자-항목-등급의 삼중 쌍으로 구성된 학습 데이터 집합 데이터 테이블 삼중 쌍(사용자, 항목, 등급)으로 표시되는 사용자가 설정한 항목의 등급입니다.
사용자 기능의 학습 데이터 집합 데이터 테이블 사용자를 설명하는 기능이 포함된 데이터 세트(선택 사항)
항목 기능의 학습 데이터 집합 데이터 테이블 항목을 설명하는 기능이 포함된 데이터 세트(선택 사항)

모듈 매개 변수

Name 범위 Type 기본값 설명
특성의 수 >=0 정수 10 추천자와 함께 사용할 특성 수 지정(선택 사항)
추천 알고리즘 반복 횟수 >=1 정수 5 권장 사항 모델을 학습하는 동안 수행할 최대 반복 횟수 지정(선택 사항)
학습 일괄 처리 수 >=1 정수 4 추천자와 함께 사용할 학습 일괄 처리 수를 지정합니다(선택 사항).

출력

Name 유형 설명
학습된 Matchbox 추천입니다. ILearner 인터페이스 학습된 Matchbox 추천입니다.

예외

예외 설명
오류 0022 입력 데이터 세트에서 선택한 열의 수가 필요한 수와 같지 않으면 예외가 발생합니다.
오류 0036 지정된 사용자나 항목에 대해 여러 개의 기능 벡터가 제공된 경우 예외가 발생합니다.
오류 0018 입력 데이트 세트가 올바르지 않으면 예외가 발생합니다.
오류 0035 지정된 사용자나 항목에 대해 기능을 제공하지 않으면 예외가 발생합니다.
오류 0034 지정된 사용자-항목 쌍에 대해 등급이 두 개 이상인 경우 예외가 발생합니다.
오류 0053 Matchbox 추천을 위한 사용자 기능이나 항목이 없으면 예외가 발생합니다.
오류 0003 하나 이상의 입력이 null이거나 비어 있으면 예외가 발생합니다.

Studio(클래식) 모듈과 관련된 오류 목록은 Machine Learning 오류 코드를 참조하세요.

API 예외 목록은 MACHINE LEARNING REST API 오류 코드를 참조하세요.

참고 항목

모델 교차 유효성 검사
추천 평가
학습
Matchbox 추천 점수 매기기