DEV Community

Richard Minsoo Go
Richard Minsoo Go

Posted on

Graph Deep Learning — Ch.06: Applications of Graph AI [EN]

STATERA Library · Series 01 · Volume 29 · Chapter 06 · EN
Source: https://github.com/Statera-Library/01_Vol_29_Graph_Deep_Learning/blob/main/Chapter_06_Applications_of_Graph_AI/Chapter_06_Applications_of_Graph_AI_EN.md

Volume 29. Graph Deep Learning

Chapter 06. Applications of Graph AI

06.00. Overview

Graph AI applies graph-based representation learning to problems in which relationships are as important as individual entities. Unlike conventional machine learning that often assumes independent samples or regular grids, Graph AI models entities as nodes and their interactions as edges. This structure allows learning systems to capture dependencies, connectivity, influence, and relational context that cannot be represented naturally by isolated feature vectors.

The practical importance of Graph AI comes from the fact that many real systems are inherently relational. Social networks connect people, transportation networks connect locations, molecular structures connect atoms, communication systems connect devices, and robotic fleets connect agents through communication and shared environments. Representing these systems as graphs preserves their structural organization while allowing machine learning models to reason directly over relationships.

Graph Neural Networks provide the computational foundation for many Graph AI applications. Through message passing, each node receives information from neighboring nodes, combines that information with its own features, and updates its internal representation. Repeating this process across multiple layers allows information to propagate through increasingly larger neighborhoods, enabling the model to learn both local interaction patterns and broader structural dependencies within a graph.

Node-level applications focus on predicting properties associated with individual entities. Examples include classifying users in social networks, identifying fraudulent accounts in financial networks, estimating traffic conditions at intersections, predicting the functional role of proteins, or determining the operational state of machines. The prediction is influenced not only by the node\'s own attributes but also by information contained in its surrounding graph neighborhood.

Edge-level applications examine relationships between pairs of entities. Link prediction can estimate whether two users are likely to interact, whether two molecules may exhibit a specific relationship, whether a communication link may fail, or whether two devices should exchange information. Edge classification can additionally characterize existing relationships, allowing Graph AI systems to distinguish different interaction types, strengths, directions, or operational conditions.

Graph-level applications produce predictions for an entire graph rather than individual nodes or edges. Molecular property prediction is a representative example because a molecule can be represented as a graph of atoms and chemical bonds and then classified according to toxicity, activity, stability, or other properties. Similar approaches can characterize complete circuits, software structures, transportation systems, scenes, robotic configurations, and other relational systems.

Recommendation systems represent another major application domain because relationships among users, products, content, and behaviors naturally form large heterogeneous graphs. Graph-based models can propagate preference information through these relationships and discover indirect associations that conventional user-item matrices may overlook. This enables recommendations to incorporate social context, interaction history, semantic similarity, and multi-hop relationships within a unified representation.

Knowledge graphs extend Graph AI toward structured semantic reasoning. Entities such as people, organizations, objects, locations, events, and concepts are connected through typed relationships that encode factual or contextual knowledge. Graph representation learning can predict missing relations, retrieve related entities, support question answering, and provide structured context to language models, thereby connecting relational learning with broader semantic and reasoning systems.

Graph AI is particularly useful in cybersecurity and financial intelligence because malicious activity frequently emerges as a pattern of relationships rather than an isolated observation. Transactions, accounts, devices, addresses, communication events, and authentication records can be organized into graphs. Models can then detect suspicious subgraphs, abnormal connectivity, coordinated behavior, or unusual information flows that may remain hidden when records are analyzed independently.

Scientific applications use graphs to represent structures ranging from molecules and proteins to materials and physical interaction systems. Nodes may correspond to atoms, residues, particles, or physical components, while edges describe bonds, spatial proximity, forces, or functional relationships. Graph learning can therefore support molecular property prediction, drug discovery, protein analysis, material design, and scientific simulation while respecting important structural relationships.

Transportation and mobility systems are naturally represented as dynamic graphs in which roads, intersections, vehicles, stations, or geographic regions interact over time. Graph AI can combine spatial connectivity with temporal observations to predict traffic flow, congestion, travel demand, or network disruption. When temporal models are integrated with graph representations, the resulting system can reason simultaneously about where interactions occur and how conditions evolve.

Robotics and Physical AI provide an especially important setting for Graph AI because intelligent machines rarely operate as completely independent entities. A robot can itself be modeled as a graph of joints, links, sensors, actuators, and functional components, while multiple robots can form a larger interaction graph. Graph representations can therefore support robot modeling, coordination, communication, task allocation, cooperative perception, and relational reasoning across distributed agents.

In multi-robot systems, nodes may represent individual robots and edges may represent communication availability, spatial proximity, collaboration relationships, shared observations, or task dependencies. A Graph Neural Network can propagate information between neighboring robots and construct representations of collective operational conditions. This allows decentralized local observations to contribute to coordinated decisions without requiring every agent to process the complete global state directly.

Graph AI can also connect perception with structured scene understanding. Objects detected by cameras, LiDAR, radar, or other sensors can become nodes, while spatial, semantic, causal, or interaction relationships become edges. The resulting scene graph provides information beyond object detection by describing how entities relate to one another, creating a structured intermediate representation that can support planning, prediction, reasoning, and world modeling.

Dynamic Graph AI extends these ideas to environments whose entities and relationships continuously change. Nodes may appear or disappear, edges may form or break, and attributes may evolve with time. Such models are important for traffic systems, communication networks, financial transactions, social interactions, autonomous systems, and robotic fleets. Learning must therefore capture both graph structure and temporal evolution rather than treating the graph as permanently fixed.

The broader significance of Graph AI lies in its ability to transform collections of independent observations into relational intelligence. Conventional neural networks learn patterns within data samples, whereas graph-based systems additionally learn how entities influence, constrain, cooperate with, or depend on one another. This capability makes Graph AI an important foundation for systems that must understand networks, structured environments, interacting agents, and distributed forms of intelligence.

As AI systems progress toward increasingly complex real-world operation, Graph AI can function alongside perception models, world models, reinforcement learning, foundation models, and planning systems. Perception identifies entities, graph models organize their relationships, temporal models predict future states, and decision mechanisms determine actions. In this integrated architecture, Graph AI provides the relational structure required to move from isolated intelligence toward coordinated and collective intelligence.

06.01. Social Network Analysis

Social Network Analysis examines systems in which people, organizations, accounts, communities, or other social entities are connected through interactions. A social network can be represented naturally as a graph, where nodes correspond to entities and edges describe relationships such as friendship, communication, following, collaboration, or transactions. This representation makes the structure of social interaction directly available to computational analysis.

Traditional analysis often describes individuals using isolated attributes such as age, location, interests, activity frequency, or demographic information. Graph-based Social Network Analysis adds relational context by considering who interacts with whom and how those interactions are organized. Two users with similar attributes may play very different roles when their positions within the network differ, making topology an important source of information beyond conventional feature vectors.

Graph structure reveals patterns that are difficult to observe from individual records alone. Degree measures indicate how many direct connections a node has, while paths describe indirect relationships across multiple nodes. Connectivity, clustering, centrality, and neighborhood structure provide complementary perspectives on how information and influence may flow through a network. These structural properties form the classical foundation on which modern Graph AI methods operate.

Centrality analysis attempts to identify nodes that occupy important structural positions. Degree centrality emphasizes highly connected entities, while other centrality measures can capture nodes that connect distant regions or lie along important paths. In practical social systems, structurally central users may act as information hubs, coordinators, brokers, or bridges between communities. Their importance therefore depends on network position rather than simply on individual activity.

Community detection seeks groups of nodes that are more strongly connected to one another than to the rest of the network. Such communities may correspond to friendship groups, professional organizations, interest groups, customer segments, research communities, or coordinated behavioral clusters. Graph-based learning can incorporate both network topology and node attributes, enabling communities to be characterized by their relationships as well as by the properties of their members.

Graph Neural Networks extend Social Network Analysis by learning representations directly from neighborhoods. Through message passing, a user representation can combine the user\'s own features with information obtained from connected users. Multiple GNN layers allow information to propagate across larger neighborhoods, enabling a model to learn patterns involving friends, friends of friends, and broader communities rather than treating each account as an independent training example.

Node classification is one of the most common Graph AI tasks in social networks. A model may predict a user\'s interests, account category, behavioral group, or other labels from both node features and surrounding relationships. Because connected users frequently share behavioral or contextual characteristics, neighborhood information can improve prediction. However, useful modeling must avoid assuming that every connected entity necessarily has the same properties.

Link prediction focuses on estimating relationships that are missing, unobserved, or likely to appear in the future. Social platforms can use this capability to identify potential connections, collaboration opportunities, or relevant communities. The model learns from existing network structure and node representations to estimate whether a meaningful edge should exist between two nodes, transforming relationship discovery into a graph-based prediction problem.

Influence analysis investigates how information, opinions, behaviors, or actions propagate through connected populations. A message originating from one node may spread through direct neighbors and subsequently reach distant parts of the network. Graph representations help model these propagation paths and identify nodes or communities that significantly affect diffusion. Temporal information can further distinguish persistent influence from short-lived bursts of activity.

Social networks are rarely static. Users join and leave, relationships form and disappear, interaction intensity changes, and communities evolve. Dynamic Graph AI represents these changes explicitly by combining relational structure with temporal information. Instead of analyzing only a fixed snapshot, temporal graph models can examine how node states and connections evolve, supporting tasks such as emerging-community detection, interaction forecasting, and changing influence analysis.

Heterogeneous social graphs provide a richer representation when several types of entities and relationships coexist. Nodes may represent users, posts, topics, organizations, products, or locations, while edges may represent following, authorship, sharing, membership, purchasing, or mentioning. Preserving these different semantic relationships allows Graph AI to distinguish fundamentally different interactions rather than reducing all connections to a single generic edge type.

Social Network Analysis is also useful for anomaly and coordinated-behavior detection. Suspicious activity may not appear abnormal when individual accounts are inspected separately, but unusual patterns can emerge from dense interaction clusters, repeated connection structures, synchronized behaviors, or unexpected bridges between groups. Graph models can therefore identify relational anomalies and suspicious subgraphs that conventional record-level analysis may fail to expose.

Recommendation systems benefit strongly from social graph information because preferences can propagate through relationships among users, content, products, and communities. Graph-based recommendation models can combine direct interactions with multi-hop associations to discover relevant items or connections. This allows recommendations to incorporate structural similarity and relational context in addition to conventional behavioral histories, creating richer representations of user preference.

Large social networks introduce significant scalability challenges because real platforms may contain millions or billions of nodes and edges. Processing the complete graph during every training step is often impractical. Sampling methods, neighborhood aggregation, mini-batch training, distributed computation, and efficient graph storage are therefore important engineering techniques for applying GNNs to large-scale networks while maintaining manageable memory and computational requirements.

Privacy, fairness, security, and interpretability are especially important in social Graph AI because relationships can reveal sensitive information that is not explicit in individual records. A model may infer characteristics from neighboring users or community membership, potentially creating unintended privacy or bias risks. Responsible systems therefore require careful data governance, access control, evaluation, explainability, and consideration of how relational information affects predictions.

The broader value of Social Network Analysis is that it changes the unit of intelligence from isolated individuals to connected systems. Graph AI learns not only what each entity is, but also how entities interact, organize, influence one another, and form larger structures. This relational perspective provides a foundation for community understanding, recommendation, influence modeling, anomaly detection, information diffusion, and other applications where collective behavior emerges from connections.

06.02. Recommendation Systems

Graph-based recommendation systems model users, items, and their interactions as a connected structure rather than treating recommendation as an isolated prediction problem. Users and items become nodes, while purchases, clicks, ratings, views, likes, or other interactions become edges. This representation preserves relational information and allows recommendation models to learn how preferences propagate through complex networks of users, products, content, and behaviors.

Traditional collaborative filtering often represents interactions through a user-item matrix and estimates preferences from similarities among rows or columns. Graph-based recommendation generalizes this idea by explicitly representing interactions as edges and allowing information to travel through multiple relational paths. A user can therefore receive information not only from directly consumed items but also from similar users, related items, communities, categories, and other connected entities.

A basic recommendation graph is commonly represented as a bipartite graph containing two node types: users and items. Edges connect users to items according to observed interactions such as purchases, ratings, clicks, or views. Although users are not directly connected to users and items are not directly connected to items, multi-hop paths naturally reveal indirect similarity, such as users sharing items or items attracting overlapping groups of users.

Graph Neural Networks provide a powerful mechanism for learning recommendation embeddings from these structures. During message passing, each user receives information from neighboring items and each item receives information from interacting users. Repeated propagation creates representations containing progressively broader collaborative context. The resulting embeddings capture relational patterns that can be used to estimate how strongly a user may prefer an item that has not yet been observed.

Neighborhood aggregation determines how information from connected entities contributes to each representation. Simple approaches may average neighboring embeddings, while more advanced methods assign different importance to different interactions. Ratings, interaction frequency, recency, purchase value, or behavioral context can influence aggregation. This enables the recommendation model to distinguish strong preference signals from weak or incidental interactions instead of treating every edge as equally informative.

Multi-hop propagation is one of the major advantages of graph-based recommendation. A user may be connected to an item, which is connected to other users, which in turn connect to additional items. These paths expose collaborative patterns beyond immediate interaction history. However, excessive propagation can introduce irrelevant information or over-smoothing, so practical systems must balance the benefits of wider relational context against noise and computational cost.

Graph-based collaborative filtering learns user and item embeddings primarily from interaction structure. Models such as graph convolutional recommenders propagate latent representations across the user-item graph and optimize them according to observed preference signals. The objective is typically to assign higher relevance scores to items associated with positive interactions than to unobserved or negative candidates, allowing ranking to emerge directly from relational representation learning.

Recommendation graphs can be extended beyond users and items by introducing heterogeneous entities. Products may connect to brands, categories, attributes, sellers, locations, or reviews, while media content may connect to creators, genres, topics, and keywords. These heterogeneous graphs provide semantic context that complements collaborative behavior and can improve recommendations when direct interaction history is sparse or when relationships among items contain useful domain knowledge.

Social information can also be integrated into recommendation graphs. Users may be connected through friendship, following, communication, or community membership in addition to their interactions with items. A recommendation model can then combine preference similarity with social relationships. This is useful when connected users influence one another, although social connections must be interpreted carefully because friendship or communication does not necessarily imply identical preferences.

Knowledge graphs provide another important extension by connecting items to structured semantic information. An item may be related to categories, properties, organizations, people, concepts, or other entities through typed relationships. Knowledge Graph Recommendation uses these paths to explain why different items are related and to discover meaningful connections beyond behavioral co-occurrence. This can improve semantic richness, interpretability, and recommendation diversity.

Temporal information is important because user interests and item popularity change over time. A purchase made recently may provide a stronger signal than an interaction from several years earlier, and newly introduced items may rapidly become relevant. Temporal graph models incorporate timestamps, interaction sequences, or evolving graph structures so that recommendations can reflect changing preferences rather than assuming that the user-item graph remains permanently static.

Context-aware graph recommendation can additionally incorporate conditions such as time, location, device, session, task, or current activity. The same user may prefer different items depending on the surrounding situation. By representing contextual entities and relationships within the graph or integrating them into node and edge features, the model can learn recommendations conditioned on both long-term relational preferences and short-term operational context.

Cold-start problems occur when new users or items have few interactions and therefore provide limited collaborative information. Graph-based systems can reduce this limitation by connecting new entities to attributes, categories, knowledge graphs, social relationships, or content features. These auxiliary relationships provide alternative paths for representation learning, allowing the system to generate useful embeddings before sufficient direct user-item interaction history has accumulated.

Large-scale recommendation systems must efficiently process graphs containing millions of users, items, and continuously generated interactions. Full-graph propagation may be computationally expensive, making neighborhood sampling, graph partitioning, mini-batch training, cached embeddings, distributed computation, and approximate retrieval important engineering techniques. Production systems must also support frequent updates because new interactions can quickly change relevant recommendation signals.

Evaluation requires more than measuring whether a model predicts known interactions. Ranking metrics such as precision, recall, and normalized discounted cumulative gain can assess recommendation quality, while coverage, diversity, novelty, and serendipity reveal whether the system repeatedly recommends only popular items. Online evaluation can further measure how recommendations affect real user behavior, making recommendation quality a combination of predictive accuracy and practical utility.

Graph-based recommendation ultimately transforms recommendation from matching isolated user and item vectors into relational reasoning over connected ecosystems. By combining interaction graphs, Graph Neural Networks, heterogeneous relations, knowledge graphs, temporal dynamics, and contextual information, these systems can learn richer preference representations. The result is a framework capable of discovering relevant items through both direct behavior and the wider relational structure surrounding users and content.

06.03. Fraud Detection

Fraud detection is a natural application of Graph AI because fraudulent behavior frequently depends on relationships among accounts, transactions, devices, identities, merchants, and organizations. Traditional models often evaluate individual records independently, while graph-based systems preserve connections between entities. This relational view can reveal coordinated behavior that appears legitimate when each transaction or account is inspected separately.

A fraud graph represents relevant entities as nodes and interactions or associations as edges. Nodes may correspond to customers, bank accounts, credit cards, merchants, devices, telephone numbers, addresses, or transactions. Edges can represent payments, transfers, ownership, shared devices, common addresses, login activity, or communication. Combining multiple entity and relationship types produces a richer view of suspicious behavior.

Transaction networks provide one of the most common graph structures for financial fraud analysis. Accounts become nodes and money transfers become directed edges containing attributes such as amount, time, frequency, currency, or transaction type. Fraudulent activity may create characteristic structures involving rapid transfers, circular money flows, unusual concentration, or repeated interactions among related accounts that conventional transaction-level rules may overlook.

Graph structure allows fraud detection to examine neighborhoods surrounding suspicious entities. An account that appears normal individually may be strongly connected to previously identified fraudulent accounts, unusual merchants, or repeatedly shared devices. Neighborhood information therefore provides contextual evidence about risk. Multi-hop analysis can extend this reasoning to indirect relationships, exposing networks whose suspicious connections are separated by several intermediate entities.

Graph Neural Networks learn fraud-related representations by propagating information through these neighborhoods. During message passing, each node combines its own attributes with information received from connected entities. Multiple layers allow the representation to include progressively broader relational context. A fraud classifier can then use these embeddings to estimate risk based on both local characteristics and structural patterns within the surrounding network.

Node classification is commonly used to determine whether an account, customer, merchant, or device is likely to be fraudulent. Edge classification can evaluate whether a particular transaction or relationship is suspicious, while graph-level or subgraph-level classification can identify coordinated groups. These complementary prediction levels allow Graph AI to analyze individual entities, interactions, and organized structures within a unified relational framework.

Fraud rings are particularly well suited to graph analysis because multiple actors often cooperate to hide suspicious activity. Groups of accounts may transfer funds among themselves, share devices or contact information, interact with common merchants, or create repeated transaction patterns. Community detection and subgraph analysis can identify unusually dense or coordinated structures, helping investigators move from isolated alerts toward organized fraud-network discovery.

Anomaly detection provides another important approach when labeled examples of fraud are limited or new attack patterns appear. Graph anomaly methods search for nodes, edges, or subgraphs whose connectivity and attributes differ from expected behavior. An unusual relationship may be more informative than an unusual transaction amount. This allows systems to detect structural deviations that traditional feature-based anomaly detection may fail to recognize.

Heterogeneous graphs are especially valuable because real fraud ecosystems contain many types of entities and relationships. A customer can own an account, use a device, access an IP address, perform a transaction, and interact with a merchant. Preserving these semantic relationship types allows heterogeneous GNNs to distinguish ownership from payment or device sharing, producing more meaningful representations of complex fraud scenarios.

Temporal information is essential because fraudulent activity evolves rapidly. Transactions occur in sequences, accounts change behavior, devices move between users, and coordinated attacks may appear only during short time windows. Temporal graphs incorporate timestamps and evolving relationships so models can analyze not only which entities are connected but also when connections occur, how frequently they repeat, and how suspicious structures develop over time.

Real-time fraud detection requires graph information to be updated as new events arrive. A transaction may create a previously unseen connection that suddenly links an account to a suspicious cluster. Streaming graph systems can update neighborhoods, embeddings, and risk features while transactions are being processed. Low-latency inference is particularly important when a decision must be made before authorizing a payment, transfer, login, or other sensitive action.

Class imbalance creates a major learning challenge because legitimate activity typically greatly exceeds confirmed fraud. A model trained without careful treatment may achieve high overall accuracy while missing important fraudulent cases. Sampling strategies, class-weighted objectives, ranking losses, anomaly methods, and suitable evaluation metrics are therefore necessary. Precision, recall, F1 score, and area under precision-recall curves can be more informative than accuracy alone.

Fraudsters also adapt to detection systems, making fraud detection an adversarial and continuously changing problem. Once a suspicious pattern becomes known, attackers may alter transaction routes, create new identities, distribute activity across more accounts, or imitate legitimate behavior. Dynamic graph learning and continual model updates are therefore important for identifying emerging relational patterns instead of relying permanently on historical fraud structures.

Explainability is critical because fraud predictions may trigger transaction blocking, account investigation, or regulatory review. Graph-based explanations can identify influential neighbors, suspicious paths, shared entities, or subgraphs that contributed to a prediction. An investigator may therefore see that an account is risky because it shares devices with known fraudulent accounts or participates in an unusual transfer cycle rather than receiving only an unexplained score.

Large fraud graphs create substantial engineering requirements because financial and digital platforms may process millions of entities and continuously growing streams of interactions. Graph partitioning, neighborhood sampling, distributed training, efficient graph databases, cached representations, and incremental computation help maintain scalability. Production architectures must balance detection accuracy with memory consumption, throughput, update frequency, and inference latency.

Graph-based fraud detection ultimately changes risk analysis from evaluating isolated events to understanding connected behavior. By combining transaction graphs, heterogeneous relationships, Graph Neural Networks, anomaly detection, temporal dynamics, community analysis, and real-time inference, Graph AI can expose coordinated structures that individual records conceal. This relational intelligence provides a powerful foundation for discovering fraud networks, prioritizing investigations, and improving risk decisions.

06.04. Bioinformatics

Bioinformatics is a natural application domain for Graph AI because biological systems are fundamentally composed of interacting entities rather than isolated observations. Genes, proteins, metabolites, cells, molecules, and biological processes form complex networks of relationships. Graph representations preserve these interactions explicitly, allowing machine learning models to analyze biological function through both entity properties and the structural context surrounding them.

Biological graphs can be constructed at many different scales. At the molecular level, atoms become nodes and chemical bonds become edges. Protein structures can represent amino acid residues as nodes connected by sequential, spatial, or biochemical relationships. At larger scales, genes and proteins form regulatory or interaction networks, while cells can form graphs based on physical proximity, communication, lineage, or functional similarity.

Molecular graphs are especially important in computational biology and drug discovery. A molecule can be represented as a graph in which atoms contain features such as element type, charge, hybridization, or chemical state, while edges describe bonds and their properties. Graph Neural Networks can learn molecular representations directly from this structure, avoiding the need to reduce molecules entirely to manually designed descriptors or fixed fingerprints.

Message passing allows molecular GNNs to combine information from neighboring atoms. Each atom updates its representation using its own features and information received through chemical bonds. Repeating this operation allows representations to encode progressively larger molecular environments. A graph-level representation can then summarize the complete molecule and support predictions of properties such as activity, toxicity, solubility, stability, or binding potential.

Protein analysis introduces additional structural complexity because protein function depends strongly on three-dimensional organization. Nodes may represent amino acids, residues, atoms, or structural regions, while edges can encode sequence adjacency, spatial distance, contact, or biochemical interaction. Graph models can therefore integrate sequence-derived features with structural relationships to support protein property prediction, functional annotation, interaction analysis, and structure-aware biological reasoning.

Protein-protein interaction networks represent proteins as nodes and known or predicted interactions as edges. These graphs can reveal functional modules, signaling pathways, and groups of proteins involved in related biological processes. Graph learning can use network neighborhoods to infer unknown protein functions or interactions, based on the principle that biological function often emerges from coordinated relationships among multiple molecular components rather than from single proteins alone.

Gene regulatory networks provide another important graph representation. Genes or regulatory elements become nodes, while edges describe activation, repression, or other regulatory influences. These networks can help model how gene expression is controlled and how perturbations propagate through biological systems. Graph AI can combine regulatory topology with expression measurements to investigate functional dependencies, disease mechanisms, and responses to environmental or therapeutic interventions.

Knowledge graphs can integrate heterogeneous biomedical information across genes, proteins, diseases, drugs, pathways, symptoms, and biological processes. Typed edges describe relationships such as a drug targeting a protein, a gene being associated with a disease, or a protein participating in a pathway. Biomedical knowledge graphs provide a structured environment for link prediction, information retrieval, hypothesis generation, and reasoning across otherwise fragmented biological databases.

Drug discovery benefits from combining molecular graphs with biomedical knowledge graphs. Molecular GNNs can estimate chemical and pharmacological properties, while knowledge graphs can reveal relationships among compounds, targets, diseases, pathways, and known therapies. Together, these representations can support target identification, compound screening, drug-target interaction prediction, drug repurposing, and prioritization of candidates for further experimental investigation.

Graph AI is also increasingly relevant to single-cell biology. Individual cells can be represented as nodes using gene-expression or other molecular features, while edges connect cells according to similarity, spatial proximity, developmental relationships, or inferred communication. Cell graphs can reveal populations, transitional states, tissue organization, and interactions among cell types, extending analysis beyond independent cell measurements toward relational models of biological systems.

Spatial biology provides an especially strong motivation for graph representation because the physical arrangement of cells influences biological function. Cells or tissue regions can become nodes, while spatial adjacency or molecular communication defines edges. Graph Neural Networks can combine cellular features with tissue architecture, allowing models to investigate how local microenvironments, neighboring cell types, and spatial organization contribute to disease progression or biological function.

Graph-based disease modeling connects molecular and clinical relationships to study complex disorders. Disease-associated genes, proteins, pathways, phenotypes, drugs, and patient characteristics can form interconnected networks. Rather than searching for a single causal feature, Graph AI can identify interacting modules and pathways whose combined behavior contributes to disease. This systems-level perspective is particularly useful for multifactorial disorders involving many biological mechanisms.

Link prediction is widely applicable across bioinformatics graphs because biological knowledge is incomplete. A model may predict previously unknown protein interactions, gene-disease associations, drug-target relationships, or connections between compounds and biological pathways. Learned graph embeddings provide representations that encode network context, enabling candidate relationships to be ranked for further computational analysis or experimental validation.

Graph classification and node classification support complementary biological tasks. Node-level models can predict protein functions, gene roles, cell types, or disease associations, while graph-level models can classify molecules, molecular complexes, or biological structures. Subgraph analysis can identify functional motifs or interacting modules. These different prediction levels allow Graph AI to operate across the hierarchy of biological organization using a common relational framework.

Biological graphs are frequently dynamic rather than fixed. Gene expression changes over time, protein interactions respond to cellular conditions, signaling pathways activate and deactivate, and cell populations evolve during development or disease. Temporal Graph AI can represent these changing relationships and combine structural information with biological sequences over time, providing models of how biological systems transition between functional states.

Bioinformatics applications also require careful interpretation and validation because learned associations do not automatically establish biological causality. Graph models may identify statistically useful relationships that reflect incomplete data, experimental bias, or indirect correlations. Explainability methods, biological prior knowledge, uncertainty estimation, independent datasets, and laboratory validation are therefore important for translating computational predictions into reliable scientific conclusions.

Graph AI ultimately provides bioinformatics with a framework for modeling biology as an interconnected system. Molecular graphs describe chemical structure, protein and gene networks capture functional interactions, cell graphs represent tissue organization, and biomedical knowledge graphs connect information across biological scales. By learning from these relationships, Graph AI can support biological discovery, disease understanding, drug development, and increasingly integrated models of complex living systems.

06.05. Knowledge Graphs and Search

Knowledge graphs provide a structured representation of information by modeling entities as nodes and meaningful relationships as edges. Unlike conventional databases that primarily organize records into tables, knowledge graphs emphasize how concepts, objects, people, organizations, locations, events, and documents relate to one another. This relational structure allows search systems to move beyond keyword matching toward understanding entities, context, and semantic connections.

A basic knowledge graph expresses information through triples consisting of a subject, relation, and object. A statement such as a company develops a product can be represented as Company → develops → Product. Many such triples combine into a connected semantic network. Because entities can participate in multiple relationships, the graph can represent complex knowledge while maintaining explicit connections that machines can traverse, analyze, and use for reasoning.

Entity identification is a fundamental step in constructing useful knowledge graphs. Names appearing in documents, databases, web pages, or other sources must be mapped to consistent entities. Entity resolution determines whether different references correspond to the same real-world object, while entity linking connects textual mentions to graph nodes. Accurate identification reduces duplication and creates a coherent structure in which information from multiple sources can be integrated.

Relationships provide the semantic structure that distinguishes knowledge graphs from simple collections of entities. Edges may represent ownership, location, membership, authorship, dependency, similarity, causality, participation, or many other domain-specific relations. Typed relationships allow systems to understand that different connections carry different meanings. Directionality can also matter because relationships such as produces, owns, contains, or depends on are not necessarily symmetric.

Ontologies and schemas define how knowledge should be organized within a graph. They specify entity classes, relationship types, properties, constraints, and conceptual hierarchies. For example, a schema may define that a researcher is a type of person and that a researcher can author a publication. This structured vocabulary improves consistency and enables reasoning across different data sources by providing a common semantic framework for interpreting stored relationships.

Knowledge graph construction often combines structured, semi-structured, and unstructured information. Databases can provide reliable entity attributes, while documents and text can contribute relationships extracted through natural language processing. Additional information may come from APIs, catalogs, logs, or domain repositories. The resulting graph acts as an integration layer that connects fragmented information while preserving provenance and relationships among the original sources.

Graph search differs from traditional keyword search because queries can follow relationships rather than relying only on textual similarity. A user may search for entities connected through a particular sequence of relations, such as researchers who work on a technology, organizations associated with those researchers, or publications produced by them. Graph traversal allows search to explore multi-hop paths and retrieve results according to structural and semantic relevance.

Semantic search extends this capability by interpreting the meaning of a query rather than matching exact words. Entities, relations, text, and graph neighborhoods can be represented through embeddings that capture semantic similarity. A search system can therefore retrieve relevant information even when the query uses terminology different from the stored content. Combining semantic embeddings with explicit graph structure provides both flexible retrieval and interpretable relational context.

Knowledge graph embeddings transform entities and relationships into numerical vector representations suitable for machine learning. The objective is to preserve important graph patterns so that related entities occupy meaningful positions in the learned representation space. These embeddings can support similarity search, entity ranking, clustering, recommendation, and link prediction while providing a bridge between symbolic graph structures and neural representation learning.

Link prediction attempts to infer relationships that are missing from the knowledge graph. If existing graph patterns strongly suggest that two entities should be connected, a model can assign a high probability to the candidate relationship. This is useful because real knowledge graphs are rarely complete. Predicted links can support knowledge discovery, recommendation, data enrichment, and hypothesis generation, although important inferred relationships should be validated before being treated as established facts.

Graph Neural Networks can enrich knowledge graph representations by aggregating information from neighboring entities and relationships. Instead of representing an entity only through its own attributes, a GNN can incorporate information from connected nodes and multi-hop neighborhoods. Relational GNN architectures can treat different edge types separately, enabling models to learn how specific semantic relationships contribute differently to entity representation, prediction, and retrieval.

Knowledge graphs can improve search result ranking by providing relational evidence in addition to textual relevance. A result may receive greater importance because it is directly connected to a recognized entity, belongs to an appropriate category, or lies on a meaningful path between concepts in the query. Search can therefore combine lexical matching, embedding similarity, graph distance, entity importance, relationship type, and contextual signals when determining relevance.

Question answering is another important application because many questions implicitly ask for relationships among entities. After identifying entities and relations in a question, a system can traverse the knowledge graph to retrieve relevant facts or paths. Multi-hop questions may require several connected relationships before reaching an answer. Graph-based retrieval provides explicit evidence paths that can complement neural language models and improve the traceability of generated responses.

Knowledge graphs can also support retrieval-augmented generation by supplying structured context to language models. Instead of retrieving only independent text passages, a system can retrieve entities, relationships, neighborhoods, and supporting documents connected to a query. This graph-based retrieval can expose dependencies and multi-hop evidence that ordinary vector retrieval may miss, while the language model converts the retrieved structured knowledge into a natural-language response.

Hybrid search systems increasingly combine keyword retrieval, vector search, and graph traversal. Keyword methods provide precise lexical matching, vector retrieval captures semantic similarity, and knowledge graphs preserve explicit relationships and constraints. Rather than treating these methods as competitors, an integrated search architecture can use each for its strengths. Ranking or reasoning components can then combine the resulting evidence according to the requirements of the query.

Knowledge graphs ultimately transform search from locating documents containing matching words into navigating connected knowledge. Entities provide identifiable objects, relationships provide semantic structure, embeddings provide learned similarity, and graph algorithms provide traversal and reasoning. When combined with neural search and language models, this architecture can support richer discovery, multi-hop retrieval, explainable relationships, and more context-aware access to complex information.

06.06. Robotics and Spatial AI

Robotics and Spatial AI are natural application areas for Graph AI because robots operate in environments composed of objects, places, sensors, agents, and physical relationships. Conventional perception can identify individual objects or geometric features, while graph representations explicitly describe how those elements relate to one another. This relational structure helps a robot transform fragmented sensor observations into an organized representation of its surrounding world.

Spatial intelligence requires more than detecting what objects are present. A robot must understand where objects are located, how spaces are connected, which regions are traversable, and how entities interact within a scene. Graph AI provides a common representation in which objects, regions, landmarks, robot poses, and environmental features become nodes, while spatial, semantic, geometric, or functional relationships become edges.

Scene graphs organize perceived environments around objects and their relationships. Nodes can represent people, furniture, vehicles, doors, equipment, obstacles, or other detected entities. Edges can encode relations such as near, inside, behind, connected to, supported by, or interacting with. A scene graph therefore converts a collection of detections into a structured description that captures both the contents of a scene and their relational organization.

Scene graphs can bridge perception and higher-level reasoning. A vision model may detect a table, chair, person, and doorway, while the graph records that the chair is beside the table, the person is near the doorway, and the doorway connects two spaces. Planning and reasoning systems can use these relationships directly, allowing robotic decisions to depend on structured environmental context rather than only raw images or independent object detections.

Dynamic scene graphs extend this representation to environments that change over time. People move, objects are relocated, doors open or close, and robots themselves continuously change position. Nodes and edges must therefore be created, updated, or removed as observations arrive. Temporal Graph AI can preserve both current spatial relationships and their evolution, supporting prediction of motion, interaction, occupancy, and future scene configurations.

Map representation is another important use of graphs in robotics. A map does not need to be represented only as a dense geometric grid. Locations, landmarks, rooms, intersections, corridors, waypoints, or navigable regions can become nodes, while edges describe connectivity or feasible movement. This topological representation captures how a robot can move through an environment and can complement metric maps that preserve precise geometric information.

Topological graphs are particularly useful for large-scale navigation because they compress detailed environments into meaningful connectivity structures. Instead of planning across every grid cell, a robot can first reason over rooms, corridors, intersections, or regions and then perform local geometric planning within the selected area. Hierarchical representations can therefore combine global graph-based navigation with local metric planning to improve computational efficiency and scalability.

Metric and topological information can also be integrated into hybrid spatial graphs. Nodes may contain positions, orientations, occupancy statistics, semantic labels, or uncertainty, while edges contain distance, relative pose, traversal cost, or accessibility. Such graphs preserve enough geometric information for navigation while maintaining relational structure for reasoning. They can also support map updates when environmental conditions or traversal costs change.

Graph representations are closely related to simultaneous localization and mapping. Pose graphs represent robot poses as nodes and relative-motion or observation constraints as edges. Odometry creates sequential constraints, while loop closures connect poses that correspond to previously visited locations. Graph optimization then estimates a globally consistent trajectory and map by minimizing disagreement among these constraints, demonstrating a classical and highly practical use of graph structure in robotics.

Sensor relationship modeling provides another layer of relational intelligence. Modern robots commonly combine cameras, LiDAR, radar, depth sensors, GNSS, IMUs, wheel encoders, microphones, or other sensing modalities. These sensors differ in coordinate frame, update frequency, uncertainty, range, and observed phenomena. A graph can explicitly represent sensors and observations together with calibration, temporal, spatial, and measurement relationships.

Sensor nodes may connect to robot poses, detected objects, map landmarks, or observations generated by other sensors. For example, a camera observation and a LiDAR cluster may be linked when they correspond to the same physical object. An IMU measurement may connect consecutive robot states, while GNSS observations constrain global position. Graph-based modeling therefore provides a unified structure for expressing how heterogeneous measurements contribute to environmental understanding.

Graph Neural Networks can learn from these sensor relationships rather than relying only on fixed fusion rules. Message passing allows information from one sensing modality to influence representations produced by another. When camera confidence is low, geometric evidence from LiDAR or radar may provide complementary context. Learned graph representations can combine multiple sources while retaining information about which sensors and relationships contributed to the resulting estimate.

Uncertainty is essential in spatial graphs because robot perception and localization are never perfectly accurate. Nodes and edges can include confidence, covariance, detection probability, or reliability information. A relationship inferred from noisy vision may carry lower confidence than one supported by multiple sensors. Incorporating uncertainty allows planning and reasoning systems to distinguish strongly supported spatial knowledge from tentative hypotheses and respond more safely to ambiguous environments.

Multi-robot systems extend spatial graphs beyond a single platform. Each robot can contribute local observations, poses, landmarks, traversability information, or detected objects to a shared relational representation. Robots may themselves become nodes connected through communication, proximity, or shared observations. Graph AI can then support cooperative perception, distributed mapping, task allocation, and collective spatial reasoning across a robotic fleet.

Spatial graphs can also serve as structured memory for long-term robot operation. Rather than storing every sensor frame independently, a robot can maintain persistent entities, locations, relationships, and observations associated with them. New measurements update this graph as the environment changes. Such spatial memory allows the robot to recognize previously visited places, track object changes, accumulate experience, and reason about environmental history.

Robotics and Spatial AI ultimately use graphs to connect perception, mapping, localization, sensor fusion, memory, and planning within a common relational framework. Scene graphs describe what exists and how entities relate, map graphs describe where movement is possible, and sensor relationship graphs describe how observations support world estimates. Together, these representations transform raw sensing into structured spatial intelligence suitable for autonomous decision making.

06.07. Smart City and Infrastructure

Smart City and Infrastructure systems are naturally suited to Graph AI because cities consist of interconnected transportation, energy, communication, water, buildings, public services, and underground infrastructure. These components influence one another through physical and operational relationships. Graph representations model urban entities as nodes and their connections as edges, allowing AI systems to analyze the city as a coordinated network rather than as isolated assets.

A smart-city graph can represent roads, intersections, vehicles, buildings, substations, pipelines, communication devices, sensors, and geographic regions within a common relational framework. Edges may describe physical connectivity, traffic movement, energy flow, communication links, spatial proximity, or functional dependency. By combining these relationships, Graph AI can support monitoring, prediction, optimization, and decision making across complex urban infrastructure.

Traffic graphs represent transportation networks using roads, intersections, lanes, stations, or geographic regions as nodes and their connectivity as edges. Depending on the modeling objective, nodes can also represent vehicles while edges describe proximity or interaction. Traffic measurements such as speed, density, flow, travel time, and occupancy can be attached as dynamic features, transforming the road network into a continuously evolving spatiotemporal graph.

Graph Neural Networks can learn how traffic conditions propagate through connected roads. Congestion at one intersection may influence neighboring segments and gradually affect more distant regions. Message passing allows traffic information to travel through the network according to road connectivity, while temporal models capture changes over time. Combining spatial graph structure with temporal learning enables prediction of traffic speed, congestion, demand, and future network conditions.

Traffic graphs can also support routing and mobility management. Edge attributes may represent distance, travel time, congestion, road capacity, restrictions, or estimated risk. These values can change dynamically as traffic conditions evolve. Graph-based planning can therefore select routes using both network connectivity and predicted future conditions, supporting adaptive navigation, fleet routing, emergency response, and coordinated traffic management across urban areas.

Utility networks form another major class of infrastructure graphs. Electrical grids, water distribution systems, gas pipelines, district heating networks, and communication systems are fundamentally connected networks. Nodes can represent substations, transformers, reservoirs, pumps, valves, towers, routers, or service points, while edges represent power lines, pipes, cables, or communication links through which resources or information flow.

Graph AI can analyze utility networks by combining topology with operational measurements. Electrical nodes may contain voltage, load, generation, or equipment state, while water networks may contain pressure, flow, demand, or valve status. Because disturbances propagate through connected infrastructure, graph models can estimate how failures or abnormal conditions in one component may influence neighboring components and larger sections of the network.

Fault detection and infrastructure resilience benefit from this relational perspective. A failing transformer, damaged pipe, disconnected communication link, or abnormal sensor may produce effects across multiple connected assets. Graph models can identify anomalous nodes, edges, and subgraphs while considering network context. They can also support impact analysis by estimating which downstream services, regions, or infrastructure components may be affected by a particular failure.

Smart infrastructure frequently combines multiple networks rather than operating each utility independently. Transportation depends on electrical power and communications, charging infrastructure connects mobility with the grid, and water facilities rely on electricity and control networks. A heterogeneous infrastructure graph can represent these different asset types and cross-domain dependencies, supporting analysis of cascading failures and coordinated operation across interconnected urban systems.

Ground Penetrating Radar, or GPR, introduces a different but complementary form of spatial infrastructure intelligence. GPR measurements can reveal subsurface structures such as pipes, cables, voids, layers, foundations, or other buried objects. Conventional processing often interprets radar profiles or three-dimensional volumes directly. Graph modeling can instead organize detected subsurface features as entities and explicitly represent their spatial continuity and relationships.

In a GPR subsurface graph, nodes may represent detected reflections, hyperbolic signatures, pipe segments, junctions, anomalies, material boundaries, or spatial cells. Edges can connect observations according to geometric proximity, depth similarity, orientation, continuity, or inferred physical association. Multiple radar observations that appear separately in individual scans can therefore be linked into larger structures representing possible buried infrastructure.

Graph construction becomes especially useful when GPR data are collected along multiple survey trajectories. A buried pipe may appear as separate signatures across neighboring radar scans, but spatial alignment and geometric consistency can indicate that these observations belong to the same physical object. Graph-based association can connect such detections across scan lines, helping transform fragmented radar observations into coherent subsurface infrastructure representations.

GPR graph models can incorporate uncertainty because subsurface sensing is affected by soil properties, moisture, material composition, antenna configuration, noise, and ambiguous reflections. Nodes and edges can carry confidence values representing detection reliability or association uncertainty. Graph reasoning can then combine evidence from multiple observations instead of making decisions from a single radar signature, improving the robustness of subsurface interpretation.

When geographic coordinates are available, subsurface graphs can be integrated with surface maps and infrastructure databases. Detected underground pipes or cables can be associated with roads, buildings, utility assets, construction zones, or known network records. This creates a multi-layer spatial graph connecting above-ground and below-ground infrastructure, enabling richer analysis for excavation planning, maintenance, inspection, construction, and asset management.

Temporal graph modeling can further support infrastructure maintenance by representing how conditions change across repeated inspections. Traffic patterns evolve, utility loads fluctuate, equipment deteriorates, and subsurface anomalies may develop over time. Comparing graph states across inspections can reveal emerging changes in nodes, edges, or network behavior. This enables infrastructure management to move from periodic observation toward predictive maintenance and risk-based intervention.

Smart City Graph AI ultimately provides a common relational framework for transportation, utilities, and spatial infrastructure intelligence. Traffic graphs describe mobility and congestion, utility graphs represent resource networks and dependencies, and GPR subsurface graphs organize buried structures and uncertain observations. Integrating these layers allows cities to reason about connected infrastructure, predict disruptions, coordinate maintenance, and develop more resilient physical environments.

06.08. LLM and Graph Integration

Large Language Models and Graph AI provide complementary forms of intelligence. LLMs are powerful at understanding language, generating text, and reasoning over information expressed in natural language, while graphs explicitly represent entities, relationships, dependencies, and structured knowledge. Integrating these approaches allows language models to operate with relational context rather than relying only on information encoded implicitly in model parameters or retrieved as isolated text passages.

A graph can provide an external knowledge structure in which people, organizations, products, locations, events, documents, concepts, and other entities are represented as nodes. Their relationships are represented as typed edges that preserve semantic meaning. When an LLM receives information from this structure, it can access not only individual facts but also the connections among them, enabling responses grounded in explicit relational evidence and broader contextual structure.

Graph Retrieval-Augmented Generation, or Graph RAG, extends conventional Retrieval-Augmented Generation by retrieving connected knowledge rather than only semantically similar document chunks. Traditional RAG commonly embeds a query and retrieves nearby text from a vector database. Graph RAG can additionally identify relevant entities, traverse relationships, retrieve neighboring nodes, follow multi-hop paths, and collect supporting documents associated with the resulting subgraph.

A Graph RAG pipeline typically begins by interpreting a user query and identifying important entities, concepts, or relationships. These elements are mapped to nodes or candidate regions in a knowledge graph. Retrieval then expands from these starting points according to relevant edge types, graph distance, semantic similarity, or other constraints. The resulting subgraph provides structured context that can be converted into a representation suitable for an LLM to generate an answer.

Multi-hop retrieval is one of the strongest motivations for Graph RAG. Some questions cannot be answered from a single passage because the required evidence is distributed across several entities and documents. A graph can explicitly connect these pieces through intermediate relationships. The retrieval system can therefore discover a path from the initial entity through related concepts to supporting evidence that may not have high direct textual similarity with the original query.

Graph RAG can combine symbolic graph traversal with neural retrieval. Vector embeddings identify semantically relevant entities or documents, while graph structure constrains or expands the search according to explicit relationships. Keyword retrieval may provide another complementary signal. A hybrid retrieval system can therefore combine lexical relevance, semantic similarity, graph connectivity, entity importance, and relationship type when selecting context for generation.

Knowledge-Augmented LLMs use external structured knowledge to improve the factual and contextual basis of language-model reasoning. The knowledge source may include knowledge graphs, ontologies, databases, domain repositories, or structured enterprise information. Instead of requiring every relevant fact to be encoded inside model parameters, the LLM can retrieve current or domain-specific knowledge when needed and use it as contextual evidence during inference.

Structured knowledge is particularly useful when terminology, hierarchy, and constraints are important. An ontology may specify that particular entities belong to defined classes, that certain relationships are valid only between specific types, or that concepts follow hierarchical dependencies. Providing these structures to an LLM can reduce ambiguity and help the model interpret retrieved information according to a domain-specific semantic framework rather than treating every text fragment independently.

Knowledge augmentation can also improve explainability because retrieved graph elements can provide explicit evidence for a generated response. Instead of presenting an answer without visible reasoning support, a system can retain the entities, relationships, paths, and documents used during retrieval. These evidence structures can be inspected, validated, or presented to users, creating a clearer separation between information obtained from external knowledge and conclusions generated by the language model.

Graph Neural Networks can complement LLMs within knowledge-augmented architectures. A GNN can encode local graph neighborhoods and relational patterns into learned representations, while the LLM interprets language and performs flexible reasoning over retrieved context. Graph embeddings, GNN representations, and text embeddings can be combined to rank entities, predict useful relationships, select subgraphs, or determine which graph information should be supplied to the language model.

Graph of Thought extends graph concepts from external knowledge representation into the reasoning process itself. Instead of treating reasoning as a single linear sequence, intermediate thoughts, hypotheses, subproblems, evidence, or candidate solutions can be represented as nodes in a graph. Edges describe dependencies, alternatives, refinements, contradictions, or combinations among reasoning states, allowing multiple reasoning paths to coexist and interact.

This graph structure enables reasoning processes that branch and later merge. One reasoning path may investigate a technical explanation while another evaluates constraints or alternative assumptions. Intermediate results can then be compared, combined, rejected, or revisited. The graph therefore provides a more flexible structure than a purely sequential reasoning chain when problems contain interacting subproblems, competing hypotheses, or multiple possible solution strategies.

Graph-based reasoning can also support iterative refinement. A reasoning node may generate several successors, evaluation mechanisms may score their usefulness or consistency, and promising branches can be expanded further. Information discovered in one branch may be connected to another branch when relevant. This creates a search process over reasoning states in which generation, evaluation, expansion, and integration progressively construct a more coherent solution.

Graph RAG and Graph of Thought address different but complementary aspects of LLM systems. Graph RAG primarily structures external knowledge retrieval, while Graph of Thought structures the internal problem-solving process. A system can combine both approaches by first retrieving an evidence subgraph from external knowledge and then constructing a reasoning graph that explores how the retrieved evidence contributes to competing explanations, decisions, or conclusions.

Such integration creates a layered architecture connecting language, knowledge, and reasoning. Natural-language queries are interpreted by the LLM, Graph RAG retrieves relevant relational evidence, knowledge augmentation supplies structured semantics and constraints, and graph-based reasoning organizes intermediate inference. The generated response can then be connected back to evidence paths, providing a foundation for more traceable and context-aware AI systems.

LLM and Graph Integration ultimately combines the semantic flexibility of language models with the explicit relational structure of graphs. Graph RAG provides connected retrieval, Knowledge-Augmented LLMs provide structured external knowledge, and Graph of Thought provides a graph-based organization of reasoning. Together, these approaches move AI from isolated text generation toward systems that can retrieve relationships, organize evidence, reason across connected information, and generate better-grounded responses.


Author: Richard Minsoo Go

LinkedIn: Richard Minsoo Go

Top comments (0)