[DAY 05 - 4/30] TRADE #35
karim-moon
started this conversation in
Peer Session
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
-문종
TRADE
TRADE vs Transformer-DST 구현 차이
-희석
SUMBT 학습 + TRADE, SOMDST
-창우
SUMBT 학습 + TRADE
-재우
TRADE, T SOMDST
-유진
SUMBT, baseline 코드 분석, Transformer-DST
Copying Mechanism
RNN에서 입력 문장을 단어나 형태소 단위로 할 경우, 신조어나 사람 이름과 같은 고유 명사 등 사전에 없는 첫 등장 어휘에 대한 처리가 어려워 모델의 정확도가 하락하는 문제가 발생한다. 이에 사전에 없는 OOV(Out Of Vocab) word에 대해 토큰과 문장 내 위치를 표시하는 index를 부여하여 학습 진행하는 Copying 메커니즘을 이용할 수 있다.
output출력 이후엔 이 토큰을 후처리로 별도 번역하거나, 고유 명사의 경우 그대로 이용한다. 단순히 토큰만 이용하는 copyable 방식, 모든 output 단어에 대해 index 고려한 PosAll 방식, OOV 단어에 대해서만 index 고려한 PosUnk 방식이 있다. 이 방식을 이용하면 기계 번역의 주된 단점을 완화할 수 있고, deep한 모델에도 적용이 가능하다.
→ [TRADE 2.2] 부분을 보면 index 방식은 DST 태스크와 맞지 않아서 soft-gated pointer-generator 방식을 사용한다고 합니다.
Pointer-generator network
$P(w) = P_{gen}P_{vocab}(w) + (1-p_{gen})\sum_{i:w_i=w}a_i^t$ $P_{vocab}(w)$ 가 0이 되고, 반대로 w가 input document에서 나타난 적이 없으면 $\sum_{i:w_i=w}a_i^t$ 가 0이 된다. Input 에서 사용되었던 단어를 그대로 복사해올지 (pointer), vocab 에 있는 새로운 단어를 사용할지 (generator) 사이에서 $P_{gen}$ 이 soft switch 역할을 하는 것.
기존 seq2seq 은 summary 를 생성할때 매 timestep 의 단어를 기존에 존재하는 vocabulary 에 대한 softmax 값으로 예측했다. 반면 pointer-generator network 는 기존의 예측방법을 generator 라고 정의하고, 여기에 input sequence 에 존재했던 요소들을 output 에 차용하는 pointer 를 새롭게 추가한 구조이다. Pointer 와 generator 를 동시에 고려해 확장된 vocabulary 의 확률분포를 다음과 같이 새롭게 구축할 수 있다.
위 식에서 w가 OOV 단어면
[참고]
TRADE 논문에서 사용하는 pointer-generator : soft-gated pointer generator
[Bryan McCann, Nitish Shirish Keskar, Caiming Xiong, and Richard Socher. 2018. The natural language de- cathlon: Multitask learning as question answering. arXiv preprint arXiv:1806.08730.]
TRADE 논문 뜯어보기
단어가 없다면$P^{vocab}$ =0, $P^{history}$ =1
1-0으로 딱 떨어지진 않더라도 하나가 오르면 하나가 떨어지는 trade-off 관계
slot gate에서 context vector → c_j0만 사용하는 경우: [CLS] 토큰만 보는거랑 비슷?
Beta Was this translation helpful? Give feedback.
All reactions