随着信息技术的不断发展,药物设计方法学的新概念、新方法和新思路持续更新,药物发现范式也与时俱进。人工智能作为新工具,已应用于药物发现过程的多个方面,引起了制药行业的高度关注,也带来了对药物发现科学理论和方法学的新思考和新探索。
中山大学药物分子设计研究中心徐峻教授是人工智能与药物设计领域的知名学者。自上世纪 80 年代末,就长期在科研第一线从事分子信息学算法研究和药物发现实验研究,研究领域横跨化学、药学和信息科学。在本文中,徐峻教授对人工智能与药物设计学的发展进行了系统的回顾、梳理和展望,对药物发现新范式进行了深入的分析、解读和探讨。
全文概要、目录及前文见
徐峻|人工智能与药物设计学:新范式探索 (1)
徐峻|人工智能与药物设计学:新范式探索 (2)
本篇是第三节前半部分的内容。
第三节 从传统技术到颠覆性技术
3.1 传统的药物设计技术
传统的基于靶标的药物分子设计技术中,小分子的调控对象主要是单个蛋白质靶标 (亦称受体)。基于天然配体与受体的结合模式,人们可以采用基于结构的药物设计(SBDD)或基于配体的药物设计(LBDD)的方法发现和优化药物的先导化合物。
传统的 LBDD 药物设计方法建立在QSAR概念之上,其流程如图 4-3-1 所示。
图 4-3-1. 传统的 QSAR 方法在药物设计过程中的应用。
天然药物化学研究能够鉴定活性成分的化学结构图,化学结构有许多表示方法,化学信息学以图论为基础可以将化学结构表示为拓扑结构(俗称二维结构,用连接表或线性编码表示)、或三维结构。典型的分子拓扑结构的线性编码是SMILES (Simplified Molecular Input Line Entry System, 有兴趣的读者可以访问文末链接1)。分子表面有电荷分布,通过量子化学或其它理论计算,还可以把分子三维表面静电荷的分布表示为分子的表面结构。化学信息学还可以选择一组分子特性(可以是生物、化学、物理、数学特性,被称为描述符 descriptors)来表示一个分子,这样,分子可以用向量表示:
(x1, x2, …, xi, … xm) , 该向量有 m 个成员,因此,分子被表示为在 m 维空间的一个点(例如,m = 3,含有 n 个化合物的库可以被表示为 3 维空间的 n 个散点,一般认为,具有相似性质的分子在空间中聚集在一起)。这样,预测一个分子的性质 y 的问题就变成了求 y 的函数值问题,其中,
是自变量,即y =
。当 m 超过 3 时,称为高维数据空间,人们无法直接观察分子在空间中的分布模式,当然就没法直接识别或预测分子的性质或生物活性。此时,需要人工智能技术或其它统计学方法对高维数据空间进行划分或曰“模式识别”(pattern recognition),这就是传统的QSAR(quantitative structure-activity relationship)研究。传统的 QSAR 用回归的方法在高维空间找到一个函数 y =
以预测所设计分子的活性。而人工智能的方法就是根据
建立分类模型,将活性化合物识别出来。
值得一提的是:QSAR 的本质是要发现分子中的某部分,即“子结构”,与活性的关系。尤其在生物医药领域,发现分子中与活性相关的关键“子结构”非常重要。这样,如何定义或划分活性化合物中的子结构成为 QSAR 的核心问题之一。半个多世纪以来,人们试了许多方法,例如,基于化学经验的方法 (如 MACCS search keys) 、按照某种规则定义的方法 (如原子中心片段方法或 Daylight 的分子指纹方法)。前者符合“化学感觉”但有很多主观偏见,后者避免“主观偏见”但却失去了化学或生物学意义。
3.2 传统的机器学习方法
人工智能在药物设计中的应用一直是化学信息学的内容。传统的人工智能辅助 LBDD 方法流程如图 4-3-2 所示。
图 4-3-2. 人工智能辅助 LBDD 方法流程。
在这个数据处理流程中,我们首先把分子结构数据转化为分子描述符,然后根据问题的性质决定采用何种机器学习类型,如贝叶斯学习机 (Bayesian learning)、支持向量机 (support vector machine, SVM)、决策树 (decision trees)、遗传算法 (genetic algorithm, GA) 、自组织图 (Kohonen's self-organization map, SOM), 人工神经网络 (artificial neural network, ANN)等。这些学习类型又分为有监督学习和无监督学习两大类。如果事先知道被分类的对象能分为几类,则采用有监督的学习;否则,采用无监督的学习。
传统的人工智能方法的学习效果取决于对各种数据处理方法选择:
传统的人工智能方法的学习效果与数据处理方法选择
(1) 分子的子结构的划分 (如基于经验的子结构枚举方法、基于药效团的方法、基于天然产物骨架的方法、基于规则的各种图论方法、基于分子场的方法);
(2) 对分子描述符的选择 (避免与活性无关的描述符、避免重复遴选高度相关的描述符、避免无区别活性与非活性能力的描述符等);
(3) 数据预处理与数据采样 (剔除不正确或非规范的数据表示、找出离群数据的原因、随机采样等);
(4) 向量相似度或高维空间两点间距离计算 (如欧几里得距离、Tanimoto 系数、Soergel 距离、Tversky 系数、Dice 系数)[23];
(5) 模式分类 (pattern classification) 算法 (如贝叶斯方法、非参数技术、线性判别函数、多层神经网络、随机进化、非度量方法、无监督聚类) [24];
(6) 模型评价与训练集与测试集划分 (如偏差/方差估计、数据划分技术、交叉验证方法)。
由于传统的机器学习方法各有优缺点,人们往往将它们结合起来以求得到更好的学习效果[25]。
3.3 深度学习方法概论
高通量合成和生物学筛选使实验数据爆炸性地增长,大数据时代到来了。基于传统的机器学习方法越来越难以应付大数据挖掘的需求。深度学习方法就是从传统的人工神经网络 (ANN) 发展起来的。
ANN 方法
如果把 ANN 作为一个输入为 x 输出为 y 的黑匣子的话,这个黑匣子就是以 x 为自变量,y 为应变量的函数。函数的内部机制可以是一个简单的线性变换 (例如 w × x → y, w 是权重),也可以是其它变换 (transform)。我们可以不断地向一个 ANN 发送具体数值给 x,让 ANN 根据 x 的各个具体数值总结并记住 x 的特征或性质作为输出 y 的值,这样,ANN 就是一个最简单的学习机,因为它从 x 的各个具体数值学会为 x 分类,所学到的“知识”存储在权重矩阵 W= (w1, w2, …, wn) 中。单个神经元的信号处理原理如图 4-3-3 所示。
图 4-3-3. 单个神经元的信号处理原理。
为了训练 ANN,需要先定义一个损耗函数 (loss function) 评价 ANN 预测值与实际结果之间的偏差,以找到最小化损耗函数的权重 W 和偏置 b。
神经网络与深度神经网络 DNN (Deep Neural Network)
一个简单神经网络由输入层、隐含层 (embedding layer)、输出层组成。在输出前有一个判别函数 (又称为激励函数),如简单的线性函数、正切函数 (sigmoid)、或归一化指数函数 (softmax) 函数 (图 4-3-3)。隐含层由多个 (个数可调整) 神经元 (neuron) 组成。在神经网络架构中,如果每一个输入都与神经元相联结,则称为全联结神经网络 (fully-connected neural network)。
简单的 ANN 只有输入层、中间层 (隐藏层) 和输出层。为了学习复杂的事物 (例如,学习把中文翻译成英语),可以把若干个 ANN 串联起来,让前一个 ANN (神经元) 作为后面神经元的输入,就是说,把神经元的隐藏层从一层扩充为多层,最后归结到输出层,就构成了深度神经网络 (deep neural network),即深度学习模型[26]。构建一个深度学习模型的步骤如下:
构建一个深度学习模型的步骤
(1) 确定学习模型的输入和输出及其数据类型;
(2) 确定神经元的功能 (用于变换自变量的函数定义,权重等);
(3) 确定神经网络的架构 (即确定输出函数、输入函数的拓扑网络);
简单神经网络与 DNN 的区别如图 4-3-4 所示,它们的基本区别是简单神经网络只有单一隐藏层,而 DNN 的隐藏层有一个以上的隐藏层。隐藏层层次的多少由问题的复杂性决定。
图 4-3-4. ANN 与 DNN 的不同架构。
因此,DNN 是有多个隐藏层的 ANN,其本质是将从输入中获得的低级特征转换为后续层中学到的更复杂的特征。每个神经元上有一个非线性激活函数 (其系数在训练过程中确定) 从前一层的多个连接神经元获取输入信号,并在将其传输到下一个神经元之前对其进行修改。标准的前馈 DNN 有输入层、隐藏层和输出层,每层由多个并联的神经元组成。输入信号直接进入输入层,隐藏层对输入信号进行非线性变换,在输出层生成预测。每个输出节点对应于要预测的任务 (分类)。单任务 DNN 只输出一个节点,多任务 DNN 输出多个节点。
构建 DNN 的必要性
DNN 的多个隐藏层有何必要呢?这要从用来训练的数据特点说起。在药物化学中,任何小分子可以被分为天然产物和合成产物,对给定的药物靶标 (或药效) 而言,每一种产物又可以分为活性的和非活性的。如果用简单的 ANN 构建机器学习机的话,其架构如图 4-3-5 所示。
图 4-3-5. 简单 ANN 学习机的的神经网络架构。
该架构的特点是简单,缺点是预测效果可能差。一个药物化学家如果发现一个活性化合物,就会围绕着它的同系物测试更多的化合物,产生更多的同系物结构和活性数据;但是,如果他发现一个非活性化合物,是不会下大功夫调查该化合物为何没有活性的。这样,数据积累的结果,阳性化合物的结构-活性数据量就会大大超过阴性化合物的结构-活性数据,造成阳性数据与阴性数据样本量失衡。在图 4-3-4 的例子中,天然产物所含的阳性/阴性样本比例与合成产物所含的阳性/阴性样本比例可能差别巨大,造成建模不正确。
另外,自然界的事物按层次分类是普遍现象,例如,天然产物分为无机物和有机物,有机物分为烃类化合物和非烃类化合物,如此可以成长为很多层次的分类树;另一个例子是生命系统发育树 (phylogenetic tree of life)。这些树的分枝尺寸也是不平衡的,因此,数学上就有了各种不同的分类算法 (classifications)。在生物学普遍用来处理这类问题的算法就是簇分析算法 (clustering algorithms)。深度学习机制也是处理这类问题的。
把不同性质的数据混合在一起进行建模,是造成模型预测能力差的主要原因之一。为了拟自然事物按层次分类的规律,可以把顶层问题分解为若子问题,如果子问题还是太复杂,可以继续分解,直至足够简化为止。这种方法被称为分而治之 (divide and conquer) 策略,在程序设计方法学里,我们也称之为模块化 (modularization) 策略,如图 4-3-6 所示。
图 4-3-6. DNN 深度学习机的的神经网络架构处理复杂的树状分类的问题。
这样,ANN 就演化为 DNN 技术了。DNN 首先用基本神经网络分类器 (classifier) 将化合物分为天然产物和非天然产物。然后再将两种子类型化合物分为活性和非活性的化合物,让同类数据进行比较,可以提高模型的预测效果。
循环神经网络 (RNN,recurrent neural network)
训练神经元的过程可以被视为成组地向神经元发送信号,神经元则处理这些信号组 (arrays)。每一组向量由若干信号数据单元组成。如果数据单元之间没有相关关系 (即数据元素被发送的次序不影响对信号组的解释,数学上称各数据元素是彼此正交的),则上述机器学习模型能够满足需求。然而,很多学习过程,如理解句子,信号发送的次序很重要(数据元素彼此非正交)。只有少数“意思对称的回文句”才可以忽略信号发送的次序。例如:“清水池里池水清”、“静泉山上山泉静”。虽然“潮随暗浪雪山倾,远浦渔舟钓月明”是文学意义上的回文句,但是,正读与倒读仍然意义不同,信号发送次序仍很重要。由此可见,无论是自然语言理解,还是分子结构编码的解析,信号发送的次序都非常重要。我们要考虑句子中各种词素的特性、词义、与其它词素的组合规则 (syntax and grammar)、和它们在句子中出现的时间次序。因此,需要将时序变量引入深度学习机制,即循环神经网络 (recurrent neural network, RNN)技术。
图 4-3-7 表示一个简单的 RNN 架构。RNN 也由输入层 (红色)、隐藏层 (黑色) 和输出层 (蓝色) 组成。这个创意的本质是函数含有双输入与双输出变量:h’, f=(h, x)。输入端变量 x 和 h 都会随着时间演化而演化。x
(x1, x2, x3, ···), x 在 t 时刻的各个信号元素数值彼此独立。而 h 是个递归函数,h 在 t 时刻的值根据 t-1 时刻的 h 数值和当前的 x 输入信号值计算出来。因此,记为:h’, y = f(h, x) b 其中,b 是偏置向量,y 没有被包含在函数定义 f() 里,而 h 被包含在函数定义 f() 里,h 是递归 (recursive) 的,用 h’ 以示区别。所以,RNN 的 R 还有递归 (recursive) 的意思。
图 4-3-7. 简单 RNN 的架构和它的数学意义。Win 是输入层到隐藏层的权重矩阵,Wout 是隐藏层到输出层的权重矩阵,Wh 是上一时刻的隐藏层 st 作为下一时刻输入的权重矩阵。
注意:图 4-3-7 中的 RNN 只有一个循环单元是实际存在的,虚线部分只是该循环单元在不同时刻存在的数值状态,它的架构没有变化。训练完毕后,RNN 习得的知识存储在权重参数矩阵W 里。这种简单架构又称为 naïve RNN(朴素 RNN)。
在训练时,t 时刻向 RNN 发送 xt ,隐藏层此时刻的值是 st (st 的值从 xt 和 st-1 计算得出),最后输出 yt 。这样,模型习得前序输入信号与后序输入信号关联起来,实现对句法的理解。因此,RNN 适合于研究子结构与活性之间的关系,从分子结构的 SMILES 编码中提取与活性相关的子结构。
双向 RNN (bidirectional RNN)
简单 RNN 解决了过去的信号单元对当前的信号单元关联的问题。然而,未来的信号单元对当前的信号单元也会有关联。因此,需要构建双向 RNN 以解决过去和未来两个方向上的信号单元与当前信号单元的关联问题。在药物设计中,例如,要预测两个分子片段需要什么样的分子片段 (化学基元 chemotype) 把它们联结起来,需要查看前后两个分子片段 (在句法分析中称为上下文分析)。双向 RNN 的本质就是将两个 RNN 串联起来 (图 4-3-8)。
图 4-3-8. 双向 RNN 的架构和它的数学意义。ha 和 hb 两个函数在时序上正好相反。
图 4-3-8 中的双向 RNN 需要三个函数,第三个函数合并前两个函数的结果。而 ha 和 hb 两个函数的形式可以不一样,在药物设计中,分子图是无向图,SMILES 表示的化学结构中化学键没有方向性 (配位键和氢键除外),ha 和 hb 两个函数的形式应该一样。
长短期记忆循环神经网络 (long-short-term memory, LSTM)
这种神经网络用来模拟大脑遗忘功能对学习效果的影响。药物的分子结构由分子结构骨架和骨架上的取代基组成。骨架上的取代基对另一个取代基的影响有近程和远程影响之分,由骨架的特性 (例如芳环骨架与非芳环骨架不同) 决定,不能简单粗暴地“一刀切”。在机器学习过程中,如果遗忘太快,就会因为“梯度消失”而不能“学到”取代基对另一个取代基的远程影响;如果遗忘太慢,就会因为“梯度爆炸”而增加计算成本,也会产生“过拟合”,太远程的影响也许微不足道。LSTM 的目的就是要解决这个问题。
LSTM 神经网络由细胞组成 (图 4-3-9),它属于 RNN,由 t 时刻的输入 xt,细胞状态 ct,临时细胞状态
,隐藏层状态 ht,遗忘门 ft,记忆门 it,输出门组成 ot。通过遗忘细胞状态中的信息和记忆新的信息传递后续时刻有用的信息、丢弃无用的信息。在每个时刻都输出隐藏层状态。信息的遗忘,记忆和输出 (上个时刻的隐藏层状态和当前输入计算出来的) 由遗忘门,记忆门,输出门予以控制。Wf,Wi,Wo 是计算这些门控函数的权重矩阵。W 是计算临时细胞状态
的权重矩阵。
图 4-3-9. LSTM 的基本架构。
函数的定义是
,它把实数轴上的值映射到 (0, 1) 区间上,大部分的数值接近 0 或 1。Tanh 的定义是:
,它把实数轴上的值映射到 (-1, 1) 区间上,大部分的数值接近 -1 或 1。它们适合作门控函数。在图中,如果删去三个
门函数,与 ht-1 与 xt 加和后乘以权重 W,由门控函数 Tanh 激活输出,就是一般的 RNN 的运算。然而,有了这三个
函数,ht-1 与 xt 加和后分为四路,各乘以四种权重矩阵,分别得到“遗忘权重”、“输入权重”、普通的 RNN 输出状态、以及“输出权重”的值。这些权重值接近 0 或 1,代表需要遗忘或记住的信息。
ht-1 与 ct-1 都携带上文的信息,进入神经元后,ct-1 与遗忘权重逐元素相乘,绝大多数取值为 0 或该位置上原来的值,像门一样决定让哪些 ct-1 的元素通过以及通过的比例,即选择性地遗忘 ct-1 所携带的信息,或选择性地通过 ct-1 所携带的信息。同理,输入门选择输入信息 (即前向运算 RNN 的结果) 。经过输入门处理后的信息就可以添加到经过遗忘门处理的上文信息中去,这是 LSTM 神经元中唯一的逐元素相加计算。这样,上文的信息根据当前的输入遗忘了旧的信息,并添加了新的信息,就是新的 ct,它携带了上文的信息,如果当前神经元要输出内容,还要经输出门。即,经 Tanh 激活,与输出权重 Wo 逐元素相乘,得到了当前神经元的输出和 ht。
这样 ct 携带长期记忆的信息,而 ht 携带短期记忆的信息,二者结合,LSTM 就有了长期和短期的记忆信息。
双向长短期记忆循环神经网络 (bidirectional long-short-term memory, BiLSTM)
考虑到 RNN 有训练过程的时间前后的问题 (即上下文分析),因此,就有了双向长短期记忆循环神经网络的架构 (图 4-3-10)。
图 4-3-10. 双向长短期记忆循环神经网络 (BiLSTM) 架构。
因此,BiLSTM 由两个时序上正好相反的 LSTM 网络在输出端融合而成。如果输入的是一个字符串 (句子),可以理解成 BiLSTM 由两个 LSTM 层,一个从句子的开头开始输入训练,另一个从句子的尾端开始输入训练,然后综合两个结果作为最后学习结果的输出。BiLSTM 是及考虑了时序又考虑了长短期记忆的 RNN 学习机。
卷积神经网络 (convolutional neural network, CNN)
我们以模仿人类视觉的模式识别为例解释 CNN。为了从大尺寸信号源(数据矩阵)中提取信息,用小尺寸的矩阵,例如 m 维矩阵 (筛子 filter) 扫描 n 维矩阵 (信号源) 以提取想要识别的模式,过滤噪音,这里,m < n。例如,有经验的化学家在判断一个长链脂肪酸 (该分子的 SMILES 编码可以长达 20 多个字符) 是饱和脂肪酸还是不饱和脂肪酸时,不需要从头到尾检查分子中的每一个原子,而是快速检查分子结构中是否有双键 (只有一个字符: “=”)!因此,CNN 不仅提高学习效率,也提高模式提取的能力,避免非决策性信息的干扰。
如图 4-3-11 所示,CNN 主要由数据准备、模式特征提取核模式识别三部分组成。在数据输入层,首先对原始数据进行预处理,包括去均值 (把输入数据各个维度都中心化为 0,把样本的中心拉回到坐标系原点)、归一化 (将输入数据值归一化到确定的范围,减少各维度数据取值范围的差异而带来的干扰);然后,用一个输入为 m×n 维矩阵的核函数 (kernel) 扫描原始数据 (M×N 维矩阵,M>m, N>n),生成滤波后的数据 (filtered data),枚举出所有可能的子结构模式。
图 4-3-11. 卷积神经网络 (CNN) 的数据处理过程。
卷积层的任务是用神经网络将模式特征提取出来。首先,将核函数处理后的结果用激励函数 ReLU (rectified linear unit, 修正线性单元) 映射到神经元。每个神经元可视为一个滤波器 (filter)。这个过程可以反复进行,把真正与性质相关的“模式特征”提取出来。
反复卷积又称为池化层 (pooling layer),去掉源数据中与特征判别无关的信息,留下最与性质相关的、具有尺度不变性的特征;一般采用最大池化 (max pooling) 或均值池化 (average pooling) 策略。一般采用前者。
最后的输出层就是普通的全连接层神经网络,可以是单层或深度神经网络。
深度神经网络与传统的分子描述符应用
起初,人们用传统的分子描述符为输入数据训练深度学习的模型,得到比传统机器学习显著优秀的结果。例如,默克分子活动挑战赛 (The Merck Molecular Activity Challenge) 的获胜团队使用的多任务模型中包含大量基于分子描述符的预测模型,比随机森林学习方法的效果提高了 15% [27]。用大量的分子描述符训练的大规模多任务网络的确能显著提高虚拟筛选和活性预测预测能力,但此类方法无法解析子结构与活性之间的关系,对药物设计的指导作用有限。
因此,人们重新考虑建立直接基于分子拓扑结构的深度学习模型。“神经指纹” (neural fingerprints,NFP)就是早期努力的例子[28]。后来,人们提出了基于分子图卷积的深度学习方法[29] 和它的改进版 (graph convolution network, GCN),试图动态提取分子子结构特征,以客观地建立子结构与活性的关系[30]。然而,GCN 也没有解决深度学习结果的直观解析问题。
新的视角看待分子结构线性编码
分子结构可以用SMILES 线性编码表示(参见文末链接2)。虽然分子结构的线性编码在化学信息学中是老技术,但是,我们可以用新的视角看待它:即,SMILES 编码是描述分子中各个原子相互连接性的严谨的自然语言,有严格的句法 (syntax)。原子符号和化学键的符号都是严格定义的词素 (元素符号为名词,化学键符号为连接名词的连词,数字作为修饰词描述名词之间的环状拓扑连结等)。因此,一个靶向化合物库 (focused library) 就是一篇“文章”,其中的每一个分子用 SMILES 语句表示。整个“文章”蕴涵了与靶标结合的小分子应该有的共同结构特征。新视角与传统的 QSAR 观念的重大不同如下:
新视角与传统的 QSAR 观念的重大不同
(1) SMILES 语句蕴涵的结构特征不是事先预定义的子结构,没有引入基于经验的主观偏见,而是随着面向的靶标不同而变化;
(2) 这种蕴涵的结构特征表现的“结构-活性”关系,可以通过机器学习算法自动发现,并且可以有直观的化学解释。
因此,可以将原来处理自然语言的机器学习算法借来,用于发现化合物的子结构与活性之间的关系研究。
注意机制 (attention mechanism) 与自注意机制 (self-attention mechanism)
注意机制是一种去除数据中背景噪音,以便从数据中提取有用信号模式的技术,也是对人类或动物的注意力机制的模拟。人仰望天空时,可以在大视野中发现飞翔的小鸟;鹰从几千米高空发现地上的鼠;狗鼻从十几万种不同的气味中闻出毒品;大象的象足能识别 15 公里外的超低频震动;蛇舌能识别环境中微小的气味和温度的波动;啄木鸟从敲击树木的声音确定树干内的虫子的位置。这些注意力现象有共同的机制特征:即感知事物时,不会对情景中的每一个数据点同等对待,而是注意特征性的 (如,变化快的、变化联动的、与记忆的模式匹配的) 信息。
注意力的本质是忽略无关信息而关注重点信息的能力。注意力缺失症(attention deficit disorder,ADD;或attention deficit hyperactivity disorder,ADHD)会使人类失去学习能力。在前面的 CNN 方法的讨论中,池化层也能去掉与特征判别无关的信息,可视为“粗放”型的注意机制。池化层的“赢者通吃” (winner takes all) 策略简单粗暴,可能把偶尔强度高的噪音信号误认为有用信息 (假阳性),也可能把虽然强度不是最高,但确属有用信息忽略 (假阴性)。而信号平均策略 (average pooling) 则可能使很多有用信息丢失,学习效果更差。
深度学习的注意机制主要是基于掩码 (mask) 的注意机制,它通过加一层权重为关键特征作标记,在训练过程中使深度神经网络习得需要关注的区域,即形成注意。
注意机制有分为软注意 (soft attention) 和强注意 (reinforcement attention)。软注意机制标记数据区域或信号通道,是确定性的注意,具有可微性 (differentiability),即可以求得信号的变化率 (梯度),通过前向和后向反馈学习计算注意力的权重。
强注意是随机预测过程,关注数据点的动态变化。强注意力具有离散性 (不可微),通过增强学习 (reinforcement learning) 完成。
注意机制的计算由两步组成:第一步计算输入信号 (Q) 与以前习得的重要信号 (K) 的相似度或相关度;第二步对相似度加权求和并归一化产生对给定的输入信号赋注意力值。药物化学中,重要信号 K 可以是优势子结构 (privileged substructures) 或骨架结构 (scaffolds)。例如,在研究小分子与靶标共价结合时,Michael 加成反应的弹头 (warheads) 受到关注,因为它是共价结合的关键子结构。如果把“结构-活性”关系的发现过程理解为对 SMILES 化学结构自然语言的处理过程,注意力机制可被表述为一个函数,