EECS 598: Special Topics, Winter 2018
Mining Large-scale Graph Data

wiki-graph map-graph friends-graph brain-graph

Graphs naturally represent information ranging from links between webpages to friendships in social networks, to connections between neurons in our brains. These graphs often span millions or even billions of nodes and interactions between them. Within this deluge of interconnected data, how can we extract useful knowledge, understand the underlying processes, and make interesting discoveries?

This course will cover recent methods and algorithms for exploring and analyzing large-scale networks, as well as applications in various domains (e.g., web, social science, computer networks, neuroscience). The focus will be on scalable and practical methods, and the students will have the chance to analyze large datasets. The topics that we will cover include: ranking, classification, clustering and community detection, summarization, similarity, anomaly detection, node representation and deep learning in the graph setting.


This course aims to introduce students to graph mining. Students will become familiar with the challenges of processing large amounts of data,state-of-the-art methods and algorithms for analyzing graphs, and applications of graph mining in various domains. We expect that by the end of the course, students:

  • will have a thorough understanding of the graph mining foundations, and
  • will be able to:
    • critique graph mining methods,
    • formulate and solve graph-related problems, and
    • analyze large-scale datasets (in distributed and other settings).


Students are expected to (1) have basic knowledge of linear algebra, (2) be familiar with probability theory and statistics, and (3) have good programming skills (e.g., Python, JAVA, C, Matlab, R, or any programming language of their preference). Basic knowledge of machine learning is helpful.

** Advanced-standing undergraduates or other students who do not meet the prerequisites may enroll with permission of the instructor.

Instructor: Danai Koutra
Office Hours: by appointment

Teaching Assistant: Yujun Yan
Office Hours: Monday / Wednesday 1-2pm @ BBB 4945

Lectures: Tue/Thu 1:30-3:00pm @ EECS 1311
Discussion: Thu 3:00-4:00pm @ FXB 1012


Schedule (tentative)

!! The topics and dates of the lectures are subject to change. The following schedule outlines the topics that we will be covering in this course.

Readings Per Topic

Static Graphs: Laws and Patterns

Dynamic Graphs: Laws and Patterns

Random Walks, Pagerank, HITS

Node Classification (BP, SSL), Similarity and Roles

Clustering and Community Detection

Deep Learning for Graphs

Graph Similarity and Alignment

Graph Summarization

Heterogeneous Graphs

Knowledge Graphs

Anomaly Detection

Higher-order Networks

Recommender Systems

Streaming Graph Algorithms

Other topics that may be of interest (not covered in class, but potentially related to your projects)


Link Analysis

Large-scale social science

Course Structure


Check the course website on Canvas to find pointers to datasets, code, and tools that will be useful for your assignments and projects.


The coursework will comprise at most three short, practical assignments that will familiarize the students with the challenges of large-scale graph analysis. Each assignment will be done individually.

Semester-long Project

The most important component of this course is a semester-long project (related to topics discussed in class) that will be selected by students. The projects will be done in groups of 3-4 students. We will arrange brainstorming sessions to facilitate group formation. Feel free to use Canvas to pitch ideas and find groupmates.

For the project deliverables, you are required to make only one submission. To post on Canvas on behalf of a group, first go to the "People" tab, then to the Group tab, and then search for the relevant homework or project. Join with your groupmates the same group.

Ideas for Projects:

You might find ideas for your projects by exploring the topics of various data science competitions:

Project Deliverables:

  • Survey (1-2 pages, ACM format, 15% of the project grade).
    You will need to pick a research topic for your project and read 6-8 relevant papers. Ideally the survey will help you identify the specific problem you want to address, and will lead to the project proposal naturally. The survey will be part of your final report. It should be a well though-out synthesis of the papers that you will read, not just a repetition of the paper's abstracts / introductions. Your survey should provide answers to the following questions:
    • What is the common theme of the papers you read? Give the problem definition(s).
    • What are the challenges of the area?
    • How do the papers relate to each other?
    • Are they solving a new problem or improving an existing method?
    • What are the main techniques that they are using?
    • What are 3 strengths and 3 weaknesses of each paper?
    • What are the limitations of each method?
    • Think about some future directions. What would you do better? Think about scalability issues, generality (e.g., weighted, directed, time-evolving, attributed networks), applicability to various domains.
    >> Don't forget to include the names of all the group members in the pdf. If you want to submit a longer survey, please ask me first.
  • Project Proposal (2 pages in PDF format, 15% of the project grade).
    Your proposal should include the following sections:
    • Problem definition
    • Challenges
    • Most related prior work and its shortcomings
    • Proposed approach
    • Data that you will use
    • Evaluation plan
    >> Don't forget to include the names of all the group members in the pdf.
  • Mid-term Report (4-5 pages, ACM format, 20% of the project grade).
    See below for the sections that your final report should have. At this point, for your midterm report, you should start editing the following sections:
    • Section 2. Data: Describe the synthetic and real data that you will use, and explain the data collection process (if applicable).
    • Section 3. Proposed Method: Introduce the method that you propose, give the necessary definitions, potentially give proof of concept.
    • Section 4. Experiments: Give some preliminary experiments (on synthetic or real data).
    • Section 5. Progress and Next Steps (temporary section): Outline your next steps and whether you are on track. Now that you have had time to work on your projects, if anything has changed with respect to your proposal, mention it.
    • Section 6. Division of work (your grade will depend on your contribution to the project)
    >> Don't forget to include the names of all the group members in the pdf.
  • Final Report (10 pages including citations, ACM format + CODE, 50% of the project grade).
    A. Report Structure: Your report should have the form of a paper with (at least) the following sections:
    • Section 0. Abstract
    • Section 1. Introduction
    • Section 2. Data
    • Section 3. Proposed Method
    • Section 4. Experiments
    • Section 5. Related Work
    • Section 6. Conclusions (include what you learned)
    • Section 7. Division of work (your grade will depend on your contribution to the project)
    B. Code: Organize your code in a folder called "CODE". Include a README file and MAKEFILE. Your code should be running on
    >> Submit a zip file with the pdf and the CODE/ folder. >> Don't forget to include the names of all the group members in the pdf.
For more information, look out for the announcements on Canvas.


Class Participation 7%
Class Presentations: 1 presentation (15%) + 2 discussions (7%) 22%
Project: 1 in a group of 3-4 students 50%
Short Assignments: 3 assignments, 7% each 21%


Late Days

For the assignments and project submissions, check out the schedule on the website.

For assignments, you will have 4 late days in total (no questions asked). If needed, you can use all the late days for one assignment or split them between the three assignments. Late days are rounded up to the nearest integer. For example, a submission that is 4 hours late will count as one day. Beyond that, you will get a zero for that assignment.

Since the projects require coordination of 3-4 students, there will be NO late days. If you submit AFTER the deadline, you will get a zero on that component of the project. Please submit at least 30 minutes before the regular deadline as a safety measure.

We have run into situations in the past (rare) where students miss the regular deadline by 2-3 minutes for a project. Sometimes, this is because of last-minute project work or slow servers. We will give a one-time waiver of the penalty if you miss the regular submission deadline for a project by 5 minutes or less. Beyond that, your project submission will not be graded and you will receive a zero. Don't forget that this is less strict than what happens with conference deadlines; if you miss the deadline even by a few seconds, you will need to submit to another conference or wait for a year until the next submission cycle :)

For extreme circumstances, like medical emergencies, no-penalty extensions will be granted. Email eecs598mlgd-w18 [AT] with written documentation (e.g. doctor's note).

Honor Code

All students (including LS&A and Engineering) are required to observe the Engineering Honor Code in all assignments. A copy of the honor code can be found here. Please make sure that you clearly understand what constitutes cheating. If you are not sure in any specific case, you should ask the teaching staff. The University takes honor code violations seriously, and penalties can be severe. You are not allowed to make use of assignment solutions by others, including solutions from previous semesters.

Any suspected violations of the honor code will be reported.

Disabilities and Conflicts

Students with disabilities that are documented with the Services for Students with Disabilities (SSWD) Office should contact the professor during the first three weeks of class to make appropriate arrangements.