Latent Dirichlet Allocation(LDA) 알고리즘 - 아마존 SageMaker

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

Latent Dirichlet Allocation(LDA) 알고리즘

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

주제 혼합이 동일한 2개의 다른 문서에 있는 동일한 콘텐츠는 동일하지 않습니다. 전체적으로 이러한 문서가 다른 주제 혼합의 문서와 비교한 것보다 공유된 단어의 서브셋을 더욱 자주 사용할 것으로 예상할 수 있습니다. 이를 통해 LDA는 단어 그룹을 찾고 이를 사용하여 주제를 형성할 수 있습니다. 극단적으로 단순한 예를 들어 문서 세트에서 다음 단어만 출현합니다. eat, sleep, play, meow, 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(잠재 디리클레 할당)와 NTM(뉴럴 토픽 모델) 중 선택하기

주제 모델은 일반적으로 (1) 의미론적 의미를 조리있게 요약하고 (2) 문서를 잘 설명하는 코퍼스에서 주제를 생성하는 데 사용됩니다. 따라서 주제 모델은 복잡도를 최소화하고 주제 일관성을 극대화하는 것을 목표로 합니다.

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

복잡도를 최소화하고 주제 일관성을 극대화하는 주제 모델을 훈련하는 것이 목표이지만 LDA와 NTM에는 상충 관계가 발생하는 경우가 많습니다. Amazon, Dinget 및 그외 다수(2018년)의 최근 연구에 따르면 NTM은 높은 주제 일관성을 달성하는 데 유용하지만 축소된 Gibbs 샘플링으로 LDA를 훈련하면 복잡도가 더 높은 것으로 나타났습니다. 복잡도와 주제 일관성 사이에는 상충 관계가 있습니다. 하드웨어 및 컴퓨팅 파워와 관련된 실용성 관점에서 볼 때, SageMaker NTM은 CPU와 GPU에서 실행되고 여러 GPU 인스턴스에서 병렬화할 수 있는 반면 LDA는 단일 인스턴스 CPU 교육만 지원하기 때문에 NTM 하드웨어는 LDA보다 유연하고 더 잘 확장할 수 있습니다.

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 잠재 디리클레 할당 알고리즘을 학습시키는 방법과 학습된 모델을 배포하여 입력 문서의 주제 혼합에 대한 추론을 수행하는 방법을 보여주는 샘플 노트북은 SageMaker LDA 소개를 참조하십시오. 예제를 실행하는 데 사용할 수 있는 Jupyter 노트북 인스턴스를 만들고 액세스하는 방법에 대한 지침은 을 참조하십시오. SageMaker 아마존 SageMaker 노트북 인스턴스 Notebook 인스턴스를 생성하여 연 후 SageMaker Examples 탭을 선택하면 모든 샘플 목록이 표시됩니다. SageMaker NTM 알고리즘을 사용하는 주제 모델링 예제 노트북은 Introduction to Amazon algorithms(Amazon 알고리즘 소개) 섹션에 있습니다. 노트북을 열려면 사용 탭을 클릭하고 Create copy(사본 생성)를 선택합니다.