length normalization을 이용한 beam search의 종료조건

1. beam search의 종료조건

 

greedy decoding은 <EOS>가 생성되면 종료했다. beam search도 그런가?

 

여러가지 hypothesis를 고려하기때문에 <EOS>가 각 hypothesis마다 다르게 생성된다는 것이 문제다.

 

<EOS>가 생성된 hypothesis는 더 이상 단어를 생성할 필요가 없으니 물론 고려할 필요는 없다.

 

중간에 고려대상 hypothesis가 <EOS>를 만들경우 그 hypothesis는 임시공간에 저장해놓고 최종후보대상에 올려놓는 것이다.

 

그 경우 다음 step에서 몇개를 고려해야하느냐가 문제다.

 

1개를 선택했으니 k-1개만 고려할까? 아니 beam search의 취지에 맞게 계속 k개를 고려할까?

 

 

사람마다 다르다.. 적절하게 고려하는것이 중요하다

 

어떨때 종료할까? 첫번째로 time step이 원하는 문장의 최대길이 T까지 도달한 경우 고려한 최종 completed hypothesis중 가장 확률이 높은 것을 선택

 

두번째로 실험자가 임의로 지정한 n개의 completed hypothesis가 모였을 경우 종료하고 거기서 가장 확률이 높은 경우를 선택

 

 

 이 n도 beam size k여야한다고 생각했지만 실험자의 고려에따라 상관없다 이거임

 

 

2. length normalization

 

n개의 최종 completed hypothesis를 얻었다고 하자.

 

선택하는 방법은 로그확률의 합인 score가 가장 높은 completed hypothesis를 선택하기로 했다.

 

 

그런데 이제 문제는 뭐냐? completed hypothesis가 길이가 전부 다르다는 점이다.

 

심지어 로그확률의 합이 score인데 길이가 긴 completed hypothesis가 당연히 로그확률의 합이 작지 않겠는가 (음수가 계속 더해지니까)

 

공정한 비교를 위해서 completed hypothesis의 길이로 score를 나눠준 length normalize score를 이용한다.

 

 

근데 길이로 단순하게 나눠주는게 공정한 비교가 맞을까?

 

normalization을 하는 방법은 여러가지가 있는 듯하다.

 

 

TAGS.

Comments