A method for detecting user head motion during an authentication transaction comprising: generating, by a processor, a motion type feature vector and a user head motion type prediction based on data generated for a sequence of frames within a temporal window (40, 78), the frames being included in biometric data captured from a user, the motion type feature vector describing movement of biometric data captured in the sequence of frames, the user head motion type prediction being generated by processing the motion type feature vector with a machine learning algorithm; generating a converted spoof prediction signal (80, 82) from a plurality of interpolated spoof prediction values (ipv1...ipv9), each spoof prediction value being associated with an individual frame within the sequence of frames; generating a a liveness rating feature vector using the converted spoof prediction signal (80, 82); merging the motion type feature vector and the a liveness rating vector to generate a merged vector and normalizing the merged vector using normalization parameters; generating a spoof prediction from the normalized merged vector using a machine learning algorithm; determining whether the head motion type prediction is or is not for no motion, and when the head motion type prediction is not for no motion using the generated spoof prediction to determine presence or absence of spoofing, changing the user head motion type prediction to no motion when the generated spoof prediction indicates biometric data in the frames was spoofed, and storing the user head motion type prediction in the buffer; and determining a final user head motion type detected for the frames by: calculating a total number of predictions for each type of user head motion stored in the buffer, wherein the buffer stores predictions for user head motion types; dividing the total number of predictions for each type of user head motion by the total number of predictions in the buffer; and determining the type of motion having the highest score as the final user head motion type detected for the sequence of frames. generating, by a processor, a motion type feature vector and a user head motion type prediction based on data generated for a sequence of frames within a temporal window (40, 78), the frames being included in biometric data captured from a user, the motion type feature vector describing movement of biometric data captured in the sequence of frames, the user head motion type prediction being generated by processing the motion type feature vector with a machine learning algorithm; generating a converted spoof prediction signal (80, 82) from a plurality of interpolated spoof prediction values (ipv1...ipv9), each spoof prediction value being associated with an individual frame within the sequence of frames; generating a a liveness rating feature vector using the converted spoof prediction signal (80, 82); merging the motion type feature vector and the a liveness rating vector to generate a merged vector and normalizing the merged vector using normalization parameters; generating a spoof prediction from the normalized merged vector using a machine learning algorithm; determining whether the head motion type prediction is or is not for no motion, and when the head motion type prediction is not for no motion using the generated spoof prediction to determine presence or absence of spoofing, changing the user head motion type prediction to no motion when the generated spoof prediction indicates biometric data in the frames was spoofed, and storing the user head motion type prediction in the buffer; and determining a final user head motion type detected for the frames by: calculating a total number of predictions for each type of user head motion stored in the buffer, wherein the buffer stores predictions for user head motion types; dividing the total number of predictions for each type of user head motion by the total number of predictions in the buffer; and determining the type of motion having the highest score as the final user head motion type detected for the sequence of frames. calculating a total number of predictions for each type of user head motion stored in the buffer, wherein the buffer stores predictions for user head motion types; dividing the total number of predictions for each type of user head motion by the total number of predictions in the buffer; and determining the type of motion having the highest score as the final user head motion type detected for the sequence of frames.