Matchbox 추천 학습

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

범주: Machine Learning/학습

참고

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

이 콘텐츠는 Studio (클래식)에만 해당 됩니다. Azure Machine Learning 디자이너에는 비슷한 끌어서 놓기 모듈이 추가 되었습니다. 이 문서에서는 두 가지 버전을 비교 하는방법에 대해 자세히 알아보세요.

모듈 개요

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

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

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

.NET 개발 팀에서이 자습서의 권장 사항 시스템을 빌드하는 데 필요한 종단 간 환경에 대해 알아야 하는 모든 사항을 알아보세요. 응용 프로그램에서 Azure Machine Learning를 호출 하는 방법에 대 한 예제 코드 및 설명이 포함 되어 있습니다.

Azure Machine Learning를 사용 하 여 .NET 응용 프로그램에 대 한 권장 엔진 빌드

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

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

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

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

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

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

Matchbox 추천 및 기본 확률 알고리즘에 대 한 자세한 내용은 관련 리서치 백서에서 확인할 수 있습니다. Matchbox: 대규모 Bayesian 권장 사항 권장 사항을 참조 하세요. 또한 Machine Learning 블로그 에는 권장 사항 알고리즘에 대 한 개략적인 소개를 제공 하는 모든 곳에서 권장 사항 이라는 문서를 제공 합니다.

Matchbox 추천 학습을 구성 하는 방법

데이터 준비

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

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

사용자-항목-등급의 필수 데이터 집합

학습에 사용 되는 입력 데이터는 올바른 형식의 데이터를 올바른 형식으로 포함 하는 것이 매우 중요 합니다.

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

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

Azure Machine Learning Studio의 식당 등급 데이터 집합 (클래식) ( 저장 된 데이터 집합 을 클릭 한 다음 샘플)은 예상 되는 형식을 보여 줍니다.

userID placeID rating
U1077 135085 2
U1077 135038 2

이 샘플에서는 단일 사용자가 두 식당의 등급을 매긴 것을 볼 수 있습니다.

사용자 기능 데이터 집합 (옵션)

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

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

userID 외계 Dress_preference 교통 smoker
U1004 family 비공식 받침대 FALSE
U1005 friends 기본 설정 없음 자동차 소유자 TRUE

항목 기능 데이터 집합 (옵션)

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

예를 들어 Azure Machine Learning Studio (클래식)에 제공 된 식당 기능 데이터 데이터 집합 ( 저장 된 데이터 집합샘플)을 참조 하세요. 일반적인 항목 기능 집합 (이 경우에는 식당)은 다음과 같습니다.

placeID 음주 Smoking_area price 기타
135106 Wine-Beer 없음 low family
132667 No_Alcohol_Served 중간 일반

모델 학습

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

  2. 사용자 기능 및/또는 항목 기능 중 하나에 대 한 별도의 데이터 집합이 있는 경우 Matchbox 추천 학습 모듈에 연결 합니다.

    • 사용자 기능 데이터 집합: 사용자를 설명 하는 데이터 집합을 두 번째 입력에 연결 합니다.

    • 항목 기능 데이터 집합: 항목을 설명 하는 데이터 집합을 세 번째 입력에 연결 합니다.

  3. 학습 일괄 처리 수 에 대해 학습 중 데이터를 나눌 일괄 처리 수를 입력 합니다.

    이 값을 기준으로 사용자-항목-등급 삼중 쌍의 데이터 집합은 학습 중에 여러 부분이 나 배치로 나뉩니다.

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

    기본적으로 학습 데이터는 4 개의 일괄 처리로 분할 됩니다. 사용자-항목-등급 삼중 쌍의 데이터 집합만 분할 됩니다. 기능을 분할할 필요가 없기 때문에 사용자 또는 항목 기능은 분할 되지 않습니다.

  4. 특성 수 에 대해 각 사용자 및 항목에 대해 알아 두어야 하는 숨겨진 특성의 수를 입력 합니다.

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

  5. 권장 사항 알고리즘 반복 횟수 에 대해 알고리즘에서 입력 데이터를 처리 해야 하는 횟수를 지정 합니다.

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

  6. 실험을 실행 하거나 Matchbox 추천 학습 모듈을 선택 하 고 선택 된 실행 을 선택 합니다.

예제

Azure Machine Learning에서 추천 모델을 사용 하는 방법에 대 한 예제는 Azure AI Gallery에서 다음 샘플 실험을 참조 하세요.

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

기술 정보

이 섹션에는 구현 세부 정보, 팁 및 질문과 대답 (faq)이 포함 되어 있습니다.

사용 팁

  • 기능 열에 누락 값이 있으면 누락 값의 모드가 누락 된 값을 대체 하는 데 사용 됩니다.

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

제한

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

추천 메모리 사용량 예측

현재 Matchbox의 메모리 사용 공간 중 하 한은 16 * N\(4\T + 2\R) 바이트입니다. 여기서 N 은 학습 데이터 집합의 사용자-항목-등급 삼중 쌍의 수를,는 숨겨진 특성의 수를,는 R 은 학습 데이터 집합의 최소 및 최대 등급 사이의 차이를 나타냅니다.

Serialize 된 Matchbox 추천 모델의 크기는 대략 16 * T\(U\R + I + X + Y) 바이트입니다. 여기서 U 는 사용자 수, I 는 항목 수, X 는 사용자 기능 수, Y 는 항목 기능 수를 나타냅니다.

예상 입력

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

모듈 매개 변수

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

출력

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

예외

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

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

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

참고 항목

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