where ϕ {\displaystyle \phi } and ψ {\displaystyle \psi } are differentiable functions (e.g., artificial neural networks), and ⨁ {\displaystyle \bigoplus } is a permutation invariant aggregation operator that can accept an arbitrary number of inputs (e.g., element-wise sum, mean, or max). In particular, ϕ {\displaystyle \phi } and ψ {\displaystyle \psi } are referred to as update and message functions, respectively. Intuitively, in an MPNN computational block, graph nodes update their representations by aggregating the messages received from their neighbours.