다음을 통해 공유


잠재적 Dirichlet 할당

중요

Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.

2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.

ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.

Vowpal Wabbit 라이브러리를 사용하여 VW LDA 수행

범주: Text Analytics

참고

적용 대상: Machine Learning Studio(클래식) 전용

유사한 끌어서 놓기 모듈은 Azure Machine Learning 디자이너에서 사용할 수 있습니다.

모듈 개요

이 문서에서는 Machine Learning Studio(클래식)의 Latent Dirichlet 할당 모듈을 사용하여 분류되지 않은 텍스트를 여러 범주로 그룹화하는 방법을 설명합니다. LDA(잠재 Dirichlet 할당)는 NLP(자연어 처리)에서 유사한 텍스트를 찾는 데 자주 사용됩니다. 또 다른 일반적인 용어는 ‘토픽 모델링’입니다.

이 모듈은 텍스트 열을 사용하여 다음과 같은 출력을 생성합니다.

  • 원본 텍스트 및 각 범주의 점수

  • 각 범주에 대해 추출된 용어 및 계수를 포함하는 기능 매트릭스

  • 저장하고 입력으로 사용된 새 텍스트에 다시 적용할 수 있는 변환

이 모듈은 Vowpal Wabbit 라이브러리를 사용하므로 매우 빠릅니다. Vowpal Wabbit에 대한 자세한 내용은 자습서 및 알고리즘에 대한 설명이 포함된 GitHub 리포지토리를 참조하세요.

한눈에 보는 LDA(잠재 Dirichlet 할당)

일반적으로 LDA는 분류 방법이 아니라 생성 방식을 사용합니다. 즉, 알려진 클래스 레이블을 제공한 다음 패턴을 유추할 필요가 없습니다. 대신 알고리즘은 토픽 그룹을 식별하는 데 사용되는 확률적 모델을 생성합니다. 확률적 모델을 사용하여 기존 학습 사례 또는 모델에 입력으로 제공하는 새 사례를 분류할 수 있습니다.

생성 모델은 텍스트와 범주 간의 관계에 대해 강력한 가정을 하지 않으며 단어 분포만 사용하여 주제를 수학적으로 모델링하기 때문에 바람직할 수 있습니다.

자세한 내용은 기술 참고 사항 섹션을 참조하세요.

잠재적 Dirichlet 할당을 구성하는 방법

이 모듈을 사용하려면 원시 또는 전처리된 텍스트 열을 포함하는 데이터 세트가 필요합니다.

  1. 실험에 Latent Dirichlet 할당 모듈을 추가합니다.

  2. 모듈에 대한 입력으로 하나 이상의 텍스트 열을 포함하는 데이터 세트를 제공합니다.

  3. 대상 열의 경우 분석할 텍스트가 포함된 하나 이상의 열을 선택합니다.

    여러 열을 선택할 수 있지만 문자열 데이터 형식이어야 합니다.

    일반적으로 LDA는 텍스트에서 큰 기능 매트릭스를 만들기 때문에 일반적으로 단일 텍스트 열을 분석합니다.

  4. 모델링할 토픽 수의 경우 입력 텍스트에서 파생할 범주 또는 항목 수를 나타내는 1에서 1000 사이의 정수를 입력합니다.

    기본적으로 5개 토픽이 생성됩니다.

  5. N-Gram에서 해시 중에 생성되는 N-Gram의 최대 길이를 지정합니다.

    기본값은 2로, bigram과 unigram이 둘 다 생성됨을 의미합니다.

  6. 출력 값을 확률로 변환하려면 정규화 옵션을 선택합니다. 따라서 변환된 값을 정수로 나타내는 대신 출력 및 기능 데이터 세트의 값은 다음과 같이 변환됩니다.

    • 데이터 세트의 값은 P(topic|document)인 확률로 표시됩니다.

    • 기능 토픽 매트릭스의 값은 P(word|topic)인 확률로 표시됩니다.

  7. 옵션을 선택하고 모든 옵션을 표시한 다음, 확인하려는 경우 TRUE로 설정한 다음 추가 고급 매개 변수를 설정합니다.

    이러한 매개 변수는 LDA의 Vowpal Wabbit 구현과 관련이 있습니다. 온라인 Vowpal Wabbit에서 LDA에 대한 몇 가지 좋은 자습서뿐만 아니라 공식 Vowpal Wabbit Wiki가 있습니다.

    Azure ML 버전 8 및 VW 사용에 대한 예제는 이 샘플을 참조하세요.

    • Rho 매개 변수. 토픽 배포 희박도의 이전 확률을 지정합니다. VW의 lda_rho 매개 변수에 해당합니다. 단어 분포가 평평하다고 예상하는 경우 값 1을 사용합니다. 즉, 모든 단어는 공평한 것으로 간주됩니다. 대부분의 단어가 드물게 나타나는 경우 훨씬 낮은 값으로 설정할 수 있습니다.

    • 알파 매개 변수. 문서 토픽 가중치 희박도의 이전 확률을 지정합니다. VW의 lda_alpha 매개 변수에 해당합니다.

    • 예상 문서 수. 처리할 문서(행)의 최적 추정치를 나타내는 숫자를 입력합니다. 이렇게 하면 모듈이 충분한 크기의 해시 테이블을 할당할 수 있습니다. Vowpal Wabbit의 lda_D 매개 변수에 해당합니다.

    • 일괄 처리의 크기. Vowpal Wabbit로 전송된 텍스트의 각 일괄 처리에 포함할 행 수를 나타내는 숫자를 입력합니다. Vowpal Wabbit의 batch_sz 매개 변수에 해당합니다.

    • 학습 업데이트 일정에서 사용되는 반복의 초기 값. 학습 속도의 시작 값을 지정합니다. Vowpal Wabbit의 initial_t 매개 변수에 해당합니다.

    • 업데이트 중 반복에 적용되는 능력. 온라인 업데이트 중에 반복 횟수에 적용되는 전원 수준을 나타냅니다. Vowpal Wabbit의 power_t 매개 변수에 해당합니다.

    • 데이터 패스 수. 알고리즘이 데이터를 순환하는 횟수를 지정합니다. Vowpal Wabbit의 epoch_size 매개 변수에 해당합니다.

  8. 텍스트를 분류하기 전에 초기 패스 에서 n-gram 목록을 만들려면 옵션, ngram 사전 빌드 또는 LDA 이전의 ngram 사전 빌드를 선택합니다.

    초기 사전을 미리 만든 경우 나중에 모델을 검토할 때 사전을 사용할 수 있습니다. 결과를 숫자 인덱스가 아닌 텍스트에 매핑할 수 있으면 일반적으로 해석이 더 용이합니다. 그러나 사전을 저장하는 데 시간이 오래 걸리고 추가 스토리지가 사용됩니다.

  9. ngram 사전의 최대 크기에 대해 n-gram 사전에서 만들 수 있는 총 행 수를 입력합니다.

    이 옵션은 사전 크기를 제어하는 데 유용합니다. 그러나 입력의 ngram 수가 이 크기를 초과하면 충돌이 발생할 수 있습니다.

  10. 실험을 실행합니다. LDA 모듈은 Bayes 정리를 사용하여 개별 단어와 연결될 수 있는 토픽을 결정합니다. 단어는 어떤 주제나 그룹과만 연관되지 않습니다. 대신 각 n-gram은 검색된 클래스와 연결될 확률을 습득합니다.

결과

모듈의 두 출력은 다음과 같습니다.

  • 변환된 데이터 세트: 입력 텍스트와 검색된 범주의 지정된 개수를 각 범주의 각 텍스트 예제에 대한 점수와 함께 포함합니다.

  • 기능 항목 매트릭스: 맨 왼쪽 열에는 추출된 텍스트 기능이 포함되며 해당 범주의 해당 기능에 대한 점수를 포함하는 각 범주에 대한 열이 있습니다.

자세한 내용은 LDA 결과 예제를 참조하세요.

LDA 변환

또한 이 모듈은 데이터 세트에 LDA를 적용하는 변환ITransform 인터페이스로 출력합니다.

이 변환을 저장하고 다른 데이터 세트에 다시 사용할 수 있습니다. 이는 대규모 모음에서 학습한 후 계수 또는 범주를 다시 사용하려는 경우에 유용할 수 있습니다.

LDA 모델 또는 결과 구체화

일반적으로 모든 요구 사항을 충족하는 단일 LDA 모델을 만들 수 없으며, 한 작업을 위해 설계된 모델도 정확도를 높이기 위해 많은 반복이 필요할 수 있습니다. 다음 방법을 모두 시도하여 모델을 개선하는 것이 좋습니다.

  • 모델 매개 변수 변경
  • 시각화를 사용하여 결과 이해
  • 생성된 토픽이 유용한지 여부를 확인하기 위해 주제 전문가의 피드백을 받습니다.

질적 측정값은 결과를 평가하는 데에도 유용할 수 있습니다. 토픽 모델링 결과를 평가하려면 다음을 고려합니다.

  • 정확도 - 비슷한 항목이 정말 비슷한가요?
  • 다양성 - 비즈니스 문제에 필요한 경우 모델이 유사한 항목을 구분할 수 있나요?
  • 확장성 - 광범위한 텍스트 범주에서 작동하나요 아니면 좁은 대상 도메인에서만 작동하나요?

LDA를 기반으로 하는 모델의 정확도는 자연어 처리를 사용하여 텍스트를 정리, 요약 및 단순화하거나 분류하여 개선할 수 있는 경우가 많습니다. 예를 들어 Machine Learning 지원되는 다음 기술은 분류 정확도를 향상시킬 수 있습니다.

  • 중지 단어 제거

  • 대/소문자 정규화

  • 표제어 분석 또는 형태소 분석

  • 명명된 엔터티 인식

자세한 내용은 전처리 텍스트명명된 엔터티 인식을 참조하세요.

Studio(클래식)에서는 텍스트 처리에 R 또는 Python 라이브러리를 사용할 수도 있습니다. R 스크립트 실행, Python 스크립트 실행

텍스트 분석의 예제는 Azure AI 갤러리에서 다음 실험을 참조하세요.

고객 검토 텍스트를 기반으로 하는 자세한 내용 및 예제는 LDA 결과 이해를 참조하세요.

LDA 결과의 예

Latent Dirichlet 할당 모듈의 작동 방식을 설명하기 위해 다음 예제에서는 기본 설정이 있는 LDA를 Machine Learning Studio(클래식)에 제공된 책 검토 데이터 세트에 적용합니다.

원본 데이터 세트

데이터 세트에는 사용자가 제공한 전체 주석 텍스트뿐만 아니라 등급 열도 포함됩니다.

이 표에서는 몇 가지 대표적인 예제만 보여 줍니다.

text
이 책에는 좋은 점이 있습니다. 무엇이든, 그것은 당신이 감독자에서 원하는 것을 단어에 넣어하는 데 도움이됩니다....
나는 이 책을 끝내지 않았다는 것을 인정한다. 나는 불면증에 문제가있다으로 친구가 나에게 그것을 추천 ...
제대로 작성되지 않은 나는이 책을 읽으려고했지만 너무 터지드하고 제대로 작성되지 않았기 때문에 좌절에 그것을 내려 놓았습니다. ...
몇 년 전 주변에 지나가던 친구들로부터 개 귀 사본을 빌린 이후로, 나는 단명한 컬트가 된 이 책을 손에 넣을 수 없었습니다.
이 책의 줄거리는 흥미로웠습니다, 그것은 좋은 책이었을 수 있습니다. 불행히도, 그것은 아니었다. 나를 위해 주요 문제는 ...

처리하는 동안 Latent Dirichlet 할당 모듈은 지정한 매개 변수에 따라 텍스트를 정리하고 분석합니다. 예를 들어 텍스트를 자동으로 토큰화하고 문장 부호를 제거할 수 있으며 동시에 각 항목에 대한 텍스트 기능을 찾을 수 있습니다.

LDA 변환된 데이터 세트

다음 표에는 Book Review 샘플을 기반으로 변환된 데이터 세트가 포함되어 있습니다. 출력에는 입력 텍스트와 검색된 범주의 지정된 수와 각 범주의 점수가 포함됩니다.

영화 이름 항목 1 항목 2 항목 3 항목 4 항목 5
이 책에는 좋은 점이 있습니다. 0.001652892 0.001652892 0.001652892 0.001652892 0.9933884
친구가 나에게 추천 0.00198019 0.001980198 0.9920791 0.001980198 0.001980198
이 책을 읽으려고 했습니다. 0.002469135 0.002469135 0.9901233 0.002469135 0.002469135
친구로부터 빌렸습니다. 0.9901232 0.002469135 0.002469135 0.002469135 0.002469135
이 책의 줄거리는 흥미로웠습니다. 0.001652892 0.001652892 0.9933884 0.001652892 0.001652892

이 예제에서는 모델링할 토픽 수에 대해 기본값 5를 사용했습니다. 따라서 LDA 모듈은 5개의 범주를 만듭니다. 이 범주는 원래의 5개 등급 시스템과 거의 일치할 것으로 가정할 수 있습니다.

또한 이 모듈은 토픽을 나타내는 5개 범주 각각에 대해 각 항목에 점수를 할당합니다. 점수는 행을 특정 범주에 할당할 확률을 나타냅니다.

기능 항목 매트릭스

모듈의 두 번째 출력은 기능 항목 매트릭스입니다. 항목 1, 토픽 2나머지 열에 있는 각 범주의 점수와 함께 기능 열의 주요 텍스트가 포함된 테이블 형식 데이터 세트입니다. 토픽 N. 점수는 계수를 나타냅니다.

기능 항목 1 항목 2 항목 3 항목 4 항목 5
흥미로운 0.0240282071983144 0.0354678954779375 0.363051866576914 0.0276637824315893 0.660663576149515
was 0.0171478729532397 0.0823969031108669 0.00452966877950789 0.0408714510319233 0.025077322689733
원본 0.0148224220349217 0.0505086981492109 0.00434423322461094 0.0273389126293824 0.0171484355106826
plot 0.0227415889348212 0.0408709456489325 0.182791041345191 0.086937090812819 1 0.0169680136708971
읽기 0.0227415889348212 0.0408709456489325 0.182791041345191 0.0869370908128191 0.0169680136708971
시도 0.0269724979147211 0.039026263551767 0.00443749106785087 0.0628829816088284 0.0235340728818033
0.0262656945140134 0.0366941302751921 0.00656837975179138 0.0329214576160066 0.0214121851106808
0.0141026103224462 0.043359976919215 0.00388640531859447 0.0305925953440055 0.0228993750526364
it 0.0264490547105951 0.0356674440311847 0.00541759897864314 0.0314539386250293 0.0140606468587681
friend 0.0135971322960941 0.0346118171467234 0.00434999437350706 0.0666507321888536 0.018156863779311
지점 0.0227415889348212 0.0396233855719081 0.00404663601474112 0.0381156510019025 0.0337788009496797
good 0.651813073836783 0.0598646397444108 0.00446809691985617 0.0358975694646062 0.0138989124411206
its 0.0185385588647078 0.144253986783184 0.00408876416453866 0.0583049240441475 0.015442805566858
of 0.0171416780245647 0.0559361180418586 0.0100633904544953 0.087093930106723 0.0182573833869842
빌린 0.0171416780245647 0.0559361180418586 0.0100633904544953 0.087093930106723 0.0182573833869842
has는 0.0171416780245647 0.0559361180418586 0.0100633904544953 0.087093930106723 0.0182573833869842
설명서 0.0143157047920681 0.069145948535052 0.184036340170983 0.0548757337823903 0.0156837976985903
권장 0.0161486848419689 0.0399143326399534 0.00550113530229642 0.028637149142764 0.0147675139039372
this 0.0161486848419689 0.0399143326399534 0.00550113530229642 0.028637149142764 0.0147675139039372

기술 정보

이 섹션에는 구현 정보, 팁, 질문과 대답이 포함되어 있습니다.

구현 세부 정보

기본적으로 변환된 데이터 세트 및 기능 토픽 행렬에 대한 출력 분포는 확률로 정규화됩니다.

  • 변환된 데이터 세트는 문서가 지정된 경우 토픽의 조건부 확률로 정규화됩니다. 이 경우 각 행의 합계는 1과 같습니다.

  • 기능-토픽 매트릭스는 토픽이 지정된 경우 단어의 조건부 확률로 정규화됩니다. 이 경우 각 열의 합계는 1과 같습니다.

경우에 따라 모듈은 빈 토픽을 반환할 수 있습니다. 이 항목은 알고리즘의 의사 임의 초기화로 인해 가장 자주 발생합니다. 이 경우 N-gram 사전의 최대 크기 또는 기능 해시에 사용할 비트 수와 같은 관련 매개 변수를 변경해 볼 수 있습니다.

LDA 및 토픽 모델링

LDA(잠재 Dirichlet 할당)는 콘텐츠 기반 토픽 모델링에 주로 사용되며, 이는 기본적으로 분류되지 않은 텍스트의 학습 범주를 의미합니다. 콘텐츠 기반 토픽 모델링에서 토픽은 단어 분포입니다.

예를 들어 많은 제품을 포함하는 고객 리뷰 모음을 제공했다고 가정합니다. 시간이 지남에 따라 많은 고객이 제출한 리뷰 텍스트에는 많은 용어가 포함되며, 그 중 일부는 여러 항목에서 사용됩니다.

LDA 프로세스로 식별되는 항목 은 개별 제품 A에 대한 리뷰를 나타내거나 제품 리뷰 그룹을 나타낼 수 있습니다. LDA에서 토픽 자체는 시간에 따른 단어 집합의 확률 분포일 뿐입니다.

용어는 한 제품에만 거의 배타적이지 않지만 다른 제품을 참조하거나 모든 항목에 적용되는 일반적인 용어("great", "awful")일 수 있습니다. 다른 용어는 의미 없는 단어일 수 있습니다. 그러나 LDA 메서드가 우주의 모든 단어를 캡처하거나 동시 발생 확률을 제외하고 단어가 어떻게 관련되는지 이해하려는 의도는 아니라는 것을 이해하는 것이 중요합니다. 대상 도메인에서 사용된 단어만 그룹화할 수 있습니다.

인덱스라는 용어가 계산되면 거리 기반 유사성 측정값을 사용하여 개별 텍스트 행을 비교하여 두 텍스트가 서로 같은지 여부를 확인합니다. 예를 들어 제품에 강력한 상관 관계를 가진 여러 이름이 있는 것을 발견할 수 있습니다. 또는 일반적으로 특정 제품에 강력한 부정적 용어가 연결되는 것을 발견할 수도 있습니다. 유사성 측정값을 사용하여 관련 용어를 식별하고 권장 구성을 만들 수 있습니다.

예상 입력

Name 유형 설명
데이터 세트 데이터 테이블 입력 데이터 세트

모듈 매개 변수

Name Type 범위 Optional 기본값 설명
해시 비트 수 정수 [1;31] 모든 옵션 표시 확인란을 선택하지 않은 경우 적용됩니다. 12 기능 해시에 사용할 비트 수
대상 열 열 선택 필수 StringFeature 대상 열 이름 또는 인덱스
모델링할 토픽 수 정수 [1;1000] 필수 5 N 항목에 대한 문서 배포 모델링
N그램 정수 [1;10] 필수 2 해시 중에 생성된 N-gram 순서
Normalize 부울 필수 true 출력을 확률로 정규화합니다. 변환된 데이터 세트는 P(topic|document)가 되고 기능 토픽 매트릭스는 P(word|topic)이 됩니다.
모든 옵션 표시 부울 True 또는 False 필수 False Vowpal Wabbit 온라인 LDA와 관련된 추가 매개 변수를 제공합니다.
Rho 매개 변수 Float [0.00001;1.0] 모든 옵션 표시 확인란을 선택하면 적용됩니다. 0.01 Rho 매개 변수
알파 매개 변수 Float [0.00001;1.0] 모든 옵션 표시 확인란을 선택하면 적용됩니다. 0.01 알파 매개 변수
예상 문서 수 정수 [1;int.MaxValue] 모든 옵션 표시 확인란을 선택하면 적용됩니다. 1000 예상 문서 수(lda_D 매개 변수에 해당)
일괄 처리의 크기 정수 [1;1024] 모든 옵션 표시 확인란을 선택하면 적용됩니다. 32 일괄 처리의 크기
학습 속도 업데이트 일정에서 사용되는 반복의 초기 값 정수 [0;int.MaxValue] 모든 옵션 표시 확인란을 선택하면 적용됩니다. 0 학습 속도 업데이트 일정에 사용된 반복 횟수의 초기 값(initial_t 매개 변수에 해당)
업데이트 중 반복에 적용되는 능력 Float [0.0;1.0] 모든 옵션 표시 확인란을 선택하면 적용됩니다. 0.5 온라인 업데이트 중 반복 횟수에 적용된 전원(power_t 매개 변수에 해당)
학습 반복 횟수 정수 [1;1024] 모든 옵션 표시 확인란을 선택하면 적용됩니다. 25 학습 반복 횟수
N-Gram 사전 빌드 부울 True 또는 False 모든 옵션 표시 확인란을 선택하지 않은 경우 적용됩니다. True LDA를 컴퓨팅하기 전에 N-Gram 사전을 빌드합니다. 모델 검사 및 해석에 유용합니다.
기능 해시에 사용할 비트 수 정수 [1;31] ngrams의 빌드 사전 옵션이 False이면 적용됩니다. 12 기능 해시 중에 사용할 비트 수
N-Gram 사전의 최대 크기 정수 [1;int.MaxValue] N-Gram 사전 빌드 옵션이 True인 경우에 적용됩니다. 20000 N-Gram 사전의 최대 크기입니다. 입력의 토큰 수가 이 크기를 초과하면 충돌이 발생할 수 있습니다.
LDA 전에 N-Gram 사전 빌드 부울 True 또는 False 모든 옵션 표시 확인란을 선택하면 적용됩니다. True LDA 전에 N-Gram 사전을 빌드합니다. 모델 검사 및 해석에 유용합니다.
사전에 있는 최대 N-Gram 수 정수 [1;int.MaxValue] ngrams의 빌드 사전이 True이고 모든 옵션 표시 확인란이 선택된 경우에 적용됩니다. 20000 사전의 최대 크기입니다. 입력의 토큰 수가 이 크기를 초과하면 충돌이 발생할 수 있습니다.

출력

Name 유형 설명
변환된 데이터 집합 데이터 테이블 출력 데이터 세트
기능 항목 매트릭스 데이터 테이블 LDA에서 생성된 기능 토픽 매트릭스
LDA 변환 ITransform 인터페이스 데이터 세트에 LDA를 적용하는 변환

예외

예외 설명
오류 0002 데이터 세트의 지정된 열 중 하나 이상을 찾을 수 없으면 예외가 발생합니다.
오류 0003 하나 이상의 입력이 null이거나 비어 있으면 예외가 발생합니다.
오류 0004 매개 변수가 특정 값 이하이면 예외가 발생합니다.
오류 0017 지정한 열 중 하나 이상의 형식이 현재 모듈에서 지원되지 않으면 예외가 발생합니다.

Studio(클래식) 모듈과 관련된 오류 목록은 Machine Learning 오류 코드를 참조하세요.

API 예외 목록은 Machine Learning REST API 오류 코드를 참조하세요.

참고 항목

Text Analytics
기능 해싱
명명된 엔터티 인식
Vowpal Wabbit 7-4 모델 점수 매기기
Vowpal Wabbit 7-4 모델 학습
Vowpal Wabbit 8 모델 학습