Pointer Network 

Pointer Network (링크)

1. 서론

RNN 은 오랜 시간 Text 를 해석하는데 사용되어 왔으나, Input 과 Ouput 의 Size 를 한정해야 한다는 문제를 가지고 있었다. Seq2Seq 에서 Input을 해석하는 부분과 Output 을 생성하는 부분을 분리하면서 이러한 문제를 어느정도 해결하고, Attention Mechanism 을 적용하여 추가적인 정보를 제공하면서 기존에 해결하지 못하던 기계번역과 같은 분야에서 State of Arts 의 성능을 달성하고 있으나, 여전히  Output 의 Dictionary Size 가 Input 과 같아야하는 아래의 3가지와 같은 복합적인 최적화 문제의 해결에는 어려움이 있다. (computing planar convex hulls, Delaunay triangulations and the symmetric planar Travelling Salesman Problem (TSP). Pointer Network 는 이러한 복합적인 최적화 문제를 Data Driven 으로 해결할 수 있는 방법을 제시하고 있다.

2. 핵심 Idea 

(1) 일반적인 Attention Mechanism 

일반적인 Seq2Seq 에서 Attention Mechanism 은 아래와 같이 동작한다. 조금 더 자세한 설명은 다음의 (링크)에서 확인한다. 

간단하게 Attention Mechanism 의 동작 순서를 보면, u 가 Score 로, Score 는 Encoder 와 Decoder 를 Dot Product 혹은 Concat 과 같은 방법으로 구한다. a 는 이러한 Score 를 SoftMax를 취하여 중요도를 구하는 것이다. 그리고 최종 Output 은 a (중요도) * 원래 Encoder 부분의 정보를 곱하고 합하여 Decoder 부부분의 Out 과 Concat 하여 사용하는 패턴이다. (여기서 중요한 점은 다시 한번 강조하자면 Encoder 부분의 사이즈가 고정이다, Decoder 부분 사이즈가 고정이 아닌 것이다. ) 다시한번 포인트를 집어 보면 Encoder 부분이 고정되고 Decoder 부에서 t +1 마다 Encoder 부의 Attention 을 계산해서 적용한다는 점이다. 그러니까 우리는 Encoder 부의 길이와 같은 Output 을 원하는데, Decoder 부는 EOS Tag 가 나올때 까지 계속해서 Generation 을 하니까, 우리가 원하는 길이로 나올 수 없는 것이다. (이게 이 논문이 말하는 포인트가 맞는 듯 하다)

(2) Ptr-Net 

이 논문에서는 Output Dictionary Size 가 input Sequence 의 Element 수에 의존적인 최적화 문제를 해결하는데 Attention Mechanism 을 사용하는 응용을 보여주고 있다. (기존의 Attention Mechanism 은 Decoder 부에서 생성되는 숫자에 의존적이기 때문에 Encoder 부의 Number 와 같은 결과를 얻고 싶은 문제에는 적용할 수가 없다)

위에서 계속 이야기 하고 있는 문제를 해결하기 위해서 여기서는 동일하게 Encoder 부분과 Decoder 부분을 Input 으로 Score 를 연산하고, SoftMax 를 취하여 Attention 까지는 구하는 과정은 일반적인 Attention Mechanism 과 동일하게 실행하고, 그 다음에 Encoder 부분와 합쳐서 Decoder 부분에 다시 적용하는 행위를 하지 않고,  SoftMax 의 결과 자체를 Pointer 로 사용하는 것이 핵심 Idea 의 전부라고 보여진다.

위의 Sales Man Problem 을 예로 들어서 설명을 해보면, Encoder부분은 Gym, School, Movies, Farm 등의 Node 가 될 것이고, Decoder부분은 어떤 순서로 이동해야 하는지 생성되는 부분이 될 것이다. 하나씩 생각해보자, Encoder부에 어떤 형태로든 위의 문제를 학습시킬 수 있는 X 인자들을 구성하였고, Decoder부에서 하나씩 이동 경로가 생성이 되는 것이다. 첫번째 Decoder부의 결과는 위의 Ptr-Net 의 논리에 따르면 Encoder부의 길이와 같은 SoftMax 결과가 될 것이고, 위의 Gym, School, Movies, Farm 중에서 가장 확률이 높은 녀석이 있을 것이니, 결론적으로 첫번째 방문지가 정해지는 것이다. 다시 Decoder 부에서 두번째 연산을 실행하면 두번째 확률이 높은 이동지가 구해지고, 계속해서 반복하면 Sales Man Problem 을 풀수 있다라는 접근인데, 실제 논문을 보면 이 문제에서는 여러가지 이동할 수 없는 제약사항들이 있기 때문에 Beam Search 를 적용하여 규칙을 위반하지 않는 최적의 경로를 찾아 내었다고 되어있다. 그 외에도 두 가지 다른 문제에 대해서도 설명하고 있는데, 관심 있는 것은 자연어 처리에서의 적용임으로 패스 하도록 하겠다.

3. 결론 

애초에 이 글을 작성한 목적 자체가 MRC(Machine Reading Comprehension) 알고리즘의에서 알고 싶은 답변의 위치를 찾는 부분에 적용된 이론 배경이기 때문인데, 이 방법을 응용하는 이유는 아까도 이야기한 것과 같이 주어진 Context 에서 답을 찾는 문제 자체가 Pointer Network 에서 가정하는 문제와 정확히 일치하기 때문이다.

 

Leave a Reply

Your email address will not be published. Required fields are marked *