Data
2025-01-22
0. Intro/Class Overview
Signal processing vibes
- This class will be a bit more supervised learning
- GNNs from the very basics
- HWs = labs: pytorch, pygeometric : tutorial on Canvas
No textbook, based on research
Syllabus
3 homeworks 20% each (see syllabus on Canvas)
- project in pytorch
- covers 4 weeks of material Final project 30%
- design a graph dataset (implementation)
- or most recent papers and present (lit review) Participation 10%
- Scribing (google doc)
1. Basics
see Lecture 1.pdf
Today
- Why data science and why large scale graphs?
- What are graphs/graph signals?
- How do graphs and graph signals interact with each other?
- Graph diffusion processes
- adjacency matrix and laplacian
- Total variation energy on graphs
- Canonical frequencies and oscillation models
Question
What is graph data science?
Examples of Graph Data
- Road networks (graph is the structure of then data: data is “on top” of the graph)
- Network / partially complete network (graph and data are entangled)
- Molecules (graph itself is the datapoint)
Question
Why large scale graphs?
- Graphs can get BIG
- nodes
Example
Genome sequencing using graphs.
- lots of tiny pieces of dna sections
- Want to find a path through all of them that makes sense
- edge when there is any overlap
Graph
Undirected
A graph is undirected if for all we have . Otherwise, it is directed
(see undirected graph)
Unweighted
A graph is unweighted if where
- corresponds to no edge
- corresponds to an edge These correspond to a binary relationship between nodes
Example
- Friendship networks are unweighted
- Citation networks
- etc
A graph is weighted if
Example
- Road networks, weights proportional to the lengths (traveling salesman problem)
- Correlation networks (graph induced by covariance matrix)
- etc
(see unweighted graph)
Graph Signals
Graph signals are data that exist on a graph . Data are represented as vectors where is the signal value at node . This is often implicit, but sometimes we will use the notation .
There are two types of signals:
- fixed node properties or features are information associated with nodes
- ex. Nodes belong to group A or group B
- graph signals (which often implies variability) can be interpreted as variables on the nodes of the graph
ex. traffic counts on the roads of minnesota
(see graph signals)
Question
How do we process graph signals? How do signals interact with the graph ?
We can do this through a network diffusion process
- sometimes called message passing, aggregation
Network Diffusion Process
A network diffusion process is a way to process graph signals. It is a procedure or description of ways to estimate information about a graph using available information and computations.
Example
Suppose we have a graph (see notes on Canvas and add graphic) with labelled nodes. We want to determine the labels of some nodes with unknown label.
Local (node-level) estimation or attributes with limited communications imposed by .
- idea: take info from all its neighbors and average their labels
- where is the neighborhood (graph) of .
Example: Signal Forecasting (Traffic Flow) is a directed graph and weighted with at each node . ie, is a probability of moving from to . If is the traffic at time , how do we estimate ?
Suppose
Define and .
We can estimate as
- We assume that all traffic at node leaves ie
Neighbors
The neighborhood of node is the set
(see neighborhood (graph))
Diffusion processes are local to each node and we represent them locally above.
- Can also represent these globally using matrices
Adjacency Matrix
The adjacency matrix for a graph is defined as
0 \text{ otherwise}\end{cases}$$
++++ (see notes) In our above example, can be expressed as a function of as
Graph Shift Opterator
We can define more general diffusion processes by defining the matrix such that (can only equal 0 along the diagonal?)
This matrix is called the graph shift operator (GSO). We way is a (graph) “shift” or diffusion of by .
Most common are adjacency matrix and laplacian We don’t really use 5,6,7 for directed graphs
We can always recover the local implementations:
(see graph shift operator)
Examples of Graph Shift Operators
We usually don’t use the last 3 with