EE226 2020 Spring In this project, you are given a coauthor network with 16863 nodes and 46116 edges. You can use it as your training set to learn an encoder. The encoder will give embeddings for each node based on which to predict whether a link exists between every pair of nodes. The learned encoder will be tested on a given testing set including node pairs drawn from the original network. You are going to label the pair as 1 if the two given nodes are connected in the original network and 0 otherwise. Click the "Join Competition" button to join us. Attention Before submitting your predictions, please update your name with "STUDENTID_NAME" before submitting your predictions. You can update your name in the "Team" tab. Before the submission deadline (2020/6/4), you can only view the accuracy evaluated on 30% of the dataset on the leaderboard. After the deadline, we will reveal your model accuracy evaluated on the entire dataset to rate your performance. However, you do not need to worry that your score would be affected by 1 or 2 percent of accuracy loss; we will mark by the accuracy ranges. For fairness, we set a few rules for you to obey --- violation against the rules will lead to score deduction: 1. Please do not copy someone else's code. We will run plagiarism check after submission. 2. Please do not download the dataset somewhere else to train your model. We have shuffled the dataset and will reproduce your experimental results using the dataset. A violation would be considered if there is a big gap between your reported results and our reproduced results. 3. Please do not use the pre-trained model. Everything should be built from scratch. 4. You are forbidden to directly call any clustering function in the Python library, which means you need to implement any clustering algorithm by yourself. 5. For us to reproduce your code, please follow the "Environment" instruction. DataSet You can click the "Data" button to get more information about our dataset and download it. There are two CSV files: 1) network edges file; 2) testing node pairs file. You need to learn the low-dimensional representation of each node with network embedding methods and use these embeddings to predict whether there exists an edge between each node pair in the testing set. Each test node pair is allocated a unique id, and you need to use this id as your prediction index. For example, (0, 100, 400) means a test node pair (100, 400) and its id is 0. If you predict there exists an edge between 100 and 400 with probability 0.8, the value of the corresponding row of your uploaded file is (0, 0.8). Environment You need to use the "Python" to write the neural network model, and we highly recommend you to use the "Python3.7.0" for us to reproduce your code. Submission You can click the " Submit Prediction" button on the upper-right, and upload your prediction. The prediction file should be a CSV file, and the first column name is "id", the second is "label". When you upload the CSV file successfully, you can get a score about the Area under the curve (AUC) for your prediction simultaneously. \[AUC(f) = \frac{\sum_{t_0 \in D^0}\sum_{t_1 \in D^1}1[f(t_0) < f(t_1)]}{|D^0| \cdot |D^1|}\] where 1|f(t_0 ) < f(t_1)| denotes an indicator function which returns 1 iff f(t_0 ) < f(t_1) otherwise return 0; D^0 is the set of negative examples, and D^1 is the set of positive examples. There are only two submissions allowed for each person every day. Please carefully arrange the schedule of your submission. Requirements for uploading You need to zip and upload the following files before the deadline: ①your codes ②a readme.txt, which includes the scripts or instructions to run your codes. The final zip file should be uploaded via our course website: https://oc.sjtu.edu.cn Deadline of this project Deadline for submitting your predictions on Kaggle: 2020/6/4 Deadline for uploading your readme and code via our course website: 2020/6/5