NMT & seq2seq Models : A Tutorial chapter 7 - Generating output
14 Apr 2017 | seq2seq beam search length biasGenerating Output
- Random sampling
- $P(E \vert F)$에서 $E$를 random하게 뽑는다.
- 특정 input에 대해서 다양한 output을 얻길 원할 때 유용하다.
- 예> 메신저 봇
- 1-best Search (greedy)
- $\hat{E}=\underset{E}{argmax}P(E \vert F)$
- 매 step마다 argmax를 뽑고 그 다음 step의 condition으로 넣는 방법.
- 단점 : 가장 높은 probability를 갖는 sequence를 내지 않을 때가 많다.
- n-best Search (beam search)
- n개의 best hypothesis를 유지한다.
- beam size가 커질수록, 심각한 length bias가 나타난다.
- 이를 줄이기 위해 다양한 방법들이 존재.
- sentence의 length에 대한 prior probability를 넣는다.
- $\hat{E} = \underset{E}{argmax}\ logP(\vert E\vert \ \vert \ \vert F\vert ) + logP(E\ \vert \ F)$
- where
- $\hat{E} = \underset{E}{argmax}\ logP(\vert E\vert \ \vert \ \vert F\vert ) + logP(E\ \vert \ F)$
- 그냥 output length로 나눠버리는 방법
- $\hat{E} = \underset{E}{argmax}\ logP(E\ \vert \ F) /\vert E\vert $
- sentence의 length에 대한 prior probability를 넣는다.
length bias
$P(E\vert F) = \Pi_t^{\vert E\vert }P(e_t\vert F,e_1^{t-1})$ 처럼 Markov chain을 가정한 model들은 짧은 문장의 확률이 훨씬 높다.
단어가 많아질 수록, 해당 단어의 확률을 곱해야하는데 그럴수록 전체 문장의 확률은 작아진다.