databases

EECS 598-008: Special Topics, Winter 2019
Advanced Data Mining

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

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

Objectives

This course aims to introduce students to advanced data mining, with emphasis on interconnected data or graphs or networks. Students will become familiar with the challenges of processing large amounts of data, state-of-the-art methods and algorithms for analyzing them, and applications of data 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 data mining methods,
    • formulate and solve new problems, and
    • analyze large-scale datasets (in distributed and other settings).

Prerequisites

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: after class & by appointment

Teaching Assistant: Jiong Zhu
Office Hours: Tue 3-4pm @ Duderstadt Center 2nd Floor Vizhub 7                           Fri 12-1pm @ BBB Learning Center

Lectures: Thu 4-7pm @ EECS 1303
Discussion: Fri 11am-noon @ EECS 1200

Email: eecs598dm-w19@umich.edu

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. The paper readings have been updated!



Readings Per Topic

Static Graphs: Laws and Patterns

Dynamic Graphs: Laws and Patterns

Link Analysis & Node Classification

Community Detection & Role Discovery

Representation Learning

Summarization

Recommender Systems

Similarity & Fusion

Anomaly Detection

Network Inference

Computational Social Science

Adversarial Networks


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

Interpretability

Link Prediction

Heterogeneous Graphs

Knowledge Graphs

Higher-order Networks

Streaming Graph Algorithms


Course Structure

Resources

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

Assignments

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 Piazza 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 (8 pages excluding 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 horton.eecs.umich.edu.
    >> 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.

Grading

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%

Policies

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 eecs598dm-w19 [AT] umich.edu 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.