Course syllabus
Course-PM
EEN245 Machine learning with graphs lp3 VT26 (7.5 hp)
Course is offered by the department of Electrical Engineering
Prerequisites
It is advisable to have completed an introductory course in machine learning.
Python programming.
Course purpose
Many real-world data, such as social networks, transaction networks, biological pathways, communication networks, and molecular structures, are inherently graph-structured. Traditional machine learning approaches designed for sequential data (e.g., text) or grid-structured data (e.g., images) often fall short in capturing the intricate relationships and unique properties graph data.
The aim of this course is to equip students with modern machine learning techniques specifically designed for graph-structured data. Students will gain a foundational understanding of core concepts such as graph representation learning and graph neural networks (GNNs), which have become a dominant and fast-growing paradigm for deep learning with graph data.
Through hands-on projects and real-world case studies, the course emphasizes practical problem-solving while grounding students in the essential theoretical principles. By the end of the course, students will be prepared to apply graph-based machine learning techniques to tackle complex challenges across diverse fields.
Learning outcomes
After completion of this course, the student should be able to
- Explain the unique properties of graph-structured data and reflect on the challenges it presents for traditional machine learning methods
- Develop and evaluate node embeddings to represent graph data effectively for downstream machine learning tasks
- Apply graph neural networks to make make better predictions by leveraging graph-structured data
- Construct and optimize various graph neural network architectures, such as convolutional and attention-based variants, for real-world applications
- Explain and analyze the mathematical principles underlying GNNs, including their expressive power and limitations
- Critically assess the performance of graph-based machine learning models
- Solve a practical project involving machine learning with graphs, encompassing problem formulation, implementation, evaluation, and interpretation of the results
Content
- Introduction to machine learning with graphs: Fundamental concepts of graph-structured data, its unique properties, and the challenges it presents in machine learning.
- Node embeddings: Techniques to represent nodes as embedding vectors that capture the graph structure and node-specific information, enabling downstream machine learning tasks.
- Graph neural networks: Detailed exploration of GNN architectures, including convolutional and attention-based variants, and their applications across diverse domains.
- Practical aspects of graph neural networks: Graph augmentation and training.
- Theory of graph neural networks: Understanding the mathematical principles behind GNNs, their expressive power, and limitations.
- Heterogeneous graphs.
- Graph neural networks for recommender systems.
- Community detection in graphs
- Deep generative models for graphs: Techniques for generating graph data using deep learning models.
Course staff
- Examiner and Lecturer: Alexandre Graell i Amat (alexandre.graell@chalmers.se, Office: Room 6409 in EDIT).
- Teaching assistants: Javad Aliakbari (javada@chalmers.se, office: 6331 in EDIT), and Amandus Reimer (reimera@chalmers.se, office: 6331 in EDIT).
Course literature
- W. L. Hamilton, Graph Representation Learning. Springer Nature, 2020.
The book is available for free download at: Book
Additional course material
Slides for the lectures and exercises for the tutorial sessions will be made available on Canvas.
Schedule
Lectures are typically on Tuesdays, Thursdays, and Fridays 13:15-15:00. However, there may be some exceptions. Please see the course memo for the preliminary schedule for the lectures.
Tutorials are typically on Tuesdays 15:15-17:00.
Please check Canvas for any updates about the schedule, and see time edit for the locations of the course events.
Lectures
The objective of the lectures is to highlight the most important parts of the course. However, it is not motivated (and there is not enough time) to cover all relevant parts in all detail. Part of the learning takes place outside the lecture hall, and the number of lectures has therefore been reduced to free up more time for group and individual work.
Tutorial sessions
There will be a tutorial session after the due date of each assignment, discussing and going through solutions and concepts used.
There may also be additional mini-lectures added, where the TAs will give a brief 30 minute talk about subjects related to the current topics of the lectures.
Please stay up to date with the schedule on Canvas, where we will provide information regarding any additional lectures planned.
Homework assignments
The course encompasses a total of 3 assignments, where you will need to use Python.
The assignments offer a practical avenue to apply the theoretical concepts covered in class.
The assignments are designed to be solved in pairs and will be graded. You will receive each assignment two weeks in advance of the respective deadline, and you should submit your solutions on Canvas in accordance with the assignment instructions. Any late submissions will regrettably not be assessed, resulting in a loss of points.
Please see the module "Assignment Instructions" for more information about your assignment submissions.
Consultation hours
Amandus or Javad will be available in their office (office number 6331 in the EDIT building, floor 6Ö, take the north staircase) to answer questions regarding the homework on Wednesdays 13:15-15:00. For questions outside office hours, feel free to email, message on Canvas, or ask during the break in class.
Final project
The course does not have a final written exam in class. Instead, there will be a final project.
The final project, also to be solved in pairs, will be handed out in early February, and you'll need to submit a short planning report by February 20. The deadline for submitting the final project is March 16.
Additionally, you will present your project briefly (in around 10 minutes per group), and will get questions related to it and the underlying concepts. Dates will be confirmed later on, but it will be shortly after submission.
The final project gives a maximum of 25 points, divided into 5 points for the presentation, and 20 points for the project submission .
Final grades
The final score (maximum score 55) will be decided based on the points collected via the 3 assignments (maximum score 30, 10 each) and the final project (maximum score 25). Three points will be given to all students providing feedback on the course evaluation questionnaire. Please upload a screen shot showing you completed the course evaluation in the relevant assignment. Note that the three points will not be awarded if their addition would cause a grade to move from fail to 3.
The final grade is then calculated as follows:
- Total score: 0 - 25 -> Grade: fail
- Total score: 26- 38 -> Grade: 3
- Total score: 39 - 48 -> Grade: 4
- Totall score: 49 - 55 -> Grade 5
Additionally, to pass the course you must have earned a total of at least 10 points for the final project, including 3 points from the presentation.
Course summary:
| Date | Details | Due |
|---|---|---|