Length normalization
Beam search를 개선하는 방법 중 하나는 length normalization입니다.
지난 시간에 배웠던 것처럼 beam search는 각 단계에서 확률이 가장 높은 것들을 뽑는 방식입니다.
기존의 결과들에 대한 확률을 전부 곱하는 구조이므로, 여기에 log를 취하면 합연산으로 바꿀 수 있습니다.
또한 합연산으로 표현된 log 확률을 예측하고자 하는 문장의 길이로 나눠주어 보다 soft한 예측을 할 수 있습니다.
이때 사용되는 하이퍼 파라미터 alpha는 지수가 되므로 0이면 정규화가 이뤄지지 않음을 의미하게 됩니다.
Beam search discussion
beam width를 몇으로 설정해야 하는가 역시 하이퍼 파라미터라고 볼 수 있습니다.
주어진 input, 뽑아내야 하는 output에 따라서 달라질 수 있습니다.
물론 이 값이 커질수록 정확한 예측이 가능하겠지만 그만큼 느리면서 많은 자원을 필요로 할 것이고,
값이 작을수록 예측은 부정확해지지만 연산 속도는 빠르겠죠.
따라서 상황에 맞게 적절한 값을 주면서 실험을 해봐야 한다는 것입니다.
또한 일반적인 탐색 알고리즘인 BFS, DFS와 비교하자면,
이 둘은 반드시 최적의 경우의 수를 찾아낼 수 있는 것과 다르게 beam search는 이것이 보장되어 있지는 않습니다.
출처: Coursera, Sequence Models, DeepLearning.AI