Papers › Relational inductive biases, deep learning, and graph networks

Relational inductive biases, deep learning, and graph networks

4 Jun 2018arXiv:1806.01261archive 2025-07-28

Peter W. Battaglia, Jessica B. Hamrick, Victor Bapst, Alvaro Sanchez-Gonzalez, Vinicius Zambaldi, Mateusz Malinowski, Andrea Tacchetti, David Raposo, Adam Santoro, Ryan Faulkner, Caglar Gulcehre, Francis Song, Andrew Ballard, Justin Gilmer, George Dahl, Ashish Vaswani, Kelsey Allen, Charles Nash, Victoria Langston, Chris Dyer, Nicolas Heess, Daan Wierstra, Pushmeet Kohli, Matt Botvinick, Oriol Vinyals, Yujia Li, Razvan Pascanu

Artificial intelligence (AI) has undergone a renaissance recently, making major progress in key domains such as vision, language, control, and decision-making. This has been due, in part, to cheap data and cheap compute resources, which have fit the natural strengths of deep learning. However, many defining characteristics of human intelligence, which developed under much different pressures, remain out of reach for current approaches. In particular, generalizing beyond one's experiences--a hallmark of human intelligence from infancy--remains a formidable challenge for modern AI. The following is part position paper, part review, and part unification. We argue that combinatorial generalization must be a top priority for AI to achieve human-like abilities, and that structured representations and computations are key to realizing this objective. Just as biology uses nature and nurture cooperatively, we reject the false choice between "hand-engineering" and "end-to-end" learning, and instead advocate for an approach which benefits from their complementary strengths. We explore how using relational inductive biases within deep learning architectures can facilitate learning about entities, relations, and rules for composing them. We present a new building block for the AI toolkit with a strong relational inductive bias--the graph network--which generalizes and extends various approaches for neural networks that operate on graphs, and provides a straightforward interface for manipulating structured knowledge and producing structured behaviors. We discuss how graph networks can support relational reasoning and combinatorial generalization, laying the foundation for more sophisticated, interpretable, and flexible patterns of reasoning. As a companion to this paper, we have released an open-source software library for building graph networks, with demonstrations of how to use them in practice.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1806.01261")

Code

Syntology Ran 13 of 51 code samples harvested from 7 repositories linked to this paper; 38 have no recorded run. Of those that ran: 4 ran · honoured contract; 9 ran with no contract checked.

By repository: community (archive-listed): 51 samples from 7 repositories, 13 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

31 repositories listed; official and paper-mentioned ones first.

deepmind/graph_nets officialmentioned in papermentioned on GitHubtfApache-2.0 report
DarLiner/graph_nets mentioned on GitHubtfApache-2.0 report
LRacoci/permutation-graphml mentioned on GitHubtf report
NVIDIA/GraphQSat mentioned on GitHubpytorchNOASSERTION report
Rowing0914/Graph_Nets mentioned on GitHubtfApache-2.0 report
TQCAI/graph_nets_pytorch mentioned on GitHubpytorch report
amaleki2/graph_networks mentioned on GitHubpytorch report
aravic/graph_nets mentioned on GitHubtfApache-2.0 report
cheezzjazz/graph_nets mentioned on GitHubtfApache-2.0 report
davidtangGT/MEGNET mentioned on GitHubtfBSD-3-Clause report
dcccc/LC_NET mentioned on GitHubpytorch report
dcccc/git_python mentioned on GitHub report
deepmind/jraph mentioned on GitHubjaxApache-2.0 report
dmeoli/neuro-sat mentioned on GitHubMIT report
duanyzhi/graph_net mentioned on GitHubtfApache-2.0 report
hero9968/Graph_nets mentioned on GitHubtfApache-2.0 report
materialsvirtuallab/matgl mentioned on GitHubpytorchBSD-3-Clause report
materialsvirtuallab/megnet mentioned on GitHubtfBSD-3-Clause report
mylonasc/tf-gnns mentioned on GitHubtfApache-2.0 report
nrel/m2p mentioned on GitHubBSD-3-Clause report
patrickhart/jaxdl mentioned on GitHubjaxMIT report
priyeshshukla/graph_nets_ids576 mentioned on GitHubtf report
rickyHong/Graph-Net-repl-for-Jigsaw mentioned on GitHubtfApache-2.0 report
salvaRC/graphnet_pytorch mentioned on GitHubpytorchCC-BY-4.0 report
yikuide/graph_nets mentioned on GitHubtfApache-2.0 report
zhanglab-aim/cancer-net mentioned on GitHubpytorchGPL-2.0 report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

51 samples harvested; 13 ran; 4 honoured the contract we drafted; 38 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

4ran · honoured contract
9ran
38unverified

Licence: 15 of the 51 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 7 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

Aggregator TQCAI/graph_nets_pytorch/modules.py community (archive-listed) ran no licence file found · pointer only · 33a8530945e1ca58 · report
EdgeBlock TQCAI/graph_nets_pytorch/modules.py community (archive-listed) ran no licence file found · pointer only · 7ff65c09e83a289d · report
GlobalBlock TQCAI/graph_nets_pytorch/modules.py community (archive-listed) ran no licence file found · pointer only · 2449c07f88cb5df0 · report
GraphMapFeatures deepmind/jraph/jraph/_src/models.py community (archive-listed) ran Apache-2.0 (permissive) · 083fdc1346d4a41f · report
GraphsTuple TQCAI/graph_nets_pytorch/modules.py community (archive-listed) ran no licence file found · pointer only · 71e81adbbb88a6bd · report
NodeBlock TQCAI/graph_nets_pytorch/modules.py community (archive-listed) ran no licence file found · pointer only · 023b96c5f1ca64d0 · report
broadcast_globals_to_edges TQCAI/graph_nets_pytorch/modules.py community (archive-listed) ran · honoured contract no licence file found · pointer only · 050689c96b6e52e3 · report
broadcast_globals_to_nodes TQCAI/graph_nets_pytorch/modules.py community (archive-listed) ran · honoured contract no licence file found · pointer only · 84ee378d07f846fe · report
broadcast_receiver_nodes_to_edges TQCAI/graph_nets_pytorch/modules.py community (archive-listed) ran · honoured contract no licence file found · pointer only · 049b1bb616f6d97d · report
broadcast_sender_nodes_to_edges TQCAI/graph_nets_pytorch/modules.py community (archive-listed) ran · honoured contract no licence file found · pointer only · f296fbbdafe6167f · report
segment_mean deepmind/jraph/jraph/_src/utils.py community (archive-listed) ran Apache-2.0 (permissive) · 6c720ecf7652656d · report
segment_sum deepmind/jraph/jraph/_src/utils.py community (archive-listed) ran Apache-2.0 (permissive) · b02dcff8929a613b · report
segment_variance deepmind/jraph/jraph/_src/utils.py community (archive-listed) ran Apache-2.0 (permissive) · fa85b4d47d64d575 · report
BaseModel amaleki2/graph_networks/src/modules.py community (archive-listed) unverified no licence file found · pointer only · 690a776c071f826a · report
EdgeModel amaleki2/graph_networks/src/modules.py community (archive-listed) unverified no licence file found · pointer only · eca4d5c0e04f01b2 · report
GlobalModel amaleki2/graph_networks/src/modules.py community (archive-listed) unverified no licence file found · pointer only · c79feac3c63518bf · report
GraphNetwork TQCAI/graph_nets_pytorch/modules.py community (archive-listed) unverified no licence file found · pointer only · 6fd107ff14ac86bd · report
GraphNetwork amaleki2/graph_networks/src/modules.py community (archive-listed) unverified no licence file found · pointer only · 5bbc9573fbe03c59 · report
NodeModel amaleki2/graph_networks/src/modules.py community (archive-listed) unverified no licence file found · pointer only · c4aeeb542f565ba2 · report
accuracy davidtangGT/MEGNET/megnet/utils/metrics.py community (archive-listed) unverified BSD-3-Clause (permissive) · 793d95f974b73be9 · report
base_graph Rowing0914/Graph_Nets/graph_nets/my_example/physics.py community (archive-listed) unverified Apache-2.0 (permissive) · bab3c705163c083f · report
concat mylonasc/tf-gnns/tf_gnns/backend_ops.py community (archive-listed) unverified Apache-2.0 (permissive) · b433f1f94987c049 · report
create_batchCNF machine-reasoning-ufrgs/graph-neural-networks/neurosat/cnf.py community (archive-listed) unverified MIT (permissive) · 67bfb69a00d165f3 · report
dense_to_sparse machine-reasoning-ufrgs/graph-neural-networks/util.py community (archive-listed) unverified MIT (permissive) · c78d05675edb4799 · report
euler_integration Rowing0914/Graph_Nets/graph_nets/my_example/physics.py community (archive-listed) unverified Apache-2.0 (permissive) · 41b325265ab294e1 · report
expand_1st davidtangGT/MEGNET/megnet/utils/general.py community (archive-listed) unverified BSD-3-Clause (permissive) · 4fc6585b7b5fce76 · report
fast_label_binarize davidtangGT/MEGNET/megnet/utils/general.py community (archive-listed) unverified BSD-3-Clause (permissive) · 88f0e66d192714e6 · report
first_dim mylonasc/tf-gnns/tf_gnns/backend_ops.py community (archive-listed) unverified Apache-2.0 (permissive) · deebc52fd00d5008 · report
gather mylonasc/tf-gnns/tf_gnns/backend_ops.py community (archive-listed) unverified Apache-2.0 (permissive) · 0064a27d6d3cb322 · report
get_graph_data_dict Rowing0914/Graph_Nets/graph_nets/my_example/ex_2.py community (archive-listed) unverified Apache-2.0 (permissive) · 6c8e3bafab6c39b9 · report
get_topic mylonasc/tf-gnns/tf_gnns/agent_docs.py community (archive-listed) unverified Apache-2.0 (permissive) · 866272bf984241cd · report
hookes_law Rowing0914/Graph_Nets/graph_nets/my_example/physics.py community (archive-listed) unverified Apache-2.0 (permissive) · c843d356064d8658 · report
list_topics mylonasc/tf-gnns/tf_gnns/agent_docs.py community (archive-listed) unverified Apache-2.0 (permissive) · 1bc1b5ac372ed56e · report
load_ogbg_molhiv mylonasc/tf-gnns/benchmarks/ogbg_molhiv/data.py community (archive-listed) unverified Apache-2.0 (permissive) · e9c5142e7cbd84c4 · report
mae davidtangGT/MEGNET/megnet/utils/metrics.py community (archive-listed) unverified BSD-3-Clause (permissive) · 7cd70353cde137d0 · report
make_embed_fn deepmind/jraph/jraph/ogb_examples/train_flax.py community (archive-listed) unverified Apache-2.0 (permissive) · 7c803bc1dbe9c38f · report
make_framework_samples mylonasc/tf-gnns/benchmarks/ogbg_molhiv/data.py community (archive-listed) unverified Apache-2.0 (permissive) · 77730fffb44065a5 · report
make_graph_tuple_from_graph_list mylonasc/tf-gnns/tf_gnns/tfgnns_datastructures.py community (archive-listed) unverified Apache-2.0 (permissive) · acc81d203eb667dc · report
make_mlp mylonasc/tf-gnns/tf_gnns/graphnet_utils.py community (archive-listed) unverified Apache-2.0 (permissive) · 489a7393def35150 · report
mean_squared_error_with_scale davidtangGT/MEGNET/megnet/losses.py community (archive-listed) unverified BSD-3-Clause (permissive) · 310cd70b817b692c · report
plot_graph_networkx Rowing0914/Graph_Nets/graph_nets/my_example/ex_2.py community (archive-listed) unverified Apache-2.0 (permissive) · 3eb164551e02b4d4 · report
reindex_matrix machine-reasoning-ufrgs/graph-neural-networks/util.py community (archive-listed) unverified MIT (permissive) · 795cf0cae79b3a4c · report
repeat_with_index davidtangGT/MEGNET/megnet/utils/layer.py community (archive-listed) unverified BSD-3-Clause (permissive) · 2d4a31854d09c4ab · report
search mylonasc/tf-gnns/tf_gnns/agent_docs.py community (archive-listed) unverified Apache-2.0 (permissive) · bba2920bf9e6ce2d · report
sigmoid machine-reasoning-ufrgs/graph-neural-networks/neurosat/logutil.py community (archive-listed) unverified MIT (permissive) · c6a8334164beb95f · report
softplus2 davidtangGT/MEGNET/megnet/activations.py community (archive-listed) unverified BSD-3-Clause (permissive) · b72502cbc4652705 · report
sparse_to_dense machine-reasoning-ufrgs/graph-neural-networks/util.py community (archive-listed) unverified MIT (permissive) · 7994f503ff3f8886 · report
summarize_times mylonasc/tf-gnns/benchmarks/ogbg_molhiv/common.py community (archive-listed) unverified Apache-2.0 (permissive) · 444ab2a8d8818a53 · report
to_matrix machine-reasoning-ufrgs/graph-neural-networks/neurosat/generator.py community (archive-listed) unverified MIT (permissive) · 9391c2ef8916602d · report
unsorted_segment_max_or_zero mylonasc/tf-gnns/tf_gnns/graphnet_utils.py community (archive-listed) unverified Apache-2.0 (permissive) · 30dd2468e72fd7e4 · report
unsorted_segment_min_or_zero mylonasc/tf-gnns/tf_gnns/graphnet_utils.py community (archive-listed) unverified Apache-2.0 (permissive) · 9ee2d09dfb917e7d · report

Tasks

Decision MakingDeep LearningInductive BiasRelational Reasoning

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections