-문종
TRADE
TRADE vs Transformer-DST 구현 차이
-희석
SUMBT 학습 + TRADE, SOMDST
-창우
SUMBT 학습 + TRADE
-재우
TRADE, T SOMDST
-유진
SUMBT, baseline 코드 분석, Transformer-DST
<aside> 💡 Copying Mechanism RNN에서 입력 문장을 단어나 형태소 단위로 할 경우, 신조어나 사람 이름과 같은 고유 명사 등 사전에 없는 첫 등장 어휘에 대한 처리가 어려워 모델의 정확도가 하락하는 문제가 발생한다. 이에 사전에 없는 OOV(Out Of Vocab) word에 대해 <unk>토큰과 문장 내 위치를 표시하는 index를 부여하여 학습 진행하는 Copying 메커니즘을 이용할 수 있다. output출력 이후엔 이 <unk> 토큰을 후처리로 별도 번역하거나, 고유 명사의 경우 그대로 이용한다. 단순히 <unk> 토큰만 이용하는 copyable 방식, 모든 output 단어에 대해 index 고려한 PosAll 방식, OOV 단어에 대해서만 index 고려한 PosUnk 방식이 있다. 이 방식을 이용하면 기계 번역의 주된 단점을 완화할 수 있고, deep한 모델에도 적용이 가능하다.
→ [TRADE 2.2] 부분을 보면 index 방식은 DST 태스크와 맞지 않아서 soft-gated pointer-generator 방식을 사용한다고 합니다.
</aside>
<aside> 💡 Pointer-generator network 기존 seq2seq 은 summary 를 생성할때 매 timestep 의 단어를 기존에 존재하는 vocabulary 에 대한 softmax 값으로 예측했다. 반면 pointer-generator network 는 기존의 예측방법을 generator 라고 정의하고, 여기에 input sequence 에 존재했던 요소들을 output 에 차용하는 pointer 를 새롭게 추가한 구조이다. Pointer 와 generator 를 동시에 고려해 확장된 vocabulary 의 확률분포를 다음과 같이 새롭게 구축할 수 있다. $P(w) = P_{gen}P_{vocab}(w) + (1-p_{gen})\sum_{i:w_i=w}a_i^t$ 위 식에서 w가 OOV 단어면 $P_{vocab}(w)$가 0이 되고, 반대로 w가 input document에서 나타난 적이 없으면 $\sum_{i:w_i=w}a_i^t$가 0이 된다. Input 에서 사용되었던 단어를 그대로 복사해올지 (pointer), vocab 에 있는 새로운 단어를 사용할지 (generator) 사이에서 $P_{gen}$이 soft switch 역할을 하는 것. [참고]
</aside>
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}$, $P^{history}$
$P^{final}$: $P^{vocab}$에 단어가 있으면 vocab에서 단어를 뽑아내서 $P^{vocab}$=1, $P^{history}$=0
단어가 없다면 $P^{vocab}$=0, $P^{history}$=1
1-0으로 딱 떨어지진 않더라도 하나가 오르면 하나가 떨어지는 trade-off 관계
$P^{gen}$=sigmoid(W_1 . [$h^{dec}$; w; c])에 ; concat
slot gate에서 context vector → c_j0만 사용하는 경우: [CLS] 토큰만 보는거랑 비슷?