Marc Brockschmidt

dblp:80/8292 · also Marc Manuel Johannes Brockschmidt · DBLP profile ↗
← Back
31ranked-venue papers
11as first author
5since 2021 · last 2023
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Artificial intelligence and machine learning · 18 · 3 first-author · 5 since 2021Software engineering, systems software and programming languages · 10 · 7 first-authorTheory of computation · 6 · 5 first-authorSecurity and privacy · 1Graphics, computer vision, multimedia, augmented reality and games · 1 · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
14 papers
Program synthesis and code generation · 34% Program analysis · 31% Compilers and program optimization · 15%
Artificial intelligence
8 papers
Generative modeling · 31% Deep learning architectures and training · 27% Language models and text generation · 24%
Interdisciplinary, comprehensive, and emerging computing
2 papers
Computational science and engineering · 78% Bioinformatics and computational biology · 22%
Network and information security
1 paper
Privacy and data protection · 67% Security and privacy of machine learning · 33%

Topics — the 30 heaviest of 38, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization
code generation
0.722019
Generative Code Modeling with Graphs · ICLR (Poster) 2019
Learning to Represent Programs with Graphs · ICLR 2018
Program analysis › cost analysis
runtime complexity analysis
0.722020
Inferring Lower Runtime Bounds for Integer Programs · ACM Trans. Program. Lang. Syst. 2020
Analyzing Runtime and Size Complexity of Integer Programs · ACM Trans. Program. Lang. Syst. 2016
Computational science and engineering › statistical computing
boltzmann distribution sampling
0.712023
Timewarp: Transferable Acceleration of Molecular Dynamics by Learning Time-Coarsened Dynamics · NeurIPS 2023
Computational science and engineering › computational chemistry › molecular simulation › molecular dynamics
enhanced sampling
0.712023
Timewarp: Transferable Acceleration of Molecular Dynamics by Learning Time-Coarsened Dynamics · NeurIPS 2023
Computational science and engineering › computational chemistry › molecular simulation
molecular dynamics
0.712023
Timewarp: Transferable Acceleration of Molecular Dynamics by Learning Time-Coarsened Dynamics · NeurIPS 2023
Program analysis
program representation
0.622018
Learning to Represent Programs with Graphs · ICLR 2018
Neural Program Lattices · ICLR (Poster) 2017
Machine learning › Generative modeling
molecular generation
0.612022
Learning to Extend Molecular Scaffolds with Structural Motifs · ICLR 2022
Bioinformatics and computational biology › drug discovery
computational drug discovery
0.612022
Learning to Extend Molecular Scaffolds with Structural Motifs · ICLR 2022
Program synthesis and code generation
code completion
0.612022
Learning to Complete Code with Sketches · ICLR 2022
Program analysis
static analysis
0.522020
Inferring Lower Runtime Bounds for Integer Programs · ACM Trans. Program. Lang. Syst. 2020
Automated Termination Proofs for Java Programs with Cyclic Data · CAV 2012
Machine learning › Deep learning architectures and training
feature modulation
0.412020
GNN-FiLM: Graph Neural Networks with Feature-wise Linear Modulation · ICML 2020
Machine learning › Graph learning
graph neural network
0.412020
GNN-FiLM: Graph Neural Networks with Feature-wise Linear Modulation · ICML 2020
Security and privacy of machine learning
membership inference
0.412020
Analyzing Information Leakage of Updates to Natural Language Models · CCS 2020
Privacy and data protection › information leakage
training data leakage
0.412020
Analyzing Information Leakage of Updates to Natural Language Models · CCS 2020
Compilers and program optimization
code acceleration
0.412020
Inferring Lower Runtime Bounds for Integer Programs · ACM Trans. Program. Lang. Syst. 2020
Machine learning › Generative modeling
autoregressive model
0.412019
Generative Code Modeling with Graphs · ICLR (Poster) 2019
Natural language and speech › Language models and text generation › text summarization
neural summarization
0.412019
Structured Neural Summarization · ICLR (Poster) 2019
Machine learning › Deep learning architectures and training
structured neural networks
0.412019
Structured Neural Summarization · ICLR (Poster) 2019
Natural language and speech › Language models and text generation
text summarization
0.412019
Structured Neural Summarization · ICLR (Poster) 2019
Program synthesis and code generation
neural program synthesis
0.412019
Program Synthesis and Semantic Parsing with Learned Code Idioms · NeurIPS 2019
Machine learning › Graph learning
graph generation
0.312018
Constrained Graph Variational Autoencoders for Molecule Design · NeurIPS 2018
Machine learning › Generative modeling › molecular generation
molecular design
0.312018
Constrained Graph Variational Autoencoders for Molecule Design · NeurIPS 2018
Machine learning › Generative modeling
variational autoencoder
0.312018
Constrained Graph Variational Autoencoders for Molecule Design · NeurIPS 2018
Program analysis › program representation
graph-based code representation
0.312018
Learning to Represent Programs with Graphs · ICLR 2018
Program verification
termination analysis
0.322013
Better Termination Proving through Cooperation · CAV 2013
Automated Termination Proofs for Java Programs with Cyclic Data · CAV 2012
Machine learning › Deep learning architectures and training
neural program synthesis
0.312017
Neural Program Lattices · ICLR (Poster) 2017
Programming languages and type systems › programming paradigms
differentiable programming
0.312017
Differentiable Programs with Neural Libraries · ICML 2017
Program synthesis and code generation
inductive program synthesis
0.312017
DeepCoder: Learning to Write Programs · ICLR (Poster) 2017
Natural language and speech › Information extraction and text analysis
document understanding
0.112019
Structured Neural Summarization · ICLR (Poster) 2019
Machine learning › Learning paradigms
lifelong learning
0.112017
Differentiable Programs with Neural Libraries · ICML 2017

Methods — techniques the papers use, named apart from their topics

structural motifs · 1.1graph neural network · 1.1sequence-to-sequence model · 1.0copy mechanism · 1.0beam search · 1.0ranking functions · 0.9program simplification · 0.9normalizing flow · 0.7markov chain monte carlo · 0.7sequence-to-sequence learning · 0.6neural language model · 0.6self-supervised learning · 0.5co-training · 0.5recurrence solving · 0.4feature-wise linear modulation · 0.4differential score · 0.4differential rank · 0.4SMT encoding · 0.4
YearPublicationVenuePosition
2023 Timewarp: Transferable Acceleration of Molecular Dynamics by Learning Time-Coarsened Dynamics
abstract
*Molecular dynamics* (MD) simulation is a widely used technique to simulate molecular systems, most commonly at the all-atom resolution where equations of motion are integrated with timesteps on the order of femtoseconds ($1\textrm{fs}=10^{-15}\textrm{s}$). MD is often used to compute equilibrium properties, which requires sampling from an equilibrium distribution such as the Boltzmann distribution. However, many important processes, such as binding and folding, occur over timescales of milliseconds or beyond, and cannot be efficiently sampled with conventional MD. Furthermore, new MD simulations need to be performed for each molecular system studied. We present *Timewarp*, an enhanced sampling method which uses a normalising flow as a proposal distribution in a Markov chain Monte Carlo method targeting the Boltzmann distribution. The flow is trained offline on MD trajectories and learns to make large steps in time, simulating the molecular dynamics of $10^{5} - 10^{6} \textrm{fs}$. Crucially, Timewarp is *transferable* between molecular systems: once trained, we show that it generalises to unseen small peptides (2-4 amino acids) at all-atom resolution, exploring their metastable states and providing wall-clock acceleration of sampling compared to standard MD. Our method constitutes an important step towards general, transferable algorithms for accelerating MD.
Leon Klein, Andrew Y. K. Foong, Tor Erlend Fjelde, Bruno Mlodozeniec, Marc Brockschmidt, Sebastian Nowozin, Frank Noé, Ryota Tomioka
NeurIPS5
2022 Learning to Complete Code with Sketches
Daya Guo, Alexey Svyatkovskiy, Jian Yin 0001, Nan Duan 0001, Marc Brockschmidt, Miltiadis Allamanis
ICLR5
2022 Learning to Extend Molecular Scaffolds with Structural Motifs
Krzysztof Maziarz, Henry Jackson-Flux, Pashmina Cameron, Finton Sirockin, Nadine Schneider, Nikolaus Stiefl, Marwin H. S. Segler, Marc Brockschmidt
ICLR8
2021 Copy That! Editing Sequences by Copying Spans
abstract
Neural sequence-to-sequence models are finding increasing use in editing of documents, for example in correcting a text document or repairing source code. In this paper, we argue that common seq2seq models (with a facility to copy single tokens) are not a natural fit for such tasks, as they have to explicitly copy each unchanged token. We present an extension of seq2seq models capable of copying entire spans of the input to the output in one step, greatly reducing the number of decisions required during inference. This extension means that there are now many ways of generating the same output, which we handle by deriving a new objective for training and a variation of beam search for inference that explicitly handles this problem. In our experiments on a range of editing tasks of natural language and source code, we show that our new model consistently outperforms simpler baselines.
Sheena Panthaplackel, Miltiadis Allamanis, Marc Brockschmidt
AAAI3
2021 Self-Supervised Bug Detection and Repair
abstract
Machine learning-based program analyses have recently shown the promise of integrating formal and probabilistic reasoning towards aiding software development. However, in the absence of large annotated corpora, training these analyses is challenging. Towards addressing this, we present BugLab, an approach for self-supervised learning of bug detection and repair. BugLab co-trains two models: (1) a detector model that learns to detect and repair bugs in code, (2) a selector model that learns to create buggy code for the detector to use as training data. A Python implementation of BugLab improves by 30% upon baseline methods on a test dataset of 2374 real-life bugs and finds 19 previously unknown bugs in open-source software.
Miltiadis Allamanis, Henry Jackson-Flux, Marc Brockschmidt
NeurIPS3
2020 Analyzing Information Leakage of Updates to Natural Language Models
abstract
To continuously improve quality and reflect changes in data, machine learning applications have to regularly retrain and update their core models. We show that a differential analysis of language model snapshots before and after an update can reveal a surprising amount of detailed information about changes in the training data. We propose two new metrics---differential score and differential rank---for analyzing the leakage due to updates of natural language models. We perform leakage analysis using these metrics across models trained on several different datasets using different methods and configurations. We discuss the privacy implications of our findings, propose mitigation strategies and evaluate their effect.
Santiago Zanella-Béguelin, Lukas Wutschitz, Shruti Tople, Victor Rühle, Andrew Paverd, Olga Ohrimenko, Boris Köpf, Marc Brockschmidt
CCS8
2020 GNN-FiLM: Graph Neural Networks with Feature-wise Linear Modulation
abstract
This paper presents a new Graph Neural Network (GNN) type using feature-wise linear modulation (FiLM). Many standard GNN variants propagate information along the edges of a graph by computing messages based only on the representation of the source of each edge. In GNN-FiLM, the representation of the target node of an edge is used to compute a transformation that can be applied to all incoming messages, allowing feature-wise modulation of the passed information. Different GNN architectures are compared in extensive experiments on three tasks from the literature, using re-implementations of many baseline methods. Hyperparameters for all methods were found using extensive search, yielding somewhat surprising results: differences between state of the art models are much smaller than reported in the literature and well-known simple baselines that are often not compared to perform better than recently proposed GNN variants. Nonetheless, GNN-FiLM outperforms these methods on a regression task on molecular graphs and performs competitively on other tasks.
Marc Brockschmidt
ICML1
2020 Inferring Lower Runtime Bounds for Integer Programs
abstract
We present a technique to infer lower bounds on the worst-case runtime complexity of integer programs, where in contrast to earlier work, our approach is not restricted to tail-recursion. Our technique constructs symbolic representations of program executions using a framework for iterative, under-approximating program simplification. The core of this simplification is a method for (under-approximating) program acceleration based on recurrence solving and a variation of ranking functions. Afterwards, we deduce asymptotic lower bounds from the resulting simplified programs using a special-purpose calculus and an SMT encoding. We implemented our technique in our tool LoAT and show that it infers non-trivial lower bounds for a large class of examples.
Florian Frohn, Matthias Naaf, Marc Brockschmidt, Jürgen Giesl
ACM Trans. Program. Lang. Syst.3
2019 Generative Code Modeling with Graphs
Marc Brockschmidt, Miltiadis Allamanis, Alexander L. Gaunt, Oleksandr Polozov
ICLR (Poster)1
2019 Structured Neural Summarization
Patrick Fernandes, Miltiadis Allamanis, Marc Brockschmidt
ICLR (Poster)3
2019 Learning to Represent Edits
Graham Neubig, Miltiadis Allamanis, Marc Brockschmidt, Alexander L. Gaunt
ICLR (Poster)4
2019 Program Synthesis and Semantic Parsing with Learned Code Idioms
abstract
Program synthesis of general-purpose source code from natural language specifications is challenging due to the need to reason about high-level patterns in the target program and low-level implementation details at the same time. In this work, we present Patois, a system that allows a neural program synthesizer to explicitly interleave high-level and low-level reasoning at every generation step. It accomplishes this by automatically mining common code idioms from a given corpus, incorporating them into the underlying language for neural synthesis, and training a tree-based neural synthesizer to use these idioms during code generation. We evaluate Patois on two complex semantic parsing datasets and show that using learned code idioms improves the synthesizer's accuracy.
Richard Shin, Miltiadis Allamanis, Marc Brockschmidt, Oleksandr Polozov
NeurIPS3
2018 Learning to Represent Programs with Graphs
Miltiadis Allamanis, Marc Brockschmidt, Mahmoud Khademi
ICLR2
2018 Constrained Graph Variational Autoencoders for Molecule Design
abstract
Graphs are ubiquitous data structures for representing interactions between entities. With an emphasis on applications in chemistry, we explore the task of learning to generate graphs that conform to a distribution observed in training data. We propose a variational autoencoder model in which both encoder and decoder are graph-structured. Our decoder assumes a sequential ordering of graph extension steps and we discuss and analyze design choices that mitigate the potential downsides of this linearization. Experiments compare our approach with a wide range of baselines on the molecule generation task and show that our method is successful at matching the statistics of the original dataset on semantically important metrics. Furthermore, we show that by using appropriate shaping of the latent space, our model allows us to design molecules that are (locally) optimal in desired properties.
Qi Liu 0049, Miltiadis Allamanis, Marc Brockschmidt, Alexander L. Gaunt
NeurIPS3
2017 Certifying Safety and Termination Proofs for Integer Transition Systems
Marc Brockschmidt, Sebastiaan J. C. Joosten, René Thiemann, Akihisa Yamada 0002
CADE1
2017 DeepCoder: Learning to Write Programs
Matej Balog, Alexander L. Gaunt, Marc Brockschmidt, Sebastian Nowozin, Daniel Tarlow
ICLR (Poster)3
2017 Neural Program Lattices
Chengtao Li, Daniel Tarlow, Alexander L. Gaunt, Marc Brockschmidt, Nate Kushman
ICLR (Poster)4
2017 Differentiable Programs with Neural Libraries
abstract
We develop a framework for combining differentiable programming languages with neural networks. Using this framework we create end-to-end trainable systems that learn to write interpretable algorithms with perceptual components. We explore the benefits of inductive biases for strong generalization and modularity that come from the program-like structure of our models. In particular, modularity allows us to learn a library of (neural) functions which grows and improves as more tasks are solved. Empirically, we show that this leads to lifelong learning systems that transfer knowledge to new tasks more effectively than baselines.
Alexander L. Gaunt, Marc Brockschmidt, Nate Kushman, Daniel Tarlow
ICML2
2017 Learning Shape Analysis
Marc Brockschmidt, Yuxin Chen 0001, Pushmeet Kohli, Siddharth Krishna 0001, Daniel Tarlow
SAS1
2017 Proving Termination Through Conditional Termination
Cristina Borralleras, Marc Brockschmidt, Daniel Larraz, Albert Oliveras, Enric Rodríguez-Carbonell, Albert Rubio
TACAS (1)2
2017 Analyzing Program Termination and Complexity Automatically with AProVE
Jürgen Giesl, Cornelius Aschermann, Marc Brockschmidt, Fabian Emmes, Florian Frohn, Carsten Fuhs, Jera Hensel, Carsten Otto, Martin Plücker, Peter Schneider-Kamp, Thomas Ströder, Stephanie Swiderski, René Thiemann
J. Autom. Reason.3
2017 Automatically Proving Termination and Memory Safety for Programs with Pointer Arithmetic
Thomas Ströder, Jürgen Giesl, Marc Brockschmidt, Florian Frohn, Carsten Fuhs, Jera Hensel, Peter Schneider-Kamp, Cornelius Aschermann
J. Autom. Reason.3
2016 T2: Temporal Property Verification
Marc Brockschmidt, Byron Cook, Samin Ishtiaq, Heidy Khlaaf, Nir Piterman
TACAS1
2016 Analyzing Runtime and Size Complexity of Integer Programs
Marc Brockschmidt, Fabian Emmes, Stephan Falke 0001, Carsten Fuhs, Jürgen Giesl
ACM Trans. Program. Lang. Syst.1
2015 Compositional Safety Verification with Max-SMT
abstract
We present an automated compositional program verification technique for safety properties based on conditional inductive invariants. For a given program part (e.g., a single loop) and a postcondition ϕ, we show how to, using a Max-SMT solver, an inductive invariant together with a precondition can be synthesized so that the precondition ensures the validity of the invariant and that the invariant implies ϕ. From this, we build a bottom-up program verification framework that propagates preconditions of small program parts as postconditions for preceding program parts. The method recovers from failures to prove the validity of a precondition, using the obtained intermediate results to restrict the search space for further proof attempts. As only small program parts need to be handled at a time, our method is scalable and distributable. The derived conditions can be viewed as implicit contracts between different parts of the program, and thus enable an incremental program analysis.
Marc Brockschmidt, Daniel Larraz, Albert Oliveras, Enric Rodríguez-Carbonell, Albert Rubio
FMCAD1
2014 CTL+FO verification as constraint solving
abstract
Expressing program correctness often requires relating program data throughout (different branches of) an execution. Such properties can be represented using CTL+FO, a logic that allows mixing temporal and first-order quantification. Verifying that a program satisfies a CTL+FO property is a challenging problem that requires both temporal and data reasoning. Temporal quantifiers require discovery of invariants and ranking functions, while first-order quantifiers demand instantiation techniques. In this paper, we present a constraint-based method for proving CTL+FO properties automatically. Our method makes the interplay between the temporal and first-order quantification explicit in a constraint encoding that combines recursion and existential quantification. By integrating this constraint encoding with an off-the-shelf solver we obtain an automatic verifier for CTL+FO.
Tewodros A. Beyene, Marc Brockschmidt, Andrey Rybalchenko
SPIN2
2014 Alternating Runtime and Size Complexity Analysis of Integer Programs
Marc Brockschmidt, Fabian Emmes, Stephan Falke 0001, Carsten Fuhs, Jürgen Giesl
TACAS1
2013 Better Termination Proving through Cooperation
Marc Brockschmidt, Byron Cook, Carsten Fuhs
CAV1
2012 Automated Termination Proofs for Java Programs with Cyclic Data
Marc Brockschmidt, Richard Musiol, Carsten Otto, Jürgen Giesl
CAV1
2011 Modular Termination Proofs of Recursive Java Bytecode Programs by Term Rewriting
abstract
In earlier work we presented an approach to prove termination of non-recursive Java Bytecode (JBC) programs automatically. Here, JBC programs are first transformed to finite termination graphs which represent all possible runs of the program. Afterwards, the termination graphs are translated to term rewrite systems (TRSs) such that termination of the resulting TRSs implies termination of the original JBC programs. So in this way, existing techniques and tools from term rewriting can be used to prove termination of JBC automatically. In this paper, we improve this approach substantially in two ways: (1) We extend it in order to also analyze recursive JBC programs. To this end, one has to represent call stacks of arbitrary size. (2) To handle JBC programs with several methods, we modularize our approach in order to re-use termination graphs and TRSs for the separate methods and to prove termination of the resulting TRS in a modular way. We implemented our approach in the tool AProVE. Our experiments show that the new contributions increase the power of termination analysis for JBC significantly.
Marc Brockschmidt, Carsten Otto, Jürgen Giesl
RTA1
2010 Automated Termination Analysis of Java Bytecode by Term Rewriting
abstract
We present an automated approach to prove termination of Java Bytecode (JBC) programs by automatically transforming them to term rewrite systems (TRSs). In this way, the numerous techniques and tools developed for TRS termination can now be used for imperative object-oriented languages like Java, which can be compiled into JBC.
Carsten Otto, Marc Brockschmidt, Christian von Essen, Jürgen Giesl
RTA2