Text

AI와 자체 알고리즘으로 NER 작업 효율화 과정

데이터헌트가 NER에 강점을 가지는 비결

2023
.
04
.
21
AI와 자체 알고리즘으로 NER 작업 효율화 과정

안녕하세요, 오늘은 텍스트 데이터 라벨링 작업에서 자주 언급되는 NER (Named Entity Recognition, 개체명인식) 모델을 위한 BERT 의 한계를 데이터헌트에서는 어떻게 AI와 자체 알고리즘 을 활용해 작업을 어떻게 효율화했는지 소개드리겠습니다.

NER이란 무엇인가

NER (Named Entity Recognition, 개체명인식) 이란 ‘미리 정의해 둔 사람, 회사, 장소, 시간, 단위 등에 해당하는 단어(개체명)를 문서에서 인식하여 추출 분류하는 기법’입니다. 여기서 추출된 개체명이란 인명(person), 지명(location), 기관명(organization), 시간(time) 등으로, 이 개체명을 반드시 따라야 하는 것은 아니고 작업에 따라서 그 분류 체계를 달리할 수도 있습니다. 이렇게 추출된 개체명은 정보 추출을 목적으로 시작되어 자연어 처리, 정보 검색 등에 사용됩니다.

예를 들면

Datahunt NER example

라는 문장에서 데이터헌트는 기관명, 2022년은 시간, 강남역과 선정릉은 지명으로 분류할 수 있습니다. 물론 정확한 의미 전달이 되지는 않지만 추출된 개체명만으로도 대충 어떤 내용의 문장인지 감이 오지 않나요? 이처럼 개체명 분류를 정확히 할 수 있다면 핵심적인 정보 추출에 매우 큰 도움이 됩니다.

NER 모델

NER 데이터셋 가공은 작업된 데이터로 NER 모델을 학습하고, 학습된 모델을 NER 데이터셋 가공에 활용하는 것이 일반적입니다. 하지만 이 방법은 몇가지 문제가 존재하는데요, 여기서는 대표적인 NER 모델을 살펴보고 어떤 문제가 있는지, 그래서 데이터헌트에서는 어떤 방법으로 NER 데이터셋 가공 작업을 효율화 했는지 살펴보겠습니다.

기존 모델 및 문제

NER (Named Entity Recognition, 개체명인식) 모델 중 가장 유명한 것은 BERT(Bidirectional Encoder Representations from Transformers)를 활용한 모델입니다.

NER에 가장 대중적인 BERT 모델
NER에 가장 대중적인 BERT 모델

요즘은 GPT로 세상이 떠들썩하지만 BERT 또한 자연어에서 빼놓을 수 없는 모델로써 아래의 특징들을 갖고 있습니다.

  • Transformer Architecture: Self-attention 기반의 구조가 많은 단어 사이의 관계를 폭넓게 이해하도록 학습합니다
  • Bidirectional Training: BERT는 양방향으로 입력 문장을 학습합니다. 이를 통해 문장 내의 단어들이 앞뒤 문맥을 모두 고려하여 의미를 파악합니다
  • Pre-training / Fine-tuning: BERT는 대규모의 언어 코퍼스를 통해 사전 학습을 수행합니다. 사전 학습 과정에서는 두 가지 작업을 수행이를 통해 BERT는 일반적인 언어 이해를 습득하게 됩니다.
  • 마스킹된 언어 모델링(Masked Language Modeling)
  • 다음 문장 예측(Next Sentence Prediction)
  • Transfer Learning: BERT의 가장 큰 장점 중 하나는 Transfer Learning이 가능하다는 것으로, 사전 학습된 BERT 모델을 사용하면 적은 데이터와 컴퓨팅 자원으로도 좋은 성능을 달성

이러한 BERT 모델에 각 토큰에 대한 개체명 분류를 위한 레이어를 붙여 NER 모델을 완성합니다.

하지만 BERT 또한 완벽한 모델은 아닙니다. 그 이유는 텍스트 전처리 Tokenizer를 포함하여 다양한데요,

  • Tokenizer가 텍스트를 품사 단위로 쪼개지만 완벽하지 않고
  • 텍스트를 잘 쪼개고도 모델의 개체명 분류 정확도가 완벽할 수는 없으며
  • 같은 단어라도 문맥에 따라 다른 개체명이 될 수 있습니다

많은 데이터로 BERT 모델을 학습한다면 위의 문제를 조금씩 개선할 수는 있겠지만 아무래도 매번 학습이 필요하고 모든 결과를 BERT 모델에 의존해야 하는 문제가 있습니다. 따라서 작업이 진행됨에 따라 지속적으로 모델을 재학습하는 방법 외에도 많은 고민을 하게 되었습니다.

DB 기반 신뢰도 평가 알고리즘

그래서 데이터헌트에서는 작업된 개체명 DB를 쌓아 얻게 되는 통계를 기반으로 새로운 Pre-labeling 알고리즘을 만들었습니다. 이 과정은 매우 직관적으로 Interactive하며, 별도의 학습 과정이 없이 빠르게 적용될 수 있는 것이 장점입니다. BERT 기반의 NER 모델 활용을 포함한 전체적인 프로세스는 아래와 같습니다.

  1. BERT 기반 NER 모델을 통해 작업자에게 Pre-label을 전달
  2. 작업자는 해당 Pre-label을 받아 작업을 수행. 이 과정에서 NER 태그의 생성/수정/삭제 등이 일어남
  3. 작업된 개체명을 DB에 쌓아가며(단어 사전 생성) 설계한 알고리즘을 바탕으로 각 개체명의 신뢰도 결정
  4. 신뢰도가 정해진 기준을 넘긴 개체명에 대해 차후 작업에 Pre-labeling

NER 작업 개선 Overview
NER 작업 개선 Overview

독자적으로 개발한 신뢰도 평가 알고리즘은 다음과 같은 장점을 갖습니다.

  • 모델 학습 과정 없이 실시간 동작
  • 로직에 직접적으로 개입할 수가 있으며, 오동작의 원인을 분석할 수 있음
  • 텍스트를 쪼개는 Tokenizer의 영향을 받지 않음

이러한 과정을 통해 가능한 더 많은 Pre-label을 작업자에게 전달했습니다. 물론 신뢰도 평가 알고리즘에 따라 Pre-label의 수량 – 정확도의 trade-off가 존재하기 때문에 프로젝트에 따라 유동적으로 변경할 수 있도록 했습니다.

평가 알고리즘을 통한 개선 결과

개발된 신뢰도 평가 알고리즘을 통해 개선된 결과 예시는 아래와 같습니다.

신뢰도 평가 알고리즘을 통한 Pre-labeling 결과 개선 - 전(좌), 후(우)
신뢰도 평가 알고리즘을 통한 Pre-labeling 결과 개선 – 전(좌), 후(우)

NER 모델만으로는 검출할 수 없던 개체명을 잘 보완한 사례로써, 기존 작업되었던 텍스트 중에 해당 개체(단어)가 포함되어 있었기 때문에 작업 효율을 개선할 수 있었습니다. 마치 딥러닝 모델과 같이 많은 데이터가 쌓이면 쌓일수록 더욱 정확한 결과를 내어줄 수 있는 간단하면서도 실효성 있는 방법인 것 같습니다. 하지만 같은 단어는 무조건 하나의 개체명으로 태깅한다는 문제는 개선이 필요하며, 모델 학습과 마찬가지로 유효한 신뢰도 평가를 하기 위해서 데이터가 일정 수준 이상 쌓여야 하는 점을 고려해야 했습니다.

머신러닝 평가 기준 f1 score에 대해 자세히 알아보기

자체 알고리즘 실제 도입 사례

2022년 데이터헌트에서는 Boston Consulting Group(BCG)과 함께 NER 모델 개발을 위한 데이터셋 구축 프로젝트를 수행했습니다. 개체명 태깅 수가 수십만개에 달하며 문맥에 따라 다른 개체명으로 분류되어야 하는 단어가 다수 존재하는 어려운 프로젝트였습니다. 데이터의 수가 상당한 만큼 과제 수행 기간도 짧지 않았기 때문에 NER 모델 학습이나 신뢰도 알고리즘이 고도화 되기에 충분한 시간이 있었습니다. 덕분에 Pre-labeling이 점진적으로 고도화될 수 있었고, 이는 작업자의 작업 효율 향상에 큰 도움이 되었습니다.

이와 같이 데이터헌트에서는 Human-in-the-loop AI를 통해 NER을 포함한 다양한 분야에서 데이터 라벨링, 수집, 가공을 효율화하고 정확도 높은 데이터셋을 구축하고 있습니다.

Talk to Expert