Neural Topic Model(NTM) 알고리즘 - 아마존 SageMaker

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

Neural Topic Model(NTM) 알고리즘

Amazon SageMaker NTM은 통계적 분포를 기반으로 한 단어 그룹이 포함된 주제로 문서의 코퍼스를 구성하는 데 사용되는 비지도 학습 알고리즘입니다. 예를 들어, "오토바이", "자동차", "기차", "주행 거리" 및 "속도" 등과 같은 단어가 자주 발생하는 문서는 "운송"에 대한 주제를 공유할 가능성이 큽니다. 주제 모델링은 감지된 주제를 기반으로 문서를 분류 또는 요약하거나, 주제의 유사성을 기반으로 정보를 검색하거나 콘텐츠를 추천하는 데 사용할 수 있습니다. NTM이 학습하는 문서의 주제는 코퍼스 내에서 관측되는 단어 분포에서 추론되기 때문에 이러한 주제는 잠재 표상으로 특징이 지정됩니다. 주제의 의미는 주로 포함된 상위 단어를 검사하여 추론됩니다. 비지도 메서드이기 때문에 주제 자체가 아닌 주제의 수만이 사전 지정됩니다. 추가로 주제는 인간이 자연적으로 문서를 범주화할 수 있는 방법과 연계되는 것이 보장되지 않습니다.

주제 모델링은 학습된 주제 측면에서 대량의 문서 코퍼스의 콘텐츠를 시각화하는 방법을 제공합니다. 각 주제와 관련이 있는 문서는 소프트 주제 레이블을 기반으로 인덱싱 또는 검색될 수 있습니다. 문서의 잠재 표상을 사용하여 주제 공간 내 유사한 문서를 찾을 수 있습니다. 또한 누제 모델이 학습하는 문서의 잠재 표상을 문서 분류자와 같은 다른 지도 알고리즘의 입력으로 사용할 수 있습니다. 문서의 잠재 표상이 이러한 표상을 일부 기반으로 하는 기본 문서 알고리즘의 의미를 포착할 것으로 예상되기 때문에 어휘 특징만을 기반으로 하는 것에 비해 성능이 더 뛰어날 것으로 예상됩니다.

주제 모델링에 대해 Amazon SageMaker NTM 및 LDA 알고리즘을 모두 사용할 수 있지만 둘은 별도의 알고리즘이고 동일한 입력 데이터에 대해 다른 결과를 낼 것으로 예상할 수 있습니다.

NTM의 수학적 계산에 대한 자세한 정보는 Neural Variational Inference for Text Processing을 참조하십시오.

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

Amazon SageMaker Neural Topic Model은 train, validation, test 및 auxiliary, 이렇게 4가지 데이터 채널을 지원합니다. validation, test 및 auxiliary data 채널은 선택 사항입니다. 이러한 선택적 채널 중 하나를 지정한 경우 해당 채널의 S3DataDistributionType 파라미터 값을 FullyReplicated로 설정합니다. 검증 데이터를 제공하는 경우 모든 epoch마다 이 데이터가 로깅되고, 모델은 검증 손실이 개선되는 것을 감지하는 대로 훈련을 중지합니다. 검증 데이터를 제공하지 않는 경우 알고리즘은 훈련 데이터를 기반으로 조기 중지하지만 이는 효율성이 떨어질 수 있습니다. 테스트 데이터를 제공한 경우 알고리즘은 최종 모델에서 테스트 손실을 보고합니다.

NTM의 train, validation 및 test data 채널은 recordIO-wrapped-protobuf(밀집 및 희소) 및 CSV 파일 형식을 둘 다 지원합니다. CSV 형식의 경우 각 행은 해당 문서에서 존재하지 않는 단어는 0개로 계산해 조밀하게 표현되어야 하고, (레코드 수) * (어휘 크기)와 동일한 차원을 가져야 합니다. 파일 모드 또는 파이프 모드를 사용하여 recordIO-wrapped-protobuf 또는 CSV로 형식이 지정된 데이터에 대해 모델을 훈련할 수 있습니다. auxiliary 채널은 어휘가 포함된 텍스트 파일을 제공하는 데 사용됩니다. 사용자는 어휘 파일을 제공하여 정수 ID 대신 로그에 출력된 각 주제에 대한 상위 단어를 볼 수 있습니다. 또한 어휘 파일이 있으면 NTM이 각 주제의 상위 단어 간 유사성을 효율적으로 캡처하는, 로그에 표시되는 새로운 지표인 Word Embedding Topic Coherence(WETC) 점수를 계산할 수 있습니다. auxiliary 채널의 ContentTypetext/plain이고, 각 행에는 단일 단어가 포함되어 있으며 데이터에 제공되는 정수 ID에 해당하는 순서로 정렬됩니다. 어휘 파일의 이름은 vocab.txt여야 하고 현재 UTF-8 인코딩만 지원됩니다.

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

auxiliary 채널 및 WETC 점수 사용에 대한 자세한 정보는 블로그 게시물 및 함께 제공되는 노트북을 참조하십시오. WETC 점수 계산 방법에 대한 자세한 정보는 Coherence-Aware Neural Topic Modeling을 참조하십시오. Amazon SageMaker Neural Topic Model에는 이 문서에서 설명한 쌍으로 이루어진 WETC를 사용했습니다.

입력 및 출력 파일 형식에 대한 자세한 정보는 NTM 응답 형식(추론의 경우) 및 NTM 샘플 노트북 단원을 참조하십시오.

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

NTM 훈련은 GPU 및 CPU 인스턴스 유형을 모두 지원합니다. GPU 인스턴스를 권장하지만 특정 워크로드의 경우 CPU 인스턴스의 훈련 비용이 더 낮을 수 있습니다. CPU 인스턴스는 추론에 효율적입니다. NTM 훈련은 훈련 및 추론을 위한 P2, P3, G4dn 및 G5 GPU 인스턴스 패밀리를 지원합니다.

NTM 샘플 노트북

주제 분포가 알려진 합성 데이터 원본에서 문서의 주제를 찾는 데 SageMaker NTM 알고리즘을 사용하는 샘플 노트북은 NTM의 기본 기능 소개를 참고하십시오. SageMaker에서 예제 실행에 사용할 수 있는 Jupyter 노트북 인스턴스를 생생하고 이 인스턴스에 액세스하는 방법은 아마존 SageMaker 노트북 인스턴스을 참고하십시오. 노트북 인스턴스를 생성한 후 열면 SageMaker 예제 탭을 선택하여 모든 SageMaker 샘플 목록을 확인할 수 있습니다. NTM 알고리즘을 사용하는 주제 모델링 예제 노트북은 Introduction to Amazon algorithms(Amazon 알고리즘 소개) 섹션에 있습니다. 노트북을 열려면 사용 탭을 클릭하고 Create copy(사본 생성)를 선택합니다.