자연어 처리에서 데이터 증강 방법

wandajeong·2023년 4월 8일
0

NLP/Text Data Analysis

목록 보기
12/12
  • 단어 바꾸기
    • 문장에서 단어를 골라 유의어 사전이나 단어 임베딩을 이용해 유의어로 교체
    • TF-IDF 점수가 낮은 단어로 교체
  • 역변역(Back translation)
    • 문장을 다른 언어로 번역 후, 원래의 언어로 다시 번역
    • 의미를 보존하면서 표현을 바꿀 수 있음
  • 텍스트 표층 변환(Text Surface Transformation)
    • 간단한 규칙을 이용해서 의미를 바꾸지 않으면서 텍스트의 표현만 바꿈 (e.g. It is → It’s, I am → I’m)
  • 무작위 잡음 주입(Random Noise Injection)
    • 자주 틀리는 오타를 이용해 찾아 바꾸기(dear → deer)
    • 키보드에서 가까이 있는 글자로 바꾸기(is → id)
    • 문장 순서 뒤섞기, 단어 위치 바꾸기
  • 사례 교차(Instance Crossover)
    • 데이터에서 서로 다른 사례를 골라 문장을 섞음
    • 문장 의미가 바뀌거나, 문법적으로 올바르지 않은 문장이 될 수도 있지만 문장의 클래스는 보존될 수 있음
  • 구문 트리 수정
    • 영어의 경우 능동태 <-> 수동태
    • 한국어의 경우 어순이 어느정도 자유로우므로 지배소가 같은 단어끼리 순서를 바꿀 수 있음
  • 섞기(mixup)
    • 모델에 단어를 입력할 때, 두 문장에서 같은 위치에 있는 단어의 임베딩을 반반씩 섞어서(0.5e1+0.5e2)0.5e_1+0.5e_2) 입력
  • 생성
    • “레이블: 문장” 형태로 예문을 만들어 GPT등에 미세조정(”긍정: 이 영화 재밌다”)
    • 미세조정된 모델에 프롬프트 “레이블: “를 입력하여 예문을 생성

※ 데이터 증강은 효과적인가?

  • 텍스트의 경우 사전학습되지 않은 모형에는 효과적
  • 사전학습된 모형에 미세조정을 할 때, 일반적이고 단순한 데이터 증강은 성능 개선 효과가 없다는 연구가 있음
profile
ML/DL swimmer

0개의 댓글