读书笔记36:Multi-Objective Molecule Generation using Interpretable Substructures (ICML2020)

此文做的是药物分子生成,重点要解决的问题是multi-objective,也就是说生成的分子要同时具有多个要求的性质。此前的工作大多数都是single-object的,目的只是生成满足某个性质的分子。那么这个性质具体来说都有啥呢?我觉得广义来讲这个性质有很多,好理解的比如生成的药物分子对于某种癌细胞有没有活性(能不能起作用,比如抑制这个癌细胞)。本文选取的性质有两个是对于某种酶是否有抑制作用(GNK3β和JNK3,其他生成分子的工作也经常选取这两个作为目标)。除此之外,还选取了QED和SA,QED是另一篇paper ‘’Quantifying the chemical beauty of drugs‘’ 提出的衡量生成分子是不是像真的药物(drug-likeness)的指标,全称叫quantitative estimate of drug-likeness,SA(synthetic accessibility)是合成难度。

基于这个目标,本文的手段可以清楚地用下图表示:

读书笔记36:Multi-Objective Molecule Generation using Interpretable Substructures (ICML2020)_第1张图片

也就是说分为两个大的环节,第一个环节是rationale extraction,这一步是从已有的分子数据库中抓取一些对于分子性质起关键作用的子结构(subgraph);得到这些子结构之后,第二个环节就是生成,也就是从这些rationale中进行采样,然后补全成完整的分子。

Rationale extraction的过程可以用下图表示:

读书笔记36:Multi-Objective Molecule Generation using Interpretable Substructures (ICML2020)_第2张图片

给定一个有某种性质的分子,要做的是从中抓取出对这个性质起到关键作用的子结构(rationale),看到这的时候我觉得这个rationale很像官能团,但是继续看就会发觉其实差别还是很大的,后面会提到为什么差别大。

那么它是怎么抓取rationale的呢,参考上图,首先给定一个有某种性质的分子,然后文章定义了peripheral bond/ring的概念,换句话说就是边缘结构。生成rationale的过程就是不断去掉一些边缘结构,然后希望剩下的是有用的rationale,这个边缘结构是有定义的,要求是如果去掉了一个bond/ring之后,剩下的graph还是联通的,那么这个bond/ring就是peripheral bond/ring. 去掉peripheral bond/ring的过程就像是reinforcement learning一样,给定当前状态的graph(可能是一开始的完整分子,也可能是修剪到某一步剩下的graph),有一些待选择的操作(去掉哪些peripheral bond/ring),操作表示为a(对应的是去掉某个结构),状态表示为s(表示当前的graph),那每个状态对应采取的操作可以表示成(s,a)。然后有几个量是需要说明的,首先有一个计数的,记录的是每个(s,a)出现的次数,也就是说对于某个状态s采取了操作a这件事发生过几次。然后是,表示的是采取(s,a)后,有多大的可能性最终会得到一个好的rationale,这个W每次得到一个rationale都会根据生成的rationale的性质更新一下,其中L表示的是总的操作数量,即修剪多少次得到的rationale,r_i表示的是对应的property score(这个性质上的得分是多少)。除了更新W,N也会更新一下。有了W和N之后,会再计算一个,表示W的均值,然后每一步选择操作a看两个东西,Q和U,具体计算如下:

读书笔记36:Multi-Objective Molecule Generation using Interpretable Substructures (ICML2020)_第3张图片

这里面的c_puct是一个超参,调节的是explore和exploitation,,s'是下一个状态,也就是说R表示的是在状态s采取操作a之后,下一个状态的graph对应的property score。这样一来,可以看出U这一项的作用是,如果(s,a)出现的数量少,那就多探索一下,如果(s,a)带来的即时奖励较大,也多探索一下。可见c_[uct调节的是Q和U的比例,Q代表的是长远的,最终的目标,U代表的是短期的回报以及多探索一些出现较少的操作。

通过上述步骤,给定一个分子,就可以不断地进行修剪,得到好的rationale,然后更新奖励函数,以便能够在接下来的过程中更好的评估每一个操作的价值。

你可能感兴趣的:(人工智能,数据库,python)