티스토리 뷰
[ADV 프로젝트] 텍스트 불균형 해소 Part2. EDA (Easy Data Augmentation)
HONG_YP 2021. 2. 14. 17:58
이번 포스트는 지난 불균형 해소 Part1 포스트에 이어서 두 번째 해소 방법에 대해 이야기 해보려고 한다.
지난 포스트에서 Back Translation 기법을 사용하여 기존 불균형 데이터를 4배 가량 증가시켜 주었다.
그럼에도 불구하고 아직 균형이 맞지 않아, 다른 방법을 한번 더 사용하기로 하였다.
두 번째로 사용한 방법은 'EDA: Easy Data Augmentation'이라는 기법이다.
데이터분석, 머신러닝 혹은 딥러닝을 공부하는 사람들이 흔히 알고있는 EDA는 Exploratory Data Analysis(탐색적 데이터 분석)의 약자이다.
하지만 이번에 사용하게 된 EDA는 Easy Data Augmentation의 약자로, 말 그대로 데이터 증가를 쉽게 해보자 라는 의미를 담고있다.
해당 기법에 대한 논문은 2018년에 EMNLP에서 발표되었고, EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks를 통해 자연어 처리 분야에서 효과적인 데이터 증가를 이루어낼 수 있었다.
해당 논문에서 소개하는 방법은 다음과 같다.
아래와 같은 4가지의 기법을 사용하여 텍스트 데이터를 변화 시켜주어 늘릴 수 있게 해준다.
- SR (Synonym Replacement): 특정 단어를 비슷한 의미의 유의어로 교체
- RI (Random Insertion): 임의의 단어를 삽입
- RS (Random Swap): 텍스트 내의 두 단어를 임의로 선정하여 서로 위치를 바꿔줌
- RD (Random Deletion): 임의의 단어를 삭제
위와 같은 방법을 사용하여 우리의 데이터를 증가시켜주고자 하였고, 논문에 따르면,
'큰 훈련 세트의 경우, 많은 양의 실제 데이터를 사용할 수 있을 때 모델이 적절하게 일반화가 되는 경향이 있기 때문에 원래 문장당 4개 이상의 증강 문장을 추가하는 것은 도움이 되지 않는다.'
이러한 내용과 아래의 그림처럼 논문 내 추천 파라미터를 감안하여, Augmentation할 n을 3으로 맞춰주어 진행하였다.
EDA를 사용하기 위한 코드는 아래의 코드를 참고하여 제작하였다.
github.com/catSirup/KorEDA/tree/master
결과적으로 기존 4배 증가시켜주었던 데이터를 3배 더 증가 시켜줄 수 있었다.
대략적으로 클래스를 5.5 : 4.5의 비율로 맞추어줄 수 있었고, 균형이 적절하다 판단하여 다음 단계를 수행하기로 하였다.
다음 과정을 전처리 과정의 최종 단계인 FOLD Set을 활용한 데이터 검수 및 라벨링 교정 단계이다.
'ACTIVITY STORY > BOAZ' 카테고리의 다른 글
[BOAZ 수료] 1년간의 활동과 BOAZ 수료 후기! (2) | 2021.02.14 |
---|---|
[ADV 프로젝트] 데이터 최종 검수 (Fold Set 활용 노이즈 정제 및 라벨링 검수) (0) | 2021.02.14 |
[ADV 프로젝트] 텍스트 불균형 해소 Part1. Text Augmentation (번역 후 재번역, Back Translation) (0) | 2020.12.12 |
[ADV 프로젝트] 텍스트 전처리 Part2. 맞춤법 교정 (부산대 맞춤법 교정기, py-hanspell) (5) | 2020.11.25 |
[ADV 프로젝트] 텍스트 전처리 Part1. 띄어쓰기 교정 (파이썬 Chatspace) (3) | 2020.11.24 |