def __init__(self, config, dataset): super(FM, self).__init__(config, dataset) # define layers and loss self.fm = BaseFactorizationMachine(reduce_sum=True) self.sigmoid = nn.Sigmoid() self.loss = nn.BCELoss() # parameters initialization self.apply(self._init_weights)
def __init__(self, config, dataset): super(NFM, self).__init__(config, dataset) # load parameters info self.mlp_hidden_size = config['mlp_hidden_size'] self.dropout_prob = config['dropout_prob'] # define layers and loss size_list = [self.embedding_size] + self.mlp_hidden_size self.fm = BaseFactorizationMachine(reduce_sum=False) self.bn = nn.BatchNorm1d(num_features=self.embedding_size) self.mlp_layers = MLPLayers(size_list, self.dropout_prob, activation='sigmoid', bn=True) self.predict_layer = nn.Linear(self.mlp_hidden_size[-1], 1, bias=False) self.sigmoid = nn.Sigmoid() self.loss = nn.BCELoss() # parameters initialization self.apply(self._init_weights)
def __init__(self, config, dataset): super(DeepFM, self).__init__(config, dataset) # load parameters info self.mlp_hidden_size = config['mlp_hidden_size'] self.dropout_prob = config['dropout_prob'] # define layers and loss self.fm = BaseFactorizationMachine(reduce_sum=True) size_list = [self.embedding_size * self.num_feature_field ] + self.mlp_hidden_size self.mlp_layers = MLPLayers(size_list, self.dropout_prob) self.deep_predict_layer = nn.Linear( self.mlp_hidden_size[-1], 1) # Linear product to the final score self.sigmoid = nn.Sigmoid() self.loss = nn.BCELoss() # parameters initialization self.apply(self._init_weights)