AAAI 2022
先码一篇2019年的nips,也是做retrosynthesis prediction的,但是很难看懂,所以先看这个AAAI的。

这里的任务叫retrosynthetic planning,可以为目标分子产生一个合成路径(synthetic route),下图展示了一个合成路径。
image.png
任务的挑战之处就在巨大的搜索空间,因为需要计算能合成目标分子的反应物和反应,还有中间反应。一个有效的方法是计算候选反应的cost。作者决定引入GNN。首先要考虑图应该如何构造。基本思想是图中的节点是分子,由于合成的cost是由组成分子的原子和结构决定的,所以作者假设有相似的fingerprint分子也有相似的cost。而且由于分子集的大规模,因此图的构建采用了一种semi-dynamic的方法:只用训练集里的分子构图来训练GNN。
文章的贡献:

  • 提出一种利用GNN估计retrosynthetic planning任务中分子的cost的方法。
  • 提出两种基于fingerprint与合成目标的分子相似度测量方法。
  • 提出一种semi-dynamic构图的方法。
  • 在USPTO数据集上

    retrosynthesis

    相关工作对关于这个反合成领域的基本知识有一点参考价值。反合成任务在这里分为两类,第一类是one-step,另一类是multi-step的,也就是本文的retrosynthetic planning任务。这里有个概念,可用和不可用的分子,即(un)available molecule。这里的unavailable的意思是预测出的反应物仍需要化合反应才能得到,也就是别的反应的生成物。

    Preliminary

    Tu指代待合成的分子(unavailable),Ta指代不用合成的分子(available)。取Tu中的某个待合成的分子m,image.png代表k个可能合成m的一步反应,R_i是第i个反应,S_i是R_i中所有的反应物,c(R_i)是R_i的cost。若R_i带来最小的cost,那么就在S_i中寻找下一个一步反应。
    本文工作的动机就是希望对中间产物的cost给出更好的估算结果。

    Graph for Retrosynthetic Planning

    GNN可以解决稀疏问题。通过标签性质直接聚合邻居节点。熟悉的通式:
    image.png
    为了构建图从而应用GNN,提出两种估计分子间相似度的方法。
    首先明确构建图的目的是预测给定分子的合成成本。因此最好把合成成本相似的分子在图中连起来。用Morgan fingerprint来对分子进行表示,并假设有相似指纹的分子有相似的合成成本。f即fingerprint,相似度就用cosine计算。
    image.png
    并设置阈值,防止图过于稠密。分子作为图上节点,超过阈值的相似度作为连接节点的边的权重。这种就是graph with threshold构图方法。
    image.png
    下面介绍第二种方法。为了使图能够反映分子之间合成成本的关系,并包含指纹信息,提出另一种方法。对于分子m_i,其embedding为image.png。新的cosine相似度:
    image.png
    为了计算W_e和B_e需要损失函数。
    image.png
    Tr是训练集中所有分子,分母上是个指示函数,满足条件取1,否则取0。s+是与m相似的分子集,s-是Tr其余部分。利用的是pair-wise loss function。其中m_k是在S-中随意挑选一个。为了减小计算量,有:
    image.png
    这里的N(m_i)是m_i分子的KNN邻居。

    Framework

    这里讲他们的semi-dynamic。图用训练集中的分子构建image.png。因为一切都建立在假设上,所有给邻接矩阵一个计算公式:
    image.pngimage.png
    再代GNN公式image.png得到分子的embedding。成本估计的式子是image.png
    验证和测试集里的分子仅与训练集里的进行连接。对中间产物m_i成本的计算,先找到它在训练集里的邻居,也就是embedding相似的分子:
    image.png
    通过邻居的embedding来算m_i的embedding:
    image.pngimage.png
    得到embedding之后可以进行成本的估算:
    image.png

    Optimization and Search

    损失函数由两个部分组成,第一个:
    image.png
    后面那项是实际合成成本。对于可能的反应image.png,第二个loss,被称为偏序loss:
    image.png
    再求平均:
    image.png
    搜索的时候用了A搜索。A搜索算法(A* search algorithm)是一种在图形平面上,有多个节点的路径,求出最低通过成本的算法。常用于游戏中的NPC的移动计算,或网络游戏的BOT的移动计算上。路径是用MLP模板产生的。
    看到这里我觉得我看了个寂寞。最好奇的路径是别的算法生成的,有了embedding算出cost再来个搜索算法就结束了,挺一言难尽的。以及很后悔因为不了解retrosynthesis仔细读了introduction,里面的东西后面都有,浪费我时间。
    所以这个算法的核心其实就是给那些分子适合的embedding,给相似的分子连边构建图,用GNN算embedding。
    p.s,感觉这个能用强化做,但搜了搜没有用强化做反合成的,很怪,而且我确实不怎么懂强化,再多读点论文吧。。。