- 단어 바꾸기
- 문장에서 단어를 골라 유의어 사전이나 단어 임베딩을 이용해 유의어로 교체
- 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) 입력
- 생성
- “레이블: 문장” 형태로 예문을 만들어 GPT등에 미세조정(”긍정: 이 영화 재밌다”)
- 미세조정된 모델에 프롬프트 “레이블: “를 입력하여 예문을 생성
※ 데이터 증강은 효과적인가?
- 텍스트의 경우 사전학습되지 않은 모형에는 효과적
- 사전학습된 모형에 미세조정을 할 때, 일반적이고 단순한 데이터 증강은 성능 개선 효과가 없다는 연구가 있음