잠재적 Dirichlet 할당

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

범주: Text Analytics

참고

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

이 콘텐츠는 Studio (클래식)에만 해당 됩니다. Azure Machine Learning 디자이너에는 비슷한 끌어서 놓기 모듈이 추가 되었습니다. 이 문서에서는 두 가지 버전을 비교 하는방법에 대해 자세히 알아보세요.

모듈 개요

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

이 모듈은 텍스트 열을 가져오고 다음 출력을 생성 합니다.

  • 각 범주에 대 한 점수와 함께 원본 텍스트

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

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

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

LDA (숨어 Dirichlet 할당)에 대 한 자세한 정보

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

인기 모델은 텍스트와 범주 간의 관계에 대 한 강력한 가정을 방지 하 고 단어의 분포를 사용 하 여 수학적 모델 항목에만 사용 하기 때문에 더 적합할 수 있습니다.

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

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

이 모듈에는 원시 또는 전처리 된 텍스트 열을 포함 하는 데이터 집합이 필요 합니다.

  1. 잠재적인 Dirichlet 할당 모듈을 실험에 추가 합니다.

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

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

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

    일반적으로 LDA는 텍스트에서 많은 기능 행렬을 만들기 때문에 일반적으로 단일 텍스트 열을 분석 합니다.

  4. 모델링할 항목 수 에 대해 1에서 1000 사이의 정수를 입력 하 여 입력 텍스트에서 파생 시킬 범주 또는 항목 수를 나타냅니다.

    기본적으로 5 개의 항목이 생성 됩니다.

  5. N 그램 의 경우 해시 중에 생성 되는 n 그램의 최대 길이를 지정 합니다.

    기본값은 2 이며,이는 바이 그램 및 29그램을 모두 생성 한다는 의미입니다.

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

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

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

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

    이러한 매개 변수는 LDA의 Vowpal Wabbit 구현에만 적용 됩니다. Vowpal Wabbit online 및 공식 Vowpal Wabbit Wiki에 대 한 LDA에 대 한 몇 가지 좋은 자습서가 있습니다.

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

    • 가는 매개 변수 입니다. 토픽 배포판의 희박도에 대해 이전 확률을 제공 합니다. VW의 lda_rho 매개 변수에 해당 합니다. 단어의 분포가 플랫 인 것으로 간주 되는 경우 값 1을 사용 합니다. 즉, 모든 단어는 equiprobable로 가정 됩니다. 대부분의 단어를 거의 표시 하지 않는 것으로 생각 되 면 훨씬 더 낮은 값으로 설정할 수 있습니다.

    • 알파 매개 변수 입니다. 문서 별 항목 가중치에 대 한 이전 확률을 지정 합니다. VW의 lda_alpha 매개 변수에 해당 합니다.

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

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

    • 업데이트 일정 학습에 사용 된 반복의 초기 값 입니다. 학습 요금에 대 한 시작 값을 지정 합니다. initial_tVowpal Wabbit의 매개 변수에 해당 합니다.

    • 업데이트 중에 반복에 적용 되는 전원 입니다. 온라인 업데이트 중 반복 횟수에 적용 되는 전원 수준을 표시 합니다. power_tVowpal Wabbit의 매개 변수에 해당 합니다.

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

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

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

  9. 최대 크기 ngram 사전의 경우 n-영문법 사전에서 만들 수 있는 총 행 수를 입력 합니다.

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

  10. 실험을 실행합니다. LDA 모듈은 Bayes 정리를 사용 하 여 개별 단어와 연결 될 수 있는 항목을 결정 합니다. 단어는 토픽 또는 그룹과 독점적으로 연결 되지 않습니다. 대신 각 n-영문법에는 검색 된 클래스와 연결 될 확률이 있습니다.

결과

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

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

  • 기능 항목 행렬: 가장 왼쪽에 있는 열에는 추출 된 텍스트 기능이 포함 되어 있으며, 해당 범주의 해당 기능에 대 한 점수를 포함 하는 각 범주에 대 한 열이 있습니다.

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

LDA 변환

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

이 변환을 저장 하 고 다른 데이터 집합에 다시 사용할 수 있습니다. 이는 큼 모음에 대해 학습 하 고 계수 또는 범주를 다시 사용 하려는 경우에 유용할 수 있습니다.

LDA 모델 또는 결과 구체화

일반적으로 모든 요구를 충족 하는 단일 LDA 모델을 만들 수 없으며 한 작업에 대해 디자인 된 모델에도 정확도를 향상 시키기 위해 많은 반복이 필요할 수 있습니다. 이러한 모든 방법을 사용해 모델을 개선 하는 것이 좋습니다.

  • 모델 매개 변수 변경
  • 시각화를 사용 하 여 결과 이해
  • 실무 전문가의 의견을 받아 생성 된 항목이 유용한 지 여부를 확인 합니다.

질적 측정은 결과를 평가 하는 데 유용할 수도 있습니다. 항목 모델링 결과를 평가 하려면 다음을 고려 하십시오.

  • 정확도-유사한 항목이 정말 유사 한가요?
  • 다양성-비즈니스 문제에 대해 필요한 경우 모델에서 유사한 항목 사이를 판별 수 있나요?
  • 확장성-넓은 범위의 텍스트 범주 또는 좁은 대상 도메인 에서만 작동 하나요?

LDA을 기반으로 하는 모델의 정확도는 자연 언어 처리를 사용 하 여 텍스트를 정리, 요약 및 단순화 하거나 범주화 하 여 향상 시킬 수 있습니다. 예를 들어 Azure Machine Learning에서 모두 지원 되는 다음 기술은 분류 정확도를 향상 시킬 수 있습니다.

  • 중지 단어 제거

  • 대/소문자 정규화

  • 분류 정리 또는 형태소 분석

  • 명명된 엔터티 인식

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

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

예제

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

고객 검토 텍스트를 기반으로 하는 세부 정보 및 예제는 LDA 결과 이해를 참조 하세요.

LDA 결과의 예

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

원본 데이터 세트

데이터 집합에는 사용자가 제공 하는 전체 주석 텍스트 뿐만 아니라 등급 열이 포함 되어 있습니다.

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

text
이 책에는 좋은 점이 있습니다. 무엇이 든 감독자에 게 원하는 항목을 추가 하는 데 도움이 됩니다.
이 책을 완료 하지 않았습니다. 절전 모드 불가와 관련 하 여 문제가 발생 하는 경우 친구에 게 권장 됩니다.
잘못 작성 됨이 책을 읽으려고 했지만,이 책을 발견 하는 것이 좋습니다. ...
Borrowing은 몇 년 전에 전달 된 친구의 eared 복사본을 사용 하기 때문에,이 책에 대해 저는 단기 cult 즐겨찾기를 제공 하지 않았습니다.
이 책의 그림은 흥미롭습니다. 좋은 책 이었습니다. 아쉽게도 아닙니다. 가장 중요 한 문제는 ...

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

LDA 변환 된 데이터 집합

다음 표에서는 책 리뷰 샘플을 기반으로 변환 된 데이터 집합을 포함 합니다. 출력에는 각 범주에 대 한 점수와 함께 입력 텍스트 및 검색 된 범주 수가 포함 됩니다.

영화 이름 항목 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
friend에서 빌려 온 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
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 0.0169680136708971 1
읽기 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
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

기술 정보

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

구현 세부 정보

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

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

  • 토픽 행렬은 토픽에 지정 된 단어의 조건부 확률로 정규화 됩니다. 이 경우 각 열의 합계는 1과 같습니다.

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

LDA 및 토픽 모델링

LDA (숨어 있는 Dirichlet 할당)는 일반적으로 미분류 텍스트에서 범주를 학습 하는 것을 의미 하는 내용 기반 토픽 모델링 에 사용 됩니다. 내용 기반 토픽 모델링에서 토픽은 단어에 대 한 분포입니다.

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

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

용어는 어떤 제품에만 국한 되는 것은 아니지만 다른 제품을 참조 하거나 모든 항목에 적용 되는 일반 용어 ("멋진", "바람직하지 않음") 일 수 있습니다. 다른 용어는 의미 없는 단어 일 수 있습니다. 그러나 LDA 메서드는 공존의 모든 단어를 보증 하는 것이 아니라 동시 발생의 확률을 제외 하 고는 단어가 어떻게 관련 되어 있는지 이해 하는 것이 중요 합니다. 대상 도메인에서 사용 된 단어만 그룹화 할 수 있습니다.

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

예상 입력

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

모듈 매개 변수

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

출력

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

예외

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

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

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

참고 항목

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