Latent Dirichlet Allocation(LDA) 알고리즘 - Amazon SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Latent Dirichlet Allocation(LDA) 알고리즘

Amazon SageMaker Latent Dirichlet Allocation (LDA) 알고리즘은 관측치 세트를 개별 범주의 혼합으로서 설명하려 하는 비지도 학습 알고리즘입니다. LDA는 텍스트 코퍼스 내에 있는 문서에서 공유하는 사용자별 주제를 찾는 데 가장 일반적으로 사용됩니다. 여기서 각 관측치는 문서이고, 특징은 단어의 존재(또는 출현 횟수), 범주는 주제입니다. 메서드가 비지도이기 때문에 주제는 선행하여 지정되지 않고, 인간이 자연적으로 문서를 범주화할 수 있는 방법과 연계되는 것이 보장되지 않습니다. 주제는 각 문서에 출현하는 단어에 걸친 가능성 분포로 학습됩니다. 결과적으로 각 문서는 주제의 혼합으로 설명됩니다.

주제 혼합이 동일한 2개의 다른 문서에 있는 동일한 콘텐츠는 동일하지 않습니다. 전체적으로 이러한 문서가 다른 주제 혼합의 문서와 비교한 것보다 공유된 단어의 서브셋을 더욱 자주 사용할 것으로 예상할 수 있습니다. 이를 통해 LDA는 단어 그룹을 찾고 이를 사용하여 주제를 형성할 수 있습니다. 극단적으로 단순한 예를 들어 문서 세트에서 다음 단어만 출현합니다. eat, sleep, play, meow, and bark. 이 경우 LDA는 다음과 같은 주제를 생성할 수 있습니다.

주제

eat sleep play meow bark
주제 1 0.1 0.3 0.2 0.4 0.0
주제 2 0.2 0.1 0.4 0.0 0.3

주제 1에 해당되는 문서는 고양이에 관한 것이라고 추론할 수 있습니다(meowsleep 선호) 또한 주제 2에 해당되는 문서는 개에 관한 것이라고 추론할 수 있습니다(playbark 선호). 이러한 주제는 텍스트 어디에서도 개와 고양이라는 단어가 등장하지 않아도 발견될 수 있습니다.

LDA (Latent Dirichlet Allocation) 와 NTM (신경 주제 모델) 중에서 선택

주제 모델은 일반적으로 (1) 의미 론적 의미를 일관되게 캡슐화하고 (2) 문서를 잘 설명하는 시체에서 주제를 생성하는 데 사용됩니다. 따라서 주제 모델은 당황을 최소화하고 주제 일관성을 극대화하는 것을 목표로합니다.

Perplexity는 테스트 데이터에서 단어당 기하 평균의 역행렬을 측정하는 고유 언어 모델링 평가 지표입니다. 당혹 점수가 낮을수록 일반화 성능이 향상됨을 나타냅니다. 연구에 따르면 단어 당 계산 된 가능성은 종종 인간의 판단과 일치하지 않으며 완전히 상관 관계가 없을 수 있으므로 주제 일관성이 도입되었습니다. 모델에서 추론된 각 주제는 단어로 구성되며 주제 일관성은 모델의 해당 특정 주제에 대한 상위 N개 단어로 계산됩니다. 이는 종종 해당 주제에 있는 단어의 쌍별 단어 유사성 점수의 평균 또는 중위수로 정의됩니다 (예: 점별 상호 정보 (PMI). 유망한 모델은 주제 일관성 점수가 높은 일관된 주제 또는 주제를 생성합니다.

목표는 당황을 최소화하고 주제 일관성을 극대화하는 주제 모델을 훈련시키는 것이지만 LDA와 NTM 모두에서 균형이 발생하는 경우가 많습니다. 아마존의 최근 연구 결과, Dinget et al., 2018은 NTM이 높은 주제 일관성을 달성 할 것을 약속하고 있지만 붕괴 된 깁스 샘플링으로 훈련 된 LDA는 더 나은 당황을 달성 한 것으로 나타났습니다. 당황과 주제 일관성 사이에는 절충이 있습니다. 하드웨어 및 컴퓨팅 파워에 대한 실용성 관점에서 볼 때, SageMaker NTM 하드웨어는 LDA보다 유연하며 NTM이 CPU 및 GPU에서 실행될 수 있고 여러 GPU 인스턴스에서 병렬화할 수 있기 때문에 더 나은 확장이 가능하지만 LDA는 단일 인스턴스 CPU 훈련만 지원합니다.

LDA 알고리즘의 입력/출력 인터페이스

LDA는 교육 채널에 데이터가 제공될 것을 예상하고, 선택적으로 테스트 채널을 지원하고, 이는 최종 모델에서 점수가 계산됩니다. LDA는 recordIO-wrapped-protobuf(밀집 및 희소) 및 CSV 파일 형식을 모두 지원합니다. CSV의 경우 데이터가 밀집되어야 하고, 레코드 수 * 어휘 크기와 동일한 차원이 있어야 합니다. recordIO-wrapped protobuf를 사용하는 경우 LDA는 파일 또는 파이프 모드에서 훈련할 수 있지만 CSV 형식을 사용하는 경우에는 파일 모드에서만 훈련이 가능합니다.

추론의 경우 text/csv, application/jsonapplication/x-recordio-protobuf 콘텐츠 유형이 지원됩니다. 희소 데이터는 application/jsonapplication/x-recordio-protobuf로 전달될 수 있습니다. LDA 추론은 application/json 또는 application/x-recordio-protobuf 예측을 반환하고, 여기에는 각 관측치에 대한 topic_mixture 벡터가 포함됩니다.

교육 및 추론 형식에 대한 자세한 정보는 LDA 샘플 노트북 단원을 참조하십시오.

LDA 알고리즘에 대한 EC2 인스턴스 권장 사항

LDA는 현재 단일 인스턴스 CPU 교육만을 지원합니다. CPU 인스턴스는 호스팅/추론에 권장됩니다.

LDA 샘플 노트북

데이터 세트에 대해 SageMaker Latent Dirichlet Allocation 알고리즘을 훈련하는 방법과 입력 문서의 주제 혼합에 대한 추론을 수행하기 위해 훈련된 모델을 배포하는 방법을 보여주는 샘플 노트북은 다음을 참조하십시오.SageMaker LDA에 대한 소개. SageMaker에서 예제 실행에 사용할 수 있는 Jupyter 노트북 인스턴스 생성 및 액세스 방법에 대한 지침은 단원을 참조하십시오.Amazon 사용 SageMaker 노트북 인스턴스. 노트북 인스턴스를 생성해서 열었으면SageMaker 예제탭을 선택하여 SageMaker 샘플 목록을 볼 수 있습니다. NTM 알고리즘을 사용하는 주제 모델링 예제 노트북은 Introduction to Amazon algorithms(Amazon 알고리즘 소개) 섹션에 있습니다. 노트북을 열려면 사용 탭을 클릭하고 Create copy(사본 생성)를 선택합니다.