GTS 논문 후기

1 분 소요

GTS 후기

MWP를 seq2seq로 푸려는 시도는 존재하였지만, 그 예측이 왼쪽에서 오른쪽으로 가는 eqaution의 형태라서, 사람이 문제를 이해하는 트리구조의 방식과는 다름. 이에 tree 구조의 예측을 통해 성능을 높이고자 하는 시도.

1. introduction

seq2seq가 goal-driven 메커니즘에 왜 맞지 않는지를 서술. table1에서 보는 문제로 예시를 들어줌. 또 다른 문제로써,(괄호등의 누락으로) 틀렸을 때 연산 자체가 되지 않는 문제 지적. postprocess를 먹일 순 있긴 하지만 비효율적임. 그래서 트리 구조를 만듦. 트리 구조의 equation 예측은 root node로부터 아래로 내려가면서 연산자 혹은 수를 담아내는 과정을 포함함. 이때, +,x는 쌍방향이므로 왼쪽 노드를 먼저 만드는 것으로 순서를 확실히 해줌. 숫자가 나타날 경우, 해당 sub-tree는 멈춤.

3. Problem Statement

문제는 전처리 단계에서 모든 숫자를 NUM으로 치환해줌. 실제 수를 신경쓰지 않기 때문. tree는 연산자, 상수, 문제에서의 np를 포함한다. 상수는 pi , 2와 같은 수이며, 원의 넓이 등을 묻는 문제에서 사용된다. 만약 같은 수가 다른 포지션에서 발견되면 높은 확률을 가진 것을 사용한다.

4. Model Description

depth-first traversal 방식으로 tree를 예측한다. Figure 2의 과정을 거치는데,, 수식으로 이해를 한 후 이를 다시 써야할 듯 하다. 1) GRU를 bidirectional하게 사용하여 text에 대한 encoding을 진행 -> hiddens state를 얻음. 2) 전방향, 후방향 hidden state 결과물을 더하여 q0 루트 노드를 초기화. 그리고 각 y token에 대한 임베딩은 y가 연산자, 상수일때는 학습가능한 각각의 matrices에서 찾고, np일 경우 해당 지점의 hidden state를 encoder에서 가져온다. 3) context c를 표현하기 위해 attention을 사용한다. 이는 q와 해당시점의 hidden state를 w로 학습하고 tanh를 거친 후 w^t를 value로 사용하여 score를 산출한다. 그리고 c와 함께 e(y|P),q로써 vdec을 예측하기 위한 log 확률 분포 s를 구한다. 그를 정규화 하여 가장 높은 것을 예측으로 사용한다. 만약 연산자라면, 자식 노드들을 만들어야 할 것이다. 이를 위해 이전의 q,c,e를 사용하여 적절하게 연산한 후 ql로 삼는다. qr은 조금 다른데, 이미 사전에 왼쪽 sub-tree가 완성되었다는 것을 가정하고, eq12에서 계산된 t를 가져와 qr을 연산한다. t는 recursive하게 작동되며, 연산자일때는 eq13과 같은 식을 적용하고, 상수나 수일때는 eq5에서 정의한 emb를 가져옴. eq15는 recursive를 포함한 수식임. 각 token을 업데이트 하기 위한 식을 나타냄.

카테고리:

업데이트: