1. A method for training an emotional response predictor when there are significantly more samples than target values available for training, comprising: receiving samples comprising temporal windows of token instances to which a user was exposed; the token instances are spread over a long period of time; receiving intermittent target values corresponding to a subset of the temporal windows of token instances; the target values represent affective response annotations derived from values of a measurement channel of the user, which were obtained after user was exposed to the token instances from the subset of the temporal windows of token instances; training the emotional response predictor, by running a semi-supervised machine learning training procedure on the samples and the intermittent corresponding target values; wherein the emotional response predictor is more accurate than a predictor training trained only on the samples that have corresponding target values, since it is capable of learning additional information from the samples comprising temporal windows of token instances for which there are no values of the measurement channel of the user from which an affective response annotation can be derived.