INFS7450 Social Media Analytics
Project 1 – Fast Computation of User Centrality Measures
Semester 1, 2021

Marks: 15 marks (15%)
Submission Due: 19 Apr 21 16:00 (Brisbane Time)
Deliverables: See deliverables part
How to submit: Electronic submission via Blackboard

Goal: This project aims to implement a number of efficient algorithms to compute various
centrality measures for user nodes such as Pagerank, Betweenness and Closeness. Students
are required to finish this project individually.

Dataset: In this project, you will be working with the publicly available Facebook social
network data. The Facebook data has been anonymized by replacing the Facebook-internal ids
for each user with a new value. The data contains 4039 nodes, 88234 edges in total. Each line
of the data represents an undirected link starting from one node to another.

The dataset is available from UQ blackboard. See /Assessment/INFS7450 Project One.

1. Calculate the Betweenness Centrality for nodes in the Facebook dataset. (8 marks)
Overview: write code to load the Facebook social network data and construct an
undirected and unweighted graph. Based on the constructed graph, you are required to
write a program to calculate the betweenness centralities for the graph vertices.
Input: The provided Facebook social network data.
Output: The top-10 nodes with the highest betweenness centralities.

2. Calculate PageRank Centrality for nodes in the Facebook dataset. (7 marks)
Overview: write code to load the Facebook social network data and construct an
undirected and unweighted graph. Based on the constructed graph, you are required to
write a program to calculate the PageRank (with = 0.85, = 0.15) centralities for
the graph vertices.
Input: The provided Facebook social network data.
Output: The top-10 nodes with the highest PageRank centralities.

Requirements:
You may use third-party libraries, such as NetworkX to read, load and manipulate the
Facebook network dataset. However, you must write your own code to implement the
function of node centrality calculation rather than using the third-part or built-in
functions. (You can use any functions in NetworkX other than the functions for
centrality calculation.)

Programming Languages:
Python and NetworkX are recommended. However, you have your own choices of
preferred programming languages including, but not limited to, Python, MATLAB,
Java, C, C++, etc.

Deliverables (!!VERY IMPORTANT):
1. A report (.pdf). See the given appendix for an example template.
Submit your report in the PDF format, not in the word format!
2. A source code file. For python users, organize your code in this way:

Figure 1. the example of your submitted source code

If you are using other programming languages, please organize your code in one
file, and let me know how to run your code only via a simple click.

Only submit the source code in one file, don’t submit the data file.

3. A result text file. The file must contain two lines of results. The first line is the top-
10 nodes with the highest betweenness centralities. The second line is the top-10
nodes with the highest PageRank centralities. (each node id in each line should be
separated by a space.) See the following picture as an example.

Figure 2. the example format of the results

Don’t change the format! Your result file will be checked and marked via a script.
If you change the format, your submitted results will not be accepted.
Keep in mind the first line is the results of task 1 and the second line is the results
of task 2. Don’t mix the order.
Don’t use other delimiters, only use a space.
Only report the top-10 node ids, don’t fill in with node centrality scores!

4. Name all the submitted files by your student ID. For example, 41234567.py for
the source code, 41234567.txt for your submitted results, and 41234567.pdf for
5. Submit one archive file with your student number as the file name (e.g.
12345678.zip) with all the files mentioned above.
For example:
A student (with id 1234567) can submit his project as follows:
1234567.zip/
-------1234567.py
-------1234567.txt
-------1234567.pdf

Any submitted project which doesn’t follow the above guidelines will be desk rejected
without marking, which means your will get zero marks for the corresponding parts.

Marking criteria (Total marks: 15):

• Task 1: 8 marks = 3 marks (code) + 3 marks (results) + 2 marks (report)
• Task 2: 7 marks = 2 marks (code) + 3 marks (results) + 2 marks (report)
codes cannot be executed or generate the results as reported, the corresponding
marks for the code and results will be deducted.
• We will evaluate your submitted results via calculating the Jaccard Similarity
between the submitted results and the ground truth. That means your mark for each