A model + task specification to obtain molecules that we can synthesize in real life.
Generating a molecule with a model tells us what to synthesize. Knowing how to do that would be very useful. Moreover, the model might generate a molecule that is not possible to get in the lab. How can avoid that?
source: original paper
The authors consider two problems:
The main idea is to build a synthesis task in a way that gives us an idea of how to synthesize a molecule in the real-life as well as reduce the probability of getting molecules impossible in the real life. They turn it into a sequential decision making problem:
The process above can be represented as a DAG, and, gives us an idea of how to synthesize the molecule in the lab.
How do the authors solve the problem:
General model:
source: original paper
G1 (generate a ton of molecules)
first level is molecular level to get an embedding of the blocks
second level is message passing on the synthesis DAG
G2 (generate a molecule with given properties)