본문 바로가기
paper review

Generalization without systematicity: On the compositional skills of sequence-to-sequence recurrent networks - Brenden, L. et al. (2018)

by 햇농nongnong 2021. 2. 4.

논문 Generalization without systematicity: On the compositional skills of sequence-to-sequence recurrent networks - Brenden, L. et al. (2018) 리뷰를 해보겠다.

https://arxiv.org/abs/1711.00350

 

Compositional generalization 의 benchmark 문제인 SCAN task 에 대한 논문이고, 주로 SCAN 문제에 대해 리뷰해보겠다.

 

Compositional generalization benchmark 문제인 SCAN task

 

SCAN 은 간단한 compositional commands 가 해당 액션 시퀀스와 함께 paired 된 데이터 세트이고 이 논문에서는 이 SCAN 에 대해서 zero-shot generalization 역량을 테스트했다.

- 이 때 training test set commands 차이가 작았을 때는 성공적인 zero-shot generalization 을 보여주었지만, 일반화가 조금 더 체계적인 구성 스킬을 요구할 경우에 zero-shot generalization 은 실패했다.

- 결과적으로 딥러닝에서 많은 훈련 데이터셋이 계속 필요한 이유는 체계성이 부족하기 때문이라고 할 수 있다. 나중에 체계성이 보완이 되면 적은 예시로부터도 잘 일반화할 수 있다. 그리고 이렇게 적은 예시로부터도 잘 일반화 할 수 있게 하는 방법이 두번째 논문에서 말할 neuro-symbolic approach 이다. Neural network 에서 부족했던 체계성의 부분을 symbolic 으로 뒷받침 해줄 수 있다.

 

SCAN 문제를 조금 더 자세히 말해보자.

- 인간의 언어는 알려진 구성요소에서 잠재적으로 무한한 새로운 조합을 이해하고 만들 수 있는 algebraic capacity “systematic compositionality” 체계적인 구성성 으로 특징지어지고, 이런 compositionality 는 제한된 데이터로부터 강력한 일반화를 만들어내는 인간의 능력에 핵심 역할을 한다.

- compositional abilities 측면에서 현대 recurrent network architectures seq2seq 모델을 테스트 하기 위해, simplified 된 자연언어로 주어진 명령을 일련의 actions 시퀀스로 변환하게 하는 SCAN task 를 다양한 방법으로 실험을 해본다.

- 각 실험마다 먼저 많은 명령 세트로부터 recurrent networks 가 훈련되고 트레이닝 이후에 일반화 테스트를 위해서 새로운 명령에 대해 외삽법에 의해 액션 시퀀스를 잘 만드는지 평가를 받는다.  

 

 

1) 첫번째 실험 : generalizing to a random subset of commands
(=
명령에서 subset trained 되었을 때의 일반화)

“jump opposite right after walk around right thrice”

- jump opposite right after ~~

- ~~ walk around right thrice

이런식으로 새로운 명령 구 자체는 처음 보는 것이지만 그 subset 은 이미 training 때 많이 봤던 것들일 경우에 generalize 잘 할 수 있는지 테스트하는 실험이다. 네트워크는 이 존재하는 subset 들을 recombine 하면서 generalize 해야하는데, 결과적으로 성공적이었다.

- random subset 을 가지고 일반화할 수 있을 뿐만 아니라, 구성 명령 공간에서 비교적 희박한 적용범위로부터도 일반화가 가능했다. (4%의 명령이 트레이닝에 사용되었을 경우에도 93%의 정확도를 가짐)

 

 

2) 두번째 실험 : generalizing to commands demanding longer action sequences
(=
조금 더 긴 액션 시퀀스를 요구하는 명령에 대해 일반화)

 

긴 액션 시퀀스를 요구하는 명령에 대해 일반화를 잘 할 수 있을지 테스트해보았다.

 “jump around left twice and walk opposite right thrice” (25 actions sequence 요구)

먼저 around ~ twice, opposite ~ thrice 와 같이 부분 요소들은 training 때 다 봤던 것들이지만, 한번도 이렇게 긴 액션 시퀀스를 만들었던 적이 없었을 때에 대해 테스트.

- 이 때 around ~ twice, opposite ~ thrice 가 함께 사용된 경우를 본적은 없어도 각각 다른 구들과 연결된 것들은 경험했던 상황.

- 아무리 이렇게 긴 액션 시퀀스를 만들었던 경험이 없다고 해도 commands 의 각 구성 요소의 조합들의 경험이 있기 때문에 잘 일반화 할 수 있을 것이라고 기대.

- 하지만 결과적으로 모든 모델에서 낮은 성능을 보였다.

 

** 여기서 볼 수 있는 문제를 분석해보면,

 

1) greedy search decoder 문제인가 의심 : 각 스텝에서 가장 가능성이 높은 단어를 선택해서 결국 결과가 안좋았나?

- 거의 모든 에러의 결과가 네트워크의 self-generated output 이기 때문에 greedy search decoder 문제가 아니다.

 

2) 적당한 길이의 시퀀스가 evaluation 때 제공된다면 긴 시퀀스의 difficulty 가 완화될 수 있을까?

- 만약 에러가 시퀀스가 너무 길어서 생기는 문제라서 디코더가 빨리 terminate 되는 이슈라면, 오라클에 의해 적당한 길이의 시퀀스가 제공되었을 때 문제가 크게 해결되어야 함. 그리고 만약 에러가 방법론적이 아닌 일반화 자체의 깊은 문제라면 이 변화에도 별로 큰 효과를 가져오지 못해야함. 실제로 오라클에 의해 시퀀스가 제공되었을 때 꽤 큰 성장을 보여주었고 따라서 에러는 일반화 자체의 문제는 아니지만 여전히 액션 길이에 영향을 많이 받음.

 

3) 세번째 실험 : generalizing composition across primitive commands

 

- dax 실험과 비슷하게 트레이닝 단계에서 트레이닝 단계에서 primitive commands 와 해당 액션에 대해 노출시키고, 테스트할 때 primitive 문맥에서만 본 명령들을 가지고 온갖 합성된 명령들을 수행하도록 테스트.

- run, jump, run twice 를 알면 jump twice 를 할 수 있는 것처럼 이게 쉬울 것이라고 생각

 

**두가지 변이

 

1) turn left : turn right 과 분포적으로 일치. 동일한 composed commands 에서 일어난다는 느낌.

- composed commands 에 대해 아주 일반화를 잘했다.

 

2) jump : walk, run, look 과 분포적으로 일치

- 반대로 jump 의 경우 composed commands 에 대해 일반화 거의 실패했다.

- 이 에러는 디코더의 검색 실패 문제가 아니다. Turn left 의 경우에는 LTURN 의 액션이 다른 composed commands 에서도 많이 보였을 것이고, LTURN 을 포함하는 많은 액션 시퀀스들을 보았기 때문에 turn left composed commands 를 이해하는데 충분했을 것.  반면에 jump 의 경우 isolated jump JUMP 만을 가지고, 즉 최소의 context 에서 새로운 composed commands 를 이해하기가 어려웠던 것이다.

- 그런데 turn left 의 경우에도 conjunctions 안에 다른 composition 과 함께 turn left 가 포함되었을 때 또 에러가 발생.

- 이런 결과를 보면 네트워크가 명백하게 체계적인 구성요소를 잘 학습할 때에도 직관에 반대하는 방식으로 접근했다고 결론지을 수 있음.

+ 너무 isolated 되어 composed commands 에 대한 증거가 부족해서?

- jump 와 관련된 8개 다른 composed commands 를 주어도 다른 composed commands 에 대해 weak generalization 을 보임. 물론 더 많은 예시를 줄수록 성능이 더 나아지기는 했지만, 처음에 약한 일반화를 보여준 것에 있어서 증거가 부족해서 일반화를 실패한 것은 아니라고 결론지을 수 있다.

 

4) 네번째 실험 : compositionality in machine translation

 

기계번역에서는?

I am daxy 라는 문장을 트레이닝 시키고 테스트할 때 he is daxy, I am not daxy 등의 8개 문장 번역 pair 을 주고 test 해보았을 때 1개만 맞은 낮은 성능을 보여줬다.

- 이 결과로 인간에 비해 모델은 큰 데이터 셋에서 새로운 단어가 추가되었을 때 체계적인 구성면에서 이렇게 어려움을 겪는다고 볼 수 있다.

 

 

 

총 리뷰

 

 

- 실험 1에서는 일반화를 곧 잘 하는 것처럼 보였지만, 전반적으로 training test 데이터의 관계가 체계적인규칙을 찾는 것에 있을 때 점점 일반화에 실패하는 모습을 보였다.

- 실험 2, 3 에서 트레이닝 데이터는 구성 규칙을 배우기에 충분한 데이터를 제공했음에도 불구하고 일반화에 실패했다. 실험 3의 경우에는 modifiers connectives usage 도 다른 많은 명령들의 조합에 적용하면서 트레이닝에 제공해주었는데도 일반화에 실패했고, 실험 4에서 새로운 단어에 있어서는 composed commands 를 제공해주어도 일반화를 잘 하지 못하였다. 아무리 비슷한 sample 들이 있어도 다양한 case 에 따라 규칙을 잘 찾지 못한다.

 

따라서 구성적인 면에서 일반화를 잘 못하는 이 문제는 데이터 증거 부족이 아닌,

모델이 근본적으로 트레이닝 데이터로부터 체계적인 규칙을 추출할 수 있는 능력 부족이다.

 

인간이 잠재적으로 무한한 새로운 조합을 쉽게 이해할 수 있고 생산할 수 있는 “systematic compositionality” 가 이 모델에서는 부족했던 것이고, “compositionality” 가 보완된다면 제한된 데이터에서도 강력한 일반화를 만들 수 있을 것이다.

 

- 결과적으로 딥러닝에서 많은 훈련 데이터셋이 계속 필요한 이유는 체계성이 부족하기 때문이라고 할 수 있다. 나중에 체계성이 보완이 되면 적은 예시로부터도 잘 일반화할 수 있다. 그리고 이렇게 적은 예시로부터도 잘 일반화 할 수 있게 하는 방법이 다음 글 논문에서 말할 neuro-symbolic approach 이다. Neural network 에서 부족했던 체계성의 부분을 symbolic 으로 뒷받침 해줄 수 있다.

 

 

 

(출처 : 해당 글의 이미지들은 논문 안의 표, 그림에서 가져왔다. arxiv.org/abs/1711.00350 )

댓글