数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
二、LINE [2015]
信息网络
information network
在现实世界中无处不在,例如航空网络、出版物网络、社交网络、通信网络、以及万维网。这些信息网络的规模从数百个节点到数百万、甚至数十亿个节点不等。分析大型信息网络已经引起学术界和工业界越来越多的关注。论文《LINE: Large-scale Information Network Embedding》
研究了将信息网络嵌入到低维空间中的问题,其中每个顶点都表示为一个低维向量。这种低维embedding
在各种application
中非常有用,例如可视化visualization
、节点分类node classi fication
、链接预测link prediction
、推荐recommendation
。机器学习文献中已经提出了各种
graph embedding
方法。它们通常在较小的网络上表现良好。当涉及现实世界的信息网络时(这些网络通常包含数百万节点、数十亿条边),这个问题变得更具挑战性。例如,2012
年Twitter
的followee-follower
网络包含1.75
亿活跃用户、大约200
亿条边。大多数现有的graph embedding
算法无法针对这种规模的网络进行扩展。例如,MDS
、IsoMap
、Laplacian eigenmap
等经典graph embedding
算法的时间复杂度至少是顶点数量的二次方,这对于具有数百万个节点的网络来说是不可行的。尽管最近的一些工作研究了大规模网络的
embedding
,但是这些方法要么采用了不是为网络而设计的间接方法(如《Distributed large-scale natural graph factorization》
),要么缺乏为网络embedding
量身定制的、明确的目标函数(如《Deepwalk: Online learning of social representations》
)。论文《LINE: Large-scale Information Network Embedding》
预计:具有精心设计的、保持图属性的目标函数和有效优化技术的新模型,应该可以有效地找到数百万个节点的embedding
。因此在该论文中,作者提出了一种称为LINE
的network embedding
模型,它能够扩展到非常大的、任意类型的网络:无向/有向图、无权/有权图。该模型优化了一个目标函数,该目标函数同时保持了局部网络结构local network structure
和全局网络结构global network structure
。局部网络结构(一阶邻近性):自然地,局部网络结构由网络中观察到的链接来表示,它捕获顶点之间的一阶邻近性
first-order proximity
。大多数现有的graph embedding
算法都旨在保持这种一阶邻近性,例如IsoMap
、Laplacian eigenmap
,即使这些算法无法扩展。全局网络结构(二阶邻近性):作者观察到:在现实世界的网络中,实际上很多合法的链接都未被观测到。换句话讲,在现实世界数据中观察到的一阶邻近性不足以保持全局网络结构。作为补充,作者探索了顶点之间的二阶邻近性
second-order proximity
,这是通过顶点的共享邻域结构shared neighborhood structure
来确定的,而不是通过观察到的直接连接强度来确定。二阶邻近性的通用概念可以解释为:具有共享邻居的节点之间可能是相似的。这种直觉可以在社会学和语言学的理论中找到。例如:在社交网络中,“两个人的社交网络的重叠程度与他们之间的联系强度相关”(
the degree of overlap of two people's friendship networks correlates with the strength of ties between them
);在文本网络中,“一个词的意思是由它的使用环境所形成的”(You shall know a word by the company it keeps
)。确实,有很多共同好友的人很可能有相同的兴趣并成为朋友,而与许多相似词一起使用的单词很可能具有相似的含义。下图展示了一个说明性的例子,其中边越粗权重越大:
- 由于顶点
6
和顶点7
之间的边的权重很大,即顶点6
和顶点7
具有较高的一阶邻近性,因此它们的representation
应该在embedding
空间中彼此靠近。 - 另一方面,虽然顶点
5
和顶点6
之间没有直接链接,但是它们共享了许多共同的邻居,即它们具有很高的二阶邻近性,因此它们的representation
应该在embedding
空间中彼此靠近。
论文期望对二阶邻近性的考虑能够有效地补充一阶邻近性的稀疏性,从而更好地保持网络的全局结构。在论文中,作者将展示精心设计的目标函数,从而保持一阶邻近性和二阶邻近性。
- 由于顶点
即使找到了一个合理的目标函数,为一个非常大的网络优化该目标函数也是具有挑战性的。近年来,引起大家关注的一种优化方法是随机梯度下降。然而,论文表明:直接部署随机梯度下降对现实世界的信息网络是有问题的。这是因为在许多网络中,边是加权的,并且权重通常呈现高方差
high variance
。考虑一个单词共现网络word co-occurrence network
,其中word pair
的权重(共现)可能从 “一” 到 “几十万” 不等。这些边的权重将乘以梯度,导致梯度爆炸从而影响模型性能。因为
LINE
的目标函数是加权的交叉熵,权重为word pair
共现次数。为了解决这个问题,论文提出了一种新的边采样方法
edge-sampling method
,该方法提高了推断的效率efficiency
和效果effectiveness
。作者以与边权重成正比的概率对边进行采样,然后将采样后的边视为用于模型更新的二元边binary edge
。通过这个采样过程,目标函数保持不变,边的权重不再影响梯度。这可能会导致数据稀疏性问题:即一些权重很小的边未被采样到。
LINE
非常通用,适用于有向/无向图、加权/未加权图。论文使用各种真实世界的信息网络(包括语言网络language network
、社交网络social network
、引文网络citation network
)来评估LINE
的性能。论文在多个数据挖掘任务中评估了学到的embedding
的有效性,包括单词类比word analogy
、文本分类text classification
、节点分类node classification
。结果表明,LINE
模型在效果和效率方面都优于其它竞争baseline
。LINE
能够在几个小时内在单台机器上学习具有数百万个节点、数十亿条边的网络的embedding
。总而言之,论文主要贡献:
- 论文提出了一个叫做
LINE
的、新的network embedding
模型,该模型适用于任意类型的信息网络,并可轻松地扩展到数百万个节点。该模型有一个精心设计的目标函数,可以同时保持一阶邻近性和二阶邻近性。 - 论文提出了一种边采样算法来优化目标函数,该算法解决了经典随机梯度下降的局限性,提高了推断的效率和效果。
- 论文对现实世界的信息网络进行了广泛的实验,实验结果证明了
LINE
模型的效率和效果。
相关工作:
我们的工作通常与
graph embedding
或降维的经典方法有关,例如多维缩放multidimensional scaling: MDS
、IsoMap
、LLE
、Laplacian Eigenmap
。这些方法通常首先使用数据点data point
的特征向量feature vector
构建affinity graph
,例如数据的K-nearest neighbor graph
,然后将affinity graph
嵌入到低维空间中。然而,这些算法通常依赖于求解
affinity matrix
的top-n eigenvectors
,其复杂度至少是节点数量的二次方,使得它们在处理大规模网络时效率很低。最近的文献中有一种叫做图分解
graph factorization
(《Distributed large-scale natural graph factorization》
) 的技术。该方法通过矩阵分解找到大规模图的低维embedding
,并使用随机梯度下降进行优化。这是可行的,因为图可以表示为affinity matrix
。然而,矩阵分解的目标不是为网络设计的,因此不一定保持了全局网络结构。直觉上,图分解预期具有较高一阶邻近性的节点的
representation
彼此靠近。相反,LINE
模型使用了一个专门为网络设计的目标函数,该目标函数同时保持了一阶邻近性和二阶邻近性。另外,图分解方法仅适用于无向图,而LINE
方法适用于无向图和有向图。与我们最相关的、最新的工作是
DeepWalk
,它通过截断的随机游走truncated random walk
来学习社交网络的embedding
。尽管在经验上是有效的,但是DeepWalk
并为提供明确的目标来阐明保持哪些网络属性。直觉上,DeepWalk
期望具有较高二阶邻近性的节点产生相似的低维representation
,而LINE
同时保持一阶邻近性和二阶邻近性。DeepWalk
使用随机游走来扩展顶点的邻域,这类似于深度优先搜索depth-first search: DFS
。LINE
使用广度优先搜索breadth- first search: BFS
策略,这是一种更合理的二阶邻近性方法。另外,DeepWalk
仅适用于无权图,而LINE
适用于加权图和无权图。
在实验中,我们使用各种真实世界的网络来评估
LINE
和这些方法的效果。
2.1 模型
2.1.1 问题定义
信息网络
information network
的定义:一个信息网络定义为 $ G=(V,E) $ ,其中:$ V $ 为顶点集合,每个元素代表一个数据对象
data object
。$ E $ 为边集合,每个元素代表两个数据对象之间的关系。
每条边 $ e\in E $ 是一个有序的
pair
$ e=(u,v) $ ,它关联一个权重 $ w_{u,v}\gt 0 $ 表示关系的强度。- 如果 $ G $ 是无向图,则有 $ (u,v) = (v,u) $ 且 $ w_{u,v} = w_{v,u} $ ;如果 $ G $ 是有向图,则有 $ (u,v) \ne (v,u) $ 且 $ w_{u,v} \ne w_{v,u} $ 。
- 如果 $ G $ 是无权图,则 $ w_{u,v}\in \{0,1\} $ ,这种边称作二元边
binary edge
,权重表示相连/不相连;如果 $ G $ 是带权图,则 $ w_{u,v}\in \mathbb R^+\cup \{0\} $ 则边的取值是实数,这种边表示连接的紧密程度。
这里所有权重都是非负的,并不考虑负权重。
在实践中,信息网络可以是有向的(如引文网络),也可以是无向的(如
Facebook
的用户社交网络)。边的权重可以是二元binary
的,也可以是任何实际值。注意,虽然边的权重理论上也可以是负的,但是这里我们仅考虑非负的权重。例如,在引文网络和社交网络中, $ w_{u,v} $ 是二元的。在不同共现网络中, $ w_{u,v} $ 可以取任何非负值。某些网络中的边的权重方差可能很大,因为某些对象会多次共现、而其它对象可能很少共现。将信息网络嵌入到低维空间在各种
application
中都很有用。为了进行embedding
,网络结构必须被保持。第一个直觉是必须保持局部网络结构,即顶点之间的局部pairwise
邻近性。我们将局部网络结构定义为顶点之间的一阶邻近性。一阶邻近性
first-order proximity
的定义:网络中的一阶邻近性是两个顶点之间的局部pairwise
邻近性。对于边 $ (u,v) $ 连接的顶点pair
,边上的权重 $ w_{u,v} $ 表示顶点 $ u $ 和顶点 $ v $ 之间的一阶邻近性。如果在顶点 $ u $ 和顶点 $ v $ 之间没有观察到边,则它们之间的一阶邻近性为0
。一阶邻近性通常意味着现实世界网络中两个节点的相似性
similarity
。例如:在社交网络中彼此成为好友的人往往有相似的兴趣,在万维网中相互链接的网页倾向于谈论相似的话题。由于这种重要性,许多现有的graph embedding
算法(如IsoMap
、LLE
、Laplacian eigenmap
、graph factorization
)都以保持一阶邻近性为目标。然而,在现实世界的信息网络中,观察到的链接仅是一小部分,还有许多其他链接发生了缺失
missing
。缺失链接上的顶点pair
之间的一阶邻近性为零,尽管它们本质上彼此非常相似。因此,仅靠一阶邻近性不足以保持网络结构,重要的是寻找一种替代的邻近性概念来解决稀疏性问题。一个自然的直觉是:共享相似邻居的顶点往往彼此相似。例如:在社交网络中,拥有相同朋友的人往往有相似的兴趣,从而成为朋友;在单词共现网络中,总是与同一组单词共现的单词往往具有相似的含义。因此,我们定义了二阶邻近性,它补充了一阶邻近性并保持了网络结构。二阶邻近性
second-order proximity
的定义:网络中一对顶点 $ (u,v) $ 之间的二阶邻近性是它们的邻域网络结构之间的相似性。数学上,令 $ \mathbf{\vec p}_u = (w_{u,1},\cdots,w_{u,|V|})^\top \in \mathbb R^{|V|} $ 为顶点 $ u $ 和所有顶点的一阶邻近性向量,然后顶点 $ u $ 和顶点 $ v $ 之间的二阶邻近性由 $ \mathbf{\vec p}_u $ 和 $ \mathbf{\vec p}_v $ 的相似性来确定。如果没有任何顶点同时与 $ u $ 和 $ v $ 相连,则 $ u $ 和 $ v $ 之间的二阶邻近性为0
。我们研究了
network embedding
的一阶邻近性和二阶邻近性,定义如下。大规模信息网络嵌入
Large-scale Information Network Embedding
:给定一个大型网络 $ G=(V,E) $ ,大规模信息网络嵌入的问题旨在将每个顶点 $ v\in V $ 映射到一个低维空间 $ \mathbb R^d $ 中,即学习一个函数 $ f_G: V \rightarrow \mathbb R^d $ ,其中 $ d\ll |V| $ 。在空间 $ \mathbb R^d $ 中,顶点之间的一阶邻近性和二阶邻近性都可以得到保持。现实世界信息网络的理想
embedding
模型必须满足几个要求:- 首先,它必须能够同时保持顶点之间的一阶邻近性和二阶邻近性。
- 其次,它必须针对非常大的网络可扩展,比如数百万个顶点、数十亿条边。
- 第三,它可以处理具有任意类型边的网络:有向/无向、加权/无权的边。
这里,我们提出了一个叫做
LINE
的新型network embedding
模型,该模型满足所有这三个要求。我们首先描述了LINE
模型如何分别保持一阶邻近性和二阶邻近性,然后介绍一种简单的方法来组合这两种邻近性。
2.1.2 保持一阶邻近性的 LINE
一阶邻近性是指网络中顶点之间的局部
$ p_1(v_i,v_j) = \frac{1}{1+\exp\left(\mathbf{\vec u}_i^\top \mathbf{\vec u}_j\right)} $pairwise
邻近性。为了对一阶邻近性建模,对于每条无向边 $ (v_i,v_j) $ ,我们定义顶点 $ v_i $ 和 $ v_j $ 之间的联合概率为:其中 $ \mathbf{\vec u}_i\in \mathbb R^d $ 为顶点 $ v_i $ 的低维
representation
向量。上式定义了 $ V\times V $ 空间上的一个概率分布 $ p_1(\cdot,\cdot) $ ,它的经验概率
$ \hat p_1(v_i,v_j) = \frac{w_{i,j}}{W} $empirical probability
定义为:其中 $ W=\sum_{(v_i,v_j)\in E} w_{i,j} $ 为所有边权重之和。
为了保持一阶邻近性,一个直接的方法是最小化以下目标函数:
$ O_1 = \text{dist}\left(\hat p_1(\cdot,\cdot), p_1(\cdot,\cdot)\right) $其中 $ \text{dist}(\cdot,\cdot) $ 为两个概率分布之间的距离。这里我们选择
$ O_1 = -\sum_{(v_i,v_j)\in E} w_{i,j} \log p_1(v_i,v_j) $KL
散度作为距离函数,因此有:注意,上述一阶邻近性仅适用于无向图,而无法适用于有向图。
通过最小化 $ O_1 $ 从而得到 $ \left\{\mathbf{\vec u}_i\right\}_{i=1}^{|V|} $ ,我们可以得到每个顶点在 $ d $ 维空间中的
representation
。读者注:
- 上式的物理意义为:观测边的加权负对数似然,每一项权重为边的权重。
- 上式并不是严格的
KL
散度,它用到的是两个非归一化概率 $ p_1(v_i,v_j) $ 和 $ \hat p_1^\prime(v_i,v_j) = w_{i,j} $ 。 - 最小化
KL
散度等价于最小化交叉熵:
其中省略了常数项 $ \sum \hat p_1^\prime \log \hat p_1^\prime $ 。
2.1.3 保持二阶邻近性的 LINE
二阶邻近性适用于有向图和无向图。给定一个网络,不失一般性,我们假设它是有向的(一条无向边可以被认为是两条方向相反、权重相等的有向边)。二阶邻近性假设:共享邻域的顶点之间彼此相似。
在这种情况下,每个顶点也被视为一个特定的 “上下文”(
context
)。我们假设:如果两个顶点的上下文相似,则这两个顶点是相似的。因此,每个顶点扮演两个角色:顶点本身、以及其它顶点的特定上下文。我们引入两个向量 $ \mathbf{\vec u}_i $ 和 $ \mathbf{\vec u}_i^\prime $ ,其中 $ \mathbf{\vec u}_i $ 为顶点 $ v_i $ 作为顶点本身时的
$ p_2(v_j\mid v_i) = \frac{\exp\left(\mathbf{\vec u}_j^{\prime\top}\mathbf{\vec u}_i\right)}{\sum_{k=1}^{|V|}\exp\left(\mathbf{\vec u}_k^{\prime\top}\mathbf{\vec u}_i\right)} $representation
, $ \mathbf{\vec u}_i^\prime $ 为顶点 $ v_i $ 作为其它顶点的特定上下文时的representation
。对于每条有向边 $ (v_i,v_j) $ ,我们首先定义由顶点 $ v_i $ 生成上下文顶点 $ v_j $ 的概率为:其中 $ |V| $ 为顶点集合的大小。
对于每个顶点 $ v_i $ ,上式实际上定义了上下文(即网络上整个顶点集合)中的条件分布 $ p_2(\cdot\mid v_i) $ 。如前所述,二阶邻近性假设具有相似上下文分布的顶点之间彼此相似。为了保持二阶邻近性,我们应该使得由低维
$ O_2 = \sum_{v_i\in V} \lambda_i\times \text{dist}\left(\hat p_2(\cdot\mid v_i),p_2(\cdot\mid v_i)\right) $representation
指定的上下文条件分布 $ p_2(\cdot\mid v_i) $ 接近经验分布 $ \hat p_2(\cdot\mid v_i) $ 。因此,我们最小化以下目标函数:其中:
$ \lambda_i $ 为顶点 $ v_i $ 的重要性。由于网络中顶点的重要性可能不同,我们在目标函数中引入了 $ \lambda_i $ 来表示顶点 $ v_i $ 在网络中的重要性。 $ \lambda_i $ 可以通过顶点的
degree
来衡量,也可以通过PageRank
等算法进行估计。注意:目标函数 $ O_1 $ 中并未引入顶点重要性,而目标函数 $ O_2 $ 中引入了顶点重要性。这里引入顶点重要性是为了得到 $ O_2 $ 的一个简洁的公式。
$ \text{dist}(\cdot,\cdot) $ 是两个概率分布之间的距离。
经验分布 $ \hat p_2(\cdot\mid v_i) $ 定义为 $ \hat p_2(v_j\mid v_i) = \frac{w_{i,j}}{d_i} $ ,其中 $ w_{i,j} $ 是边 $ (v_i,v_j) $ 的权重, $ d_i $ 是顶点 $ v_i $ 的出度
out-degree
,即 $ d_i=\sum_{k\in \mathcal N_i}w_{i,k} $ , $ \mathcal N_i $ 为顶点 $ v_i $ 的out-neighbors
。
在本文中,为简单起见,我们将 $ \lambda_i $ 设为顶点 $ v_i $ 的
$ O_2 = -\sum_{(v_i,v_j)\in E} w_{i,j}\log p_2(v_j\mid v_i) $out-degree
,即 $ \lambda_i = d_i $ 。这里我们也采用KL
散度作为距离函数。忽略一些常量,则我们得到:通过最小化 $ O_2 $ 从而得到 $ \left\{\mathbf{\vec u}_i\right\}_{i=1}^{|V|},\left\{\mathbf{\vec u}_i^\prime\right\}_{i=1}^{|V|} $ ,我们可以得到顶点 $ v_i $ 在 $ d $ 维空间中的
representation
$ \mathbf{\vec u}_i $ 。读者注:
- 上式的物理意义为:条件概率的加权负对数似然,每一项权重为边的权重。
- 与 $ O_1 $ 相反,这里是严格的
KL
散度,它用到的是两个归一化概率 $ p_2(v_j\mid v_i) $ 和 $ \hat p_2(v_j\mid v_i) $ 。 - 同样地,最小化
KL
散度等价于最小化交叉熵。 - 二阶邻近性
LINE
类似于上下文窗口长度为1
的DeepWalk
,但是DeepWalk
仅用于无权图而LINE
可用于带权图。
2.1.4 组合一阶邻近性和二阶邻近性
为了通过同时保持一阶邻近性和二阶邻近性来嵌入网络,我们在实践中发现一种简单的、有效的方法是:分别训练一阶邻近性
LINE
模型、二阶邻近性LINE
模型;然后对于每个顶点,拼接这两种方法得到的embedding
。实验部分作者提到:需要对拼接后的向量各维度进行加权从而平衡一阶
representation
向量和二阶representation
向量的关系。在监督学习任务中,可以基于训练数据自动得到权重;在无监督学习任务中,无法配置这种权重。因此组合一阶邻近性和二阶邻近性仅用在监督学习任务中。组合一阶邻近性和二阶邻近性的更合理的方法是联合训练目标函数 $ O_1 $ 和 $ O_2 $ ,我们将其留作未来的工作。
2.1.5 模型优化
负采样:优化目标函数 $ O_2 $ 的计算量很大,在计算条件概率 $ p_2(\cdot \mid v_i) $ 时需要对整个顶点集合进行求和。为了解决这个问题,我们采用了负采样方法,它对每条边 $ (v_i,v_j) $ 根据一些噪声分布
$ \log \sigma\left(\mathbf{\vec u}_j^{\prime \top} \mathbf{\vec u}_i\right) + \sum_{n=1}^K \mathbb E_{v_n\sim P_n(v)}\left[\log\sigma\left(-\mathbf{\vec u}_n^{\prime \top} \mathbf{\vec u}_i\right)\right] $noisy distribution
来负采样多条负边negative edge
。具体而言,我们为每条边 $ (v_i,v_j) $ 指定以下目标函数:其中:
- $ \sigma(x) = 1/(1+\exp(-x)) $ 为
sigmoid
函数。 - $ \mathbb E[\cdot] $ 为期望。
- $ P_n(v) $ 为噪声分布。
注意:目标函数 $ O_1 $ 中的概率 $ p_1(v_i,v_j) $ 不涉及对整个顶点集合进行求和。
第一项对观察到的边进行建模,第二项对从噪声分布中采样的负边进行建模, $ K $ 是负边的数量。我们根据
Word2Vec
的建议设置 $ P_n(v) \propto d_v^{3/4} $ ,其中 $ d_v $ 为顶点 $ v $ 的出度out-degree
。- $ \sigma(x) = 1/(1+\exp(-x)) $ 为
对于目标函数 $ O_1 $ ,存在一个平凡解
$ \mathbf{\vec u}_i = (+\infty,+\infty,\cdots,+\infty)^\top,\quad i=1,2,\cdots,|V| $trivial solution
:此时 $ p_1(v_i,v_j) = \frac{1}{1+\exp\left(-\mathbf{\vec u}_i \cdot \mathbf{\vec u}_j \right)} = 1 $ ,使得 $ O_1 = 0 $ 取最小值。
为了避免平凡解,我们也可以利用负采样方法,对于每条边 $ (v_i,v_j) $ :
$ \log \sigma\left(\mathbf{\vec u}_j^{ \top} \mathbf{\vec u}_i\right) + \sum_{n=1}^K \mathbb E_{v_n\sim P_n(v)}\left[\log\sigma\left(-\mathbf{\vec u}_n^{ \top} \mathbf{\vec u}_i\right)\right] $第一项对观察到的边进行建模,第二项对从噪声分布中采样的负边进行建模, $ K $ 是负边的数量。
注意这里没有上下文顶点,因此没有 $ \mathbf{\vec u}_j^\prime $ 。
2.1.6 边采样
我们采用异步随机梯度算法
$ \nabla_{\mathbf{\vec u}_i} O_2 = w_{i,j} \times \frac{\partial \log p_2(v_j\mid v_i)}{\partial \mathbf{\vec u}_i} $ASGD
来优化目标函数。在每一步中,ASGD
算法采样了一个mini-batch
的边,然后更新模型参数。假设采样到边 $ (v_i,v_j) $ ,则顶点 $ v_i $ 的embedding
向量 $ \mathbf{\vec u}_i $ 被更新为:注意,梯度将乘以边的权重。当边的权重具有高方差时,这将成为问题。例如,在一个单词共现网络中,一些词会共现很多次(例如,数万次),而另一些词只会共现几次。在这样的网络中,梯度的
scale
不同,很难找到一个好的学习率:- 如果我们根据权重小的边选择较大的学习率,那么权重大的边上的梯度将会爆炸。
- 如果我们根据权重大的边选择较小的学习率,那么权重小的边上的梯度会非常小。
基于边采样
edge-sampling
的优化:解决上述问题的直觉是,如果所有边的权重相等(例如,具有二元边binary edge
的网络),那么如何选择合适的学习率将不再成为问题。因此,一个简单的处理是将加权边展开为多个二元边。例如,将权重为 $ w $ 的边展开为 $ w $ 条二元边。虽然这能够解决问题,但是会显著增加内存需求,尤其是当边的权重非常大时,因为这显著增加边的数量。为此,可以从原始边中采样,并将采样后的边视为二元边,采样概率与原始边的权重成正比。通过这种边采样处理,整体目标函数保持不变。问题归结为如何根据权重对边进行采样。
令 $ W=(w_1,w_2,\cdots,w_{|E|}) $ 为边权重的序列。
- 首先,简单地计算权重之和 $ w_{\text{sum}} = \sum_{i=1}^{|E|}w_i $ 。
- 然后,在 $ [0,w_\text{sum}] $ 范围内随机采样一个值,看看这个随机值落在哪个区间 $ \left[\sum_{j=0}^{i-1}w_j, \sum_{j=0}^i w_j\right) $ 。
该方法需要 $ O(|E|) $ 的时间来采样,当边的数量 $ |E| $ 很大时,其代价太高。我们使用
alias table
方法来根据边的权重来采样。当从相同的离散分布中重复采样时,其平摊的时间复杂度为 $ O(1) $ 。从
alias table
中采样一条正边需要 $ O(1) $ 时间。此外,负采样优化需要 $ O(d(K+1)) $ 时间,其中 $ K $ 为负采样数量。因此,每个step
都需要 $ O(dK) $ 时间。在实践中,我们发现用于优化的
step
数量通常与边的数量 $ O(|E|) $ 成正比。因此,LINE
的整体时间复杂度为 $ O(dK|E|) $ ,与边的数量 $ |E| $ 成线性关系,而不依赖于顶点数量 $ |V| $ 。边采样在不影响效率的情况下提高了随机梯度下降的效果。
2.1.7 讨论
我们讨论了
LINE
模型的几个实际问题。低度
low degree
顶点 :一个实际问题是如何准确地嵌入degree
较小的顶点。由于此类顶点的邻居数量非常少,因此很难准确地推断其representation
,尤其是使用严重依赖于 “上下文” 数量的二阶邻近性方法。一种直觉的解决方案是通过添加更高阶的邻居(如邻居的邻居)来扩展这些顶点的邻居。在本文中,我们只考虑向每个顶点添加二阶邻居,即邻居的邻居。顶点 $ v_i $ 和它的二阶邻居 $ v_j $ 之间的权重被设置为:
$ w_{i,j} = \sum_{k\in \mathcal N_i} w_{i,k} \times \frac{w_{k,j}}{d_k} $其中:
- $ \mathcal N_i $ 为顶点 $ v_i $ 的一阶邻居集合。
- $ v_j \in \{v\mid v \in \bigcup_{k} \mathcal N_k ,v_k\in \mathcal N_i,v\ne v_i\} $ 为顶点 $ v_i $ 的二阶邻居集合。
实践中,只能添加与
low degree
顶点 $ v_i $ 具有最大邻近性 $ w_{i,j} $ 的二阶邻居顶点子集 $ \{v_j\} $ 。新顶点:另一个实际问题是如何找到新顶点的
representation
。对于一个新顶点 $ v_i $ ,如果它与现有顶点存在链接,则我们可以获得新顶点在现有顶点上的经验分布 $ \hat p_1(\cdot,v_i), \hat p_2(\cdot\mid v_i) $ 。为了获得新顶点的
$ -\sum_{j\in \mathcal N_i} w_{j,i} \log p_1(v_j,v_i)\\ -\sum_{j\in \mathcal N_i}w_{j,i} \log p_2(v_j\mid v_i) $embedding
,根据目标函数 $ O_1 $ 和 $ O_2 $ ,一个直接方法是最小化以下目标函数之一:我们更新新顶点的
embedding
,并保留现有顶点的embedding
。注意,对于有向边的图,需要考虑新顶点到已有顶点的链接、以及已有顶点到新顶点的链接,一共两个方向。
如果新顶点和现有顶点之间不存在链接,则我们必须求助于其它信息,如顶点的文本信息。我们将其留作我们未来的工作。
未来工作:
- 研究网络中一阶邻近性和二阶邻近性以外的高阶邻近性。
- 研究异质信息网络的
embedding
,例如具有多种类型的顶点。
2.2 实验
我们通过实验评估了
LINE
的效果和效率。我们将LINE
应用于几个不同类型的、大型的现实世界网络,包括一个语言网络language network
、两个社交网络social network
、两个引文网络citation network
。数据集:
- 语言网络
Language Network
数据集:我们从整个英文维基百科页面构建了一个单词共现网络。我们选择滑动窗口为5
,并认为滑动窗口内的单词是共现的。出现频次小于5
的单词被过滤掉。 - 社交网络
Social Network
数据集:和DeepWalk
一致,我们也采用Flickr
和Youtube
数据集。Flickr
网络比Youtube
网络更稠密。 - 引文网络
Citation Network
数据集:使用DBLP
数据集构建的作者引文网络author citation network
、论文引用网络paper citation network
。作者引文网络记录了一位作者撰写、并被另一位作者引文的论文数量。
这些数据集的统计见下表,其中:
- 所有这些网络囊括了有向图/无向图,带权图/无权图。
- 每个网络至少包含
50
万顶点和数百万条边,最大的网络包含200
万顶点和十亿条边。
- 语言网络
baseline
方法:我们将LINE
模型与几种现有的graph embedding
方法进行比较,这些方法能够扩展到非常大的网络。我们没有与一些经典的graph embedding
算法(如MDS
、IsoMap
、Laplacian eigenmap
)进行比较,因为这些算法无法处理如此规模的网络。Graph Factorization:GF
:一个信息网络可以表示为一个亲和度矩阵affinity matrix
,并通过矩阵分解来获取每个顶点的低维representation
。GF
方法通过随机梯度下降法进行优化,因此可以处理大型网络。但是它仅适合无向图。DeepWalk
:DeepWalk
是最近提出的、一种用于社交网络embedding
的方法,它仅适用于无权网络。对每个顶点,DeepWalk
使用从该顶点开始的截断随机游走来获取上下文信息,基于上下文信息建模来获取每个顶点的低维表达。因此,该方法仅利用二阶邻近性。LINE-SGD
:直接通过SGD
来优化目标函数的LINE
模型。在优化过程中并没有使用边采样策略,因此对于采样到的正边,我们需要将边的权重直接乘以梯度。该方法有两个变种:
LINE-SGD(1st)
:LINE-SGD
的一阶邻近模型,它的优化目标是 $ O_1 $ 。该模型仅适用于无向图。LINE-SGD(2nd)
:LINE-SGD
的二阶邻近模型,它的优化目标是 $ O_2 $ 。该模型可用于无向图和有向图。
LINE
:标准的LINE
模型。在优化过程中使用了边采用策略。该方法也有两个变种,分别为:
LINE(1st)
:LINE
的一阶邻近模型,它的优化目标是 $ O_1 $ 。该模型仅适用于无向图。LINE(2nd)
:LINE
的二阶邻近模型,它的优化目标是 $ O_2 $ 。该模型可用于无向图和有向图。
LINE(1st+2nd)
:同时拼接了LINE(1st)
和LINE(2nd)
学到的representation
向量,得到每个顶点的一个拼接后的、更长的representation
向量。需要对拼接后的向量各维度进行加权从而平衡一阶
representation
向量和二阶representation
向量的关系。在监督学习任务中,可以基于训练数据自动得到权重;在无监督学习任务中,无法配置这种权重。因此LINE(1st+2nd)
仅用在监督学习任务中。
参数配置:
所有方法都统一的配置:
- 随机梯度下降的
batch-size = 1
,即每个批次一个样本。因此迭代的样本数量就等于更新的step
数量。 - 学习率 $ \rho_t = \rho_0(1-t/T) $ ,其中: $ \rho_0 = 0.025 $ 为初始化学习率; $ t $ 表示第 $ t $ 个更新
step
; $ T $ 为总的更新step
数量。 - 所有得到的
embedding
向量都进行归一化: $ ||\mathbf{\vec w}||_2 = 1 $ 。 - 为公平比较,语言网络数据集的
embedding
向量维度设为200
(因为word2vec
方法采用该配置);其它网络数据集的embedding
向量维度默认设为128
。
- 随机梯度下降的
对于
LINE
及其变种,负采样比例 $ K=5 $ 。对于
LINE(1st)
、LINE(2nd)
及其变种,总迭代步数 $ T $ 等于100
亿 ;对于GF
,总迭代步数 $ T $ 等于200
亿。对于
DeepWalk
窗口大小win=10
,游走序列长度t=40
,每个顶点出发的序列数量 $ \gamma = 40 $ 。
2.2.1 语言网络
语言网络:语言网络数据集包含
200
万顶点和10
亿条边。我们使用两个任务来评估学到的embedding
的有效性:单词类比word analogy
、文档分类document classification
。单词类比
$ a : b \rightarrow c: \;? $word analogy
:给定一对单词(a,b)
和一个单词c
,该任务的目标是寻找单词d
,使得c
和d
的关系类比于a
和b
的关系。记作:如:“(中国,北京 )” 对应于 “(法国,?)” ,这里的目标单词为 “巴黎”。
因此给定单词
$ d^* = \arg\max_d\cos\left(\mathbf{\vec u}_b - \mathbf{\vec u}_a + \mathbf{\vec u}_c ,\mathbf{\vec u}_d\right) $a,b,c
的embedding
向量,该任务的目标是寻找单词 $ d^* $ ,使得该单词的embedding
尽可能与 $ \mathbf{\vec u}_b - \mathbf{\vec u}_a + \mathbf{\vec u}_c $ 相似:在这个任务中使用了两种类型的单词类比:语义
semantic
、句法syntactic
。在维基百科语言网络上的单词类比结果如下表所示。其中:
- 对
GF
方法,边的权重定义为单词共现次数的对数,这比直接采用单词共现次数更好的性能。 - 对
DeepWalk
方法,尝试使用不同的截断阈值从而将网络权重二元化binarize
。最终当所有边都被保留下来时,模型性能最好。 SkipGram
直接从原始维基百科页面内容文本而不是语言网络来学习词向量。窗口大小设置为5
。- 所有模型都是在单机上运行
16
个线程来计算,机器配置:1T
内存、2.0GHZ
的40
个CPU
。
结论:
LINE(2nd)
优于所有其它方法。LINE(2nd)
优于GF,LINE(1st)
等一阶方法。这表明:和一阶邻近性相比,二阶邻近性更好的捕获了单词的语义。因为如果单词
a
和b
的二阶邻近性很大,则意味着可以在相同上下文中可以相互替换单词a
和b
。这比一阶邻近性更能说明相似语义。虽然
DeepWalk
也探索了二阶邻近性,但是其性能不如LINE(2nd)
,甚至不如一阶方法的GF,LINE(1st)
。这是因为
DeepWalk
忽略了单词共现次数的原因,事实上语言网络中单词共现频次非常重要。这个解释不通。单词共现次数隐含在随机游走过程中:单词共现次数越大,则随机游走被采样到的概率越大。
在原始语料上训练的
SkipGram
模型也不如LINE(2nd)
,原因可能是语言网络比原始单词序列更好的捕获了单词共现的全局信息。
采用
SGD
直接优化的LINE
版本效果要差得多。这是因为语言网络的边的权重范围从个位数到上千万,方差很大。这使得最优化过程受到严重影响。在梯度更新过程中进行边采样处理的
LINE
模型有效解决了该问题,最终效果要好得多。LINE(1st)
和LINE(2nd)
的训练效率很高,对于两百万顶点、十亿边的网络只需要不到3
个小时。LINE(1st),LINE(2nd)
训练速度比GF
至少快10%
,比DeepWalk
快5
倍。LINE-SGD
版本要稍慢,原因是在梯度更新过程中必须应用阈值截断技术防止梯度爆炸。
- 对
文档分类:另一种评估
word embedding
质量的方法是使用word embedding
来计算document representation
,然后通过文档分类任务评估效果。为了获得文档向量,我们选择了一种非常简单的方法,即选取该文档中所有单词的word embedding
的均值。这是因为我们的目标是将不同方法得到的word embedding
进行对比,而不是寻找document embedding
的最佳方法。我们从维基百科种选择
7
种不同的类别 “艺术、历史、人类、数学、自然、技术、体育”,对每个类别随机抽取1
万篇文章,其中每篇文章都只属于单个类别(如果文章属于多个类别就丢掉)。所有这些文章及其类别就构成了一个带标记的多类别语料库。我们随机抽取不同百分比的标记文档进行训练,剩余部分进行评估。所有文档向量都使用
LibLinear package
训练one-vs-rest
逻辑回归分类器。我们报告了分类结果的Micro-F1
和Macro-F1
指标。在维基百科语言网络上的文本分类结果如下表所示。其中我们分别抽取
10%~90%
的标记样本作为训练集,剩余部分作为测试集。对每一种拆分我们随机执行10
轮取平均结果。结论:
GF
方法优于DeepWalk
,因为DeepWalk
忽略了单词共现次数。LINE-SGD
性能较差,因为边权重方差很大所以LINE-SGD
的梯度更新过程非常困难。采用边采样的
LINE
模型优于LINE-SGD
,因为梯度更新过程中使用边采样能解决边权重方差很大带来的学习率选择问题。LINE(1st) + LINE(2nd)
性能明显优于其它所有方法,这表明一阶邻近度和二阶邻近度是互补的。注意,对于监督学习任务,拼接了
LINE(1st)
和LINE(2nd)
学到的embedding
是可行的。
为了更深入地了解一阶邻近性和二阶邻近性,下表对给定单词,分别采用一阶邻近性模型和二阶邻近性模型召回其最相似的
top
单词。可以看到:- 二阶邻近度召回的最相似单词都是语义相关的单词。
- 一阶邻近度召回的最相似单词是语法相关、语义相关的混合体。
2.2.2 社交网络
相比语言网络,社交网络更为稀疏,尤其是
YouTube
网络。我们通过多标签分类任务来评估每个模型的embedding
效果。多标签分类任务将每个顶点分配到一个或者多个类别,每个类别代表一个社区community
。最终评估分类结果的Micro-F1
和Macro-F
指标。我们分别抽取
10%~90%
的标记样本作为训练集,剩余部分作为测试集。对每一种拆分随机执行10
轮取平均结果。Flickr Network
数据集:我们选择最热门的5
个类别作为分类的类别,评估结果如下表。LINE(1st)
模型优于GF
模型,这表明LINE(1st)
模型比GF
模型具有更好的一阶邻近性建模能力。LINE(2nd)
模型优于DeepWalk
模型,这表明LINE(2nd)
模型比DeepWalk
模型具有更好的二阶邻近性建模能力。LINE(1st)
模型略微优于LINE(2nd)
模型,这和语言网络的结论相反。原因有两个:- 社交网络中,一阶邻近性比二阶邻近性更重要,因为一阶关系表明两个顶点的关系更紧密。
- 当网络非常稀疏并且顶点的平均邻居数太小时,二阶邻近性可能不太准确。
LINE(1st) + LINE(2nd)
性能明显优于其它所有方法,这表明一阶邻近性和二阶邻近性是互补的。
YouTube
数据集:YouTube
网络非常稀疏,每个顶点的平均degree
小于5
。对该数据集的评估结果如下表。- 在不同规模训练集上,
LINE(1st)
一致性的优于LINE(2nd)
。这和Flickr
数据集一致。
- 在不同规模训练集上,
由于极度稀疏性,
LINE(2nd)
性能甚至不如DeepWalk
。- 在
128
维或256
维上,LINE(1st) + LINE(2nd)
优于DeepWalk
。这表明一阶邻近性和二阶邻近性是互补的,并能够缓解网络稀疏问题。
考察
DeepWalk
是如何通过截断的随机游走来解决网络稀疏性问题的。随机游走类似于深度优先搜索,这种方式可以通过引入间接邻居来迅速缓解邻域稀疏的问题。但是这种方式也可能引入距离较远的顶点,距离较远意味着相关性不大。一种更合理的方式是采用广度优先搜索策略来扩展每个稀疏顶点的邻域,如二阶邻域策略。下表中,括号中的指标是二阶邻域策略的表现。其中我们对邻居数量少于
1000
的顶点扩展其二阶邻域,直到扩展邻域集合规模达到1000
。我们发现添加超过1000
个顶点并不会进一步提高性能。采用二阶邻域策略的网络称作重构网络reconstructed network
。可以看到:采用二阶邻域策略之后
GF,LINE(1st),LINE(2nd)
的性能都得到提升,其中LINE(2nd)
的性能提升最为明显。采用二阶邻域策略之后
LINE(2nd)
大多数情况下都优于DeepWalk
。采用二阶邻域策略之后
LINE(1st+2nd)
性能并没有提升太多。这意味着原始网络的一阶邻近性和二阶邻近性组合已经捕获了大部分信息。因此,
LINE(1st+2nd)
是一个非常有效的Graph Embedding
方式,适用于dense
网络和sparse
网络。
注意:二阶邻域策略中,新增邻域顶点的权重需要重新计算,并且优先添加权重最大的顶点。
- 在
2.2.3 引文网络
引文网络数据集包括作者引文网络、论文引用网络,它们都是有向图。由于
GF
和LINE(1st)
都无法应用于有向图,因此这里仅仅比较DeepWalk
和LINE(2nd)
。我们还通过多标签分类任务评估顶点
embedding
的效果。我们选择7
个热门的会议(AAAI,CIKM,ICML,KDD,NIPS,SIGIR,WWW
)作为分类类别,在会议中发表的作者或者论文被标记为对应类别。最终评估分类结果的Micro-F1
和Macro-F
指标。我们分别抽取
10%~90%
的标记样本作为训练集,剩余部分作为测试集。对每一种拆分随机执行10
轮取平均结果。作者引用网络数据集的评估结果如下表所示。
- 由于网络稀疏,因此
DeepWalk
性能优于LINE(2nd)
。 - 通过二阶邻域策略重构网络,邻域规模的阈值设定为
500
,最终LINE(2nd)
性能大幅提升并且优于DeepWalk
。 LINE-SGD(2nd)
性能较差,因为边权重方差很大所以LINE-SGD
的梯度更新过程非常困难。
- 由于网络稀疏,因此
论文引用网络数据集的评估结果如下所示。
LINE(2nd)
的性能明显优于DeepWalk
。这是由于在论文引用网络中的随机游走只能沿着引用路径来游走,这使得一些时间比较久远的、相关性不大的论文被作为上下文。相比之下,
LINE(2nd)
的上下文都是最近的、密切相关的参考文献,因此更为合理。通过二阶邻域策略重构网络,邻域规模的阈值设定为
200
,最终LINE(2nd)
性能得到进一步提升。
2.2.4 可视化
graph embedding
的一个重要用途是输出有意义的Graph
可视化。我们选择作者引文网络数据集来可视化,选择了三个领域的不同会议:数据挖掘data mining
领域的WWW,KDD
会议、机器学习machine learning
领域 的NIPS,IM
L 会议、计算机视觉computer vision
领域的CVPR,ICCV
会议。作者引用网络基于这些会议公开发表的文章来构建,丢弃
degree < 3
的作者(表明这些作者不怎么重要),最终得到一个包含18561
个顶点、207074
条边的网络。可视化这个作者引文网络非常具有挑战性,因为这三个研究领域彼此非常接近。我们首先通过不同的模型来得到
graph embedding
,然后将顶点的embedding
向量通过t-SNE
进行可视化。下图中不同颜色代表不同的领域:红色代表数据挖掘,蓝色代表机器学习,绿色代表计算机视觉。GF
模型的可视化结果不是很有意义,因为不同领域的顶点并没有聚集在一起。DeepWalk
模型的可视化结果要好得多,但是很多不同领域的顶点密集的聚集在中心区域,其中大多数是degree
较高的顶点。这是因为:
DeepWalk
使用基于截断随机游走的方式来生成顶点的邻居,由于随机性这会带来很大的噪声。尤其是degree
较高的顶点,因为对于degree
较高的顶点和大量其它顶点共现。LINE(2nd)
模型的可视化结果更好、更具有意义。
2.2.5 网络稀疏性
以社交网络为例,我们分析了模型性能和网络稀疏性的影响。
我们首先研究网络的稀疏性如何影响
LINE(1st)
和LINE(2nd)
。图a
给出了Flickr
网络链接的百分比和LINE
模型性能的关系。选择Flickr
的原因是它比YouTube
网络更密集。我们从原始网络中随机采样不同比例的链接从而构建具有不同稀疏性的网络。可以看到:- 一开始网络非常稀疏时,
LINE(1st)
的性能好于LINE(2nd)
。 - 当网络逐渐密集时,
LINE(2nd)
的性能超越了LINE(1st)
。
这表明:当网络极其稀疏时二阶邻近性模型受到影响;当每个顶点附近有足够的邻居时,二阶邻近性模型优于一阶邻近性模型。
- 一开始网络非常稀疏时,
图
b
给出了YouTube
数据集原始网络和二阶邻域策略重构网络中,顶点degree
和模型性能指标的关系。我们将顶点根据degree
来分组:: $ (0,1],[2,3],[5,6],[1,12],[13,30],[31,+\infty) $ 。然后评估每个分组的顶点分类结果指标。可以看到:- 总体而言,当顶点的
degree
增加时,所有模型的效果都得到提升。
- 总体而言,当顶点的
在原始网络中除第一个分组之外,
LINE(2nd)
的性能始终优于LINE(1nd)
。这表明二阶邻近性模型不适用于degree
较小的点。- 在重构网络中,
LINE(1st)
和LINE(2nd)
都得到了改善,尤其是LINE(2nd)
。 - 在重构网络中,
LINE(2nd)
始终优于DeepWalk
。
- 在重构网络中,
2.2.6 参数敏感性
我们在重建的
Youtube
网络上考察了不同的embedding
维度 $ d $ 和LINE
模型性能的关系,以及样本数量和模型收敛速度的关系。图
a
给出了不同维度 $ d $ 时模型的性能。可以看到:当 $ d $ 过大时,LINE(1st)
和LINE(2nd)
性能有所下降。图
b
给出了LINE
和DeepWalk
在优化过程中收敛速度和样本数量的关系。可以看到:LINE(2nd)
始终优于LINE(1st)
和DeepWalk
,并且LINE(1st)
和LINE(2nd)
收敛速度都快于DeepWalk
。注意:这里的样本量指的是模型训练过程中见过的总样本量,包括重复的样本。由于
batch-size = 1
,因此每个sample
需要一个迭代step
,因此样本数量也等于迭代step
。
2.2.7 可扩展性
最后,我们研究了采用边采样和异步随机梯度下降法的
LINE
模型的可扩展性scalability
。我们部署了多线程进行优化。- 图
a
给出了在YouTube
数据集上的线程数及其加速比。可以看到线程加速比接近线性。 - 图
b
给出了使用多线程进行模型更新时,模型性能的波动。可以看到采用多线程训练模型时,模型的最终性能保持稳定。
这两个结果表明:
LINE
模型具有很好的可扩展性(即并行度)。- 图
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论