Pointer Network
참고
[1506.03134] Pointer Networks (arxiv.org)
Pointer Networks
We introduce a new neural architecture to learn the conditional probability of an output sequence with elements that are discrete tokens corresponding to positions in an input sequence. Such problems cannot be trivially addressed by existent approaches suc
arxiv.org
Pointer Network?
Pointer Network는 입력 시퀀스의 위치에 해당하는 이산 토큰으로 구성된 출력 시퀀스의 조건부 확률을 학습하는 신경망 아키텍처이다. 이러한 문제는 기존의 sequence-to-sequence 및 Neural Turing Machines와 같은 접근 방식으로 간단하게 해결할 수 없다. 왜냐하면 출력의 각 단계에서 대상 클래스의 수가 입력의 길이에 따라 달라지기 때문이다. 예를 들어 가변 크기의 시퀀스를 정렬하거나 다양한 조합 최적화 문제가 이에 해당한다.
Pointer Network가 seq2seq 모델의 한계를 개선한 주요 포인트는 다음과 같다.
1. 출력 사전의 크기 가변성. 전통적인 seq2seq 모델은 고정된 크기의 출력 사전을 사용한다. 이는 문제의 출력 크기가 입력 시퀀스의 길이에 따라 달라지는 문제, 예를 들어 정렬이나 계획적 최적화 문제 등에는 적합하지 않다. Ptr-Nets는 출력으로 사용되는 인덱스가 입력 시퀀스의 요소를 가리키는 방식으로, 입력 시퀀스 길이에 따라 동적으로 출력 사전의 크기가 변할 수 있도록 설계되었다.
2. Attention 메커니즘의 활용. seq2seq 모델에서 Attention 메커니즘은 주로 디코더의 각 단계에서 인코더의 hidden state를 혼합하여 컨텍스트 벡터를 생성하는 데 사용된다. 그러나 Ptr-Nets에서는 Attention 메커니즘을 사용하여 입력 시퀀스의 특정 멤버를 직접 선택하는 "포인터"로 활용한다. 이는 모델이 입력의 특정 위치를 직접 참조하여 출력을 생성할 수 있게 해, 더 정확하고 유연한 출력 생성이 가능하다.
3. 일반화 능력. Ptr-Nets는 훈련된 입력 길이보다 더 긴 입력에 대해서도 일반화할 수 있는 능력을 보여준다. 이는 seq2seq 모델에서는 종종 제한적일 수 있는데, Ptr-Nets는 변수 크기의 출력을 처리할 수 있기 때문에, 다양한 길이의 입력 시퀀스에 대해 유연하게 적용할 수 있다.
4. 계산 효율성. Ptr-Nets는 각 출력 단계에서 입력 시퀀스의 길이에 비례하는 계산만 수행하므로, 복잡한 조합 최적화 문제를 효율적으로 해결할 수 있다. 이는 특히 큰 입력에 대해서도 계산 비용을 크게 증가시키지 않으면서, 문제의 복잡성에 따라 동적으로 조정된다.
Ptr-Net은 Training examples을 사용하여 세 가지 어려운 기하학적 문제의 근사 솔루션을 학습할 수 있다. 대표적으로 이 문제들은 평면 볼록 껍질 찾기, Delaunay 삼각 분할 계산, 그리고 Traveling Salesman Problem(TSP) 등이있다. Ptr-Net은 입력 어텐션을 사용하는 seq2seq보다 더 나은 결과를 제공하며 가변 크기의 output dictionary에 일반화할 수 있다.
추가 레퍼런스
한국어 의존 파싱에도 Pointer Network를 활용한 연구가 있다. 이 모델은 기존의 Stack Pointer Network에 Biaffine 어텐션을 추가하여 양방향 예측이 가능하게 한 것이다.