def METHOD_NAME(self, sparse_inputs, dense_inputs):
    sparse_embs = []
    if self.use_embedding_gate:
        for i in range(len(self.embedding_gate_weight)):
            emb = self.embedding(sparse_inputs[i])
            emb = paddle.reshape(
                emb, shape=[-1, self.sparse_feature_dim
                            ])  # emb shape [batchSize, sparse_feature_dim]
            gate = paddle.sum(paddle.multiply(
                emb, self.embedding_gate_weight[i]),
                              axis=-1,
                              keepdim=True)  # gate shape [batchSize,1]
            activate_gate = paddle.nn.functional.sigmoid(
                gate)  # activate_gate [batchSize,1]
            emb = paddle.multiply(
                emb,
                activate_gate)  # emb shape [batchSize, sparse_feature_dim]
            sparse_embs.append(emb)
    else:
        for s_input in sparse_inputs:
            emb = self.embedding(s_input)
            emb = paddle.reshape(emb, shape=[-1, self.sparse_feature_dim])
            sparse_embs.append(emb)
    y_dnn = paddle.concat(x=sparse_embs + [dense_inputs], axis=1)
    for i in range(len(self._mlp_layers)):
        y_dnn = self._mlp_layers[i](y_dnn)
        if self.use_hidden_gate and i % 2 == 1 and i // 2 < len(
                self._hidden_gate_weight):
            x_dnn = paddle.tanh(
                paddle.matmul(y_dnn, self._hidden_gate_weight[i // 2]))
            y_dnn = paddle.multiply(y_dnn, x_dnn)
    y_dnn = self.last_layer(y_dnn)
    y_dnn = paddle.nn.functional.sigmoid(y_dnn)
    return y_dnn