def __init__(self, args): self.args = args self.batch_size = args.batch_size self.epoch = args.epoch self.verbose = args.verbose self.keep = args.keep self.TopK = args.TopK # Data loading self.data = DATA.LoadData(self.args.path, self.args.dataset) #获取数据 self.n_user = self.data.n_user self.n_item = self.data.n_item self.valid_dimension = self.data.Train_data.shape[1] - 1 if args.verbose > 0: print( "AFM: dataset=%s, factors=%s, #epoch=%d, batch=%d, lr=%.4f, lamda_attention=%.1e, keep=%s, optimizer=%s, batch_norm=%d" % (args.dataset, args.hidden_factor, args.epoch, args.batch_size, args.lr, args.lamda_attention, args.keep, args.optimizer, args.batch_norm)) activation_function = tf.nn.relu if args.activation == 'sigmoid': activation_function = tf.sigmoid elif args.activation == 'tanh': activation_function == tf.tanh elif args.activation == 'identity': activation_function = tf.identity # Training\\ self.model = AFM(self.n_user, self.n_item, self.data.features_M, args.attention, eval(args.hidden_factor), activation_function, args.lr, args.lamda_attention, eval(args.keep), args.optimizer, args.decay, self.valid_dimension)
def __init__(self, args): self.args = args self.batch_size = args.batch_size self.epoch = args.epoch self.verbose = args.verbose self.keep = args.keep self.TopK = args.TopK # Data loading self.data = DATA.LoadData(self.args.path, self.args.dataset) #获取数据 self.n_user = self.data.n_user self.n_item = self.data.n_item self.valid_dimension = self.data.Train_data.shape[1] - 1 if args.verbose > 0: print( "FM: dataset=%s, factors=%d, #epoch=%d, batch=%d, lr=%.4f, lambda=%.1e, keep=%.2f, optimizer=%s, batch_norm=%d" % (args.dataset, args.hidden_factor, args.epoch, args.batch_size, args.lr, args.lamda, args.keep, args.optimizer, args.batch_norm)) # Training\\\ self.model = FM(self.valid_dimension, self.data.features_M, self.n_user, self.n_item, args.hidden_factor, args.lr, args.lamda, args.keep, args.optimizer, args.batch_norm, args.verbose)
def __init__(self,args): self.args = args self.batch_size = args.batch_size self.epoch = args.epoch self.verbose = args.verbose self.keep = args.keep # Data loading self.data = DATA.LoadData(self.args.path, self.args.dataset)#获取数据 self.n_user = self.data.n_user self.n_item = self.data.n_item if args.verbose > 0: print("FM: dataset=%s, factors=%d, #epoch=%d, batch=%d, lr=%.4f, lambda=%.1e, keep=%.2f, optimizer=%s, batch_norm=%d" %(args.dataset, args.hidden_factor, args.epoch, args.batch_size, args.lr, args.lamda, args.keep, args.optimizer, args.batch_norm)) # Training\\\ self.model = MF(self.n_user+self.n_item, self.n_user, self.n_item , args.hidden_factor,args.lr, args.lamda, args.keep, args.optimizer, args.batch_norm, args.verbose)
def __init__(self,args): self.args = args self.batch_size = args.batch_size self.epoch = args.epoch self.TopK = args.TopK # Data loading self.data = DATA.LoadData(self.args.path, self.args.dataset)#获取数据 self.n_user = self.data.n_user self.n_item = self.data.n_item self.features_M = self.data.features_M self.valid_dimension = self.data.Train_data.shape[1] - 1 print("OurModel: dataset=%s, factors=%d, #epoch=%d, batch=%d, lr=%.4f, lambda=%.1e, keep=%.2f, optimizer=%s, batch_norm=%d" %(args.dataset, args.hidden_factor, args.epoch, args.batch_size, args.lr, args.lamda, args.keep, args.optimizer, args.batch_norm)) # Training\\\建立模型 if args.dataset =='resturant': #contextual + time self.context = True self.time = True self.time_dimension = 5 self.feature_dimension= self.valid_dimension - 2 - self.time_dimension if args.dataset == 'tmall': self.context = True self.time = False self.time_dimension = 0 self.feature_dimension= self.valid_dimension - 2 - self.time_dimension if args.dataset =='frappe' or args.dataset =='fra': self.context = True self.time = False self.feature_dimension= self.valid_dimension - 2 self.time_dimension = 0 if args.dataset =='jiaju': self.context = True self.time = True self.time_dimension = 3 self.feature_dimension= self.valid_dimension - 2 - self.time_dimension self.model = OUR(self.feature_dimension,self.time_dimension,self.features_M, self.n_user, self.n_item , args.hidden_factor,args.lr, args.lamda, args.optimizer, self.context, self.time)
def __init__(self, args): self.args = args self.batch_size = args.batch_size self.epoch = args.epoch self.TopK = args.TopK # Data loading self.data = DATA.LoadData(self.args.path, self.args.dataset) #获取数据 self.n_user = self.data.n_user self.n_item = self.data.n_item set1 = set() for line in self.data.Total_data.values[:, 3:]: set1.add(tuple(line)) self.feature_inject = {f: i for i, f in enumerate(set1)} self.features_M = len(self.feature_inject.keys()) print( "OurModel: dataset=%s, factors=%d, #epoch=%d, batch=%d, lr=%.4f, lambda=%.1e, keep=%.2f, optimizer=%s, batch_norm=%d" % (args.dataset, args.hidden_factor, args.epoch, args.batch_size, args.lr, args.lamda, args.keep, args.optimizer, args.batch_norm)) self.model = CARS2(self.features_M, self.n_user, self.n_item, args.hidden_factor, args.lr, args.lamda, args.optimizer)