数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
二十八、MPNN [2017]
机器学习预测分子和材料的性质仍处于起步阶段。迄今为止,将机器学习应用于化学任务的大多数研究都围绕着特征工程展开,神经网络在化学领域并未广泛采用。这使人联想到卷积神经网络被广泛采用之前的图像模型
image model
的状态,部分原因是缺乏经验证据表明:具有适当归纳偏置inductive bias
的神经网络体系结构可以在该领域获得成功。最近,大规模的量子化学计算
quantum chemistry calculation
和分子动力学模拟molecular dynamics simulation
,加上高通量high throughput
实验的进展,开始以前所未有的速度产生数据。大多数经典的技术不能有效地利用现在的大量数据。假设我们能找到具有适当归纳偏置的模型,将更强大和更灵活的机器学习方法应用于这些问题的时机已经成熟。原子系统的对称性表明,在图结构数据上操作并对图同构graph isomorphism
不变的神经网络可能也适合于分子。足够成功的模型有朝一日可以帮助实现药物发现或材料科学中具有挑战性的化学搜索问题的自动化。在论文
《Neural Message Passing for Quantum Chemistry》
中,作者的目标是为化学预测问题展示有效的机器学习模型,这些模型能够直接从分子图molecular graph
中学习特征,并且对图同构不变invariant
。为此,论文描述了一个在图上进行监督学习的一般框架,称为信息传递神经网络(Message Passing Neural Network: MPNN
)。MPNN
简单地抽象了现有的几个最有前景的图神经模型之间的共性,以便更容易理解它们之间的关系,并提出新的变体。鉴于许多研究人员已经发表了适合MPNN
框架的模型,作者认为社区应该在重要的图问题上尽可能地推动这种通用方法,并且只提出由application
所启发的新变体,例如论文中考虑的应用:预测小有机分子的量子力学特性(如下图所示)。最后,
MPNN
在分子属性预测benchmark
上取得了state-of-the-art
的结果。论文贡献:
- 论文开发了一个
MPNN
框架 ,它在所有13
个目标target
上都取得了SOTA
的结果,并在13
个目标中的11
个目标上预测到DFT
的化学准确性。 - 论文开发了几种不同的
MPNN
,在13
个目标中的5
个目标上预测到DFT
的化学准确性,同时仅对分子的拓扑结构进行操作(没有空间信息作为输入)。 - 论文开发了一种通用的方法来训练具有更大
node representation
的MPNN
,而不需要相应地增加计算时间或内存,与以前的MPNN
相比,在高维node representation
方面产生了巨大的节省。
作者相信论文的工作是朝着使设计良好的
MPNN
成为中等大小分子上的监督学习的默认方法迈出的重要一步。为了实现这一点,研究人员需要进行仔细的实证研究,以找到使用这些类型的模型的正确方法,并对其进行必要的改进。- 论文开发了一个
相关工作:尽管原则上量子力学可以让我们计算分子的特性,但物理定律导致的方程太难精确解决。因此,科学家们开发了一系列的量子力学近似方法,对速度和准确率进行了不同的权衡,如带有各种函数的密度功能理论(
Density Functional Theory: DFT
)以及量子蒙特卡洛Quantum Monte-Carlo
。尽管被广泛使用,DFT
仍然太慢,无法应用于大型系统(时间复杂度为 $ O(N^3_e ) $ ,其中 $ N_e $ 为电子数),并且相对于薛定谔方程的精确解,DFT
表现出系统误差和随机误差。《Combined first-principles calculation and neural-network correction approach for heat of formation 》
使用神经网络来近似DFT
中一个特别麻烦的项,即交换相关势能exchange correlation potential
,以提高DFT
的准确性。然而,他们的方法未能提高DFT
的效率,而是依赖于一大套临时的原子描述符atomic descriptor
。另一个方向试图直接对量子力学的解进行近似,而不求助于DFT
。这两个方向都使用了有固有局限性的手工设计的特征。
28.1 MPNN
为简单起见我们考虑无向图。给定无向图
$ \mathcal G=(\mathcal V, \mathcal E) $ ,其中 $ \mathcal V=\{v_1,\cdots,v_n\} $ 为节点集合, $ \mathcal E=\{e_{i,j}\} $ 为边集合。- 每个节点
$ v_i $ 关联一个节点特征 $ \mathbf{\vec x}_i\in \mathbb R^{d_f} $ 。 - 每条边
$ e_{i,j} $ 关联一个边特征 $ \mathbf{\vec e}_{i,j}\in \mathbb R^{d_e} $ 。
将无向图推广到有向的多图
multigraph
(即多条边)也很容易。- 每个节点
GNN
的前向传播具有两个阶段:消息传递阶段、readout
阶段:消息传递阶段执行
$ T $ 个时间step
,它通过消息函数message function
$ M_t(\cdot) $ 和节点更新函数update function
$ U_t(\cdot) $ 来定义。在消息传递阶段,节点
$ v $ 的隐状态 $ \mathbf{\vec h}_v^{(t+1)} $ 是基于消息 $ \mathbf{\vec m}_v^{(t+1)} $ 来更新的:其中
$ \mathcal N_v $ 为节点 $ v $ 的邻域。readout
阶段根据所有节点在 $ T $ 时刻的状态来计算整个图的embedding
向量 $ \hat{\mathbf{\vec y}} $ :其中
$ R(\cdot) $ 为readout
函数readout function
。 $ R(\cdot) $ 函数对节点的状态集合进行操作,并且必须满足对节点集合的排列不变性permutation invariant
从而使得MPNN
对图的同构不变性graph isomorphism invariant
。
注意:你也可以在
MPNN
中通过引入边的状态向量 $ \mathbf{\vec h}_{e_{v,u}}^{(t)} $ 来学习边特征,并采取类似的更新方式:消息函数
$ M_t(\cdot) $ 、节点更新函数 $ U_t(\cdot) $ 、readout
函数 $ R (\cdot) $ 都是待学习的可微函数。接下来我们通过给定不同的 $ M_t(\cdot),U_t(\cdot),R(\cdot) $ 来定义已有的一些模型。《Convolutional Networks for Learning Molecular Fingerprints》
:消息函数
$ M_t\left(\mathbf{\vec h}_v^{(t)} , \mathbf{\vec h}_u^{(t)},\mathbf{\vec e}_{v,u}\right) =\left[\mathbf{\vec h}_u^{(t)}||\mathbf{\vec e}_{v,u}\right] $ ,其中 $ [\cdot||\cdot] $ 为向量拼接。节点更新函数
$ U_t\left(\mathbf{\vec h}_v^{(t)},\mathbf{\vec m}_v^{(t+1)}\right)=\sigma\left(\mathbf M^{(t)}_{\text{deg(v)}}\mathbf{\vec m}_v^{(t+1)}\right) $ ,其中: $ \mathbf M^{(t)} $ 为 $ t $ 时刻待学习的映射矩阵,下标 $ \text{deg}(v) $ 表示节点 $ v $ 的degree
,并且不同的degree
使用不同的映射矩阵。 $ \sigma(\cdot) $ 为sigmoid
函数。
Readout
函数 $ R(\cdot) $ 通过skip connection
连接所有节点的所有历史状态 $ \mathbf{\vec h}_v^{(t)} $ ,并且等价于:其中
$ f(\cdot) $ 为一个神经网络, $ \mathbf W^{(t)} $ 为待学习的参数。
这种消息传递方案可能是有问题的,因为得到的消息向量
$ \mathbf{\vec m}_v^{(t+1)}= \left[\sum_{u\in \mathcal N_v}\mathbf{\vec h}_u^{(t)}||\sum_{u\in \mathcal N_v}\mathbf{\vec e}_{v,u}\right] $ 分别在节点和边上进行求和。因此,这种消息传递方案无法识别节点状态和边状态之间的相关性。Gated Graph Neural Networks:GG-NN
:消息函数
$ M_t\left(\mathbf{\vec h}_v^{(t)} , \mathbf{\vec h}_u^{(t)},\mathbf{\vec e}_{v,u}\right) = \mathbf A_{e_{v,u}}\mathbf{\vec h}_u^{(t)} $ , 其中 $ \mathbf A_{e_{v,u}} $ 为待学习的矩阵,对每个edge label
$ e $ (即边的类型)学习一个矩阵。注意:模型假设边的label
是离散的。节点更新函数
$ U_t\left(\mathbf{\vec h}_v^{(t)},\mathbf{\vec m}_v^{(t+1)}\right)=\text{GRU}\left(\mathbf{\vec h}_v^{(t)},\mathbf{\vec m}_v^{(t+1)}\right) $ ,其中GRU
为Gated Recurrent Unit
。该工作使用了权重绑定
weight tying
,因此在每个时间步都使用相同的更新函数。即,它将每个节点的
$ t $ 个时间步视为一个序列。Readout
函数 $ R(\cdot)=\sum_{v\in \mathcal V} \sigma\left(f_i\left(\mathbf{\vec h}_v^{(T)},\mathbf{\vec h}_v^{(0)}\right)\right)\odot \left(f_j\left(\mathbf{\vec h}_v^{(T)}\right)\right) $ ,其中 $ f_i(\cdot),f_j(\cdot) $ 都是神经网络, $ \odot $ 为逐元素的乘积, $ \sigma(\cdot) $ 为sigmoid
函数。
Interaction Networks
:该工作既考虑了node-level
目标,也考虑了graph-level
目标。也考虑了在节点上施加的外部效应。- 消息函数
$ M_t\left(\mathbf{\vec h}_v^{(t)} , \mathbf{\vec h}_u^{(t)},\mathbf{\vec e}_{v,u}\right) =\left[\mathbf{\vec h}_v^{(t)}||\mathbf{\vec h}_u^{(t)}||\mathbf{\vec e}_{v,u}\right] $ ,其中 $ [\cdot||\cdot] $ 为向量拼接。 - 节点更新函数
$ U_t\left(\mathbf{\vec h}_v^{(t)},\mathbf{\vec m}_v^{(t+1)}\right)=g\left(\left[\mathbf{\vec h}_v^{(t)}||\mathbf{\vec f}_v^{(t)}||\mathbf{\vec m}_v^{(t+1)}\right]\right) $ ,其中 $ \mathbf{\vec f}_v^{(t)} $ 为 $ t $ 时刻对节点 $ v $ 施加某些外部效应的外部向量, $ g(\cdot) $ 为神经网络函数。 - 当进行
graph-level
输出时,Readout
函数 $ R(\cdot) = f\left(\sum_{v\in \mathcal G}\mathbf{\vec h}_v^{(T)}\right) $ ,其中 $ f(\cdot) $ 为神经网络函数。在原始论文中, $ T $ 仅仅为1
。
- 消息函数
Molecular Graph Convolutions
:该工作和MPNN
稍有不同,因为它在消息传递阶段更新了边的表示 $ \mathbf{\vec e}_{v,u}^{(t)} $ 。消息函数
$ M_t\left(\mathbf{\vec h}_v^{(t)} , \mathbf{\vec h}_u^{(t)},\mathbf{\vec e}_{v,u}^{(t)}\right) =\mathbf{\vec e}_{v,u}^{(t)} $ 。节点更新函数
$ U_t\left(\mathbf{\vec h}_v^{(t)},\mathbf{\vec m}_v^{(t+1)}\right)=\text{relu}\left[\mathbf W_1\left(\text{relu}\left(\mathbf W_0\mathbf{\vec h}_v^{(t)}\right)\right)||\mathbf{\vec m}_v^{(t+1)}\right] $ ,relu
为ReLU
非线性激活函数, $ \mathbf W_0,\mathbf W_1 $ 为待学习的权重矩阵。边更新函数:
其中
$ \mathbf W_2,\mathbf W_3,\mathbf W_4 $ 为待学习的权重矩阵。
Deep Tensor Neural Networks
:- 消息函数
$ M_t\left(\mathbf{\vec h}_v^{(t)} , \mathbf{\vec h}_u^{(t)},\mathbf{\vec e}_{v,u} \right) =\tanh\left(\mathbf W_1\left(\left(\mathbf W_2\mathbf{\vec h}_u^{(t)}+\mathbf{\vec b}_1\right)\odot\left(\mathbf W_3\mathbf{\vec e}_{v,u}+\mathbf{\vec b}_2\right)\right)\right) $ 。其中 $ \mathbf W_1,\mathbf W_2,\mathbf W_3 $ 为待学习的权重矩阵, $ \mathbf{\vec b}_1,\mathbf{\vec b}_2 $ 为待学习的bias
向量。 - 节点更新函数
$ U_t\left(\mathbf{\vec h}_v^{(t)},\mathbf{\vec m}_v^{(t+1)}\right)=\mathbf{\vec h}_v^{(t)}+\mathbf{\vec m}_v^{(t+1)} $ 。 Readout
函数 $ R(\cdot) = \sum_v \text{NN}\left(\mathbf{\vec h}_v^{(T)}\right) $ ,其中 $ \text{NN}(\cdot) $ 为单层神经网络。
- 消息函数
Laplacian Based Methods
,例如GCN
:消息函数
$ M_t\left(\mathbf{\vec h}_v^{(t)} , \mathbf{\vec h}_u^{(t)},\mathbf{\vec e}_{v,u} \right) = c_{v,u}\mathbf{\vec h}_u^{(t)} $ ,其中:其中
$ A_{v,u} $ 为邻接矩阵 $ \mathbf A $ 的项,deg(v)
为节点 $ v $ 的degree
。节点更新函数
$ U_t\left(\mathbf{\vec h}_v^{(t)},\mathbf{\vec m}_v^{(t+1)}\right)=\text{relu}\left(\mathbf W^{(t)}\mathbf{\vec m}_v^{(t+1)}\right) $ 。
将这些方法抽象为通用的
MPNN
的好处是:我们可以确定关键的实现细节,并可能达到这些模型的极限,从而指导我们进行未来的模型改进。所有这些方法的缺点之一是计算时间。最近的工作通过在每个
time step
仅在图的子集上传递消息,已经将GG-NN
架构应用到更大的图。这里我们也提出了一种可以改善计算成本的MPNN
修改。
28.2 MPNN 变体
我们基于
GG-NN
模型探索MPNN
,我们认为GG-NN
是一个很强的baseline
。我们聚焦于探索不同的消息函数、输出函数,从而找到适当的输入representation
以及正确调优的超参数。消息函数探索:
矩阵乘法作为消息函数:首先考察
GG-NN
中使用的消息函数,它定义为其中
$ \mathbf A_{e_{v,u}} $ 为待学习的矩阵,对每个edge label
$ e $ (即边的类型)学习一个矩阵。注意:模型假设边的label
是离散的。Edge Network
:为了支持向量值的edge
特征,我们使用以下消息函数:其中
$ \mathcal A(\mathbf{\vec e}_{v,u}) $ 是一个神经网络,它将每个edge
特征 $ \mathbf{\vec e}_{v,u} $ 映射到一个 $ \mathbb R^{d\times d} $ 矩阵。其中 $ d $ 表示内部隐状态的维度。Pair Message
:前面两种消息函数仅依赖于隐状态 $ \mathbf{\vec h}_u $ 和边特征 $ \mathbf{\vec e}_{v,u} $ ,而不依赖于隐状态 $ \mathbf{\vec h}_v $ 。理论上如果消息同时包含源节点和目标节点的信息,则网络可能更有效地传递消息。因此消息函数定义为:其中
$ f(\cdot) $ 为一个神经网络。
当我们将上述消息函数应用于有向图时,将使用两个独立的函数
$ M_t^{(\text{in})} $ 和 $ M_t^{(\text{out})} $ 。至于在特定的边 $ e_{v,u} $ 上应用哪一个,则取决于边的方向。虚拟节点 & 虚拟边:我们探索了两种方式来在图中添加虚拟元素,从而修改了消息传递的方式(使得消息传播得更广):
虚拟边:在未连接节点
pair
对之间添加虚拟边,这个边的类型是特殊类型。这可以实现为数据预处理步骤,并允许消息在传播阶段传播很长一段距离。虚拟节点:虚拟一个
master
节点,该节点以特殊的边类型来连接到图中的每个输入节点。此时
master
节点充当全局暂存空间,每个节点都在消息传递的每个step
中从master
读取信息、向master
写入信息。这允许信息在传播阶段传播很长的距离。我们允许
master
节点具有单独的节点维度 $ d_{\text{master}} $ ,也允许master
节点在内部状态更新函数中使用单独的权重矩阵。由于加入了
master
节点,理论上模型复杂度有所增加,并提升了模型型容量。
Readout
函数:我们尝试了两种Readout
函数。一种是在
GG-NN
中使用的Readout
函数:另一种是
Set2Set
模型,该模型专门为Set
输入而设计的,并且比简单地累加final node state
具有更强的表达能力。该模型首先将线性投影应用于每个元组
$ \left(\mathbf{\vec h}_v^{(T)},\mathbf{\vec x}_v\right) $ ,然后将一个set
的元组投影作为输入。然后,在经过 $ N $ 个计算step
之后,Set2Set
模型将产生graph-level embedding
$ \mathbf{\vec q}_t^* $ ,该embedding
对于set
的顺序具有不变性。我们将这个embedding
$ \mathbf{\vec q}_t^* $ 馈入一个神经网络从而产生输出。
Multiple Towers
:MPNN
的一个问题是可扩展性,特别是对于稠密图。消息传递阶段的每个step
需要 $ O(n^2d^2) $ 次浮点乘法。当 $ n $ 或者 $ d $ 较大时,其计算代价太大。为解决这个问题:我们将
$ d $ 维的节点embedding
$ \mathbf{\vec h}_v^{(t)} $ 拆分为 $ K $ 个维度为 $ d/k $ 的embedding
$ \left\{\mathbf{\vec h}_v^{(t,k)}\right\}_{k=1,\cdots,K} $ ,每个拆分代表图在某个隐空间下的一种embedding
。然后我们在每个隐空间
$ k $ 上独立地执行消息传递和节点更新,从而得到临时的embedding
$ \left\{\tilde{\mathbf{\vec h}}_v^{(t,k)}\right\} $ 。最后这
$ K $ 种embedding
结果通过以下方式混合:其中:
$ g(\cdot) $ 表示一个神经网络,并且 $ g(\cdot) $ 在所有节点上共享; $ || $ 表示向量拼接。
这种混合方式保留了节点的排列不变性
permutation invariant
,同时允许图的不同embedding
在传播阶段相互交流。这种方法是有利的,因为对于相同数量的参数数量,它能产生更大的假设空间,表达能力更强。并且时间复杂度更低。当消息函数是矩阵乘法时,某种
embedding
的传播step
花费 $ O(n^2(d/K)^2) $ 的时间,一共有 $ K $ 种embedding
,因此总的时间复杂度为 $ O(n^2d^2/K) $ 。另外还有一些额外的开销,因为有用于混合的神经网络。Multiple Towers
就是multi-head
的思想。
28.3 实验
数据集:
QM-9
分子数据集,包含130462
个分子。我们随机选择10000
个样本作为验证集、10000
个样本用于测试集、其它作为训练集。特征(如下表所示)和label
的含义参考原始论文。我们使用验证集进行早停和模型选择,并在测试集上报告
mean absolute error:MAE
。结论:
- 针对每个目标训练一个模型始终优于对所有
13
个目标进行联合训练。 - 最优的
MPNN
变体使用edge network
消息函数。 - 添加虚拟边、添加
master
节点、将graph-level
输出修改为Set2Set
输出对于13
个目标都有帮助。 Multiple Towers
不仅可以缩短训练时间,还可以提高泛化性能。
具体实验细节参考原始论文。
下图中,
enn-s2s
表示最好的MPNN
变体(使用edge network
消息函数、set2set
输出、以及在具有显式氢原子的图上操作),enn-s2s-ens5
表示对应的ensemble
。- 针对每个目标训练一个模型始终优于对所有
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论