# Artificial Intelligence to Reshape the Healthcare Ecosystem
## 2 AI Techniques for Healthcare
### Graph Neural Networks  
In spite of the excellent results generated by CNNs in many fields, when it is necessary to use irregular data, without a predefined or easily identifiable structure, and with intricate logical relationships between different components, graph neural networks (GNNs) are extremely useful [43]. GNNs are a class of neural networks designed to handle graph-structured data. For this reason, their applicability to many healthcare problems is im  
Figure 5: Example of U-Net architecture. The blue rectangles indicate multi-channel feature maps. The number of channels is shown above boxes. The white boxes indicate the copied feature maps for the reconstruction process. mediate. For example, typical limitations of traditional medical decision systems when heterogeneous medical data are used can be successfully tackled through the use of GNNs. They have paved the way to personalized medical decision algorithms based on high-precision representation models of patient health status, related to living habits, clinical information, and genetic analyses [44; 45; 46]. Similarly, brain activity analysis, complex neurodevelopmental disorders, drug interactions, and drug discovery can significantly benefit from GNN modeling [47; 48]. Before delving into GNNs' applications, we introduce some basic concepts that illustrate how they work. GNNs extend the concepts of CNNs to graphs, which abstract the context information present in the graph elements for classification and prediction operations. A graph \(G\) is represented as \(G=(V,E)\), where \(V\) is the set of nodes (also known as vertices) and \(E\) is the set of edges connecting the nodes. For example, nodes can be logically associated with proteins and vertices could relate to their affinity for establishing a bond. A graph can be illustrated by its adjacency matrix \(\mathbf{A}\), which embeds the connections between nodes:  
\[\mathbf{A}_{ij}= \begin{cases}1&\text{if there is an edge between node $i$ and node $j$,}\\ 0&\text{otherwise.}\end{cases}  \tag{8}\]  
Each node \(v_{i}\in V\) can have an associated feature vector \(\mathbf{x}_{i}\). The feature matrix for all nodes is denoted as \(\mathbf{X}\):  
\[\mathbf{X}=[\mathbf{x}_{1};\mathbf{x}_{2};\ldots;\mathbf{x}_{N}]\in\mathbb{R }^{N\times F}, \tag{9}\]  
where \(N\) is the number of nodes and \(F\) is the number of features per node. The logical relationship between nodes is of interest not only per se, e.g., for being associated with pathology or chemical interactions, but also because it represents the dynamism with which information is transferred between nodes. This process is captured by _graph convolutional networks_ (GCNs) [49]. The GCN performs graph convolutions using the graph adjacency matrix and a node feature matrix. Each layer of the GCN updates node representations by aggregating features received from node neighbors, and then, applying a linear transformation followed by a non-linear activation function. The graph convolution generalizes the convolution operation from CNNs to graph structures. The basic idea of this operation is to aggregate information from node neighbors. A graph convolution operation is defined as  
\[\mathbf{H}^{(l+1)}=\sigma\Big{(}\mathbf{\tilde{A}}\mathbf{H}^{(l)}\mathbf{W} ^{(l)}\Big{)}, \tag{10}\]  
where \(\mathbf{H}^{(l)}\) is the node feature matrix at layer \(l\) with \(\mathbf{H}^{(0)}=\mathbf{X}\); \(\mathbf{\tilde{A}}\) is the normalized adjacency matrix with added self-loops, typically defined as \(\mathbf{\tilde{A}}=\mathbf{D}^{-1/2}(\mathbf{A}+\mathbf{I})\mathbf{D}^{-1/2}\), where \(\mathbf{D}\) is the degree matrix and \(\mathbf{I}\) is the identity matrix; \(\mathbf{W}^{(l)}\) is a layer-specific trainable weight matrix; and \(\sigma\) is an activation function, such as ReLU. GNNs often use message passing mechanisms, where information is propagated between nodes.