Beispiel #1
0
 def __init__(self, config):
     self.config = config  # model configuration
     self._metron_s = MetronAtK(top_k=config['top_k'])
     self._metron_t = MetronAtK(top_k=config['top_k'])
     self._writer = SummaryWriter(log_dir='runs/{}'.format(config['alias']))  # tensorboard writer
     self._writer.add_text('config', str(config), 0)
     self.opt = use_optimizer(self.model, config)
     # explicit feedback
     # self.crit = torch.nn.MSELoss()
     # implicit feedback
     self.crit = torch.nn.BCELoss()
Beispiel #2
0
    def __init__(self, config):
        super(MatrixFactorization, self).__init__()
        self.config = config
        self._metron = MetronAtK(top_k= config['topk'])

        self.num_users = config['num_users']
        self.num_items = config['num_items']
        self.latent_dim = config['latent_dim']

        self.embedding_user = torch.nn.Embedding(num_embeddings=self.num_users, embedding_dim=self.latent_dim)
        self.embedding_item = torch.nn.Embedding(num_embeddings=self.num_items, embedding_dim=self.latent_dim)
Beispiel #3
0
 def __init__(self, config):
     self.config = config  # model configuration
     self._metron = MetronAtK(top_k=10)
     self.opt = use_optimizer(self.model, config)
     self.model_name = config['model']
     # explicit feedback
     # self.crit = torch.nn.MSELoss()
     # implicit feedback
     if self.model_name == 'MF':
         self.crit = torch.nn.MSELoss()
     else:
         self.crit = torch.nn.BCELoss()
 def __init__(self, config):
     self.config = config  # model configuration
     self._metron = MetronAtK()
     self._writer = SummaryWriter(log_dir='runs/{}'.format(
         config['alias']))  # tensorboard writer
     self._writer.add_text('config', str(config), 0)
     self.opt = use_optimizer(self.model, config)
     if not config['implicit']:
         # explicit feedback
         self.crit = torch.nn.MSELoss()
     else:
         # implicit feedback
         self.crit = torch.nn.BCEWithLogitsLoss()
 def __init__(self, config):
     self.config = config  # model configuration
     self._metron = MetronAtK(top_k=10)
     self._writer = SummaryWriter(log_dir='runs/{}'.format(
         config['alias']))  # tensorboard writer
     self._writer.add_text('config', str(config), 0)
     self.opt = use_optimizer(self.model, config)
     self.crit = torch.nn.BCELoss()
     self.mse = torch.nn.MSELoss()
     self.sparse = False
     if config['friend_item_matrix'].split(".")[-1] == "npz":
         self.friend_item_matrix = scipy.sparse.load_npz(
             config['friend_item_matrix'])
         self.sparse = True
     else:
         self.friend_item_matrix = np.load(config['friend_item_matrix'])
Beispiel #6
0
    def __init__(self, config):
        super(GMF, self).__init__()
        self.config = config
        self._metron = MetronAtK(top_k= config['topk'])
        self.crit = torch.nn.BCEWithLogitsLoss()

        self.num_users = config['num_users']
        self.num_items = config['num_items']
        self.latent_dim = config['latent_dim']

        self.embedding_user = torch.nn.Embedding(num_embeddings=self.num_users, embedding_dim=self.latent_dim)
        self.embedding_item = torch.nn.Embedding(num_embeddings=self.num_items, embedding_dim=self.latent_dim)

        self.affine_output = torch.nn.Linear(in_features=self.latent_dim, out_features=1)
        self.bpr = config['BPR_loss']
        self.logsigmoid = torch.nn.LogSigmoid()
Beispiel #7
0
    def __init__(self, config):
        """
        Function to initialize the engine
        :param config: configuration dictionary
        """
        self.config = config  # model configuration
        self._metron = MetronAtK(top_k=10)  # Metrics for Top-10
        self._writer = SummaryWriter(log_dir='runs/{}'.format(
            config['alias']))  # Tensorboard Writer
        self._writer.add_text('config', str(config),
                              0)  # String output for Tensorboard Writer
        self.opt = use_optimizer(self.model, config)  # set optimizer

        # self.crit = torch.nn.MSELoss() # mean squared error loss for explicit feedback
        self.crit = torch.nn.BCELoss(
        )  # binary cross entropy loss for implicit feedback
Beispiel #8
0
 def __init__(self):
     self._metron = MetronAtK(top_k=10)