AutoML Natural Language 초보자 가이드

소개

회사 웹사이트에 문의 양식이 있다고 가정해 보세요. 매일 이 양식을 통해 많은 메시지가 들어옵니다. 그중 대부분은 어떤 방식으로든 조치를 취할 수 있지만 한꺼번에 밀려 들어와 메시지 처리가 지체되기 쉽습니다. 서로 다른 직원이 서로 다른 메시지 유형을 처리하기 때문입니다. 자동화된 시스템이 메시지를 분류해 적절한 사람이 적절한 메시지를 확인할 수 있다면 얼마나 좋을까요?

분류된 이미지

의견을 살펴본 후 그 내용이 불만사항인지, 과거 서비스에 대한 칭찬인지, 회사에 대해 더 알아보려고 하는 것인지, 약속을 잡으려는 것인지 아니면 관계를 맺으려는 것인지 판단하는 시스템이 필요할 것입니다.

머신러닝(ML)이 왜 이 문제에 적합한 도구일까요?

고전적인 프로그래밍은 컴퓨터가 따라야 할 단계별 지침을 프로그래머가 지정해야 합니다. 그러나 이러한 방식은 쉽게 무용지물이 됩니다. 고객 의견은 간단한 규칙으로 담아내기에는 너무 다양한 어휘와 구조로 되어 있습니다. 수동 필터를 구성한다면 고객 의견 대부분을 분류할 수 없다는 것을 곧 알게 될 것입니다. 다양한 의견을 일반화할 수 있는 시스템이 필요합니다. 일련의 특정 규칙들이 기하급수적으로 확장되는 시나리오에서는 예시를 통해 배울 수 있는 시스템이 필요합니다. 다행히 머신러닝이 이 문제를 해결하기에 아주 유리합니다.

Cloud Natural Language API나 AutoML Natural Language가 적합한 도구인가요?

Natural Language API는 텍스트에서 구문, 항목, 감정을 찾아 사전 정의된 카테고리로 텍스트를 분류합니다. 뉴스 기사 또는 분류하려던 다른 콘텐츠로 텍스트가 구성되어 있거나 예시에서 감정을 찾고자 한다면 Natural Language API는 시도해 볼 가치가 있습니다. 그러나 텍스트 예시가 Natural Language API에서 사용할 수 있는 감정 기반 또는 카테고리 및 주제 기반 분류 체계에 적합하지 않아 대신 자체 라벨을 사용하려는 경우 커스텀 분류 기준이 요구사항에 맞는지 실험해 볼 만합니다.

Natural Language API와 AutoML Natural Language 비교하기

Natural Language API 사용해 보기 AutoML 시작하기

AutoML Natural Language 머신러닝은 어떻게 작동하나요?

머신러닝은 데이터를 사용해 알고리즘을 학습하고 원하는 결과를 얻는 것입니다. 세부적인 알고리즘과 학습 방법은 사용 사례에 따라 달라집니다. 머신러닝에는 여러 하위 카테고리가 있으며 모든 하위 카테고리는 서로 다른 문제를 해결하고 서로 다른 제약 조건 하에 작동합니다. AutoML Natural Language를 사용하면 지도 학습을 통해 라벨이 지정된 데이터의 패턴을 인식하도록 컴퓨터를 학습시킬 수 있습니다. 지도 학습을 통해 커스텀 모델을 학습시키고 텍스트에서 중요한 콘텐츠를 인식할 수 있습니다.

데이터 준비

AutoML Natural Language로 커스텀 모델을 학습시키려면 분류할 텍스트 항목(입력) 유형의 라벨이 지정된 예시와 ML 시스템을 통해 예측할 카테고리 또는 라벨(답변)을 제공해야 합니다.

사용 사례 평가

데이터세트를 구성할 때는 항상 사용 사례로 시작해야 합니다. 다음과 같은 질문으로 시작할 수 있습니다.

  • 달성하려는 결과가 무엇인가요?
  • 이 결과를 달성하기 위해 인식해야 하는 카테고리 종류는 무엇인가요?
  • 인간도 그러한 카테고리를 인식할 수 있나요? AutoML Natural Language는 인간이 한 번에 기억하고 지정할 수 있는 것보다 더 많은 카테고리를 처리할 수 있지만, 인간이 인식할 수 없는 카테고리라면 AutoML Natural Language 역시 어려움을 겪게 됩니다.
  • 시스템이 분류할 데이터의 유형과 범위를 가장 잘 보여주는 예시는 무엇인가요?

Google의 ML 제품을 뒷받침하는 핵심 원칙은 인간 중심의 머신러닝이며, 공정성을 포함하여 책임감 있는 AI 방침을 특히 중시하는 접근법입니다. ML에서 공정성의 목표는 알고리즘 시스템이나 알고리즘을 기초로 한 의사 결정 과정에서 인종, 소득, 성적 지향, 종교, 성별, 그리고 역사적으로 차별 및 소외와 연관된 기타 특성과 관련하여 사람들을 부당하거나 불리하게 대우하는 일이 나타날 경우, 이를 파악하고 이러한 일을 방지하는 것입니다. 자세한 내용은 포괄적인 ML 가이드와 아래 가이드라인에 나와 있는 '공정석 인식(fair-aware)' 참고 사항을 참조하세요. 가이드라인을 따라 데이터 세트를 구성하면서 사용 사례와 관련해 머신러닝 공정성을 고려하시기 바랍니다.

데이터 소싱

필요한 데이터가 무엇인지 정해지면 소싱 방법을 찾아야 합니다. 먼저 조직에서 수집하는 모든 데이터를 살펴보는 것으로 시작할 수 있습니다. 이렇게 하면 모델 학습에 필요한 데이터를 이미 수집하고 있었다는 것을 알게 될 수도 있습니다. 필요한 데이터가 없는 경우 직접 확보하거나 타사 제공업체에 아웃소싱할 수 있습니다.

라벨이 지정된 예제를 각 카테고리에 충분히 포함시키기

AutoML Natural Language는 학습을 위해 카테고리/라벨당 최소 텍스트 예시 10개가 필요합니다. 라벨을 제대로 인식할 가능성은 고품질 예시의 수가 많을수록 증가합니다. 일반적으로 학습 프로세스에 라벨이 지정된 데이터가 많이 제공될수록 모델이 향상됩니다. 필요한 샘플 수는 예측하려는 데이터의 일관성과 대상 정확도 수준에 따라 달라집니다. 일관된 데이터 세트의 예시를 더 적게 사용하거나 97% 정확성 대신 80% 정확성을 달성할 수 있습니다. 라벨당 예시 50개를 사용하여 모델을 학습하고 결과를 평가합니다. 더 많은 예를 추가하고 정확도 목표를 달성할 때까지 재교육하십시오 (라벨당 수백 또는 수천 개의 예시가 필요할 수 있음).

카테고리별로 예시를 균등하게 배분하기

각 카테고리에 대체로 비슷한 개수의 학습 예시를 수집하는 것이 중요합니다. 한 라벨에 많은 양의 데이터가 있더라도 각 라벨에 균등하게 배분하는 것이 가장 좋습니다. 그 이유를 알아보기 위해 모델을 만드는 데 사용하는 고객 의견 중 80%가 견적 요청이라고 가정해 보겠습니다. 모델은 이렇게 불균형적인 라벨 배분으로 인해 일반적이지 않은 라벨을 예측하려고 시도하기 보다는 고객 의견이 견적 요청이라고 말하는 것이 항상 안전하다고 학습하게 될 가능성이 높습니다. 이는 거의 모든 정답이 'C'인 객관식 시험을 보는 것과 같습니다. 예리한 응시자는 곧 문제를 보지 않고도 매번 'C'라고 답하면 된다는 점을 알아차립니다.

각 라벨에 거의 동일한 수의 예시를 제공할 수 없는 경우도 있습니다. 어떤 카테고리에서는 고품질의 비편향적인 예시를 제공하기가 더 어려울 수 있습니다. 이러한 경우에는 예시가 가장 적은 라벨의 예시 수가 예시가 가장 많은 라벨의 예시 수의 10% 이상이어야 합니다. 따라서 예시가 가장 많은 라벨의 예시가 10,000개라면 예시가 가장 적은 라벨의 예시는 최소 1,000개여야 합니다.

문제 공간의 다양성 포착

비슷한 이유로 데이터가 문제 공간의 다양성과 상이성을 포착하도록 시도하세요. 모델은 더 넓은 범위의 예시를 제공하면 쉽게 새 데이터로 일반화할 수 있습니다. 예를 들어 소비자 가전에 관한 기사를 주제별로 분류한다고 가정해 보겠습니다. 브랜드 이름과 기술 사양을 많이 입력할수록 모델은 학습 세트에 없는 브랜드에 관한 기사라 하더라도 더 쉽게 기사의 주제를 파악할 수 있습니다. 정의된 라벨과 일치하지 않는 문서에 'none_of_the_above' 라벨을 지정해 모델 성능을 향상시키는 방법도 고려할 수 있습니다.

데이터를 모델에 의도된 출력과 매칭

텍스트 및 출력

예측하려는 텍스트와 유사한 텍스트 예시를 찾아보세요. 유리 세공에 관한 소셜 미디어 게시물을 분류하려는 경우, 유리 세공 정보 웹사이트에서 학습한 모델에서는 만족스러운 결과를 얻을 수 없습니다. 이는 어휘와 스타일이 결과에 영향을 미친 만큼 다르기 때문입니다. 학습 예시는 모델을 사용하여 분류하려는 데이터 세트에서 실제 데이터를 그대로 가져오는 것이 가장 좋습니다.

커스텀 모델 생성 시 AutoML Natural Language에서 데이터 세트를 사용하는 방법 고려

데이터 세트에는 학습, 검증, 테스트 세트가 있습니다. AutoML Natural Language는 분할을 지정하지 않으면(데이터 준비 참조) 자동으로 콘텐츠 문서 80%를 학습에, 10%를 검증에, 10%를 테스트에 사용합니다.

학습, 검증, 테스트 세트

학습 세트

데이터의 대부분은 학습 세트에 있어야 합니다. 이러한 데이터는 모델이 학습 중에 '보는' 데이터이며 모델의 매개변수, 즉 신경망 노드 간의 연결 가중치를 학습하는 데 사용됩니다.

검증 세트

'개발' 세트라고도 하는 검증 세트가 학습 프로세스에 사용됩니다. 모델 학습 프레임워크는 학습 프로세스가 반복될 때마다 학습 데이터를 반영한 후, 검증 세트에 대한 모델의 성능을 사용하여 모델의 초매개변수, 즉 모델의 구조를 지정하는 변수를 조정합니다. 학습 세트를 사용하여 초매개변수를 조정하려고 시도하면 모델이 학습 데이터에 지나치게 집중하고, 정확하게 일치하지 않는 예시를 일반화하는 데 어려움을 겪을 가능성이 높습니다. 어느 정도 새로운 데이터 세트를 사용하여 모델을 세밀하게 조정하면 모델의 일반화 성능도 개선됩니다.

테스트 세트

테스트 세트는 학습 프로세스에 관여하지 않습니다. 모델이 학습을 모두 완료하면 AutoML Natural Language가 테스트 세트를 모델을 위한 완전히 새로운 도전과제로 사용합니다. 테스트 세트에서 측정된 모델 성능을 통해 모델이 실제 데이터에서 어떤 성능을 보일지를 가늠할 수 있습니다.

수동 분할

데이터 세트를 직접 분할할 수 있습니다. 데이터 수동 분할을 사용하면 프로세스를 좀더 직접 제어할 수 있습니다. 또는 모델 학습 주기의 특정 부분에 포함하고 싶은 특정 예시가 있는 경우에 적합합니다.

 

가져올 데이터 준비하기

데이터 분할 방식을 선택했다면 다음 세 가지 방법 중 하나로 AutoML Natural Language에 데이터를 추가할 수 있습니다.

  • 라벨에 해당되는 폴더에 분류 및 저장한 텍스트 예시를 사용해 데이터를 가져올 수 있습니다.
  • 학습 데이터 준비에 지정된 대로 컴퓨터나 Cloud Storage에서 데이터를 인라인 라벨이 있는 CSV 형식으로 가져올 수 있습니다. 데이터 세트를 수동으로 분할하려면 이 옵션을 선택하고 이에 따라 CSV 형식을 만들어야 합니다.
  • 데이터에 아직 라벨이 지정되지 않은 경우, 라벨이 지정되지 않은 텍스트 예시를 업로드하고 AutoML Natural Language UI를 사용해 각 예시에 라벨을 적용할 수도 있습니다.

평가

모델 학습이 끝나면 모델 성능에 대한 요약을 받습니다. 자세한 분석을 보려면 평가 또는 전체 평가 보기를 클릭합니다.

모델을 평가하기 전에 기억해야 할 사항은 무엇인가요?

모델 디버깅은 모델 자체보다 데이터 디버깅에 관한 것입니다. 프로덕션 진행 전후 성능을 평가할 때 모델이 예상하지 못한 방식으로 작동하면 다시 데이터를 확인하여 어느 부분을 개선할 수 있는지 파악해야 합니다.

AutoML Natural Language에서 어떤 종류의 분석을 수행할 수 있나요?

AutoML Natural Language 평가 섹션에서는 테스트 예시를 사용한 모델 출력과 머신러닝 일반 측정항목을 사용해 커스텀 모델의 성능을 평가할 수 있습니다. 이 섹션에서는 다음 각 개념의 의미를 설명합니다.

  • 모델 출력
  • 점수 임계값
  • 참양성, 참음성, 거짓양성, 거짓음성
  • 정밀도와 재현율
  • 정밀도/재현율 곡선
  • 평균 정밀도

모델 출력은 어떻게 해석하나요?

AutoML Natural Languages 테스트 데이터의 예시를 가져와 모델에 새로운 과제를 제시합니다. 각 예시에서 모델은 각 라벨이 해당 예시와 얼마나 강한 연관성이 있는지 나타내는 일련의 숫자를 출력합니다. 출력된 숫자가 높을수록 해당 라벨이 문서에 적용되어야 하는 것으로 모델이 확신한다는 뜻입니다.

점수 임곗값이란 무엇인가요?

AutoML Natural Language는 점수 임계값을 통해 확률을 'on'/'off' 이진값으로 변환할 수 있습니다. 점수 임곗값은 테스트 항목에 카테고리를 지정하기 위해 모델이 가져야 하는 신뢰도 수준을 의미합니다. UI에 있는 점수 임곗값 슬라이더는 데이터 세트에서 다양한 임곗값의 영향을 테스트하기 위한 시각적 도구입니다. 위의 예시에서 모든 카테고리에 대해 점수 임곗값을 0.8로 설정하면 '훌륭한 서비스'와 '제안'이 할당되지만 '정보 요청'은 할당되지 않습니다. 점수 임곗값이 낮으면 모델이 분류하는 텍스트 항목 수가 늘어나지만 그 과정에서 더 많은 텍스트 항목을 잘못 분류할 위험이 있습니다. 점수 임곗값이 높으면 모델이 분류하는 텍스트 항목 수가 줄어들지만 텍스트 항목을 잘못 분류할 위험이 낮아집니다. UI에서 카테고리별로 임곗값을 조정하면서 시험해볼 수 있습니다. 하지만 프로덕션에서 모델을 사용할 때는 자신이 최적이라고 판단한 임곗값을 적용해야 합니다.

신뢰도 임계값

참양성, 참음성, 거짓양성, 거짓음성이란 무엇인가요?

점수 임계값을 적용한 후에 모델에 의해 수행된 예측은 다음 네 가지 카테고리 중 하나에 해당합니다.

신뢰도 카테고리 설명

이러한 카테고리를 사용해 모델의 효과를 평가할 수 있는 측정항목인 정밀도와 재현율을 계산할 수 있습니다.

정밀도와 재현율이란 무엇인가요?

정밀도와 재현율은 모델이 정보를 얼마나 잘 포착하고 있는지 혹은 정보를 얼마나 놓치고 있는지를 이해하는 데 도움을 줍니다. 정밀도는 라벨이 지정된 전체 테스트 예시 중에서 실제로 그 라벨로 카테고리가 지정되는 것이 맞는 경우의 개수를 알려줍니다. 재현율은 라벨이 지정되어야 하는 전체 테스트 예시 중에서 실제로 해당 라벨이 지정된 예시의 수를 알려줍니다.

정밀도나 재현율 중에서 무엇을 기준으로 최적화해야 하나요?

정밀도나 재현율 중에서 무엇을 기준으로 최적화할지는 사용 사례에 따라 달라집니다. 이러한 결정을 내리는 방법을 다음 두 가지 사용 사례를 통해 알아봅니다.

사용 사례: 긴급 문서

긴급 문서와 긴급하지 않은 문서의 우선순위를 정할 수 있는 시스템을 만들고 싶다고 가정해 보겠습니다.

이 경우 거짓양성은 긴급하지 않지만 긴급한 것으로 표시되는 문서입니다. 사용자는 이를 긴급하지 않은 것으로 간주하고 다음 문서로 넘어갈 수 있습니다.

거짓음성은 긴급한 문서를 시스템에서 긴급한 것으로 표시하지 않는 경우입니다. 이로 인해 문제가 발생할 수 있습니다.

이러한 경우 재현율을 기준으로 최적화하는 것이 좋습니다. 이 측정항목은 예측 전체에서 얼마나 누락되었는지를 측정합니다. 고재현율 모델은 관련성이 적은 예시에 라벨을 지정할 가능성이 높으므로 카테고리에 학습 데이터가 별로 없는 경우에 유용합니다.

사용 사례: 스팸 필터링

스팸 이메일 메시지를 스팸이 아닌 이메일 메시지로부터 자동으로 필터링하는 시스템을 만들고 싶다고 가정해 보겠습니다.

이 경우 거짓음성은 필터링하지 못하고 받은 편지함에서 보게 되는 스팸 메일입니다. 보통은 조금 성가실 뿐입니다.

이 경우 거짓양성은 스팸으로 잘못 표시되어 받은 편지함에서 삭제되는 이메일입니다. 중요한 이메일의 경우에는 사용자에게 부정적인 영향을 미칠 수 있습니다.

이 경우 정밀도 최적화가 좋습니다. 이 측정항목은 예측이 전체적으로 얼마나 정확한지를 측정합니다. 고정밀도 모델은 가장 관련성이 높은 예제만 라벨을 지정할 가능성이 높으므로 카테고리가 학습 데이터에서 일반적인 경우 유용합니다.

혼동 행렬을 어떻게 사용하나요?

혼동 행렬을 사용하여 각 라벨에서의 모델 성능을 비교할 수 있습니다. 이상적인 모델에서는 대각선상의 모든 값이 높고 다른 모든 값이 낮습니다. 이것은 원하는 카테고리가 정확하게 식별되었음을 나타냅니다. 다른 값이 높으면 모델이 테스트 항목을 잘못 분류하고 있다는 의미입니다.

혼동 행렬

정밀도-재현율 곡선을 어떻게 해석하나요?

정밀도-재현율 곡선

점수 임계값 도구를 사용하면 선택한 점수 임계값이 정밀도와 재현율에 어떤 영향을 주는지 살펴볼 수 있습니다. 점수 임계값 바의 슬라이더를 드래그하면 임계값에 따라 변하는 정밀도-재현율 곡선 상의 위치뿐만 아니라 임계값이 정밀도와 재현율에 개별적으로 미치는 영향을 확인할 수 있습니다(다중 클래스 모델의 경우, 이 그래프의 정밀도와 재현율은 반환되는 라벨 집합에서 점수가 가장 높은 라벨이 정밀도 및 재현율 측정항목 계산에 유일하게 사용되는 라벨임을 말해 줍니다.) 이렇게 하면 거짓양성과 거짓음성의 균형을 잘 잡을 수 있습니다.

모델 전체에 적용할 수 있는 임곗값을 선택한 후 각 라벨을 클릭하여 해당 임곗값이 라벨별 정밀도-재현율 곡선에서 어느 위치에 있는지 확인할 수 있습니다. 몇몇 라벨에만 잘못된 예측을 많이 하도록 임계값이 정해지는 경우가 있습니다. 이럴 때 라벨별로 곡선을 보면 이런 라벨에 맞춰 클래스별 임계값을 선택하는 데 도움이 될 수 있습니다. 예를 들어 고객 의견 데이터세트에서 임계값 0.5가 모든 의견 유형에 대해 적정한 정밀도와 재현율을 나타내며 예외적으로 '제안'은 아주 일반적인 카테고리이기 때문에 그렇지 않다고 가정해 보겠습니다. 이 카테고리에는 거짓양성이 많이 있습니다. 이 경우 예측을 위한 분류 기준을 호출할 때 '제안' 카테고리에만 임계값 0.8을 사용할 수 있습니다.

평균 정밀도란 무엇인가요?

모델 정확도를 측정하는 유용한 항목은 정밀도-재현율 곡선 아래에 있는 면적으로, 점수 임계값 전체에 대비 모델 성능을 나타냅니다. AutoML Natural Language에서 이 측정항목은 평균 정밀도라고 합니다. 이 점수가 1.0에 가까울수록 모델이 테스트 세트에서 더 좋은 성능을 보입니다. 각 라벨에 대해 무작위로 추측하는 모델은 평균 정밀도가 약 0.5입니다.

모델 테스트하기

AutoML Natural Language은 모델을 테스트하는 데 자동으로 데이터의 10%(또는 수동 데이터 분할을 선택한 경우에는 사용자가 선택한 비율)를 사용하며, 이 테스트 데이터에 대한 모델의 결과는 '평가' 페이지에 나타납니다. 이와 별도로 모델의 온전성을 검사하려는 경우 몇 가지 방법이 있습니다. 가장 쉬운 방법은 텍스트 예시를 '예측' 페이지에 있는 텍스트 상자에 입력하고 모델이 선택하는 라벨을 살펴보는 것입니다. 그 결과가 예상대로라면 받을 만한 의견 유형별로 몇 가지 예시를 입력해 보세요.

자동화된 자체 테스트에서 모델을 사용하려는 경우에는 '예측' 페이지에 프로그래매틱 방식으로 모델을 호출하는 방법도 표시됩니다.