W = initializeW_opt(userFeatureVectors, SparsityLevel) # Generate user relation matrix GW = initializeGW(W , epsilon) articles_random = randomStruct() algorithms = {} runCoLinUCB = runGOBLin = runLinUCB = run_M_LinUCB = run_Uniform_LinUCB= run_CFUCB = run_CFEgreedy = run_SGDEgreedy = run_PTS = run_TCF = False if args.alg: if args.alg == 'CoLinUCB' or args.alg == 'CoLin': runCoLinUCB = True algorithms['CoLin'] = AsyCoLinUCBAlgorithm(dimension=context_dimension, alpha = alpha, lambda_ = lambda_, n = userNum, W = W) elif args.alg == 'GOBLin': runGOBLin = True algorithms['GOBLin'] = GOBLinAlgorithm(dimension=context_dimension, alpha = alpha, lambda_ = lambda_, n = userNum, W = GW) elif args.alg == 'LinUCB': runLinUCB = True algorithms['LinUCB'] = N_LinUCBAlgorithm(dimension = context_dimension, alpha = alpha, lambda_ = lambda_, n = clusterNum) elif args.alg =='M_LinUCB': run_M_LinUCB = True elif args.alg == 'Uniform_LinUCB': run_Uniform_LinUCB = True elif args.alg == 'factorLinUCB': run_factorLinUCB = True if not args.dimension: dimension = 5 else: dimension = int(args.dimension) algorithms['FactorLinUCBAlgorithm'] = FactorLinUCBAlgorithm(context_dimension = context_dimension, latent_dimension = dimension, alpha = 0.2, alpha2 = 0.1, lambda_ = lambda_, n = clusterNum, itemNum=itemNum, W = W, init='random', window_size = 3) elif args.alg == 'CFUCB': run_CFUCB = True if not args.dimension: dimension = 5
matrixNoise = lambda : np.random.normal(scale = matrixNoise), batchSize = batchSize, type_ = "UniformTheta", signature = AM.signature, sparseLevel = sparseLevel, poolArticleSize = poolSize, NoiseScale = NoiseScale, epsilon = epsilon, Gepsilon =Gepsilon) print "Starting for ", simExperiment.simulation_signature algorithms = {} # algorithms['CFContextual'] = EgreedyContextualStruct(Tu= 200, m=10, lambd=0.1, alpha=0, userNum=n_users, itemNum=n_articles, k=context_dimension+latent_dimension, feature_dim = context_dimension, init='zero') # algorithms['EgreedyNonContextual'] = EgreedyStruct(Tu= 200, m=10, lambd=0.1, alpha=100, userNum=n_users, itemNum=n_articles, k=context_dimension+latent_dimension, init='random') # algorithms['CF'] = EgreedyStruct(Tu= 200, m=10, lambd=0.1, alpha=0, userNum=n_users, itemNum=n_articles, k=context_dimension+latent_dimension, init='random') algorithms['LinUCB'] = N_LinUCBAlgorithm(dimension = context_dimension, alpha = alpha, lambda_ = lambda_, n = n_users) # algorithms['LinEgreedy'] = N_LinEgreedyAlgorithm(dimension = context_dimension, alpha = alpha, lambda_ = lambda_, n = n_users) #algorithms['LinUCBRandom'] = N_LinUCBAlgorithm(dimension = context_dimension, alpha = alpha, lambda_ = lambda_, n = n_users, init="random") #algorithms['GOBLin'] = GOBLinAlgorithm( dimension= dimension, alpha = G_alpha, lambda_ = G_lambda_, n = n_users, W = simExperiment.getGW() ) #algorithms['syncCoLinUCB'] = syncCoLinUCBAlgorithm(dimension=dimension, alpha = alpha, lambda_ = lambda_, n = n_users, W = simExperiment.getW()) #algorithms['AsyncCoLinUCB'] = AsyCoLinUCBAlgorithm(dimension=dimension, alpha = alpha, lambda_ = lambda_, n = n_users, W = simExperiment.getW()) algorithms['EgreedySGDLrConstant'] = EgreedyContextualStruct(epsilon_init=200, userNum=n_users, itemNum=n_articles, k=context_dimension+latent_dimension, feature_dim = context_dimension, lambda_ = lambda_, init='zero', learning_rate='constant') # algorithms['EgreedySGDLrDecay'] = EgreedyContextualStruct(epsilon_init=200, userNum=n_users, itemNum=n_articles, k=context_dimension+latent_dimension, feature_dim = context_dimension, lambda_ = lambda_, init='zero', learning_rate='decay') #algorithms['UniformLinUCB'] = Uniform_LinUCBAlgorithm(dimension = dimension, alpha = alpha, lambda_ = lambda_) #algorithms['WCoLinUCB'] = WAlgorithm(dimension = dimension, alpha = alpha, lambda_ = lambda_, eta_ = eta_, n = n_users) #algorithms['WknowTheta'] = WknowThetaAlgorithm(dimension = dimension, alpha = alpha, lambda_ = lambda_, eta_ = eta_, n = n_users, theta = simExperiment.getTheta()) #algorithms['W_W0'] = W_W0_Algorithm(dimension = dimension, alpha = alpha, lambda_ = lambda_, eta_ = eta_, n = n_users, W0 = simExperiment.getW0()) #algorithms['eGreedy'] = eGreedyAlgorithm(epsilon = 0.1)
signature=AM.signature, sparseLevel=sparseLevel, poolArticleSize=poolSize, NoiseScale=NoiseScale, epsilon=epsilon, Gepsilon=Gepsilon) selectUser_Algorithms = {} selectUser_Algorithms['LinUCB_SelectUser'] = LinUCB_SelectUserAlgorithm( dimension=dimension, alpha=alpha, lambda_=lambda_, n=n_users) selectUser_Algorithms[ 'AsyncCoLin_SelectUser'] = CoLinUCB_SelectUserAlgorithm( dimension=dimension, alpha=alpha, lambda_=lambda_, n=n_users, W=simExperiment_SelectUser.getW()) selectUser_Algorithms['GOBLin_SelectUser'] = GOBLin_SelectUserAlgorithm( dimension=dimension, alpha=alpha, lambda_=lambda_, n=n_users, W=simExperiment_SelectUser.getGW()) selectUser_Algorithms['LinUCB_RandomUser'] = N_LinUCBAlgorithm( dimension=dimension, alpha=alpha, lambda_=lambda_, n=n_users) #selectUser_Algorithms['AsyncCoLin_RandomUser'] = AsyCoLinUCBAlgorithm(dimension=dimension, alpha = alpha, lambda_ = lambda_, n = n_users, W = simExperiment_SelectUser.getW0()) #selectUser_Algorithms['GOBLin_RandomUser'] = GOBLinAlgorithm( dimension= dimension, alpha = G_alpha, lambda_ = G_lambda_, n = n_users, W = simExperiment_SelectUser.getGW() ) simExperiment_SelectUser.runAlgorithms(selectUser_Algorithms)