def METHOD_NAME(self, emissions, targets, masks, beam=None):
    """
    Compute the conditional log-likelihood of a sequence of target tokens given emission scores
    Args:
        emissions (`~torch.Tensor`): Emission score are usually the unnormalized decoder output
            ``(batch_size, seq_len, vocab_size)``. We assume batch-first
        targets (`~torch.LongTensor`): Sequence of target token indices
            ``(batch_size, seq_len)
        masks (`~torch.ByteTensor`): Mask tensor with the same size as targets
    Returns:
        `~torch.Tensor`: approximated log-likelihood
    """
    numerator = self._compute_score(emissions, targets, masks)
    denominator = self._compute_normalizer(emissions, targets, masks, beam)
    return numerator - denominator