数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
十六、NetSMF [2019]
近年来
network embedding
为图和网络建模提供了革命性的范式。network embedding
的目标是自动学习网络中对象(例如顶点、边)的潜在representation
。重要的研究表明:潜在representation
能够捕获网络的结构特性,促进各种下游网络应用,例如顶点分类任务、链接预测任务。在
network embedding
发展过程中,DeepWalk, LINE, node2vec
模型通常被认为是评估network embedding
研究的强大基准方案。LINE
的优势在于它对大规模网络的可扩展性,因为它仅对一阶邻近性和二阶邻近性建模。也就是说,LINE
的embedding
没有对网络中的multi-hop
依赖。另一方面,DeepWalk
和node2vec
利用图上的随机游走和具有较大context size
的SkipGram
来对更远的节点(即全局结构)进行建模。因此,DeepWalk
和node2vec
处理大规模网络的计算成本更高。例如,使用默认参数设置的DeepWalk
需要几个月的时间来嵌入一个由6700
万顶点、8.95
亿条边组成的学术协作网络academic collaboration network
。而执行高阶随机游走的node2vec
模型比DeepWalk
需要更多时间来学习embedding
。最近的一项研究表明,
DeepWalk
和LINE
方法都可以看作是一个闭式closed-form
矩阵的隐式分解。在这个理论的基础上,该研究提出了NetMF
方法来显式分解这个矩阵,从而实现比DeepWalk
和LINE
更有效的embedding
。不幸的是,待分解的矩阵是一个 $ n\times n $ 的稠密矩阵,其中 $ n $ 为网络中的顶点数量,这使得直接构造和分解大规模网络的成本过高。鉴于现有方法的这些局限性(如下表中的总结),论文
《NetSMF: Large-Scale Network Embedding as Sparse Matrix Factorization》
建议研究大规模网络的representation learning
,目标是达到高效率、捕获全局结构上下文global structural context
、并具有理论上的保证。论文的思想是找到一个稀疏矩阵,该矩阵在谱上逼近由DeepWalk
隐式分解的、稠密的NetMF
矩阵。稀疏矩阵需要较低的构造成本和分解成本。同时,使其在谱上逼近原始NetMF
矩阵可以保证网络的谱信息spectral information
保持不变,并且从稀疏矩阵中学到的embedding
与从稠密NetMF
矩阵中学到的embedding
一样强大。在这项工作中,论文提出了作为稀疏矩阵分解的
network embedding learning
方法NetSMF
。NetSMF
包含三个步骤:首先,它利用谱图稀疏化技术pectral graph sparsification technique
为网络的随机游走矩阵多项式random-walk matrix-polynomial
找到稀疏化器sparsifier
。然后,它使用这个稀疏化器来构造一个非零元素数量明显少于原始NetMF
矩阵、但是在谱上逼近原始NetMF
矩阵的矩阵。最后,它执行随机奇异值分解randomized singular value decomposition
以有效地分解稀疏的NetSMF
矩阵,从而产生网络的embedding
。通过这种设计,
NetSMF
保证了效率和效果,因为稀疏矩阵的逼近误差approximation error
在理论上是有界的。论文在代表不同规模和类型的五个网络中进行实验。实验结果表明:对于百万级或更大的网络,NetSMF
比NetMF
实现了数量级上的加速,同时保持了顶点分类任务的有竞争力的性能competitive performance
。换句话讲,NetSMF
和NetMF
都优于公认的network embedding
基准方法(即DeepWalk, LINE, node2vec
),但是NetSMF
解决了NetMF
面临的计算挑战。总而言之,论文引入了通过稀疏矩阵分解来产生
network embedding
的思想,并提出了NetSMF
算法。NetSMF
算法对network embedding
的贡献如下:- 效率:
NetSMF
的时间复杂度和空间复杂度显著低于NetMF
。值得注意的是,NetSMF
能够在24
小时内在单台服务器上为包含6700
万个顶点、8.95
亿条边的大型学术网络academic network
生成embedding
,而DeepWalk
和node2vec
将花费数月时间。另外在相同的硬件上,NetMF
在计算上是不可行的。 - 效果:
NetSMF
学到的embedding
能够保持与稠密矩阵分解的解决方案相同的表达能力。在网络中的多标签顶点分类任务中,NetSMF
始终优于DeepWalk
和node2vec
高达34%
、始终优于LINE
高达100%
。 - 理论保证:
NetSMF
的效率和效果在理论上得到了保证。稀疏的NetSMF
矩阵在谱上逼近于精确的NetMF
矩阵,并且逼近误差是有界的,从而保持了NetSMF
学到的embedding
的表达能力。
- 效率:
相关工作:这里我们回顾了
network embedding
、大规模embedding
算法、谱图稀疏化spectral graph sparsification
等相关的工作。network embedding
:network embedding
在过去几年中得到了广泛的研究。network embedding
的成功推动了许多下游网络应用network application
,例如推荐系统。简而言之,最近关于network embedding
的工作可以分为三类:- 受
word2vec
启发的、基于SkipGram
的方法,如LINE, DeepWalk, node2vec, metapath2vec, VERSE
。 - 基于深度学习的方法,如
《Semi-Supervised Classification with Graph Convolutional Networks》
、《Graph Convolutional Neural Networks for Web-Scale Recommender Systems》
。 - 基于矩阵分解的方法,如
GraRep, NetMF
。其中,NetMF
通过将一系列基于SkipGram
的network embedding
方法统一到一个矩阵分解框架中来连接第一类工作和第三类工作。
在这项工作中,我们利用了
NetMF
的优点并解决了它在效率方面的局限性。在文献中,
PinSage
是一个用于十亿规模网络的network embedding
框架。NetSMF
和PinSage
的主要区别在于:NetSMF
的目标是以无监督的方式预训练通用的network embedding
;而PinSage
是一种有监督的图卷积方法,既结合了推荐系统的目标,也结合了现有的节点特征。话虽如此,NetSMF
学到的embedding
也可以被PinSage
用于下游的网络应用。- 受
large-scale embedding learning
:一些研究试图优化embedding
算法从而用于大型数据集。其中的一部分专注于改进SkipGram
模型,另一部分则聚焦于改进矩阵分解模型。分布式
SkipGram
模型:受word2vec
的启发,大多数现代的embedding learning
算法都基于SkipGram
模型。有一系列工作试图在分布式系统中加速SkipGram
模型。例如,《Parallelizing word2vec in shared and distributed memory》
在多个worker
上复制embedding
矩阵并定期同步synchronize
它们。《Network-efficient distributed word2vec training system for large vocabularies》
将embedding
矩阵的列(维度)分配给多个executor
,并将它们与一个parameter server
进行同步。负采样
negative sampling
是SkipGram
的关键步骤,它需要从噪声分布noisy distribution
中采样负样本。《Distributed Negative Sampling for Word Embeddings》
专注于通过使用别名方法alias method
的分层采样算法hierarchical sampling algorithm
代替了roulette wheel selection
从而优化负采样。最近,
《Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba》
提出了一个十亿规模的network embedding
框架。该框架通过启发式地将输入图划分为小的子图,然后并行地、单独地处理这些子图。然而,该框架的性能高度依赖于图划分graph partition
的质量。另外,基于分区partition-based
的embedding learning
的缺点是:在不同子图中学到的embedding
不共享相同的潜在空间,因此无法跨子图比较节点。高效的矩阵分解:隐式分解
NetMF
矩阵(例如LINE, DeepWalk
)或显式分解NetMF
矩阵(例如NetMF
算法)会遇到两个问题:首先,即使对于中等的上下文窗口大小(例如T=10
),该矩阵的稠密程度也会使得计算变得昂贵。其次,非线性变换(即,逐元素的矩阵对数)很难近似approximate
。LINE
通过设置T=1
解决了这个问题。通过这种简化,LINE
以预测性能为代价实现了良好的可扩展性。NetSMF
通过有效地稀疏化稠密的NetMF
矩阵来解决这个问题,其中这个稀疏化过程具有理论上有界的近似误差。
spectral graph sparsification
:谱图稀疏化在图论中已经研究了几十年。谱图稀疏化的任务是通过一个稀疏图来近似并代替一个稠密图。我们的NetSMF
模型是第一个将谱图稀疏化算法纳入network embedding
的工作。NetSMF
提供了一种强大而有效的方法来近似和分析NetMF
矩阵中的随机游走矩阵多项式random-walk matrix-polynomial
。
16.1 模型
16.1.1 基本概念
通常,
network embedding
问题形式化如下:给定一个带权无向图 $ G=(V,E,\mathbf A) $ ,其中 $ V $ 为 $ n $ 个顶点组成的顶点集合, $ E $ 为 $ m $ 条边组成的边集合, $ \mathbf A $ 为邻接矩阵。network embedding
学习任务的目标是学习函数 $ V\rightarrow \mathbb R^d $ ,从而将每个顶点 $ v\in V $ 映射到一个 $ d $ 维的embedding
向量 $ \mathbf{\vec x}_v\in \mathbb R^d $ ,其中 $ d\ll n $ 。这个embedding
向量捕获了网络的结构属性structural property
,例如社区结构。顶点的embedding
向量可以提供给下游应用程序使用,例如链接预测任务、顶点分类任务等等。
$ \mathbf X \mathbf Y^\top = \log^\circ \left(\frac{\text{vol}_G}{b}\mathbf M\right)\\\text{vol}_G = \sum_i\sum_j A_{i,j},\quad d_i=\sum_{j}A_{i,j},\quad \mathbf D = \text{diag}(d_1,d_2,\cdots,d_n)\\ \mathbf M = \frac 1T\sum_{r=1}^T \left(\mathbf D^{-1}\mathbf A\right)^r\mathbf D^{-1} $DeepWalk
模型是network embedding
的开创性工作之一,并且在过去几年中一直被认为是一个强大的基准。简而言之,DeepWalk
模型分为两个步骤:首先,DeepWalk
通过网络中的随机游走过程生成一些顶点序列;然后,DeepWalk
在生成的顶点序列上应用SkipGram
模型来学习每个顶点的潜在representation
。通常,SkipGram
使用上下文窗口大小 $ T $ 和负采样比例 $ b $ 进行参数化。最近,《Network Embedding as Matrix Factorization: Unifying DeepWalk, LINE, PTE,and node2vec》
的理论分析研究表明:DeepWalk
本质上分解了从随机游走过程中派生出derived
的矩阵。更正式地讲,该论文证明了当随机游走序列的长度达到无穷大时,DeepWalk
隐式且渐进地分解以下矩阵:其中:
- $ \mathbf X\in \mathbb R^{n\times d} $ 为每个顶点的
embedding
向量组成的embedding
矩阵, $ \mathbf Y\in \mathbb R^{n\times d} $ 为每个顶点作为context
时的embedding
矩阵。 - $ \log^\circ(\cdot) $ 为矩阵的逐元素
log
。 - $ d_i $ 为顶点 $ i $ 的
degree
, $ \mathbf D $ 为所有顶点的degree
组成的对角矩阵, $ \text{vol}_G $ 为所有顶点degree
的和。 $ \text{vol}_G $ 也称作图的volume
,
这种矩阵形式提供了基于
SkipGram
的network embedding
方法的另一种观点(即,矩阵分解的观点)。此外,该论文还提出了一种叫做NetMF
的显式矩阵分解方法来学习embedding
。该论文表明:基于NetMF
的embedding
在顶点分类任务上的准确率要优于基于DeepWalk
或LINE
的embedding
。注意,如果在
$ \text{trunc_log}^\circ \left(\frac{\text{vol}_G}{b}\mathbf M\right) $T hop
中存在一对无法到达的顶点,那么上述等式中的矩阵将是未定义ill-defined
的,因为 $ \log (0) = -\infty $ 。因此,遵循《NeuralWord Embedding as Implicit Matrix Factorization》
,NetMF
使用截断的对数,即 $ \text{trunc_log}(x) = \log \max(1,x) $ 。因此,NetMF
的目标是分解矩阵:在这项工作的其余部分,我们将这个矩阵称作
NetMF
矩阵。- $ \mathbf X\in \mathbb R^{n\times d} $ 为每个顶点的
然而,在实践中利用
NetMF
矩阵时存在一些挑战。首先,距离 $ r\le T $ 内的每一对顶点几乎都对应于NetMF
矩阵中的一个非零项。回想一下,许多社交网络social network
和信息网络information network
都表现出小世界smallworld
的属性,即大多数顶点之间可以通过少量step
而相互抵达。例如,截至2012
年,Facebook
的可达顶点对reachable pair
,92%
的距离小于等于5
。因此,即使设置一个中等的上下文窗口大小(例如,DeepWalk
中的默认设置T=10
),NetMF
矩阵也将是具有 $ O(n^2) $ 个非零元素的稠密矩阵。这种矩阵的精确构造和精确分解对于大型网络而言是不切实际的。更具体而言,计算矩阵 $ \mathbf M $ 时涉及到 $ O(n^3) $ 复杂度的矩阵幂次运算,另外对稠密的NetMF
矩阵进行矩阵分解也很耗时。为了降低构造成本,
NetMF
使用top
特征值和特征向量来近似 $ \mathbf M $ 。然而这个近似矩阵approximated matrix
仍然是稠密的,使得这种策略无法处理大型网络。在这项工作中,我们旨在解决NetMF
的效率和可扩展性的缺陷,同时保持其效果优势。计算
NetMF
的top
特征值和特征向量也是耗时的。
16.1.2 NetSMF
在本节中,我们将
network embedding
开发为稀疏矩阵分解sparse matrix factorization
(即NetSMF
)。我们提出了NetSMF
方法来构造和分解一个稀疏矩阵,这个稀疏矩阵逼近了稠密 的NetMF
矩阵。我们利用的主要技术是随机游走矩阵多项式稀疏化random-walk matrix-polynomial sparsification
。我们首先介绍谱相似度
spectral similarity
的定义和随机游走多项式稀疏化定理。谱相似度
$ \forall \mathbf{\vec x}\in \mathbb R^n,\quad (1-\epsilon) \mathbf{\vec x}^\top \tilde{\mathbf L}\mathbf{\vec x} \le \mathbf{\vec x}^\top \mathbf L\mathbf{\vec x} \le (1+\epsilon) \mathbf{\vec x}^\top\tilde{\mathbf L}\mathbf{\vec x} $Spectral Similarity
:假设有两个带权无向图 $ G=(V,E,\mathbf A) $ 和 $ \tilde G=(\tilde V,\tilde E,\tilde{\mathbf A}) $ ,令 $ \mathbf L = \mathbf D_G - \mathbf A $ 和 $ \tilde{\mathbf L} = \mathbf D_{\tilde G} - \tilde{\mathbf A} $ 分别为它们的拉普拉斯矩阵。如果下面的关系成立,我们就说 $ G $ 和 $ \tilde G $ 是 $ (1+\epsilon) $ 谱相似的spectrally similar
:定理(随机游走多项式的谱稀疏化器
$ \mathbf H = \mathbf D - \sum_{r=1}^T \alpha_r\mathbf D\left(\mathbf D^{-1} \mathbf A\right)^r $Spectral Sparsifier
):对于随机游走多项式random-walk molynomial
其中 $ \alpha_r\ge 0, \sum_{r=1}^T\alpha_r = 1 $ ,则可以在 $ O(T^2m\epsilon^{-2}\log^2n) $ 时间复杂度内构造一个 $ (1+\epsilon) $
spectral sparsifier
$ \tilde{\mathbf H} $ ,其中 $ \tilde{\mathbf H} $ 具有 $ O((n\log n )\epsilon^{-2}) $ 个非零项。对于无权图,时间复杂度可以进一步降低到 $ O(T^2m\epsilon^{-2}\log n) $ 。证明参考:
《Efficient sampling for Gaussian graphical models via spectral sparsification》
、《Spectral sparsification of random-walk matrix polynomials》
。为构建一个包含 $ O((n\log n )\epsilon^{-2}) $ 个非零项的
sparsifier
$ \tilde{\mathbf H} $ ,该稀疏化算法包含两步:- 第一步获得一个针对 $ \mathbf H $ 的初始化
sparsifier
,它包含 $ O(Tm\epsilon^{-2}\log n) $ 个非零项。 - 第二步使用标准的谱稀疏化算法
spectral sparsification algorithm
来进一步降低非零项到 $ O(\epsilon^{-2}n\log n) $ 。
本文我们仅仅应用第一步,因为一个包含 $ O(Tm\epsilon^{-2}\log n) $ 个非零项的稀疏矩阵已经足够可用,所以我们并没有采用第二步,这能够避免额外的计算。下面讲到的所有随机游走多项式稀疏化算法都仅包含第一步
- 第一步获得一个针对 $ \mathbf H $ 的初始化
我们取 $ \alpha_r = \frac 1T $ ,因此有:
$ \mathbf H = \mathbf D - \frac 1T\sum_{r=1}^T \mathbf D\left(\mathbf D^{-1} \mathbf A\right)^r $我们定义:
$ \mathbf M = \frac{1}{T} \left(\sum_{r=1}^T\mathbf (\mathbf D^{-1}\mathbf A )^r \right) \mathbf D^{-1} $因此有: $ \mathbf M = \mathbf D^{-1}(\mathbf D - \mathbf H)\mathbf D^{-1} $ 。
采用 $ \mathbf H $ 的稀疏化版本 $ \tilde{\mathbf H} $ ,我们定义 $ \tilde{\mathbf M} = \mathbf D^{-1}(\mathbf D - \tilde{\mathbf H}) \mathbf D^{-1} $ 。可以发现 $ \tilde{\mathbf M} $ 也是一个稀疏矩阵,其非零元素的规模和 $ \tilde{\mathbf H} $ 非零元素规模相当。最终我们可以分解这个稀疏矩阵从而获得每个顶点的
$ \mathbf X \mathbf Y^\top = \text{trunc_log}^\circ \left(\frac{\text{vol}_G}{b}\tilde{\mathbf M}\right) $embedding
:我们正式给出
NetSMF
算法,该算法包含三个步骤:随机游走多项式的稀疏化:我们首先构建一个网络 $ \tilde G $ ,它具有和 $ G(V,E,\mathbf A) $ 相同的顶点但是不包含任何边。然后我们重复
Path-Sampling
路径采样算法 $ M $ 次,从而得到 $ O(M) $ 条边,这些边构成了 $ \tilde{\mathbf H} $ 的非零项。在每一次迭代过程中:首先均匀随机选择一条边 $ e=(u,v)\in E $ ,均匀随机选择一个路径长度 $ r\in \{1,\cdots,T\} $ 。
然后从顶点 $ u $ 开始进行 $ k-1 $ 步随机游走,得到顶点序列 $ (u,u_{k-2},\cdots,u_0) $ ;从顶点 $ v $ 开始进行 $ r-k $ 步随机游走,得到顶点序列 $ (v,u_{k+1},\cdots,u_r) $ 。这一过程产生了一个长度为 $ r $ 的路径 $ \mathbf p = (u_0,u_1,\cdots,u_r) $ 。同时我们计算:
$ Z(\mathbf p) = \sum_{i=1}^r\frac{2}{A_{u_{i-1},u_i}} $然后我们向图 $ \tilde G $ 中添加一条新的边 $ (u_0,u_r) $ ,其权重为 $ \frac{2rm}{MZ(\mathbf p)} $ 。如果边已经存在,则相同的边进行合并(只需要将权重相加即可)。
这条新的边代表了图 $ G $ 中一条长度为 $ r $ 的随机游走序列,权重就是转移概率。其中 $ M\gt m $ 。
最终我们计算 $ \tilde G $ 的未归一化的拉普拉斯矩阵 $ \tilde {\mathbf H} $ ,它具有 $ O(M) $ 个非零项。
这个被构造出的图的未归一化拉普拉斯矩阵与 $ \mathbf M $ 产生联系。
NetMF
稀疏器sparsifier
的构造:即计算 $ \tilde{\mathbf M} = \mathbf D^{-1}(\mathbf D - \tilde{\mathbf H}) \mathbf D^{-1} $ 。这一步并未改变非零项的规模。截断的奇异值分解:对 $ \text{trunc_log}^\circ(\frac{\text{vol}_G}{b}\tilde{\mathbf M}) $ 执行 $ d $ 维的
RandomizedSVD
分解。即使稀疏矩阵仅有 $ O(M) $ 个非零元素,执行精确的
SVD
仍然非常耗时。这里我们使用Randomized SVD
进行分解。由于篇幅有限我们无法包含更多细节,简而言之,该算法通过高斯随机矩阵将原始矩阵投影到低维空间,然后在 $ d\times d $ 维的小矩阵上执行经典的SVD
分解即可。采用
SVD
的另一个优势是:我们可以通过使用诸如Cattell’s Scree test
来确定embedding
的维度。在测试中,我们绘制奇异值并选择一个rank
$ d $ ,使得奇异值幅度显著下降或者奇异值开始趋向于平衡的位置。实际上自动选择一个
rank d
需要对 $ \text{trunc_log}^\circ \left(\frac{\text{vol}_G}{b}\tilde{\mathbf M}\right) $ 进行奇异值分解,这对于大型网络而言是不可行的。
NetSFM
算法:输入:
- 图 $ G= (V,E,\mathbf A) $
- 非零项的数量 $ M $
embedding
维度 $ d $
输出:顶点
embedding
矩阵 $ \mathbf X\in \mathbb R^{n\times d} $算法步骤:
初始化 $ \tilde G = (V,\mathbf\Phi,\mathbf 0) $ ,即只有顶点没有边。
迭代 $ i=1,\cdots,M $ ,迭代步骤为:
均匀随机选择一条边 $ e=(u,v)\in E $ 。
均匀随机选择一个长度 $ r\in \{1,\cdots,T\} $ 。
随机采样一条路径: $ u^\prime,v^\prime,Z \leftarrow \text{PathSampling}(e,r) $
添加边 $ (u^\prime,v^\prime) $ 到 $ \tilde G $ 中,边的权重为 $ \frac{2rm}{MZ} $ 。
如果有多条边相同则合并成一个,将权重直接相加即可。
计算 $ \tilde G $ 的未归一化的拉普拉斯矩阵 $ \tilde{\mathbf H} $ 。
计算 $ \tilde{\mathbf M} = \mathbf D^{-1}(\mathbf D - \tilde{\mathbf H}) \mathbf D^{-1} $ 。
对 $ \text{trunc_log}^\circ(\frac{\text{vol}_G}{b}\tilde{\mathbf M}) $ 执行 $ d $ 维的
RandomizedSVD
分解,得到 $ \mathbf U_d,\mathbf \Sigma_d,\mathbf{\vec V}_d $ 。返回 $ \mathbf U_d\sqrt{\mathbf\Sigma}_d $ 。
PathSampling
算法:输入:
- 图 $ G= (V,E,\mathbf A) $
- 边 $ e=(u,v) $
- 采样的路径长度 $ r $
输出:路径的初始顶点 $ u_0 $ 、结束顶点 $ u_r $ 、路径 $ Z $ 值
算法步骤:
均匀随机采样一个整数 $ k\in \{1,\cdots,r\} $ 。
从顶点 $ u $ 开始执行 $ (k-1) $ 步随机游走,采样到的顶点记作 $ (u,u_{k-2},\cdots, u_0) $ 。
从顶点 $ v $ 开始执行 $ (r-k) $ 步随机游走,采样到的顶点记作 $ (v,u_{k+1},\cdots,u_r) $ 。
计算整条路径的路径 $ Z $ 值:
$ Z= \sum_{i=1}^r\frac{2}{A_{u_{i-1},u_i}} $返回 $ (u_0,u_r,Z) $ 。
Randomized SVD
算法:输入:
- 一个稀疏的对称矩阵 $ \mathbf K = \text{trunc_log}^\circ(\frac{\text{vol}_G}{b}\tilde{\mathbf M}) $ 。我们以行优先的方式存储矩阵,从而充分利用对称性来简化计算。
- 目标维度 $ d $
输出:
SVD
矩阵分解的 $ \mathbf U_d,\mathbf\Sigma_d,\mathbf V_d $步骤:
- 采样一个高斯随机矩阵 $ \mathbf O\in \mathbb R^{n\times d} $ 作为投影矩阵。
- 计算映射后的矩阵 $ \mathbf Y = \mathbf K^\top\mathbf O = \mathbf K\mathbf O \in \mathbb R^{n\times d} $ 。
- 对矩阵 $ \mathbf Y $ 进行正交归一化。
- 计算矩阵 $ \mathbf B = \mathbf K\mathbf Y\in \mathbb R^{n\times d} $ 。
- 采样另一个高斯随机矩阵 $ \mathbf P\in \mathbb R^{d\times d} $ 作为投影矩阵。
- 计算映射后的矩阵 $ \mathbf Z = \mathbf B \mathbf P\in \mathbb R^{n\times d} $ 。
- 对矩阵 $ \mathbf Z $ 进行正交归一化。
- 计算矩阵 $ \mathbf C = \mathbf Z^\top \mathbf B\in \mathbb R^{d\times d} $ 。
- 对 $ \mathbf C $ 执行
Jacobi SVD
分解: $ \mathbf C = \mathbf U\mathbf\Sigma \mathbf V^\top $ 。 - 返回 $ \mathbf Z\mathbf U\in \mathbb R^{n\times d},\mathbf\Sigma\in \mathbb R^{d\times d},\mathbf Y \mathbf V\in \mathbb R^{n\times d} $ 。
PathSampling
算法的说明:引理:给定一个长度为 $ r $ 的路径 $ \mathbf p = (u_0,\cdots,u_r) $ ,则
$ \pi(\mathbf p) = \frac{w(\mathbf p)Z(\mathbf p)}{2rm} $PathSampling
算法采样到该路径的概率为:其中:
$ Z(\mathbf p) = \sum_{i=1}^r\frac{2}{A_{u_{i-1},u_i}},\quad w(\mathbf p) = \frac{\prod_{i=1}^rA_{u_{i-1},u_i}}{\prod_{i=1}^{r-1}D_{u_i}} $引理:假设采样到一个长度为 $ r $ 的路径 $ \mathbf p = (u_0,\cdots,u_r) $ ,则新的边 $ (u_0,u_r) $ 的权重应该为:
$ \frac{w(\mathbf p)}{\pi(\mathbf p)M} $
根据上述引理,则添加到 $ \tilde G $ 中的边的权重为:
$ \frac{w(\mathbf p)}{\pi(\mathbf P)M} = \frac{w(\mathbf p)}{(w(\mathbf p)Z(\mathbf p))/(2rm) \times M} = \frac{2rm}{MZ(\mathbf p)} $对于无向图,则 $ Z(\mathbf P) = 2r $ ,则权重简化为 $ \frac{m}{M} $ 。
NetMF
和NetSMF
之间的主要区别在于对目标矩阵的近似策略。NetMF
使用了一个稠密矩阵来近似,从而带来了时间和空间上的挑战;NetSFM
基于谱图稀疏化理论和技术,使用了一个稀疏矩阵来近似。
16.1.3 复杂度
算法复杂度:
第一步:我们需要调用
PathSampling
算法 $ M $ 次,每次PathSampling
都需要在网络 $ G $ 上执行 $ O(T) $ 步随机游走。对于无权无向图,随机游走采样一个顶点的计算复杂度为 $ O(1) $ ;对于带权无向图,可以使用roulette wheel selection
从而随机游走采样一个顶点的计算复杂度为 $ O(\log n) $ 。另外我们需要 $ O(M) $ 的空间存储 $ \tilde G $ ,以及额外的 $ O(n+m) $ 空间来存储算法的输入。
第二步:我们需要 $ O(M) $ 的时间来计算 $ \tilde{\mathbf M} = \mathbf D^{-1}(\mathbf D - \tilde{\mathbf H}) \mathbf D^{-1} $ 以及 $ \text{trunc_log}^\circ \left(\frac{\text{vol}_G}{b}\tilde{\mathbf M}\right) $ 。
另外我们需要 $ O(n) $ 空间来存储
degree
矩阵 $ \mathbf D $ , $ O(M) $ 的空间来存储 $ \hat{\mathbf M} $ 。第三步:我们需要 $ O(Md) $ 时间来计算一个稀疏矩阵和一个稠密矩阵的乘积,以及 $ O(d^3) $ 来执行
Jacobi SVD
,以及 $ O(nd^2) $ 来计算Gram-Schmidt
正交化 。
示例:假设网络 $ G $ 的顶点数量 $ n=10^{6} $ ,边的数量为 $ m=10^7 $ ,上下文窗口大小 $ T=10 $ ,逼近因子
approximation factor
$ \epsilon = 0.1 $ 。NetSMF
调用PathSampling
算法次数为 $ M=Tm\epsilon^{-2}\log n\simeq 1.4\times 10^{11} $ 次,得到一个稀疏矩阵大约 $ 1.4\times 10^{11} $ 个非零值,稠密度大约为 $ \frac{M}{n^2}\simeq 14\% $ 。然后我们在
randomized SVD
中计算sparse-dense
矩阵乘积,近似矩阵的稀疏性可以大大加快计算速度。NetMF
必须构建一个稠密矩阵,它包含 $ n^2=10^{12} $ 个非零元素,这比NetSMF
大一个量级。
通过一个更大的 $ \epsilon $ 我们可以进一步降低
NetSMF
中近似矩阵的稀疏性,而NetMF
缺乏这种灵活性。并行化:
NetSMF
的每个步骤都可以并行化,从而scale
到非常大的网络。NetSMF
的并行化设计如下图所示。第一步:我们可以同时启动多个
PathSampling worker
来独立的、并行的采样多个路径,每个worker
负责采样一批路径。这里,我们要求每个worker
能够有效访问网络数据集 $ G=(V,E,\mathbf A) $ 。有很多选择可以满足这一要求,最简单的方法是将网络数据的副本拷贝到每个worker
的内存中。但是如果网络非常大(例如万亿规模),或者worker
内存受限时,应该采用图引擎来支持随机游走等图操作。在这一步结束时,我们设计了一个
reducer
来合并平行边并汇总它们的权重。第二步:我们可以简单直接地并行计算 $ \tilde{\mathbf M} = \mathbf D^{-1}(\mathbf D - \tilde{\mathbf H}) \mathbf D^{-1} $ 和 $ \mathbf K = \text{trunc_log}^\circ(\frac{\text{vol}_G}{b}\tilde{\mathbf M}) $ 。
第三步:我们可以将稀疏矩阵组织为行优先的格式,这种格式可以在稀疏矩阵和稠密矩阵之间进行高效的乘法运算。其它稠密矩阵的算子(如高斯随机矩阵生成、
Gram-Schmidt
正交归一化、Jacobi SVD
)可以通过使用多线程或者常见的线性代数库来轻松加速。
16.1.4 近似误差分析
我们假设逼近因子 $ \epsilon \lt 0.5 $ 。我们假设顶点的
degree
是降序排列: $ d_\min = d_1\le d_2\le \cdots\le d_n = d_{\max} $ 。 我们令 $ \sigma_i(\mathbf \cdot) $ 为矩阵从大到小排列的奇异值中的第 $ i $ 个奇异值。我们首先证明一个结论:令 $ \mathbf F = \mathbf D^{-1/2}\mathbf H \mathbf D^{-1/2} $ ,以及 $ \tilde{\mathbf F} = \mathbf D^{-1/2}\tilde {\mathbf H} \mathbf D^{-1/2} $ ,则有:
$ \forall i\in \{1,\cdots,n\},\quad \sigma_i(\tilde{\mathbf F} - \mathbf F) \lt 4\epsilon $证明:
$ \mathbf F = \mathbf D^{-1/2}\left( \mathbf D - \frac 1T\sum_{r=1}^T \mathbf D\left(\mathbf D^{-1} \mathbf A\right)^r\right)\mathbf D^{-1/2} = \mathbf I - \sum_{r=1}^T\frac{1}{T}\left(\mathbf D^{-1/2} \mathbf A\mathbf D^{-1/2}\right)^r $它是某个图的归一化的拉普拉斯矩阵,因此有特征值 $ \lambda_i(\mathbf F)\in [0,2) $ 。
由于 $ \tilde {\mathbf F} $ 是矩阵 $ \mathbf F $ 的 $ \epsilon $
$ \forall \mathbf{\vec x}\in \mathbb R^n,\quad \frac{1}{1+\epsilon}\mathbf{\vec x}^\top \mathbf F\mathbf{\vec x} \le \mathbf{\vec x}^\top\tilde {\mathbf F}\mathbf{\vec x} \le \frac{1}{1-\epsilon}\mathbf{\vec x}^\top \mathbf F\mathbf{\vec x} $spectral sparsifier
,因此有:令 $ \mathbf{\vec x} = \mathbf D^{-1/2}\mathbf{\vec y} $ ,则有:
$ \frac{1}{1+\epsilon}\mathbf{\vec y}^\top \mathbf F\mathbf{\vec y} \le \mathbf{\vec y}^\top\tilde {\mathbf F}\mathbf{\vec y} \le \frac{1}{1-\epsilon}\mathbf{\vec y}^\top \mathbf F\mathbf{\vec y}\\ \rightarrow \left|\mathbf{\vec y}^\top(\tilde{\mathbf F} - \mathbf F)\mathbf{\vec y}\right|\le \frac{\epsilon}{1-\epsilon}\mathbf{\vec y}^\top \mathbf F \mathbf{\vec y}\lt 2\epsilon \mathbf{\vec y}^\top \mathbf F \mathbf{\vec y} $其中最后一个不等式是因为 $ \epsilon \lt 0.5 $ 。
根据瑞利商的性质有: $ |\lambda_i(\tilde{\mathbf F} - \mathbf F)|\le 2\epsilon \lambda_i(\mathbf L) \lt 4\epsilon $ 。
根据奇异值和特征值的关系,我们有: $ \sigma_i(\tilde{\mathbf F} - \mathbf F) \lt 4\epsilon $ 。
定理: $ \tilde{\mathbf M} - \mathbf M $ 的奇异值满足:
$ \forall i \in \{1,\cdots,n\},\quad \sigma_i(\tilde{\mathbf M} - \mathbf M) \le \frac{4\epsilon}{\sqrt{d_id_\min}} $证明:
$ \tilde{\mathbf M} - \mathbf M = \mathbf D^{-1}(\tilde{\mathbf H} - \mathbf H)\mathbf D^{-1} = \mathbf D^{-1/2}(\tilde{\mathbf H} - \mathbf H)\mathbf D^{-1/2} $根据奇异值的性质,我们有:
$ \sigma_i(\tilde{\mathbf M} - \mathbf M) \le \sigma_i(\mathbf D^{-1/2})\times \sigma_1(\tilde{\mathbf F} - \mathbf F)\times \sigma_1(\mathbf D^{-1/2})\\ \le \frac{1}{\sqrt d_i}\times 4\epsilon \times \frac{1}{\sqrt {d_\min}} = \frac{4\epsilon}{\sqrt{d_id_\min}} $定理:令 $ ||\cdot||_F $ 为矩阵的
$ \left\|\text{trunc_log}^\circ\left(\frac{\text{vol}_G}{b}\tilde{\mathbf M}\right)-\text{trunc_log}^\circ\left(\frac{\text{vol}_G}{b} {\mathbf M}\right)\right\|_F \le \frac{4\epsilon\text{vol}_G}{b\sqrt{d_\min}}\sqrt{\sum_{i=1}^n \frac{1}{d_i}} $Frobenius
范数,则有:证明:很明显 $ \text{trunc_log}^\circ() $ 函数满足是
$ \left\|\text{trunc_log}^\circ\left(\frac{\text{vol}_G}{b}\tilde{\mathbf M}\right)-\text{trunc_log}^\circ\left(\frac{\text{vol}_G}{b} {\mathbf M}\right)\right\|_F \\ \le \left\|\frac{\text{vol}_G}{b}\tilde{\mathbf M} - \frac{\text{vol}_G}{b} {\mathbf M}\right\|_F = \frac{\text{vol}_G}{b}\left\|\tilde{\mathbf M}- {\mathbf M}\right\|\\ = \frac{\text{vol}_G}{b}\sqrt{\sum_{i=1}^n \sigma_i^2(\tilde{\mathbf M} - \mathbf M)}\le \frac{4\epsilon\text{vol}_G}{b\sqrt {d_\min}}\sqrt{\sum_{i=1}^n\frac{1}{d_i}} $1- Lipchitz
的。因此我们有:上述界限是在未对输入网络进行假设的情况下实现的。如果我们引入一些假设,比如有界的 $ d_\min $ 、或者特定的随机图模型(如
Planted Partition Model
或者Extended Planted Partition Model
),则有望通过利用文献中的定理来探索更严格的边界。
16.2 实验
数据集:我们使用五个数据集,其中四个规模(
BlogCatalog, PPI, Flickr, YouTube
)相对较小但是已被广泛用于network embedding
的论文,剩下一个是大规模的academic co-authorship network
。BlogCatalog
数据集:在线博主的社交关系网络。标签代表博主的兴趣。Flickr
数据集:Flickr
网站用户之间的关系网络。标签代表用户的兴趣组,如“黑白照片”。Protein-Protein Interactions:PPI
:智人PPI
网络的子图。顶点标签是从标志基因组hallmark gene set
中获取的,代表生物状态。Youtube
数据集:YouTube
网站用户之间的社交网络。标签代表用户的视频兴趣组,如“动漫、摔跤”。Open Academic Graph:OAG
数据集:一个学术网络,顶点标签位每个作者的研究领域,共有19
种不同的标签。每位作者可以研究多个领域,所以有多个标签。
这些数据集的统计信息如下表所示。
baseline
和配置:我们将NetSMF
与NetMF, LINE, DeepWalk, node2vec
等方法进行比较。- 所有模型的
embedding
维度设置为 $ d=128 $ 。 - 对于
NetSMF/NetMF/DeepWalk/node2vec
,我们将上下文窗口大小设为 $ T=10 $ ,这也是DeepWalk, node2vec
中使用的默认设置。 - 对于
LINE
我们仅使用二阶邻近度,即LINE(2nd)
,负样本系数为5
,边采样的数量为100
亿。 - 对于
DeepWalk
,随机游走序列的长度为40
,每个顶点开始的随机游走序列数量为80
,负采样系数为5
。 - 对于
node2vec
,随机游走序列的长度为40
,每个顶点开始的随机游走序列数量为80
,负采样系数为5
。参数 $ p,q $ 从 $ \{0.25,0.5,1,2,4\} $ 中进行grid search
得到。 - 对于
NetMF
,我们在BlogCatalog,PPI,Flickr
数据集中设置 $ h=256 $ 。 - 对于
NetSMF
,我们在PPI,Flickr,YouTube
数据集中设置采样数量 $ M=10^3\times T\times m $ ;我们在BlogCatalog
数据集中设置采样数量 $ M=10^4\times T\times m $ ;我们在OAG
数据集中设置采样数量 $ M=10\times T\times m $ 。 - 对于
NetMF
和NetSMF
,我们设置负采样系数 $ b=1 $ 。
- 所有模型的
和
DeepWalk
相同的实验步骤执行多标签顶点分类任务:我们首先训练整个网络的embedding
,然后随机采样一部分标记样本来训练一个one-vs-rest
逻辑回归分类模型(通过LIBLINEAR
实现),剩余的顶点作为测试集。在测试阶段,one-vs-rest
模型产生标签的排序,而不是精确的标签分配。为了避免阈值效应,我们采用在DeepWalk, LINE, node2vec
中所作的假设,即给定测试数据集中顶点的label
数量。我们评估测试集的Micro-F1
指标和Macro-F1
指标。为了确保实验结果可靠,每个配置我们都重复实验10
次,并报告测试集指标的均值。所有实验均在配备Intel Xeon E7-8890 CPU
(64
核)、1.7TB
内存、2TB SSD
硬盘的服务器上进行。对于
BlogCatalog,PPI
数据集,我们考察分类训练集占比10%~90%
的情况下,各模型的性能;对于Flickr,YouTube,OAG
数据集,我们考察分类训练集占比1%~10%
的情况下,各模型的性能。完成的实验结果如下图所示。对于训练时间超过
1
周的模型,我们判定为训练失败,此时并未在图中给出结果。第二张图给出了模型训练时间,-
表示模型无法在周内完成训练(时间复杂度太高);x
表示模型因内存不足无法训练(空间复杂度太高)。我们首先重点对比
NetSMF
和NetMF
,因为NetSMF
的目标是解决NetMF
的效率和可扩展性问题,同时保持NetMF
的效果优势。从结果可以看到:- 在训练速度上:对于大型网络 (
YouTube,OAG
),NetMF
因为空间复杂度和时间复杂度太高而无法训练,但是NetSMF
可以分别在4h
内、24h
内完成训练;对于中型网络(Flickr
),二者都可以完成训练,但是NetSMF
的速度要快2.5
倍;对于小型网络,NetMF
的训练速度反而更快,这是因为NetSMF
的稀疏矩阵构造和分解的优势被pipeline
中其它因素抵消了。 - 在模型效果上:
NetSMF
和NetMF
都能产生最佳的效果(和其它方法相比)。在BlogCatlog
中,NetSMF
的效果比NetMF
稍差;在PPI
中,两种方法性能难以区分、在Flicker
中,NetSMF
的效果比NetMF
更好。这些结果表明:NetSMF
使用的稀疏谱近似sparse spectral approximation
,其性能不一定比稠密的NetMF
效果更差。
总之,
NetSMF
不仅提高了可扩展性,还能保持足够好的性能。这证明了我们谱稀疏化近似算法的有效性。我们还将
NetSMF
与常见的graph embedding
基准(即DeepWalk, LINE, node2vec
)进行了比较。对于
OAG
数据集,DeepWalk
和node2vec
无法在一周内完成计算,而NetSMF
仅需要24
小时。根据公开报道的SkipGram
运行时间,我们预计DeepWalk
和node2vec
可能需要几个月的时间来为OAG
数据集生成embedding
。在
BlogCatalog
中,DeepWalk
和NetSMF
需要差不多的计算时间。而在Flickr, YouTube, PPI
中,NetSMF
分别比DeepWalk
快2.75
倍、5.9
倍、24
倍。在所有数据集中,
NetSMF
比node2vec
实现了4 ~ 24
倍的加速。此外,
NetSMF
的性能在BlogCatalog, PPI, Flickr
中显著优于DeepWalk
。在YouTube
中,NetSMF
取得了与DeepWalk
相当的结果。与node2vec
相比,NetSMF
在BlogCatalog, YouTube
上的性能相当,在PPI, Flickr
上的性能显著更好。总之,NetSMF
在效率和效果上始终优于DeepWalk
和node2vec
。LINE
在所有五种方法中是效率最高的,然而它的预测效果也最差,并且在所有数据集上始终以很大的差距输给其它方法。总之,LINE
以忽略网络中的multi-hop
依赖性作为代价从而实现了效率,而所有其它四种方法都支持这些依赖,这证明了multi-hop
依赖性对于学习network representation
的重要性。更重要的是,在除了
LINE
以外的四种方法之间,DeepWalk
既没有达到效率上的优势,也没有达到效果上的优势。node2vec
以效率为代价实现了相对较好的性能。NetMF
以显著增加的时间和空间成本为代价实现了更好的效果。NetSMF
是唯一同时实现了高效率和高效果的方法,使得它能够在一天内在单台服务器上为数十亿规模的网络(例如9
亿条边的OAG
网络)学习有效的embedding
。
- 在训练速度上:对于大型网络 (
这里我们讨论超参数如何影响
NetSMF
的效率和效果。我们用Flickr
数据集的10%
标记顶点作为训练集,来评估NetSMF
超参数的影响。维度 $ d $ :我们使用
Cattell Scree
测试。首先从大到小绘制奇异值,然后再图上找出奇异值突变或者趋于均匀的点。从Flickr
数据的奇异值观察到:当 $ d $ 增加到100
时,奇异值趋近于零(图b
所示)。因此我们在实验中选择 $ d=2^8=128 $ 。我们观察 $ d=2^4\sim2^8 $ 时测试集的指标,可以看到确实当 $ d=128 $ 时模型效果最好。这表明了
NetSMF
可以自动选择最佳的embedding
维度。NetSMF
能够自动选择选择最佳embedding
维度的前提是计算矩阵 $ \mathbf X \mathbf Y^\top = \text{trunc_log}^\circ \left(\frac{\text{vol}_G}{b}\tilde{\mathbf M}\right) $ 的奇异值。对于大型网络,计算奇异值是不可行的。非零元素数量:理论上 $ M=O(T\times m\epsilon^{-2}\log n) $ ,当 $ M $ 越大则近似误差越小。不失一般性我们将 $ M $ 设置为 $ k\times T\times m $ ,其中 $ k=\{1,10,,100,200,500,1000,2000\} $ ,我们研究随着 $ M $ 的增大模型性能的影响。
如图
c
所示,当增加非零元素数量时,NetSMF
效果更好,因为更大的 $ M $ 带来更小的误差。但是随着 $ M $ 的增加,预测性能提升的边际收益在递减。可以看到当 $ M=1000\times T\times m $ 时,NetSMF
的效率和效果得到平衡。并行性:我们将线程数量分别设置为
1、10、20、30、60
,然后考察NetSMF
的训练时间。如图
d
所示,在单线程时NetSMF
运行了12
个小时,在30
个线程时NetSMF
运行了48
分钟,这实现了15
倍的加速比(理想情况30
倍)。这种相对较好的亚线性加速比使得NetSMF
能够扩展到非常大规模的网络。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论