Beispiel #1
0
    def build_graph(self):
        self._create_variable()
        with tf.name_scope("inference"):
            self.ua_embeddings, self.ia_embeddings, self.ua_embeddings_sub1, self.ia_embeddings_sub1, self.ua_embeddings_sub2, self.ia_embeddings_sub2 = self._create_lightgcn_SSL_embed(
            )
        """
        *********************************************************
        Generate Predictions & Optimize via BPR loss.
        """
        with tf.name_scope("loss"):
            if self.pretrain:
                self.ssl_loss = tf.constant(0, dtype=tf.float32)
            else:
                if self.ssl_mode in ['user_side', 'item_side', 'both_side']:
                    # self.ssl_loss = self.calc_ssl_loss()
                    self.ssl_loss = self.calc_ssl_loss_v2()
                elif self.ssl_mode in ['merge']:
                    self.ssl_loss = self.calc_ssl_loss_v3()
                else:
                    raise ValueError("Invalid ssl_mode!")
            self.sl_loss, self.emb_loss = self.create_bpr_loss()
            self.loss = self.sl_loss + self.emb_loss + self.ssl_loss

        with tf.name_scope("learner"):
            # self.opt = tf.train.AdamOptimizer(learning_rate=self.lr).minimize(self.loss)
            self.opt = learner.optimizer(self.learner, self.loss, self.lr)

        self.saver = tf.train.Saver()
Beispiel #2
0
 def _create_optimizer(self):
     with tf.name_scope("learner"):
         self.optimizer = learner.optimizer(self.learner, self.loss,
                                            self.learning_rate)
Beispiel #3
0
#!/usr/local/bin/python