NLP/Paper Review

[논문리뷰] EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks

메린지 2022. 9. 1. 16:24

읽기 전에

데이터 증강 (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는 단어의 백분율이 변경되었음을 나타내는 매개변수 (? 난몬소린지 몰루)

 

Table 1: EDA를 사용해 생성된 문장 종류 예시

각각 원래 문장에 대해 n-avg 개의 증강

-> SR은 이전에 사용되었짐ㄴ 나머지는 처음 연구

 

Experimental Setup

- SST-2, CR, SUBI, TREC, PC 다섯가지 벤치마크 분류 작업

- 데이터 집합 크기 {500, 2000, 5000, all} 네 개로 실험

- 분류 모델로 LSTM-RNN, CNNs 사용

Result

EDA Makes Gains

TAble 2: 다른 크기의 트레인 셋에 EDA를 쓸 때와 안 썼을 때 다섯 가지 텍스트 분류 벤치마크를 통한 평균 성능

평균적으로 0.8% 성능 향상, 크기 500일 때 3.0%정도 향상

 

Training Set Sizing

Overfitting은 작은 데이터셋으로 훈련 시 더 심해지는 경향

따라서 데이터셋을 몇 퍼센트정도 쓰면서 EDA를 적용할 때 정확도가 얼마나 더 상승하는지를 그래프로 나타냄

기존 데이터셋의 비율이 적으면 EDA로 늘린 데이터셋과 정확도 차이가 커짐, 기존 데이터셋 비율 커질수록 차이 하락

Figure 1: 다양한 크기의 데이터셋에서 EDA가 있을 때와 없을 때 텍스트 분류기 벤치마크 성능, dotted 선은 각 벤치마크의 최고 성능

Does EDA conserve true labels?

중요(✨) 데이터셋 늘려놓고 라벨이 훼손되면 쓸모없음,,

따라서 EDA를 사용하는 것이 새로 만든 문장의 의미를 크게 변화시키는지에 대한 여부 검토해 시각화 접근법

 

먼저 데이터 증강 없이 pro-con (이진분류) 분류과제(PC)에 대해 RNN 훈련 -> test set에 EDA를 적용해 문장 당 9개의 증강 -> 원래 문장과 함께 RNN에 넣어 마지막 레이어에서 결과물 뽑기

Figure 2: Pro-Con 데이터셋에서 원본 및 증강 문장의 잠재 공간 시각화. 증강 문장 (작은 세모 및 동그라미) 거의 같은 색상의 원본 문장 (큰 세모 및 동그라미) 둘러쌈, 증강 문장의 원본 라벨을 잘 보존하고 있음을 의미.