数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
一、DeepWalk [2014]
network representation
的稀疏性既是优点、也是缺点。稀疏性有助于设计高效的离散算法,但是会使统计学习中的泛化变得更加困难。network
中的机器学习应用(例如network classification
、内容推荐、异常检测、缺失链接预测)必须能够处理这种稀疏性才能生存。在论文
《DeepWalk: Online Learning of Social Representations》
中,作者首次将深度学习(无监督特征学习)技术引入到网络分析network analysis
中,而深度学习技术已经在自然语言处理中取得了成功。论文开发了一种算法(DeepWalk
),它通过对短short
的随机游走流a stream of short random walks
进行建模,从而学习图顶点的社交表示social representation
。social representation
是捕获邻域相似性neighborhood similarity
和社区成员关系community membership
的顶点的潜在特征。这些潜在representation
在低维的、连续的向量空间中对社交关系social relation
进行编码。DeepWalk
将神经语言模型推广为处理由一组随机生成的游走walks
组成的特殊语言。这些神经语言模型已被用于捕获人类语言的语义结构semantic structure
和句法结构syntactic structure
,甚至是逻辑类比logical analogies
。DeepWalk
将图作为输入,并生成潜在representation
作为输出。论文的方法应用于经过充分研究的空手道网络
Karate network
,其结果如下图所示。Karate network
通常以force-directed
布局呈现,如图a
所示。图b
展示了论文方法的输出,其中具有两个潜在维度。除了惊人的相似性之外,我们注意到(图b
)的线性可分部分对应于通过输入图(图a
)中的modularity maximization
发现的clusters
(以不同顶点颜色表示)。下图中,注意输入图中的社区结构和embedding
之间的对应关系。顶点颜色表示输入图的modularity-based clustering
。为了展示
DeepWalk
在现实世界场景中的潜力,论文评估了它在大型异质图large heterogeneous graph
中具有挑战性的multi-label network classification
问题的性能。在关系分类relational classification
问题中,特征向量之间的链接links
违反了传统的独立同分布的假设。解决这个问题的技术通常使用近似推断技术approximate inference technique
来利用依赖信息dependency information
从而改善分类结果。论文通过学习图的label-independent representation
来远离这些方法。论文的representation
质量不受标记顶点选择的影响,因此它们可以在任务之间共享。DepWalk
在创建社交维度social dimensions
方面优于其它潜在representation
方法,尤其是在标记顶点稀疏的情况下。论文的representation
可以通过非常简单的线性分类器(例如逻辑回归)获得强大的性能。论文的representation
是通用的,可以与任何分类方法(包括迭代式推断方法iterative inference method
)结合使用。DeepWalk
实现了所有的这些,同时是一种可简单并行的在线算法。论文的贡献如下:
- 我们引入深度学习作为分析图的工具,从而构建适用于统计建模的鲁棒的
representation
。DeepWalk
学习短的随机游走中存在的结构规律structural regularity
。 - 我们在多个社交网络上广泛评估了我们在多标签分类任务上的表现。在标签稀疏的情况下,我们展示了显著提高的分类性能。在最稀疏的问题上,我们获得了
Micro F1
的5% - 10%
的提升。在某些情况下,即使训练数据减少60%
,DeepWalk
的representation
也可以胜过其它竞争对手。 - 我们通过使用并行实现
parallel implementation
来构建web-scale
图(例如YouTube
) 的representation
,从而证明了我们算法的可扩展性。此外,我们描述了所需的最小修改从而构建我们方法的streaming
版本。
- 我们引入深度学习作为分析图的工具,从而构建适用于统计建模的鲁棒的
DeepWalk
是一种学习网络中顶点潜在representation
的新方法。这些潜在representation
在连续向量空间中编码社交关系social relation
,从而很容易被统计模型所利用。DeepWalk
推广了语言模型和无监督特征学习(或深度学习)从单词序列到graph
的最新进展。DeepWalk
使用从截断的随机游走中获得的局部信息,通过将随机游走视为等价的sentence
来学习潜在representation
。DeepWalk
也是可扩展scalable
的。它是一种在线学习算法online learning algorithm
,可以构建有用的增量结果,并且可以简单地并行化。这些品质使其适用于广泛的现实世界application
,例如network classification
和异常检测。DeepWalk
与以前的工作之间的主要区别可以总结如下:DeepWalk
学习潜在的social representation
,而不是计算中心统计量centrality statistics
(如《Leveraging label-independent features for classification in sparsely labeled networks: An empirical study》
)、或者分区统计量partitioning statistics
(如《Leveraging social media networks for classification》
)。DeepWalk
不尝试扩展分类程序本身(通过集体推断collective inference
如《Collective classification in network data》
,或者graph kernel
如《Diffuusion kernels on graphs and other discrete input spaces》
)。DeepWalk
提出了一种仅使用局部信息的、可扩展的、在线方法。大多数方法需要全局信息、并且是离线的。DeepWalk
将无监督representation learning
应用于图。
接下来,我们讨论
network classification
和无监督feature learning
方面的相关工作。相关工作:
关系学习
Relational Learning
:关系分类relational classification
(或者集体分类collective classification
)方法使用数据item
之间的链接links
作为分类过程的一部分。集体分类问题中的精确推断exact inference
是NP-hard
问题,其解决方案主要集中在近似推断算法。这些近似推断算法可能无法保证收敛。与我们的工作最相关的关系分类算法包括:学习
clusters
(《Leveraging relational autocorrelation with latent group models》
)、在附近节点之间添加边(《Using ghost edges for classification in sparsely labeled networks》
)、使用PageRank
(《Semi-supervised classification of network data using very few labels》
)、通过扩展关系分类来考虑额外的特征(《Multi-label relational neighbor classification using social context features》
),通过这些方法从而合并社区信息community information
。我们的工作采取了截然不同的方法。我们提出了一种学习网络结构
representation
的程序,而不是新的近似推断算法,然后可以由现有的推断程序inference procedure
(包括迭代式推断程序)来使用。人们还提出了很多从图中生成特征的技术。和这些技术相比,我们将特征创建过程构建为
representation learning
问题。人们也 提出了
graph kernel
(《Graph kernels》
) ,从而将关系数据用作分类过程的一部分。但是,除非近似(《Fast random walk graph kernel》
),否则它的速度非常慢。我们的方法与graph kernel
是互补的:我们没有将结构编码为核函数kernel function
的一部分,而是学习一种representation
,从而允许该representation
直接用于任何分类方法的特征。无监督特征学习
Unsupervised Feature Learning
:人们已经提出分布式representation learning
来建模概念之间的结构关系structural relationship
。这些representation
通过反向传播和梯度下降来进行训练。由于计算成本和数值不稳定,这些技术被放弃了十几年。最近,分布式计算允许训练更大的模型,并且用于无监督学习的数据出现增长。分布式
representation
通常通过神经网络进行训练,这些神经网络在计算机视觉、语音识别、自然语言处理等不同领域取得了进步。
DeepWalk
可以挖掘图 $ G $ 的局部结构,但是无法挖掘图 $ G $ 的整体结构。
1.1 模型
1.1.1 问题定义
考虑社交网络成员的分类问题。正式地,令 $ G=(V,E) $ ,其中 $ V $ 为图中所有的顶点(也称为网络的成员
member
), $ E \sube (V\times V) $ 为所有的边。给定一个部分标记的social network
$ G_L = ( V, E, X, Y) $ ,其中:- 特征 $ X\in \mathbb R^{|V|\times S} $ , $ S $ 为属性空间的维度, $ |V| $ 为顶点数量。
- $ Y\in \mathbb R^{|V|\in |\mathcal Y|} $ , $ \mathcal Y $ 为
label
空间, $ |\mathcal Y | $ 为分类类别数量。
在传统的机器学习分类
setting
中,我们的目标是学习将 $ X $ 的元素映射到标签集合 $ Y $ 的假设hypothesis
$ H(\cdot) $ 。在我们的例子中,我们可以利用嵌入在 $ G $ 结构中的样本依赖性example dependence
的重要信息,从而实现卓越的性能。在文献中,这被称作关系分类relational classification
(或者集体分类collective classification
)问题。关系分类的传统方法提出将问题作为无向马尔科夫网络
undirected Markov network
中的推断inference
,然后使用迭代式近似推断算法(例如迭代式分类算法《Iterative classi fication in relational data》
、吉布斯采样《Stochastic relaxation, gibbs distributions, and the bayesian restoration of images》
、或者标签松弛算法《On the foundations of relaxation labeling processes》
)来计算给定网络结构下标签的的后验分布。我们提出了一种不同的方法来捕获网络拓扑信息
network topology information
。我们没有混合label
空间从而将其视为特征空间的一部分,而是提出了一种无监督方法,该方法学习了捕获独立于label
分布的、图结构的特征。结构表示
structural representation
和标记任务labeling task
的这种分离避免了迭代式方法中可能发生的级联错误cascading error
。此外,相同的representation
可以用于与该网络有关的多个分类任务(这些分类任务有各自不同的label
)。我们的目标是学习 $ \mathbf X_E\in \mathbb R^{| V|\times d} $ ,其中 $ d $ 是一个较低的潜在维度。这些低维
representation
是分布式的,意味着每个社交概念social concept
都由维度的某个子集来表达,每个维度都有助于低维空间所表达的一组社交概念的集合。使用这些结构特征
structural feature
,我们将扩充属性空间从而帮助分类决策。这些结构特征是通用的,可以与任何分类算法(包括迭代式方法)一起使用。然而,我们相信这些特征的最大效用是:它们很容易与简单的机器学习算法集成。它们在现实世界的网络中可以适当地scale
,正如我们在论文中所展示的。
1.1.2 基础知识
我们寻求具有以下特性的
learning social representation
:- 适应性
adaptability
:真实的社交网络在不断演变,新的社交关系不应该要求一遍又一遍地重新训练整个网络。 - 社区感知
community aware
:潜在维度之间的距离应该能够代表评估网络成员之间社交相似性social similarity
的指标。 - 低维
low dimensional
:当标记数据稀疏时,低维模型泛化效果更好,并且加快收敛和推断速度。 - 连续
continuous
:除了提供社区成员community membership
的精细的视图之外,continuous representation
在社区之间具有平滑的决策边界,从而允许更鲁棒的分类。
我们满足这些要求的方法从短期随机游走的
stream
中学习顶点的representation
,这是最初为语言建模而设计的优化技术。在这里,我们首先回顾随机游走和语言建模language modeling
的基础知识,并描述了它们的组合如何满足我们的要求。- 适应性
随机游走
random walk
:我们将以顶点 $ v_i $ 为root
的随机游走表示为 $ \mathcal W_{v_i} $ 。 $ \mathcal W_{v_i} $ 是一个随机游走过程,其中包含随机变量 $ \left(\mathcal W_{v_i}^1,\mathcal W_{v_i}^2,\cdots,\mathcal W_{v_i}^k\right) $ 。 $ \mathcal W_{v_i}^k $ 是一个顶点,它是从顶点 $ \mathcal W_{v_i}^{k-1} $ 的邻居中随机选中的。随机游走已被用作内容推荐
content recommendation
和社区检测community detection
中各种问题的相似性度量similarity measure
。随机游走也是一类输出敏感算法output sensitive algorithm
的基础,这类算法使用随机游走来计算局部社区结构信息local community structure
,并且计算时间复杂度为input graph
规模的亚线性sublinear
。正是这种与局部结构的联系促使我们使用短的随机游走流
stream of short random walks
作为从网络中提取信息的基本工具。除了捕获社区信息之外,使用随机游走作为我们算法的基础还为我们提供了另外两个理想的特性:- 首先,局部探索很容易并行化。多个随机游走器
random walkers
(在不同的线程、进程、或者机器中)可以同时探索同一个图的不同部分。 - 其次,依靠从短的随机游走中获得的信息,可以在不需要全局重新计算的情况下适应图结构的微小变化。我们可以使用新的随机游走,从图变更的区域游走到整个图,从而以亚线性时间复杂度来更新已经训练好的模型。
- 首先,局部探索很容易并行化。多个随机游走器
幂律
power law
分布:选择在线随机游走作为捕获图结构的原语primitive
之后,我们现在需要一种合适的方法来捕获这些图结构信息。如果连通图的
degree
分布遵循幂律分布power law
(也叫作Zipf
定律),那么我们观察到顶点出现在短随机游走中的频率也遵循幂律分布。自然语言中的单词遵循类似的分布,语言模型language modeling
技术解释了这种分布行为。为了强调这种相似性,我们在下图中展示了两个不同的幂律分布:第一个来自一个图上的一系列短随机游走,第二个来自于英文维基百科的100,000
篇文章的文本。图a
给出了short random walk
中,顶点出现频次的分布。图b
给出了英文维基百科的10
万篇文章中,单词的频次分布。我们工作的一个核心贡献是这样的一种思想:用于建模自然语言(其中单词频率遵循幂律分布)的技术也可以复用于建模网络中的社区结构。
接下来我们将回顾语言建模中不断发展的工作,并将其转换为学习满足我们标准的顶点
representation
。
1.1.3 语言模型
语言模型的目标是估计特定单词序列在语料库
corpus
中出现的可能性。正式地,给定一个单词序列 $ \mathcal S=(w_0,w_1,\cdots,w_n) $ ,其中 $ w_i\in \mathbb V $ ( $ \mathbb V $ 为词典vocabulary
),我们希望在整个训练语料库上最大化 $ \text{Pr}(w_n\mid w_0,w_1,\cdots,w_{n-1}) $ 。最近在
representation learning
方面的工作聚焦于使用概率神经网络probabilistic neural network
来构建单词的general representation
,从而将语言建模的范围扩展到其原始目的之外。在这项工作中,我们提出了语言建模的泛化,以通过短随机游走流
stream
来探索图。这些随机游走可以被认为是一种特殊语言的短句short sentence
和短语short phrase
。我们进行直接的类比,从而在随机游走中,给定到目前为止访问的所有顶点序列来估计观察到顶点 $ v_i $ 的可能性,即 $ \text{Pr}(v_i\mid (v_1,v_2,\cdots,v_{i-1})) $ 。我们的目标是学习潜在
representation
,而不仅仅是节点共现node co-occurrence
的概率分布,因此我们引入一个映射函数 $ \Phi: V \rightarrow \mathbb R^{| V|\times d} $ 。该映射函数 $ \Phi(\cdot) $ 将图中每个顶点 $ v $ 映射到一个潜在的social representation
。即:我们想要的是顶点
representation
,而不是预估这个随机游走序列出现的概率。实际上,我们使用
$ \text{Pr}(v_i\mid (\Phi(v_1),\Phi(v_2),\cdots,\Phi(v_{i-1}))) $free parameters
的矩阵 $ \mathbf\Phi\in \mathbb R^{|V|\times d} $ 来表达 $ \Phi(\cdot) $ ,这在稍后将被用作我们的 $ \mathbf X_E $ 。然后,问题变成了似然估计:然而,随着游走序列长度的增加,计算这个目标函数变得不可行。
因为
sentence
越长,它出现的频次越低,样本过于稀疏。最近,在语言模型中的放松条件使得这个预测问题得到了解决。
- 首先,我们不是使用上下文来预测缺失单词
missing word
,而是使用一个单词来预测上下文。 - 其次,上下文由出现在给定单词左侧和右侧的单词组成。
- 最后,我们消除了对问题的顺序约束
ordering constraint
。即,模型需要最大化任何单词出现在上下文中的概率,而无需知道上下文与目标单词的偏移量。
应用到顶点建模中,这得到了优化问题:
$ \min_{\mathbf \Phi} - \log \text{Pr}(\{v_{i-w},\cdots,v_{i-1},v_{i+1},\cdots,v_{i+w}\}\mid \Phi(v_i)) $其中 $ w $ 为上下文窗口尺寸。
我们发现这些放松条件对于
social representation learning
是特别理想的。- 首先,顺序独立性假设
order independence assumption
更好地捕获了随机游走的nearness
的sense
。 - 其次,这种松弛条件对于通过构建一大批小模型来加速训练非常有用,因此一次给定一个顶点。
解决上式中的优化问题将得顶点
representation
,这些representation
捕获了顶点之间在局部图结构local graph structure
中的相似性。具有相似邻域的顶点将获得相似的representation
(编码了co-citation
相似性),并允许对机器学习任务进行泛化。- 首先,我们不是使用上下文来预测缺失单词
通过结合截断的随机游走和神经语言模型,我们制定了一种满足我们所有期望特性的方法。
- 该方法生成低维的社交网络
representation
,并存在于连续向量空间中。 - 该方法生成的
representation
对社区成员的潜在形式latent form
进行编码。 - 并且,由于该方法输出有用的
intermediate representation
,因此它可以适应不断变化的网络拓扑结构。
- 该方法生成低维的社交网络
1.1.4 DeepWalk
与任何语言建模算法一样,
DeepWalk
唯一需要的输入是语料库和词表 $ \mathbb V $ 。DeepWalk
将一组截断的短随机游走视为语料库,将图的顶点视为词表( $ \mathbb V = V $ ) 。虽然在训练之前知道随机游走中顶点集合 $ V $ 和顶点的频率分布是有益的,但是DeepWalk
在不知道顶点集合的情况下也可以工作。DeepWalk
算法主要由两部分组成:随机游走生产器、更新过程。随机游走生成器
random walk generator
:以图 $ G $ 作为输入并均匀随机采样一个顶点 $ v_i $ 作为随机游走 $ \mathcal W_{v_i} $ 的root
。随机游走从最近访问的顶点的邻域中均匀采样,直到游走序列长度达到最大长度 $ t $ 。虽然在我们的实验中,随机游走序列的长度设置为固定的(固定为 $ t $ ),但是理论上没有限制它们都是相同的长度。这些随机游走可能会重启(即返回
root
的传送概率teleport probability
),但是我们的初步结果并为表明使用重启能带来任何优势。更新过程:基于
SkipGram
语言模型来更新参数 $ \mathbf\Phi $ 。SkipGram
是一种语言模型,可最大化在一个句子中出现在窗口 $ w $ 内的单词之间的共现概率。在随机游走中,对于出现在窗口 $ w $ 中的所有上下文,我们最大化给定当前顶点 $ v_j $ 的
representation
的条件下,上下文顶点 $ u_k $ 出现的概率。
DeepWalk
算法:输入:
- 图 $ G( V, E) $
- 上下文窗口尺寸 $ w $
embedding size
$ d $- 每个节点开始的随机游走序列数量 $ \gamma $
- 每条随机游走序列长度 $ t $
输出:顶点
representation
矩阵 $ \mathbf \Phi\in \mathbb R^{| V|\times d} $算法步骤:
representation
初始化:从均匀分布中采样,得到初始的 $ \mathbf\Phi $ 。从 $ V $ 构建一颗二叉树
binary tree
$ T $建立二叉树是为了后续
SkipGram
算法采用Hierarchical Softmax
遍历, $ i=0,\cdots,\gamma $ ,遍历过程:
随机混洗顶点: $ \mathcal O = \text{Shuffle}( V) $
每次遍历的开始,随机混洗顶点。但是这一步并不是严格要求的,但是它可以加快随机梯度下降的收敛速度。
对每个顶点 $ v_i\in \mathcal O $ :
- 利用随机游走生成器生成随机游走序列: $ \mathcal W_{v_i} = \text{RandomWalk}( G,v_i,t) $
- 采用
SkipGram
算法来更新顶点的representation
: $ \text{SkipGram}(\mathbf\Phi,\mathcal W_{v_i},w) $
SkipGram
算法:输入:
- 当前的顶点
representation
矩阵 $ \mathbf \Phi\in \mathbb R^{| V|\times d} $ - 单条随机游走序列 $ \mathcal W_{v_i} $
- 上下文窗口尺寸 $ w $
- 学习率 $ \alpha $
- 当前的顶点
输出:更新后的顶点
representation
矩阵 $ \mathbf \Phi\in \mathbb R^{| V|\times d} $算法步骤:
对每个顶点 $ v_j\in \mathcal W_{v_i} $ :
对窗口内每个顶点 $ u_k\in \mathcal W_{v_i}[j-w:j+w] $ :
$ J(\mathbf\Phi) = -\log \text{Pr}(u_k\mid \Phi(v_j))\\ \mathbf\Phi = \mathbf\Phi - \alpha\times \nabla_{\mathbf\Phi} J $
$ \text{Pr}(u_k\mid \Phi(v_j)) = \prod_{l=1}^{\lceil \log | V|\rceil}\text{Pr}(b_l\mid \Phi(v_j)) $Hierarchical Softmax
: 计算 $ \text{Pr}(u_k\mid \Phi(v_j)) $ 是不容易的,因为这个概率的分母(归一化因子)计算代价太高(计算复杂度为 $ O(|V|) $ )。如果我们将顶点分配给二叉树的叶节点,那么预测问题就变为最大化树中特定路径的概率。如果到顶点 $ u_k $ 的路径由一系列树节点 $ (b_0,b_1,\cdots,b_{\lceil \log | V|\rceil}) $ ( $ b_0 $ 为root
, $ b_{\lceil \log | V|\rceil}=u_k $ )标识,则有:现在 $ \text{Pr}(b_l\mid \Phi(v_j)) $ 可以通过分配给节点 $ b_l $ 的父节点的二分类器来建模。这降低了计算 $ \text{Pr}(u_k\mid \Phi(v_j)) $ 的复杂度,计算复杂度从 $ O(| V|) $ 降低到 $ O(\log | V|) $ 。
我们可以通过为随机游走中的高频顶点分配树中更短的路径来进一步加快训练过程。霍夫曼编码用于减少树中高频元素的访问次数。
DeepWalk
模型参数规模为 $ O(d|V|) $ ,并且使用随机梯度下降来优化这些参数。导数是通过反向传播算法来估计的。SGD
的学习率在最初时设置为0.025
,然后随着目前为止看到的顶点数量呈线性下降。DeepWalk
算法整体如下图所示。图
a
:短随机游走序列的生成过程。图
b
:在随机游走 $ \mathcal W_{v_4} $ 上滑动一个长度为 $ 2w+1 $ 的窗口,将中心顶点 $ v_1 $ 映射到它的representation
$ \Phi(v_1) $ 。图
c
:Hierarchical Softmax
在对应于从root
到 $ v_3 $ 的路径上的概率序列来分解 $ \text{Pr}(v_3\mid \Phi(v_1)) $ 。 $ \text{Pr}(v_5\mid \Phi(v_1)) $ 也是类似的。representation
$ \mathbf\Phi $ 被更新从而最大化中心顶点 $ v_1 $ 与它的上下文 $ \{v_3,v_5\} $ 共现的概率。
1.1.5 并行化
社交网络随机游走中的顶点频率分布和语言中的单词分布都遵循幂律分布。这会导致低频顶点的长尾效应,因此,对 $ \mathbf\Phi $ 的更新本质上将是稀疏的(即,同时对同一个顶点进行更新的概率很低)。 这将允许我们在多个
worker
的情况下使用随机梯度下降的异步版本ASGD
。鉴于我们的更新是稀疏的,并且我们没有利用锁来访问模型共享参数,
ASGD
将实现最佳收敛速度。虽然我们在单台机器上使用多线程进行实验,但是已经证明了ASGD
具有高度可扩展性,可用于非常大规模的机器学习。下图展示了并行化
DeepWalk
的效果。结果表明:随着我们将worker
数量增加到8
,处理BlogCatalog
和Flickr
网络的加速是一致的。结果还表明,与串行执行DeepWalk
相比,并行化DeepWalk
的预测性能没有损失。
1.1.6 变体
这里我们讨论我们方法的一些变体,我们认为这些变体可能会引起人们的兴趣。
流式
streaming
:我们方法的一个有趣变体是流式方法,它可以在不了解整个图的情况下实现。在这个变体中,来自图中的短随机游走直接传递给representation learning
代码,并直接更新模型。这里需要对学习过程进行一些修改:
- 首先,不再使用衰减的学习率。相反,我们可以将学习率 $ \alpha $ 初始化为一个小的常量。这需要更长的时间来学习,但是在某些
application
中可能是值得的。 - 其次,我们不能再构建参数树
tree of parameters
。如果 $ V $ 的基数cardinality
是已知的(或者有界),我们可以为这个最大值构建Hierarchical Softmax tree
。当首次看到顶点时,可以将它分配给剩余的叶节点之一。如果我们有能力估计顶点分布的先验,我们仍然可以使用霍夫曼编码来减少高频元素的访问次数。
- 首先,不再使用衰减的学习率。相反,我们可以将学习率 $ \alpha $ 初始化为一个小的常量。这需要更长的时间来学习,但是在某些
非随机的游走:有些图是用户与一系列元素(如网站上页面的导航)交互的副产品而创建的。当通过这种非随机游走的
stream
来创建图时,我们可以使用这个过程直接为建模阶段提供游走数据。以这种方式采样的图不仅会捕获与网络结构相关的信息,还会捕获与路径遍历频率相关的信息。以我们的观点来看,这个变体还包括语言建模。
sentence
可以被视为经过适当设计的语言网络的、有目的的游走,而像SkipGram
这样的语言模型旨在捕获这种行为。这种方法可以与流式变体结合使用,从而在不断演化的网络上训练特征,而无需显式地构建整个图。使用这种技术维护的
representation
可以实现web-scale
的分类,而无需处理web-scale
图的麻烦。
1.2 实验
数据集:
BlogCatalog
数据集:由博客作者提供的社交关系网络。标签代表作者提供的主题类别。Flickr
数据集:Flickr
网站用户之间的关系网络。标签代表用户的兴趣组,如“黑白照片”。YouTube
数据集:YouTube
网站用户之间的社交网络。标签代表用户的视频兴趣组,如“动漫、摔跤”。
baseline
方法:为了验证我们方法的效果,我们和一些baseline
方法进行比较。谱聚类
SpectralClustering
:从图 $ G $ 的normalized graph Laplacian
矩阵 $ \tilde{\mathbf L} $ 中计算到的 $ d $ 个最小的特征向量,构成图的representation
。使用 $ \tilde{\mathbf L} $ 的特征向量隐含地建设图割graph cuts
对分类有用。Modularity
:从图 $ G $ 的Modularity
$ \mathbf B $ 计算得到top-d
个特征向量,构成了图的representation
。 $ \mathbf B $ 的特征向量编码了关于 $ G $ 的modular graph partition
信息。使用它们作为特征假设modular graph partition
对于分类有用。EdgeCluster
:基于k-means
聚类算法对图 $ G $ 的邻接矩阵进行聚类。事实证明它的性能可以和Modularity
相比,并且可以扩展到那些超大规模的图,这些图太大而难以执行谱分解spectral decomposition
。
$ P (y_i\mid \mathcal N_i) = \frac 1Z \sum_{v_j\in \mathcal N_i} w_{i,j}P (y_j\mid \mathcal N_j) $wvRN
:weighted-vote Relational Neighbor
是一个关系分类器relational classi er
。给定顶点 $ v_i $ 的邻居 $ \mathcal N_i $ ,wvRN
通过邻居结点的加权平均来预估 $ P(y_i\mid \mathcal N_i) $ :其中 $ Z $ 为归一化系数。
该方法在实际网络中表现出惊人的良好性能,并被推荐为优秀的关系分类
relational classification
的baseline
。Majority
:选择训练集中出现次数最多的标签作为预测结果(所有样本都预测成一个值)。
评估指标:对于多标签分类问题
multilabel classi cation
,我们采用Macro-F1
和Micro-F1
作为评估指标。Macro-F1
:根据整体的混淆矩阵计算得到的 $ F_1 $ 值。micro-F1
:先根据每个类别的混淆矩阵计算得到各自的 $ F_1 $ 值,然后对所有 $ F_1 $ 值取平均。
另外我们采用模型提取的特征训练
one-vs-rest
逻辑回归分类器,根据该分类器来评估结果。我们随机采样一个比例为 $ T_R $ 的带标签顶点作为训练集,剩余标记节点作为测试集。我们重复该过程
10
次,并报告Macro-F1
的平均性能和Micro-F1
的平均性能。注意,
DeepWalk
是无监督的representation learning
方法,因此训练过程是无需label
数据的。这里的标记数据是在无监督学习之后,利用学到的顶点representation
进行有监督分类,分类算法为逻辑回归,从而评估顶点representation
的效果。实验配置:
- 对所有模型,我们使用由
LibLinear
实现的one-vs-rest
逻辑回归进行分类。 DeepWalk
的超参数为 $ \gamma = 80, w=10, d=128 $ 。- 对于
SpectralClustering, Modularity, EdgeCluster
等方法,我们选择 $ d=500 $ 。
- 对所有模型,我们使用由
1.2.1 实验结果
BlogCatalog
数据集:我们评估 $ T_R= 10\% \sim 90\% $ 的结果。结果如下表,粗体表示每一列最佳结果。结论:
DeepWalk
性能始终优于EdgeCluster,Modularity,wvRN
。事实上当
DeepWalk
仅仅给出20%
标记样本来训练的情况下,模型效果优于其它模型90%
的标记样本作为训练集。虽然
SpectralClustering
方法更具有竞争力,但是当数据稀疏时DeepWalk
效果最好:对于Macro-F1
指标, $ T_R \le 20\% $ 时DeepWalk
效果更好;对于Micro-F1
指标, $ T_R\le 60\% $ 时DeepWalk
效果更好。当仅标记图中的一小部分时,
DeepWalk
效果最好。因此后面实验我们更关注稀疏标记图sparsely labeled graph
。
Flickr
数据集:我们评估 $ T_R= 1 \% \sim 10\% $ 的结果。结果如下表,粗体表示每一列最佳结果。结论与前面的实验一致。- 在
Micro-F1
指标上,DeepWalk
比其它基准至少有3%
的绝对提升。 - 在
Micro-F1
指标上,DeepWalk
只需要3%
的标记数据就可以打败其它方法10%
的标记数据,因此DeepWalk
的标记样本需求量比基准方法少60%
。 - 在
Macro-F1
指标上,DeepWalk
性能接近SpectralClustring
,击败了所有其它方法。
- 在
YouTube
数据集:我们评估 $ T_R= 1 \% \sim 10\% $ 的结果。结果如下表,粗体表示每一列最佳结果。由于
YouTube
规模比前面两个数据集大得多,因此我们无法运行两种基准方法SpecutralClustering, Modularity
。DeepWalk
性能远超EdgeCluster
基准方法:- 当标记数据只有
1%
时,DeepWalk
在Micro-F1
指标上相对EdgeCluster
有14%
的绝对提升,在Macro-F1
指标上相对EdgeCluster
有10%
的绝对提升。 - 当标记数据增长到
10%
时,DeepWalk
提升幅度有所下降。DeepWalk
在Micro-F1
指标上相对EdgeCluster
有3%
的绝对提升,在Macro-F1
指标上相对EdgeCluster
有4%
的绝对提升。
- 当标记数据只有
DeepWalk
能扩展到大规模网络,并且在稀疏标记环境中表现出色。
1.2.2 参数敏感性
为评估超参数的影响,我们在
Flickr
和BlogCatalog
数据集上进行实验。我们固定窗口大小 $ w=10 $ 和游走长度 $ t=40 $ 。然后我们改变潜在维度 $ d $ 、每个顶点开始的随机游走数量 $ \gamma $ 、可用的训练数据量 $ T_R $ ,从而确定它们对于网络分类性能的影响。考察不同 $ d $ 的效果:
图
a1
和 图a3
考察不同 $ d $ 和不同 $ T_R $ 的效果。Flickr
和BlogCatalog
数据集上模型的表现一致:模型最佳尺寸 $ d $ 取决于训练样本的数量。注意:
Flickr
的1%
训练样本和BlogCatalog
的10%
训练样本,模型的表现差不多。图
a2
和图a4
考察不同 $ d $ 和不同 $ \gamma $ 的效果。在不同 $ \gamma $ 取值上,模型性能对于不同 $ d $ 的变化比较稳定。- 从 $ \gamma = 30 $ 开始继续提高 $ \gamma $ 时模型的效果提升不大,因此 $ \gamma = 30 $ 几乎取得最好效果。继续提升效果,计算代价上升而收益不明显。
- 不同的数据集中,不同 $ \gamma $ 值的性能差异非常一致,尽管
FLICKR
包含边的数量比BLOGCATALOG
多一个数量级。
这些结论表明:我们的方法可以得到各种size
的有用模型。另外,模型性能取决于模型看到的随机游走数量,模型的最佳维度取决于可用的训练样本量。
考察不同 $ \gamma $ 的影响。图
b1
和b3
考察不同 $ d $ 的效果,图b2
和b4
考察了不同 $ T_R $ 的效果。实验结果表明,它们的表现比较一致:增加 $ \gamma $ 时开始可能有巨大提升,但是当 $ \gamma \gt 10 $ 时提升效果显著下降。
这些结果表明:仅需要少量的随机游走,我们就可以学习有意义的顶点潜在表示。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论