├── data ├── lastfm │ ├── Test_data.df │ ├── Val_data.df │ ├── data_statis.df │ ├── train_data.df │ └── id2name.txt ├── lastfm_ab │ ├── data_statis.df │ └── test_llara.pkl └── prior_lastfm │ ├── SASRec_AB_20.csv │ └── SASRec.csv ├── output └── lastfm │ └── SASRec.pt ├── README.md ├── LICENSE ├── utils ├── api_request.py ├── rw_process.py ├── regular_function.py ├── model.py └── agent.py ├── scripts ├── evaluate_rec.sh ├── evaluate_user_step2.sh └── evaluate_user_step1.sh ├── constant ├── lastfm_ab_model_prompt.py └── lastfm_prior_model_prompt.py ├── dataset ├── lastfm_dataset.py └── lastfmAB_dataset.py ├── afl ├── SASRecModules_ori.py ├── evaluate_user_step2.py ├── evaluate_rec.py └── evaluate_user_step1.py └── .gitignore /data/lastfm/Test_data.df: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lanyu0303/AFL/HEAD/data/lastfm/Test_data.df -------------------------------------------------------------------------------- /data/lastfm/Val_data.df: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lanyu0303/AFL/HEAD/data/lastfm/Val_data.df -------------------------------------------------------------------------------- /output/lastfm/SASRec.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lanyu0303/AFL/HEAD/output/lastfm/SASRec.pt -------------------------------------------------------------------------------- /data/lastfm/data_statis.df: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lanyu0303/AFL/HEAD/data/lastfm/data_statis.df -------------------------------------------------------------------------------- /data/lastfm/train_data.df: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lanyu0303/AFL/HEAD/data/lastfm/train_data.df -------------------------------------------------------------------------------- /data/lastfm_ab/data_statis.df: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lanyu0303/AFL/HEAD/data/lastfm_ab/data_statis.df -------------------------------------------------------------------------------- /data/lastfm_ab/test_llara.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lanyu0303/AFL/HEAD/data/lastfm_ab/test_llara.pkl -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AFL 2 | 3 | This is the code repository for the paper titled "Agentic Feedback Loop Modeling Improves Recommendation and User Simulation". 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 Hardy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /utils/api_request.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import time 3 | 4 | def api_request(system_prompt, user_prompt, args): 5 | if "gpt" in args.model: 6 | return gpt_api(system_prompt, user_prompt, args) 7 | else: 8 | raise ValueError(f"Unsupported model: {args.model}") 9 | 10 | 11 | 12 | def gpt_api(system_prompt, user_prompt, args): 13 | max_retry_num = args.max_retry_num 14 | url = "https://api.openai.com/v1/chat/completions" 15 | headers = { 16 | "Content-Type": "application/json", 17 | "Authorization": f"Bearer {args.api_key}" 18 | } 19 | 20 | messages = [ 21 | {"role": "system", "content": system_prompt}, 22 | {"role": "user", "content": user_prompt}, 23 | ] 24 | 25 | payload = { 26 | "model": args.model, 27 | "messages": messages, 28 | "temperature": args.temperature, 29 | } 30 | while max_retry_num >= 0: 31 | request_result = None 32 | try: 33 | request_result = requests.post(url, headers=headers, json=payload) 34 | result_json = request_result.json() 35 | if 'error' not in result_json: 36 | model_output = result_json['choices'][0]['message']['content'] 37 | return model_output.strip() 38 | else: 39 | max_retry_num -= 1 40 | except: 41 | if request_result is not None: 42 | print("[warning]request_result = ", request_result.json()) 43 | time.sleep(2) 44 | else: 45 | print("[warning]request_result = NULL") 46 | max_retry_num -= 1 47 | return None 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /scripts/evaluate_rec.sh: -------------------------------------------------------------------------------- 1 | work_dir='' 2 | cd $work_dir 3 | 4 | DATA_DIR="./data/lastfm/" 5 | STAGE="test" 6 | CANS_NUM=20 7 | MAX_EPOCH=4 8 | MODEL="gpt-4o-mini-2024-07-18" 9 | API_KEY="" 10 | MODEL_PATH="./output/lastfm/SASRec.pt" 11 | MAX_RETRY_NUM=5 12 | SEED=303 13 | MP=16 14 | TEMPERATURE=0.4 15 | LABEL="recommendation_experiment" 16 | P_MODEL='SASRec' 17 | PRIOR_FILE="./data/prior_lastfm/SASRec.csv" 18 | OUTPUT_FILE="./data/lastfm_rec_eval/${P_MODEL}_${LABEL}_${MODEL}_${SEED}_${TEMPERATURE}_${MP}_${MAX_EPOCH}.jsonl" 19 | 20 | SAVE_REC_DIR="./data/lastfm_rec_save/rec_${P_MODEL}_${LABEL}_${MODEL}_${MAX_EPOCH}" 21 | SAVE_USER_DIR="./data/lastfm_rec_save/user_${P_MODEL}_${LABEL}_${MODEL}_${MAX_EPOCH}" 22 | 23 | echo "DATA_DIR = ${DATA_DIR}" 24 | echo "MODEL_PATH = ${MODEL_PATH}" 25 | echo "PRIOR_FILE = ${PRIOR_FILE}" 26 | echo "STAGE = ${STAGE}" 27 | echo "CANS_NUM = ${CANS_NUM}" 28 | echo "MAX_EPOCH = ${MAX_EPOCH}" 29 | echo "MODEL = ${MODEL}" 30 | echo "API_KEY = ${API_KEY}" 31 | echo "MAX_RETRY_NUM = ${MAX_RETRY_NUM}" 32 | echo "SEED = ${SEED}" 33 | echo "TEMPERATURE = ${TEMPERATURE}" 34 | echo "MP = ${MP}" 35 | echo "OUTPUT_FILE = ${OUTPUT_FILE}" 36 | echo "SAVE_REC_DIR = ${SAVE_REC_DIR}" 37 | echo "SAVE_USER_DIR = ${SAVE_USER_DIR}" 38 | 39 | CUDA_VISIBLE_DEVICES=0 python ./afl/evaluate_rec.py \ 40 | --data_dir=$DATA_DIR \ 41 | --model_path=$MODEL_PATH \ 42 | --prior_file=$PRIOR_FILE \ 43 | --stage=$STAGE \ 44 | --cans_num=$CANS_NUM \ 45 | --max_epoch=$MAX_EPOCH \ 46 | --output_file=$OUTPUT_FILE \ 47 | --model=$MODEL \ 48 | --api_key=$API_KEY \ 49 | --max_retry_num=$MAX_RETRY_NUM \ 50 | --seed=$SEED \ 51 | --mp=$MP \ 52 | --temperature=$TEMPERATURE \ 53 | --save_info \ 54 | --save_rec_dir=$SAVE_REC_DIR \ 55 | --save_user_dir=$SAVE_USER_DIR 56 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /scripts/evaluate_user_step2.sh: -------------------------------------------------------------------------------- 1 | work_dir='' 2 | cd $work_dir 3 | 4 | DATA_DIR="./data/lastfm_ab" 5 | INIT_NUM=10 6 | TRAIN_CANS_NUM=20 7 | EVAL_CANS_NUM=20 8 | A_RATIO=1 9 | B_RATIO=1 10 | STAGE="test" 11 | MODEL="gpt-4o-mini-2024-07-18" 12 | MODEL_PATH="./output/lastfm/SASRec.pt" 13 | API_KEY="" 14 | MAX_RETRY_NUM=5 15 | SEED=303 16 | MP=16 17 | TEMPERATURE=0.0 18 | LABEL="user_experiment" 19 | MAX_EPOCH=4 20 | OUTPUT_FILE="./data/lastfm_ab_step2/${LABEL}_${MODEL}_${SEED}_${TEMPERATURE}_${MP}_${A_RATIO}_${B_RATIO}_${TRAIN_CANS_NUM}_${EVAL_CANS_NUM}_${MAX_EPOCH}.jsonl" 21 | INFO_DIR="./data/lastfm_ab_save/user_SASRec_user_experiment_gpt-4o-mini-2024-07-18_${MAX_EPOCH}_1_1_20_20/" 22 | echo "DATA_DIR = ${DATA_DIR}" 23 | echo "INIT_NUM = ${INIT_NUM}" 24 | echo "TRAIN_CANS_NUM = ${TRAIN_CANS_NUM}" 25 | echo "EVAL_CANS_NUM = ${EVAL_CANS_NUM}" 26 | echo "A_RATIO = ${A_RATIO}" 27 | echo "B_RATIO = ${B_RATIO}" 28 | echo "STAGE = ${STAGE}" 29 | echo "MAX_EPOCH = ${MAX_EPOCH}" 30 | echo "MODEL = ${MODEL}" 31 | echo "API_KEY = ${API_KEY}" 32 | echo "MAX_RETRY_NUM = ${MAX_RETRY_NUM}" 33 | echo "SEED = ${SEED}" 34 | echo "MP = ${MP}" 35 | echo "TEMPERATURE = ${TEMPERATURE}" 36 | echo "LABEL = ${LABEL}" 37 | echo "OUTPUT_FILE = ${OUTPUT_FILE}" 38 | echo "INFO_DIR = ${INFO_DIR}" 39 | 40 | CUDA_VISIBLE_DEVICES=0 python ./afl/evaluate_user_step2.py \ 41 | --data_dir=$DATA_DIR \ 42 | --init_num=$INIT_NUM \ 43 | --train_cans_num=$TRAIN_CANS_NUM \ 44 | --eval_cans_num=$EVAL_CANS_NUM \ 45 | --a_ratio=$A_RATIO \ 46 | --b_ratio=$B_RATIO \ 47 | --stage=$STAGE \ 48 | --output_file=$OUTPUT_FILE \ 49 | --model=$MODEL \ 50 | --api_key=$API_KEY \ 51 | --max_retry_num=$MAX_RETRY_NUM \ 52 | --seed=$SEED \ 53 | --mp=$MP \ 54 | --temperature=$TEMPERATURE \ 55 | --info_dir=$INFO_DIR \ 56 | --model_path=$MODEL_PATH \ 57 | --load_info -------------------------------------------------------------------------------- /utils/rw_process.py: -------------------------------------------------------------------------------- 1 | import json 2 | import jsonlines 3 | import pickle 4 | import csv 5 | 6 | def read_jsonl(file_path): 7 | data_list = [] 8 | with open(file_path, "r",encoding='utf-8') as file: 9 | for line in file: 10 | json_data = json.loads(line) 11 | data_list.append(json_data) 12 | return data_list 13 | 14 | def write_jsonl(file_path, data_list): 15 | with jsonlines.open(file_path, 'w') as jsonl_file: 16 | for data in data_list: 17 | jsonl_file.write(data) 18 | 19 | def append_jsonl(file_path, data): 20 | with jsonlines.open(file_path, 'a') as jsonl_file: 21 | jsonl_file.write(data) 22 | 23 | def read_json(file_path): 24 | with open(file_path, 'r') as json_file: 25 | data_list = json.load(json_file) 26 | return data_list 27 | 28 | def write_json(file_path, data_list): 29 | with open(file_path, 'w', encoding='utf-8') as file: 30 | json.dump(data_list, file,ensure_ascii=False, indent=4) 31 | 32 | def read_pk(file_path): 33 | data_list = [] 34 | with open(file_path, 'rb') as f: 35 | data_list = pickle.load(f) 36 | return data_list 37 | 38 | def write_pk(file_path, data_list): 39 | with open(file_path, 'wb') as file: 40 | pickle.dump(data_list, file) 41 | 42 | def read_csv(file_path): 43 | with open(file_path, 'r', newline='', encoding='utf-8') as csvfile: 44 | data_reader = csv.DictReader(csvfile) 45 | data_list = [data for data in data_reader] 46 | return data_list 47 | 48 | def write_csv(file_path, data_list): 49 | with open(file_path, mode='w', newline='', encoding='utf-8') as file: 50 | writer = csv.DictWriter(file, fieldnames=data_list[0].keys()) 51 | writer.writeheader() 52 | for row in data_list: 53 | writer.writerow(row) 54 | -------------------------------------------------------------------------------- /data/prior_lastfm/SASRec_AB_20.csv: -------------------------------------------------------------------------------- 1 | id,generate,real 2 | 0,Satyricon,As I Lay Dying 3 | 1,James Blunt,Disturbed 4 | 2,Kanye West,Enrique Iglesias 5 | 3,Eyes Set to Kill,William Fitzsimmons 6 | 4,Norther,Charles Mingus 7 | 5,Ice Cube,Yolanda Be Cool & DCUP 8 | 6,O-Zone,Finger Eleven 9 | 7,Band of Horses,H2O 10 | 8,Kate Voegele,Avril Lavigne 11 | 9,Gov't Mule,Kristinia DeBarge 12 | 10,Visage,The Go-Go's 13 | 11,Beyoncé,Beyoncé 14 | 12,Sugarland,Radiohead 15 | 13,Air Supply,Bloodhound Gang 16 | 14,Timbaland,White Zombie 17 | 15,Paramore,Paramore 18 | 16,Oasis,Salem 19 | 17,ルルティア,Jamie Cullum 20 | 18,Everything Everything,UNKLE 21 | 19,Kat DeLuna,Sade 22 | 20,12 Stones,BoA 23 | 21,All Saints,The Golden Filter 24 | 22,Living Colour,Madlib 25 | 23,White Zombie,Bill Evans 26 | 24,Rainbow,Rainbow 27 | 25,Jay-Z,Beastie Boys 28 | 26,Amon Amarth,Simple Plan 29 | 27,Within Temptation,Antimatter 30 | 28,Chiodos,Hurts 31 | 29,Dawn of Ashes,Scout Niblett 32 | 30,nevershoutnever!,nevershoutnever! 33 | 31,Adam Lambert,Rihanna 34 | 32,Slaughter,L7 35 | 33,Lacuna Coil,Kate Bush 36 | 34,Mariah Carey,P!nk 37 | 35,"Woe, Is Me","Woe, Is Me" 38 | 36,Adam Lambert,Adam Lambert 39 | 37,Her Space Holiday,A Static Lullaby 40 | 38,David Guetta,David Guetta 41 | 39,RBD,RBD 42 | 40,Rise Against,Rise Against 43 | 41,Zoviet France,Black Flag 44 | 42,Creedence Clearwater Revival,Dulce María 45 | 43,Judas Priest,Judas Priest 46 | 44,Bob Dylan,Ramones 47 | 45,Ayria,Ayria 48 | 46,Liars,RBD 49 | 47,Stacie Orrico,Kanye West 50 | 48,Demons & Wizards,Iron Maiden 51 | 49,Nirvana,Nirvana 52 | 50,U2,The Veronicas 53 | 51,Lucinda Williams,Depeche Mode 54 | 52,Kasabian,Kasabian 55 | 53,Sex Pistols,Sex Pistols 56 | 54,Madeleine Peyroux,Madeleine Peyroux 57 | 55,Automatic Loveletter,Cat Stevens 58 | 56,Carter Burwell,Katy Perry 59 | 57,Inspiral Carpets,Seabear 60 | 58,Blockhead,Mitchel Musso 61 | 59,Paula DeAnda,Snow Patrol 62 | -------------------------------------------------------------------------------- /scripts/evaluate_user_step1.sh: -------------------------------------------------------------------------------- 1 | work_dir='' 2 | cd $work_dir 3 | 4 | DATA_DIR="./data/lastfm_ab" 5 | INIT_NUM=10 6 | TRAIN_CANS_NUM=20 7 | EVAL_CANS_NUM=20 8 | A_RATIO=1 9 | B_RATIO=1 10 | STAGE="test" 11 | MAX_EPOCH=4 12 | MODEL="gpt-4o-mini-2024-07-18" 13 | MODEL_PATH="./output/lastfm/SASRec.pt" 14 | API_KEY="" 15 | MAX_RETRY_NUM=5 16 | SEED=303 17 | MP=16 18 | TEMPERATURE=0.0 19 | LABEL="user_experiment" 20 | P_MODEL='SASRec' 21 | PRIOR_FILE="./data/prior_lastfm/SASRec_AB_20.csv" 22 | OUTPUT_FILE="./data/lastfm_ab_step1/${P_MODEL}_${LABEL}_${MODEL}_${SEED}_${TEMPERATURE}_${MP}_${MAX_EPOCH}_${A_RATIO}_${B_RATIO}_${TRAIN_CANS_NUM}_${EVAL_CANS_NUM}.jsonl" 23 | SAVE_REC_DIR="./data/lastfm_ab_save/rec_${P_MODEL}_${LABEL}_${MODEL}_${MAX_EPOCH}_${A_RATIO}_${B_RATIO}_${TRAIN_CANS_NUM}_${EVAL_CANS_NUM}" 24 | SAVE_USER_DIR="./data/lastfm_ab_save/user_${P_MODEL}_${LABEL}_${MODEL}_${MAX_EPOCH}_${A_RATIO}_${B_RATIO}_${TRAIN_CANS_NUM}_${EVAL_CANS_NUM}" 25 | 26 | echo "DATA_DIR = ${DATA_DIR}" 27 | echo "MODEL_PATH = ${MODEL_PATH}" 28 | echo "INIT_NUM = ${INIT_NUM}" 29 | echo "TRAIN_CANS_NUM = ${TRAIN_CANS_NUM}" 30 | echo "EVAL_CANS_NUM = ${EVAL_CANS_NUM}" 31 | echo "A_RATIO = ${A_RATIO}" 32 | echo "B_RATIO = ${B_RATIO}" 33 | echo "STAGE = ${STAGE}" 34 | echo "MAX_EPOCH = ${MAX_EPOCH}" 35 | echo "MODEL = ${MODEL}" 36 | echo "API_KEY = ${API_KEY}" 37 | echo "MAX_RETRY_NUM = ${MAX_RETRY_NUM}" 38 | echo "SEED = ${SEED}" 39 | echo "MP = ${MP}" 40 | echo "TEMPERATURE = ${TEMPERATURE}" 41 | echo "LABEL = ${LABEL}" 42 | echo "PRIOR_FILE = ${PRIOR_FILE}" 43 | echo "OUTPUT_FILE = ${OUTPUT_FILE}" 44 | echo "SAVE_REC_DIR = ${SAVE_REC_DIR}" 45 | echo "SAVE_USER_DIR = ${SAVE_USER_DIR}" 46 | 47 | CUDA_VISIBLE_DEVICES=0 python ./afl/evaluate_user_step1.py \ 48 | --data_dir=$DATA_DIR \ 49 | --init_num=$INIT_NUM \ 50 | --prior_file=$PRIOR_FILE \ 51 | --train_cans_num=$TRAIN_CANS_NUM \ 52 | --eval_cans_num=$EVAL_CANS_NUM \ 53 | --a_ratio=$A_RATIO \ 54 | --b_ratio=$B_RATIO \ 55 | --stage=$STAGE \ 56 | --output_file=$OUTPUT_FILE \ 57 | --model=$MODEL \ 58 | --api_key=$API_KEY \ 59 | --max_epoch=$MAX_EPOCH \ 60 | --max_retry_num=$MAX_RETRY_NUM \ 61 | --seed=$SEED \ 62 | --mp=$MP \ 63 | --temperature=$TEMPERATURE \ 64 | --save_info \ 65 | --save_rec_dir=$SAVE_REC_DIR \ 66 | --save_user_dir=$SAVE_USER_DIR \ 67 | --model_path=$MODEL_PATH 68 | -------------------------------------------------------------------------------- /utils/regular_function.py: -------------------------------------------------------------------------------- 1 | import re 2 | 3 | def split_rec_reponse(response): 4 | response += '\n' 5 | pattern = r'Reason: (.*?)\nItem: (.*?)\n' 6 | matches = re.findall(pattern, response, re.DOTALL) 7 | if len(matches) != 1: 8 | print("[split_rec_reponse]can not split, response = ", response) 9 | return None, None 10 | match = matches[0] 11 | return match[0].strip(), match[1].strip() 12 | 13 | def split_user_response(response): 14 | response += '\n' 15 | pattern = r'Reason: (.*?)\Decision: (.*?)\n' 16 | matches = re.findall(pattern, response, re.DOTALL) 17 | if len(matches) != 1: 18 | print("[split_user_reponse]can not split, response = ", response) 19 | return None, None 20 | 21 | match = matches[0] 22 | if match[1].lower().startswith('yes'): 23 | return match[0].strip(), True 24 | elif match[1].lower().startswith('no'): 25 | return match[0].strip(), False 26 | else: 27 | print("[split_user_reponse]can not find flag, response = ", response) 28 | return None, None 29 | 30 | 31 | def split_user_rec_reponse(response): 32 | response += '\n' 33 | pattern = r'Reason: (.*?)\nItem: (.*?)\n' 34 | matches = re.findall(pattern, response, re.DOTALL) 35 | if len(matches) != 1: 36 | print("[split_user_rec_reponse]can not split, response = ", response) 37 | return None, None 38 | match = matches[0] 39 | return match[0].strip(), match[1].strip() 40 | 41 | def split_user_ab_response(response): 42 | response += '\n' 43 | pattern = r'Reason: (.*?)\nDecision: (.*?)\n' 44 | matches = re.findall(pattern, response, re.DOTALL) 45 | if len(matches) != 1: 46 | print("[split_user_ab_reponse]can not split, response = ", response) 47 | return None, None 48 | 49 | match = matches[0] 50 | if match[1].lower().startswith('yes'): 51 | return match[0].strip(), 1 52 | elif match[1].lower().startswith('no'): 53 | return match[0].strip(), 0 54 | else: 55 | print("[split_user_ab_reponse]can not find flag, response = ", response) 56 | return None, None 57 | 58 | def split_prior_rec_response(response): 59 | response += '\n' 60 | pattern = r'Item: (.*?)\n' 61 | matches = re.findall(pattern, response, re.DOTALL) 62 | if len(matches) != 1: 63 | print("[split_prior_rec_response]can not split, response = ", response) 64 | return None 65 | match = matches[0] 66 | return match.strip() 67 | 68 | def split_prior_llama3_response(response): 69 | pattern = r'Item: (.*?)<\|eot_id\|>' 70 | matches = re.findall(pattern, response, re.DOTALL) 71 | if len(matches) != 1: 72 | print("[split_prior_llama3_response]can not split,try split2, response = ", response) 73 | return split_prior_rec_response(response) 74 | match = matches[0] 75 | return match.strip() -------------------------------------------------------------------------------- /constant/lastfm_ab_model_prompt.py: -------------------------------------------------------------------------------- 1 | #user agent 2 | user_system_prompt='''As a music listener, you've listened to the following music artists: {}. 3 | Given a music artist, please judge whether you like it or not. 4 | What's more, a reward model scores the music artist based on its relevance to your historical listening records. 5 | 6 | Some useful tips: 7 | 1. You need to first give the reasons, and then judge whether you like the given music artist or not. 8 | 2. Only use "yes" to indicate that you like the music artist, and use "no" to indicate that you dislike it. 9 | 3. The score may be positive or negative, with higher scores indicating that the given music artist is more relevant to your historical listening records. 10 | 4. You can refer to the score given by the reward model, but it is not entirely accurate and should not be blindly trusted. 11 | 5. Do not simply assume that a negative score means you dislike the given music artist. 12 | 6. Summarize your own interests based on your historical listening records to make a judgment. 13 | 14 | You must follow this output format: 15 | Reason: 16 | Decision: 17 | ''' 18 | 19 | user_user_prompt='''The given music artist is: {}. 20 | The score given by the reward model is: {} 21 | Please judge whether you like it or not. 22 | ''' 23 | 24 | user_memory_system_prompt='''As a music listener, you've listened to the following music artists: {}. 25 | Previously, a recommendation system attempted to select your favorite music artist from a list of music artist candidates. 26 | The music artist candidates are: {}. 27 | And then you saved the communication history between you and the recommendation system. 28 | Here is the communication history between you and the recommendation system: 29 | {} 30 | Now, given a music artist, please judge whether you like it or not. 31 | What's more, a reward model scores the music artist based on its relevance to your historical listening records. 32 | 33 | Some useful tips: 34 | 1. You need to first give the reasons, and then judge whether you like the given music artist or not. 35 | 2. Only use "yes" to indicate that you like the music artist, and use "no" to indicate that you dislike it. 36 | 3. The score may be positive or negative, with higher scores indicating that the given music artist is more relevant to your historical listening records. 37 | 4. You can refer to the score given by the reward model, but it is not entirely accurate and should not be blindly trusted. 38 | 5. Do not simply assume that a negative score means you dislike the given music artist. 39 | 6. Summarize your own interests based on your historical listening records and your communication history to make a judgment. 40 | 41 | You must follow this output format: 42 | Reason: 43 | Decision: 44 | ''' 45 | 46 | user_memory_user_prompt='''The given music artist is: {}. 47 | The score given by the reward model is: {} 48 | Based on the above information, please judge whether you like it or not. 49 | ''' 50 | 51 | user_build_memory='''In round {}, the recommended music artist is {}. 52 | The reason given by the recommendation system is: {} 53 | The reason you provided for not considering this the best recommendation is {} 54 | ''' 55 | user_build_memory_2='''In round {}, the recommended music artist is {}. 56 | The reason given by the recommendation system is: {} 57 | ''' -------------------------------------------------------------------------------- /dataset/lastfm_dataset.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import os 3 | import torch.utils.data as data 4 | 5 | import pandas as pd 6 | import random 7 | 8 | class LastfmDataset(data.Dataset): 9 | def __init__(self, data_dir=r'./data/lastfm',stage=None,cans_num=10,sep=", ",no_augment=True): 10 | self.data_dir = data_dir 11 | self.cans_num = cans_num 12 | self.stage = stage 13 | self.sep = sep 14 | self.aug = (stage=='train') and not no_augment 15 | self.padding_item_id=4606 16 | self.check_files() 17 | 18 | def __len__(self): 19 | return len(self.session_data['seq']) 20 | 21 | def __getitem__(self, i): 22 | temp = self.session_data.iloc[i] 23 | candidates = self.negative_sampling(temp['seq_unpad'],temp['next']) 24 | cans_name=[self.item_id2name[can] for can in candidates] 25 | sample = { 26 | 'id': i, 27 | 'seq': temp['seq'], 28 | 'seq_name': temp['seq_title'], 29 | 'len_seq': temp['len_seq'], 30 | 'seq_str': self.sep.join(temp['seq_title']), 31 | 'cans': candidates, 32 | 'cans_name': cans_name, 33 | 'cans_str': self.sep.join(cans_name), 34 | 'len_cans': self.cans_num, 35 | 'item_id': temp['next'], 36 | 'item_name': temp['next_item_name'], 37 | 'correct_answer': temp['next_item_name'] 38 | } 39 | return sample 40 | 41 | def negative_sampling(self,seq_unpad,next_item): 42 | canset=[i for i in list(self.item_id2name.keys()) if i not in seq_unpad and i!=next_item] 43 | candidates=random.sample(canset, self.cans_num-1)+[next_item] 44 | random.shuffle(candidates) 45 | return candidates 46 | 47 | def check_files(self): 48 | self.item_id2name=self.get_music_id2name() 49 | if self.stage=='train': 50 | filename="train_data.df" 51 | elif self.stage=='val': 52 | filename="Val_data.df" 53 | elif self.stage=='test': 54 | filename="Test_data.df" 55 | data_path=os.path.join(self.data_dir, filename) 56 | self.session_data = self.session_data4frame(data_path, self.item_id2name) 57 | 58 | 59 | def get_music_id2name(self): 60 | music_id2name = dict() 61 | item_path=os.path.join(self.data_dir, 'id2name.txt') 62 | with open(item_path, 'r') as f: 63 | for l in f.readlines(): 64 | ll = l.strip('\n').split('::') 65 | music_id2name[int(ll[0])] = ll[1].strip() 66 | return music_id2name 67 | 68 | def session_data4frame(self, datapath, music_id2name): 69 | train_data = pd.read_pickle(datapath) 70 | train_data = train_data[train_data['len_seq'] >= 3] 71 | def remove_padding(xx): 72 | x = xx[:] 73 | for i in range(10): 74 | try: 75 | x.remove(self.padding_item_id) 76 | except: 77 | break 78 | return x 79 | train_data['seq_unpad'] = train_data['seq'].apply(remove_padding) 80 | def seq_to_title(x): 81 | return [music_id2name[x_i] for x_i in x] 82 | train_data['seq_title'] = train_data['seq_unpad'].apply(seq_to_title) 83 | def next_item_title(x): 84 | return music_id2name[x] 85 | train_data['next_item_name'] = train_data['next'].apply(next_item_title) 86 | return train_data -------------------------------------------------------------------------------- /afl/SASRecModules_ori.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | import torch.nn.functional as F 4 | 5 | 6 | 7 | class PositionwiseFeedForward(nn.Module): 8 | def __init__(self, d_in, d_hid, dropout=0.1): 9 | super().__init__() 10 | self.w_1 = nn.Conv1d(d_in, d_hid, 1) 11 | self.w_2 = nn.Conv1d(d_hid, d_in, 1) 12 | self.layer_norm = nn.LayerNorm(d_in) 13 | self.dropout = nn.Dropout(dropout) 14 | 15 | def forward(self, x): 16 | residual = x 17 | output = x.transpose(1, 2) 18 | output = self.w_2(F.relu(self.w_1(output))) 19 | output = output.transpose(1, 2) 20 | output = self.dropout(output) 21 | output = self.layer_norm(output + residual) 22 | return output 23 | 24 | 25 | 26 | class MultiHeadAttention(nn.Module): 27 | def __init__(self, hidden_size, num_units, num_heads, dropout_rate): 28 | super().__init__() 29 | self.hidden_size = hidden_size 30 | self.num_heads = num_heads 31 | assert hidden_size % num_heads == 0 32 | 33 | self.linear_q = nn.Linear(hidden_size, num_units) 34 | self.linear_k = nn.Linear(hidden_size, num_units) 35 | self.linear_v = nn.Linear(hidden_size, num_units) 36 | self.dropout = nn.Dropout(dropout_rate) 37 | self.softmax = nn.Softmax(dim=-1) 38 | 39 | 40 | def forward(self, queries, keys): 41 | """ 42 | :param queries: A 3d tensor with shape of [N, T_q, C_q] 43 | :param keys: A 3d tensor with shape of [N, T_k, C_k] 44 | 45 | :return: A 3d tensor with shape of (N, T_q, C) 46 | 47 | """ 48 | Q = self.linear_q(queries) # (N, T_q, C) 49 | K = self.linear_k(keys) # (N, T_k, C) 50 | V = self.linear_v(keys) # (N, T_k, C) 51 | 52 | # Split and Concat 53 | split_size = self.hidden_size // self.num_heads 54 | Q_ = torch.cat(torch.split(Q, split_size, dim=2), dim=0) # (h*N, T_q, C/h) 55 | K_ = torch.cat(torch.split(K, split_size, dim=2), dim=0) # (h*N, T_k, C/h) 56 | V_ = torch.cat(torch.split(V, split_size, dim=2), dim=0) # (h*N, T_k, C/h) 57 | 58 | # Multiplication 59 | matmul_output = torch.bmm(Q_, K_.transpose(1, 2)) / self.hidden_size ** 0.5 # (h*N, T_q, T_k) 60 | 61 | # Key Masking 62 | key_mask = torch.sign(torch.abs(keys.sum(dim=-1))).repeat(self.num_heads, 1) # (h*N, T_k) 63 | key_mask_reshaped = key_mask.unsqueeze(1).repeat(1, queries.shape[1], 1) # (h*N, T_q, T_k) 64 | key_paddings = torch.ones_like(matmul_output) * (-2 ** 32 + 1) 65 | matmul_output_m1 = torch.where(torch.eq(key_mask_reshaped, 0), key_paddings, matmul_output) # (h*N, T_q, T_k) 66 | 67 | # Causality - Future Blinding 68 | diag_vals = torch.ones_like(matmul_output[0, :, :]) # (T_q, T_k) 69 | tril = torch.tril(diag_vals) # (T_q, T_k) 70 | causality_mask = tril.unsqueeze(0).repeat(matmul_output.shape[0], 1, 1) # (h*N, T_q, T_k) 71 | causality_paddings = torch.ones_like(causality_mask) * (-2 ** 32 + 1) 72 | matmul_output_m2 = torch.where(torch.eq(causality_mask, 0), causality_paddings, matmul_output_m1) # (h*N, T_q, T_k) 73 | 74 | # Activation 75 | matmul_output_sm = self.softmax(matmul_output_m2) # (h*N, T_q, T_k) 76 | 77 | # Query Masking 78 | query_mask = torch.sign(torch.abs(queries.sum(dim=-1))).repeat(self.num_heads, 1) # (h*N, T_q) 79 | query_mask = query_mask.unsqueeze(-1).repeat(1, 1, keys.shape[1]) # (h*N, T_q, T_k) 80 | matmul_output_qm = matmul_output_sm * query_mask 81 | 82 | # Dropout 83 | matmul_output_dropout = self.dropout(matmul_output_qm) 84 | 85 | # Weighted Sum 86 | output_ws = torch.bmm(matmul_output_dropout, V_) # ( h*N, T_q, C/h) 87 | 88 | # Restore Shape 89 | output = torch.cat(torch.split(output_ws, output_ws.shape[0] // self.num_heads, dim=0), dim=2) # (N, T_q, C) 90 | 91 | # Residual Connection 92 | output_res = output + queries 93 | 94 | return output_res 95 | -------------------------------------------------------------------------------- /data/prior_lastfm/SASRec.csv: -------------------------------------------------------------------------------- 1 | id,generate,real 2 | 0,Maximum the Hormone,Runner Runner 3 | 1,Deep Purple,Peter Murphy 4 | 2,Nelly,Pat Metheny 5 | 3,Buckcherry,ABBA 6 | 4,Black Veil Brides,Black Veil Brides 7 | 5,The Troggs,The Troggs 8 | 6,Shakira,Shakira 9 | 7,Velvet Revolver,Velvet Revolver 10 | 8,Laura Pausini,Emily Osment 11 | 9,Pulp,Slash 12 | 10,TERIYAKI BOYZ,TERIYAKI BOYZ 13 | 11,You Me At Six,Nicki Minaj 14 | 12,Nightmare of You,Finger Eleven 15 | 13,Charlie Clouser,Rusko 16 | 14,Helloween,Porter 17 | 15,Avenged Sevenfold,Avenged Sevenfold 18 | 16,UFO,Moving Mountains 19 | 17,From Autumn to Ashes,Nocturnal Depression 20 | 18,Joan Jett and the Blackhearts,Joan Jett and the Blackhearts 21 | 19,The Mamas & The Papas,Perry Como 22 | 20,New York Dolls,Graforréia Xilarmônica 23 | 21,Natalia Kills,Natalia Kills 24 | 22,Adam and the Ants,Adam and the Ants 25 | 23,Aly & AJ,Kristine Elezaj 26 | 24,Architects,Anna Calvi 27 | 25,Toto,Toto 28 | 26,The Presidents of the United States of America,Pat Benatar 29 | 27,Bill Laswell,Israel Kamakawiwo'ole 30 | 28,Paula Abdul,Paula Abdul 31 | 29,Hayden Panettiere,Alex Gaudino 32 | 30,Shakira,Shakira 33 | 31,Heaven Shall Burn,Fiona Apple 34 | 32,Colby O'Donis,Wilco 35 | 33,BrokeNCYDE,Emilie Autumn 36 | 34,Wham!,Cash Cash 37 | 35,Faces,The Number Twelve Looks Like You 38 | 36,Farid Farjad,Farid Farjad 39 | 37,The Wreckers,Washed Out 40 | 38,Lusine,Draconian 41 | 39,Eurythmics,Various Artists 42 | 40,Nevermore,Trouble 43 | 41,Pet Shop Boys,Wanessa 44 | 42,Deep Purple,Danzig 45 | 43,High on Fire,Erin McCarley 46 | 44,Eddie Money,Nazareth 47 | 45,Deltron 3030,Karl Wolf 48 | 46,Triumph,Triumph 49 | 47,The Bravery,Sumatra 50 | 48,Attack Attack!,Rebecca Black 51 | 49,Jane's Addiction,Strapping Young Lad 52 | 50,Jennifer Lopez,Robert Pattinson 53 | 51,New Kids on the Block,Natalia Kills 54 | 52,Anna Ternheim,Anna Ternheim 55 | 53,Cinderella,Cinderella 56 | 54,Goran Bregović,Deborah Blando 57 | 55,Death,Death 58 | 56,Sara Evans,The Outfield 59 | 57,Metric,4 Non Blondes 60 | 58,Every Time I Die,Decoder 61 | 59,13th Floor Elevators,Animosity 62 | 60,Rage Against the Machine,Saving Abel 63 | 61,Dave Matthews Band,Lupe Fiasco 64 | 62,Alice in Videoland,Darvin 65 | 63,Someone Still Loves You Boris Yeltsin,Decoder 66 | 64,Def Leppard,Pagoda 67 | 65,Billy Squier,Billy Squier 68 | 66,The Damned,Museum 69 | 67,Kelly Clarkson,Dulce María 70 | 68,Cypress Hill,Sugarplum Fairy 71 | 69,The Pretty Reckless,The Pretty Reckless 72 | 70,Michelle Branch,Rebecca Black 73 | 71,Cacophony,Cacophony 74 | 72,Edwin McCain,Sascha Funke 75 | 73,From Autumn to Ashes,Janelle Monáe 76 | 74,The Skatalites,Puddle of Mudd 77 | 75,Maná,The Letter Black 78 | 76,Spice Girls,Дима Билан 79 | 77,Johnny Cash,India.Arie 80 | 78,Pato Fu,Ólafur Arnalds 81 | 79,The Bangles,Cody Simpson 82 | 80,Wendy Carlos,Wendy Carlos 83 | 81,Vampire Weekend,Rebecca Black 84 | 82,Remy Zero,The Postal Service 85 | 83,Trey Gunn,Trey Gunn 86 | 84,Miley Cyrus,Miley Cyrus 87 | 85,The Mamas & The Papas,Die Toten Hosen 88 | 86,Autechre,Mumm-Ra 89 | 87,Sigur Rós,Plain White T's 90 | 88,OK Go,Hole 91 | 89,I Blame Coco,I Blame Coco 92 | 90,P!nk,Dead Poetic 93 | 91,Rush,The Animals 94 | 92,Dixie Chicks,Puddle of Mudd 95 | 93,Mary J. Blige,New Kids on the Block 96 | 94,Death from Above 1979,Restart 97 | 95,Bauhaus,Melanie Fiona 98 | 96,The Boo Radleys,The Big Pink 99 | 97,Robyn,Robyn 100 | 98,Aqualung,Steps 101 | 99,Adorable,Dexys Midnight Runners 102 | 100,Matthew Dear,Matthew Dear 103 | 101,Angelspit,Copacabana Club 104 | 102,Belle and Sebastian,The xx 105 | 103,Gerry Rafferty,Your Demise 106 | 104,Audion,VFSix 107 | 105,X-Mal Deutschland,Grace Potter and the Nocturnals 108 | 106,Good Charlotte,Willow Smith 109 | 107,HEARTSREVOLUTION,HEARTSREVOLUTION 110 | 108,Nicki Minaj,Nicki Minaj 111 | 109,Safri Duo,Skrillex 112 | 110,Phil Collins,Circle Jerks 113 | 111,Victoria Beckham,Tricky 114 | 112,t.A.T.u.,Miranda Cosgrove 115 | 113,Spice Girls,Spice Girls 116 | 114,Cher,Cher 117 | 115,The Horrors,The Horrors 118 | 116,Megadeth,Megadeth 119 | 117,Jeffree Star,Hurts 120 | 118,Philip Glass,Farid Farjad 121 | 119,Borknagar,Esmée Denters 122 | 120,Sebastian Bach,Sebastian Bach 123 | 121,Shakira,Shakira 124 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | share/python-wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | MANIFEST 28 | 29 | # PyInstaller 30 | # Usually these files are written by a python script from a template 31 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 32 | *.manifest 33 | *.spec 34 | 35 | # Installer logs 36 | pip-log.txt 37 | pip-delete-this-directory.txt 38 | 39 | # Unit test / coverage reports 40 | htmlcov/ 41 | .tox/ 42 | .nox/ 43 | .coverage 44 | .coverage.* 45 | .cache 46 | nosetests.xml 47 | coverage.xml 48 | *.cover 49 | *.py,cover 50 | .hypothesis/ 51 | .pytest_cache/ 52 | cover/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | .pybuilder/ 76 | target/ 77 | 78 | # Jupyter Notebook 79 | .ipynb_checkpoints 80 | 81 | # IPython 82 | profile_default/ 83 | ipython_config.py 84 | 85 | # pyenv 86 | # For a library or package, you might want to ignore these files since the code is 87 | # intended to run in multiple environments; otherwise, check them in: 88 | # .python-version 89 | 90 | # pipenv 91 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 92 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 93 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 94 | # install all needed dependencies. 95 | #Pipfile.lock 96 | 97 | # UV 98 | # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. 99 | # This is especially recommended for binary packages to ensure reproducibility, and is more 100 | # commonly ignored for libraries. 101 | #uv.lock 102 | 103 | # poetry 104 | # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. 105 | # This is especially recommended for binary packages to ensure reproducibility, and is more 106 | # commonly ignored for libraries. 107 | # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control 108 | #poetry.lock 109 | 110 | # pdm 111 | # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. 112 | #pdm.lock 113 | # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it 114 | # in version control. 115 | # https://pdm.fming.dev/latest/usage/project/#working-with-version-control 116 | .pdm.toml 117 | .pdm-python 118 | .pdm-build/ 119 | 120 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm 121 | __pypackages__/ 122 | 123 | # Celery stuff 124 | celerybeat-schedule 125 | celerybeat.pid 126 | 127 | # SageMath parsed files 128 | *.sage.py 129 | 130 | # Environments 131 | .env 132 | .venv 133 | env/ 134 | venv/ 135 | ENV/ 136 | env.bak/ 137 | venv.bak/ 138 | 139 | # Spyder project settings 140 | .spyderproject 141 | .spyproject 142 | 143 | # Rope project settings 144 | .ropeproject 145 | 146 | # mkdocs documentation 147 | /site 148 | 149 | # mypy 150 | .mypy_cache/ 151 | .dmypy.json 152 | dmypy.json 153 | 154 | # Pyre type checker 155 | .pyre/ 156 | 157 | # pytype static type analyzer 158 | .pytype/ 159 | 160 | # Cython debug symbols 161 | cython_debug/ 162 | 163 | # PyCharm 164 | # JetBrains specific template is maintained in a separate JetBrains.gitignore that can 165 | # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore 166 | # and can be added to the global gitignore or merged into this file. For a more nuclear 167 | # option (not recommended) you can uncomment the following to ignore the entire idea folder. 168 | #.idea/ 169 | 170 | # Ruff stuff: 171 | .ruff_cache/ 172 | 173 | # PyPI configuration file 174 | .pypirc 175 | -------------------------------------------------------------------------------- /constant/lastfm_prior_model_prompt.py: -------------------------------------------------------------------------------- 1 | # rec 2 | rec_system_prompt='''You are a music artist recommendation system. 3 | Refine the user's listening history to predict the most likely music artist they will listen to next from a selection of candidates. 4 | Another recommendation system has provided its recommended music artist, which you can refer to. 5 | 6 | Some useful tips: 7 | 1. You need to first give the reasons, and then provide the recommended music artist. 8 | 2. The music artist you recommend must be in the candidate list. 9 | 10 | You must follow this output format: 11 | Reason: 12 | Item: 13 | 14 | ''' 15 | 16 | rec_user_prompt='''This user has listened to {} in the previous. 17 | Given the following {} music artists: {}, you should recommend one music artist for this user to listen to next. 18 | The music artist recommended by another recommendation system is: {}. 19 | Based on the above information, you can select the music artist recommended by another recommendation system or choose other music artists. 20 | ''' 21 | 22 | rec_memory_system_prompt='''You are a music artist recommendation system. 23 | Refine the user's listening history to predict the most likely music artist they will listen to next from a selection of candidates. 24 | However, the user might feel that the music artist you recommended is not their top choice from the list of candidates. 25 | Based on the above information, select the best music artist again from the candidate list. 26 | 27 | Some useful tips: 28 | 1. You need to first give the reasons, and then provide the recommended music artist. 29 | 2. The music artist you recommend must be in the candidate list. 30 | 31 | You must follow this output format: 32 | Reason: 33 | Item: 34 | 35 | ''' 36 | 37 | rec_memory_user_prompt='''This user has listened to {} in the previous. 38 | Given the following {} music artists: {}, you should recommend one music artist for this user to listen to next. 39 | Here are the music artists you previously recommended and the reasons why the user thinks they are not the best choices: 40 | {} 41 | 42 | Based on the above information, select the best music artist again from the candidate list. 43 | ''' 44 | 45 | # user 46 | user_system_promt='''As a music listener, you've listened to the following music artists: {}. 47 | The music artist you might like is: {}. 48 | Now, a recommendation system has recommended a music artist to you from a list of music artist candidates, and has provided the reason for the recommendation. 49 | Determine if this recommended music artist is the most preferred option from the list of candidates based on your personal tastes and previous listening records. 50 | 51 | Some useful tips: 52 | 1. You need to first give the reasons, and then decide whether or not the recommended music artist is the most preferred one on the candidate list for you. 53 | 2. Use "yes" to indicate that it is the best recommendation, and use "no" to indicate that it is not. 54 | 3. Summarize your own interests based on your historical listening records to make a judgment. 55 | 56 | You must follow this output format: 57 | Reason: 58 | Decision: 59 | 60 | ''' 61 | 62 | user_user_prompt='''The list of candidate music artists is: {}. 63 | You can focus on considering these music artists: {}. 64 | The music artist recommended by the recommendation system is: {}. 65 | The reason provided by the recommendation system is: {} 66 | Please determine if the recommended music artist is the most preferred one on the candidate list for you. 67 | ''' 68 | 69 | user_memory_system_prompt='''As a music listener, you've listened to the following music artists: {}. 70 | The music artist you might like is: {}. 71 | Previously, a recommendation system attempted to select your favorite music artist from a list of music artist candidates and provided the reasons. 72 | However, you think that the recommended music artist is not the optimal choice from the candidate list and have provided reasons for this belief. 73 | Now, the recommendation system has once again recommended a music artist and provided its reasons. 74 | Please determine if the recommended music artist is the most preferred one on the candidate list for you. 75 | 76 | Some useful tips: 77 | 1. You need to first give the reasons, and then decide whether or not the recommended music artist is the most preferred one on the candidate list for you. 78 | 2. Only use "yes" to indicate that it is the best recommendation, and use "no" to indicate that it is not. 79 | 3. Summarize your own interests based on your historical listening records to make a judgment. 80 | 81 | You must follow this output format: 82 | Reason: 83 | Decision: 84 | 85 | ''' 86 | 87 | user_memory_user_prompt='''The list of candidate music artists is: {}. 88 | You can focus on considering these music artists: {}. 89 | Here are the music artists previously recommended by the recommendation system and the reasons for these recommendations, along with your reasons for thinking that the recommended music artists were not the best choices: 90 | {} 91 | 92 | Now, the new music artist recommended by the recommendation system is: {}. 93 | The recommendation system provides the following reason: {} 94 | Based on the above information, please determine if the newly recommended music artist is the most preferred one on the candidate list for you. 95 | 96 | ''' 97 | 98 | # build memory 99 | rec_build_memory='''In round {}, the music artist you recommended is {}. 100 | The reason you gave for the recommendation is: {} 101 | The reason the user provided for not considering this to be the best recommendation is: {} 102 | ''' 103 | user_build_memory='''In round {}, the recommended music artist is {}. 104 | The reason given by the recommendation system is: {} 105 | The reason you provided for not considering this the best recommendation is {} 106 | ''' 107 | user_build_memory_2='''In round {}, the recommended music artist is {}. 108 | The reason given by the recommendation system is: {} 109 | ''' 110 | 111 | -------------------------------------------------------------------------------- /afl/evaluate_user_step2.py: -------------------------------------------------------------------------------- 1 | import os 2 | import time 3 | import argparse 4 | import json 5 | import jsonlines 6 | 7 | from tqdm import tqdm 8 | import random 9 | from torch.utils.data import Dataset, DataLoader 10 | import multiprocessing 11 | import sys 12 | current_dir = os.path.dirname(os.path.abspath(__file__)) 13 | parent_dir = os.path.dirname(current_dir) 14 | sys.path.append(parent_dir) 15 | 16 | from dataset.lastfmAB_dataset import LastfmABDataset 17 | from utils.regular_function import split_user_ab_response 18 | from utils.rw_process import append_jsonl 19 | from utils.agent import UserModelAgent 20 | 21 | TP_sum = 0 22 | FN_sum = 0 23 | FP_sum = 0 24 | TN_sum = 0 25 | total = 0 26 | recall_list = [] 27 | precision_list = [] 28 | def get_args(): 29 | parser = argparse.ArgumentParser() 30 | parser.add_argument('--data_dir', type=str) 31 | parser.add_argument("--load_info",action="store_true") 32 | parser.add_argument('--model_path', type=str, default=None) 33 | parser.add_argument('--info_dir', type=str, default='') 34 | parser.add_argument('--init_num', type=int, default=10) 35 | parser.add_argument('--train_cans_num', type=int, default=10) 36 | parser.add_argument('--eval_cans_num', type=int, default=20) 37 | parser.add_argument('--a_ratio', type=int, default=1) 38 | parser.add_argument('--b_ratio', type=int, default=1) 39 | parser.add_argument('--stage', type=str, default='test') 40 | parser.add_argument('--sep', type=str, default=', ') 41 | parser.add_argument('--output_file', type=str) 42 | parser.add_argument('--model', type=str, default='') 43 | parser.add_argument('--api_key', type=str) 44 | parser.add_argument('--max_retry_num', type=int, default=5) 45 | parser.add_argument('--seed', type=int, default=333) 46 | parser.add_argument('--mp', type=int, default=1) 47 | parser.add_argument('--temperature', type=float, default=0.0) 48 | return parser.parse_args() 49 | 50 | def recommend(data, args): 51 | start_time = time.time() 52 | user_agent = UserModelAgent(args, 'pred') 53 | pred_label = [] 54 | # load memory 55 | if args.load_info: 56 | file_path = os.path.join(args.info_dir, f"{data['id']}.jsonl") 57 | 58 | user_agent.load_memory(file_path) 59 | score_dict =user_agent.score(data['init_pad'], data['len_init'], data['eval_cans_id']) 60 | 61 | for index, next_item in enumerate(data['eval_cans_title']): 62 | pred_data = data.copy() 63 | pred_data['pred_item'] = next_item 64 | if next_item in score_dict: 65 | score = score_dict[next_item] 66 | else: 67 | score = min(score_dict.values()) 68 | idx = 0 69 | while idx < 5: 70 | pred_user_response = user_agent.pred_model(pred_data, score) 71 | pred_reason, pred_res = split_user_ab_response(pred_user_response) 72 | if pred_res is not None: 73 | break 74 | idx += 1 75 | 76 | if pred_res is not None: 77 | pred_label.append(pred_res) 78 | else: 79 | y_t = data['label'][index] 80 | print("API request error. Adding 'false' label.") 81 | pred_label.append(1 - y_t) 82 | print("label list = ", pred_label) 83 | end_time = time.time() 84 | print("pred time = ", end_time - start_time) 85 | # evaluation 86 | return data, pred_label, args 87 | 88 | def setcallback(x): 89 | global TP_sum, FN_sum, FP_sum, TN_sum 90 | global accuracy_list, recall_list, precision_list 91 | 92 | data, y_pred, args = x 93 | #save 94 | new_data = {'id':data['id'], 'init_title':data['init_title'],'pred_title':data['pred_title'],'label':data['label'],'y_pred':y_pred} 95 | append_jsonl(args.output_file, new_data) 96 | y_true = data['label'] 97 | #cal 98 | TP = sum((yt == 1 and yp == 1) for yt, yp in zip(y_true, y_pred)) 99 | FN = sum((yt == 1 and yp == 0) for yt, yp in zip(y_true, y_pred)) 100 | FP = sum((yt == 0 and yp == 1) for yt, yp in zip(y_true, y_pred)) 101 | TN = sum((yt == 0 and yp == 0) for yt, yp in zip(y_true, y_pred)) 102 | 103 | TP_sum += TP 104 | FN_sum += FN 105 | FP_sum += FP 106 | TN_sum += TN 107 | try: 108 | recall = TP / (TP + FN) 109 | recall_list.append(recall) 110 | except Exception as e: 111 | recall = None 112 | try: 113 | precision = TP / (TP + FP) 114 | precision_list.append(precision) 115 | except Exception as e: 116 | precision = None 117 | print("==============") 118 | print(f"Recall: {recall}") 119 | print(f"Precision: {precision}") 120 | print("==============") 121 | 122 | 123 | def main(args): 124 | global TP_sum, FN_sum, FP_sum, TN_sum 125 | global accuracy_list, recall_list, precision_list 126 | if os.path.exists(args.output_file): 127 | os.remove(args.output_file) 128 | 129 | if 'lastfm' in args.data_dir: 130 | dataset = LastfmABDataset(args.init_num, args.train_cans_num, args.eval_cans_num, args.a_ratio, args.b_ratio, args.data_dir, args.stage, args.sep) 131 | else: 132 | raise ValueError("Invalid dataset name.") 133 | 134 | global total 135 | data_list = [] 136 | for data in tqdm(dataset): 137 | data_list.append(data) 138 | pool = multiprocessing.Pool(args.mp) 139 | total = len(data_list) 140 | for data in tqdm(data_list): 141 | pool.apply_async(func=recommend, args=(data, args), callback=setcallback) 142 | pool.close() 143 | pool.join() 144 | 145 | print("================================global================================") 146 | global_recall = TP_sum / (TP_sum + FN_sum) 147 | global_precision = TP_sum / (TP_sum + FP_sum) 148 | print("global recall = ", global_recall) 149 | print("global precision = ", global_precision) 150 | print("==============================avg==================================") 151 | avg_recall = sum(recall_list) / len(recall_list) 152 | avg_precision = sum(precision_list) / len(precision_list) 153 | print("avg recall = ", avg_recall) 154 | print("avg precision = ", avg_precision) 155 | 156 | if __name__ == '__main__': 157 | args = get_args() 158 | random.seed(args.seed) 159 | main(args) -------------------------------------------------------------------------------- /afl/evaluate_rec.py: -------------------------------------------------------------------------------- 1 | import os 2 | import time 3 | import argparse 4 | import json 5 | import jsonlines 6 | 7 | from tqdm import tqdm 8 | import random 9 | from torch.utils.data import Dataset, DataLoader 10 | import multiprocessing 11 | import sys 12 | current_dir = os.path.dirname(os.path.abspath(__file__)) 13 | parent_dir = os.path.dirname(current_dir) 14 | sys.path.append(parent_dir) 15 | 16 | from dataset.lastfm_dataset import LastfmDataset 17 | 18 | from utils.regular_function import split_user_response, split_rec_reponse 19 | from utils.rw_process import append_jsonl 20 | from utils.agent import RecAgent, UserModelAgent 21 | from utils.model import SASRec 22 | finish_num = 0 23 | total = 0 24 | correct = 0 25 | def get_args(): 26 | parser = argparse.ArgumentParser() 27 | parser.add_argument('--data_dir', type=str, default='') 28 | parser.add_argument('--model_path', type=str, default=None) 29 | parser.add_argument('--prior_file', type=str, default='') 30 | parser.add_argument('--stage', type=str, default='test') 31 | parser.add_argument('--cans_num', type=int, default=20) 32 | parser.add_argument('--sep', type=str, default=', ') 33 | parser.add_argument('--max_epoch', type=int, default=1) 34 | parser.add_argument('--output_file', type=str) 35 | parser.add_argument('--model', type=str, default='') 36 | parser.add_argument('--api_key', type=str) 37 | parser.add_argument('--max_retry_num', type=int, default=5) 38 | parser.add_argument('--seed', type=int, default=333) 39 | parser.add_argument('--mp', type=int, default=1) 40 | parser.add_argument('--temperature', type=float, default=0.0) 41 | parser.add_argument("--save_info",action="store_true") 42 | parser.add_argument("--save_rec_dir", type=str, default=None) 43 | parser.add_argument("--save_user_dir", type=str, default=None) 44 | return parser.parse_args() 45 | 46 | def recommend(data, args): 47 | start_time = time.time() 48 | rec_agent = RecAgent(args,'prior_rec') 49 | user_agent = UserModelAgent(args,'prior_rec') 50 | flag = False 51 | epoch = 1 52 | rec_item = None 53 | new_data_list = [] 54 | while flag == False and epoch <= args.max_epoch: 55 | #rec agent 56 | while True: 57 | rec_agent_response = rec_agent.act(data) 58 | rec_reason, rec_item = split_rec_reponse(rec_agent_response) 59 | if rec_item is not None: 60 | break 61 | if args.max_epoch == 1: 62 | new_data = {'id':data['id'],'seq_name':data['seq_name'], 'cans_name':data['cans_name'], 'correct_answer':data['correct_answer'], 'epoch':epoch, 'rec_res':rec_agent_response, 'user_res':None,'prior_answer':data['prior_answer']} 63 | new_data_list.append(new_data) 64 | 65 | memory_info = {"epoch":epoch, "rec_reason":rec_reason, "rec_item":rec_item, "user_reason":None} 66 | rec_agent.update_memory(memory_info) 67 | user_agent.update_memory(memory_info) 68 | break 69 | 70 | #user agent 71 | while True: 72 | user_agent_response = user_agent.act(data,rec_reason, rec_item) 73 | user_reason, flag = split_user_response(user_agent_response) 74 | if flag is not None: 75 | break 76 | 77 | # save 78 | new_data = {'id':data['id'],'seq_name':data['seq_name'], 'cans_name':data['cans_name'], 'correct_answer':data['correct_answer'], 'epoch':epoch, 'rec_res':rec_agent_response, 'user_res':user_agent_response,'prior_answer':data['prior_answer']} 79 | new_data_list.append(new_data) 80 | 81 | memory_info = {"epoch":epoch, "rec_reason":rec_reason, "rec_item":rec_item, "user_reason":user_reason} 82 | rec_agent.update_memory(memory_info) 83 | user_agent.update_memory(memory_info) 84 | #update 85 | if flag: 86 | break 87 | 88 | epoch += 1 89 | end_time = time.time() 90 | print("recommendation time = ", end_time - start_time) 91 | # save 92 | if args.save_info: 93 | rec_file_path = os.path.join(args.save_rec_dir, f"{data['id']}.jsonl") 94 | user_file_path = os.path.join(args.save_user_dir, f"{data['id']}.jsonl") 95 | rec_agent.save_memory(rec_file_path) 96 | user_agent.save_memory(user_file_path) 97 | # evaluate 98 | if rec_item.lower() == data['correct_answer'].lower().strip(): 99 | return new_data_list, 1, args 100 | else: 101 | return new_data_list, 0, args 102 | 103 | def setcallback(x): 104 | global finish_num 105 | global total 106 | global correct 107 | 108 | data_list, flag, args = x 109 | for data in data_list: 110 | append_jsonl(args.output_file, data) 111 | finish_num += 1 112 | correct += flag 113 | print("==============") 114 | print(f"current hit@1 = {correct} / {finish_num} = {correct/finish_num}") 115 | print(f"global hit@1 = {correct} / {total} = {correct/total}") 116 | print("==============") 117 | 118 | def main(args): 119 | if args.save_info and args.save_rec_dir is not None and not os.path.exists(args.save_rec_dir): 120 | os.makedirs(args.save_rec_dir) 121 | if args.save_info and args.save_user_dir is not None and not os.path.exists(args.save_user_dir): 122 | os.makedirs(args.save_user_dir) 123 | if os.path.exists(args.output_file): 124 | os.remove(args.output_file) 125 | if 'lastfm' in args.data_dir: 126 | dataset = LastfmDataset(args.data_dir, args.stage, args.cans_num, args.sep, True) 127 | global total 128 | data_list = [] 129 | print("data size = ", total) 130 | for data in tqdm(dataset): 131 | data_list.append(data) 132 | import pandas as pd 133 | prior_df = pd.read_csv(args.prior_file) 134 | prior_list = prior_df.to_dict('records') 135 | prior_dict = {} 136 | for data in prior_list: 137 | prior_dict[data['id']] = data 138 | 139 | merge_data_list = [] 140 | for data in data_list: 141 | generate = prior_dict[data['id']]['generate'] 142 | merge_data = data.copy() 143 | merge_data['prior_answer'] = generate 144 | merge_data_list.append(merge_data) 145 | pool = multiprocessing.Pool(args.mp) 146 | total = len(merge_data_list) 147 | for data in tqdm(merge_data_list): 148 | pool.apply_async(func=recommend, args=(data, args), callback=setcallback) 149 | pool.close() 150 | pool.join() 151 | 152 | if __name__ == '__main__': 153 | args = get_args() 154 | random.seed(args.seed) 155 | main(args) 156 | -------------------------------------------------------------------------------- /dataset/lastfmAB_dataset.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import os 3 | import torch.utils.data as data 4 | 5 | import pandas as pd 6 | import random 7 | import pickle 8 | 9 | class LastfmABDataset(data.Dataset): 10 | def __init__(self, res_num=10, train_cans_num=10,eval_cans_num=20,a_ratio=1,b_ratio=1,data_dir='./data/lastfm_ab', stage='test', sep=", "): 11 | #initialize 12 | self.data_dir = data_dir 13 | self.stage = stage 14 | self.sep = sep 15 | self.res_num = res_num 16 | self.train_cans_num = train_cans_num 17 | self.eval_cans_num = eval_cans_num 18 | self.a_ratio = a_ratio 19 | self.b_ratio = b_ratio 20 | self.padding_item_id=4606 21 | #calculate 22 | self.pred_num = int((a_ratio) / (a_ratio + b_ratio) * eval_cans_num) 23 | self.fake_num = int((b_ratio) / (a_ratio + b_ratio) * eval_cans_num) 24 | assert self.pred_num + self.fake_num == self.eval_cans_num, "[calculate] sum error" 25 | self.item_id2name = self.get_music_id2name() 26 | self.data = self.build_data() 27 | 28 | def __len__(self): 29 | return len(self.data['user_id']) 30 | 31 | def __getitem__(self, i): 32 | temp = self.data.iloc[i] 33 | train_cands = self.train_negative_sampling(temp['full_list'], temp['next']) 34 | train_cands_name = [self.item_id2name[id] for id in train_cands] 35 | eval_cands = self.eval_negative_sampling(temp['full_list'], temp['pred_list'], train_cands) 36 | eval_cands_name = [self.item_id2name[id] for id in eval_cands] 37 | label = [] 38 | for id in eval_cands: 39 | if id in temp['pred_list']: 40 | label.append(1) 41 | else: 42 | label.append(0) 43 | sample = { 44 | 'id':i, 45 | 'user_id':temp['user_id'], 46 | 'seq':temp['seq'], 47 | 'seq_name':temp['seq_title'], 48 | 'seq_str':self.sep.join(temp['seq_title']), 49 | 'len_seq':temp['len_seq'], 50 | 'init_id':temp['init_list'], 51 | 'init_title':temp['init_title_list'], 52 | 'init_str':self.sep.join(temp['init_title_list']), 53 | 'init_pad':temp['init_pad'], 54 | 'len_init':temp['len_init'], 55 | 'item_id':temp['next'], 56 | 'item_name':temp['next_item_title'], 57 | 'correct_answer':temp['next_item_title'], 58 | 'pred_id':temp['pred_list'], 59 | 'pred_title':temp['pred_title_list'], 60 | 'cans':train_cands, 61 | 'cans_name':train_cands_name, 62 | 'cans_str':self.sep.join(train_cands_name), 63 | 'len_cans':self.train_cans_num, 64 | 'eval_cans_id':eval_cands, 65 | 'eval_cans_title':eval_cands_name, 66 | 'eval_cans_str':self.sep.join(eval_cands_name), 67 | 'label':label 68 | } 69 | return sample 70 | 71 | def train_negative_sampling(self, full_list, next_item): 72 | canset = [i for i in list(self.item_id2name.keys()) if i not in full_list] 73 | candidates = random.sample(canset, self.train_cans_num - 1) + [next_item] 74 | random.shuffle(candidates) 75 | return candidates 76 | 77 | def eval_negative_sampling(self, full_list, pred_list, train_cans): 78 | canset = [i for i in list(self.item_id2name.keys()) if i not in full_list and i not in train_cans] 79 | candidates = random.sample(canset, self.fake_num) + pred_list 80 | random.shuffle(candidates) 81 | return candidates 82 | 83 | def get_music_id2name(self): 84 | music_id2name = dict() 85 | item_path=os.path.join(self.data_dir, 'id2name_AB_llara.txt') 86 | with open(item_path, 'r') as f: 87 | for l in f.readlines(): 88 | ll = l.strip('\n').split('::') 89 | music_id2name[int(ll[0])] = ll[1].strip() 90 | return music_id2name 91 | 92 | def build_data(self): 93 | if self.stage == 'test': 94 | file_name = "test_llara.pkl" 95 | data_path = os.path.join(self.data_dir, file_name) 96 | with open(data_path, 'rb') as file: 97 | data_list = pickle.load(file) 98 | data = pd.DataFrame(data_list) 99 | #function 100 | def split_seq_next(x): 101 | total_num = len(x) 102 | init_num = total_num - self.res_num 103 | seq_num = init_num - 1 104 | seq_list = x[:seq_num] 105 | next = x[seq_num] 106 | return (seq_list, next) 107 | 108 | def split_init_pred(x): 109 | total_num = len(x) 110 | init_num = total_num - self.res_num 111 | pred_num = self.pred_num 112 | assert init_num + pred_num <= total_num, "[split_init_pred]init + pred should be less than total " 113 | init_list = x[:init_num] 114 | pred_list = x[init_num:init_num + pred_num] 115 | return (init_list, pred_list) 116 | 117 | def seq_to_title(x): 118 | return [self.item_id2name[x_i] for x_i in x] 119 | 120 | def id_to_title(x): 121 | return self.item_id2name[x] 122 | def get_seq_len(x): 123 | return len(x) 124 | 125 | def pad_seq(x): 126 | pad_x = x.copy() 127 | while len(pad_x) < 10: 128 | pad_x.append(self.padding_item_id) 129 | return pad_x 130 | 131 | # train 132 | data['seq_unpad'] = data['artist_list'].apply(split_seq_next).apply(lambda x: x[0]) 133 | data['next'] = data['artist_list'].apply(split_seq_next).apply(lambda x: x[1]) 134 | data['seq'] = data['seq_unpad'].apply(pad_seq) 135 | data['len_seq'] = data['seq_unpad'].apply(get_seq_len) 136 | data['seq_title'] = data['seq_unpad'].apply(seq_to_title) 137 | data['next_item_title'] = data['next'].apply(id_to_title) 138 | # eval 139 | data['init_list'] = data['artist_list'].apply(split_init_pred).apply(lambda x: x[0]) 140 | data['init_pad'] = data['init_list'] .apply(pad_seq) 141 | data['len_init'] = data['init_list'].apply(get_seq_len) 142 | data['pred_list'] = data['artist_list'].apply(split_init_pred).apply(lambda x: x[1]) 143 | data['init_title_list'] = data['init_list'].apply(seq_to_title) 144 | data['pred_title_list'] = data['pred_list'].apply(seq_to_title) 145 | return data 146 | 147 | 148 | if __name__ == '__main__': 149 | dataset = LastfmABDataset() 150 | print("data example = \n", dataset[0]) -------------------------------------------------------------------------------- /afl/evaluate_user_step1.py: -------------------------------------------------------------------------------- 1 | import os 2 | import time 3 | import argparse 4 | import json 5 | import jsonlines 6 | 7 | from tqdm import tqdm 8 | import random 9 | from torch.utils.data import Dataset, DataLoader 10 | import multiprocessing 11 | import sys 12 | current_dir = os.path.dirname(os.path.abspath(__file__)) 13 | parent_dir = os.path.dirname(current_dir) 14 | sys.path.append(parent_dir) 15 | 16 | from dataset.lastfmAB_dataset import LastfmABDataset 17 | 18 | from utils.regular_function import split_user_ab_response, split_rec_reponse, split_user_response 19 | from utils.rw_process import append_jsonl, read_jsonl 20 | from utils.api_request import api_request 21 | from utils.agent import RecAgent, UserModelAgent 22 | from utils.model import SASRec 23 | 24 | finish_num = 0 25 | total = 0 26 | correct = 0 27 | 28 | def get_args(): 29 | parser = argparse.ArgumentParser() 30 | parser.add_argument('--data_dir', type=str) 31 | parser.add_argument('--init_num', type=int, default=10) 32 | parser.add_argument('--model_path', type=str, default=None) 33 | parser.add_argument('--prior_file', type=str, default='') 34 | parser.add_argument('--train_cans_num', type=int, default=10) 35 | parser.add_argument('--eval_cans_num', type=int, default=20) 36 | parser.add_argument('--a_ratio', type=int, default=1) 37 | parser.add_argument('--b_ratio', type=int, default=1) 38 | parser.add_argument('--stage', type=str, default='test') 39 | parser.add_argument('--sep', type=str, default=', ') 40 | parser.add_argument('--output_file', type=str) 41 | parser.add_argument('--model', type=str, default='') 42 | parser.add_argument('--api_key', type=str) 43 | parser.add_argument('--max_epoch', type=int, default=5) 44 | parser.add_argument('--max_retry_num', type=int, default=5) 45 | parser.add_argument('--seed', type=int, default=333) 46 | parser.add_argument('--mp', type=int, default=1) 47 | parser.add_argument('--temperature', type=float, default=0.0) 48 | parser.add_argument("--save_info",action="store_true") 49 | parser.add_argument("--save_rec_dir", type=str, default=None) 50 | parser.add_argument("--save_user_dir", type=str, default=None) 51 | return parser.parse_args() 52 | 53 | def recommend(data, args): 54 | start_time = time.time() 55 | rec_agent = RecAgent(args, 'prior_rec') 56 | user_agent = UserModelAgent(args, "prior_rec") 57 | flag = False 58 | epoch = 1 59 | rec_item = None 60 | new_data_list = [] 61 | while flag == False and epoch <= args.max_epoch: 62 | #rec agent: 63 | while True: 64 | rec_agent_response = rec_agent.act(data) 65 | rec_reason, rec_item = split_rec_reponse(rec_agent_response) 66 | if rec_item is not None: 67 | break 68 | if args.max_epoch == 1: 69 | new_data = {'id':data['id'],'seq_name':data['seq_name'], 'cans_name':data['cans_name'], 'correct_answer':data['correct_answer'], 'epoch':epoch, 'rec_res':rec_agent_response, 'user_res':None,'prior_answer':data['prior_answer']} 70 | new_data_list.append(new_data) 71 | 72 | memory_info = {"epoch":epoch, "rec_reason":rec_reason, "rec_item":rec_item, "user_reason":None} 73 | rec_agent.update_memory(memory_info) 74 | user_agent.update_memory(memory_info) 75 | break 76 | 77 | #user agent: 78 | while True: 79 | user_agent_response = user_agent.act(data,rec_reason, rec_item) 80 | user_reason, flag = split_user_response(user_agent_response) 81 | if flag is not None: 82 | break 83 | 84 | #save 85 | new_data = {'id':data['id'],'seq_name':data['seq_name'], 'cans_name':data['cans_name'], 'correct_answer':data['correct_answer'], 'epoch':epoch, 'rec_res':rec_agent_response, 'user_res':user_agent_response,'prior_answer':data['prior_answer']} 86 | new_data_list.append(new_data) 87 | 88 | memory_info = {"epoch":epoch, "rec_reason":rec_reason, "rec_item":rec_item, "user_reason":user_reason} 89 | rec_agent.update_memory(memory_info) 90 | user_agent.update_memory(memory_info) 91 | 92 | if flag: 93 | break 94 | epoch += 1 95 | end_time = time.time() 96 | print("recommend time = ", end_time - start_time) 97 | # save 98 | if args.save_info: 99 | rec_file_path = os.path.join(args.save_rec_dir, f"{data['id']}.jsonl") 100 | user_file_path = os.path.join(args.save_user_dir, f"{data['id']}.jsonl") 101 | rec_agent.save_memory(rec_file_path) 102 | user_agent.save_memory(user_file_path) 103 | # evaluate 104 | if rec_item.lower() == data['correct_answer'].lower().strip(): 105 | return new_data_list, 1, args 106 | else: 107 | return new_data_list, 0, args 108 | 109 | 110 | def setcallback(x): 111 | global finish_num 112 | global total 113 | global correct 114 | data_list, flag, args = x 115 | for data in data_list: 116 | append_jsonl(args.output_file, data) 117 | finish_num += 1 118 | correct += flag 119 | print("==============") 120 | print("correct = ", correct) 121 | print("finish = ", finish_num) 122 | print(f"now hit@1 = {correct} / {finish_num} = {correct/finish_num}") 123 | print(f"total hit@1 = {correct} / {total} = {correct/total}") 124 | print("==============") 125 | 126 | 127 | def main(args): 128 | if os.path.exists(args.output_file): 129 | os.remove(args.output_file) 130 | if 'lastfm' in args.data_dir: 131 | dataset = LastfmABDataset(args.init_num, args.train_cans_num, args.eval_cans_num, args.a_ratio, args.b_ratio, args.data_dir, args.stage, args.sep) 132 | else: 133 | raise ValueError("Invalid dataset name.") 134 | global total 135 | data_list = [] 136 | for data in tqdm(dataset): 137 | data_list.append(data) 138 | 139 | import pandas as pd 140 | prior_df = pd.read_csv(args.prior_file) 141 | prior_list = prior_df.to_dict('records') 142 | prior_dict = {} 143 | for data in prior_list: 144 | prior_dict[data['id']] = data 145 | merge_data_list = [] 146 | for data in data_list: 147 | generate = prior_dict[data['id']]['generate'] 148 | merge_data = data.copy() 149 | merge_data['prior_answer'] = generate 150 | merge_data_list.append(merge_data) 151 | 152 | # make dir 153 | if args.save_info and args.save_rec_dir is not None and not os.path.exists(args.save_rec_dir): 154 | os.makedirs(args.save_rec_dir) 155 | if args.save_info and args.save_user_dir is not None and not os.path.exists(args.save_user_dir): 156 | os.makedirs(args.save_user_dir) 157 | # mp 158 | pool = multiprocessing.Pool(args.mp) 159 | total = len(merge_data_list) 160 | for data in tqdm(merge_data_list): 161 | pool.apply_async(func=recommend, args=(data, args), callback=setcallback) 162 | pool.close() 163 | pool.join() 164 | 165 | 166 | if __name__ == '__main__': 167 | args = get_args() 168 | random.seed(args.seed) 169 | main(args) -------------------------------------------------------------------------------- /utils/model.py: -------------------------------------------------------------------------------- 1 | import torch 2 | from torch import nn 3 | import torch.nn.functional as F 4 | 5 | 6 | def extract_axis_1(data, indices): 7 | res = [] 8 | for i in range(data.shape[0]): 9 | res.append(data[i, indices[i], :]) 10 | res = torch.stack(res, dim=0).unsqueeze(1) 11 | return res 12 | 13 | class PositionwiseFeedForward(nn.Module): 14 | def __init__(self, d_in, d_hid, dropout=0.1): 15 | super().__init__() 16 | self.w_1 = nn.Conv1d(d_in, d_hid, 1) 17 | self.w_2 = nn.Conv1d(d_hid, d_in, 1) 18 | self.layer_norm = nn.LayerNorm(d_in) 19 | self.dropout = nn.Dropout(dropout) 20 | 21 | def forward(self, x): 22 | residual = x 23 | output = x.transpose(1, 2) 24 | output = self.w_2(F.relu(self.w_1(output))) 25 | output = output.transpose(1, 2) 26 | output = self.dropout(output) 27 | output = self.layer_norm(output + residual) 28 | return output 29 | 30 | class MultiHeadAttention(nn.Module): 31 | def __init__(self, hidden_size, num_units, num_heads, dropout_rate): 32 | super().__init__() 33 | self.hidden_size = hidden_size 34 | self.num_heads = num_heads 35 | assert hidden_size % num_heads == 0 36 | 37 | self.linear_q = nn.Linear(hidden_size, num_units) 38 | self.linear_k = nn.Linear(hidden_size, num_units) 39 | self.linear_v = nn.Linear(hidden_size, num_units) 40 | self.dropout = nn.Dropout(dropout_rate) 41 | self.softmax = nn.Softmax(dim=-1) 42 | 43 | 44 | def forward(self, queries, keys): 45 | """ 46 | :param queries: A 3d tensor with shape of [N, T_q, C_q] 47 | :param keys: A 3d tensor with shape of [N, T_k, C_k] 48 | 49 | :return: A 3d tensor with shape of (N, T_q, C) 50 | 51 | """ 52 | Q = self.linear_q(queries) # (N, T_q, C) 53 | K = self.linear_k(keys) # (N, T_k, C) 54 | V = self.linear_v(keys) # (N, T_k, C) 55 | 56 | # Split and Concat 57 | split_size = self.hidden_size // self.num_heads 58 | Q_ = torch.cat(torch.split(Q, split_size, dim=2), dim=0) # (h*N, T_q, C/h) 59 | K_ = torch.cat(torch.split(K, split_size, dim=2), dim=0) # (h*N, T_k, C/h) 60 | V_ = torch.cat(torch.split(V, split_size, dim=2), dim=0) # (h*N, T_k, C/h) 61 | 62 | # Multiplication 63 | matmul_output = torch.bmm(Q_, K_.transpose(1, 2)) / self.hidden_size ** 0.5 # (h*N, T_q, T_k) 64 | 65 | # Key Masking 66 | key_mask = torch.sign(torch.abs(keys.sum(dim=-1))).repeat(self.num_heads, 1) # (h*N, T_k) 67 | key_mask_reshaped = key_mask.unsqueeze(1).repeat(1, queries.shape[1], 1) # (h*N, T_q, T_k) 68 | key_paddings = torch.ones_like(matmul_output) * (-2 ** 32 + 1) 69 | matmul_output_m1 = torch.where(torch.eq(key_mask_reshaped, 0), key_paddings, matmul_output) # (h*N, T_q, T_k) 70 | 71 | # Causality - Future Blinding 72 | diag_vals = torch.ones_like(matmul_output[0, :, :]) # (T_q, T_k) 73 | tril = torch.tril(diag_vals) # (T_q, T_k) 74 | causality_mask = tril.unsqueeze(0).repeat(matmul_output.shape[0], 1, 1) # (h*N, T_q, T_k) 75 | causality_paddings = torch.ones_like(causality_mask) * (-2 ** 32 + 1) 76 | matmul_output_m2 = torch.where(torch.eq(causality_mask, 0), causality_paddings, matmul_output_m1) # (h*N, T_q, T_k) 77 | 78 | # Activation 79 | matmul_output_sm = self.softmax(matmul_output_m2) # (h*N, T_q, T_k) 80 | 81 | # Query Masking 82 | query_mask = torch.sign(torch.abs(queries.sum(dim=-1))).repeat(self.num_heads, 1) # (h*N, T_q) 83 | query_mask = query_mask.unsqueeze(-1).repeat(1, 1, keys.shape[1]) # (h*N, T_q, T_k) 84 | matmul_output_qm = matmul_output_sm * query_mask 85 | 86 | # Dropout 87 | matmul_output_dropout = self.dropout(matmul_output_qm) 88 | 89 | # Weighted Sum 90 | output_ws = torch.bmm(matmul_output_dropout, V_) # ( h*N, T_q, C/h) 91 | 92 | # Restore Shape 93 | output = torch.cat(torch.split(output_ws, output_ws.shape[0] // self.num_heads, dim=0), dim=2) # (N, T_q, C) 94 | 95 | # Residual Connection 96 | output_res = output + queries 97 | 98 | return output_res 99 | 100 | class SASRec(nn.Module): 101 | def __init__(self, hidden_size, item_num, state_size, dropout, device, num_heads=1): 102 | super().__init__() 103 | self.state_size = state_size 104 | self.hidden_size = hidden_size 105 | self.item_num = int(item_num) 106 | self.dropout = nn.Dropout(dropout) 107 | self.device = device 108 | self.item_embeddings = nn.Embedding( 109 | num_embeddings=item_num + 1, 110 | embedding_dim=hidden_size, 111 | ) 112 | nn.init.normal_(self.item_embeddings.weight, 0, 1) 113 | self.positional_embeddings = nn.Embedding( 114 | num_embeddings=state_size, 115 | embedding_dim=hidden_size 116 | ) 117 | # emb_dropout is added 118 | self.emb_dropout = nn.Dropout(dropout) 119 | self.ln_1 = nn.LayerNorm(hidden_size) 120 | self.ln_2 = nn.LayerNorm(hidden_size) 121 | self.ln_3 = nn.LayerNorm(hidden_size) 122 | self.mh_attn = MultiHeadAttention(hidden_size, hidden_size, num_heads, dropout) 123 | self.feed_forward = PositionwiseFeedForward(hidden_size, hidden_size, dropout) 124 | self.s_fc = nn.Linear(hidden_size, item_num) 125 | # self.ac_func = nn.ReLU() 126 | 127 | def forward(self, states, len_states): 128 | # inputs_emb = self.item_embeddings(states) * self.item_embeddings.embedding_dim ** 0.5 129 | inputs_emb = self.item_embeddings(states) 130 | inputs_emb += self.positional_embeddings(torch.arange(self.state_size).to(self.device)) 131 | seq = self.emb_dropout(inputs_emb) 132 | mask = torch.ne(states, self.item_num).float().unsqueeze(-1).to(self.device) 133 | seq *= mask 134 | seq_normalized = self.ln_1(seq) 135 | mh_attn_out = self.mh_attn(seq_normalized, seq) 136 | ff_out = self.feed_forward(self.ln_2(mh_attn_out)) 137 | ff_out *= mask 138 | ff_out = self.ln_3(ff_out) 139 | state_hidden = extract_axis_1(ff_out, len_states - 1) 140 | supervised_output = self.s_fc(state_hidden).squeeze() 141 | return supervised_output 142 | 143 | def forward_eval(self, states, len_states): 144 | # inputs_emb = self.item_embeddings(states) * self.item_embeddings.embedding_dim ** 0.5 145 | inputs_emb = self.item_embeddings(states) 146 | inputs_emb += self.positional_embeddings(torch.arange(self.state_size).to(self.device)) 147 | seq = self.emb_dropout(inputs_emb) 148 | mask = torch.ne(states, self.item_num).float().unsqueeze(-1).to(self.device) 149 | seq *= mask 150 | seq_normalized = self.ln_1(seq) 151 | mh_attn_out = self.mh_attn(seq_normalized, seq) 152 | ff_out = self.feed_forward(self.ln_2(mh_attn_out)) 153 | ff_out *= mask 154 | ff_out = self.ln_3(ff_out) 155 | state_hidden = extract_axis_1(ff_out, len_states - 1) 156 | supervised_output = self.s_fc(state_hidden).squeeze() 157 | return supervised_output 158 | 159 | def cacul_h(self, states, len_states): 160 | # inputs_emb = self.item_embeddings(states) * self.item_embeddings.embedding_dim ** 0.5 161 | inputs_emb = self.item_embeddings(states) 162 | inputs_emb += self.positional_embeddings(torch.arange(self.state_size).to(self.device)) 163 | seq = self.emb_dropout(inputs_emb) 164 | mask = torch.ne(states, self.item_num).float().unsqueeze(-1).to(self.device) 165 | seq *= mask 166 | seq_normalized = self.ln_1(seq) 167 | mh_attn_out = self.mh_attn(seq_normalized, seq) 168 | ff_out = self.feed_forward(self.ln_2(mh_attn_out)) 169 | ff_out *= mask 170 | ff_out = self.ln_3(ff_out) 171 | state_hidden = extract_axis_1(ff_out, len_states - 1) 172 | 173 | return state_hidden 174 | 175 | def cacu_x(self, x): 176 | x = self.item_embeddings(x) 177 | 178 | return x -------------------------------------------------------------------------------- /utils/agent.py: -------------------------------------------------------------------------------- 1 | import os 2 | import time 3 | import argparse 4 | import json 5 | import jsonlines 6 | import torch 7 | from tqdm import tqdm 8 | import random 9 | from torch.utils.data import Dataset, DataLoader 10 | import multiprocessing 11 | import sys 12 | import pandas as pd 13 | import numpy as np 14 | current_dir = os.path.dirname(os.path.abspath(__file__)) 15 | parent_dir = os.path.dirname(current_dir) 16 | sys.path.append(parent_dir) 17 | 18 | from utils.regular_function import split_user_response, split_rec_reponse 19 | from utils.rw_process import append_jsonl, write_jsonl, read_jsonl 20 | from utils.api_request import api_request 21 | from utils.model import SASRec 22 | 23 | class RecAgent: 24 | def __init__(self, args, mode='prior_rec'): 25 | self.memory = [] 26 | self.info_list = [] 27 | self.args = args 28 | self.mode = mode 29 | self.load_prompt() 30 | 31 | def load_prompt(self): 32 | if self.mode =='prior_rec': 33 | if 'lastfm' in self.args.data_dir: 34 | from constant.lastfm_prior_model_prompt import rec_system_prompt, rec_user_prompt, rec_memory_system_prompt, rec_memory_user_prompt, rec_build_memory 35 | else: 36 | raise ValueError("Invalid mode: {}".format(self.args.data_dir)) 37 | self.rec_system_prompt = rec_system_prompt 38 | self.rec_user_prompt = rec_user_prompt 39 | self.rec_memory_system_prompt = rec_memory_system_prompt 40 | self.rec_memory_user_prompt = rec_memory_user_prompt 41 | self.rec_build_memory = rec_build_memory 42 | else: 43 | raise ValueError("Invalid mode: {}".format(self.mode)) 44 | 45 | def act(self, data, reason=None, item=None): 46 | if self.mode =='prior_rec': 47 | if len(self.memory) == 0: 48 | system_prompt = self.rec_system_prompt 49 | user_prompt = self.rec_user_prompt.format(data['seq_str'], data['len_cans'],data['cans_str'], data['prior_answer']) 50 | else: 51 | system_prompt = self.rec_memory_system_prompt 52 | user_prompt = self.rec_memory_user_prompt.format(data['seq_str'],data['len_cans'], data['cans_str'], '\n'.join(self.memory)) 53 | response = api_request(system_prompt, user_prompt, self.args) 54 | return response 55 | else: 56 | raise ValueError("Invalid mode: {}".format(self.mode)) 57 | 58 | def build_memory(self, info): 59 | return self.rec_build_memory.format(info['epoch'], info['rec_item'], info['rec_reason'], info['user_reason']) 60 | 61 | def update_memory(self, info): 62 | self.info_list.append(info) 63 | self.memory.append(self.build_memory(info)) 64 | 65 | def save_memory(self, path): 66 | write_jsonl(path, self.info_list) 67 | 68 | def load_memory(self, path): 69 | self.info_list = read_jsonl(path) 70 | self.memory = [self.build_memory(info) for info in self.info_list] 71 | 72 | 73 | class UserModelAgent: 74 | def __init__(self, args, mode='prior_rec'): 75 | self.memory = [] 76 | self.info_list = [] 77 | self.args = args 78 | self.mode = mode 79 | self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu") 80 | self.load_prompt() 81 | self.load_model() 82 | self.id2name = dict() 83 | self.name2id = dict() 84 | self.build_id2name() 85 | 86 | def build_id2name(self): 87 | if 'movielens' in self.args.data_dir: 88 | def get_mv_title(s): 89 | sub_list=[", The", ", A", ", An"] 90 | for sub_s in sub_list: 91 | if sub_s in s: 92 | return sub_s[2:]+" "+s.replace(sub_s,"") 93 | return s 94 | item_path = os.path.join(self.args.data_dir, 'u.item') 95 | with open(item_path, 'r', encoding = "ISO-8859-1") as f: 96 | for line in f.readlines(): 97 | features = line.strip('\n').split('|') 98 | id = int(features[0]) - 1 99 | name = get_mv_title(features[1][:-7]) 100 | self.id2name[id] = name 101 | self.name2id[name] = id 102 | elif 'lastfm' in self.args.data_dir or 'steam' in self.args.data_dir: 103 | if '_ab' in self.args.data_dir: 104 | item_path=os.path.join(self.args.data_dir, 'id2name_AB_llara.txt') 105 | else: 106 | item_path=os.path.join(self.args.data_dir, 'id2name.txt') 107 | with open(item_path, 'r') as f: 108 | for l in f.readlines(): 109 | ll = l.strip('\n').split('::') 110 | self.id2name[int(ll[0])] = ll[1].strip() 111 | self.name2id[ll[1].strip()] = int(ll[0]) 112 | else: 113 | raise ValueError("Invalid data dir: {}".format(self.args.data_dir)) 114 | 115 | def load_model(self): 116 | print("loading model") 117 | data_directory = self.args.data_dir 118 | data_statis = pd.read_pickle(os.path.join(data_directory, 'data_statis.df')) 119 | self.seq_size = data_statis['seq_size'][0] # the length of history to define the seq 120 | self.item_num = data_statis['item_num'][0] # total number of items 121 | self.model = SASRec(64,self.item_num, self.seq_size,0.1,self.device) 122 | self.model.to(self.device) 123 | self.model=torch.load(self.args.model_path) 124 | print("load model success") 125 | 126 | def load_prompt(self): 127 | if self.mode == 'prior_rec': 128 | if 'lastfm' in self.args.data_dir: 129 | from constant.lastfm_prior_model_prompt import user_system_promt, user_user_prompt, user_memory_system_prompt, user_memory_user_prompt, user_build_memory, user_build_memory_2 130 | else: 131 | raise ValueError("Invalid dataset: {}".format(self.args.data_dir)) 132 | self.user_system_promt = user_system_promt 133 | self.user_user_prompt = user_user_prompt 134 | self.user_memory_system_prompt = user_memory_system_prompt 135 | self.user_memory_user_prompt = user_memory_user_prompt 136 | self.user_build_memory = user_build_memory 137 | self.user_build_memory_2 = user_build_memory_2 138 | 139 | elif self.mode == 'pred': 140 | if 'lastfm' in self.args.data_dir: 141 | from constant.lastfm_ab_model_prompt import user_system_prompt, user_user_prompt, user_memory_system_prompt, user_memory_user_prompt, user_build_memory, user_build_memory_2, user_memory_system_prompt, user_memory_user_prompt 142 | else: 143 | raise ValueError("Invalid dataset: {}".format(self.args.data_dir)) 144 | self.user_system_prompt = user_system_prompt 145 | self.user_user_prompt = user_user_prompt 146 | self.user_memory_system_prompt = user_memory_system_prompt 147 | self.user_memory_user_prompt = user_memory_user_prompt 148 | self.user_build_memory = user_build_memory 149 | self.user_build_memory_2 = user_build_memory_2 150 | def act(self, data, reason=None, item=None): 151 | if self.mode == 'prior_rec': 152 | model_output = self.model_generate(data['seq'], data['len_seq'], data['cans']) 153 | if len(self.memory) == 0: 154 | system_prompt = self.user_system_promt.format(data['seq_str'], data['prior_answer']) 155 | else: 156 | system_prompt = self.user_system_promt.format(data['seq_str'], data['prior_answer']) 157 | user_prompt = self.user_user_prompt.format(data['cans_str'],model_output, item, reason) 158 | response = api_request(system_prompt, user_prompt, self.args) 159 | return response 160 | else: 161 | raise ValueError("Invalid mode: {}".format(self.mode)) 162 | 163 | def pred_model(self, data, score): 164 | if len(self.memory) == 0: 165 | system_prompt = self.user_system_prompt.format(data['seq_str']) 166 | user_prompt = self.user_user_prompt.format(data['pred_item'], score) 167 | else: 168 | system_prompt = self.user_memory_system_prompt.format(data['seq_str'], data['cans_str'],'\n'.join(self.memory)) 169 | user_prompt = self.user_memory_user_prompt.format(data['pred_item'],score) 170 | 171 | response = api_request(system_prompt, user_prompt, self.args) 172 | return response 173 | 174 | def build_memory(self, info): 175 | if info['user_reason'] is not None: 176 | return self.user_build_memory.format(info['epoch'], info['rec_item'], info['rec_reason'], info['user_reason']) 177 | else: 178 | return self.user_build_memory_2.format(info['epoch'], info['rec_item'], info['rec_reason']) 179 | 180 | def update_memory(self, info): 181 | self.info_list.append(info) 182 | self.memory.append(self.build_memory(info)) 183 | 184 | def save_memory(self, path): 185 | write_jsonl(path, self.info_list) 186 | 187 | def load_memory(self, path): 188 | self.info_list = read_jsonl(path) 189 | self.memory = [self.build_memory(info) for info in self.info_list] 190 | 191 | def model_generate(self, seq, len_seq, candidates): 192 | seq_b = [seq] 193 | len_seq_b = [len_seq] 194 | states = np.array(seq_b) 195 | states = torch.LongTensor(states) 196 | states = states.to(self.device) 197 | prediction = self.model.forward_eval(states, np.array(len_seq_b)) 198 | 199 | sampling_idx=[True]*self.item_num 200 | cans_num = len(candidates) 201 | for i in candidates: 202 | sampling_idx.__setitem__(i,False) 203 | sampling_idxs = [torch.tensor(sampling_idx)] 204 | sampling_idxs=torch.stack(sampling_idxs,dim=0) 205 | prediction = prediction.cpu().detach().masked_fill(sampling_idxs,prediction.min().item()-1) 206 | values, topK = prediction.topk(cans_num, dim=1, largest=True, sorted=True) 207 | topK = topK.numpy()[0] 208 | name_list = [self.id2name[id] for id in topK] 209 | len_ret = int(len(name_list) /4 ) 210 | return ', '.join(name_list[:len_ret]) 211 | 212 | def score(self, seq, len_seq, candidates): 213 | #print("seq = ", seq) 214 | #print("len seq = ", len_seq) 215 | #print("cans = ", candidates) 216 | seq_b = [seq] 217 | len_seq_b = [len_seq] 218 | states = np.array(seq_b) 219 | states = torch.LongTensor(states) 220 | states = states.to(self.device) 221 | # pred 222 | prediction = self.model.forward_eval(states, np.array(len_seq_b)) 223 | 224 | sampling_idx=[True]*self.item_num 225 | cans_num = len(candidates) 226 | for i in candidates: 227 | sampling_idx.__setitem__(i,False) 228 | sampling_idxs = [torch.tensor(sampling_idx)] 229 | sampling_idxs=torch.stack(sampling_idxs,dim=0) 230 | prediction = prediction.cpu().detach().masked_fill(sampling_idxs,prediction.min().item()-1) 231 | values, topK = prediction.topk(cans_num, dim=1, largest=True, sorted=True) 232 | values = values.numpy()[0] 233 | topK = topK.numpy()[0] 234 | score_dict = {} 235 | for i in range(len(topK)): 236 | id = topK[i] 237 | score = values[i] 238 | name = self.id2name[id] 239 | score_dict[name] = score 240 | return score_dict -------------------------------------------------------------------------------- /data/lastfm/id2name.txt: -------------------------------------------------------------------------------- 1 | 0::Morcheeba 2 | 1::Enigma 3 | 2::Café Del Mar 4 | 3::Fleetwood Mac 5 | 4::China Crisis 6 | 5::Loscil 7 | 6::Chicane 8 | 7::Sigue Sigue Sputnik 9 | 8::Duran Duran 10 | 9::Air 11 | 10::Röyksopp 12 | 11::Moby 13 | 12::Depeche Mode 14 | 13::Groove Armada 15 | 14::INXS 16 | 15::Deep Forest 17 | 16::Porcupine Tree 18 | 17::De/Vision 19 | 18::Radiohead 20 | 19::VAST 21 | 20::Michael Jackson 22 | 21::God Is an Astronaut 23 | 22::Pink Floyd 24 | 23::Planet Funk 25 | 24::Scissor Sisters 26 | 25::Mew 27 | 26::Stereophonics 28 | 27::Placebo 29 | 28::Infected Mushroom 30 | 29::Delerium 31 | 30::Roxette 32 | 31::Paradise Lost 33 | 32::Jamiroquai 34 | 33::James Blunt 35 | 34::Reamonn 36 | 35::Opeth 37 | 36::Elton John 38 | 37::Tears for Fears 39 | 38::Death Cab for Cutie 40 | 39::Savage Garden 41 | 40::Darren Hayes 42 | 41::Explosions in the Sky 43 | 42::AC/DC 44 | 43::Apocalyptica 45 | 44::Megadeth 46 | 45::Dream Theater 47 | 46::Tiësto 48 | 47::The Darkness 49 | 48::VNV Nation 50 | 49::Thirteen Senses 51 | 50::Dave Gahan 52 | 51::Apparat 53 | 52::Def Leppard 54 | 53::Zero 7 55 | 54::Dope 56 | 55::Audioslave 57 | 56::Charon 58 | 57::Amorphis 59 | 58::Pain 60 | 59::Sentenced 61 | 60::Blank & Jones 62 | 61::Mesh 63 | 62::Keane 64 | 63::Muse 65 | 64::Bright Eyes 66 | 65::Tom Waits 67 | 66::Gogol Bordello 68 | 67::CAKE 69 | 68::Jeff Buckley 70 | 69::Sparklehorse 71 | 70::Modest Mouse 72 | 71::Sunset Rubdown 73 | 72::Nine Inch Nails 74 | 73::Clap Your Hands Say Yeah 75 | 74::Manu Chao 76 | 75::Belle and Sebastian 77 | 76::John Lennon 78 | 77::Primal Scream 79 | 78::The Velvet Underground 80 | 79::Bon Jovi 81 | 80::Johann Sebastian Bach 82 | 81::Weezer 83 | 82::Imogen Heap 84 | 83::Janis Joplin 85 | 84::Oh No Oh My 86 | 85::The Cramps 87 | 86::Panda Bear 88 | 87::Gavin DeGraw 89 | 88::Wilco 90 | 89::Ben Kweller 91 | 90::Everlast 92 | 91::Menomena 93 | 92::Turin Brakes 94 | 93::DIR EN GREY 95 | 94::My Chemical Romance 96 | 95::Travis 97 | 96::The Killers 98 | 97::Tina Turner 99 | 98::Katatonia 100 | 99::Skillet 101 | 100::宇多田ヒカル 102 | 101::浜崎あゆみ 103 | 102::UVERworld 104 | 103::Linkin Park 105 | 104::中島美嘉 106 | 105::GACKT 107 | 106::L'Arc~en~Ciel 108 | 107::雅-MIYAVI- 109 | 108::The All-American Rejects 110 | 109::The Rasmus 111 | 110::HYDE 112 | 111::Simple Plan 113 | 112::30 Seconds to Mars 114 | 113::Three Days Grace 115 | 114::Seether 116 | 115::Lostprophets 117 | 116::HIM 118 | 117::Korn 119 | 118::Within Temptation 120 | 119::Shakira 121 | 120::Epica 122 | 121::Nickelback 123 | 122::Noir Désir 124 | 123::Tool 125 | 124::Hawthorne Heights 126 | 125::Snow Patrol 127 | 126::Jimmy Eat World 128 | 127::Ricky Martin 129 | 128::Ryan Adams 130 | 129::Shayne Ward 131 | 130::Sting 132 | 131::Sex Pistols 133 | 132::Hoobastank 134 | 133::They Might Be Giants 135 | 134::Rie fu 136 | 135::ギルガメッシュ 137 | 136::ムック 138 | 137::Il Divo 139 | 138::Josh Groban 140 | 139::倖田來未 141 | 140::Type O Negative 142 | 141::Lonestar 143 | 142::KT Tunstall 144 | 143::Vanessa Carlton 145 | 144::Hinder 146 | 145::Phil Collins 147 | 146::Melt-Banana 148 | 147::Goo Goo Dolls 149 | 148::Krypteria 150 | 149::Paula DeAnda 151 | 150::Saliva 152 | 151::Seether (Feat. Amy Lee) 153 | 152::Puddle of Mudd 154 | 153::Staind 155 | 154::Royal Hunt 156 | 155::Dream Evil 157 | 156::Olivia 158 | 157::Juno Reactor 159 | 158::Polysics 160 | 159::O-Zone 161 | 160::Mark Lanegan 162 | 161::12012 163 | 162::Sadie 164 | 163::Sami Yusuf 165 | 164::Massari 166 | 165::Saybia 167 | 166::Beirut 168 | 167::Arcade Fire 169 | 168::Babyshambles 170 | 169::The Decemberists 171 | 170::The National 172 | 171::Sigur Rós 173 | 172::The Libertines 174 | 173::Kate Nash 175 | 174::Wolf Parade 176 | 175::Animal Collective 177 | 176::The Fray 178 | 177::The Shins 179 | 178::Lady Gaga 180 | 179::Green Day 181 | 180::Nirvana 182 | 181::Mariah Carey 183 | 182::JoJo 184 | 183::Backstreet Boys 185 | 184::Jesse McCartney 186 | 185::Justin Bieber 187 | 186::Usher 188 | 187::Nick Carter 189 | 188::Metro Station 190 | 189::Jeremih 191 | 190::Fall Out Boy 192 | 191::Kristinia DeBarge 193 | 192::Paris Hilton 194 | 193::50 Cent 195 | 194::New Kids on the Block 196 | 195::Дима Билан 197 | 196::London After Midnight 198 | 197::Psyclon Nine 199 | 198::The Crüxshadows 200 | 199::KMFDM 201 | 200::Mindless Self Indulgence 202 | 201::Daft Punk 203 | 202::Goldfrapp 204 | 203::Madonna 205 | 204::Dido 206 | 205::Gorillaz 207 | 206::The Cure 208 | 207::Poets of the Fall 209 | 208::OneRepublic 210 | 209::System of a Down 211 | 210::The Beatles 212 | 211::Thom Yorke 213 | 212::Massive Attack 214 | 213::2Pac 215 | 214::Rihanna 216 | 215::Britney Spears 217 | 216::Jennifer Lopez 218 | 217::Katy Perry 219 | 218::P!nk 220 | 219::Black Eyed Peas 221 | 220::Hilary Duff 222 | 221::Fergie 223 | 222::Ashley Tisdale 224 | 223::Chris Brown 225 | 224::Kanye West 226 | 225::Avril Lavigne 227 | 226::Taylor Swift 228 | 227::The Pussycat Dolls 229 | 228::Evanescence 230 | 229::Akira Yamaoka 231 | 230::blink-182 232 | 231::Bat for Lashes 233 | 232::The Smashing Pumpkins 234 | 233::3OH!3 235 | 234::Ke$ha 236 | 235::Craig David 237 | 236::Eminem 238 | 237::Ne-Yo 239 | 238::The Birthday Massacre 240 | 239::Limp Bizkit 241 | 240::Fort Minor 242 | 241::Funeral for a Friend 243 | 242::Finch 244 | 243::Cold 245 | 244::Papa Roach 246 | 245::Paramore 247 | 246::Flyleaf 248 | 247::Bullet for My Valentine 249 | 248::Angels & Airwaves 250 | 249::LaFee 251 | 250::In Flames 252 | 251::Anathema 253 | 252::Saosin 254 | 253::Tracktor Bowling 255 | 254::Pitchshifter 256 | 255::P.O.D. 257 | 256::U2 258 | 257::Deftones 259 | 258::Ill Niño 260 | 259::Clan of Xymox 261 | 260::Celldweller 262 | 261::Static-X 263 | 262::Fluke 264 | 263::happysad 265 | 264::Lacrimosa 266 | 265::Lindsay Lohan 267 | 266::Good Charlotte 268 | 267::The Used 269 | 268::Maroon 5 270 | 269::Adam Lambert 271 | 270::Kid Cudi 272 | 271::Owl City 273 | 272::The Pretty Reckless 274 | 273::Metallica 275 | 274::##### 276 | 275::Fear Factory 277 | 276::Rise Against 278 | 277::Killswitch Engage 279 | 278::Jane's Addiction 280 | 279::Tiamat 281 | 280::Nightwish 282 | 281::Sixpence None the Richer 283 | 282::t.A.T.u. 284 | 283::Disturbed 285 | 284::Jem 286 | 285::Kerli 287 | 286::Bruno Mars 288 | 287::Slipknot 289 | 288::Myslovitz 290 | 289::Björk 291 | 290::Rammstein 292 | 291::A Perfect Circle 293 | 292::Joe Satriani 294 | 293::Stone Sour 295 | 294::Editors 296 | 295::Billy Talent 297 | 296::Silverstein 298 | 297::The Red Jumpsuit Apparatus 299 | 298::Alesana 300 | 299::Senses Fail 301 | 300::Story of the Year 302 | 301::Tactical Sekt 303 | 302::Sepultura 304 | 303::The Offspring 305 | 304::Akon 306 | 305::B.o.B 307 | 306::Black Rebel Motorcycle Club 308 | 307::Lykke Li 309 | 308::Jay-Z 310 | 309::Black Veil Brides 311 | 310::Tokio Hotel 312 | 311::Oomph! 313 | 312::Guano Apes 314 | 313::Red 315 | 314::Breaking Benjamin 316 | 315::Thousand Foot Krutch 317 | 316::Jay-Z and Linkin Park 318 | 317::Hollywood Undead 319 | 318::Cypress Hill 320 | 319::Lacuna Coil 321 | 320::September 322 | 321::Gregorian 323 | 322::OK Go 324 | 323::Fightstar 325 | 324::Godsmack 326 | 325::Keith Urban 327 | 326::Rascal Flatts 328 | 327::Brooks & Dunn 329 | 328::Scooter 330 | 329::Thursday 331 | 330::Bloodhound Gang 332 | 331::Robert Miles 333 | 332::Automatic Loveletter 334 | 333::Underoath 335 | 334::Lupe Fiasco 336 | 335::Dead by April 337 | 336::Adema 338 | 337::Dead by Sunrise 339 | 338::Faktion 340 | 339::We Are the Fallen 341 | 340::Coma 342 | 341::Drowning Pool 343 | 342::Drake 344 | 343::Sky Ferreira 345 | 344::The Magic Numbers 346 | 345::Mary Elizabeth McGlynn 347 | 346::Brand New 348 | 347::Will Smith 349 | 348::Daughtry 350 | 349::12 Stones 351 | 350::Ferry Corsten 352 | 351::Silversun Pickups 353 | 352::Scary Kids Scaring Kids 354 | 353::Xandria 355 | 354::Kill Hannah 356 | 355::Taking Back Sunday 357 | 356::Hayden Panettiere 358 | 357::Линда 359 | 358::Smile Empty Soul 360 | 359::Jason Derülo 361 | 360::O.N.A. 362 | 361::Chylińska 363 | 362::Alexandre Desplat 364 | 363::Emilie Autumn 365 | 364::Fuel 366 | 365::Stateless 367 | 366::Robert Pattinson 368 | 367::Trading Yesterday 369 | 368::Armor for Sleep 370 | 369::Bear McCreary 371 | 370::I Am Ghost 372 | 371::Xzibit 373 | 372::Helios 374 | 373::Emery 375 | 374::Alexi Murdoch 376 | 375::Anya Marina 377 | 376::Mudvayne 378 | 377::Chingy 379 | 378::Plumb 380 | 379::Taproot 381 | 380::Jason Walker 382 | 381::Mark Ronson 383 | 382::Gavin Rossdale 384 | 383::Blindside 385 | 384::Amy Lee 386 | 385::James Newton Howard 387 | 386::Band of Skulls 388 | 387::Sea Wolf 389 | 388::The Letter Black 390 | 389::Ja Rule 391 | 390::Holly Brook 392 | 391::Hurricane Bells 393 | 392::Kylie Minogue 394 | 393::Ashlee Simpson 395 | 394::Lily Allen 396 | 395::Heidi Montag 397 | 396::New Order 398 | 397::Japan 399 | 398::The Smiths 400 | 399::Joy Division 401 | 400::The Sonics 402 | 401::Southern Culture on the Skids 403 | 402::Small Faces 404 | 403::The Detroit Cobras 405 | 404::The Pretty Things 406 | 405::Talking Heads 407 | 406::The Stranglers 408 | 407::The Clash 409 | 408::Roxy Music 410 | 409::Alphaville 411 | 410::Blondie 412 | 411::Frank Sinatra 413 | 412::The Human League 414 | 413::Information Society 415 | 414::Pet Shop Boys 416 | 415::Ultravox 417 | 416::Yazoo 418 | 417::Heaven 17 419 | 418::Siouxsie and the Banshees 420 | 419::Misfits 421 | 420::Dean Martin 422 | 421::Dick Dale 423 | 422::Motörhead 424 | 423::Devo 425 | 424::Split Enz 426 | 425::The Cars 427 | 426::Dead or Alive 428 | 427::Oingo Boingo 429 | 428::Eurythmics 430 | 429::Visage 431 | 430::Magazine 432 | 431::Madness 433 | 432::Ska-P 434 | 433::The Specials 435 | 434::Culture Club 436 | 435::Elvis Costello 437 | 436::Sublime 438 | 437::A Flock of Seagulls 439 | 438::Echo & The Bunnymen 440 | 439::Cab Calloway 441 | 440::The B-52's 442 | 441::Butthole Surfers 443 | 442::Nekromantix 444 | 443::The Byrds 445 | 444::The Mighty Mighty Bosstones 446 | 445::Peggy Lee 447 | 446::Corona 448 | 447::The Jam 449 | 448::Joe Jackson 450 | 449::Messer Chups 451 | 450::The Meteors 452 | 451::Adam and the Ants 453 | 452::The Zombies 454 | 453::Barón Rojo 455 | 454::Missing Persons 456 | 455::Squeeze 457 | 456::Akurat 458 | 457::The Brian Setzer Orchestra 459 | 458::Stray Cats 460 | 459::Goldfinger 461 | 460::Mecano 462 | 461::Men at Work 463 | 462::Squirrel Nut Zippers 464 | 463::Harry Connick, Jr. 465 | 464::Dick Dale and His Del-Tones 466 | 465::The Kings of Nuthin' 467 | 466::B-Movie 468 | 467::Anne Clark 469 | 468::Mad Sin 470 | 469::Calabrese 471 | 470::The Seeds 472 | 471::The Litter 473 | 472::Big Bad Voodoo Daddy 474 | 473::13th Floor Elevators 475 | 474::Holly Golightly 476 | 475::IRA 477 | 476::The Troggs 478 | 477::Duffy 479 | 478::Allison Iraheta 480 | 479::Lena 481 | 480::Jónsi 482 | 481::Kalomoira 483 | 482::Άννα Βισση 484 | 483::Inna 485 | 484::Jewel 486 | 485::Fresno 487 | 486::Hurts 488 | 487::Miranda Cosgrove 489 | 488::Wanessa 490 | 489::The Script 491 | 490::Alexander Rybak 492 | 491::Cinema Bizarre 493 | 492::Edyta Górniak 494 | 493::ZAZ 495 | 494::Cary Brothers 496 | 495::Karl Wolf 497 | 496::Boris 498 | 497::Fever Ray 499 | 498::Fennesz 500 | 499::I Set My Friends On Fire 501 | 500::Blue 502 | 501::Jessica Simpson 503 | 502::RBD 504 | 503::Mandy Moore 505 | 504::Paulina Rubio 506 | 505::Fey 507 | 506::Dannii Minogue 508 | 507::Thalía 509 | 508::A*Teens 510 | 509::Geri Halliwell 511 | 510::Atomic Kitten 512 | 511::Andrés Calamaro 513 | 512::Laibach 514 | 513::David Bowie 515 | 514::Einstürzende Neubauten 516 | 515::Jesu 517 | 516::Soundgarden 518 | 517::Stone Temple Pilots 519 | 518::Killing Joke 520 | 519::Bauhaus 521 | 520::Nitzer Ebb 522 | 521::Ladytron 523 | 522::Suede 524 | 523::My Bloody Valentine 525 | 524::Fugazi 526 | 525::Godflesh 527 | 526::Prong 528 | 527::Filter 529 | 528::Lard 530 | 529::Noisettes 531 | 530::VV Brown 532 | 531::Sonique 533 | 532::Robbie Williams 534 | 533::Christina Aguilera 535 | 534::Leona Lewis 536 | 535::Beyoncé 537 | 536::Justin Timberlake 538 | 537::Monrose 539 | 538::Cheryl Cole 540 | 539::Sarah Connor 541 | 540::M. Pokora 542 | 541::Taio Cruz 543 | 542::Girls Aloud 544 | 543::Rachel Stevens 545 | 544::Take That 546 | 545::Iron Maiden 547 | 546::Savatage 548 | 547::Bruce Dickinson 549 | 548::Children of Bodom 550 | 549::Andre Matos 551 | 550::Viper 552 | 551::Matanza 553 | 552::Nevermore 554 | 553::Enya 555 | 554::The Ting Tings 556 | 555::Pearl Jam 557 | 556::Isis 558 | 557::Tori Amos 559 | 558::The Mars Volta 560 | 559::Panic! At the Disco 561 | 560::The Fall of Troy 562 | 561::Dżem 563 | 562::Hard-Fi 564 | 563::Bond 565 | 564::Sophie Ellis-Bextor 566 | 565::Rick Astley 567 | 566::Solar Stone 568 | 567::Ian Van Dahl 569 | 568::Guru Josh Project 570 | 569::Morrissey 571 | 570::Frank Zappa 572 | 571::Plaid 573 | 572::Underworld 574 | 573::Thomas Newman 575 | 574::Junkie XL 576 | 575::Sasha 577 | 576::Glee Cast 578 | 577::All Time Low 579 | 578::Runner Runner 580 | 579::And One 581 | 580::Crystal Castles 582 | 581::Anything Box 583 | 582::Recoil 584 | 583::Hubert Kah 585 | 584::Sally Shapiro 586 | 585::Ayria 587 | 586::Red Flag 588 | 587::The Frozen Autumn 589 | 588::Cause & Effect 590 | 589::Wham! 591 | 590::Billy Idol 592 | 591::Provision 593 | 592::Peter Murphy 594 | 593::Kaizers Orchestra 595 | 594::Kent 596 | 595::Iggy Pop 597 | 596::Yann Tiersen 598 | 597::Rush 599 | 598::Frédéric Chopin 600 | 599::Incubus 601 | 600::Claude Debussy 602 | 601::Faith No More 603 | 602::Wolfgang Amadeus Mozart 604 | 603::John Petrucci & Jordan Rudess 605 | 604::Ludwig van Beethoven 606 | 605::The String Quartet 607 | 606::Yes 608 | 607::Mike Oldfield 609 | 608::Zu 610 | 609::Temple of the Dog 611 | 610::Bob Dylan 612 | 611::Miles Davis 613 | 612::John Coltrane 614 | 613::Thelonious Monk 615 | 614::Florence + the Machine 616 | 615::The Cinematic Orchestra 617 | 616::Yeasayer 618 | 617::Tera Melos 619 | 618::Bill Evans 620 | 619::Animals as Leaders 621 | 620::Arcturus 622 | 621::Clutch 623 | 622::Chet Baker 624 | 623::Madeleine Peyroux 625 | 624::Charlie Parker 626 | 625::Charles Mingus 627 | 626::Herbie Hancock 628 | 627::Pat Metheny 629 | 628::Bring Me The Horizon 630 | 629::Escape The Fate 631 | 630::MALICE MIZER 632 | 631::Marilyn Manson 633 | 632::Coldplay 634 | 633::Nas 635 | 634::Mos Def 636 | 635::Gang Starr 637 | 636::The Roots 638 | 637::A Tribe Called Quest 639 | 638::Sufjan Stevens 640 | 639::Saul Williams 641 | 640::Sunn O))) 642 | 641::Vampire Weekend 643 | 642::Sonic Youth 644 | 643::Masta Ace 645 | 644::De La Soul 646 | 645::Jedi Mind Tricks 647 | 646::ASIAN KUNG-FU GENERATION 648 | 647::MF DOOM 649 | 648::N.W.A 650 | 649::Mike Patton 651 | 650::Mr. Bungle 652 | 651::Public Enemy 653 | 652::Kool G Rap 654 | 653::Talib Kweli 655 | 654::Wu-Tang Clan 656 | 655::Black Kids 657 | 656::Merzbow 658 | 657::Why? 659 | 658::Method Man 660 | 659::Drudkh 661 | 660::Bubba Sparxxx 662 | 661::Del tha Funkee Homosapien 663 | 662::Wolves in the Throne Room 664 | 663::Orgy 665 | 664::Foo Fighters 666 | 665::Combichrist 667 | 666::Grendel 668 | 667::Agonoize 669 | 668::Hocico 670 | 669::Feindflug 671 | 670::Amduscia 672 | 671::Dawn of Ashes 673 | 672::She Wants Revenge 674 | 673::Headscan 675 | 674::Rotersand 676 | 675::Blutengel 677 | 676::Wynardtage 678 | 677::Unheilig 679 | 678::[:SITD:] 680 | 679::L'Âme Immortelle 681 | 680::Terminal Choice 682 | 681::Suicidal Romance 683 | 682::Liquid Divine 684 | 683::Melotron 685 | 684::Evil's Toy 686 | 685::Vibrasphere 687 | 686::Bamboo Forest 688 | 687::Miss Construction 689 | 688::Samsas Traum 690 | 689::Zombie Girl 691 | 690::Nurzery [Rhymes] 692 | 691::Nachtmahr 693 | 692::ASP 694 | 693::Subway to Sally 695 | 694::Caustic 696 | 695::Diary of Dreams 697 | 696::xotox 698 | 697::Tamtrum 699 | 698::Covenant 700 | 699::Icon of Coil 701 | 700::Funker Vogt 702 | 701::God Module 703 | 702::Noisuf-X 704 | 703::Reaper 705 | 704::Portishead 706 | 705::David Guetta 707 | 706::Cascada 708 | 707::Paul van Dyk 709 | 708::ATB 710 | 709::Skeletal Family 711 | 710::Dragonette 712 | 711::Armin van Buuren 713 | 712::Yelle 714 | 713::Kyau vs. Albert 715 | 714::Novaspace 716 | 715::OceanLab 717 | 716::Groove Coverage 718 | 717::Fragma 719 | 718::Sylver 720 | 719::Markus Schulz 721 | 720::IAMX 722 | 721::Hot Chip 723 | 722::Cryo 724 | 723::Front Line Assembly 725 | 724::Haujobb 726 | 725::mind.in.a.box 727 | 726::Absurd Minds 728 | 727::Seabound 729 | 728::Colony 5 730 | 729::Apoptygma Berzerk 731 | 730::Suicide Commando 732 | 731::Neuroticfish 733 | 732::Assemblage 23 734 | 733::Edge of Dawn 735 | 734::Cosmic Gate 736 | 735::Above & Beyond 737 | 736::Pride and Fall 738 | 737::E-Craft 739 | 738::Code 64 740 | 739::Angels & Agony 741 | 740::4 Strings 742 | 741::XP8 743 | 742::Bruderschaft 744 | 743::Syrian 745 | 744::Digitalism 746 | 745::Justice 747 | 746::Armand van Helden 748 | 747::Simian Mobile Disco 749 | 748::MSTRKRFT 750 | 749::The Sisters of Mercy 751 | 750::Holly Valance 752 | 751::The Knife 753 | 752::Porcelain and the Tramps 754 | 753::Dope Stars Inc. 755 | 754::Ashbury Heights 756 | 755::Vive la Fête 757 | 756::Diorama 758 | 757::Belanova 759 | 758::Alice in Videoland 760 | 759::Theatre of Tragedy 761 | 760::ADULT. 762 | 761::Annie 763 | 762::Front 242 764 | 763::Robots in Disguise 765 | 764::Alien Sex Fiend 766 | 765::Christian Death 767 | 766::Helalyn Flowers 768 | 767::Shiny Toy Guns 769 | 768::Claire Voyant 770 | 769::Hungry Lucy 771 | 770::Minerve 772 | 771::Client 773 | 772::Frozen Plasma 774 | 773::Sohodolls 775 | 774::Tiga 776 | 775::Vitalic 777 | 776::Fischerspooner 778 | 777::Sebastian 779 | 778::Project Pitchfork 780 | 779::Deine Lakaien 781 | 780::Panzer AG 782 | 781::Imperative Reaction 783 | 782::In Strict Confidence 784 | 783::Decoded Feedback 785 | 784::Le Tigre 786 | 785::Paul Oakenfold 787 | 786::Cinema Strange 788 | 787::Uffie 789 | 788::Aesthetic Perfection 790 | 789::Safri Duo 791 | 790::Peaches 792 | 791::Blaqk Audio 793 | 792::Alien Vampires 794 | 793::Heimataerde 795 | 794::David Vendetta 796 | 795::Rank 1 797 | 796::Faderhead 798 | 797::Destroid 799 | 798::Blind Passengers 800 | 799::Beborn Beton 801 | 800::Faith and the Muse 802 | 801::Miss Kittin 803 | 802::Chicks on Speed 804 | 803::BT 805 | 804::Darude 806 | 805::Switchblade Symphony 807 | 806::Lasgo 808 | 807::Kittie 809 | 808::Michigan 810 | 809::Felix da Housecat 811 | 810::Pulsedriver 812 | 811::Lo-Fi-Fnk 813 | 812::Welle:Erdball 814 | 813::T.O.Y. 815 | 814::Electrocute 816 | 815::Pzychobitch 817 | 816::Hallucinogen 818 | 817::Astral Projection 819 | 818::Razed in Black 820 | 819::Dismantled 821 | 820::Amon Amarth 822 | 821::Kreator 823 | 822::Queen 824 | 823::Sodom 825 | 824::Flotsam and Jetsam 826 | 825::Sabaton 827 | 826::Hirax 828 | 827::Venom 829 | 828::Biomechanical 830 | 829::Turisas 831 | 830::Warbringer 832 | 831::Dismember 833 | 832::Cut Copy 834 | 833::Katie Melua 835 | 834::Garbage 836 | 835::Scorpions 837 | 836::a-ha 838 | 837::Blur 839 | 838::Arctic Monkeys 840 | 839::Bloc Party 841 | 840::Interpol 842 | 841::Toni Braxton 843 | 842::Bob Marley 844 | 843::Whitney Houston 845 | 844::Mary J. Blige 846 | 845::Brandy 847 | 846::Monica 848 | 847::Kelly Clarkson 849 | 848::Alanis Morissette 850 | 849::Cobra Starship 851 | 850::Cher 852 | 851::Wir sind Helden 853 | 852::Tokyo Police Club 854 | 853::The Kills 855 | 854::The Strokes 856 | 855::Yeah Yeah Yeahs 857 | 856::She & Him 858 | 857::Ra Ra Riot 859 | 858::Local Natives 860 | 859::3 Doors Down 861 | 860::Gwen Stefani 862 | 861::La Roux 863 | 862::Alphabeat 864 | 863::Oasis 865 | 864::Space Cowboy 866 | 865::Pitty 867 | 866::Ellie Goulding 868 | 867::The Kinks 869 | 868::Chuck Berry 870 | 869::Ennio Morricone 871 | 870::Kings of Convenience 872 | 871::Elliott Smith 873 | 872::Squarepusher 874 | 873::of Montreal 875 | 874::Neil Young 876 | 875::The Veronicas 877 | 876::Marina & the Diamonds 878 | 877::The xx 879 | 878::Kaiser Chiefs 880 | 879::Electric Light Orchestra 881 | 880::Johnny Cash 882 | 881::Buena Vista Social Club 883 | 882::Ozzy Osbourne 884 | 883::1200 Micrograms 885 | 884::Autechre 886 | 885::Carbon Based Lifeforms 887 | 886::Casino Versus Japan 888 | 887::Arovane 889 | 888::Proem 890 | 889::The Crystal Method 891 | 890::Ochre 892 | 891::Belinda 893 | 892::August Burns Red 894 | 893::Slayer 895 | 894::Alice in Chains 896 | 895::Pixies 897 | 896::The Doors 898 | 897::Tegan and Sara 899 | 898::Amy Winehouse 900 | 899::Kamelot 901 | 900::The Cardigans 902 | 901::Yanni 903 | 902::At the Drive-In 904 | 903::Simple Minds 905 | 904::The Kooks 906 | 905::Alesha Dixon 907 | 906::Alan Silvestri 908 | 907::Franz Ferdinand 909 | 908::Patrick Wolf 910 | 909::Phoenix 911 | 910::The Police 912 | 911::Roy Orbison 913 | 912::Venetian Snares 914 | 913::Shpongle 915 | 914::Skank 916 | 915::The Beach Boys 917 | 916::Samael 918 | 917::Black Sabbath 919 | 918::White Lies 920 | 919::Freemasons 921 | 920::Calvin Harris 922 | 921::Pendulum 923 | 922::Genesis 924 | 923::Paul McCartney 925 | 924::The Jimi Hendrix Experience 926 | 925::ABBA 927 | 926::Matt & Kim 928 | 927::Antonio Vivaldi 929 | 928::Just Jack 930 | 929::Natalie Imbruglia 931 | 930::The Last Shadow Puppets 932 | 931::Morbid Angel 933 | 932::Fleet Foxes 934 | 933::Jimi Hendrix 935 | 934::Motel 936 | 935::Clint Mansell 937 | 936::Brian Eno 938 | 937::Hammock 939 | 938::Soundtrack 940 | 939::Little Joy 941 | 940::UNKLE 942 | 941::5'nizza 943 | 942::Thrice 944 | 943::Gnarls Barkley 945 | 944::Flying Lotus 946 | 945::Raekwon 947 | 946::Four Tet 948 | 947::Prefuse 73 949 | 948::The Avalanches 950 | 949::The Black Keys 951 | 950::Metronomy 952 | 951::Coil 953 | 952::Steve Jablonsky 954 | 953::Lara Fabian 955 | 954::Yiruma 956 | 955::M.I.A. 957 | 956::Brown Eyed Girls 958 | 957::Brandon Flowers 959 | 958::Serge Gainsbourg 960 | 959::Beach House 961 | 960::AFX 962 | 961::Jane Air 963 | 962::Wisp 964 | 963::Dr. Dre 965 | 964::Hande Yener 966 | 965::Aerosmith 967 | 966::Monster Magnet 968 | 967::Destroyer 969 | 968::Danny Elfman 970 | 969::Basshunter 971 | 970::Eric Prydz 972 | 971::Spice Girls 973 | 972::The Drums 974 | 973::Idiot Pilot 975 | 974::Biffy Clyro 976 | 975::Foals 977 | 976::Slash 978 | 977::will.i.am 979 | 978::City and Colour 980 | 979::VersaEmerge 981 | 980::Ella Fitzgerald 982 | 981::The Flashbulb 983 | 982::Amon Tobin 984 | 983::µ-Ziq 985 | 984::Chris Clark 986 | 985::Kettel 987 | 986::Clark 988 | 987::Tycho 989 | 988::Bola 990 | 989::The Future Sound of London 991 | 990::Wagon Christ 992 | 991::Telefon Tel Aviv 993 | 992::DJ Shadow 994 | 993::Lenny Kravitz 995 | 994::Distance 996 | 995::The Dead Weather 997 | 996::The Dust Brothers 998 | 997::Serj Tankian 999 | 998::Wintersun 1000 | 999::The Whitest Boy Alive 1001 | 1000::Colby O'Donis 1002 | 1001::DJ Krush 1003 | 1002::Sébastien Tellier 1004 | 1003::Flunk 1005 | 1004::DJ Vadim 1006 | 1005::Paradiso Girls 1007 | 1006::Cansei de Ser Sexy 1008 | 1007::Kate Bush 1009 | 1008::Jon Brion 1010 | 1009::Slagsmålsklubben 1011 | 1010::Blonde Redhead 1012 | 1011::Steven Wilson 1013 | 1012::Jet 1014 | 1013::M83 1015 | 1014::No-Man 1016 | 1015::Sheryl Crow 1017 | 1016::[unknown] 1018 | 1017::Carole King 1019 | 1018::Rainbow 1020 | 1019::Róisín Murphy 1021 | 1020::Biosphere 1022 | 1021::Unter Null 1023 | 1022::Jack Off Jill 1024 | 1023::Tim Hecker 1025 | 1024::Broken Bells 1026 | 1025::Ratatat 1027 | 1026::Soulfly 1028 | 1027::The Horrors 1029 | 1028::Marilyn Monroe 1030 | 1029::Lumen 1031 | 1030::Танцы Минус 1032 | 1031::CocoRosie 1033 | 1032::Wings 1034 | 1033::Alcazar 1035 | 1034::The Presets 1036 | 1035::Mr. Oizo 1037 | 1036::Chromeo 1038 | 1037::Freddie Mercury 1039 | 1038::Morphine 1040 | 1039::The Dandy Warhols 1041 | 1040::Raul Seixas 1042 | 1041::The Cinematics 1043 | 1042::The Postal Service 1044 | 1043::UFO 1045 | 1044::Die Ärzte 1046 | 1045::Switchfoot 1047 | 1046::Europe 1048 | 1047::The Thermals 1049 | 1048::Audio Bullys 1050 | 1049::The Yardbirds 1051 | 1050::Tricky 1052 | 1051::Gin Blossoms 1053 | 1052::Junior Senior 1054 | 1053::Dusty Springfield 1055 | 1054::Jamie Cullum 1056 | 1055::Junior Boys 1057 | 1056::Cujo 1058 | 1057::ISAN 1059 | 1058::Sandra 1060 | 1059::Гражданская Оборона 1061 | 1060::Nicholas Hooper 1062 | 1061::Charlotte Sometimes 1063 | 1062::ILS 1064 | 1063::Survivor 1065 | 1064::StoneBridge 1066 | 1065::Kid Loco 1067 | 1066::Nancy Sinatra 1068 | 1067::System 7 1069 | 1068::Yo La Tengo 1070 | 1069::Subheim 1071 | 1070::Arcana 1072 | 1071::If These Trees Could Talk 1073 | 1072::Peter Bjorn and John 1074 | 1073::LMFAO 1075 | 1074::Birdy Nam Nam 1076 | 1075::Godspeed You! Black Emperor 1077 | 1076::Stars of the Lid 1078 | 1077::Christ. 1079 | 1078::Bibio 1080 | 1079::N*E*R*D 1081 | 1080::Theory of a Deadman 1082 | 1081::Tyler Bates 1083 | 1082::Straylight Run 1084 | 1083::Fanfarlo 1085 | 1084::Something Corporate 1086 | 1085::Nick Lachey 1087 | 1086::Black Moth Super Rainbow 1088 | 1087::Mirah 1089 | 1088::Kate Ryan 1090 | 1089::Manchester Orchestra 1091 | 1090::Hans Zimmer & James Newton Howard 1092 | 1091::RJD2 1093 | 1092::Ulrich Schnauss 1094 | 1093::D12 1095 | 1094::Young Buck 1096 | 1095::Albert Hammond, Jr. 1097 | 1096::Aztec Camera 1098 | 1097::Clinic 1099 | 1098::Twista 1100 | 1099::The Books 1101 | 1100::Hercules and Love Affair 1102 | 1101::B.B. King 1103 | 1102::Moderat 1104 | 1103::Eva Cassidy 1105 | 1104::Jerry Goldsmith 1106 | 1105::Axwell 1107 | 1106::Empire of the Sun 1108 | 1107::Plan B 1109 | 1108::The Black Ghosts 1110 | 1109::Suicidal Tendencies 1111 | 1110::Hugh Laurie 1112 | 1111::Detektivbyrån 1113 | 1112::Gescom 1114 | 1113::Polygon Window 1115 | 1114::The Tuss 1116 | 1115::Luke Vibert 1117 | 1116::Clueso 1118 | 1117::I Blame Coco 1119 | 1118::Tunng 1120 | 1119::Xavier Naidoo 1121 | 1120::The Dø 1122 | 1121::The Allman Brothers Band 1123 | 1122::The Golden Filter 1124 | 1123::Lil' Kim 1125 | 1124::m-flo 1126 | 1125::Kleerup 1127 | 1126::Neon Indian 1128 | 1127::Cinnamon Chasers 1129 | 1128::Garou 1130 | 1129::The Coral 1131 | 1130::Secret Garden 1132 | 1131::Trent Reznor 1133 | 1132::Nancy Ajram 1134 | 1133::James Taylor 1135 | 1134::Lightning Bolt 1136 | 1135::iiO 1137 | 1136::Miss Kittin & The Hacker 1138 | 1137::David Arnold 1139 | 1138::Desmond Dekker 1140 | 1139::Jan Delay 1141 | 1140::Meat Beat Manifesto 1142 | 1141::Die Fantastischen Vier 1143 | 1142::Young Jeezy 1144 | 1143::Amorphous Androgynous 1145 | 1144::Steve Winwood 1146 | 1145::Skalpel 1147 | 1146::Death in Vegas 1148 | 1147::Wavves 1149 | 1148::Bear in Heaven 1150 | 1149::Embrace 1151 | 1150::Xavier Rudd 1152 | 1151::Monolake 1153 | 1152::John Powell 1154 | 1153::Kevin Devine 1155 | 1154::I Am Kloot 1156 | 1155::Klaus Schulze 1157 | 1156::Paul Desmond 1158 | 1157::Dexter Gordon 1159 | 1158::Dan Black 1160 | 1159::Azure Ray 1161 | 1160::Tiger Lou 1162 | 1161::Trevor Rabin 1163 | 1162::Sub Focus 1164 | 1163::Bag Raiders 1165 | 1164::Silver Jews 1166 | 1165::India.Arie 1167 | 1166::Adorable 1168 | 1167::Fettes Brot 1169 | 1168::Olly Murs 1170 | 1169::Discovery 1171 | 1170::Skrillex 1172 | 1171::Dexys Midnight Runners 1173 | 1172::Swayzak 1174 | 1173::TERIYAKI BOYZ 1175 | 1174::Leftfield 1176 | 1175::ASHES dIVIDE 1177 | 1176::John B 1178 | 1177::Marco Beltrami 1179 | 1178::Remy Ma 1180 | 1179::Trina 1181 | 1180::Shawnna 1182 | 1181::Sixtoo 1183 | 1182::Plastikman 1184 | 1183::Dirty Vegas 1185 | 1184::Benassi Bros. 1186 | 1185::Agoria 1187 | 1186::Green Sun 1188 | 1187::The KLF 1189 | 1188::Anahí 1190 | 1189::Dulce María 1191 | 1190::Christian Chávez 1192 | 1191::Nicki Minaj 1193 | 1192::Enrique Iglesias 1194 | 1193::Red Hot Chili Peppers 1195 | 1194::Bryan Adams 1196 | 1195::Kid Abelha 1197 | 1196::Jordin Sparks 1198 | 1197::Alicia Keys 1199 | 1198::Katharine McPhee 1200 | 1199::Kat DeLuna 1201 | 1200::Nelly Furtado 1202 | 1201::Ciara 1203 | 1202::Keri Hilson 1204 | 1203::Jonas Brothers 1205 | 1204::T.I. 1206 | 1205::Colbie Caillat 1207 | 1206::Jason Mraz 1208 | 1207::Brad Paisley 1209 | 1208::Sugarland 1210 | 1209::Aaron Carter 1211 | 1210::*NSYNC 1212 | 1211::Miley Cyrus 1213 | 1212::No Doubt 1214 | 1213::Flo Rida 1215 | 1214::Demi Lovato 1216 | 1215::Selena Gomez & the Scene 1217 | 1216::R.E.M. 1218 | 1217::Emily Osment 1219 | 1218::Cyndi Lauper 1220 | 1219::Kelly Osbourne 1221 | 1220::Dixie Chicks 1222 | 1221::Timbaland 1223 | 1222::Vanessa Hudgens 1224 | 1223::Boys Like Girls 1225 | 1224::Camp Rock 1226 | 1225::Ace of Base 1227 | 1226::Lady Antebellum 1228 | 1227::Pitbull 1229 | 1228::Selena Gomez 1230 | 1229::Carrie Underwood 1231 | 1230::Rednex 1232 | 1231::Big Time Rush 1233 | 1232::Gloriana 1234 | 1233::Amy Macdonald 1235 | 1234::Metric 1236 | 1235::Jennette McCurdy 1237 | 1236::Keke Palmer 1238 | 1237::Dolly Parton 1239 | 1238::Billy Ray Cyrus 1240 | 1239::Pato Fu 1241 | 1240::Cássia Eller 1242 | 1241::Yellowcard 1243 | 1242::Adele 1244 | 1243::Leighton Meester 1245 | 1244::Simon Curtis 1246 | 1245::Two Door Cinema Club 1247 | 1246::Jessie James 1248 | 1247::Dierks Bentley 1249 | 1248::High School Musical 1250 | 1249::Kris Allen 1251 | 1250::Christina Perri 1252 | 1251::James Morrison 1253 | 1252::Plain White T's 1254 | 1253::Aqua 1255 | 1254::Jason Aldean 1256 | 1255::Blake Shelton 1257 | 1256::Gary Allan 1258 | 1257::Kenny Chesney 1259 | 1258::Lee Ann Womack 1260 | 1259::Matisyahu 1261 | 1260::The Lonely Island 1262 | 1261::Hanson 1263 | 1262::Tila Tequila 1264 | 1263::The Spill Canvas 1265 | 1264::Drake Bell 1266 | 1265::Edward Maya 1267 | 1266::Ladyhawke 1268 | 1267::Gabriella Cilmi 1269 | 1268::Nando Reis 1270 | 1269::TLC 1271 | 1270::Paula Abdul 1272 | 1271::Kellie Pickler 1273 | 1272::Nelly 1274 | 1273::John Denver 1275 | 1274::Miranda! 1276 | 1275::Boney M. 1277 | 1276::Matt Nathanson 1278 | 1277::Jay Sean 1279 | 1278::Charice 1280 | 1279::Flora 1281 | 1280::Sean Kingston 1282 | 1281::The Outfield 1283 | 1282::Iyaz 1284 | 1283::Fat Joe 1285 | 1284::Céline Dion 1286 | 1285::Ana Carolina 1287 | 1286::The Faint 1288 | 1287::The Cranberries 1289 | 1288::Beck 1290 | 1289::Cassie 1291 | 1290::Ashanti 1292 | 1291::Nicole Scherzinger 1293 | 1292::Destiny's Child 1294 | 1293::The Asteroids Galaxy Tour 1295 | 1294::Los Campesinos! 1296 | 1295::Mika 1297 | 1296::MGMT 1298 | 1297::Stevie Wonder 1299 | 1298::Tiziano Ferro 1300 | 1299::David Bisbal 1301 | 1300::Wisin & Yandel 1302 | 1301::Cherish 1303 | 1302::Santigold 1304 | 1303::Reba McEntire 1305 | 1304::S Club 7 1306 | 1305::Fool's Garden 1307 | 1306::Gloria Estefan 1308 | 1307::Aaliyah 1309 | 1308::Celia Cruz 1310 | 1309::Extreme 1311 | 1310::Bananarama 1312 | 1311::UB40 1313 | 1312::Mr. Big 1314 | 1313::Barry White 1315 | 1314::Sean Paul 1316 | 1315::KC and the Sunshine Band 1317 | 1316::Phantom Planet 1318 | 1317::Counting Crows 1319 | 1318::Violent Femmes 1320 | 1319::A.R. Rahman 1321 | 1320::Soda Stereo 1322 | 1321::DJ BoBo 1323 | 1322::Modern Talking 1324 | 1323::Gigi D'Agostino 1325 | 1324::Lila Downs 1326 | 1325::Tom Petty and the Heartbreakers 1327 | 1326::Does It Offend You, Yeah? 1328 | 1327::The Bangles 1329 | 1328::Fito Páez 1330 | 1329::Calle 13 1331 | 1330::Missy Elliott 1332 | 1331::Selena 1333 | 1332::Estopa 1334 | 1333::Fabolous 1335 | 1334::Los Rodríguez 1336 | 1335::The Weepies 1337 | 1336::Lissy Trullie 1338 | 1337::Bobby Valentino 1339 | 1338::Fugees 1340 | 1339::Kimya Dawson 1341 | 1340::The Little Ones 1342 | 1341::Bob Sinclar 1343 | 1342::Kabah 1344 | 1343::Don Omar 1345 | 1344::Henry Purcell 1346 | 1345::White Rabbits 1347 | 1346::Marc-Antoine Charpentier 1348 | 1347::Luigi Boccherini 1349 | 1348::Tomaso Giovanni Albinoni 1350 | 1349::Giovanni Battista Pergolesi 1351 | 1350::Hot Chocolate 1352 | 1351::Culture Beat 1353 | 1352::The Chemical Brothers 1354 | 1353::Led Zeppelin 1355 | 1354::Sam Cooke 1356 | 1355::Deltron 3030 1357 | 1356::Too $hort 1358 | 1357::Mudhoney 1359 | 1358::nevershoutnever! 1360 | 1359::David Cook 1361 | 1360::David Archuleta 1362 | 1361::Shania Twain 1363 | 1362::The Who 1364 | 1363::The Rolling Stones 1365 | 1364::Enter Shikari 1366 | 1365::Hannah Montana 1367 | 1366::Scar Symmetry 1368 | 1367::Patsy Cline 1369 | 1368::Elvis Presley 1370 | 1369::The Cheetah Girls 1371 | 1370::Aly & AJ 1372 | 1371::Everlife 1373 | 1372::Weird Al Yankovic 1374 | 1373::Liz Phair 1375 | 1374::Nat King Cole 1376 | 1375::Cryptopsy 1377 | 1376::Louis Armstrong 1378 | 1377::Relient K 1379 | 1378::Wale 1380 | 1379::Pink Martini 1381 | 1380::Air Supply 1382 | 1381::Judy Garland 1383 | 1382::Bing Crosby 1384 | 1383::Allstar Weekend 1385 | 1384::Andy Williams 1386 | 1385::Dinah Washington 1387 | 1386::Jimmy Buffett 1388 | 1387::Bobby Darin 1389 | 1388::Eartha Kitt 1390 | 1389::Martin L. Gore 1391 | 1390::Judas Priest 1392 | 1391::Tarot 1393 | 1392::Deep Purple 1394 | 1393::Mogwai 1395 | 1394::Puscifer 1396 | 1395::Eicca Toppinen 1397 | 1396::The Cult 1398 | 1397::Therion 1399 | 1398::Eisbrecher 1400 | 1399::Craig Armstrong 1401 | 1400::Steppenwolf 1402 | 1401::Vangelis 1403 | 1402::Agua de Annique 1404 | 1403::Rob Dougan 1405 | 1404::Skunk Anansie 1406 | 1405::John Murphy 1407 | 1406::A Silver Mt. Zion 1408 | 1407::Joanna Newsom 1409 | 1408::Bonobo 1410 | 1409::Saxon Shore 1411 | 1410::Yndi Halda 1412 | 1411::Jeniferever 1413 | 1412::Móveis Coloniais de Acaju 1414 | 1413::Era 1415 | 1414::Skid Row 1416 | 1415::Tarja 1417 | 1416::菅野よう子 1418 | 1417::Tristania 1419 | 1418::Queensrÿche 1420 | 1419::Creedence Clearwater Revival 1421 | 1420::George Harrison 1422 | 1421::Chico Buarque 1423 | 1422::Maria Rita 1424 | 1423::Rita Lee 1425 | 1424::Eddie Vedder 1426 | 1425::Esbjörn Svensson Trio 1427 | 1426::Andrew Lloyd Webber 1428 | 1427::Feist 1429 | 1428::Billie Holiday 1430 | 1429::Meiko 1431 | 1430::Mallu Magalhães 1432 | 1431::Cazuza 1433 | 1432::Vanguart 1434 | 1433::Amiina 1435 | 1434::Joe Cocker 1436 | 1435::William Fitzsimmons 1437 | 1436::Joshua Radin 1438 | 1437::Zé Ramalho 1439 | 1438::Firehouse 1440 | 1439::Tom Zé 1441 | 1440::Gregory and the Hawk 1442 | 1441::Melody Gardot 1443 | 1442::Richard Marx 1444 | 1443::Eric Clapton 1445 | 1444::Maurice Ravel 1446 | 1445::The Verve 1447 | 1446::Сплин 1448 | 1447::Archive 1449 | 1448::Indochine 1450 | 1449::Nightmares on Wax 1451 | 1450::The Shadows 1452 | 1451::Simon & Garfunkel 1453 | 1452::Peter Gabriel 1454 | 1453::Diana Krall 1455 | 1454::Arvo Pärt 1456 | 1455::Мумий Тролль 1457 | 1456::Belinda Carlisle 1458 | 1457::Gabriel Fauré 1459 | 1458::Crustation 1460 | 1459::Mandalay 1461 | 1460::Sergei Prokofiev 1462 | 1461::Dmitri Shostakovich 1463 | 1462::Dinosaur Pile-Up 1464 | 1463::Robert Schumann 1465 | 1464::Edvard Grieg 1466 | 1465::Carpathian Forest 1467 | 1466::George Michael 1468 | 1467::Spandau Ballet 1469 | 1468::Nik Kershaw 1470 | 1469::ABC 1471 | 1470::Damien Rice 1472 | 1471::Queens of the Stone Age 1473 | 1472::Bob Marley & The Wailers 1474 | 1473::Klaxons 1475 | 1474::Howlin' Wolf 1476 | 1475::Ray Charles 1477 | 1476::Muddy Waters 1478 | 1477::Prince 1479 | 1478::Beastie Boys 1480 | 1479::The White Stripes 1481 | 1480::Dire Straits 1482 | 1481::Gotthard 1483 | 1482::Eagles 1484 | 1483::Alice Cooper 1485 | 1484::Dark Tranquillity 1486 | 1485::At the Gates 1487 | 1486::Atreyu 1488 | 1487::Pantera 1489 | 1488::Lamb of God 1490 | 1489::Kyuss 1491 | 1490::John Williams 1492 | 1491::Helloween 1493 | 1492::Stratovarius 1494 | 1493::Journey 1495 | 1494::Testament 1496 | 1495::Death 1497 | 1496::Yngwie Malmsteen 1498 | 1497::Blind Guardian 1499 | 1498::Kasabian 1500 | 1499::The Donnas 1501 | 1500::Iron Butterfly 1502 | 1501::Orchestral Manoeuvres in the Dark 1503 | 1502::Kraftwerk 1504 | 1503::Melvins 1505 | 1504::Guns N' Roses 1506 | 1505::Mayhem 1507 | 1506::Carcass 1508 | 1507::Gamma Ray 1509 | 1508::Annihilator 1510 | 1509::Tenacious D 1511 | 1510::W.A.S.P. 1512 | 1511::Kansas 1513 | 1512::The Mamas & The Papas 1514 | 1513::Ramones 1515 | 1514::Anthrax 1516 | 1515::The Baseballs 1517 | 1516::Blind Melon 1518 | 1517::Avenged Sevenfold 1519 | 1518::Hans Zimmer 1520 | 1519::Mötley Crüe 1521 | 1520::T. Rex 1522 | 1521::Syd Barrett 1523 | 1522::The Runaways 1524 | 1523::Ratt 1525 | 1524::Stryper 1526 | 1525::Patti Smith 1527 | 1526::Jerry Cantrell 1528 | 1527::The Black Crowes 1529 | 1528::L7 1530 | 1529::Gary Numan 1531 | 1530::Thomas Dolby 1532 | 1531::Rage Against the Machine 1533 | 1532::Blue Öyster Cult 1534 | 1533::Frankie Goes to Hollywood 1535 | 1534::Heart 1536 | 1535::Twisted Sister 1537 | 1536::Dio 1538 | 1537::KISS 1539 | 1538::Van Halen 1540 | 1539::Joan Jett 1541 | 1540::Airbourne 1542 | 1541::D-A-D 1543 | 1542::Howard Shore 1544 | 1543::Boston 1545 | 1544::Fantômas 1546 | 1545::Kajagoogoo 1547 | 1546::Lita Ford 1548 | 1547::Vixen 1549 | 1548::Hanoi Rocks 1550 | 1549::Whitesnake 1551 | 1550::Joan Jett and the Blackhearts 1552 | 1551::Velvet Revolver 1553 | 1552::CRASHDÏET 1554 | 1553::Cheap Trick 1555 | 1554::Sweet 1556 | 1555::Lynyrd Skynyrd 1557 | 1556::Manowar 1558 | 1557::Thin Lizzy 1559 | 1558::Cream 1560 | 1559::Warrant 1561 | 1560::Stevie Ray Vaughan and Double Trouble 1562 | 1561::Buddy Guy 1563 | 1562::The Animals 1564 | 1563::ZZ Top 1565 | 1564::Buddy Holly 1566 | 1565::Dokken 1567 | 1566::The Stooges 1568 | 1567::Marillion 1569 | 1568::The Fall 1570 | 1569::Black Flag 1571 | 1570::Dead Kennedys 1572 | 1571::The Adicts 1573 | 1572::Supergrass 1574 | 1573::Quiet Riot 1575 | 1574::David Lee Roth 1576 | 1575::Saxon 1577 | 1576::Ugly Kid Joe 1578 | 1577::L.A. Guns 1579 | 1578::Hole 1580 | 1579::Bikini Kill 1581 | 1580::The Corrs 1582 | 1581::Uriah Heep 1583 | 1582::Asia 1584 | 1583::Dinosaur Jr. 1585 | 1584::The Vines 1586 | 1585::Status Quo 1587 | 1586::Foreigner 1588 | 1587::Poison 1589 | 1588::Burzum 1590 | 1589::Darkthrone 1591 | 1590::Girlschool 1592 | 1591::Cathedral 1593 | 1592::Doro 1594 | 1593::Cinderella 1595 | 1594::Lou Reed 1596 | 1595::Busted 1597 | 1596::New York Dolls 1598 | 1597::Kalmah 1599 | 1598::Cutting Crew 1600 | 1599::Faster Pussycat 1601 | 1600::Accept 1602 | 1601::White Lion 1603 | 1602::Dropkick Murphys 1604 | 1603::Diamond Head 1605 | 1604::Robert Johnson 1606 | 1605::Eliza Doolittle 1607 | 1606::Anvil 1608 | 1607::Winger 1609 | 1608::Jefferson Airplane 1610 | 1609::Nena 1611 | 1610::Men Without Hats 1612 | 1611::Animotion 1613 | 1612::Rob Zombie 1614 | 1613::Jeff Beck 1615 | 1614::Big Country 1616 | 1615::Modern English 1617 | 1616::Gary Moore 1618 | 1617::The Alan Parsons Project 1619 | 1618::Tomahawk 1620 | 1619::Eternal Tears of Sorrow 1621 | 1620::Sebastian Bach 1622 | 1621::Loreena McKennitt 1623 | 1622::Wall of Voodoo 1624 | 1623::Bow Wow Wow 1625 | 1624::Agent Orange 1626 | 1625::Little Walter 1627 | 1626::George Thorogood & The Destroyers 1628 | 1627::Great White 1629 | 1628::Jason Becker 1630 | 1629::The Buggles 1631 | 1630::Tesla 1632 | 1631::Screaming Trees 1633 | 1632::Bad Company 1634 | 1633::Steel Panther 1635 | 1634::Babes in Toyland 1636 | 1635::Joan Baez 1637 | 1636::Mother Love Bone 1638 | 1637::Triumph 1639 | 1638::Ted Nugent 1640 | 1639::Mad Season 1641 | 1640::Voivod 1642 | 1641::Woody Guthrie 1643 | 1642::Generation X 1644 | 1643::Bad English 1645 | 1644::Impellitteri 1646 | 1645::Johnny Thunders 1647 | 1646::Don McLean 1648 | 1647::Brian May 1649 | 1648::The Knack 1650 | 1649::Orbital 1651 | 1650::Luther Vandross 1652 | 1651::Quincy Jones 1653 | 1652::Grace Jones 1654 | 1653::Boz Scaggs 1655 | 1654::Brainstorm 1656 | 1655::The Dining Rooms 1657 | 1656::Sérgio Mendes 1658 | 1657::Al Green 1659 | 1658::A Day to Remember 1660 | 1659::Pillar 1661 | 1660::Disciple 1662 | 1661::Family Force 5 1663 | 1662::Fireflight 1664 | 1663::Talk Talk 1665 | 1664::Prefab Sprout 1666 | 1665::Icehouse 1667 | 1666::Fiction Factory 1668 | 1667::Jean-Michel Jarre 1669 | 1668::Howard Jones 1670 | 1669::Thompson Twins 1671 | 1670::The Fixx 1672 | 1671::Level 42 1673 | 1672::Erasure 1674 | 1673::Berlin 1675 | 1674::The Psychedelic Furs 1676 | 1675::Parliament 1677 | 1676::Art of Noise 1678 | 1677::XTC 1679 | 1678::Pseudo Echo 1680 | 1679::Midnight Oil 1681 | 1680::Shriekback 1682 | 1681::Wire 1683 | 1682::Sparks 1684 | 1683::Yellow Magic Orchestra 1685 | 1684::John Foxx 1686 | 1685::Landscape 1687 | 1686::Scritti Politti 1688 | 1687::Yello 1689 | 1688::New Musik 1690 | 1689::Cabaret Voltaire 1691 | 1690::LCD Soundsystem 1692 | 1691::Hall & Oates 1693 | 1692::Arcadia 1694 | 1693::The Damned 1695 | 1694::Soft Cell 1696 | 1695::The Associates 1697 | 1696::Propaganda 1698 | 1697::Go West 1699 | 1698::Gang of Four 1700 | 1699::Fad Gadget 1701 | 1700::Boytronic 1702 | 1701::Blancmange 1703 | 1702::Classix Nouveaux 1704 | 1703::Wang Chung 1705 | 1704::The The 1706 | 1705::The Communards 1707 | 1706::Saga 1708 | 1707::Telex 1709 | 1708::!!! 1710 | 1709::Blue Peter 1711 | 1710::O.S.T.R. 1712 | 1711::Kult 1713 | 1712::Pidżama Porno 1714 | 1713::Symphony X 1715 | 1714::Alestorm 1716 | 1715::Falconer 1717 | 1716::Star One 1718 | 1717:::wumpscut: 1719 | 1718::Electronic 1720 | 1719::Marc Almond 1721 | 1720::Pulp 1722 | 1721::Manic Street Preachers 1723 | 1722::Wolfsheim 1724 | 1723::The Good, the Bad & the Queen 1725 | 1724::Rooney 1726 | 1725::The Residents 1727 | 1726::Bee Gees 1728 | 1727::Tuxedomoon 1729 | 1728::In Extremo 1730 | 1729::Deutsch Amerikanische Freundschaft 1731 | 1730::Dagoba 1732 | 1731::Throbbing Gristle 1733 | 1732::Captain Beefheart & His Magic Band 1734 | 1733::The Legendary Pink Dots 1735 | 1734::The Power Station 1736 | 1735::Minus the Bear 1737 | 1736::The Stone Roses 1738 | 1737::Angelo Badalamenti 1739 | 1738::At Vance 1740 | 1739::The Pipettes 1741 | 1740::Tocotronic 1742 | 1741::Datarock 1743 | 1742::Astor Piazzolla 1744 | 1743::Oi Va Voi 1745 | 1744::Electric Six 1746 | 1745::Jarvis Cocker 1747 | 1746::Neurotic Outsiders 1748 | 1747::The Devils 1749 | 1748::Gloria Gaynor 1750 | 1749::Flowing Tears 1751 | 1750::Perfume 1752 | 1751::Versailles 1753 | 1752::ルルティア 1754 | 1753::múm 1755 | 1754::Aphex Twin 1756 | 1755::Boards of Canada 1757 | 1756::Ellen Allien 1758 | 1757::Daedelus 1759 | 1758::B. Fleischmann 1760 | 1759::Booka Shade 1761 | 1760::Mujuice 1762 | 1761::edIT 1763 | 1762::Ellen Allien & Apparat 1764 | 1763::Frog Pocket 1765 | 1764::Rotator 1766 | 1765::Spor 1767 | 1766::Noisia 1768 | 1767::Black Sun Empire 1769 | 1768::The Orb 1770 | 1769::Ricardo Villalobos 1771 | 1770::William Basinski 1772 | 1771::Pole 1773 | 1772::Deadbeat 1774 | 1773::Dntel 1775 | 1774::Add N to (X) 1776 | 1775::Brothomstates 1777 | 1776::Dominik Eulberg 1778 | 1777::Richie Hawtin 1779 | 1778::Mathew Jonson 1780 | 1779::Hexstatic 1781 | 1780::Alva Noto + Ryuichi Sakamoto 1782 | 1781::Kings of Leon 1783 | 1782::Joss Stone 1784 | 1783::Yeni Türkü 1785 | 1784::Barış Manço 1786 | 1785::Mor ve Ötesi 1787 | 1786::Düş Sokağı Sakinleri 1788 | 1787::Cradle of Filth 1789 | 1788::Little Richard 1790 | 1789::HammerFall 1791 | 1790::Massacration 1792 | 1791::Creed 1793 | 1792::The Hellacopters 1794 | 1793::Backyard Babies 1795 | 1794::Kelly Rowland 1796 | 1795::Gloria Trevi 1797 | 1796::Ludacris 1798 | 1797::Jennifer Hudson 1799 | 1798::Michelle Williams 1800 | 1799::Trey Songz 1801 | 1800::Pyotr Ilyich Tchaikovsky 1802 | 1801::Sade 1803 | 1802::Max Richter 1804 | 1803::Jack Johnson 1805 | 1804::Jethro Tull 1806 | 1805::The Album Leaf 1807 | 1806::John Mayer 1808 | 1807::Bruce Springsteen 1809 | 1808::Trans-Siberian Orchestra 1810 | 1809::Bill Withers 1811 | 1810::Five Finger Death Punch 1812 | 1811::Santana 1813 | 1812::Smash Mouth 1814 | 1813::Mike & The Mechanics 1815 | 1814::Kim Wilde 1816 | 1815::New Found Glory 1817 | 1816::Georg Friedrich Händel 1818 | 1817::Secondhand Serenade 1819 | 1818::Starsailor 1820 | 1819::Daddy Yankee 1821 | 1820::B.J. Thomas 1822 | 1821::OutKast 1823 | 1822::Ludovico Einaudi 1824 | 1823::Norah Jones 1825 | 1824::Amethystium 1826 | 1825::Diana Ross 1827 | 1826::Chris Cornell 1828 | 1827::Luciano Pavarotti 1829 | 1828::Sarah Brightman 1830 | 1829::Andrea Bocelli 1831 | 1830::Vanessa-Mae 1832 | 1831::The Rascals 1833 | 1832::k-os 1834 | 1833::Islands 1835 | 1834::Martina McBride 1836 | 1835::Juanes 1837 | 1836::Garth Brooks 1838 | 1837::Little Big Town 1839 | 1838::Tim McGraw 1840 | 1839::Faith Hill 1841 | 1840::Glenn Miller 1842 | 1841::Reik 1843 | 1842::George Strait 1844 | 1843::Alan Jackson 1845 | 1844::Paul Young 1846 | 1845::The Doobie Brothers 1847 | 1846::Van Morrison 1848 | 1847::LL Cool J 1849 | 1848::Naked Eyes 1850 | 1849::Sin Bandera 1851 | 1850::Ringo Starr 1852 | 1851::Carpenters 1853 | 1852::Paul McCartney & Wings 1854 | 1853::Matchbox Twenty 1855 | 1854::The Moody Blues 1856 | 1855::Barbra Streisand 1857 | 1856::Supertramp 1858 | 1857::The Jackson 5 1859 | 1858::Sarah McLachlan 1860 | 1859::America 1861 | 1860::Jordan Pruitt 1862 | 1861::Tarkan 1863 | 1862::Alabama 1864 | 1863::Montgomery Gentry 1865 | 1864::Ronnie Milsap 1866 | 1865::Sara Evans 1867 | 1866::SHeDaisy 1868 | 1867::Coheed and Cambria 1869 | 1868::Big & Rich 1870 | 1869::Sly & The Family Stone 1871 | 1870::Chris Isaak 1872 | 1871::Eiffel 65 1873 | 1872::Tom Jones 1874 | 1873::Leaves' Eyes 1875 | 1874::Lionel Richie 1876 | 1875::Jars of Clay 1877 | 1876::The Ataris 1878 | 1877::Hank Williams 1879 | 1878::Willie Nelson 1880 | 1879::Emmylou Harris 1881 | 1880::All Saints 1882 | 1881::Jim Croce 1883 | 1882::The Ventures 1884 | 1883::Kenny Loggins 1885 | 1884::Grand Funk Railroad 1886 | 1885::Alejandro Sanz 1887 | 1886::The Go-Go's 1888 | 1887::Adam Ant 1889 | 1888::Quarterflash 1890 | 1889::Rick Springfield 1891 | 1890::Miranda Lambert 1892 | 1891::Ben Harper 1893 | 1892::Chicago 1894 | 1893::LeAnn Rimes 1895 | 1894::The Ronettes 1896 | 1895::Jon Secada 1897 | 1896::Mae 1898 | 1897::Kellplanet 1899 | 1898::Afro Celt Sound System 1900 | 1899::The Presidents of the United States of America 1901 | 1900::Procol Harum 1902 | 1901::The Monkees 1903 | 1902::Jónsi & Alex 1904 | 1903::Terri Clark 1905 | 1904::The Avett Brothers 1906 | 1905::John Fogerty 1907 | 1906::The Everly Brothers 1908 | 1907::Ricardo Arjona 1909 | 1908::The Hollies 1910 | 1909::The Association 1911 | 1910::Herman's Hermits 1912 | 1911::Joni Mitchell 1913 | 1912::REO Speedwagon 1914 | 1913::Tina Arena 1915 | 1914::Kitaro 1916 | 1915::The Platters 1917 | 1916::The Drifters 1918 | 1917::Boyz II Men 1919 | 1918::Kool & The Gang 1920 | 1919::Stevie Nicks 1921 | 1920::Don Henley 1922 | 1921::The Lovin' Spoonful 1923 | 1922::Chad & Jeremy 1924 | 1923::Israel Kamakawiwo'ole 1925 | 1924::Lou Rawls 1926 | 1925::Dionne Warwick 1927 | 1926::Lorrie Morgan 1928 | 1927::Neil Sedaka 1929 | 1928::Connie Francis 1930 | 1929::Marc Anthony 1931 | 1930::Richard Hawley 1932 | 1931::Billy Ocean 1933 | 1932::Zucchero 1934 | 1933::The Pogues 1935 | 1934::Conway Twitty 1936 | 1935::The Oak Ridge Boys 1937 | 1936::Randy Travis 1938 | 1937::Blackhawk 1939 | 1938::Michael McDonald 1940 | 1939::Barry Manilow 1941 | 1940::Harry Nilsson 1942 | 1941::Peter, Paul & Mary 1943 | 1942::The Temptations 1944 | 1943::Tony Bennett 1945 | 1944::Nickel Creek 1946 | 1945::George Winston 1947 | 1946::Dwight Yoakam 1948 | 1947::Shivaree 1949 | 1948::Sheena Easton 1950 | 1949::Perry Como 1951 | 1950::Xela 1952 | 1951::Los Lobos 1953 | 1952::The Guess Who 1954 | 1953::The Boo Radleys 1955 | 1954::Nick Lowe 1956 | 1955::MC Hammer 1957 | 1956::Melissa Etheridge 1958 | 1957::Scott McKenzie 1959 | 1958::Cassandra Wilson 1960 | 1959::Steel Magnolia 1961 | 1960::The Jesus Lizard 1962 | 1961::Foetus 1963 | 1962::The Birthday Party 1964 | 1963::The Jesus and Mary Chain 1965 | 1964::Big Black 1966 | 1965::Shellac 1967 | 1966::Default 1968 | 1967::The Brand New Heavies 1969 | 1968::Jim Morrison 1970 | 1969::65daysofstatic 1971 | 1970::Late of the Pier 1972 | 1971::We Are Scientists 1973 | 1972::Good Shoes 1974 | 1973::Mystery Jets 1975 | 1974::Maximum the Hormone 1976 | 1975::Gloria 1977 | 1976::McFly 1978 | 1977::Asking Alexandria 1979 | 1978::The Devil Wears Prada 1980 | 1979::blessthefall 1981 | 1980::YUI 1982 | 1981::A Skylit Drive 1983 | 1982::Flow 1984 | 1983::the GazettE 1985 | 1984::HIGH and MIGHTY COLOR 1986 | 1985::Miss May I 1987 | 1986::Attack Attack! 1988 | 1987::The Word Alive 1989 | 1988::From First to Last 1990 | 1989::Pierce the Veil 1991 | 1990::Before Their Eyes 1992 | 1991::We Came As Romans 1993 | 1992::Eyes Set to Kill 1994 | 1993::Woe, Is Me 1995 | 1994::X JAPAN 1996 | 1995::アンティック-珈琲店- 1997 | 1996::Drop Dead, Gorgeous 1998 | 1997::ORANGE RANGE 1999 | 1998::Andrew Bird 2000 | 1999::Spoon 2001 | 2000::Iron & Wine 2002 | 2001::Dave Matthews Band 2003 | 2002::The New Pornographers 2004 | 2003::Billy Joel 2005 | 2004::Barenaked Ladies 2006 | 2005::Randy Newman 2007 | 2006::Ben Folds 2008 | 2007::Paul Simon 2009 | 2008::Rufus Wainwright 2010 | 2009::Ben Folds Five 2011 | 2010::Neko Case 2012 | 2011::Calexico 2013 | 2012::Dashboard Confessional 2014 | 2013::Regina Spektor 2015 | 2014::Reel Big Fish 2016 | 2015::Foxboro Hot Tubs 2017 | 2016::Alien Ant Farm 2018 | 2017::Screamin' Jay Hawkins 2019 | 2018::A Fine Frenzy 2020 | 2019::Bad Religion 2021 | 2020::Mombojó 2022 | 2021::Silverchair 2023 | 2022::Little Boots 2024 | 2023::Hey Monday 2025 | 2024::Engenheiros do Hawaii 2026 | 2025::Capital Inicial 2027 | 2026::Legião Urbana 2028 | 2027::Titãs 2029 | 2028::HORSE the band 2030 | 2029::As I Lay Dying 2031 | 2030::Millencolin 2032 | 2031::Breathe Carolina 2033 | 2032::The Maine 2034 | 2033::Forever the Sickest Kids 2035 | 2034::Sum 41 2036 | 2035::Mayday Parade 2037 | 2036::We The Kings 2038 | 2037::Cute Is What We Aim For 2039 | 2038::Sonata Arctica 2040 | 2039::The Fratellis 2041 | 2040::Raimundos 2042 | 2041::Faichecleres 2043 | 2042::Charlie Brown Jr. 2044 | 2043::Caetano Veloso 2045 | 2044::Tiê 2046 | 2045::Shinedown 2047 | 2046::The Raconteurs 2048 | 2047::Vasco Rossi 2049 | 2048::Vega 4 2050 | 2049::The Turtles 2051 | 2050::Trivium 2052 | 2051::Kid Rock 2053 | 2052::The Classic Crime 2054 | 2053::A Rocket to the Moon 2055 | 2054::Bidê ou Balde 2056 | 2055::Anberlin 2057 | 2056::Lordi 2058 | 2057::The Cab 2059 | 2058::This Providence 2060 | 2059::Slash's Snakepit 2061 | 2060::Gym Class Heroes 2062 | 2061::Murderdolls 2063 | 2062::Rosa De Saron 2064 | 2063::Eros Ramazzotti 2065 | 2064::Chimarruts 2066 | 2065::Daniel Powter 2067 | 2066::Walls of Jericho 2068 | 2067::Barão Vermelho 2069 | 2068::MxPx 2070 | 2069::Forgotten Boys 2071 | 2070::Ingrid Michaelson 2072 | 2071::Tiago Iorc 2073 | 2072::Cachorro Grande 2074 | 2073::Graforréia Xilarmônica 2075 | 2074::Forfun 2076 | 2075::Ira! 2077 | 2076::Zebrahead 2078 | 2077::Collide 2079 | 2078::Mamonas Assassinas 2080 | 2079::4 Non Blondes 2081 | 2080::Bonde do Rolê 2082 | 2081::Cash Cash 2083 | 2082::CPM 22 2084 | 2083::Beeshop 2085 | 2084::The Academy Is... 2086 | 2085::The Rocket Summer 2087 | 2086::Artist Vs. Poet 2088 | 2087::Drive 2089 | 2088::Mushroomhead 2090 | 2089::Alice Nine 2091 | 2090::Fu Manchu 2092 | 2091::Autoramas 2093 | 2092::Rock Rocket 2094 | 2093::Milton Nascimento 2095 | 2094::The Friday Night Boys 2096 | 2095::LM.C 2097 | 2096::Gilberto Gil 2098 | 2097::The Juliana Theory 2099 | 2098::Bonde das Impostora 2100 | 2099::Júpiter Maçã 2101 | 2100::Deborah Blando 2102 | 2101::Lipstick 2103 | 2102::Faber Drive 2104 | 2103::AFI 2105 | 2104::Buckcherry 2106 | 2105::Hardcore Superstar 2107 | 2106::Vains of Jenna 2108 | 2107::Sixx:A.M. 2109 | 2108::Concrete Blonde 2110 | 2109::Mott the Hoople 2111 | 2110::鷺巣詩郎 2112 | 2111::Burial 2113 | 2112::Mono 2114 | 2113::Gimmik 2115 | 2114::36 Crazyfists 2116 | 2115::Haste the Day 2117 | 2116::Hadouken! 2118 | 2117::Skinny Puppy 2119 | 2118::The Enemy 2120 | 2119::Boxcutter 2121 | 2120::Дельфин 2122 | 2121::Xploding Plastix 2123 | 2122::Maxïmo Park 2124 | 2123::Cult of Luna 2125 | 2124::Sakura 2126 | 2125::Flobots 2127 | 2126::Neurosis 2128 | 2127::Maybeshewill 2129 | 2128::Dolphin 2130 | 2129::Stigmata 2131 | 2130::Everything Is Made in China 2132 | 2131::Ocean Colour Scene 2133 | 2132::The Pigeon Detectives 2134 | 2133::The Streets 2135 | 2134::Roadrunner United 2136 | 2135::Pelican 2137 | 2136::Rashamba 2138 | 2137::Hol Baumann 2139 | 2138::Jesus on Extasy 2140 | 2139::Ef 2141 | 2140::Rosetta 2142 | 2141::Shitdisco 2143 | 2142::Benga 2144 | 2143::Moondog 2145 | 2144::Glen Hansard 2146 | 2145::Camouflage 2147 | 2146::Cock Robin 2148 | 2147::Simply Red 2149 | 2148::Janet Jackson 2150 | 2149::Gabrielle 2151 | 2150::Saint Etienne 2152 | 2151::Annie Lennox 2153 | 2152::Crowded House 2154 | 2153::Zoé 2155 | 2154::Chris Rea 2156 | 2155::DJ Sammy 2157 | 2156::Inspiral Carpets 2158 | 2157::Donna Summer 2159 | 2158::The Jacksons 2160 | 2159::Chaka Khan 2161 | 2160::Chic 2162 | 2161::Teena Marie 2163 | 2162::Happy Mondays 2164 | 2163::Toto 2165 | 2164::Shakin' Stevens 2166 | 2165::Milk Inc. 2167 | 2166::Iris 2168 | 2167::JLS 2169 | 2168::Bonnie Tyler 2170 | 2169::Seal 2171 | 2170::Julio Iglesias 2172 | 2171::Chris de Burgh 2173 | 2172::Haddaway 2174 | 2173::Dr. Alban 2175 | 2174::2 Unlimited 2176 | 2175::Black 2177 | 2176::Basement Jaxx 2178 | 2177::Shapeshifters 2179 | 2178::The Searchers 2180 | 2179::The Pretenders 2181 | 2180::When in Rome 2182 | 2181::James 2183 | 2182::T'Pau 2184 | 2183::Wet Wet Wet 2185 | 2184::The Charlatans 2186 | 2185::Alison Moyet 2187 | 2186::The Blow Monkeys 2188 | 2187::Mylo 2189 | 2188::Band Aid 2190 | 2189::The Beloved 2191 | 2190::Texas 2192 | 2191::Dubstar 2193 | 2192::EMF 2194 | 2193::Sash! 2195 | 2194::Pat Benatar 2196 | 2195::The Archies 2197 | 2196::Commodores 2198 | 2197::Loverboy 2199 | 2198::Manfred Mann 2200 | 2199::Del Amitri 2201 | 2200::The Shamen 2202 | 2201::Roger Sanchez 2203 | 2202::R. Kelly 2204 | 2203::Bronski Beat 2205 | 2204::The Four Tops 2206 | 2205::Andy Bell 2207 | 2206::Cliff Richard 2208 | 2207::Alexander O'Neal 2209 | 2208::Tammy Wynette 2210 | 2209::Lisa Stansfield 2211 | 2210::Snap! 2212 | 2211::Glen Campbell 2213 | 2212::The Alarm 2214 | 2213::Chumbawamba 2215 | 2214::The Bluetones 2216 | 2215::F.R. David 2217 | 2216::Bros 2218 | 2217::Sister Sledge 2219 | 2218::Soul II Soul 2220 | 2219::The Trammps 2221 | 2220::Petula Clark 2222 | 2221::Shannon 2223 | 2222::Technotronic 2224 | 2223::Alice DeeJay 2225 | 2224::Ensiferum 2226 | 2225::Angra 2227 | 2226::Norther 2228 | 2227::Insomnium 2229 | 2228::Skyfire 2230 | 2229::James LaBrie 2231 | 2230::Lil' Wayne 2232 | 2231::Blue October 2233 | 2232::The Prodigy 2234 | 2233::Bombay Bicycle Club 2235 | 2234::The Scene Aesthetic 2236 | 2235::Dolores O'Riordan 2237 | 2236::Crossfade 2238 | 2237::Noize MC 2239 | 2238::Pink 2240 | 2239::Jamelia 2241 | 2240::Агата Кристи 2242 | 2241::Amatory 2243 | 2242::Sunrise Avenue 2244 | 2243::Manga 2245 | 2244::Evergreen Terrace 2246 | 2245::Би-2 2247 | 2246::Biohazard 2248 | 2247::Кино 2249 | 2248::Benny Benassi 2250 | 2249::KoЯn 2251 | 2250::Timo Maas 2252 | 2251::Слот 2253 | 2252::Novembre 2254 | 2253::Unwritten Law 2255 | 2254::Crazy Town 2256 | 2255::DMX 2257 | 2256::Пилот 2258 | 2257::Evans Blue 2259 | 2258::Propellerheads 2260 | 2259::South Park 2261 | 2260::Bomfunk MC's 2262 | 2261::Кирпичи 2263 | 2262::Король и Шут 2264 | 2263::Lil Jon & The East Side Boyz 2265 | 2264::Hush 2266 | 2265::Lifehouse 2267 | 2266::Bush 2268 | 2267::Lovex 2269 | 2268::In This Moment 2270 | 2269::Black Tide 2271 | 2270::Slaughter 2272 | 2271::Pixie Lott 2273 | 2272::Claudia Leitte 2274 | 2273::Mylène Farmer 2275 | 2274::8mm 2276 | 2275::KLOQ 2277 | 2276::Hooverphonic 2278 | 2277::Kelis 2279 | 2278::Melanie C 2280 | 2279::Ivete Sangalo 2281 | 2280::Babado Novo 2282 | 2281::Rob Thomas 2283 | 2282::Elliott Yamin 2284 | 2283::Adriana Calcanhotto 2285 | 2284::Camille 2286 | 2285::Ani DiFranco 2287 | 2286::Emma Bunton 2288 | 2287::Danni Carlos 2289 | 2288::The Notwist 2290 | 2289::The Subways 2291 | 2290::Mando Diao 2292 | 2291::Kashmir 2293 | 2292::Blue Foundation 2294 | 2293::Lali Puna 2295 | 2294::Broadcast 2296 | 2295::Jackie Wilson 2297 | 2296::Marvin Gaye 2298 | 2297::The Isley Brothers 2299 | 2298::Earth, Wind & Fire 2300 | 2299::Sissel 2301 | 2300::Alejandra Guzmán 2302 | 2301::Giuseppe Verdi 2303 | 2302::Miguel Bosé 2304 | 2303::Johannes Brahms 2305 | 2304::Mijares 2306 | 2305::Charlotte Church 2307 | 2306::Curtis Mayfield 2308 | 2307::Antonín Dvořák 2309 | 2308::Fatback Band 2310 | 2309::Felix Mendelssohn 2311 | 2310::Johann Pachelbel 2312 | 2311::Diana Vickers 2313 | 2312::Parachute 2314 | 2313::Teddy Geiger 2315 | 2314::Brie Larson 2316 | 2315::HorrorPops 2317 | 2316::Sandy e Junior 2318 | 2317::The Distillers 2319 | 2318::Kevin Federline 2320 | 2319::Marisa Monte 2321 | 2320::Erykah Badu 2322 | 2321::Maria Bethânia 2323 | 2322::Kate Voegele 2324 | 2323::Los Hermanos 2325 | 2324::Jeffree Star 2326 | 2325::Sia 2327 | 2326::Психея 2328 | 2327::Emilíana Torrini 2329 | 2328::The Calling 2330 | 2329::Fatboy Slim 2331 | 2330::Omarion 2332 | 2331::Paolo Nutini 2333 | 2332::The Hives 2334 | 2333::Serebro 2335 | 2334::Skye Sweetnam 2336 | 2335::Anastacia 2337 | 2336::The Medic Droid 2338 | 2337::Schiller 2339 | 2338::NX Zero 2340 | 2339::LeToya 2341 | 2340::Stars 2342 | 2341::Kyo 2343 | 2342::Nouvelle Vague 2344 | 2343::Detonautas Roque Clube 2345 | 2344::Fiona Apple 2346 | 2345::Kudai 2347 | 2346::Corinne Bailey Rae 2348 | 2347::Bryan Ferry 2349 | 2348::Julieta Venegas 2350 | 2349::МакSим 2351 | 2350::Vanessa da Mata 2352 | 2351::Marcelo D2 2353 | 2352::DJ Cam 2354 | 2353::O Rappa 2355 | 2354::Os Mutantes 2356 | 2355::Lenine 2357 | 2356::SR-71 2358 | 2357::Antônio Carlos Jobim 2359 | 2358::Plazma 2360 | 2359::Freezepop 2361 | 2360::American Hi-Fi 2362 | 2361::Diddy 2363 | 2362::Cartel 2364 | 2363::Babasónicos 2365 | 2364::Erin McCarley 2366 | 2365::Lillix 2367 | 2366::The Almost 2368 | 2367::Сергей Лазарев 2369 | 2368::Queen Latifah 2370 | 2369::Ludov 2371 | 2370::Gram 2372 | 2371::Babyface 2373 | 2372::Tribalistas 2374 | 2373::Юлия Савичева 2375 | 2374::Cibelle 2376 | 2375::Bliss 2377 | 2376::Vinicius de Moraes 2378 | 2377::(hed) Planet Earth 2379 | 2378::In-Grid 2380 | 2379::Lemongrass 2381 | 2380::Global Communication 2382 | 2381::Rod Stewart 2383 | 2382::John Legend 2384 | 2383::Wyclef Jean 2385 | 2384::Band of Horses 2386 | 2385::Cat Power 2387 | 2386::BrokeNCYDE 2388 | 2387::Aloha From Hell 2389 | 2388::The Pains of Being Pure at Heart 2390 | 2389::+44 2391 | 2390::Kevin Rudolf 2392 | 2391::Joey Ramone 2393 | 2392::Emperor 2394 | 2393::Spock's Beard 2395 | 2394::Pain of Salvation 2396 | 2395::Meshuggah 2397 | 2396::Red Sparowes 2398 | 2397::Strapping Young Lad 2399 | 2398::Antimatter 2400 | 2399::Ulver 2401 | 2400::Bathory 2402 | 2401::Textures 2403 | 2402::The Ocean 2404 | 2403::Riverside 2405 | 2404::Moonsorrow 2406 | 2405::My Dying Bride 2407 | 2406::Ozric Tentacles 2408 | 2407::Younger Brother 2409 | 2408::Fair to Midland 2410 | 2409::Oceansize 2411 | 2410::Enslaved 2412 | 2411::Anna Ternheim 2413 | 2412::Lake of Tears 2414 | 2413::Aereogramme 2415 | 2414::Dimmu Borgir 2416 | 2415::Arch Enemy 2417 | 2416::Virgin Prunes 2418 | 2417::Fields of the Nephilim 2419 | 2418::Ween 2420 | 2419::Specimen 2421 | 2420::White Zombie 2422 | 2421::Plasmatics 2423 | 2422::Ten Years After 2424 | 2423::Faithless 2425 | 2424::Kosheen 2426 | 2425::Sugababes 2427 | 2426::Laura Pausini 2428 | 2427::Darin 2429 | 2428::Nick Cave and the Bad Seeds 2430 | 2429::Siobhan Donaghy 2431 | 2430::Delta Goodrem 2432 | 2431::Edyta Bartosiewicz 2433 | 2432::Far East Movement 2434 | 2433::Solange 2435 | 2434::Mónica Naranjo 2436 | 2435::Morandi 2437 | 2436::Robyn 2438 | 2437::Matt Wertz 2439 | 2438::Courtney Love 2440 | 2439::Lee Ryan 2441 | 2440::Five for Fighting 2442 | 2441::No Mercy 2443 | 2442::Everything but the Girl 2444 | 2443::Lamb 2445 | 2444::Jon McLaughlin 2446 | 2445::Amerie 2447 | 2446::Jazmine Sullivan 2448 | 2447::Sam Sparro 2449 | 2448::Kasia Kowalska 2450 | 2449::Elisa 2451 | 2450::Kurt Nilsen 2452 | 2451::Lucie Silvas 2453 | 2452::Howie Day 2454 | 2453::Beverley Knight 2455 | 2454::Live 2456 | 2455::Moloko 2457 | 2456::Joe Purdy 2458 | 2457::Melanie Fiona 2459 | 2458::Varius Manx 2460 | 2459::AaRON 2461 | 2460::Pati Yang 2462 | 2461::Jamie Foxx 2463 | 2462::Meredith Brooks 2464 | 2463::Paola & Chiara 2465 | 2464::Husky Rescue 2466 | 2465::Babylon Zoo 2467 | 2466::Kate Havnevik 2468 | 2467::Joan Osborne 2469 | 2468::Skin 2470 | 2469::La Bouche 2471 | 2470::Mutya Buena 2472 | 2471::All That Remains 2473 | 2472::Eths 2474 | 2473::Blood Stain Child 2475 | 2474::Light This City 2476 | 2475::Mnemic 2477 | 2476::Delain 2478 | 2477::The Agonist 2479 | 2478::Finger Eleven 2480 | 2479::Victoria Beckham 2481 | 2480::Alison Krauss 2482 | 2481::Jessica Andrews 2483 | 2482::Emerson Drive 2484 | 2483::Gretchen Wilson 2485 | 2484::The Frames 2486 | 2485::Lisa Hannigan 2487 | 2486::Willow Smith 2488 | 2487::Amanda Palmer 2489 | 2488::Baths 2490 | 2489::Lil B 2491 | 2490::Behemoth 2492 | 2491::Whitechapel 2493 | 2492::All Shall Perish 2494 | 2493::Despised Icon 2495 | 2494::Suicide Silence 2496 | 2495::Nile 2497 | 2496::Cannibal Corpse 2498 | 2497::Hatebreed 2499 | 2498::Job for a Cowboy 2500 | 2499::Carnifex 2501 | 2500::Beneath the Massacre 2502 | 2501::Annotations of an Autopsy 2503 | 2502::Оригами 2504 | 2503::DevilDriver 2505 | 2504::2H Company 2506 | 2505::Enduser 2507 | 2506::Kid606 2508 | 2507::SikTh 2509 | 2508::Shitmat 2510 | 2509::Machine Head 2511 | 2510::Decapitated 2512 | 2511::Russian Circles 2513 | 2512::Otep 2514 | 2513::Wednesday 13 2515 | 2514::Dry Kill Logic 2516 | 2515::Chimaira 2517 | 2516::Glassjaw 2518 | 2517::Aborted 2519 | 2518::Madball 2520 | 2519::Unleashed 2521 | 2520::Ion Dissonance 2522 | 2521::7раса 2523 | 2522::Deicide 2524 | 2523::Obituary 2525 | 2524::The Exploited 2526 | 2525::Shadows Fall 2527 | 2526::Cavalera Conspiracy 2528 | 2527::Bluetech 2529 | 2528::7000$ 2530 | 2529::Kataklysm 2531 | 2530::Clawfinger 2532 | 2531::10 Years 2533 | 2532::The Haunted 2534 | 2533::Six Feet Under 2535 | 2534::Damageplan 2536 | 2535::Korea 2537 | 2536::Modeselektor 2538 | 2537::Crossbreed 2539 | 2538::Pan Sonic 2540 | 2539::Vital Remains 2541 | 2540::Nasum 2542 | 2541::Brujeria 2543 | 2542::Atari Teenage Riot 2544 | 2543::Rusko 2545 | 2544::Animosity 2546 | 2545::The Number Twelve Looks Like You 2547 | 2546::The Bug 2548 | 2547::Superjoint Ritual 2549 | 2548::Bon Iver 2550 | 2549::These New Puritans 2551 | 2550::Alexisonfire 2552 | 2551::Mumford & Sons 2553 | 2552::K'naan 2554 | 2553::Snoop Dogg 2555 | 2554::Death from Above 1979 2556 | 2555::Delphic 2557 | 2556::Wolfmother 2558 | 2557::Friendly Fires 2559 | 2558::Everything Everything 2560 | 2559::311 2561 | 2560::Warpaint 2562 | 2561::Passion Pit 2563 | 2562::Starfucker 2564 | 2563::Robin Thicke 2565 | 2564::jj 2566 | 2565::Nosaj Thing 2567 | 2566::Washed Out 2568 | 2567::Gossip 2569 | 2568::Razorlight 2570 | 2569::The Ordinary Boys 2571 | 2570::Eisley 2572 | 2571::The Flaming Lips 2573 | 2572::Pretty Girls Make Graves 2574 | 2573::The Slits 2575 | 2574::Guster 2576 | 2575::Augustana 2577 | 2576::The Kovenant 2578 | 2577::Black Label Society 2579 | 2578::Soilwork 2580 | 2579::Iced Earth 2581 | 2580::Ayreon 2582 | 2581::Agalloch 2583 | 2582::Edguy 2584 | 2583::Running Wild 2585 | 2584::Demons & Wizards 2586 | 2585::King Crimson 2587 | 2586::DragonForce 2588 | 2587::Dethklok 2589 | 2588::Styx 2590 | 2589::Korpiklaani 2591 | 2590::Firewind 2592 | 2591::Finntroll 2593 | 2592::Funkadelic 2594 | 2593::Bad Manners 2595 | 2594::Bad Brains 2596 | 2595::The Gathering 2597 | 2596::Labyrinth 2598 | 2597::Elvenking 2599 | 2598::Candlemass 2600 | 2599::Persuader 2601 | 2600::Metal Church 2602 | 2601::Cameo 2603 | 2602::Windir 2604 | 2603::Steve Miller Band 2605 | 2604::Andre 3000 2606 | 2605::The Sword 2607 | 2606::Ohio Players 2608 | 2607::Alcatrazz 2609 | 2608::Mountain 2610 | 2609::King Diamond 2611 | 2610::Devin Townsend 2612 | 2611::Bloodbath 2613 | 2612::Cynic 2614 | 2613::Mustard Plug 2615 | 2614::CéU 2616 | 2615::Nitin Sawhney 2617 | 2616::Minutemen 2618 | 2617::Antony and the Johnsons 2619 | 2618::Emilie Simon 2620 | 2619::Cocteau Twins 2621 | 2620::After Forever 2622 | 2621::Devil Doll 2623 | 2622::Violeta Parra 2624 | 2623::Porter 2625 | 2624::Gerry Rafferty 2626 | 2625::Steel Pulse 2627 | 2626::Bowling for Soup 2628 | 2627::Chevelle 2629 | 2628::Wheatus 2630 | 2629::Tamia 2631 | 2630::Westlife 2632 | 2631::Five 2633 | 2632::Jamal 2634 | 2633::Eva Simons 2635 | 2634::Kelly Key 2636 | 2635::Mr. President 2637 | 2636::Whigfield 2638 | 2637::Ice MC 2639 | 2638::Arash 2640 | 2639::Daniela Mercury 2641 | 2640::Lawrence 2642 | 2641::LS Jack 2643 | 2642::Steps 2644 | 2643::E-Type 2645 | 2644::Between the Buried and Me 2646 | 2645::Born of Osiris 2647 | 2646::Periphery 2648 | 2647::Veil of Maya 2649 | 2648::The Contortionist 2650 | 2649::Within The Ruins 2651 | 2650::After the Burial 2652 | 2651::Moving Mountains 2653 | 2652::Real Life 2654 | 2653::John Taylor 2655 | 2654::The Stills 2656 | 2655::Orianthi 2657 | 2656::Heaven Shall Burn 2658 | 2657::Austrian Death Machine 2659 | 2658::Stray From the Path 2660 | 2659::Ana Cañas 2661 | 2660::Silbermond 2662 | 2661::Eluveitie 2663 | 2662::Die Toten Hosen 2664 | 2663::Hot Water Music 2665 | 2664::Caliban 2666 | 2665::It Prevails 2667 | 2666::I Killed the Prom Queen 2668 | 2667::Lisa Marie Presley 2669 | 2668::Abandon All Ships 2670 | 2669::The Crimson Armada 2671 | 2670::Architects 2672 | 2671::Alter Bridge 2673 | 2672::Kutless 2674 | 2673::Maylene and the Sons of Disaster 2675 | 2674::Confide 2676 | 2675::Demon Hunter 2677 | 2676::Disarmonia Mundi 2678 | 2677::Kyte 2679 | 2678::Nightrage 2680 | 2679::Misery Signals 2681 | 2680::House vs. Hurricane 2682 | 2681::One Morning Left 2683 | 2682::Kids In Glass Houses 2684 | 2683::FM Static 2685 | 2684::Head 2686 | 2685::Threat Signal 2687 | 2686::Becoming the Archetype 2688 | 2687::Against Me! 2689 | 2688::Lucero 2690 | 2689::Mooncake 2691 | 2690::Of Mice & Men 2692 | 2691::Sabrepulse 2693 | 2692::Norma Jean 2694 | 2693::Blockhead 2695 | 2694::Emancipator 2696 | 2695::Мои Ракеты Вверх 2697 | 2696::The American Dollar 2698 | 2697::Caspian 2699 | 2698::NEVERSMILE 2700 | 2699::Xe-NONE 2701 | 2700::Asobi Seksu 2702 | 2701::Lydia 2703 | 2702::Bassnectar 2704 | 2703::The Amity Affliction 2705 | 2704::Maria Mena 2706 | 2705::Gorgoroth 2707 | 2706::Marduk 2708 | 2707::Immortal 2709 | 2708::Destruction 2710 | 2709::Entombed 2711 | 2710::Borknagar 2712 | 2711::Nocturnal Depression 2713 | 2712::Zемфира 2714 | 2713::Adriano Celentano 2715 | 2714::Alex Gaudino 2716 | 2715::Shaggy 2717 | 2716::Eels 2718 | 2717::Tortoise 2719 | 2718::Lights 2720 | 2719::Nadja 2721 | 2720::PJ Harvey 2722 | 2721::Leonard Cohen 2723 | 2722::Architecture in Helsinki 2724 | 2723::The Sound of Animals Fighting 2725 | 2724::Starlight Mints 2726 | 2725::Mercyful Fate 2727 | 2726::Anti-Flag 2728 | 2727::Isaac Hayes 2729 | 2728::The 69 Eyes 2730 | 2729::The Von Bondies 2731 | 2730::Deerhoof 2732 | 2731::Apostle of Hustle 2733 | 2732::Primus 2734 | 2733::Xiu Xiu 2735 | 2734::Built to Spill 2736 | 2735::The Fiery Furnaces 2737 | 2736::Peeping Tom 2738 | 2737::Public Image Ltd. 2739 | 2738::Eagles of Death Metal 2740 | 2739::Charlotte Gainsbourg 2741 | 2740::John Cage 2742 | 2741::The Sugarcubes 2743 | 2742::Danzig 2744 | 2743::John Zorn 2745 | 2744::Nurse With Wound 2746 | 2745::Scarling. 2747 | 2746::Caribou 2748 | 2747::Liars 2749 | 2748::GWAR 2750 | 2749::Sun City Girls 2751 | 2750::Secret Chiefs 3 2752 | 2751::Celtic Frost 2753 | 2752::Into Eternity 2754 | 2753::Funki Porcini 2755 | 2754::Leæther Strip 2756 | 2755::Auf der Maur 2757 | 2756::Living Colour 2758 | 2757::Lovage 2759 | 2758::Esthero 2760 | 2759::Faust 2761 | 2760::The Go! Team 2762 | 2761::Camera Obscura 2763 | 2762::The 5.6.7.8's 2764 | 2763::Exciter 2765 | 2764::Don Caballero 2766 | 2765::Helmet 2767 | 2766::Eluvium 2768 | 2767::Pinback 2769 | 2768::Angelspit 2770 | 2769::Bif Naked 2771 | 2770::John Frusciante 2772 | 2771::Harold Budd 2773 | 2772::Sloan 2774 | 2773::Daniel Johnston 2775 | 2774::Meat Puppets 2776 | 2775::Beulah 2777 | 2776::The Creepshow 2778 | 2777::Matthew Herbert 2779 | 2778::Tosca 2780 | 2779::Afterlife 2781 | 2780::El Perro del Mar 2782 | 2781::Gravity Kills 2783 | 2782::The Postmarks 2784 | 2783::Minor Threat 2785 | 2784::Hella 2786 | 2785::Veruca Salt 2787 | 2786::Love Is All 2788 | 2787::Buckethead 2789 | 2788::Richard Cheese 2790 | 2789::Mouse on Mars 2791 | 2790::MC5 2792 | 2791::My Ruin 2793 | 2792::Hanzel und Gretyl 2794 | 2793::Gang Gang Dance 2795 | 2794::The Concretes 2796 | 2795::The Long Blondes 2797 | 2796::OOIOO 2798 | 2797::Shannon Wright 2799 | 2798::Marcomé 2800 | 2799::Terry Riley 2801 | 2800::Tristan Feldbauer 2802 | 2801::Warren Zevon 2803 | 2802::Daniel Lanois 2804 | 2803::The Tragically Hip 2805 | 2804::Karlheinz Stockhausen 2806 | 2805::Hello Saferide 2807 | 2806::Unexpect 2808 | 2807::This Heat 2809 | 2808::Bill Laswell 2810 | 2809::Art Ensemble of Chicago 2811 | 2810::Milivoj Culibrk 2812 | 2811::Estradasphere 2813 | 2812::The Boy Least Likely To 2814 | 2813::The Wimshurst's Machine 2815 | 2814::Wintersleep 2816 | 2815::Ministry 2817 | 2816::New Model Army 2818 | 2817::Johnny Hates Jazz 2819 | 2818::Robert Palmer 2820 | 2819::The Skatalites 2821 | 2820::Lush 2822 | 2821::Dead Can Dance 2823 | 2822::Pavement 2824 | 2823::Suicide 2825 | 2824::Elvis Costello & The Attractions 2826 | 2825::The Beat 2827 | 2826::The Rapture 2828 | 2827::Suzanne Vega 2829 | 2828::The Sundays 2830 | 2829::Neil Diamond 2831 | 2830::Crass 2832 | 2831::Clock DVA 2833 | 2832::Toad the Wet Sprocket 2834 | 2833::GBH 2835 | 2834::Slowdive 2836 | 2835::Mazzy Star 2837 | 2836::The Rutles 2838 | 2837::Brendan Benson 2839 | 2838::Badly Drawn Boy 2840 | 2839::The Undertones 2841 | 2840::The Band 2842 | 2841::The La's 2843 | 2842::The Modern Lovers 2844 | 2843::Mr. Mister 2845 | 2844::Autograph 2846 | 2845::Scandal 2847 | 2846::Falco 2848 | 2847::Soft Machine 2849 | 2848::Black Tape for a Blue Girl 2850 | 2849::The Rembrandts 2851 | 2850::Buzzcocks 2852 | 2851::Aimee Mann 2853 | 2852::The Comsat Angels 2854 | 2853::The Danse Society 2855 | 2854::The Sounds 2856 | 2855::Sebadoh 2857 | 2856::Klaus Nomi 2858 | 2857::The Lemonheads 2859 | 2858::Laura Branigan 2860 | 2859::Book of Love 2861 | 2860::Tim Finn 2862 | 2861::Camper Van Beethoven 2863 | 2862::Pete Shelley 2864 | 2863::The Icicle Works 2865 | 2864::Buffalo Springfield 2866 | 2865::Badfinger 2867 | 2866::The Mission 2868 | 2867::Ride 2869 | 2868::The House of Love 2870 | 2869::France Gall 2871 | 2870::And Also the Trees 2872 | 2871::The Church 2873 | 2872::.38 Special 2874 | 2873::X-Ray Spex 2875 | 2874::Prince Buster 2876 | 2875::Teenage Fanclub 2877 | 2876::Big Star 2878 | 2877::The Korgis 2879 | 2878::The Raincoats 2880 | 2879::Severed Heads 2881 | 2880::Hüsker Dü 2882 | 2881::The Germs 2883 | 2882::Sham 69 2884 | 2883::Television Personalities 2885 | 2884::The Adverts 2886 | 2885::X-Mal Deutschland 2887 | 2886::The Replacements 2888 | 2887::IMA Robot 2889 | 2888::Freur 2890 | 2889::Youth Group 2891 | 2890::Love Spirals Downwards 2892 | 2891::Low 2893 | 2892::Todd Rundgren 2894 | 2893::Stereo Total 2895 | 2894::Television 2896 | 2895::The Blue Nile 2897 | 2896::Hothouse Flowers 2898 | 2897::Kirsty MacColl 2899 | 2898::Billy Bragg 2900 | 2899::Josef K 2901 | 2900::Sid Vicious 2902 | 2901::The Lightning Seeds 2903 | 2902::UK Subs 2904 | 2903::YACHT 2905 | 2904::Young Marble Giants 2906 | 2905::Talulah Gosh 2907 | 2906::Faces 2908 | 2907::The Teardrop Explodes 2909 | 2908::Pere Ubu 2910 | 2909::The Boomtown Rats 2911 | 2910::Pop Will Eat Itself 2912 | 2911::Das Ich 2913 | 2912::Stromae 2914 | 2913::Social Distortion 2915 | 2914::Salem 2916 | 2915::The Black Dahlia Murder 2917 | 2916::Sonic Syndicate 2918 | 2917::Emmure 2919 | 2918::The Dillinger Escape Plan 2920 | 2919::Dance Gavin Dance 2921 | 2920::Agoraphobic Nosebleed 2922 | 2921::Mastodon 2923 | 2922::Naked City 2924 | 2923::Rhapsody of Fire 2925 | 2924::Exodus 2926 | 2925::Primal Fear 2927 | 2926::Tankard 2928 | 2927::Artillery 2929 | 2928::Toxic Holocaust 2930 | 2929::Municipal Waste 2931 | 2930::Napalm Death 2932 | 2931::Bleeding Through 2933 | 2932::Waking The Cadaver 2934 | 2933::Impending Doom 2935 | 2934::See You Next Tuesday 2936 | 2935::Megaherz 2937 | 2936::Architect 2938 | 2937::ВFI 2939 | 2938::Blind Witness 2940 | 2939::We Butter The Bread With Butter 2941 | 2940::It Dies Today 2942 | 2941::Danko Jones 2943 | 2942::Best Coast 2944 | 2943::Protest The Hero 2945 | 2944::Ляпис Трубецкой 2946 | 2945::1349 2947 | 2946::Vader 2948 | 2947::Dark Funeral 2949 | 2948::Joe Bonamassa 2950 | 2949::Machinae Supremacy 2951 | 2950::Hypocrisy 2952 | 2951::Converge 2953 | 2952::The Ghost Inside 2954 | 2953::Comeback Kid 2955 | 2954::Have Heart 2956 | 2955::New Years Day 2957 | 2956::iwrestledabearonce 2958 | 2957::Ektomorf 2959 | 2958::Blood Red Shoes 2960 | 2959::Misery Index 2961 | 2960::The Faceless 2962 | 2961::The Chariot 2963 | 2962::Asesino 2964 | 2963::H2O 2965 | 2964::Possessed 2966 | 2965::Dissection 2967 | 2966::Altaria 2968 | 2967::The Acacia Strain 2969 | 2968::Terror 2970 | 2969::In Fear and Faith 2971 | 2970::Necrophagist 2972 | 2971::Adept 2973 | 2972::Anal Cunt 2974 | 2973::I Declare War 2975 | 2974::Dr. Acula 2976 | 2975::And Hell Followed With 2977 | 2976::Attila 2978 | 2977::War From a Harlots Mouth 2979 | 2978::Molotov Solution 2980 | 2979::The Tony Danza Tapdance Extravaganza 2981 | 2980::To/Die/For 2982 | 2981::Throwdown 2983 | 2982::Sadus 2984 | 2983::Agnostic Front 2985 | 2984::Emigrate 2986 | 2985::Dungeon Elite [**] 2987 | 2986::iamerror 2988 | 2987::Arsonists Get All The Girls 2989 | 2988::Greeley Estates 2990 | 2989::Coroner 2991 | 2990::I:Scintilla 2992 | 2991::Conjure One 2993 | 2992::De-Phazz 2994 | 2993::Corrosion of Conformity 2995 | 2994::Virgin Black 2996 | 2995::Onslaught 2997 | 2996::The Derek Trucks Band 2998 | 2997::For the Fallen Dreams 2999 | 2998::Sumatra 3000 | 2999::Every Time I Die 3001 | 3000::Memphis May Fire 3002 | 3001::Xentrix 3003 | 3002::Times of Grace 3004 | 3003::Charlie Musselwhite 3005 | 3004::Death Before Dishonor 3006 | 3005::Kylesa 3007 | 3006::The Locust 3008 | 3007::Spectra Paris 3009 | 3008::Raunchy 3010 | 3009::Element Eighty 3011 | 3010::Your Demise 3012 | 3011::Spineshank 3013 | 3012::Oceana 3014 | 3013::Razor 3015 | 3014::Beseech 3016 | 3015::Imperanon 3017 | 3016::An Albatross 3018 | 3017::The Human Abstract 3019 | 3018::Circle Jerks 3020 | 3019::Envy 3021 | 3020::United Nations 3022 | 3021::Sybreed 3023 | 3022::Prodigy 3024 | 3023::Sick of It All 3025 | 3024::Trap Them 3026 | 3025::Walter Trout 3027 | 3026::Dead Poetic 3028 | 3027::Meg & Dia 3029 | 3028::Cephalic Carnage 3030 | 3029::Tesseract 3031 | 3030::Bonded By Blood 3032 | 3031::Casey Jones 3033 | 3032::Silent Civilian 3034 | 3033::Through the Eyes of the Dead 3035 | 3034::HEARTSREVOLUTION 3036 | 3035::Amanda Blank 3037 | 3036::T.S.O.L. 3038 | 3037::AKADO 3039 | 3038::Arkaea 3040 | 3039::Scanners 3041 | 3040::Super Junior 3042 | 3041::SHINee 3043 | 3042::소녀시대 3044 | 3043::BoA 3045 | 3044::M. Ward 3046 | 3045::Devendra Banhart 3047 | 3046::Nick Drake 3048 | 3047::Tracy Chapman 3049 | 3048::Tilly and the Wall 3050 | 3049::The Magnetic Fields 3051 | 3050::Jens Lekman 3052 | 3051::Neutral Milk Hotel 3053 | 3052::The Microphones 3054 | 3053::Augustus Pablo 3055 | 3054::King Tubby 3056 | 3055::Lee "Scratch" Perry 3057 | 3056::The Gun Club 3058 | 3057::Spiritualized 3059 | 3058::The Flying Burrito Brothers 3060 | 3059::Loretta Lynn 3061 | 3060::Hawkwind 3062 | 3061::Leadbelly 3063 | 3062::Grandaddy 3064 | 3063::Guided by Voices 3065 | 3064::Townes Van Zandt 3066 | 3065::Red House Painters 3067 | 3066::Madredeus 3068 | 3067::Mediæval Bæbes 3069 | 3068::Her Space Holiday 3070 | 3069::Hood 3071 | 3070::Ane Brun 3072 | 3071::Son House 3073 | 3072::Sopor Aeternus & The Ensemble of Shadows 3074 | 3073::Parkway Drive 3075 | 3074::Avantasia 3076 | 3075::You Me At Six 3077 | 3076::Mis-Teeq 3078 | 3077::Adam Green 3079 | 3078::Nina Simone 3080 | 3079::Stacie Orrico 3081 | 3080::Emma Shapplin 3082 | 3081::4minute 3083 | 3082::Eazy-E 3084 | 3083::Mobb Deep 3085 | 3084::Chayanne 3086 | 3085::Royce da 5'9" 3087 | 3086::Busta Rhymes 3088 | 3087::Sara Bareilles 3089 | 3088::Lenka 3090 | 3089::A Static Lullaby 3091 | 3090::Girl Talk 3092 | 3091::Spinnerette 3093 | 3092::Will Young 3094 | 3093::Macy Gray 3095 | 3094::This Mortal Coil 3096 | 3095::Cold War Kids 3097 | 3096::Marit Larsen 3098 | 3097::Every Avenue 3099 | 3098::Edenbridge 3100 | 3099::Lisa Miskovsky 3101 | 3100::Krystal Meyers 3102 | 3101::Kirlian Camera 3103 | 3102::The Organ 3104 | 3103::Clannad 3105 | 3104::Lisa "Left Eye" Lopes 3106 | 3105::Millionaires 3107 | 3106::The Casualties 3108 | 3107::Evile 3109 | 3108::Cadaveria 3110 | 3109::Astarte 3111 | 3110::Elis 3112 | 3111::Jonathan Davis 3113 | 3112::Android Lust 3114 | 3113::Hillsong United 3115 | 3114::The Toy Dolls 3116 | 3115::A Place to Bury Strangers 3117 | 3116::Crash Test Dummies 3118 | 3117::The Wreckers 3119 | 3118::Lunatica 3120 | 3119::Draconian 3121 | 3120::Trail of Tears 3122 | 3121::Uh Huh Her 3123 | 3122::Planetshakers 3124 | 3123::Coal Chamber 3125 | 3124::The Submarines 3126 | 3125::Mortal Love 3127 | 3126::M2M 3128 | 3127::Danity Kane 3129 | 3128::Doda 3130 | 3129::Brodka 3131 | 3130::GZA/Genius 3132 | 3131::Ghostface Killah 3133 | 3132::Natasha Bedingfield 3134 | 3133::Aretha Franklin 3135 | 3134::James Brown 3136 | 3135::Alexandra Burke 3137 | 3136::Ewa Farna 3138 | 3137::Lady Sovereign 3139 | 3138::Dan Balan 3140 | 3139::Eve 3141 | 3140::Carla Bruni 3142 | 3141::Minnie Riperton 3143 | 3142::Czesław Śpiewa 3144 | 3143::Etta James 3145 | 3144::Michael Bublé 3146 | 3145::Beady Eye 3147 | 3146::Eric B. & Rakim 3148 | 3147::Shontelle 3149 | 3148::Hey 3150 | 3149::Édith Piaf 3151 | 3150::Peter Doherty 3152 | 3151::Angus & Julia Stone 3153 | 3152::Strachy Na Lachy 3154 | 3153::Yolanda Be Cool & DCUP 3155 | 3154::Paloma Faith 3156 | 3155::Stanfour 3157 | 3156::Hellogoodbye 3158 | 3157::Nosowska 3159 | 3158::Ania 3160 | 3159::Bow Wow 3161 | 3160::Aura Dione 3162 | 3161::Cody Simpson 3163 | 3162::Natalia Kills 3164 | 3163::James Horner 3165 | 3164::Lea Michele 3166 | 3165::Nneka 3167 | 3166::Alexis Jordan 3168 | 3167::Tinchy Stryder 3169 | 3168::Lauryn Hill 3170 | 3169::Mark Ronson & The Business Intl 3171 | 3170::Box Car Racer 3172 | 3171::Flipsyde 3173 | 3172::Soulja Boy 3174 | 3173::En Vogue 3175 | 3174::Clipse 3176 | 3175::Yael Naim 3177 | 3176::Flogging Molly 3178 | 3177::Smolik 3179 | 3178::Ana Johnsson 3180 | 3179::Sinéad O'Connor 3181 | 3180::Clare Maguire 3182 | 3181::Mike Posner 3183 | 3182::Justin Nozuka 3184 | 3183::T-Pain 3185 | 3184::Kaki King 3186 | 3185::Vanessa Paradis 3187 | 3186::Tom Petty 3188 | 3187::Rachael Yamagata 3189 | 3188::Måns Zelmerlöw 3190 | 3189::Moulin Rouge 3191 | 3190::Hope 3192 | 3191::Run-D.M.C. 3193 | 3192::The Supremes 3194 | 3193::Diana Ross and The Supremes 3195 | 3194::Hurt 3196 | 3195::Pretty Ricky 3197 | 3196::Gotan Project 3198 | 3197::The Last Goodnight 3199 | 3198::Zabili Mi Żółwia 3200 | 3199::Cee-Lo 3201 | 3200::Cee Lo Green 3202 | 3201::Lil Mama 3203 | 3202::Anita Baker 3204 | 3203::Julian Casablancas 3205 | 3204::Poisonblack 3206 | 3205::Black Stone Cherry 3207 | 3206::Queensberry 3208 | 3207::The Blackout 3209 | 3208::deadmau5 3210 | 3209::Marianas Trench 3211 | 3210::Aiden 3212 | 3211::Sugarcult 3213 | 3212::CKY 3214 | 3213::Halestorm 3215 | 3214::Emerson, Lake & Palmer 3216 | 3215::Kix 3217 | 3216::The Saturdays 3218 | 3217::Jessie J 3219 | 3218::Rebecca Black 3220 | 3219::Самое Большое Простое Число 3221 | 3220::Red Snapper 3222 | 3221::Animal ДжаZ 3223 | 3222::Laika 3224 | 3223::Killwhitneydead 3225 | 3224::Texas in July 3226 | 3225::Elio e le Storie Tese 3227 | 3226::TV on the Radio 3228 | 3227::Blackfield 3229 | 3228::Helena Paparizou 3230 | 3229::Midge Ure 3231 | 3230::Exposé 3232 | 3231::X-Dream 3233 | 3232::Lights of Euphoria 3234 | 3233::Astrud Gilberto 3235 | 3234::Athlete 3236 | 3235::The Ark 3237 | 3236::Alizée 3238 | 3237::Huey Lewis & The News 3239 | 3238::Morten Harket 3240 | 3239::Bad Boys Blue 3241 | 3240::Silent Circle 3242 | 3241::Fancy 3243 | 3242::Astrix 3244 | 3243::Chris Spheeris 3245 | 3244::عمر دياب 3246 | 3245::Cesária Évora 3247 | 3246::Supreme Beings of Leisure 3248 | 3247::Bread 3249 | 3248::Frou Frou 3250 | 3249::Ace Ventura 3251 | 3250::Guillemots 3252 | 3251::Gus Gus 3253 | 3252::Boy George 3254 | 3253::Jay-Jay Johanson 3255 | 3254::Aqualung 3256 | 3255::Tahiti 80 3257 | 3256::Offer Nissim 3258 | 3257::Orient Expressions 3259 | 3258::Elegant Machinery 3260 | 3259::Mel & Kim 3261 | 3260::Bebel Gilberto 3262 | 3261::Jody Watley 3263 | 3262::Ghosts 3264 | 3263::Mumm-Ra 3265 | 3264::Bitter:Sweet 3266 | 3265::Angtoria 3267 | 3266::Terence Trent D'Arby 3268 | 3267::Nicola Conte 3269 | 3268::Alter Ego 3270 | 3269::Samantha Fox 3271 | 3270::Anouar Brahem 3272 | 3271::Liza Minnelli 3273 | 3272::Blue Stone 3274 | 3273::Peter Schilling 3275 | 3274::Omar Faruk Tekbilek 3276 | 3275::Team Sleep 3277 | 3276::Up, Bustle and Out 3278 | 3277::Parov Stelar 3279 | 3278::Asian Dub Foundation 3280 | 3279::Chase & Status 3281 | 3280::KOTOKO 3282 | 3281::安室奈美恵 3283 | 3282::モーニング娘。 3284 | 3283::大塚愛 3285 | 3284::水樹奈々 3286 | 3285::林原めぐみ 3287 | 3286::北出菜奈 3288 | 3287::Zola Jesus 3289 | 3288::Blackmore's Night 3290 | 3289::Stevie Ray Vaughan 3291 | 3290::Rick Wakeman 3292 | 3291::Geddy Lee 3293 | 3292::Roger Waters 3294 | 3293::Van der Graaf Generator 3295 | 3294::Focus 3296 | 3295::Bachman-Turner Overdrive 3297 | 3296::Slade 3298 | 3297::Traffic 3299 | 3298::Premiata Forneria Marconi 3300 | 3299::B.B. King & Eric Clapton 3301 | 3300::Neil Young & Crazy Horse 3302 | 3301::Inti-Illimani 3303 | 3302::Thievery Corporation 3304 | 3303::Ornette Coleman 3305 | 3304::Michael Gray 3306 | 3305::Madvillain 3307 | 3306::Sneaker Pimps 3308 | 3307::Skye 3309 | 3308::Dangerous Muse 3310 | 3309::Grizzly Bear 3311 | 3310::Martina Topley-Bird 3312 | 3311::Smoke City 3313 | 3312::Halou 3314 | 3313::H.U.V.A. Network 3315 | 3314::Aes Dana 3316 | 3315::Anja Garbarek 3317 | 3316::dZihan & Kamien 3318 | 3317::Days of the New 3319 | 3318::Shirley Bassey 3320 | 3319::Patti LaBelle 3321 | 3320::The Field 3322 | 3321::Daughter Darling 3323 | 3322::Montefiori Cocktail 3324 | 3323::Laurent Garnier 3325 | 3324::Waldeck 3326 | 3325::Rue du Soleil 3327 | 3326::Kruder & Dorfmeister 3328 | 3327::DeVotchKa 3329 | 3328::O Teatro Mágico 3330 | 3329::The Tallest Man on Earth 3331 | 3330::New Young Pony Club 3332 | 3331::Pizzicato Five 3333 | 3332::The Dresden Dolls 3334 | 3333::Those Dancing Days 3335 | 3334::Laura Marling 3336 | 3335::Super Furry Animals 3337 | 3336::Nightmare 3338 | 3337::Rory Gallagher 3339 | 3338::Duke Ellington 3340 | 3339::St. Vincent 3341 | 3340::Brian Wilson 3342 | 3341::Owen Pallett 3343 | 3342::Jorge Drexler 3344 | 3343::The Raveonettes 3345 | 3344::Tim Maia 3346 | 3345::Janelle Monáe 3347 | 3346::Tujiko Noriko 3348 | 3347::Vashti Bunyan 3349 | 3348::Sons and Daughters 3350 | 3349::Nico 3351 | 3350::Rasputina 3352 | 3351::The Zutons 3353 | 3352::Harry and the Potters 3354 | 3353::The Ditty Bops 3355 | 3354::VHS or Beta 3356 | 3355::The Seatbelts 3357 | 3356::Louise Attaque 3358 | 3357::Au Revoir Simone 3359 | 3358::Emmy the Great 3360 | 3359::Juli 3361 | 3360::Hope Sandoval & The Warm Inventions 3362 | 3361::Dum Dum Girls 3363 | 3362::Blue Man Group 3364 | 3363::Louis XIV 3365 | 3364::The Grates 3366 | 3365::The Cribs 3367 | 3366::The Maccabees 3368 | 3367::Envydust 3369 | 3368::Head Automatica 3370 | 3369::Boy Kill Boy 3371 | 3370::The View 3372 | 3371::The Futureheads 3373 | 3372::Moptop 3374 | 3373::Madina Lake 3375 | 3374::Juliette and The Licks 3376 | 3375::Sirenia 3377 | 3376::Kristine Elezaj 3378 | 3377::Ticon 3379 | 3378::Asura 3380 | 3379::Brigitte Bardot 3381 | 3380::Hybrid 3382 | 3381::Lützenkirchen 3383 | 3382::Kiara Rocks 3384 | 3383::嵐 3385 | 3384::玉置成実 3386 | 3385::Grave Digger 3387 | 3386::Bonfire 3388 | 3387::3 Inches of Blood 3389 | 3388::Nazareth 3390 | 3389::Sandy Leah 3391 | 3390::Mat Kearney 3392 | 3391::Nonpoint 3393 | 3392::Turbonegro 3394 | 3393::Scott Walker 3395 | 3394::Gianna Nannini 3396 | 3395::Velvet Acid Christ 3397 | 3396::David Gray 3398 | 3397::Rancid 3399 | 3398::The Wallflowers 3400 | 3399::Teitur 3401 | 3400::Psapp 3402 | 3401::Natalie Walker 3403 | 3402::Deathstars 3404 | 3403::My Life with the Thrill Kill Kult 3405 | 3404::Hank Williams Jr. 3406 | 3405::Hootie & the Blowfish 3407 | 3406::Gov't Mule 3408 | 3407::Lene Marlin 3409 | 3408::Toadies 3410 | 3409::Joy Williams 3411 | 3410::Mr. Scruff 3412 | 3411::Anna Nalick 3413 | 3412::Olivia Ruiz 3414 | 3413::Thomas Dybdahl 3415 | 3414::Vermillion Lies 3416 | 3415::Jerry Lee Lewis 3417 | 3416::Charlie Daniels Band 3418 | 3417::Blues Traveler 3419 | 3418::Jimmy Cliff 3420 | 3419::Better Than Ezra 3421 | 3420::Vienna Teng 3422 | 3421::Bel Canto 3423 | 3422::Jonny Lang 3424 | 3423::ohGr 3425 | 3424::Pigface 3426 | 3425::Crosby, Stills & Nash 3427 | 3426::Celestial Aeon Project 3428 | 3427::Powerman 5000 3429 | 3428::Ace Frehley 3430 | 3429::Various Artists 3431 | 3430::Alcest 3432 | 3431::Heaven & Hell 3433 | 3432::Tor Lundvall 3434 | 3433::All My Faith Lost ... 3435 | 3434::Magna Canta 3436 | 3435::32Crash 3437 | 3436::Jota Quest 3438 | 3437::Scars on Broadway 3439 | 3438::Upcdowncleftcrightcabc+start 3440 | 3439::Banco de Gaia 3441 | 3440::I Hear Sirens 3442 | 3441::Yonderboi 3443 | 3442::Kwoon 3444 | 3443::Fuck Buttons 3445 | 3444::Destroyalldreamers 3446 | 3445::Пелагея 3447 | 3446::Rachel's 3448 | 3447::Tunturia 3449 | 3448::Peter Tosh 3450 | 3449::Damian Marley 3451 | 3450::Vavamuffin 3452 | 3451::Ziggy Marley 3453 | 3452::Gentleman 3454 | 3453::He Is Legend 3455 | 3454::Dance Club Massacre 3456 | 3455::Pogo 3457 | 3456::Circa Survive 3458 | 3457::Kill Paradise 3459 | 3458::Tyler, The Creator 3460 | 3459::Anna Calvi 3461 | 3460::Rev Theory 3462 | 3461::The Perishers 3463 | 3462::José González 3464 | 3463::The Wombats 3465 | 3464::Madlib 3466 | 3465::Paul Kalkbrenner 3467 | 3466::James Blake 3468 | 3467::Télépopmusik 3469 | 3468::Tesla Boy 3470 | 3469::Trentemøller 3471 | 3470::Yoav 3472 | 3471::Bent 3473 | 3472::Sad Lovers and Giants 3474 | 3473::The Chameleons 3475 | 3474::HEALTH 3476 | 3475::Toro y Moi 3477 | 3476::SCSI-9 3478 | 3477::Zeigeist 3479 | 3478::Beach Fossils 3480 | 3479::Bad Lieutenant 3481 | 3480::Gui Boratto 3482 | 3481::Chairlift 3483 | 3482::Nathan Fake 3484 | 3483::Thieves Like Us 3485 | 3484::Kollektiv Turmstrasse 3486 | 3485::Extrawelt 3487 | 3486::Stephan Bodzin 3488 | 3487::Minilogue 3489 | 3488::Sascha Funke 3490 | 3489::A Camp 3491 | 3490::Anthony Rother 3492 | 3491::Matthew Dear 3493 | 3492::The Mary Onettes 3494 | 3493::Erik Satie 3495 | 3494::Weather Report 3496 | 3495::Nujabes 3497 | 3496::Nick Cave & Warren Ellis 3498 | 3497::Night Ranger 3499 | 3498::Girlicious 3500 | 3499::Blitz 3501 | 3500::Worm Is Green 3502 | 3501::Broken Social Scene 3503 | 3502::Great Lake Swimmers 3504 | 3503::Grateful Dead 3505 | 3504::Anathallo 3506 | 3505::Piano Magic 3507 | 3506::Do Make Say Think 3508 | 3507::Cartola 3509 | 3508::The Mountain Goats 3510 | 3509::Okkervil River 3511 | 3510::Amália Rodrigues 3512 | 3511::Celtic Woman 3513 | 3512::João Gilberto 3514 | 3513::Woods 3515 | 3514::Ray LaMontagne 3516 | 3515::The Brian Jonestown Massacre 3517 | 3516::Streetlight Manifesto 3518 | 3517::Ash 3519 | 3518::Elis Regina 3520 | 3519::Bang Gang 3521 | 3520::Baden Powell 3522 | 3521::The Radio Dept. 3523 | 3522::Stafrænn Hákon 3524 | 3523::Owen 3525 | 3524::My Morning Jacket 3526 | 3525::Amusement Parks on Fire 3527 | 3526::Efterklang 3528 | 3527::Gray Strawberries 3529 | 3528::Omnia 3530 | 3529::September Malevolence 3531 | 3530::The Meters 3532 | 3531::Chapterhouse 3533 | 3532::Nara Leão 3534 | 3533::Borko 3535 | 3534::Electrelane 3536 | 3535::Novos Baianos 3537 | 3536::Carissa's Wierd 3538 | 3537::Under Byen 3539 | 3538::Huun-Huur-Tu 3540 | 3539::Stan Getz 3541 | 3540::Andrei Machado 3542 | 3541::Say Hi to Your Mom 3543 | 3542::Kitchens of Distinction 3544 | 3543::Sun Kil Moon 3545 | 3544::Casiotone for the Painfully Alone 3546 | 3545::Drive-By Truckers 3547 | 3546::Love 3548 | 3547::Hermeto Pascoal 3549 | 3548::Roger Miller 3550 | 3549::Horse Feathers 3551 | 3550::Akron/Family 3552 | 3551::Tristeza 3553 | 3552::A Hawk and a Hacksaw 3554 | 3553::Delays 3555 | 3554::Rilo Kiley 3556 | 3555::Infernal 3557 | 3556::dredg 3558 | 3557::Trapt 3559 | 3558::Billy Currington 3560 | 3559::Richard Ashcroft 3561 | 3560::From Autumn to Ashes 3562 | 3561::Ronan Keating 3563 | 3562::Cat Stevens 3564 | 3563::Train 3565 | 3564::Richie Sambora 3566 | 3565::Air Traffic 3567 | 3566::Entwine 3568 | 3567::Brian McKnight 3569 | 3568::Superchic[k] 3570 | 3569::Globus 3571 | 3570::Semisonic 3572 | 3571::Skazi 3573 | 3572::Shadow Gallery 3574 | 3573::Dark Moor 3575 | 3574::Nocturnal Rites 3576 | 3575::Lost Horizon 3577 | 3576::Evergrey 3578 | 3577::TV-2 3579 | 3578::Common 3580 | 3579::Faith Evans 3581 | 3580::Otis Redding 3582 | 3581::The Game 3583 | 3582::Musiq 3584 | 3583::Dizzee Rascal 3585 | 3584::Redman 3586 | 3585::Utada 3587 | 3586::Akufen 3588 | 3587::Black Star 3589 | 3588::Third Eye Blind 3590 | 3589::Jennifer Love Hewitt 3591 | 3590::Example 3592 | 3591::Coconut Records 3593 | 3592::Ginuwine 3594 | 3593::Jamie T 3595 | 3594::Mario 3596 | 3595::112 3597 | 3596::Ben Woods 3598 | 3597::John Lee Hooker 3599 | 3598::Missy Higgins 3600 | 3599::Christina Milian 3601 | 3600::Lisa Gerrard 3602 | 3601::Black Lab 3603 | 3602::Pete Yorn 3604 | 3603::Ol' Dirty Bastard 3605 | 3604::Alkaline Trio 3606 | 3605::Pennywise 3607 | 3606::Battlelore 3608 | 3607::Lucinda Williams 3609 | 3608::RZA 3610 | 3609::Amber Pacific 3611 | 3610::植松伸夫 3612 | 3611::Lemon Jelly 3613 | 3612::The Blues Brothers 3614 | 3613::The Living End 3615 | 3614::The J. Geils Band 3616 | 3615::Beatsteaks 3617 | 3616::Meat Loaf 3618 | 3617::Jagged Edge 3619 | 3618::Marcy Playground 3620 | 3619::Stealers Wheel 3621 | 3620::The Click Five 3622 | 3621::One Night Only 3623 | 3622::Scouting for Girls 3624 | 3623::The Crowns 3625 | 3624::The Bird and The Bee 3626 | 3625::Chiodos 3627 | 3626::The Get Up Kids 3628 | 3627::The Coasters 3629 | 3628::Overkill 3630 | 3629::Down 3631 | 3630::Nek 3632 | 3631::Gipsy Kings 3633 | 3632::Ibrahim Ferrer 3634 | 3633::Paco de Lucía 3635 | 3634::Alejandro Fernández 3636 | 3635::Moenia 3637 | 3636::Karsh Kale 3638 | 3637::Oliver Shanti 3639 | 3638::Graham Coxon 3640 | 3639::Maino 3641 | 3640::Keyshia Cole 3642 | 3641::Винтаж 3643 | 3642::Booty Luv 3644 | 3643::Three 6 Mafia 3645 | 3644::Jordan Rudess 3646 | 3645::Lunatic Soul 3647 | 3646::David Gilmour 3648 | 3647::Liquid Tension Experiment 3649 | 3648::Al Di Meola 3650 | 3649::John Petrucci 3651 | 3650::Michael Giacchino 3652 | 3651::Django Reinhardt 3653 | 3652::Donovan 3654 | 3653::Fish 3655 | 3654::Fates Warning 3656 | 3655::Obscura 3657 | 3656::Camel 3658 | 3657::Atheist 3659 | 3658::Gentle Giant 3660 | 3659::David Sylvian 3661 | 3660::Nine Horses 3662 | 3661::Harry Gregson-Williams 3663 | 3662::Beardfish 3664 | 3663::Phideaux 3665 | 3664::Eloy 3666 | 3665::Pestilence 3667 | 3666::Kenny G 3668 | 3667::Rain Tree Crow 3669 | 3668::Goblin 3670 | 3669::maudlin of the Well 3671 | 3670::Caravan 3672 | 3671::Gryphon 3673 | 3672::Chroma Key 3674 | 3673::Robin Trower 3675 | 3674::Chick Corea 3676 | 3675::Return to Forever 3677 | 3676::Renaissance 3678 | 3677::Trey Gunn 3679 | 3678::The Rakes 3680 | 3679::Dirty Pretty Things 3681 | 3680::Milburn 3682 | 3681::The Bravery 3683 | 3682::Quietdrive 3684 | 3683::The Automatic 3685 | 3684::The Hoosiers 3686 | 3685::Obie Trice 3687 | 3686::Bizarre 3688 | 3687::Cassiane 3689 | 3688::Kim Carnes 3690 | 3689::Brenda Lee 3691 | 3690::Jack's Mannequin 3692 | 3691::Motion City Soundtrack 3693 | 3692::The John Butler Trio 3694 | 3693::The Cloud Room 3695 | 3694::Mark Knopfler 3696 | 3695::Haircut 100 3697 | 3696::Olivia Newton-John 3698 | 3697::Idlewild 3699 | 3698::Edwyn Collins 3700 | 3699::Orange Juice 3701 | 3700::Trio 3702 | 3701::Jane Wiedlin 3703 | 3702::Passengers 3704 | 3703::Andy Taylor 3705 | 3704::Nuclear Assault 3706 | 3705::Doves 3707 | 3706::Hot Hot Heat 3708 | 3707::Klaus Badelt 3709 | 3708::Kidneythieves 3710 | 3709::Grave 3711 | 3710::D'espairsRay 3712 | 3711::Benjamin Biolay 3713 | 3712::Ian Brown 3714 | 3713::Eddie Cochran 3715 | 3714::Link Wray 3716 | 3715::Gary Jules 3717 | 3716::Immortal Technique 3718 | 3717::Jurassic 5 3719 | 3718::Blackalicious 3720 | 3719::Bone Thugs-N-Harmony 3721 | 3720::Ice Cube 3722 | 3721::Cam'ron 3723 | 3722::Notorious B.I.G. 3724 | 3723::Naughty by Nature 3725 | 3724::Proof 3726 | 3725::Big L 3727 | 3726::Taj Mahal 3728 | 3727::Andrew W.K. 3729 | 3728::Joe 3730 | 3729::Vanilla Ice 3731 | 3730::Cap'n Jazz 3732 | 3731::Less Than Jake 3733 | 3732::Saves the Day 3734 | 3733::American Football 3735 | 3734::Matt Pond PA 3736 | 3735::Karunesh 3737 | 3736::Ravi Shankar 3738 | 3737::Philip Glass 3739 | 3738::Frozen Silence 3740 | 3739::Current 93 3741 | 3740::Psychic TV 3742 | 3741::Ryoji Ikeda 3743 | 3742::Zoviet France 3744 | 3743::Lustmord 3745 | 3744::Alva Noto 3746 | 3745::Sergei Rachmaninoff 3747 | 3746::Lusine 3748 | 3747::Kaya Project 3749 | 3748::Tangerine Dream 3750 | 3749::Atrium Carceri 3751 | 3750::Kammarheit 3752 | 3751::Kronos Quartet 3753 | 3752::Niyaz 3754 | 3753::Steve Roach 3755 | 3754::Muslimgauze 3756 | 3755::Yat-Kha 3757 | 3756::Steve Reich 3758 | 3757::Luc Ferrari 3759 | 3758::Baskyl 3760 | 3759::Modus 3761 | 3760::大谷幸 3762 | 3761::DJ Food 3763 | 3762::Jon Hopkins 3764 | 3763::Mythos 3765 | 3764::THEreminGIRL 3766 | 3765::The Teenagers 3767 | 3766::Solar Fields 3768 | 3767::The Tear Garden 3769 | 3768::Goran Bregović 3770 | 3769::Michael Andrews 3771 | 3770::Patrick Doyle 3772 | 3771::Eric Serra 3773 | 3772::Jan Hammer 3774 | 3773::Swans 3775 | 3774::John Barry 3776 | 3775::Dario Marianelli 3777 | 3776::Side Liner 3778 | 3777::Revolting Cocks 3779 | 3778::American Head Charge 3780 | 3779::Lords of Acid 3781 | 3780::Zeromancer 3782 | 3781::Zombina and the Skeletones 3783 | 3782::Dog Fashion Disco 3784 | 3783::Mortiis 3785 | 3784::Sevendust 3786 | 3785::Stabbing Westward 3787 | 3786::Godhead 3788 | 3787::Fun Lovin' Criminals 3789 | 3788::Pagoda 3790 | 3789::Moonspell 3791 | 3790::Gojira 3792 | 3791::Balmorhea 3793 | 3792::Glen Hansard & Markéta Irglová 3794 | 3793::Peace Orchestra 3795 | 3794::dEUS 3796 | 3795::Diante do Trono 3797 | 3796::Carter Burwell 3798 | 3797::Dusty Kid 3799 | 3798::Modjo 3800 | 3799::Nada Surf 3801 | 3800::Matia Bazar 3802 | 3801::The Glove 3803 | 3802::Sex Gang Children 3804 | 3803::Altered Images 3805 | 3804::The Tornados 3806 | 3805::Them Crooked Vultures 3807 | 3806::Ólafur Arnalds 3808 | 3807::Remy Zero 3809 | 3808::Inkubus Sukkubus 3810 | 3809::Monty Python 3811 | 3810::Steely Dan 3812 | 3811::MUM 3813 | 3812::Traveling Wilburys 3814 | 3813::The Nitty Gritty Dirt Band 3815 | 3814::Carly Simon 3816 | 3815::This Will Destroy You 3817 | 3816::Big Brother & The Holding Company 3818 | 3817::Cage the Elephant 3819 | 3818::Bill Hicks 3820 | 3819::K's Choice 3821 | 3820::Little Feat 3822 | 3821::Sam & Dave 3823 | 3822::Three Dog Night 3824 | 3823::Dan Fogelberg 3825 | 3824::Poe 3826 | 3825::Indigo Girls 3827 | 3826::Nikka Costa 3828 | 3827::Crosby, Stills, Nash & Young 3829 | 3828::And So I Watch You From Afar 3830 | 3829::Elysian Fields 3831 | 3830::pg.lost 3832 | 3831::Maserati 3833 | 3832::Dan Auerbach 3834 | 3833::Eddie Izzard 3835 | 3834::Firefall 3836 | 3835::Zwan 3837 | 3836::Cine 3838 | 3837::Copacabana Club 3839 | 3838::E.S. Posthumus 3840 | 3839::Of the Wand and the Moon 3841 | 3840::Rodrigo y Gabriela 3842 | 3841::Bell X1 3843 | 3842::Les Savy Fav 3844 | 3843::Steve Earle 3845 | 3844::Cibo Matto 3846 | 3845::Jonny Greenwood 3847 | 3846::Susumu Yokota 3848 | 3847::Get Cape. Wear Cape. Fly 3849 | 3848::Fred Astaire 3850 | 3849::Kay Starr 3851 | 3850::Jamie Lidell 3852 | 3851::Gustavo Santaolalla 3853 | 3852::Gnawa Diffusion 3854 | 3853::Michelle Branch 3855 | 3854::Stephanie McIntosh 3856 | 3855::Queen + Paul Rodgers 3857 | 3856::Mägo de Oz 3858 | 3857::Jill Scott 3859 | 3858::The Easybeats 3860 | 3859::El Cuarteto de Nos 3861 | 3860::Horace Andy 3862 | 3861::Os Paralamas do Sucesso 3863 | 3862::Plastiscines 3864 | 3863::Laurel Aitken 3865 | 3864::Chico Science & Nação Zumbi 3866 | 3865::The Wailers 3867 | 3866::The Warlocks 3868 | 3867::Spacemen 3 3869 | 3868::Mala Rodríguez 3870 | 3869::Aesop Rock 3871 | 3870::The Field Mice 3872 | 3871::Gustavo Cerati 3873 | 3872::Buju Banton 3874 | 3873::Glasvegas 3875 | 3874::Kinky 3876 | 3875::The Rifles 3877 | 3876::Gil Scott-Heron 3878 | 3877::Elastica 3879 | 3878::Paul Weller 3880 | 3879::The English Beat 3881 | 3880::Estelle 3882 | 3881::Toots and the Maytals 3883 | 3882::Mansun 3884 | 3883::The Feelies 3885 | 3884::The Duke Spirit 3886 | 3885::Kula Shaker 3887 | 3886::Gregory Isaacs 3888 | 3887::Burning Spear 3889 | 3888::Barrington Levy 3890 | 3889::Ike & Tina Turner 3891 | 3890::The Tears 3892 | 3891::Easy Star All-Stars 3893 | 3892::The Thrills 3894 | 3893::Bernard Butler 3895 | 3894::Free the Robots 3896 | 3895::John Mayall & The Bluesbreakers 3897 | 3896::Sleeper 3898 | 3897::Pharrell 3899 | 3898::The Telescopes 3900 | 3899::Marianne Faithfull 3901 | 3900::The Lucksmiths 3902 | 3901::Tindersticks 3903 | 3902::Julian Cope 3904 | 3903::Pernice Brothers 3905 | 3904::You Say Party! We Say Die! 3906 | 3905::VETO 3907 | 3906::Shout Out Louds 3908 | 3907::Curve 3909 | 3908::Art Brut 3910 | 3909::Love and Rockets 3911 | 3910::Fela Kuti 3912 | 3911::Windy & Carl 3913 | 3912::Grouper 3914 | 3913::Dictaphone 3915 | 3914::Porn Sword Tobacco 3916 | 3915::Ada 3917 | 3916::The Herbaliser 3918 | 3917::Secos & Molhados 3919 | 3918::Neu! 3920 | 3919::Pentagram 3921 | 3920::Le Orme 3922 | 3921::Manfred Mann's Earth Band 3923 | 3922::Blue Cheer 3924 | 3923::Saint Vitus 3925 | 3924::Miike Snow 3926 | 3925::Atmosphere 3927 | 3926::Roy Ayers 3928 | 3927::Sarah Vaughan 3929 | 3928::Deerhunter 3930 | 3929::Fink 3931 | 3930::The Temper Trap 3932 | 3931::Maria Gadú 3933 | 3932::Seu Jorge 3934 | 3933::Zeca Baleiro 3935 | 3934::Roberta Sá 3936 | 3935::Yuksek 3937 | 3936::Djavan 3938 | 3937::Wax Poetic 3939 | 3938::Elsiane 3940 | 3939::Jorge Ben Jor 3941 | 3940::Logh 3942 | 3941::Donavon Frankenreiter 3943 | 3942::The Naked and Famous 3944 | 3943::Urge Overkill 3945 | 3944::Paulinho Moska 3946 | 3945::Mariana Aydar 3947 | 3946::3-11 Porter 3948 | 3947::Alessandro Safina 3949 | 3948::Shaman 3950 | 3949::Republica 3951 | 3950::Canned Heat 3952 | 3951::Natiruts 3953 | 3952::Blaze 3954 | 3953::Gong 3955 | 3954::Derek and the Dominos 3956 | 3955::Collective Soul 3957 | 3956::Richard Wright 3958 | 3957::The Servant 3959 | 3958::Ananda Shake 3960 | 3959::Library Tapes 3961 | 3960::Divine Heresy 3962 | 3961::Afghan Whigs 3963 | 3962::Bayside 3964 | 3963::The Courteeners 3965 | 3964::Someone Still Loves You Boris Yeltsin 3966 | 3965::The Apples in Stereo 3967 | 3966::Final Fantasy 3968 | 3967::Delorean 3969 | 3968::Wild Nothing 3970 | 3969::Set Your Goals 3971 | 3970::The Bloody Beetroots 3972 | 3971::The Feeling 3973 | 3972::Pure Reason Revolution 3974 | 3973::Atlas Sound 3975 | 3974::Portugal. The Man 3976 | 3975::Pnau 3977 | 3976::Rotting Christ 3978 | 3977::Midnight Juggernauts 3979 | 3978::Ampop 3980 | 3979::Saltillo 3981 | 3980::Bane 3982 | 3981::Acceptance 3983 | 3982::NOFX 3984 | 3983::No Use for a Name 3985 | 3984::Tears Run Rings 3986 | 3985::Noah and the Whale 3987 | 3986::...And You Will Know Us by the Trail of Dead 3988 | 3987::Jack Peñate 3989 | 3988::Catherine Wheel 3990 | 3989::Mute Math 3991 | 3990::Goose 3992 | 3991::Labradford 3993 | 3992::Cloud Cult 3994 | 3993::The Secret Handshake 3995 | 3994::PlayRadioPlay! 3996 | 3995::The Unicorns 3997 | 3996::Spleen United 3998 | 3997::Polvo 3999 | 3998::Scratch Acid 4000 | 3999::The Whip 4001 | 4000::Zoot Woman 4002 | 4001::Go:Audio 4003 | 4002::Great Northern 4004 | 4003::The Dears 4005 | 4004::Hawk Nelson 4006 | 4005::Destroy The Runner 4007 | 4006::Frankmusik 4008 | 4007::Van She 4009 | 4008::No Age 4010 | 4009::Voxtrot 4011 | 4010::Lights Out Asia 4012 | 4011::Sleater-Kinney 4013 | 4012::We Have Band 4014 | 4013::The Monochrome Set 4015 | 4014::Mission of Burma 4016 | 4015::Bishop Allen 4017 | 4016::The Dodos 4018 | 4017::Swervedriver 4019 | 4018::Edward Sharpe & the Magnetic Zeros 4020 | 4019::Steve Aoki 4021 | 4020::Thurston Moore 4022 | 4021::Plastilina Mosh 4023 | 4022::Sleeping at Last 4024 | 4023::French Teen Idol 4025 | 4024::Hate Eternal 4026 | 4025::Sugar Ray 4027 | 4026::Film School 4028 | 4027::Secret Shine 4029 | 4028::Surfer Blood 4030 | 4029::The Republic Tigers 4031 | 4030::We Smoke Fags 4032 | 4031::The Big Pink 4033 | 4032::Under the Influence of Giants 4034 | 4033::Soundpool 4035 | 4034::Paper Route 4036 | 4035::Sick Puppies 4037 | 4036::BarlowGirl 4038 | 4037::Ryan Cabrera 4039 | 4038::Akcent 4040 | 4039::Vanilla Sky 4041 | 4040::Carolina Liar 4042 | 4041::Casting Crowns 4043 | 4042::Vertical Horizon 4044 | 4043::Falling Up 4045 | 4044::Orson 4046 | 4045::T.M.Revolution 4047 | 4046::Pain Confessor 4048 | 4047::The Blood Brothers 4049 | 4048::Diablo Swing Orchestra 4050 | 4049::Satyricon 4051 | 4050::Karnivool 4052 | 4051::Winds of Plague 4053 | 4052::Deathspell Omega 4054 | 4053::Anata 4055 | 4054::Blut aus Nord 4056 | 4055::Closure In Moscow 4057 | 4056::近藤浩治 4058 | 4057::Koop 4059 | 4058::PMMP 4060 | 4059::Boys Noize 4061 | 4060::Orphaned Land 4062 | 4061::Andromeda 4063 | 4062::Hanni Kohl 4064 | 4063::Steve Vai 4065 | 4064::Haggard 4066 | 4065::Mors Principium Est 4067 | 4066::Café Tacuba 4068 | 4067::Jarabe de Palo 4069 | 4068::Ark 4070 | 4069::Marty Friedman 4071 | 4070::Maná 4072 | 4071::Ojos de Brujo 4073 | 4072::Cacophony 4074 | 4073::I'm from Barcelona 4075 | 4074::Diablo 4076 | 4075::Paul Anka 4077 | 4076::Damn Yankees 4078 | 4077::Diabolical Masquerade 4079 | 4078::Jumbo 4080 | 4079::Banco del Mutuo Soccorso 4081 | 4080::Sacred Reich 4082 | 4081::Septic Flesh 4083 | 4082::Legion of the Damned 4084 | 4083::Rosetta Stone 4085 | 4084::Jane Birkin & Serge Gainsbourg 4086 | 4085::Bill Haley 4087 | 4086::Bella Morte 4088 | 4087::Museum 4089 | 4088::The Airborne Toxic Event 4090 | 4089::Legowelt 4091 | 4090::Robert Plant 4092 | 4091::Elmore James 4093 | 4092::Sonny Boy Williamson 4094 | 4093::Freddie King 4095 | 4094::Albert King 4096 | 4095::Citizen Cope 4097 | 4096::Dr. John 4098 | 4097::Otis Rush 4099 | 4098::Grant Green 4100 | 4099::Junior Wells 4101 | 4100::Lightnin' Hopkins 4102 | 4101::Koko Taylor 4103 | 4102::Cursive 4104 | 4103::Ted Leo and The Pharmacists 4105 | 4104::Laura Veirs 4106 | 4105::La Oreja de Van Gogh 4107 | 4106::Fernanda Takai 4108 | 4107::As Blood Runs Black 4109 | 4108::akissforjersey 4110 | 4109::Unearth 4111 | 4110::Bury Your Dead 4112 | 4111::Sonny Rollins 4113 | 4112::Cauterize 4114 | 4113::Rufio 4115 | 4114::My American Heart 4116 | 4115::The Hush Sound 4117 | 4116::Andy McKee 4118 | 4117::Breathe Electric 4119 | 4118::The Audition 4120 | 4119::Moneen 4121 | 4120::The Bled 4122 | 4121::Broadway 4123 | 4122::LoveHateHero 4124 | 4123::División Minúscula 4125 | 4124::Daphne Loves Derby 4126 | 4125::KSU 4127 | 4126::Four Year Strong 4128 | 4127::For Today 4129 | 4128::Maroon 4130 | 4129::The Agony Scene 4131 | 4130::Earth Crisis 4132 | 4131::Emarosa 4133 | 4132::Morningwood 4134 | 4133::Hird 4135 | 4134::The Dave Brubeck Quartet 4136 | 4135::Gustav Mahler 4137 | 4136::Franz Joseph Haydn 4138 | 4137::Farid Farjad 4139 | 4138::梶浦由記 4140 | 4139::Marco Borsato 4141 | 4140::Joe Walsh 4142 | 4141::Sailor Moon 4143 | 4142::Montrose 4144 | 4143::Nephew 4145 | 4144::Volbeat 4146 | 4145::Colin Hay 4147 | 4146::John Cale 4148 | 4147::Beth Gibbons & Rustin Man 4149 | 4148::Bay City Rollers 4150 | 4149::Free 4151 | 4150::Booker T. & The MG's 4152 | 4151::Eddie Money 4153 | 4152::Bob Seger 4154 | 4153::Gene Vincent 4155 | 4154::Peter & Gordon 4156 | 4155::John Mellencamp 4157 | 4156::Bill Haley and the Comets 4158 | 4157::Wanda Jackson 4159 | 4158::The Swinging Blue Jeans 4160 | 4159::The Cowsills 4161 | 4160::Foghat 4162 | 4161::Fats Domino 4163 | 4162::Harry Belafonte 4164 | 4163::Ricky Nelson 4165 | 4164::Lesley Gore 4166 | 4165::The Jeff Healey Band 4167 | 4166::Tommy James & The Shondells 4168 | 4167::Little River Band 4169 | 4168::The Marshall Tucker Band 4170 | 4169::The Lively Ones 4171 | 4170::Dion & The Belmonts 4172 | 4171::The Music Machine 4173 | 4172::Kenny Rogers 4174 | 4173::Waylon Jennings 4175 | 4174::The Beautiful South 4176 | 4175::The Left Banke 4177 | 4176::Carl Perkins 4178 | 4177::Tennessee Ernie Ford 4179 | 4178::Bo Diddley 4180 | 4179::Blackfoot 4181 | 4180::Heathen 4182 | 4181::Forbidden 4183 | 4182::Exumer 4184 | 4183::Our Lady Peace 4185 | 4184::Dishwalla 4186 | 4185::Gama Bomb 4187 | 4186::Dark Angel 4188 | 4187::Joseph Arthur 4189 | 4188::Saving Abel 4190 | 4189::All About Eve 4191 | 4190::The Breeders 4192 | 4191::Letzte Instanz 4193 | 4192::British Sea Power 4194 | 4193::Dead Fish 4195 | 4194::Fear Before the March of Flames 4196 | 4195::Téléphone 4197 | 4196::White Rose Movement 4198 | 4197::Milla Jovovich 4199 | 4198::Renaud 4200 | 4199::Georges Brassens 4201 | 4200::Alain Bashung 4202 | 4201::Prince & The Revolution 4203 | 4202::Prince and the New Power Generation 4204 | 4203::Mariza 4205 | 4204::Gal Costa 4206 | 4205::Ry Cooder 4207 | 4206::Francis Cabrel 4208 | 4207::2002 4209 | 4208::Jane Birkin 4210 | 4209::Phil Ochs 4211 | 4210::Mitchel Musso 4212 | 4211::Esmée Denters 4213 | 4212::The Ready Set 4214 | 4213::New Boyz 4215 | 4214::Stereolab 4216 | 4215::Throwing Muses 4217 | 4216::Cranes 4218 | 4217::Deadlock 4219 | 4218::Innerpartysystem 4220 | 4219::川井憲次 4221 | 4220::Empyrium 4222 | 4221::Javier Navarrete 4223 | 4222::Rick James 4224 | 4223::Bobby Brown 4225 | 4224::The Polyphonic Spree 4226 | 4225::Chew Lips 4227 | 4226::Soulwax 4228 | 4227::Scarlett Johansson 4229 | 4228::DatA 4230 | 4229::2 Many DJ's 4231 | 4230::Danger 4232 | 4231::Filthy Dukes 4233 | 4232::Danny 4234 | 4233::Zac Efron 4235 | 4234::Polly Scattergood 4236 | 4235::Marié Digby 4237 | 4236::Ben Lee 4238 | 4237::Bethany Joy Lenz 4239 | 4238::Tyler Hilton 4240 | 4239::Grace Potter and the Nocturnals 4241 | 4240::Heather Nova 4242 | 4241::Die Antwoord 4243 | 4242::Muchy 4244 | 4243::Reverend and The Makers 4245 | 4244::Wild Beasts 4246 | 4245::Dying Fetus 4247 | 4246::Trouble 4248 | 4247::Summoning 4249 | 4248::Autopsy 4250 | 4249::Vanilla Ninja 4251 | 4250::Moi dix Mois 4252 | 4251::Charlie Clouser 4253 | 4252::Azam Ali 4254 | 4253::My Brightest Diamond 4255 | 4254::Shearwater 4256 | 4255::Slint 4257 | 4256::Vas 4258 | 4257::High on Fire 4259 | 4258::Olivier Messiaen 4260 | 4259::Richard Thompson 4261 | 4260::Richard Wagner 4262 | 4261::Count Basie 4263 | 4262::Benny Goodman 4264 | 4263::Shocking Blue 4265 | 4264::Jermaine Jackson 4266 | 4265::Frida 4267 | 4266::Neneh Cherry 4268 | 4267::Wendy Carlos 4269 | 4268::Lalo Schifrin 4270 | 4269::Doris Day 4271 | 4270::Billy Preston 4272 | 4271::The Waterboys 4273 | 4272::Ian McCulloch 4274 | 4273::Julee Cruise 4275 | 4274::Beth Orton 4276 | 4275::Shulman 4277 | 4276::Ott 4278 | 4277::坂本龍一 4279 | 4278::LFO 4280 | 4279::Fila Brazillia 4281 | 4280::Entheogenic 4282 | 4281::Alpha 4283 | 4282::Jon Kennedy 4284 | 4283::Murcof 4285 | 4284::Jega 4286 | 4285::Jan Jelinek 4287 | 4286::Medwyn Goodall 4288 | 4287::Keiko Matsui 4289 | 4288::Jim Brickman 4290 | 4289::Urban Myth Club 4291 | 4290::Moonbootica 4292 | 4291::Sven Väth 4293 | 4292::Dykehouse 4294 | 4293::Dubtribe Sound System 4295 | 4294::Deuter 4296 | 4295::VFSix 4297 | 4296::Raven-Symoné 4298 | 4297::Adiemus 4299 | 4298::Therapy? 4300 | 4299::Can 4301 | 4300::Terry Reid 4302 | 4301::Secret Service 4303 | 4302::Ours 4304 | 4303::Krokus 4305 | 4304::Cowboy Junkies 4306 | 4305::Fountains of Wayne 4307 | 4306::Nick Cave 4308 | 4307::Del Shannon 4309 | 4308::Randy Crawford 4310 | 4309::Michael Angelo Batio 4311 | 4310::Tokyo Blade 4312 | 4311::Bernard Herrmann 4313 | 4312::Renan Luce 4314 | 4313::The Shangri-Las 4315 | 4314::Juliana Hatfield 4316 | 4315::John Scofield 4317 | 4316::Brad Mehldau 4318 | 4317::Nina Hagen 4319 | 4318::Lizzy Borden 4320 | 4319::Hellyeah 4321 | 4320::Blake Lewis 4322 | 4321::Jeremy Camp 4323 | 4322::Neon Trees 4324 | 4323::Flight of the Conchords 4325 | 4324::Bushido 4326 | 4325::Anders Manga 4327 | 4326::Crematory 4328 | 4327::Death Angel 4329 | 4328::Virgin Steele 4330 | 4329::Avalanch 4331 | 4330::Farben Lehre 4332 | 4331::The Pillows 4333 | 4332::Tinariwen 4334 | 4333::David Holmes 4335 | 4334::Halford 4336 | 4335::Billy Corgan 4337 | 4336::Stephen Lynch 4338 | 4337::Mercedes Sosa 4339 | 4338::Peter Broderick 4340 | 4339::Cirque du Soleil 4341 | 4340::Luis Miguel 4342 | 4341::Elbow 4343 | 4342::Everclear 4344 | 4343::Do As Infinity 4345 | 4344::Griffin House 4346 | 4345::Qntal 4347 | 4346::Bacilos 4348 | 4347::Lu 4349 | 4348::We Are The Ocean 4350 | 4349::This Town Needs Guns 4351 | 4350::Immanu El 4352 | 4351::Agnes 4353 | 4352::The Starting Line 4354 | 4353::Salt The Wound 4355 | 4354::Nightmare of You 4356 | 4355::Say Anything 4357 | 4356::Burning Skies 4358 | 4357::Still Remains 4359 | 4358::Matchbook Romance 4360 | 4359::Just Surrender 4361 | 4360::The Red Chord 4362 | 4361::The Music 4363 | 4362::Reggie and the Full Effect 4364 | 4363::fun. 4365 | 4364::The Damned Things 4366 | 4365::As Cities Burn 4367 | 4366::Young Galaxy 4368 | 4367::autoKratz 4369 | 4368::The Echelon Effect 4370 | 4369::Decoder 4371 | 4370::Roberta Flack 4372 | 4371::Pedro the Lion 4373 | 4372::Rogue Wave 4374 | 4373::Young Knives 4375 | 4374::There For Tomorrow 4376 | 4375::Seabear 4377 | 4376::The Moldy Peaches 4378 | 4377::Liquido 4379 | 4378::Colour Haze 4380 | 4379::Tiger Army 4381 | 4380::Nerina Pallot 4382 | 4381::Capsule 4383 | 4382::鈴木あみ 4384 | 4383::Sienna Skies 4385 | 4384::3 4386 | 4385::Third Day 4387 | 4386::El Canto del Loco 4388 | 4387::Exilia 4389 | 4388::Kiln 4390 | 4389::Midlake 4391 | 4390::Roots Manuva 4392 | 4391::The Bouncing Souls 4393 | 4392::Anouk 4394 | 4393::Deaf Center 4395 | 4394::Aidan Baker 4396 | 4395::Jóhann Jóhannsson 4397 | 4396::Battles 4398 | 4397::Cut Chemist 4399 | 4398::Gregor Samsa 4400 | 4399::Jaga Jazzist 4401 | 4400::The Kilimanjaro Darkjazz Ensemble 4402 | 4401::Soldout 4403 | 4402::Alex Smoke 4404 | 4403::Two Lone Swordsmen 4405 | 4404::Gabriel Ananda 4406 | 4405::Mira Calix 4407 | 4406::Sylvain Chauveau 4408 | 4407::Dirty Three 4409 | 4408::El-P 4410 | 4409::Descendents 4411 | 4410::Kingdom 4412 | 4411::The Vandals 4413 | 4412::Dance of Days 4414 | 4413::Milow 4415 | 4414::Lloyd 4416 | 4415::Marques Houston 4417 | 4416::Electric Wizard 4418 | 4417::Propagandhi 4419 | 4418::Lifelover 4420 | 4419::Edge of Sanity 4421 | 4420::dälek 4422 | 4421::Restart 4423 | 4422::Medicine 4424 | 4423::Fobia 4425 | 4424::Cool Kids of Death 4426 | 4425::Strike 4427 | 4426::Marjorie Estiano 4428 | 4427::Ida Maria 4429 | 4428::The Holloways 4430 | 4429::oOoOO 4431 | 4430::Modern Witch 4432 | 4431::Bolt Action Five 4433 | 4432::EPMD 4434 | 4433::Discharge 4435 | 4434::D.R.I. 4436 | 4435::7Seconds 4437 | 4436::Skip James 4438 | 4437::Fear 4439 | 4438::Adolescents 4440 | 4439::Green River 4441 | 4440::Cro-Mags 4442 | 4441::Wax Tailor 4443 | 4442::The Cooper Temple Clause 4444 | 4443::Stina Nordenstam 4445 | 4444::Lycia 4446 | 4445::Audrey 4447 | 4446::Harland 4448 | 4447::Mýa 4449 | 4448::Secede 4450 | 4449::X-Marks the Pedwalk 4451 | 4450::Solitary Experiments 4452 | 4451::Seefeel 4453 | 4452::T. Raumschmiere 4454 | 4453::Klinik 4455 | 4454::Quantic 4456 | 4455::Northern Lite 4457 | 4456::Audion 4458 | 4457::Underground Resistance 4459 | 4458::Jackson and His Computer Band 4460 | 4459::GreenGender 4461 | 4460::Alex Under 4462 | 4461::Panik 4463 | 4462::Baroness 4464 | 4463::Bert Jansch 4465 | 4464::Ashley Roberts 4466 | 4465::Cordel do Fogo Encantado 4467 | 4466::Teoman 4468 | 4467::The Dubliners 4469 | 4468::Darvin 4470 | 4469::The Walkmen 4471 | 4470::The Black Angels 4472 | 4471::The Tea Party 4473 | 4472::¡Forward, Russia! 4474 | 4473::Carl Orff 4475 | 4474::Georges Bizet 4476 | 4475::Yasmin Levy 4477 | 4476::Peter Brötzmann 4478 | 4477::Mulatu Astatke 4479 | 4478::Ali Farka Touré & Toumani Diabaté 4480 | 4479::Erkan Oğur 4481 | 4480::Irfan 4482 | 4481::Joe Henderson 4483 | 4482::Coleman Hawkins 4484 | 4483::Wayne Shorter 4485 | 4484::Zoë Keating 4486 | 4485::Serkan Süleymaniye 4487 | 4486::Mercan Dede 4488 | 4487::Mark Owen 4489 | 4488::Jesus Jones 4490 | 4489::White Town 4491 | 4490::Françoise Hardy 4492 | 4491::Tim Urban 4493 | 4492::Gladys Knight & The Pips 4494 | 4493::Ben E. King 4495 | 4494::Eve 6 4496 | 4495::Edwin McCain 4497 | 4496::Montell Jordan 4498 | 4497::mewithoutYou 4499 | 4498::Copeland 4500 | 4499::45 Grave 4501 | 4500::4hero 4502 | 4501::808 State 4503 | 4502::Feeder 4504 | 4503::James Dean Bradfield 4505 | 4504::Louis Prima 4506 | 4505::Gorefest 4507 | 4506::Big Mama Thornton 4508 | 4507::The Hooters 4509 | 4508::Dar Williams 4510 | 4509::Mates of State 4511 | 4510::Ben Frost 4512 | 4511::Oficina G3 4513 | 4512::NOMAK 4514 | 4513::Swollen Members 4515 | 4514::Jimmy Reed 4516 | 4515::Billy Squier 4517 | 4516::Julie London 4518 | 4517::The Gaslight Anthem 4519 | 4518::Nicole Atkins 4520 | 4519::Sugarplum Fairy 4521 | 4520::Little Man Tate 4522 | 4521::New Radicals 4523 | 4522::Chantal Kreviazuk 4524 | 4523::Jackson Browne 4525 | 4524::BBMak 4526 | 4525::Lisa Loeb 4527 | 4526::Wim Mertens 4528 | 4527::Morton Feldman 4529 | 4528::Pink Turns Blue 4530 | 4529::Steve Bug 4531 | 4530::Deee-Lite 4532 | 4531::Scout Niblett 4533 | 4532::I Monster 4534 | 4533::Boozoo Bajou 4535 | 4534::Maps And Diagrams 4536 | 4535::Paris Combo 4537 | 4536::Hildur Guðnadóttir 4538 | 4537::Joe McElderry 4539 | 4538::Britt Nicole 4540 | 4539::Hillsong 4541 | 4540::Chris & Cosey 4542 | 4541::Telepathe 4543 | 4542::Dima Bilan 4544 | 4543::Luis Fonsi 4545 | 4544::Dionne Bromfield 4546 | 4545::Alex Ubago 4547 | 4546::Franz Schubert 4548 | 4547::Michael Nyman 4549 | 4548::Nâdiya 4550 | 4549::Fernanda Brum 4551 | 4550::Twin Shadow 4552 | 4551::Machine Drum 4553 | 4552::Mest 4554 | 4553::The Hold Steady 4555 | 4554::Cannonball Adderley 4556 | 4555::Platinum Blonde 4557 | 4556::Ned's Atomic Dustbin 4558 | 4557::Moist 4559 | 4558::久石譲 4560 | 4559::Alpinestars 4561 | 4560::Jonathan Coulton 4562 | 4561::Carter the Unstoppable Sex Machine 4563 | 4562::Martha and the Muffins 4564 | 4563::Kenickie 4565 | 4564::Magnet 4566 | 4565::Giorgio Moroder 4567 | 4566::Catatonia 4568 | 4567::Pete Townshend 4569 | 4568::Charlotte Martin 4570 | 4569::Brooke Fraser 4571 | 4570::György Ligeti 4572 | 4571::Zbigniew Preisner 4573 | 4572::Belleruche 4574 | 4573::Molotov 4575 | 4574::Jawbreaker 4576 | 4575::Gomez 4577 | 4576::Youssou N'Dour 4578 | 4577::Nileppez 4579 | 4578::Keith Moon 4580 | 4579::Lulu 4581 | 4580::Joan as Police Woman 4582 | 4581::Dezerter 4583 | 4582::O. Children 4584 | 4583::Gevende 4585 | 4584::Bülent Ortaçgil 4586 | 4585::Feridun Düzağaç 4587 | 4586::Be Your Own Pet 4588 | 4587::A.C. Newman 4589 | 4588::Zooey Deschanel 4590 | 4589::Shantel 4591 | 4590::Global Deejays 4592 | 4591::Wonder Girls 4593 | 4592::Brazilian Girls 4594 | 4593::Drexciya 4595 | 4594::Coeur de Pirate 4596 | 4595::SoKo 4597 | 4596::Nine Black Alps 4598 | 4597::The Sunshine Underground 4599 | 4598::Gridlock 4600 | 4599::Sparta 4601 | 4600::Elefant 4602 | 4601::Fantasia 4603 | 4602::Fikret Kızılok 4604 | 4603::Astrobrite 4605 | 4604::Darren Criss 4606 | 4605::Abney Park 4607 | --------------------------------------------------------------------------------