클러스터링이란 무엇인가요?

음악처럼 무언가를 배우려고 할 때 의미 있는 그룹이나 컬렉션을 찾을 수 있습니다. 장르별로 음악을 구성할 수 있고 친구는 10년 단위로 음악을 정리할 수 있습니다. 항목을 그룹화하는 방법을 선택하면 이러한 항목을 개별 음악으로 이해하는 데 도움이 됩니다. 펑크 록에 대한 깊은 애정을 갖고 장르를 각기 다른 위치에서 접근하는 다양한 음악이나 음악으로 더 세분화할 수 있습니다. 반면에 친구는 1980년대 음악을 보고 당시 해당 장르의 음악이 사회정치에 어떻게 영향을 미쳤는지 이해할 수 있습니다. 두 경우 모두 다른 접근 방식을 사용하더라도 친구와 친구가 음악에 대해 흥미롭게 배웠습니다.

머신러닝에서도 예를 들어 머신러닝 시스템의 주체 (데이터 세트)를 이해하기 위한 첫 번째 단계로 예시를 그룹화합니다. 라벨이 없는 예를 그룹화하는 것을 클러스터링이라고 합니다.

예시에 라벨이 지정되지 않았으므로 클러스터링은 비지도 머신러닝을 사용합니다. 예시에 라벨이 지정되면 클러스터링이 분류가 됩니다. 지도 및 비지도 방식에 관한 자세한 내용은 머신러닝 문제 프레이밍 소개를 참조하세요.

클러스터 3개가 표시된 그래프
그림 1: 클러스터 3개로 그룹화된 라벨이 없는 예

유사한 예를 그룹화하려면 먼저 유사한 예시를 찾아야 합니다. 예의 특성 데이터를 유사성 측정이라는 측정항목으로 결합하여 예 간의 유사성을 측정할 수 있습니다. 각 예를 한두 개의 특성으로 정의하면 유사성을 쉽게 측정할 수 있습니다. 예를 들어 저자가 비슷한 책을 찾아보세요. 특성 수가 증가하면 유사성 측정이 한층 더 복잡해집니다. 다양한 시나리오에서 유사성 측정값을 만드는 방법은 나중에 살펴보겠습니다.

클러스터링은 어떻게 사용되나요?

클러스터링은 다양한 산업에서 다양한 용도로 사용됩니다. 일반적인 클러스터링 애플리케이션은 다음과 같습니다.

  • 시장 세분화
  • 소셜 네트워크 분석
  • 검색결과 그룹화
  • 의료 영상
  • 이미지 세분화
  • 이상 감지

클러스터링 후 각 클러스터에 클러스터 ID라는 번호가 할당됩니다. 이제 예시용 전체 특성 세트를 클러스터 ID로 압축할 수 있습니다. 복잡한 예를 간단한 클러스터 ID로 표현하면 클러스터링이 강력해집니다. 아이디어를 펼치고 데이터를 클러스터링하면 대규모 데이터 세트가 간소화됩니다.

예를 들어 다음 예와 같이 여러 기능별로 항목을 그룹화할 수 있습니다.

  • 밝기를 기준으로 별표를 그룹화합니다.
  • 유전 정보를 기준으로 유기체를 분류를 통해 그룹화합니다.
  • 주제별로 문서를 그룹화합니다.

그러면 머신러닝 시스템에서 클러스터 ID를 사용하여 대규모 데이터 세트의 처리를 간소화할 수 있습니다. 따라서 클러스터링 출력은 다운스트림 ML 시스템의 특성 데이터 역할을 합니다.

Google에서 클러스터링은 YouTube 동영상, Play 앱, Music 트랙과 같은 제품의 일반화, 데이터 압축, 개인 정보 보호 보존에 사용됩니다.

일반화

클러스터의 일부 예시에 특성 데이터가 누락된 경우 클러스터의 다른 예시에서 누락된 데이터를 추론할 수 있습니다.

인기가 낮은 동영상은 더 인기 있는 동영상과 클러스터링하여 동영상 추천 기능을 개선할 수 있습니다.

데이터 압축

앞서 언급했듯이 클러스터의 모든 예시에 대한 특성 데이터는 관련 클러스터 ID로 대체할 수 있습니다. 이 대체로 특성 데이터가 간소화되고 스토리지가 절약됩니다. 대규모 데이터 세트로 확장할 경우 이러한 이점이 상당히 커집니다. 또한 머신러닝 시스템은 전체 특성 데이터 세트 대신 클러스터 ID를 입력으로 사용할 수 있습니다. 입력 데이터의 복잡성을 줄이면 ML 모델이 더 간단하고 빠르게 학습할 수 있습니다.

단일 YouTube 동영상의 특성 데이터에는 다음이 포함될 수 있습니다.
  • 위치, 시간, 인구통계에 대한 시청자 데이터
  • 타임스탬프, 텍스트, 사용자 ID가 포함된 댓글 데이터
  • 동영상 태그
YouTube 동영상을 클러스터링하면 이 기능 집합을 단일 클러스터 ID로 바꾸어 데이터를 압축할 수 있습니다.

개인 정보 보호

사용자를 클러스터링하고 사용자 데이터를 특정 사용자 대신 클러스터 ID와 연결하여 개인 정보를 보존할 수 있습니다. 사용자 데이터를 특정 사용자와 연결할 수 없도록 클러스터는 충분한 수의 사용자를 그룹화해야 합니다.

YouTube 사용자의 동영상 기록을 모델에 추가한다고 가정해 보겠습니다. 사용자 ID를 사용하는 대신 사용자를 클러스터링하고 클러스터 ID를 사용할 수 있습니다. 이제 모델이 동영상 기록을 특정 사용자와 연결할 수 없지만 많은 사용자 그룹을 나타내는 클러스터 ID와만 연결할 수 있습니다.