NLP/Beam Serach and BLEU
Beam Search and BLEU score
Beam search
바로 다음 단어만을 예측하는 task를 greedy decoding라고 부른다. (되돌아 갈 수가 없다…)
이러한 greedy decoding의 단점을 해소(?)하는 방법
매 time step 마다 하나의 단어만을 고려하는 greedy decoding과 모든 조합을 고려하는 Exhaustive search알고리즘의 사이에 있는 알고리즘
모든 경우의 수를 다 따지지는 않지만, 시간적 비용면에서 훨씬 효율적이다.
서로 다른 경로가 존재하고 다른 시점에서 <END>토큰이 생성되기 때문에, 토큰이 생성될 때 해당 hypothesis를 중단한다.
모든 hypothesis가 종료되면, 가장 높은 score값을 가진 hypothesis를 예측값으로 줄 수 있다.
매 단어를 생성할 때 마다 확률값이 작아진다. (step마다 확률값이 음수이기 때문에 계속해서 감소한다.)
따라서 이로 인한 오류를 없게하기 위해서 Normalize(by length) 적용한다.
BLEU score
일반적인 평가 지표
순서에 대한 검증은 하지 못하기 때문에 해당 평가 방법이 아닌 BLUE score를 이용한다.
BLEU에서는 precision만 고려한다.
N-gram에 대한 기하평균