[논문리뷰] EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks
읽기 전에
데이터 증강 (Data Augmentation) : 학습 데이터가 부족한 상황에서 데이터를 변형시켜 그 양을 강제로 늘리는 기법
-> CV 에서는 자주 쓰이지만 NLP 에서는 적용이 어려웠음
한국어 구현 깃헙
https://github.com/catSirup/KorEDA/tree/master
GitHub - catSirup/KorEDA: EDA를 한국어 데이터에서도 사용할 수 있도록 WordNet을 추가
EDA를 한국어 데이터에서도 사용할 수 있도록 WordNet을 추가. Contribute to catSirup/KorEDA development by creating an account on GitHub.
github.com
페이스북 월간 자연어처리
https://www.facebook.com/monthly.nlp/posts/222119705886568
Facebook에 로그인
Notice 계속하려면 로그인해주세요.
www.facebook.com
Abstract
네 가지의 간단하지만 강력한 기법
1) SR : Synonym Replacement | 특정 단어 유의어로 교체
2) RI : Random Insertion | 임의의 단어 삽입
3) RS : Random Swap | 문장 내 임의 두 단어 위치 변경
4) RD : Random Deletion | 임의 단어 삭제
EDA가 Convolution(합성망)과 RNN(순환신경망)에서 성능을 향상시킬 수 있다는 것을 보여줬는데, 특히 데이터 적을수록 강력
- 데이터 양이 많으면 노이즈로 큰 영향을 못주니까,,? ( 10개에 5개 추가 vs 10000개에 5개 추가 )
- 정확도 : (사용 가능한 트레인 데이터 50% + EDA) == 트레인 100%
Introduction
이전 제안한 NLP 데이터 증강 기법
1) 문장을 프랑스어로 번역하고 다시 영어로 번역해 새로운 데이터 획득
2) 데이터에 노이즈를 가볍게 주입 ( data noising as smoothing )
3) 유의어로 교체해주는 예측 언어 모델
유효하나 성능 대비 구현 비용이 높아 사용 꺼림
-> 논문에서 데이터 증강을 위한 텍스트 편집 기법을 포괄적으로 탐구한 최초의 사람이라고 주장 (,,,)
EDA를 다섯 가지 벤치마크를 통해 조직적으로 평가하고 얼마나 개선을 이루어냈는지, 특히 적응 양의 데이터셋에 얼마나 도움을 주는지 보여줌 (Particularly helpful for smaller dataset 자주 언급)
EDA
소규모 데이터셋에 대해 학습된 텍스트 분류기의 쥐꼬리만한(measly) 성능에 실망했던 저자들은 CV에서 사용되는 텍스트 분류기에서 약간 영감을 받아 여러 데이터 증강 작업을 테스트했는데 크게 도움됨
1) SR : 문장에서 랜덤으로 sop words 제외 n개의 단어를 선택해 임의로 선택한 동의어들 중 하나로 바꿈
2) RI : 문장 내 stop words 제외 나머지 중 랜덤 선택한 단어의 동의어를 임의로 정해, 문장 내 임의 자리에 넣기 n번 반복
3) RS : 무작위 문장 내 두 단어 선택해 위치 변경 n번 반복
4) RD : 확률 p를 통해 문장 내 각 단어들을 랜덤하게 삭제
긴 문장은 짧은 문장보다 단어가 많아, 원래 라벨을 유지하면서 노이즈에 상대적으로 영향을 덜 받음(can absorb more noise)
-> 대신 공식 n = al 과 함께 문장 길이 l을 기준으로 SR, RI, RS에 대해 바뀐 단어의 수 n을 변화시킴
-> 여기서 a는 단어의 백분율이 변경되었음을 나타내는 매개변수 (? 난몬소린지 몰루)
각각 원래 문장에 대해 n-avg 개의 증강
-> SR은 이전에 사용되었짐ㄴ 나머지는 처음 연구
Experimental Setup
- SST-2, CR, SUBI, TREC, PC 다섯가지 벤치마크 분류 작업
- 데이터 집합 크기 {500, 2000, 5000, all} 네 개로 실험
- 분류 모델로 LSTM-RNN, CNNs 사용
Result
EDA Makes Gains
평균적으로 0.8% 성능 향상, 크기 500일 때 3.0%정도 향상
Training Set Sizing
Overfitting은 작은 데이터셋으로 훈련 시 더 심해지는 경향
따라서 데이터셋을 몇 퍼센트정도 쓰면서 EDA를 적용할 때 정확도가 얼마나 더 상승하는지를 그래프로 나타냄
기존 데이터셋의 비율이 적으면 EDA로 늘린 데이터셋과 정확도 차이가 커짐, 기존 데이터셋 비율 커질수록 차이 하락
Does EDA conserve true labels?
중요(✨) 데이터셋 늘려놓고 라벨이 훼손되면 쓸모없음,,
따라서 EDA를 사용하는 것이 새로 만든 문장의 의미를 크게 변화시키는지에 대한 여부 검토해 시각화 접근법
먼저 데이터 증강 없이 pro-con (이진분류) 분류과제(PC)에 대해 RNN 훈련 -> test set에 EDA를 적용해 문장 당 9개의 증강 -> 원래 문장과 함께 RNN에 넣어 마지막 레이어에서 결과물 뽑기