数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
三十、ProNE [2019]
在过去的几年里,
representation learning
为网络挖掘和分析提供了一种新的范式。representation learning
的目标是将网络结构投影到一个连续的embedding
空间,同时保持网络的某些属性。广泛的研究表明,学到的embedding
可以使得众多的数据挖掘任务受益。network embedding
的最新进展大致可以分为三类:基于矩阵分解的方法,如SocDim, GraRep, HOPE, NetMF
;基于SkipGram
的模型,如DeepWalk, LINE, node2vec
;基于图神经网络graph neural network: GNN
的方法,如Graph Convolution, GraphSage, Graph Attention
。通常,前两种方法预训练的embedding
被输入到下游任务的学习模型中。因此,高效地生成有效的network embedding
从而服务于大型网络application
至关重要。然而,大多数现有模型都聚焦于提高embedding
的效果effectiveness
,使得模型的效率efficiency
和可扩展性scalability
受到限制。例如,在基于分解的模型中,GraRep
的时间复杂度为 $ O(n^3) $ ,其中 $ n $ 为网络中的节点数量,这使得在大型网络中的计算成本太高。在基于SkipGram
的模型中,当使用默认超参数时,在现代服务器上使用20
个线程来学习一亿个节点、五亿条边的网络的embedding
,LINE
将花费数周时间,DeepWalk/node2vec
将花费数月时间。为了解决当前工作的效率和可扩展性的限制,论文
《ProNE: Fast and Scalable Network Representation Learning》
提出了一种高效的、且可扩展的network embedding
算法ProNE
。ProNE
的总体思想是:首先以有效的方式初始化network embedding
,然后增强这些embedding
的表达能力。受大多数真实网络的长尾分布及其产生的网络稀疏性network sparsity
的启发,第一步是通过将network embedding
形式化为稀疏矩阵分解来实现。第二步是利用高阶Cheeger
不等式对初始化的embedding
进行谱域传播,目标是捕获网络的局部平滑localized smoothing
信息和全局聚类global clustering
信息。这种设计使得
ProNE
成为一个速度极快的embedding
模型,同时保持效果上的优势。论文在五个真实世界网络和一组随机网络上进行了实验。大量实验表明,单线程ProNE
模型要比具有20
个线程的、流行的network embedding benchmark
(包括DeepWalk, LINE, node2vec
)快大约10 ~ 400
倍,如下图所示。论文的可扩展性分析表明,ProNE
的时间成本与network volume
和network density
呈线性相关,使得ProNE
可以扩展到数十亿规模的网络。事实上,通过仅使用一个线程,ProNE
只需要29
个小时来学习上述一亿个节点的网络的embedding
。注意,ProNE
也很容易并行化。除了效率和可扩展性优势之外,
ProNE
在多标签节点分类任务的所有数据集中也始终优于所有baseline
。更重要的是,ProNE
中的第二步(即,谱域传播spectral propagation
)是增强network embedding
的通用框架。通过将DeepWalk, LINE, node2vec, GraRep, HOPE
生成的embedding
作为输入,论文的谱域传播策略在一秒钟内为所有这些embedding
进行了增强,并带来了平均+10%
的相对提升。这篇论文的基本思想是:首先训练一个
initial embedding
,然后通过消息传递机制在network
上传播这个initial embedding
从而refine
。它复用了标签传播的思想,并没有太大的创新。至于initial embedding
方法可以有多种选择,不一定必须采用论文中提到的方法。相关工作:最近出现的
network embedding
很大程度上是由SkipGram
在自然语言和网络挖掘中的应用所引发的。network embedding
的历史可以追溯到谱聚类spectral clustering
和社交维度学习social dimension learning
。在network embedding
的发展过程中,大多数方法旨在隐式地或显式地建模节点之间分布式distributional
的相似性。受
word2vec
模型的启发,人们已经提出了一系列基于SkipGram
的embedding
模型,用于将网络结构编码为连续空间,如DeepWalk, LINE, node2vec
。最近的一项研究《Neural word embedding as implicit matrix factorization》
表明,基于SkipGram
的network embedding
可以理解为隐式矩阵分解。此外,受到该研究的启发,《Network embedding as matrix factorization: Unifying deepwalk, line, pte, and node2vec》
提出了NetMF
模型来执行显式矩阵分解从而学习network embedding
。NetMF
与我们模型的区别在于:NetMF
要分解的矩阵是稠密矩阵,其构造和分解涉及到 $ O(n^3) $ 时间复杂度的计算( $ n $ 为网络节点数量),而我们的ProNE
模型将network embedding
形式化为 $ O(|\mathcal E|) $ 的稀疏矩阵分解( $ |\mathcal E| $ 为网络中边的数量)。其它一些近期的、基于矩阵分解的
network embedding
模型包括GraRep
和HOPE
。谱域的network emebdding
与谱域降维方法有关,例如Isomap
、Laplacian Eigenmap
、spectral clustering
。这些基于矩阵分解的方法通常需要昂贵的计算、以及过多的内存消耗,因为它们的时间复杂度和空间复杂度都很高。另一个重要的工作方向是将图谱
graph spectral
推广到监督的graph learning
中,如图卷积网络graph convolution network: GCN
。在GCN
中,卷积操作是在谱空间中定义的,参数化的filter
是通过反向传播来学习的。与它们不同的是,我们的ProNE
模型具有一个带通滤波器band-pass filter
(该滤波器的参数是人为设定的,因此不需要学习),该滤波器同时结合了空间局部平滑spatial locality smoothing
和全局聚类global clustering
两个特点。此外,ProNE
是一种无监督且任务无关的模型,旨在预训练通用的embedding
,而大多数GCN
是以辅助特征side feature
(例如由ProNE
学到的network embedding
)作为输入的监督学习。
30.1 模型
定义图
$ G=(\mathcal V,\mathcal E) $ ,其中 $ \mathcal V=\{v_1,\cdots,v_n\} $ 为所有节点集合, $ \mathcal E=\{e_{i,j}\} $ 为所有边的集合。定义 $ \mathbf A $ 为图 $ G $ 的邻接矩阵。定义度矩阵degree matrix
为对角矩阵 $ \mathbf D = \text{diag}(D_{i,i}) $ ,其中 $ D_{i,i} = \sum_j A_{i,j} $ 。这里我们仅考虑无向图(不考虑有向图),边可以是带权重的也可以是无权重的。给定网络
$ G=(\mathcal V,\mathcal E) $ ,network embedding
的目标是学习一个映射函数 $ f: \mathcal V\rightarrow \mathbb R^d,d\ll n $ ,从而将每个节点 $ v_i $ 映射成一个低维向量 $ \mathbf{\vec v}_i\in \mathbb R^d $ ,其中 $ \mathbf{\vec v}_i $ 捕获了网络结构信息 。广泛的研究表明,学到的node representation
可以使得各种下游的图挖掘任务受益。然而,目前的一个主要挑战是:大多数network embedding
模型处理大规模网络在计算上不可行。例如,即使使用20
个线程,DeepWalk
学习一个包含一亿节点的稀疏图的embedding
需要耗时几个月。我们提出的
ProNE
是一种用于大规模网络的embedding
的非常快速且可扩展的模型,它由两个步骤组成,如下图所示:- 首先
ProNE
将network embedding
建模为稀疏矩阵分解,从而获得节点的有效初始embedding
。 - 然后
ProNE
利用高阶Cheeger
不等式来调制modulate
谱域空间,并在调制后的谱域空间传播学到的embedding
,从而集成了局部平滑信息和全局聚类信息。
- 首先
30.1.1 稀疏矩阵分解
分布式假设
distributional hypothesis
启发了最近出现的word embedding
和network embedding
。这里我们展示了如何将基于分布式相似性distributional similarity-based
的network embedding
形式化为矩阵分解。network embedding
作为稀疏矩阵分解:通常我们利用结构上下文structural context
来建模节点相似性。我们建议利用最简单的结构,即edge
,来表示node-context
的pair
对。然后我们得到了node-context
集合 $ \mathcal D $ ,根据定义有 $ \mathcal D = \mathcal E $ 。公式化地,我们给定节点 $ v_i $ 的条件下,context
$ v_j $ 出现的概率为: $ \hat p_{i,j} = \sigma(\mathbf{\vec c}_j \cdot \mathbf{\vec v}_i) $ 。其中: $ \sigma(\cdot) $ 为sigmoid
函数, $ \mathbf{\vec c}_j $ 为节点 $ v_j $ 作为上下文时的context embedding
; $ \mathbf{\vec v}_i $ 为节点 $ v_i $ 的embedding
。这里我们的上下文只考虑直接相连的节点(即,随机游走序列中的上下文窗口大小为
1
)。考虑所有的边,则损失函数为
$ \mathcal L = -\sum_{(v_i,v_j)\in \mathcal D} \log \hat p_{i,j} $ 。考虑到不同节点的degree
不同,因此我们对损失函数进行加权:其中
$ p_{i,j} = A_{i,j}/ D_{i,i} $ 表示边 $ (v_i,v_j) $ 的权重占 $ v_i $ 所有边的权重的比例,比例越大则 $ \hat p_{i,j} $ 的预估越重要。上述目标函数存在一个平凡解:对于任意
$ v_i,v_j $ 都有 $ \hat p_{i,j} = 1 $ 。即,对于任意一对节点 $ (v_i,v_j) $ ,模型预估它们之间存在边。这一平凡解的本质原因是: $ \mathcal L $ 只有“正边”、没有“负边”(即不存在的链接)。因此我们将损失函数修改为:最大化“正边”概率,且最小化“负边”概率。假设负采样比例为
$ \lambda $ ,采样到 $ v_j $ 作为 ”负边“ 上下文的概率为 $ P_{\mathcal D,j} $ ,则有:其中
$ \mathcal P_{\mathcal D,j} $ 定义为: $ \alpha = 1.0 $ 或者 $ 0.5 $ 。根据偏导数为零
$ \frac{\partial \mathcal L}{\partial (\mathbf{\vec c}_j \cdot \mathbf{\vec v}_{i })} = 0 $ ,我们得到:定义邻近性矩阵
proximity matrix
$ \mathbf M $ 为:因此基于分布式相似性的
network embedding
的目标函数等价于对 $ \mathbf M $ 进行矩阵分解。我们使用谱方法,截断的奇异值分解truncated Singular Value Decomposition:tSVD
,来求解,即:其中:
$ \Sigma_d $ 为top d
个奇异值组成的对角矩阵; $ \mathbf U_d $ 和 $ \mathbf V_d $ 分别为奇异值分解中对应的分解矩阵的前d
列。最终
$ \mathbf U_d \Sigma_d^{1/2} $ 为embedding
矩阵,第 $ i $ 行表示节点 $ v_i $ 的embedding
向量。可以看到,由于
$ \mathbf M $ 仅在“正边”上非零,从而使得 $ \mathbf M $ 为一个稀疏矩阵。用于快速
embedding
的稀疏化随机tSVD
:虽然可以通过矩阵分解来求解network embedding
,但是在大规模矩阵上执行tSVD
的时间复杂度、空间复杂度仍然非常高。为了实现快速的network emebdding
,我们建议使用随机tSVD
。根据随机矩阵理论,该方法可以大大加快tSVD
的速度,并具有理论的近似保证。- 首先寻找一个矩阵
$ \mathbf Q\in \mathbb R^{n\times d} $ ,它包含 $ d $ 个正交列,使得 $ \mathbf M\simeq \mathbf Q\mathbf Q^\top \mathbf M $ 。 - 假设找到这样的矩阵
$ \mathbf Q $ ,定义 $ \mathbf H = \mathbf Q^\top\mathbf M\in \mathbb R^{d\times n} $ ,它是一个小得多的矩阵,并可以通过标准的SVD
进行高效地分解。 - 假设已经得到分解
$ \mathbf H = \mathbf S_d\Sigma_d\mathbf V_d^\top $ , 则最终有 $ \mathbf M\simeq \mathbf Q\mathbf Q^\top \mathbf M =( \mathbf Q\mathbf S_d)\Sigma_d\mathbf V_d^\top $ 。因此最终节点的embedding
矩阵为 $ ( \mathbf Q\mathbf S_d)\Sigma_d^{1/2} $ ,其中 $ \mathbf S_d\in \mathbb R^{d\times d} $ 。
随机矩阵理论使我们能够有效地找到
$ \mathbf Q $ :- 首先生成一个
$ n\times d $ 维的高斯随机矩阵 $ \mathbf\Omega\in \mathbb R^{n\times d } $ ,其中 $ \Omega_{i,j}\in \mathcal N(0,\frac 1d) $ 。 - 然后定义矩阵
$ \mathbf Y = \mathbf M \mathbf\Omega $ ,并对 $ \mathbf Y $ 进行QR
分解: $ \mathbf Y = \mathbf Q\mathbf R $ 。这个矩阵 $ \mathbf Q\in \mathbb R^{n\times d} $ 就是我们希望找到的。
已有工作证明,基于
SkipGram
的network embedding
模型等价于隐式的矩阵分解,但是分解的是一个稠密矩阵,其计算复杂度为 $ O(n^3) $ 。而我们这里涉及的是一个稀疏矩阵分解,计算复杂度为 $ O(|\mathcal E|) $ 。- 首先寻找一个矩阵
30.1.2 embedding 谱域传播
与
DeepWalk,LINE
等其它流行方法类似,通过稀疏矩阵分解得到的embedding
仅捕获局部结构信息。为了进一步集成全局网络属性(如社区结构),我们提出在谱域中传播embedding
。注意,该策略是通用的,也可用于提升现有的embedding
模型。network embedding
与graph spectrum
和graph partition
的关联:高阶Cheeger
不等式表明,graph spectral
中的特征值与网络的空间局部平滑spatial locality smoothing
、全局聚类global clustering
密切相关。 我们首先介绍公式,然后展示如何帮助增强network embedding
。在图论中,归一化的图拉普拉斯矩阵定义为:
$ \mathbf L $ 可以分解为 $ \mathbf L = \mathbf U \Lambda \mathbf U^{-1} $ ,其中: $ \Lambda = \text{diag}(\lambda_1,\cdots,\lambda_n) $ , $ 0=\lambda_1\le \cdots\le \lambda_n $ 为 $ \mathbf L $ 的特征值。 $ \mathbf U $ 为特征向量组成的矩阵,第 $ i $ 列为 $ \lambda_i $ 对应的特征向量。
给定信号
$ \mathbf{\vec x} $ ,图上的傅里叶变换为: $ \hat{\mathbf{\vec x}} = \mathbf U^{-1} \mathbf{\vec x} $ ,图上的傅里叶逆变换为: $ \mathbf{\vec x}= \mathbf U \hat{\mathbf{\vec x}} $ 。因此图上的信号传播 $ \mathbf D^{-1}\mathbf A \mathbf{\vec x} $ 可以理解为:首先将 $ \mathbf{\vec x} $ 通过傅里叶变换转换到谱域,然后在谱域根据拉普拉斯矩阵的特征值进行缩放,最后把谱域缩放后的信号逆变换为空域。图上的信号传播
$ \mathbf D^{-1}\mathbf A \mathbf{\vec x} $ 其物理意义为:信号沿着边进行流动,每条边的流量为 $ \frac{A_{i,j}}{D_{i,i}} $ 。给定图
$ G $ 的一个划分 $ \mathcal S\sube \mathcal V $ ,我们通过定义Cheeger
常数来衡量图的划分效果:其中:
$ \mathcal E(\mathcal S) $ 为一个点在 $ \mathcal S $ 内、另一个点在 $ \mathcal S $ 外的边的集合, $ \text{vol}(S) $ 为节点集合 $ \mathcal S $ 中所有节点的degree
之和。Cheeger
常数的物理意义为:随机选择 $ \mathcal S $ 或者 $ \mathcal V-\mathcal S $ 中节点的一条边,这条边扩展到集合外的概率。给定图
$ G $ 的一个k-way
划分:定义
k
阶Cheeger
常数为 $ \rho_G(k) = \max\{C_{\mathcal S_i} \} $ ,它反映了将图划分为 $ k $ 个部分的效果,取值越小则说明划分得越好。高阶Cheeger
不等式给出了graph partition
和graph spectrum
之间的联系:可以看出:
无向图中连通分量的数量,等于拉普拉斯矩阵中取值为零的特征值数量。这可以通过设置
$ \lambda_k =0 $ 从而得到 $ \rho_G(k)=0 $ 来导出。小特征值通过将网络划分为几个大的部分,从而控制网络的全局聚类效果;大特征值通过将网络划分为很多小部分,从而控制网络的局部平滑效果。
这启发我们通过在划分后的(或者说调制后的)网络的谱域中传播
embedding
,从而将全局信息和局部信息集成到network embedding
中。
假设
node embedding
矩阵为 $ \mathbf R_d $ ,经过谱域空间传播后的embedding
为:其中:
$ \tilde{\mathbf L} = \mathbf U g(\Lambda) \mathbf U^{-1} $ 为通过函数 $ g $modulated
调制的拉普拉斯矩阵, $ g $ 称作谱域调制器spectral modulator
。 $ (\mathbf I - \tilde{\mathbf L}) $ 为调制后的网络。当 $ g $ 为恒等映射时,上式退化为 $ \mathbf I - \mathbf L = \mathbf D^{-1} \mathbf A $ 。
为同时考虑全局结构信息和局部结构信息,我们选择谱域调制器为:
其中
$ \mu $ 和 $ \theta $ 为参数。 $ g(\lambda) $ 可以被认为是带通滤波器,它将某个范围内的特征值通过,并衰减范围外的特征值。因此 $ \rho_G(k) $ 针对top
最大和top
最小的特征值进行衰减,分别导致放大局部网络信息和全局网络信息。调制的拉普拉斯矩阵为: $ \tilde{\mathbf L} = \mathbf U\text{diag}(g(\lambda_1),\cdots,g(\lambda_n)) \mathbf U^\top $ 。为什么选择这种结构的谱域调制器,作者并未说明原因。另外,是否可以考虑简单地邻域聚合方式来
refine embedding
。注意:
- 带通滤波器是通用的谱域网络调制器,也可以使用其它类型的滤波器。
- 可以利用截断的切比雪夫多项式来避免求解
$ \tilde{\mathbf L} $ 的显式特征值分解和傅里叶变换。 - 为了保持由稀疏
tSVD
实现的原始embedding
空间的正交性,我们再次在 $ \mathbf R_d $ 上应用SVD
。
算法复杂度:
- 对
$ \mathbf H $SVD
分解的算法复杂度为 $ O(n\times d^2) $ ,对 $ \mathbf Y $ 的QR
分解的算法复杂度为 $ O(n\times d^2) $ 。 - 由于
$ |\mathcal E|\ll n\times n $ ,因此 $ \mathbf M $ 是一个稀疏矩阵,上述对 $ \mathbf M $ 的乘法的计算复杂度为 $ O(|\mathcal E|) $ 。
因此第一步稀疏矩阵分解的算法复杂度为
$ O(n\times d^2 + |\mathcal E|) $ 。当使用切比雪夫多项式来近似 $ \tilde{\mathbf L} $ 后,第二步embedding
谱域传播的计算复杂度为 $ O(k\times |\mathcal E| + n\times d^2) $ 。总之,ProNE
的计算复杂度为 $ O(n\times d^2 + k\times |\mathcal E|) $ , $ k $ 为切比雪夫多项式的阶数。ProNE
的空间复杂度为 $ O(n\times d + |\mathcal E|) $ 。- 对
并行性:
ProNE
计算的主要时间消耗在稀疏矩阵乘法上,用单线程来处理足够高效,因此ProNE
主要是单线程的。另外,目前稀疏矩阵乘法的并行化已经取得了一些进展,我们预期将来可以通过多线程的稀疏矩阵乘法进一步提升ProNE
的训练效率。
30.2 实验
数据集:我们使用五个广泛使用的数据集来证明
ProNE
的有效性,另外我们还使用一组人工合成网络来评估其效率和可扩展性。BlogCatalog
数据集:一个社交博客网络,其中博主的兴趣作为label
。Wiki
数据集:Wikipedia dump
文件前一百万个字节中的单词共现网络,其中节点标签是单词的的词性tag
。PPI
数据集:一个PPI
网络的子集,其中节点标签是从基因组中提取的,代表生物学状态。DBLP
数据集:一个学术引文网络,节点代表作者,会议conference
为标签。YouTube
数据集:一个YouTube
用户之间的社交网络,其中节点标签代表基于所喜欢视频类型的用户分组。
baseline
方法:我们将ProNE
和流行的baseline
比较,其中包括基于SkipGram
的 方法(DeepWalk, LINE, node2vec
),以及基于矩阵分解的方法(GraRep, HOPE
)。我们并未考虑基于卷积的方法,因为大多数基于卷积的方法都是监督的或半监督的,这要求额外的标签信息。
配置:
- 为进行公平比较,所有方法的
embedding
维度为 $ d=128 $ 。对其它超参数,我们使用原始论文中的值。 - 对于
DeepWalk,node2vec
,我们选择窗口大小为10
,每个节点开始的随机游走序列的数量为10
, 随机游走序列长度为40
。 node2vec
中的参数 $ p,q $ 的搜索空间为{0.25,0.50,1,2,4}
。- 对于
LINE
,负采样系数为 $ k=5 $ 。总的样本量为 $ T=r\times t\times |\mathcal V| $ 。 - 对于
GraRep
,为公平起见,拼接的embedding
维度为 $ d=128 $ 。 - 对于
HOPE
, $ \beta $ 根据作者的代码来计算,并从(0,1)
之间搜索最佳的值。 - 对于
ProNE
,切比雪夫展开项的数量 $ k=10 $ , $ \mu = 0.1 $ , $ \theta = 0.5 $ 。
运行配置:在
Intel Xeno(R) CPU E5-4650(2.70GHz)
,以及1T RAM
的Red Hat server
上运行。- 为进行公平比较,所有方法的
评估方式:我们随机抽取不同比例的标记节点从而训练
liblinear
分类器,并将剩余的标记节点用于测试。我们重复训练和预测十次,报告平均的Micro-F1
。Macro-F1
的结果也类似,但是由于篇幅有限我们并未显示。我们根据
wall-clock
时间来评估算法效率,并通过多种规模的网络中的学习时间来分析ProNE
的可扩展性。效率:我们比较了不同方法的训练时间,并展示了
ProNE
的可扩展性,如下图所示(单位为秒)。我们仅给出最快的三个baseline
方法,因为矩阵分解的baseline
方法GraRep, HOPE
比它们要慢得多。注意:所有
baseline
都使用了20
个线程,而ProNE
仅使用单个线程。结论:单线程
ProNE
模型比20
线程的LINE, DeepWalk, node2vec
模型快10~400
倍,也远远超越了其它矩阵分解方法。可扩展性:我们通过人工合成网络来评估
ProNE
的可扩展性。首先我们生成节点degree
固定为10
的随机图,节点规模从1000
到1
亿。图
(a)
给出不同大小随机图上ProNE
的学习时间,这表明ProNE
的时间代价随着网络规模的增加而线性增加。我们在图上也标注出
ProNE
在五个真实数据集上的学习时间,其趋势也是和网络规模呈线性。另外,蓝色曲线表示ProNE
的稀疏矩阵分解sparse matrix factorization:SMF
的时间代价。图
(b)
给出了ProNE
在固定大小的1
万个节点上,且节点degree
从100
到1000
之间变化的随机图上的学习时间。可以看到:ProNE
的学习效率和网络密度线性相关。
结论:
ProNE
是一种可扩展的network embedding
方法,它可以处理大规模、稠密的网络。效果:我们在下表给出了不同模型预测的效果(给出了
Micro-F1
的均值和标准差)。除了ProNE
,我们还报告了ProNE
中由稀疏矩阵分解SMF
步骤生成的初始embedding
结果。另外对于YouTube
,node2vec
在五天内无法完成,而HOPE,GraRep
由于内存消耗太多而无法处理。结论:
ProNE
在五个数据集中始终比baseline
效果更好,这证明了其有效性。ProNE
中第一步使用的简单稀疏矩阵分解SMF
的效果与baseline
相比相差无几甚至更好。随着谱域传播技术的进一步结合,由于有效地建模了局部结构平滑信息和全局聚类信息,ProNE
在所有baseline
中产生了最佳性能。
用于
embedding
增强的谱域传播:最后我们将DeepWalk, LINE, node2vec, GraRep, HOPE
学到的embedding
输入到ProNE
的谱域传播步骤中。下图显示了Wiki
上的原始结果和增强结果(称作ProBaseline
),说明了Pro
版本对所有五个baseline
的显著改进。平均而言,我们的谱域传播策略可以为所有方法提供+10%
的相对提升,例如HOPE
的改善为25%
。另外,所有增强实验都在1
秒钟内完成。结论:
ProNE
的谱域传播是有效的,并且是改善network embedding
的通用且高效策略。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论