数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
十、R-GCN [2017]
知识库
knowledge base
组织和存储事实知识factual knowledge
,支持包括问答question answering
和信息检索在内的多种应用。尽管在维护上投入了巨大的努力,即使是最大的知识库(如DBPedia, Wikidata, Yago
)仍然是不完整incomplete
的, 并且覆盖度coverage
的缺失会损害下游应用application
。预测知识库中的缺失信息是统计关系学习statistical relational learning: SRL
的主要关注点。遵从之前关于
SRL
的工作,我们假设知识库存储形式为三元组(subject, predicate, object)
的集合。例如,考虑三元组(Mikhail Baryshnikov, educated at, Vaganova Academy)
,我们将Baryshnikov
和Vaganova Academy
称作实体entity
,将educated at
称作关系relation
。此外,我们假设实体标有类型(如,Vaganova Academy
被标记为大学)。将知识库表示为有向的、带标签的multigraph
很方便,其中实体对应于节点,而三元组被labled edge
所编码。如下图所示,红色的标签以及边代表缺失信息,是需要我们推断的。。考虑两个基本的
SRL
任务:链接预测(缺失三元组missing triple
的恢复recovery
)、实体分类(为实体分配类型或离散属性)。在这两种情况下,许多缺失的信息都可以预期存在于通过邻域结构neighborhood structure
编码的图中。例如,知道Mikhail Baryshnikov
在Vaganova Academy
接受教育,这同时意味着Mikhail Baryshnikov
应该有标签person
、以及三元组(Mikhail Baryshnikov, lived in, Russia)
必须属于知识图谱knowledge graph
。遵循这个直觉,论文《Modeling Relational Data with Graph Convolutional Networks》
为关系图relational graph
中的实体开发了一个编码器模型,并将其应用于这两个任务。论文的实体分类模型与
GCN
类似,并在图中的每个节点处使用softmax
分类器。分类器采用relational graph convolutional network: R-GCN
提供的node representation
来预测label
。模型是通过优化交叉熵损失来学习的。论文的链接预测模型可以被视为一个自编码器
autoencoder
,它由一个encoder
和一个decoder
组成,其中:encoder
:一个R-GCN
,它用于产生实体的latent feature representation
。decoder
:一个张量分解模型,它利用这些实体的representation
来预测edge label
。尽管原则上任何类型的因子分解模型(或者任何评分函数)都可以作为解码器,但是这里作者使用最简单、最有效的因子分解方法:DistMult
。
作者观察到,论文的方法在标准
benchmark
上取得了有竞争力的结果,优于直接的因子分解模型(如普通的DistMult
)。当我们考虑更具挑战性的FB15k-237
数据集时,这种改进尤其大。这些结果表明:在R-GCN
中对邻域进行显式建模有利于恢复知识库中的missing fact
。论文的贡献如下:
- 首先,据作者所知,这是第一个证明
GCN
框架可以应用于建模关系数据relational data
(尤其是链接预测和实体分类任务)的人。 - 其次,作者介绍了参数共享和强制稀疏约束
enforce sparsity constraint
的技术,并使用它们来将R-GCN
应用于具有大量关系的multigraph
。 - 最后,作者展示了分解模型(以
DistMult
为例)的性能可以通过使用编码器模型来显著提高,其中该编码器在关系图relational graph
中执行多个信息传播step
。
相关工作:
关系建模:我们用于链接预测的
encoder-decoder
方法依赖于解码器中的DistMult
,这是RESCAL
分解的一种特殊且更简单的情况,在multi-relational knowledge base
的背景下比原始的RESCAL
更高效。人们在
SRL
的背景下已经提出和研究了许多替代的分解模型,包括线性分解模型和非线性分解模型,其中许多方法可以被视为经典的张量分解方法(如CP
或Tucker
)的修改或特殊情况。对于张量分解模型的全面综述,推荐阅读论文《Tensor decompositions and applications》
。合并实体之间的
path
到知识库中最近受到了相当大的关注。我们可以将先前的工作分为三个方向:- 创建辅助三元组
auxiliary triple
的方法,然后该方法将辅助三元组添加到分解模型的目标函数中。 - 在预测
edge
时使用path
(或walk
)作为特征的方法。 - 同时采用这两个方法。
第一个方向在很大程度上与我们的方向正交,因为我们也预期通过向我们的损失函数中添加类似的项来改善(即,扩展我们的解码器)。
第二个方向更具有可比性,
R-GCN
为这些基于path
的模型提供了一种计算成本更低的替代方案。直接比较有些复杂,因为path-based
方法使用不同的数据集(如,来自知识库的walk
的sub-sampled
子集)。- 创建辅助三元组
graph
上的神经网络:我们的R-GCN
编码器模型与graph
上神经网络领域的许多工作密切相关。R-GCN
编码器的主要动机是:对先前的GCN
工作的适配,使其适用于大规模和高度multi-relational
的数据(这是真实世界知识库的特点)。该领域的早期工作包括
《The graph neural network model》
的GNN
。人们后续对原始GNN
提出了许多扩展,最值得注意的是《Gated graph sequence neural networks》
和《Column networks for collective classification》
,它们都利用了门控机制来促进优化过程。R-GCN
可以进一步被视为消息传递神经网络(《Neural message passing for quantum chemistry》
)的一个子集,基于可微的消息传递解释。其中,消息传递神经网络包含许多先前的、用于图的神经网络,包括GCN
。
10.1 模型
- 定义一个有向
directed
、带标签labeled
的multi-graph
为 $ G=(V,E,\mathcal R) $ ,其中节点集合 $ V=\{v_1,v_2,\cdots,v_n\} $ 代表实体,带标签的边 $ (v_i,r,v_j)\in E $ 表示关系relation
,其中 $ r\in \mathcal R $ 代表关系类型。
10.1.1 R-GCN
我们的模型主要受到
GCN
所启发,并将基于局部图邻域local graph neighborhood
的GCN
扩展到大规模的关系数据。GCN
相关的方法(如图神经网络)可以理解为简单的、可微的消息传递框架:其中:
$ \mathbf{\vec h}_i^{(l)}\in \mathbb R^{d_l} $ 为节点 $ v_i $ 在神经网络第 $ l $ 层的隐状态, $ d_l $ 为对应的维度。 $ \mathcal M_i $ 为节点 $ v_i $ 的传入消息incoming message
的集合,它通常等于传入边incoming edge
的集合(即每条边代表一条消息)。- 输入的消息按照
$ g_m(\cdot,\cdot) $ 的形式聚合。 $ g_m(\cdot,\cdot) $ 通常选择为message-specific
的、类似于神经网络的函数或者仅仅是线性变换 $ g_m(\mathbf{\vec h}_i,\mathbf{\vec h}_j) = \mathbf W \mathbf{\vec h}_j $ 。 $ \sigma(\cdot) $ 为激活函数。
事实证明,这类变换非常有效地从局部的、结构化邻域中累积和编码特征,并在诸如图形分类、图半监督学习领域带来显著改进。
受此类架构的影响,我们在
relational multi-graph
中定义了以下简单的消息传播模型:其中:
$ \mathcal N_i^r $ 表示节点 $ v_i $ 在关系类型 $ r $ 下的邻居集合。这里采用单个
representation
$ \mathbf{\vec h}_i^{(l+1)} $ 来聚合所有类型的关系。 $ c_{i,r} $ 为一个problem-specific
正则化常数。它可以从数据中学习,也可以预先选择,如 $ c_{i,r} = |\mathcal N_i^r| $ 。 $ c_{i,r} $ 可以通过attention
机制来学习。为了确保可以直接通过节点
$ v_i $ 的第 $ l $ 层向第 $ l+1 $ 层传递消息,我们在模型中添加了一个特殊关系类型的自连接(即 $ \mathbf W_0^{(l)} \mathbf{\vec h}_i^{(l)} $ 项),即skip-connection
。这里
$ \mathbf{\vec h}_i^{(0)} = \mathbf{\vec x}_i $ 为节点的特征向量。如果节点没有特征向量,那么可以使用节点的one-hot
编码(不需要引入embedding layer
,因为这种情况下图神经网络的第一层就是embedding layer
)。
直观来看,上式累加了相邻节点的特征向量并进行归一化。与常规的
GCN
不同,这里我们引入特定于具体关系 $ r $ 的变换 $ \mathbf W_r^{(l)} $ ,即取决于edge
的类型和方向。- 也可以选择更灵活的函数来替代这里简单的线性变换,如多层神经网络(但是计算代价会更高)。我们把它留待未来的工作。
- 上式在每个节点的每一层
layer
执行,实践中通常采用稀疏矩阵乘法来有效实现,从而避免对邻域进行显式求和。 - 可以堆叠多个层,从而允许跨多个关系链的依赖性。
我们将这个图编码器模型称作关系图卷积网络
R-GCN
,R-GCN
模型中单个节点的更新计算图如下所示。红色节点为待更新的节点,蓝色节点为邻域节点。我们首先收集来自不同类型的相邻节点以及自身的消息,对每种类型的消息在变换之后归一化求和得到绿色的
representation
。最后将不同类型的representation
相加并通过激活函数,从而得到节点更新后的representation
。可以在整个图上共享参数,从而并行地计算每个节点的更新。
整个
R-GCN
模型就是堆叠大量的这种层,其中上一层的输出作为下一层的输入。如果实体没有特征,则可以将每个节点的one-hot
作为第一层的输入。
10.1.2 正则化
如果关系类型数量非常庞大,则
R-GCN
模型的参数数量爆炸性增长。实际上,这很容易导致模型对稀疏关系的过拟合,并且模型非常庞大。为解决该问题,我们引入两种不同的方法来正则化
R-GCN
:basis-decomposition
基分解,以及block-diagonal-decomposition
块对角分解。basis-decomposition
:每个权重 $ \mathbf W_r^{(l)}\in \mathbb R^{d_{l+1}\times d_l} $ 定义为:其中
$ \mathbf V_b^{(l)}\in \mathbb R^{d_{l+1}\times d_l}, b=1,2,\cdots,B $ 为一组基变换矩阵, $ \mathbf W_r^{(l)} $ 为这些基变换矩阵的线性组合,线性组合系数为 $ a_{r,b}^{(l)} $ 。这里
$ b\ll r $ ,因此可以显著降低参数规模。block-diagonal-decomposition
:令 $ \mathbf W_r^{(l)} $ 为一组低维矩阵的直接拼接:其中
$ \mathbf W_r^{(l)} $ 为分块对角矩阵, $ \mathbf Q_{b,r}^{(l)}\in \mathbb R^{\frac{d_{l+1}}{B}\times \frac{d_l}{B}} $ 。
基分解可以视为不同关系类型之间共享权重的一种方式;块对角分解可以视为每种关系类型权重矩阵的稀疏性约束。块分解结构认为:可以将潜在特征分组,使得组内的特征相比组外的特征更为紧密地耦合。
这两种分解都减少了高度
multi-relational
的数据(如知识库)所需要的参数数量。同时,我们期望基分解能够缓解稀疏关系的过拟合,因为稀疏关系和非稀疏关系共享基变换矩阵。然后,整个
R-GCN
模型堆叠 $ L $ 层,其中前一层的输出是下一层的输入。如果不存在节点特征,则可以将节点的one-hot
编码作为模型的输入。虽然我们在这项工作中仅考虑了这种无特征
featureless
的方法,但是我们注意到GCN
的工作表明:这类模型可以使用预定义的特征向量(如,节点的描述文本的bag-of-words
)。
10.1.3 实体分类
在节点分类任务中,我们将
R-GCN
最后一层(假设有 $ L $ 层)的输出接入一个softmax
层。我们最小化所有标记节点的交叉熵(忽略所有未标记节点):其中:
$ V_y $ 为标记节点的集合。 $ h_{i,k}^{(L)} $ 为节点 $ v_i $ 在第 $ L $ 层输出的 $ \mathbf{\vec h}_i^{(L)} $ 的第 $ k $ 项。 $ t_{i,k} $ 为节点 $ v_i $ 的标签向量 $ \mathbf{\vec t}_i $ 的第 $ k $ 项。
定义好目标函数之后,我们使用随机梯度下降来训练模型。
- 虽然我们在目标函数中仅使用了标记节点,但是这并不意味着算法未使用非标记节点。因为在计算
$ \mathbf{\vec h}_i^{(L)} $ 的过程中我们利用了全部节点(包括非标记节点),因此充分利用了图结构信息。 - 此外,我们还可以在目标函数中显式添加
LINE
算法之类的非监督损失,从而迫使相邻的节点具有相似的embedding
。
10.1.4 链接预测
在链接预测任务中,我们的目标是给定可能的链接
$ (s,r,o) $ ,评估其存在链接的概率 $ f(s,r,o) $ 从而确定它是否有可能属于边集 $ E $ 。普通的链接预测任务需要只需要预测二元组
$ (v_1,v_2) $ 是否属于边集,而这里预测的是三元组(包含 $ r $ 的信息)。这是通过为每种类型的关系 $ r $ 引入一个对角矩阵 $ \mathbf R_r $ 来解决的。为解决该问题,我们引入一个图自编码器模型,该模型由一个节点编码器和一个评分函数(解码器)组成。
- 编码器将每个实体
$ v_i\in V $ 编码到一个实值向量 $ \mathbf{\vec v}_i\in \mathbb R^d $ 。 - 解码器根据节点的
representation
来重建图的边。换句话说,它通过一个评分函数 $ f $ 来对三元组(subject, relation, object)
打分: $ f: \mathbb R^d\times \mathcal R \times \mathbb R^d \rightarrow \mathbb R $ 。
可以在此框架下解释大多数现有的链接预测方法,但是我们工作的关键区别在于编码器。之前大多数方法直接在训练中优化每个节点
$ v_i\in V $ 的representation
向量 $ \mathbf{\vec v}_i $ ,而这里我们通过R-GCN
编码器来学到 $ \mathbf{\vec v}_i = \mathbf{\vec h}_i^{(L)} $ 。整体架构如下图所示。其中:
- 图
(a)
表示节点分类的R-GCN
模型,每个节点具有一个损失函数。 - 图
b
表示链接预测模型,包含R-GCN
编码器,以及DistMult
作为解码器,每条边具有一个损失函数。
- 编码器将每个实体
在链接预测任务中,我们使用
DistMult
因子分解作为解码器(评分函数),该方法独立地应用于标准链接预测baseline
时表现良好。在
DistMult
方法中,每个关系 $ r $ 关联一个对角矩阵 $ \mathbf R_r=\text{diag}(R_{r,1},\cdots,R_{r,d})\in \mathbb R^{d\times d} $ ,三元组 $ (s,r,o) $ 的评分为:和之前的矩阵分解工作一样,我们使用负样本来训练模型。对于每个观察到的“正边”,我们随机采样
$ \omega $ 条“负边”。对于每个“正边” 代表的三元组(subject, predicate, object)
,我们通过随机选择不同的subject
或者不同的object
来采样。我们选择交叉熵作为损失函数,目标是最大化“正边”概率、最小化“负边”概率:
其中:
$ \mathcal T $ 为所有可能的三元组(它是边集合 $ E $ 的超集)。 $ y $ 为指示器: $ y=1 $ 表示“正边”, $ y=0 $ 表示 “负边”。 $ \phi(\cdot) $ 为逻辑回归函数。
10.2 实验
10.2.1 实体分类
数据集:我们评估了四个数据集,它们以
Resource Description Framework: RDF
格式来描述。数据集中的关系不一定要编码为有向的subject-object
关系,也可以编码为给定实体之间存在或者不存在某个指定的属性。在每个数据集中,要分类的目标是一组实体的属性。我们删除了用于创建
label
的信息,如:AIFB
的雇员和从属关系、MUTAG
的is Mutagenic
关系、BGS
的hasLithogenesis
关系、AM
的objectCategory
和material
关系。数据集的统计信息见下表,其中
Labeled
表示那些带标签的、用于分类的节点,它是所有节点的子集。我们采用
《A collection of benchmark datasets for systematic evaluations of machine learning on the semantic web》
的benchmark
训练集、测试集拆分的方式,并在训练集的基础上继续拆分20%
样本作为验证集从而进行超参数调优。Baseline
方法:我们对比了最近的state-of-the-art
方法:RDF2VEC embedding
、Weisfeiler-Lehman kernel: WL
、人工设计的特征提取器Feat
。Feat
根据每个节点的入度in-degree
、出度out-degree
来拼接每个节点的特征向量,即feature-based
方法。RDF2VEC
在图上执行随机游走,然后基于SkipGram
模型来从随机游走序列中学习节点embedding
,然后该embedding
用于下游的分类任务。
配置:
- 我们的
R-GCN
模型采用两层隐层,隐层维度为16
维(AM
数据集的隐层维度为10
),并采用基分解的正则化方式。 - 我们使用
Adam
优化器训练50
个epoch
,学习率为0.01
。 - 最后,我们选择归一化常数为
$ c_{i,r}= |\mathcal N_i^r| $ 。 - 所有实体分类实验均在具有
64GB
内存的CPU
节点上运行。
- 我们的
评估指标:测试集的
accuracy
。实验效果如下表所示,结论:我们的模型在
AIFB
和AM
上取得最好的效果,在MUTAG
和BGS
数据集上效果较差。为了探究
R-GCN
模型为什么在MUTAG
和BGS
数据集上效果较差,我们深入洞察了这些数据集的性质。MUTAG
是分子图的数据集,后来被转换为RDF
格式,图中的关系要么表示原子键、要么表示某个属性是否存在。BGS
是具有分层特征描述hierarchical feature description
的岩石rock
的类型,这些描述类似地转换为RDF
格式,图中的关系编码了特定属性是否存在、或者属性的层级关系。
MUTAG
和BGS
中的标记节点仅仅通过编码了某种特征的high-degree
的中心节点所连接。我们推测:采用固定的归一化常数对于degree
很高的节点可能会成为问题,这导致了我们的模型在MUTAG/BGS
数据集上效果不佳。克服该问题的一种潜在解决方案是:引入一种注意力机制
$ a_{i,j,r} $ 来代替归一化常数 $ 1/c_{i,r} $ ,其中满足 $ \sum_{j,r} a_{i,j,r} = 1 $ 。我们认为这是未来研究的方向。
10.2.2 链接预测
数据集:链接预测任务通常在
FB15k
(关系数据库Freebase
的子集)和WN18
(WordNet
的子集)上评估。但是在《Observed versus latent features for knowledge base and text inference》
中,这两个数据集都观察到严重的缺陷:训练集中的三元组 $ t=(e_1,r,e_2) $ ,在测试集中出现了它的逆三元组 $ t^\prime = (e_2,r^{-1},e_1) $ 。这使得大部分链接预测任务退化为记忆这些三元组。因此,即使是非常简单的基准方法LinkFeak
,其效果都很大程度上优于现有的方法。LinkFeak
仅仅是将观察到的关系作为特征向量(该特征向量非常稀疏)作为输入,然后采用线性分类器进行分类。为解决该问题,
《Observed versus latent features for knowledge base and text inference》
提出了一个简化的数据集FB15k-237
,它删除了所有这些逆三元组。因此我们选择FB15k-237
作为我们的主要评估数据集。由于FB15k
和WN18
仍被广泛使用,因此我们也包含这些数据集的结果。baseline
方法:DistMult
:对每个节点直接优化embedding
,而不是R-GCN
编码器。LinkFeat
:《Observed versus latent features for knowledge base and text inference》
提出的简单的基于邻域的方法。ComplEx
:将DistMult
泛化为复数域来提升对非对称关系的建模。HoIE
:利用circular correlation
代替了vector-matrix
的乘积。
最后,我们还包含了两种经典算法的比较:
CP
(《The expression of a tensor or a polyadic as a sum of products》
)和TransE
(《Translating embeddings for modeling multi-relational data》
)。我们使用两种常用的评估指标:
mean reciprocal rank: MRR
、Hits at n: H@n
。我们报告了raw MRR, filtered MRR
,以及n=1,3,10
时的filtered Hits
。filtered MRR
指的是:对于排名差于n
,其排名倒数置为零。配置:
我们通过验证集来选择
R-GCN
的超参数。我们发现归一化常数设定为
$ c_{i,r} = c_i = \sum_r|\mathcal N_i^r| $ 效果最好,即:考虑所有关系的归一化效果最佳。对于
FB15k
和WN18
,我们使用具有两个基矩阵的基分解正则化,以及使用200
维的单层编码器。对于
FB15k-237
,我们发现块对角分解正则化的效果最好,block
的大小为5 x 5
,同时我们使用500
维的两层编码器。我们对编码器执行
dropout
正则化,dropout
位置在normalization
之前,dropout
比例为:对于self-loop
为0.2
,对于其它边为0.4
。使用dropout
正则化使得我们的训练目标类似于降噪自编码器。我们对解码器执行
$ L_2 $ 正则化,正则化系数为0.01
。我们使用
Adam
优化器,学习率为0.01
。
对于
baseline
模型,我们从《Complex embeddings for simple link prediction》
中的参数(除了FB15k-237
数据集上的维度)。为了使得不同方法具有可比性,我们对不同方法采用相同的负样本采样比例(如
$ \omega=1 $ )。对所有的模型,我们使用
full-batch
优化。
我们给出了
FB15k
数据集上,R-GCN
和DistMult
在不同degree
上的表现。这里的degree
表示三元组中subject, object
节点的degree
均值。在FB15k
上,与R0GCN
模型的设计形成对比的是,逆关系inverse relation
形式的局部上下文local context
将主导dominate
分解的性能。可以发现:
R-GCN
在上下文丰富的节点上(即degree
较高)表现良好,而DistMult
在上下文稀疏的节点上表现较好。我们观察到这两种模型是互补的,因此可以将这两种模型的优势结合在一起,成为一个新的模型,我们称之为R-GCN+
:其中
$ \alpha = 0.4 $ 是根据FB15k
的验证集来选择的。我们给出不同模型在
FB15k
和WN18
上的表现,其中标记*
的结果来自于《Complex embeddings for simple link prediction》
, 标记**
的结果来自于《Holographic embeddings of knowledge graphs》
。R-GCN
和R-GCN+
均超越了DistMult
。但是,和LinkFeat
相比,R-GCN
和R-GCN+
方法均表现不佳。这突出了逆关系的贡献。有意思的是:在
FB15k
上R-GCN+
超越了CompIEx
,尽管R-GCN
并未显式建模非对称关系而CompIEx
显式建模了非对称关系。这表明:将
R-GCN
编码器与CompIEx
的解码器相结合,可能是未来工作的一个有前景的方向。解码器的选择和编码器的选择是相互独立的,原则上可以使用任何模型作为解码器,因此可以考虑使用ComIEx
作为解码器从而在R-GCN+
中显式建模非对称关系。
在
FB15k-237
数据集上逆关系被删除,此时LinkFeat
效果非常差。而我们的R-GCN
比DistMult
提升29.8%
,这显示了编码器模型的重要性。另外R-GCN/R-GCN+
优于所有其它方法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论