감독 유사성 측정

수동으로 결합된 특성 데이터를 비교하는 대신 특성 데이터를 임베딩이라는 표현으로 줄인 다음 임베딩을 비교할 수 있습니다. 임베딩은 특성 데이터 자체에 지도 지도 심층신경망(DNN)을 학습시키는 방식으로 생성됩니다. 임베딩은 특성 데이터를 임베딩 공간의 벡터에 매핑합니다. 일반적으로 임베딩 공간은 특성 데이터 세트의 일부 잠재 구조를 캡처하는 방식으로 특성 데이터보다 차원이 적습니다. 비슷한 예시의 같은 임베딩 벡터(예: 동일한 사용자가 시청하는 YouTube 동영상)는 임베딩 공간에서 서로 가까워집니다. 유사성 측정에서 이 '유사성'을 사용하여 예시 쌍의 유사성을 정량화하는 방법을 살펴보겠습니다.

단, 지도 학습은 유사성을 생성하기 위한 목적으로만 사용해야 한다는 점을 기억하세요. 유사성 측정은 수동 또는 지도 중에서 관계없이 알고리즘이 비지도 클러스터링을 실행하는 데 사용됩니다.

수동 조치와 감독 대상 비교

이 표에서는 요구사항에 따라 수동 또는 지도 유사성 측정을 사용하는 경우를 설명합니다.

요구 사항수동감독 대상
상관 특성에서 중복 정보를 제거합니다. 아니요. 특성 간의 상관관계를 별도로 조사해야 합니다. 예, DNN은 중복 정보를 제거합니다.
계산된 유사성에 대한 유용한 정보 제공 아니요. 임베딩을 해독할 수는 없습니다.
특성이 적은 소규모 데이터 세트에 적합합니다. 예. 몇 가지 기능을 사용해 수동 측정 방법을 쉽게 설계할 수 있습니다. 아니요. 작은 데이터 세트는 DNN을 사용하기에 충분한 학습 데이터를 제공하지 않습니다.
특성이 많은 대규모 데이터 세트에 적합합니다. 아니요. 여러 특성에서 중복된 정보를 수동으로 제거한 다음 이를 결합하는 것은 매우 어렵습니다. 예, DNN은 자동으로 중복 정보를 제거하고 기능을 결합합니다.

감독 유사성 측정 프로세스

다음 그림은 감독 대상 유사성 측정을 만드는 방법을 보여줍니다.

입력 특성 데이터. DNN(자동 인코더 또는 예측자)을 선택합니다.
      임베딩 추출. 도트 제품, 코사인 또는 유클리드 거리 중에서
 측정을 선택합니다.
그림 1: 지도 유사성 측정을 생성하는 단계

첫 번째 단계는 이미 알아봤습니다. 이 페이지에서는 다음 단계에 대해 설명하고, 다음 페이지에서는 나머지 단계에 대해 설명합니다.

학습 라벨을 기반으로 DNN 선택

입력 및 라벨로 모두 동일한 특성 데이터를 사용하는 DNN을 학습시켜 특성 데이터를 임베딩으로 줄입니다. 예를 들어 주택 데이터의 경우 DNN은 가격, 크기, 우편번호 같은 특성을 사용하여 특성을 직접 예측합니다. 특성 데이터를 사용하여 동일한 특성 데이터를 예측하기 위해 DNN은 임베딩에 대한 입력 특성 데이터를 줄여야 합니다. 이러한 임베딩을 사용하여 유사성을 계산합니다.

입력 데이터 자체를 예측하여 입력 데이터의 임베딩을 학습하는 DNN을 자동 인코더라고 합니다. Autoencoder의 히든 레이어는 입력 및 출력 레이어보다 작기 때문에 Autoencoder는 입력 특성 데이터의 압축된 표현을 학습해야 합니다. DNN이 학습되면 마지막 히든 레이어에서 임베딩을 추출하여 유사성을 계산합니다.

Autoencoder와 예측자 DNN 비교
       시작 입력과 히든 레이어는 동일하지만 출력은 예측자 모델의 주요 특성에 따라 필터링됩니다.
그림 2: Autoencoder와 예측자 비교

오토인코더는 임베딩을 생성하는 가장 간단한 방법입니다. 하지만 유사성을 판단하는 데 특정 기능이 다른 기능보다 중요할 때 자동 인코더는 최적의 선택이 아닙니다. 예를 들어 하우스 데이터에서 '우편번호'보다 '가격'이 더 중요하다고 가정해 보겠습니다. 이러한 경우에는 중요한 특성만 DNN의 학습 라벨로 사용합니다. 이 DNN은 모든 입력 특성을 예측하는 대신 특정 입력 특성을 예측하기 때문에 예측자 DNN이라고 합니다. 특성을 라벨로 사용하려면 다음 가이드라인을 따르세요.

  • 손실은 숫자 특성을 계산하고 해석하기 더 쉬우므로 범주형 특성보다 숫자 특성을 선호합니다.

  • 카디널리티가 100인 \(\lesssim\) 범주형 특성을 라벨로 사용하지 않습니다. 그러면 카디널리티가 낮은 범주형 라벨을 쉽게 예측할 수 있으므로 DNN에서 임베딩에 대한 입력 데이터를 강제로 줄이지 않습니다.

  • DNN에 대한 입력에서 라벨로 사용하는 특성을 삭제합니다. 그렇지 않으면 DNN이 출력을 완벽하게 예측합니다.

라벨 선택에 따라 결과 DNN은 자동 인코더 DNN 또는 예측자 DNN입니다.

DNN의 손실 함수

DNN을 학습시키려면 다음 단계에 따라 손실 함수를 만들어야 합니다.

  1. DNN이 출력될 때마다 손실을 계산합니다. 출력은 다음과 같습니다.
    • 숫자인 경우 평균 제곱 오차(MSE)를 사용하세요.
    • 단일 범주형이며 로그 손실을 사용합니다. 라이브러리 함수를 사용하여 로그 손실을 계산할 수 있으므로 직접 로그 손실을 구현할 필요는 없습니다.
    • 다변수 범주형, 소프트맥스 교차 엔트로피 손실을 사용합니다. 소프트맥스 교차 엔트로피 손실은 라이브러리 함수를 사용하여 계산할 수 있으므로 직접 구현할 필요가 없습니다.
  2. 모든 출력의 손실을 합산하여 총 손실을 계산합니다.

손실을 합산할 때는 각 특성이 손실에 비례하여 기여하도록 해야 합니다. 예를 들어 색상 데이터를 RGB 값으로 변환하면 출력이 3개가 됩니다. 그러나 출력 3개의 손실을 합산하면 색상 손실에 다른 특성보다 3배 더 많은 가중치를 적용합니다. 대신 각 출력에 1/3을 곱합니다.

온라인 시스템에서 DNN 사용

온라인 머신러닝 시스템에는 새로운 입력 데이터가 지속적으로 일어납니다. DNN을 새 데이터에 대해 학습시켜야 합니다. 그러나 DNN을 처음부터 다시 학습시키면 DNN이 임의의 가중치로 초기화되므로 임베딩이 달라집니다. 대신 항상 기존 가중치로 DNN을 웜 스타트한 다음 새 데이터로 DNN을 업데이트합니다.