이론/NLP

[딥러닝][Text Adversarial Attack] NLP에서 Adversarial Attack의 분류

쏘오금 2023. 1. 3. 21:05

NLP에서 Adversarial Attack은 Similarity에 기준해 두갈래로 분류된다.

 

[1] Visual Similarity (시각적 유사성)

: 원래 입력과 아주 유사한 형태(word or sentence, 눈으로 보기에) 적대적 공격 중 일부는 모델의 예측을 변경 시키기 위해 가능한 적은 수의 문자를 변형하려고 시도한다. 보통 현실적인 범주의 오타를 말한다.

 

rull-based의 맞춤법 검사기 또는 적대적인 오타를 수정하도록 훈련된 seq2seq 모델을 사용하여 이러한 공격을 상당히 효과적으로 방어할 수 있을 것으로 사료된다.

 

visual Text attack recipe: deepwordbug, hotflip, pruthi, textbugger*, morpheus

 

(ex)

- i don't know
- i dom't know.

 

- 글쎄?
- 글쌔?

 

 

[2] Semantic Similarity (의미론적 유사성)

: 다른 adversarial attack 예제에서는 원래의 입력과 비교해 의미론적으로 구별되지 않는 경우 이 adversarial 예제가 유효하게 작용한 것이라고 판단한다. 즉, perturbation이 원래 입력을 다르게( 의역 or 유의어로) 쓴 것 이지만 입력과 perturbation이 서로 다른 예측을 받는 경우 유효하게 작용한 적대적 예이다.

 

일부 NLP 모델은 의미론적 유사성을 측정하도록 훈련되는데 의미론적으로 구별되지 않는(indistinguishability) 개념에 기반한 adversarial attack은 일반적으로 다른 NLP 모델을 사용하여 perturbation이 문법적으로 유효하고 원래 입력과 의미론적으로 유사하도록 한다.

 

semantic Text attack recipe: alzantot, bae, bert-attack, fast-alzantot, iga, kuleshov, pso, pwws, textbugger*, textfooler

 

 

(ex)

- pork you

- fxxk you


- 몰라?
- 몰?루

 

 

*textbugger attack

: 오타와 유사한 문자 편집과 동의어 대체를 모두 사용하여 교란을 일으킨다.

구별 불가능성에 대한 두가지 정의를 모두 사용하는 것으로 간주해 시각적, 의미론적인 공격 모두에 해당된다.

 

 

 

 

 

출처https://textattack.readthedocs.io/en/latest/1start/what_is_an_adversarial_attack.html