def METHOD_NAME(self, dy_model, metrics_list, batch_data, config):
    batch_size = config.get("runner.train_batch_size", 128)
    user_sparse_inputs, mov_sparse_inputs, label_input = self.create_feeds(
        batch_data)
    predict = dy_model.forward(batch_size, user_sparse_inputs,
                               mov_sparse_inputs, label_input)
    loss = self.create_loss(predict, label_input)
    # update metrics
    print_dict = {"loss": loss}
    return loss, metrics_list, print_dict