def _initialize(self, no_components, no_item_features, no_user_features):
<EOL>self.item_embeddings = (<EOL>(self.random_state.rand(no_item_features, no_components) - <NUM_LIT:0.5>)<EOL>/ no_components<EOL>).astype(np.float32)<EOL>self.item_embedding_gradients = np.zeros_like(self.item_embeddings)<EOL>self.item_embedding_momentum = np.zeros_like(self.item_embeddings)<EOL>self.item_biases = np.zeros(no_item_features, dtype=np.float32)<EOL>self.item_bias_gradients = np.zeros_like(self.item_biases)<EOL>self.item_bias_momentum = np.zeros_like(self.item_biases)<EOL>self.user_embeddings = (<EOL>(self.random_state.rand(no_user_features, no_components) - <NUM_LIT:0.5>)<EOL>/ no_components<EOL>).astype(np.float32)<EOL>self.user_embedding_gradients = np.zeros_like(self.user_embeddings)<EOL>self.user_embedding_momentum = np.zeros_like(self.user_embeddings)<EOL>self.user_biases = np.zeros(no_user_features, dtype=np.float32)<EOL>self.user_bias_gradients = np.zeros_like(self.user_biases)<EOL>self.user_bias_momentum = np.zeros_like(self.user_biases)<EOL>if self.learning_schedule == "<STR_LIT>":<EOL><INDENT>self.item_embedding_gradients += <NUM_LIT:1><EOL>self.item_bias_gradients += <NUM_LIT:1><EOL>self.user_embedding_gradients += <NUM_LIT:1><EOL>self.user_bias_gradients += <NUM_LIT:1><EOL><DEDENT>
Initialise internal latent representations.