Wide & Deep Recommender 학습

이 문서에서는 Azure Machine Learning 디자이너에서 Wide 및 Deep Recommender 학습 구성 요소를 사용하여 권장 사항 모델을 학습하는 방법을 설명합니다. 이 구성 요소는 Google에서 제안하는 Wide & Deep Learning을 기반으로 합니다.

Wide 및 Deep Recommender 학습 구성 요소는 사용자-항목 등급 세 배의 데이터 세트와 선택적으로 일부 사용자 및 항목 기능을 읽습니다. 학습된 Wide & Deep 추천자를 반환합니다. 그런 다음, 와이드 및 딥 추천 채점 구성 요소를 사용하여 등급 예측 또는 추천을 생성하는 학습된 모델을 사용할 수 있습니다.

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

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

추천 시스템에는 두 가지 주요 방법이 있습니다.

  • 첫 번째는 사용자와 항목 모두에 대한 기능을 사용하는 콘텐츠 기반 접근 방식입니다. 사용자는 연령 및 성별과 같은 속성으로 설명될 수 있으며, 작성자 및 제조업체와 같은 속성에서 항목을 설명할 수 있습니다. 콘텐츠 기반 권장 사항 시스템의 일반적인 예는 소셜 매치 메이킹 사이트에서 찾을 수 있습니다.
  • 두 번째 방법은 사용자 및 항목의 식별자만 사용하고 사용자가 항목에 지정한 등급의 (스파스) 매트릭스에서 이러한 엔터티에 대한 암시적 정보를 가져오는 공동 작업 필터링입니다. 등급이 지정된 항목과 동일한 항목을 평가한 다른 사용자로부터 사용자에 대해 알아볼 수 있습니다.

Wide & Deep 추천자는 콘텐츠 기반 접근 방식과 공동 작업 필터링을 사용하여 이러한 접근 방식을 결합합니다. 따라서 하이브리드 추천으로 간주됩니다.

작동 방식: 사용자가 시스템에 상대적으로 새로운 경우 사용자에 대한 기능 정보를 사용하여 예측이 향상되므로 잘 알려진 "콜드 시작" 문제를 해결합니다. 그러나 특정 사용자로부터 충분한 수의 등급을 수집한 후에는 기능만 사용하는 것이 아니라 특정 등급에 따라 완전히 개인 설정된 예측을 수행할 수 있습니다. 따라서 공동 작업 필터링을 기반으로 콘텐츠 기반 권장 사항에서 권장 사항으로 원활하게 전환됩니다. 사용자 또는 항목 기능을 사용할 수 없는 경우에도 Wide 및 Deep Recommender는 공동 작업 필터링 모드에서 계속 작동합니다.

Wide & Deep Recommender 및 기본 확률 알고리즘에 대한 자세한 내용은 관련 연구 논문인 추천 시스템용 Wide & Deep Learning에서 찾을 수 있습니다.

Wide & Deep Recommender 추천 학습을 구성하는 방법

데이터 준비

구성 요소를 사용하기 전에 데이터가 추천 모델에 대해 예상되는 형식인지 확인합니다. 사용자 항목 등급의 학습 데이터 집합 은 3배 가 필요하지만 사용자 기능 및 항목 기능(사용 가능한 경우)을 별도의 데이터 세트에 포함할 수도 있습니다.

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

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

  • 첫 번째 열에는 사용자 식별자가 포함되어야 합니다.
  • 두 번째 열에는 항목 식별자가 포함되어야 합니다.
  • 세 번째 열에는 사용자 항목 쌍에 대한 등급이 포함됩니다. 등급 값은 숫자 형식이어야 합니다.

예를 들어 일반적인 사용자 항목 등급 집합은 다음과 같을 수 있습니다.

사용자 ID MovieId 등급
1 68646 10
223 31381 10

사용자 기능 데이터 세트(선택 사항)

사용자 기능데이터 세트에는 사용자에 대한 식별자가 포함되어야 하며 사용자-항목 등급 데이터 세트의 첫 번째 열에 제공된 것과 동일한 식별자를 사용해야 합니다. 다시 기본 열에는 사용자를 설명하는 다양한 기능이 포함될 수 있습니다.

예를 들어 일반적인 사용자 기능 집합은 다음과 같습니다.

사용자 ID 나이 성별 지점 위치
1 25 남성 드라마 유럽
223 40 여성 Romance 아시아

항목 기능 데이터 세트(선택 사항)

항목 기능의 데이터 세트는 첫 번째 열에 항목 식별자를 포함해야 합니다. 다시 기본 열에는 항목에 대한 다양한 설명 기능이 포함될 수 있습니다.

예를 들어 일반적인 항목 기능 집합은 다음과 같습니다.

MovieId 타이틀 원래 언어 장르 Year
68646 대부 영어 드라마 1972
31381 바람과 함께 사라지다 영어 기록 1939

모델 학습

  1. 디자이너에서 와이드 및 딥 추천 학습 구성 요소를 실험에 추가하고 학습 데이터 세트에 연결합니다.

  2. 사용자 기능 및/또는 항목 기능 중 하나에 대한 별도의 데이터 세트를 사용하는 경우 이를 와이드 및 딥 추천 학습 구성 요소에 연결합니다.

    • 사용자 기능 데이터 세트: 두 번째 입력에 사용자를 설명하는 데이터 세트 커넥트.
    • 항목 기능 데이터 세트: 세 번째 입력에 대한 항목을 설명하는 데이터 세트 커넥트.
  3. Epoch: 알고리즘이 전체 학습 데이터를 처리해야 하는 횟수를 나타냅니다.

    이 숫자가 높을수록 학습이 더 적절합니다. 그러나 학습에 더 많은 시간이 소요되며 과잉 맞춤이 발생할 수 있습니다.

  4. 일괄 처리 크기: 한 학습 단계에서 사용된 학습 예제 수를 입력합니다.

    이 하이퍼 매개 변수는 학습 속도에 영향을 줄 수 있습니다. 일괄 처리 크기가 높을수록 시간 비용이 감소하지만 수렴 시간이 늘어나게 될 수 있습니다. 일괄 처리가 너무 커서 GPU/CPU에 맞지 않으면 메모리 오류가 발생할 수 있습니다.

  5. 와이드 파트 최적화 프로그램: 모델의 넓은 부분에 그라데이션을 적용할 최적화 프로그램 하나를 선택합니다.

  6. 범위 최적화 프로그램 학습 속도: 범위 부분 최적화 프로그램의 학습 속도를 정의하는 0.0에서 2.0사이의 숫자를 입력합니다.

    이 하이퍼 매개 변수는 최소 손실 함수로 이동하는 동안 각 학습 단계의 단계 크기를 결정합니다. 학습 속도가 크면 학습이 미니마를 뛰어넘을 수 있지만 학습 속도가 너무 작으면 수렴 문제가 발생할 수 있습니다.

  7. 교차 기능 차원: 원하는 사용자 ID 및 항목 ID 기능을 입력하여 차원을 입력합니다.

    Wide & Deep 추천은 기본적으로 사용자 ID 및 항목 ID 기능에 대해 제품 간 변환을 수행합니다. 교차된 결과는 차원을 보장하기 위해 이 숫자에 따라 해시됩니다.

  8. 딥 파트 최적화 프로그램: 모델의 깊은 부분에 그라데이션을 적용할 최적화 프로그램 하나를 선택합니다.

  9. 심층 최적화 프로그램 학습 속도: 딥 파트 최적화 프로그램의 학습 속도를 정의하는 0.0에서 2.0 사이의 숫자를 입력합니다.

  10. 사용자 포함 차원: 사용자 ID 포함의 차원을 지정하는 정수를 입력합니다.

    Wide & Deep recommender는 넓은 부분과 딥 파트 모두에 대한 공유 사용자 ID 포함 및 항목 ID 포함을 만듭니다.

  11. 항목 포함 차원: 항목 ID 포함의 차원을 지정하는 정수를 입력합니다.

  12. 범주 특징 포함 차원: 범주 특징 포함의 차원을 지정하는 정수를 입력합니다.

    Wide & Deep recommender의 심층 구성 요소에서는 각 범주 기능에 대해 포함 벡터를 학습합니다. 이러한 포함 벡터는 동일한 차원을 공유합니다.

  13. 숨겨진 단위: 딥 구성 요소의 숨겨진 노드 수를 입력합니다. 각 계층의 노드 번호는 쉼표로 구분됩니다. 예를 들어 "1000,500,100" 형식으로 심층 구성 요소에 3개의 계층이 있으며, 마지막 계층에는 각각 1000개의 노드, 500개의 노드 및 100개의 노드가 있습니다.

  14. 활성화 함수: 각 계층에 적용된 활성화 함수를 하나 선택합니다. 기본값은 ReLU입니다.

  15. 드롭아웃: 0.0에서 1.0 사이의 숫자를 입력하여 학습 중에 각 계층에서 출력이 삭제될 확률을 결정합니다.

    드롭아웃은 신경망이 과잉 맞춤되지 않도록 하는 정규화 방법입니다. 이 값은 일반적으로 네트워크 및 작업에 가장 적합한 것으로 보이는 0.5부터 시작하여 결정합니다.

  16. 일괄 처리 정규화: 심층 구성 요소의 숨겨진 각 계층 뒤에 일괄 처리 정규화를 사용하려면 이 옵션을 선택합니다.

    일괄 처리 정규화는 네트워크 학습 중에 내부 공변 시프트 문제를 해결하는 기술입니다. 일반적으로 네트워크의 속도, 성능 및 안정성을 개선하는 데 도움이 될 수 있습니다.

  17. 파이프라인을 실행합니다.

기술 정보

Wide & Deep는 와이드 선형 모델과 심층 신경망을 공동으로 학습하여 암기와 일반화의 강점을 결합합니다. 넓은 구성 요소는 기능 상호 작용을 기억하기 위해 원시 기능 및 기능 변환 집합을 허용합니다. 더 적은 기능 엔지니어링을 사용하여 심층 구성 요소는 낮은 차원의 밀도 높은 기능 포함을 통해 보이지 않는 기능 조합을 일반화합니다.

Wide & Deep recommender 구현에서 구성 요소는 기본 모델 구조를 사용합니다. 광범위한 구성 요소는 사용자 포함, 항목 포함 및 사용자 ID 및 항목 ID의 교차 제품 변환을 입력으로 사용합니다. 모델의 전체 부분에서는 각 범주 기능에 대해 포함 벡터를 학습합니다. 이러한 벡터는 다른 숫자 특징 벡터와 함께 전체 피드-전달 신경망에 제공됩니다. 넓은 부분과 깊은 부분은 최종 출력 로그 확률을 예측으로 요약하여 결합되며, 최종적으로는 공동 학습을 위한 하나의 일반적인 손실 함수로 이동합니다.

다음 단계

Azure Machine Learning의 사용 가능한 구성 요소 집합을 참조하세요.