数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
十五、NetMF [2017]
传统的网络挖掘、网络学习的范式通常从对网络结构属性
structural property
的显式探索而开始。但是许多这类的属性(如中介中心度betweenness centrality
、三角计数triangle count
、模度modularity
)由人工制作,并且需要广泛的领域知识和昂贵的计算代价。鉴于这些问题,以及最近出现的representation learning
所提供的机会,人们广泛研究了学习网络的潜在representation
(也就是network embedding
),以便自动发现网络的结构属性并将其映射到一个潜在的空间。形式上,
network embedding
的问题通常形式化如下:给定一个无向带权图 $ G=(V,E,\mathbf A) $ ,其中 $ V $ 为顶点集合、 $ E $ 为边集合、 $ \mathbf A $ 为邻接矩阵,任务的目标是学习一个映射 $ V\rightarrow \mathbb R^d $ ,该映射将每个顶点映射到一个能够捕获该顶点结构属性的 $ d $ 维向量。输出的representation
可以用于各种网络科学任务、网络learning algorithm
的输入,例如标签分类、社区检测。解决这个问题的尝试可以追溯到谱图理论
spectral graph theory
和社交维度学习social dimension learning
。该问题最近的进展很大程度上受到SkipGram
模型的影响。SkipGram
模型最初是为word embedding
所提出的,其输入是由自然语言中的句子组成的文本语料库,输出是语料库中每个单词的latent vector representation
。值得注意的是,受到该setting
的启发,DeepWalk
通过将网络上随机游走所遍历的顶点路径视为句子,并利用SkipGram
来学习潜在的节点representation
,从而开创了network embedding
的先河。随着DeepWalk
的出现,人们后续已经开发了很多network embedding
模型,例如LINE
、PTE
、node2vec
。到目前为止,上述模型已经被证明非常有效。然而,它们背后的理论机制却鲜为人知。人们注意到,用于
word embedding
的、带负采样的SkipGram
模型已经被证明是某个word-context
矩阵的隐式分解,并且最近有人努力从几何角度从理论上解释word embedding
模型。但是,目前尚不清楚word-context
矩阵与网络结构之间的关系。此外,早期人们尝试从理论上分析DeepWalk
的行为,然而他们的主要理论结果和原始DeepWalk
论文的setting
并不完全一致。此外,尽管DeepWalk, LINE, PTE, node2vec
之间存在表面上的相似性,但是对它们的底层联系缺乏更深入的了解。在论文
《Network Embedding as Matrix Factorization: Unifying DeepWalk, LINE, PTE, and node2vec》
中,作者提供了关于几种基于SkipGram
的network embedding
方法的理论结果。具体而言:- 论文首先表明这里提到的模型(即
DeepWalk, LINE, PTE, node2vec
)在理论上执行隐式矩阵分解。论文为每个模型推导出矩阵的封闭形式closed form
。例如,DeepWalk
(图上的随机游走加上SkipGram
)本质上是对一个随机矩阵进行因子分解,并且随着随机游走的长度趋于无穷大,该矩阵在概率上收敛到这个的闭式矩阵。 - 其次,从它们矩阵的闭式形式观察,作者发现有意思的是,
LINE
可以视为DeepWalk
的一个特例:当SkipGram
中的上下文窗口大小 $ T = 1 $ 时。此外,作者证明了PTE
作为LINE
的扩展,实际上是多网络的联合矩阵joint matrix
的隐式分解。 - 第三,作者发现了
DeepWalk
的隐式矩阵implicit matrix
和图拉普拉斯矩阵graph Laplacian
之间的理论联系。基于这种联系,作者提出了一种新算法NetMF
来逼近DeepWalk
隐式矩阵的封闭形式。通过使用SVD
显式分解该矩阵,论文在四个网络(在DeepWalk
和node2vec
论文中所采用的)中的广泛实验证明了NetMF
相比于DeepWalk
和LINE
的出色性能(相对提升高达50%
)。
论文的理论价值高于
NetMF
实用的价值,实际上NetMF
很难应用到工业环境中,因为NetMF
的时间复杂度和空间复杂度都太高。- 论文首先表明这里提到的模型(即
论文展示了所有上述带负采样的模型都可以统一到具有封闭形式
closed form
的矩阵分解框架中。论文的分析和证明表明:DeepWalk
经验性empirically
地产生了网络归一化拉普拉斯矩阵的低秩变换low-rank transformation
。LINE
理论上是DeepWalk
的一个特例:当顶点的上下文size
为1
时。- 作为
LINE
的扩展,PTE
可以视为多个网络的拉普拉斯矩阵的联合分解。 node2vec
正在分解与二阶随机游走的平稳分布、转移概率张量等相关的矩阵。
这项工作为基于
SkipGram
的network embedding
方法奠定了理论基础,从而更好地理解了潜在的network representation learning
。相关工作:
network embedding
的故事来源于谱聚类Spectral Clustering
。谱聚类是一种数据聚类技术,它选择数据的亲和矩阵affinity matrix
的特征值eigenvalue
/特征向量eigenvector
从而获得representation
,从而进一步用于聚类或嵌入到低维空间。谱聚类已广泛应用于社区检测和图像分割等领域。近年来,人们对
network embedding
越来越感兴趣。继SocDim
和DeepWalk
等一些开创性工作之后,越来越多的文献试图从不同的角度解决这个问题,例如heterogeneous network embedding
、半监督network embedding
、具有丰富顶点属性的network embedding
、具有高阶结构的network embedding
、有符号的network embedding
、有向的network embedding
、通过神经网络的network embedding
等等。在上述研究中,一种常用的技术是为每个顶点定义context
,然后训练一个预测模型来进行上下文预测。例如,DeepWalk, node2vec, metapath2vec
分别通过基于一阶的随机游走、基于二阶的随机游走、基于metapath
的随机游走来定义顶点的上下文。利用上下文信息的思想很大程度上是由带负采样的
SkipGram
模型skip-gram model with negative sampling: SGNS
所推动的。最近,人们一直在努力理解这个模型。例如:《NeuralWord Embedding as Implicit Matrix Factorization》
证明了SGNS
实际上是进行隐式矩阵分解,这为我们提供了分析上述network embedding
模型的工具。《A latent variable model approach to pmi-based word embeddings》
提出生成模型RAND-WALK
来解释word embedding
模型。《Word embeddings as metric recovery in semantic spaces》
将word embedding
框架作为度量学习问题。
基于隐式矩阵分解的工作,我们从理论上分析了流行的、基于
SkipGram
的network embedding
模型,并将它们与谱图理论联系起来。
15.1 模型
- 这里我们首先介绍四种流行的
network embedding
方法(LINE, PTE, DeepWalk, node2vec
)的详细理论分析和证明,然后提出我们的NetMF
方法。
15.1.1 LINE
给定一个带权无向图 $ G=(V,E,\mathbf A) $ ,二阶邻近性的
LINE
(即LINE(2nd)
)的任务是学到两个representation
矩阵 :vertex represetation
矩阵 $ \mathbf X \in \mathbb R^{|V|\times d} $ :第 $ i $ 行 $ \mathbf{\vec x}_i $ 为顶点 $ v_i $ 作为vertex
时的embedding
向量。context representation
矩阵 $ \mathbf Y \in \mathbb R^{|V|\times d} $ :第 $ i $ 行 $ \mathbf{\vec y}_i $ 为顶点 $ v_i $ 作为contex
时的embedding
向量。
$ \mathcal L = \sum_{i=1}^{|V|}\sum_{j=1}^{|V|}A_{i,j} \left(\log \sigma(\mathbf{\vec x}_i\cdot \mathbf{\vec y}_j) + b \mathbb E_{j^\prime \sim P_N}[\log \sigma(-\mathbf{\vec x}_i\cdot \mathbf{\vec y}_{j^\prime})]\right) $LINE(2nd)
的目标函数为:其中: $ \sigma(\cdot) $ 为
sigmoid
函数, $ b $ 为负采样系数, $ P_N $ 为用于产生负样本的noise
分布。在LINE
原始论文中使用经验分布 $ P_N(j)\propto d_j^{3/4} $ ,其中 $ d_j $ 为顶点 $ j $ 的加权degree
$ d_j = \sum_{k=1}^{|V|}A_{j,k} $ 。LINE(2nd)
的目标函数为 $ -\sum_{(i,j)\in E} A_{i,j}\times \log \frac{\exp(\mathbf{\vec x}_i\cdot \mathbf{\vec y}_j)}{\sum_{k=1}^{|V|}\exp(\mathbf{\vec x}_i\cdot \mathbf{\vec y}_k)} $ (即 $ -\sum_{(i,j)\in E} A_{i,j}\times \log p_2(v_j\mid v_i) $ ),考虑到 $ (i,j)\notin E $ 时 $ A_{i,j} = 0 $ 以及负采样,则得到上述目标函数。这也是为什么 $ \mathcal L $ 中 $ A_{i,j} $ 不仅作用在“正边”、也作用在 “负边” 上的原因。本文我们选择 $ P_N(j)\propto d_j $ ,因为这种形式的经验分布将得到一个闭式解
$ \mathcal L = \left(\sum_{i=1}^{|V|}\sum_{j=1}^{|V|} A_{i,j}\log \sigma(\mathbf{\vec x}_i\cdot \mathbf{\vec y}_j)\right) + \left(b\sum_{i=1}^{|V|} d_i \mathbb E_{j^\prime \sim P_N}[\log \sigma(-\mathbf{\vec x}_i\cdot \mathbf{\vec y}_{j^\prime})]\right) $closed form solution
。定义 $ \text{vol}_G = \sum_{i=1}^{|V|}\sum_{j=1}^{|V|}A_{i,j}=\sum_{j=1}^{|V|}d_j $ 为所有顶点的加权degree
之和,则有 $ P_N(j) = \frac{d_j}{\text{vol}_G} $ 。我们重写目标函数为:我们在图 $ G $ 的所有顶点上计算,从而得到期望为:
$ \mathbb E_{j^\prime \sim P_N}[\log \sigma(-\mathbf{\vec x}_i\cdot \mathbf{\vec y}_{j^\prime})] = \sum_{j=1 }^{|V|} \frac{d_{j }}{\text{vol}_G} \log \sigma(-\mathbf{\vec x}_i\cdot \mathbf{\vec y}_{j }) $因此有:
$ \mathcal L = \sum_{i=1}^{|V|}\sum_{j=1}^{|V|}\left(A_{i,j}\log\sigma(\mathbf{\vec x}_i\cdot \mathbf{\vec y}_j) + b \frac{d_id_j}{\text{vol}_G}\log \sigma(\mathbf{-\vec x}_i\cdot \mathbf{\vec y}_j)\right) $则对于每一对顶点
$ \mathcal L(i,j) = A_{i,j}\log \sigma(\mathbf{\vec x}_i\cdot \mathbf{\vec y}_j) + b \frac{d_id_j}{\text{vol}_G}\log \sigma(\mathbf{-\vec x}_i\cdot \mathbf{\vec y}_j) $(i,j)
,其局部目标函数local objective function
为:定义 $ z_{i,j} = \mathbf{\vec x}_i \cdot \mathbf{\vec y}_j $ ,根据
$ \frac{\partial \mathcal L}{\partial z_{i,j}} = \frac{\partial \mathcal L(i,j)}{\partial z_{i,j}} = A_{i,j} \sigma(-z_{i,j}) - b \frac{d_id_j}{\text{vol}_G}\sigma(z_{i,j}) $《NeuralWord Embedding as Implicit Matrix Factorization》
的结论:对于一个足够大的embedding
维度, 每个 $ z_{i,j} $ 之间可以认为是相对独立的。因此我们有:为求解目标函数极大值,我们令偏导数为零,则有:
$ \exp(2z_{i,j}) - \left(\frac{\text{vol}_GA_{i,j}}{bd_id_j} -1\right)\exp(z_{i,j}) - \frac{\text{vol}_GA_{i,j}}{bd_id_j} = 0 $这个方程有两个闭式解:
- $ \exp(z_{i,j}) = -1 $ :其解为虚数,不予考虑。
- $ \exp(z_{i,j}) = \frac{\text{vol}_G A_{i,j}}{bd_id_j} $ :有效解。
因此有:
$ \mathbf{\vec x}_i\cdot \mathbf{\vec y}_j = z_{i,j} = \log \left(\frac{\text{vol}_G A_{i,j}}{bd_id_j}\right) $则
$ \mathbf X\mathbf Y^\top = \log(\text{vol}_G \mathbf D^{-1}\mathbf A \mathbf D^{-1}) - (\log b)\mathbf I $LINE(2nd)
对应于矩阵分解:其中对角矩阵 $ \mathbf D = \text{diag}(d_1,\cdots,d_{|V|}) $ 。
15.1.2 PTE
$ \mathcal L = \sum_{i=1}^{|V_1|}\sum_{j=1}^{|V_2|} A_{i,j} \left(\log \sigma(\mathbf{\vec x}_i\cdot \mathbf{\vec y}_j) + b \mathbb E_{j^\prime \sim P_N}[\log \sigma(-\mathbf{\vec x}_i\cdot \mathbf{\vec y}_{j^\prime})]\right) $PTE
是LINE(2nd)
在异质文本网络heterogeneous text network
中的扩展。我们首先将我们对LINE(2nd)
的分析调整到二部图网络。考虑一个二部图网络 $ G=(V_1\cup V_2, E, \mathbf A) $ ,其中 $ V_1 $ 和 $ V_2 $ 是两个不相交的顶点集合, $ E\sube V_1\times V_2 $ 是边集合, $ \mathbf A\in \mathbb R^{|V_1|\times |V_2|} $ 为二部图网络的邻接矩阵。定义图 $ G $ 的volume
为 $ \text{vol}_G = \sum_{i=1}^{|V_1|}\sum_{j=1}^{|V_2|} A_{i,j} $ 。则PTE
的目标是学习每个节点 $ v_i\in V_1 $ 的节点representation
$ \mathbf{\vec x}_i $ 、以及学习每个节点 $ v_j\in V_2 $ 的节点representation
$ \mathbf{\vec y}_j $ 。则LINE(2nd)
的目标函数为:这里 $ V_1 $ 内节点和 $ V_2 $ 内节点互为上下文,因此没必要引入 $ V_1 $ 上下文的
embedding
变量、 $ V_2 $ 上下文的embedding
变量。与
$ \mathbf X\mathbf Y^\top = \log(\text{vol}_G \mathbf D_\text{row}^{-1}\mathbf A \mathbf D^{-1}_\text{col}) - (\log b)\mathbf I $LINE
相同的分析过程,我们可以发现最大化 $ \mathcal L $ 等价于因子分解:其中 $ \mathbf D_\text{row} = \text{diag}(\mathbf A\mathbf{\vec e}) $ 为 $ \mathbf A $ 各行之和构成的对角矩阵, $ \mathbf D_\text{col} = \text{diag}(\mathbf A^\top\mathbf{\vec e}) $ 为 $ \mathbf A $ 各列之和构成的对角矩阵, $ \mathbf{\vec e} $ 为全
1
的向量。当二部图是无向图时, $ \mathbf A = \mathbf A^\top $ (无向图的出边就是入边),则 $ \mathbf D_\text{row} = \mathbf D_\text{col} $ 。
基于上述分析,接下来我们考虑
PTE
中的异质文本网络。假设单词集合为 $ \mathbb V $ ,文档集合为 $ \mathbb D $ ,标签集合为 $ \mathbb L $ ,我们将文本网络分为三个子网络:word-word
子网 $ G^{w,w} $ :每个word
是一个顶点,边的权重为两个word
在大小为T
的窗口内共现的次数。假设其邻接矩阵为 $ \mathbf A^{w,w} $ ,定义 $ d_{i\cdot,}^{w,w} = \sum_j A_{i,j}^{w,w} $ 为 $ \mathbf A^{w,w} $ 第 $ i $ 行的元素之和, 定义 $ d_{\cdot,j}^{w,w} = \sum_i A_{i,j}^{w,w} $ 为 $ \mathbf A^{w,w} $ 第 $ j $ 列的元素之和。定义对角矩阵 $ \mathbf D_\text{row}^{w,w} = \text{diag}(d^{w,w}_{1,\cdot},\cdots,d^{w,w}_{|\mathbb V|,\cdot}) $ , $ \mathbf D_\text{col}^{w,w} = \text{diag}(d^{w,w}_{\cdot,1},\cdots,d^{w,w}_{\cdot,|\mathbb V|}) $ ,它们分别由 $ \mathbf A^{w,w} $ 的各行之和、各列之和组成。word-document
子网 $ G^{d,w} $ :每个word
和document
都是一个顶点,边的权重是word
出现在文档中的次数。同样地我们定义对角矩阵 $ \mathbf D_\text{row}^{w,d} = \text{diag}(d^{w,d}_{1,\cdot},\cdots,d^{w,d}_{|\mathbb V|,\cdot}) $ , $ \mathbf D_\text{col}^{w,d} = \text{diag}(d^{w,d}_{\cdot,1},\cdots,d^{w,d}_{\cdot,|\mathbb D|}) $ ,它们分别由 $ \mathbf A^{w,d} $ 的各行之和、各列之和组成。word-label
子网 $ G^{w,l} $ :每个word
和label
都是一个顶点,边的权重为word
出现在属于这个label
的文档的篇数。同样的我们定义对角矩阵 $ \mathbf D_\text{row}^{w,l} = \text{diag}(d^{w,l}_{1,\cdot},\cdots,d^{w,l}_{|\mathbb V|,\cdot}) $ , $ \mathbf D_\text{col}^{w,l} = \text{diag}(d^{w,l}_{\cdot,1},\cdots,d^{w,l}_{\cdot,|\mathbb L|}) $ ,它们分别由 $ \mathbf A^{w,d} $ 的各行之和、各列之和组成。
$ \mathcal L = \alpha \mathcal L_{w,w} + \beta \mathcal L_{w,d} + \gamma\mathcal L_{w,l} = \\ \alpha \sum_{i=1}^{|\mathbb V|}\sum_{j=1}^{|\mathbb V|}\left(A_{i,j}^{w,w}\log\sigma\left(\mathbf{\vec x}_i^{w,w}\cdot \mathbf{\vec y}_j^{w,w}\right) + b \frac{d_{i,\cdot}^{w,w}d_{i,\cdot}^{w,w}}{\text{vol}_G^{w,w}}\log \sigma\left(\mathbf{-\vec x}_i^{w,w}\cdot \mathbf{\vec y}_j^{w,w}\right)\right)\\ + \beta \sum_{i=1}^{|\mathbb V|}\sum_{j=1}^{|\mathbb D|}\left(A_{i,j}^{w,d}\log\left(\sigma(\mathbf{\vec x}_i^{w,d}\cdot \mathbf{\vec y}_j^{w,d}\right) + b \frac{d_i^{w,d}d_j^{w,d}}{\text{vol}_G^{w,d}}\log \sigma\left(\mathbf{-\vec x}_i^{w,d}\cdot \mathbf{\vec y}_j^{w,d}\right)\right)\\ + \gamma \sum_{i=1}^{|\mathbb V|}\sum_{j=1}^{|\mathbb L|}\left(A_{i,j}^{w,l}\log\sigma\left(\mathbf{\vec x}_i^{w,l}\cdot \mathbf{\vec y}_j^{w,l}\right) + b \frac{d_i^{w,l}d_j^{w,l}}{\text{vol}_G^{w,l}}\log \sigma\left(\mathbf{-\vec x}_i^{w,l}\cdot \mathbf{\vec y}_j^{w,l}\right)\right) $PTE
的损失函数为:其中 $ (\cdot)^{w,w},(\cdot)^{w,d},(\cdot)^{w,l} $ 分别为三个子网中的量, $ \alpha,\beta,\gamma $ 为三个超参数来平衡不同子网的损失, $ b $ 为负采样系数。根据
PTE
论文, $ \alpha,\beta,\gamma $ 需要满足: $ \alpha \text{vol}_{G_{w,w}} = \beta \text{vol}_{G_{w,d}} = \gamma \text{vol}_{G_{w,l}} $ ,这是因为PTE
在训练期间执行边采样,其中边是从三个子网中交替采样得到。根据前面的结论有:
$ \mathbf{\vec x}_i^{w,w}\cdot \mathbf{\vec y}_j ^{w,w}= \log \left(\frac{\text{vol}_G^{w,w} A_{i,j}^{w,w}}{bd_i^{w,w}d_j^{w,w}}\right)\\ \mathbf{\vec x}_i^{w,d}\cdot \mathbf{\vec y}_j^{w,d} = \log \left(\frac{\text{vol}_G^{w,d} A_{i,j}^{w,d}}{bd_i^{w,d}d_j^{w,d}}\right)\\ \mathbf{\vec x}_i^{w,l}\cdot \mathbf{\vec y}_j ^{w,l} = \log \left(\frac{\text{vol}_G^{w,l} A_{i,j}^{w,l}}{bd_i^{w,l}d_j^{w,l}}\right) $令:
$ \mathbf X = \begin{bmatrix} (\mathbf{\vec x}_1^{w,w})^\top& \mathbf 0&\mathbf 0\\ \vdots&\vdots&\vdots\\ (\mathbf{\vec x}_{|\mathbb V|}^{w,w})^\top& \mathbf 0&\mathbf 0\\ \mathbf 0&(\mathbf{\vec x}_1^{w,d})^\top&\mathbf 0\\ \vdots&\vdots&\vdots\\ \mathbf 0&(\mathbf{\vec x}_{|\mathbb V|}^{w,d})^\top&\mathbf 0\\ \mathbf 0&\mathbf 0&(\mathbf{\vec x}_1^{w,l})^\top\\ \vdots&\vdots&\vdots\\ \mathbf 0&\mathbf 0&(\mathbf{\vec x}_{|\mathbb V|}^{w,l})^\top \end{bmatrix}\quad \mathbf Y = \begin{bmatrix} (\mathbf{\vec y}_1^{w,w})^\top& \mathbf 0&\mathbf 0\\ \vdots&\vdots&\vdots\\ (\mathbf{\vec y}_{|\mathbb V|}^{w,w})^\top& \mathbf 0&\mathbf 0\\ \mathbf 0&(\mathbf{\vec y}_1^{w,d})^\top&\mathbf 0\\ \vdots&\vdots&\vdots\\ \mathbf 0&(\mathbf{\vec y}_{|\mathbb D|}^{w,d})^\top&\mathbf 0\\ \mathbf 0&\mathbf 0&(\mathbf{\vec y}_1^{w,l})^\top\\ \vdots&\vdots&\vdots\\ \mathbf 0&\mathbf 0&(\mathbf{\vec y}_{|\mathbb L|}^{w,l})^\top \end{bmatrix} $则有 $ \mathbf X \in \mathbb R^{3|\mathbb V|\times 3d},\mathbf Y \in \mathbb R^{(|\mathbb V|+|\mathbb D| +|\mathbb L|)\times 3d} $ ,且有:
$ \mathbf M_1 = \alpha \text{vol}_{G_{w,w}}\mathbf (\mathbf D_{row}^{w,w})^{-1}\mathbf A^{w,w} (\mathbf D_{col}^{w,w})^{-1}\\ \mathbf M_2 = \beta\text{vol}_{G_{d,w}}\mathbf (\mathbf D_{row}^{d,w})^{-1}\mathbf A^{d,w} (\mathbf D_{col}^{d,w})^{-1}\\ \mathbf M_3 = \gamma \text{vol}_{G_{l,w}}\mathbf (\mathbf D_{row}^{l,w})^{-1}\mathbf A^{l,w} (\mathbf D_{col}^{l,w})^{-1}\\ \mathbf X\mathbf Y^\top = \log \left( \begin{bmatrix} \mathbf M_1&\mathbf 0 &\mathbf 0\\ \mathbf 0 & \mathbf M_2 &\mathbf 0\\ \mathbf 0&\mathbf 0&\mathbf M_3 \end{bmatrix} \right) - (\log b)\mathbf I $.
15.1.3 DeepWalk
DeepWalk
首先通过在图上执行随机游走来产生一个corpus
$ \mathcal D $ ,然后在 $ \mathcal D $ 上训练SkipGram
模型。这里我们重点讨论带负采样的SkipGram
模型skipgram with negative sampling:SGNS
。整体算法如下所示:输入:
- 图 $ G(V,E,\mathbf A) $
- 窗口大小 $ T $
- 随机游走序列长度 $ L $
- 总的随机游走序列数量 $ N $
输出:顶点的
embedding
矩阵 $ \mathbf X $算法步骤:
迭代: $ \text{for}\; s = 1,2,\cdots,N $ ,迭代过程为:
根据先验概率分布 $ P(w) $ 随机选择一个初始顶点 $ w^{
}_1 $ 。在图 $ G $ 上从初始顶点 $ w^{
}_1 $ 开始随机游走,采样得到一条长度为 $ L $ 的顶点序列 $ (w_1^{},\cdots,w_L^{}) $ 。统计顶点共现关系。对于窗口位置 $ j=1,2,\cdots,L-T $ :
考虑窗口内第 $ r $ 个顶点 $ r=1,2,\cdots,T $ :
- 添加
vertex-context
顶点对 $ (w_j^{},w_{j+r}^{}) $ 到 $ \mathcal D $ 中。 - 添加
vertex-context
顶点对 $ (w_{j+r} ^{},w_{j}^{}) $ 到 $ \mathcal D $ 中。
- 添加
然后在 $ \mathcal D $ 上执行负采样系数为 $ b $ 的
SGNS
。
根据论文
$ \mathbf X \mathbf Y^\top = \mathbf M\\ M_{w,c} = \log\left(\frac{n(w,c)\times |\mathcal D|}{n(w)\times n(c)}\right)-\log b $《NeuralWord Embedding as Implicit Matrix Factorization》
,SGNS
等价于隐式的矩阵分解:其中: $ |\mathcal D| $ 为语料库大小; $ n(w,c) $ 为语料库 $ \mathcal D $ 中
vertex-context
$ (w,c) $ 共现的次数; $ n(w) $ 为语料库中vertex
$ w $ 出现的总次数; $ n(c) $ 为语料库中context
$ c $ 出现的总次数; $ b $ 为负采样系数。这个矩阵 $ \mathbf M $ 刻画了图结构的什么属性?目前并没有相关的分析工作。此外,这里是否可以去掉
log
、是否可以去掉log b
,也没有理论的解释。接下来的分析依赖于一些关键的假设:
- 假设图 $ G $ 为无向的
undirected
、连接的connected
、non-bipartite
的,这使得 $ P(w) = d_w/\text{vol}_G $ 为一个平稳分布。 - 假设每个随机游走序列的第一个顶点从这个平稳分布 $ P(w) $ 中随机选取。
对于 $ r=1,2,\cdots,T $ ,定义:
$ \mathcal D_{r\rightarrow} = \{(w,c)\mid (w,c)\in \mathcal D, w = w_j^{
},c = w_{j+r}^{}\} $ ,即 $ \mathcal D_{r\rightarrow} $ 为 $ \mathcal D $ 的子集,它的每个context
顶点 $ c $ 都在每个vertex
顶点 $ w $ 的右侧 $ r $ 步。另外定义 $ n(w,c)_{r\rightarrow} $ 为 $ \mathcal D_{r\rightarrow} $ 中vertex-context
$ (w,c) $ 共现的次数。$ \mathcal D_{r\leftarrow} = \{(w,c)\mid (w,c)\in \mathcal D, w = w_{j+r}^{
},c = w_{j}^{}\} $ , 即 $ \mathcal D_{r\rightarrow} $ 为 $ \mathcal D $ 的子集,它的每个context
顶点 $ c $ 都在每个vertex
顶点 $ w $ 的左侧 $ r $ 步。另外定义 $ n(w,c)_{r\leftarrow} $ 为 $ \mathcal D_{r\leftarrow} $ 中vertex-context
$ (w,c) $ 共现的次数。定义 $ \mathbf P = \mathbf D^{-1}\mathbf A $ , $ \mathbf P^r = \underbrace {\mathbf P\times \cdots \times \mathbf P}_r $ ( $ r $ 个 $ \mathbf P $ 相乘),其中对角矩阵 $ \mathbf D = \text{diag}(d_1,\cdots,d_{|V|}) $ , $ d_w = \sum_{c}A_{w,c} $ , $ \text{vol}_G=\sum_{w}\sum_{c}A_{w,c} $ 。定义 $ P^r_{w,c} $ 为 $ \mathbf P^r $ 的第 $ w $ 行、第 $ c $ 列。
事实上 $ \mathbf P $ 定义了一个概率转移矩阵, $ P_{w,c} $ 定义了从顶点 $ w $ 经过一步转移到 $ c $ 的概率; $ P^r_{w,c} $ 定义了从顶点 $ w $ 经过 $ r $ 步转移到 $ c $ 的概率。
另外考虑到对称性,我们有 $ \mathbf A= \mathbf A^{\top} $ 。
- 假设图 $ G $ 为无向的
定理一:定义,则当 $ L\rightarrow \infty $ 时有:
$ \frac{n(w,c)_{r\rightarrow}}{|\mathcal D_{r\rightarrow}|}\stackrel{p}{\rightarrow } \frac{d_w}{\text{vol}_G}P^r_{w,c}\\ \frac{n(w,c)_{r\leftarrow}}{|\mathcal D_{r\leftarrow}|}\stackrel{p}{\rightarrow } \frac{d_c}{\text{vol}_G}P^r_{c,w} $其中: $ \stackrel{p}{\rightarrow} $ 表述依概率收敛。
证明:
首先介绍
S.N. Bernstein
大数定律:设 $ Y_1,Y_2,\cdots $ 为一个随机变量的序列,其中每个随机变量具有有限的期望 $ \mathbb E[Y_j]\lt K $ 和有限的方差 $ \text{Var} (Y_j) \lt K $ ,并且协方差满足:当 $ |i-j|\rightarrow \infty $ 时, $ \text{Cov}(Y_i,Y_j)\rightarrow 0 $ 。则大数定律law of large numbers:LLN
成立。考虑只有一条随机游走序列(即 $ N=1 $ ): $ (w_1,\cdots,w_L) $ 。给定一个
vertex-context
$ (w,c) $ ,定义随机变量 $ Y_j,j=1,2,\cdots,L-T $ 为事件 $ w_j=w,w_{j+r} = c $ 发生的指示器indicator
。我们观察到:
$ |\mathcal D_{r\rightarrow}| = L-T $ , $ \sum_{j=1}^{L-T} Y_j = n(w,c)_{r\rightarrow} $ 。因此有:
$ \frac{n(w,c)_{r\rightarrow}}{|\mathcal D_{r\rightarrow}|} = \frac{1}{L-T} \sum_{j=1}^{L-T} Y_j $基于我们对图的假设和随机游走的假设,则有: $ Y_j $ 发生的概率等于 $ w_j=w $ 的概率乘以 $ w $ 经过 $ r $ 步转移到 $ c $ 的概率。即:
$ \mathbb E[Y_j] = P(Y_j) = \frac{d_w}{\text{vol}_G}\times P^r_{w, c} $基于我们对图的假设和随机游走的假设,则有:当 $ j\gt i+r $ 时有:
$ \mathbb E[Y_iY_j] = P(w_i=w,w_{i+r}=c, w_j=w,w_{j+r} = c)\\ = \frac{d_w}{\text{vol}_G}P^r_{w,c}\times P^{j-i-r}_{c,w}\times P^r_{w,c} $其中:第一项为 $ w_i $ 采样到 $ w $ 的概率;第二项为从 $ w $ 经过 $ r $ 步转移到 $ c $ 的概率;第三项为从 $ c $ 经过 $ j-(r+i) $ 步转移到 $ w $ 得概率;第四项为从 $ w $ 经过 $ r $ 步转移到 $ c $ 的概率。
则有:
$ \text{Cov}(Y_i,Y_j) = \mathbb E[Y_iY_j] - \mathbb E[Y_i]\mathbb E[Y_j] = \frac{d_w}{\text{vol}_G}P^r_{w,c}\left[P^{j-i-r}_{c,w} -\frac{d_w}{\text{vol}_G}\right]P^{r}_{w,c} $当 $ |j-i|\rightarrow \infty $ 时,从 $ c $ 经过 $ \infty $ 步转移到 $ w $ 的概率收敛到它的平稳分布,即 $ p(w_j=w) $ 。即:
$ \lim_{|j-i|\rightarrow\infty}P^{j-i-r}_{c,w} = \frac{d_w}{\text{vol}_G} $因此有 $ \lim_{|j- i|\rightarrow \infty} \text{Cov}(Y_i,Y_j) = 0 $ 。因此随机游走序列收敛到它的平稳分布。
应用大数定律,则有:
$ \frac{n(w,c)_{r\rightarrow}}{|\mathcal D_{r\rightarrow}|} = \frac{1}{L-T} \sum_{j=1}^{L-T} Y_j \stackrel{p}{\rightarrow} \frac{1}{L-T}\sum_{j=1}^{L-T} \mathbb E[Y_j] = \frac{d_w}{\text{vol}_G}P^r_{w,c} $类似地,我们有:
$ \frac{n(w,c)_{r\leftarrow}}{|\mathcal D_{r\leftarrow}|} = \frac{d_c}{\text{vol}_G}P^r_{c,w} $当 $ N\gt 1 $ 时,我们定义 $ Y_j^{
},s=1,2,\cdots,N,j=1,2,\cdots,L-T $ 为事件 $ w_j^{} = w, w_{j+r}^{(s)} = c $ 的指示器,同样可以证明相同的结论。事实上如果随机游走序列的初始顶点分布使用其它分布(如均匀分布),则可以证明:当 $ j\rightarrow \infty $ 时,有:
$ \lim_{j\rightarrow\infty} P(w_j=w, w_{j+r} = c) = \frac{d_w}{\text{vol}_G}P^r_{w,c} $因此定理一仍然成立。
定理二:当 $ L\rightarrow\infty $ 时,有:
$ \frac{n(w,c)}{|\mathcal D|}\stackrel{p}{\rightarrow}\frac{1}{2T}\sum_{r=1}^T\left(\frac{d_w}{\text{vol}_G}P^r_{w,c} + \frac{d_c}{\text{vol}_G}P^r_{c,w}\right) $证明:
注意到 $ \frac{|\mathcal D_{r\rightarrow}|}{|\mathcal D|}=\frac{|\mathcal D_{r\leftarrow}|}{|\mathcal D|} = \frac{1}{2T} $ ,应用定理一有:
$ \frac{n(w,c)}{|\mathcal D|} = \frac{\sum_{r=1}^T(n(w,c)_{r\rightarrow} + n(w,c)_{r\leftarrow})}{\sum_{r=1}^T(|\mathcal D_{r\rightarrow}|+|\mathcal D_{r\leftarrow}|)} = \frac{1}{2T}\sum_{r=1}^T\left(\frac{n(w,c)_{r\rightarrow}}{|\mathcal D_{r\rightarrow}|} + \frac{n(w,c)_{r\leftarrow}}{|\mathcal D_{r\leftarrow}|} \right)\\ \stackrel{p}{\rightarrow}\frac{1}{2T}\sum_{r=1}^T\left(\frac{d_w}{\text{vol}_G}P^r_{w,c} + \frac{d_c}{\text{vol}_G}P^r_{c,w}\right) $进一步的,考察 $ w $ 的边际分布和 $ c $ 的边际分布,当 $ L\rightarrow \infty $ 时,我们有:
$ \frac{n(w)}{|\mathcal D|} \stackrel{p}{\rightarrow} \frac{d_w}{\text{vol}_G},\quad \frac{n(c)}{|\mathcal D|} \stackrel{p}{\rightarrow} \frac{d_c}{\text{vol}_G} $当 $ r $ 不大时,单边的、间隔 $ r $ 的
vertex-context
数量是固定的,为全体vertex-context
数量的 $ 1/(2T) $ 。定理三:在
$ \frac{n(w,c)|\mathcal D|}{n(w)n(c)}\stackrel{p}{\rightarrow} \frac{\text{vol}_G}{2T}\left(\frac{1}{d_c}\sum_{i=1}^TP^r_{w,c} +\frac{1}{d_w}\sum_{i=1}^TP^r_{c,w} \right) $DeepWalk
中,当 $ L\rightarrow \infty $ 时有:因此
$ \mathbf X \mathbf Y^{\top} = \log\left(\frac{\text{vol}_G}{T}\left(\sum_{r=1}^T \mathbf P^r\right)\mathbf D^{-1}\right)- (\log b)\mathbf I $DeepWalk
等价于因子分解:证明:
利用定理二和
$ \frac{n(w,c)|\mathcal D|}{n(w)n(c)} = \frac{\frac{n(w,c)}{|\mathcal D|}}{\frac{n(w)}{|\mathcal D|}\frac{n(c)}{|\mathcal D|}}\stackrel{p}{\rightarrow}\frac{\frac{1}{2T}\sum_{r=1}^T\left(\frac{d_w}{\text{vol}_G}P^r_{w,c} + \frac{d_c}{\text{vol}_G}P^r_{c,w}\right)}{\frac{d_w}{\text{vol}_G}\times \frac{d_c}{\text{vol}_G}}\\ = \frac{\text{vol}_G}{2T}\left(\frac{1}{d_c}\sum_{r=1}^T P^r_{w,c} +\frac{1}{d_w}\sum_{r=1}^T P^r_{c,w} \right) $continous mapping theorem
,有:写成矩阵的形式为:
$ \frac{\text{vol}_G}{2T}\left(\sum_{r=1}^T\mathbf P^r\mathbf D^{-1}+\sum_{r=1}^T\mathbf D^{-1}(\mathbf P^r)^{\top}\right)\\ = \frac{\text{vol}_G}{2T}\left(\sum_{r=1}^T(\underbrace{\mathbf D^{-1}\mathbf A\times\cdots\times \mathbf D^{-1}\mathbf A}_r)\mathbf D^{-1}+\sum_{r=1}^T\mathbf D^{-1}(\underbrace{\mathbf A\mathbf D^{-1}\times \cdots\times \mathbf A\mathbf D^{-1}}_r) \right)\\ = \frac{\text{vol}_G}{T}\left(\sum_{r=1}^T(\underbrace{\mathbf D^{-1}\mathbf A\times\cdots\times \mathbf D^{-1}\mathbf A}_r)\mathbf D^{-1} \right) = \frac{\text{vol}_G}{T}\left(\sum_{r=1}^T \mathbf P^r\right)\mathbf D^{-1} $事实上我们发现,当 $ T=1 $ 时,
DeepWalk
就成为了LINE(2nd)
, 因此LINE(2nd)
是DeepWalk
的一个特例。
15.1.4 node2vec
node2vec
是最近提出的graph embedding
方法,其算法如下:输入:
- 图 $ G(V,E,\mathbf A) $
- 窗口大小 $ T $
- 随机游走序列长度 $ L $
- 总的随机游走序列数量 $ N $
输出:顶点
算法步骤:
构建转移概率张量 $ \mathbf P\in \mathbb R^{|V| \times |V|\times |V|} $
迭代: $ \text{for}\; s = 1,2,\cdots,N $ ,迭代过程为:
根据先验概率分布 $ Q(w_1,w_2) $ 随机选择初始的两个顶点 $ (w^{
}_1,w_2^{}) $ 。在图 $ G $ 上从初始顶点 $ w^{
}_1,w^{}_2 $ 开始二阶随机游走,采样得到一条长度为 $ L $ 的顶点序列 $ (w_1^{},\cdots,w_L^{}) $ 。统计顶点共现关系。对于窗口位置 $ j=2,\cdots,L-T $ :
考虑窗口内第 $ r $ 个顶点 $ r=1,2,\cdots,T $ :
- 添加三元组 $ (w_j^{
},w_{j+r}^{},w_{j-1}^{}) $ 到 $ \mathcal D $ 中。 - 添加三元组 $ (w_{j+r} ^{
},w_{j}^{},w_{j-1}^{}) $ 到 $ \mathcal D $ 中。
- 添加三元组 $ (w_j^{
然后在 $ \mathcal D^\prime=\{(w,c)\mid (w,c,u)\in \mathcal D \} $ 上执行负采样系数为 $ b $ 的
SGNS
。
注意:这里为了方便分析,我们使用三元组 $ (w_j,w_{j+r},w_{j-1}) $ ,而不是
vertex-context
二元组。
node2vec
的转移概率张量 $ \mathbf P $ 采取如下的方式定义:首先定义未归一化的概率:
$ \hat P_{w,v,u} = \begin{cases} \frac 1p,& (u,v) \in E, (v,w) \in E, u=w\\ 1,&(u,v) \in E, (v,w) \in E, u\ne w,(w,u) \in E\\ \frac 1q,&(u,v)\in E, (v,w) \in E, u\ne w, (w,u)\notin E\\ 0,&\text{else} \end{cases} $其中 $ \hat P_{w,v,u} $ 表示在 $ w_{j-1}=u,w_j = v $ 的条件下, $ w_{j+1} = w $ 的概率。
然后得到归一化的概率:
$ P_{w,v,u} = P(w_{j+1}=w\mid w_j=v, w_{j-1} = u) = \frac{\hat P_{w,v,u}}{\sum_{u^\prime}\hat P_{w,v,u^\prime}} $
类似
$ \mathcal D_{r\rightarrow} = \{(w,c,u)\mid (w,c,u)\in \mathcal D, w_j^n = w, w_{j+r}^n = c, w_{j-1}^n = u\}\\ \mathcal D_{r\leftarrow} = \{(w,c,u)\mid (w,c,u)\in \mathcal D, w_{j+r}^n = w, w_{j}^n = c, w_{j-1}^n = u\} $DeepWalk
,我们定义:这里 $ u $ 为
previous
顶点。定义 $ n(w,c,u)_{\rightarrow} $ 为 $ (w,c,u) $ 出现在 $ \mathcal D_{r\rightarrow} $ 中出现的次数;定义 $ n(w,c,u)_{\leftarrow} $ 为 $ (w,c,u) $ 出现在 $ \mathcal D_{r\leftarrow} $ 中出现的次数。
定义二阶随机游走序列的平稳分布为 $ \mathbf Q $ ,它满足: $ \sum_{u} P_{w,v,u}Q_{v,u} = Q_{w,v} $ 。根据
Perron-Frobenius
定理,这个平稳分布一定存在。为了便于讨论,我们定义每个随机游走序列的初始两个顶点服从平稳分布 $ \mathbf Q $ 。定义高阶转移概率矩阵 $ P^r_{w,v,u} = P(w_{j+r}=w\mid w_j=v,w_{j-1}=u) $ 。
由于篇幅有限,这里给出
$ \frac{n(w,c,u)_{r\rightarrow}}{|\mathcal D_{r\rightarrow}|}\stackrel{p}{\rightarrow } Q_{w,u}P^r_{c,w,u},\quad \frac{n(w,c,u)_{r\leftarrow}}{|\mathcal D_{r\leftarrow}|}\stackrel{p}{\rightarrow } Q_{c,u}P^r_{w,c,u}\\ \frac{n(w,c)_{r\rightarrow}}{|\mathcal D_{r\rightarrow}|}=\frac{\sum_u n(w,c,u)_{r\rightarrow}}{|\mathcal D_{r\rightarrow}|}\stackrel{p}{\rightarrow } \sum_{u} Q_{w,u}P^r_{c,w,u}\\ \frac{n(w,c)_{r\leftarrow}}{|\mathcal D_{r\leftarrow}|}=\frac{\sum_u n(w,c,u)_{r\leftarrow}}{|\mathcal D_{r\leftarrow}|}\stackrel{p}{\rightarrow } \sum_u Q_{c,u}P^r_{w,c,u}\\ \frac{n(w,c)}{|\mathcal D|}\stackrel{p}{\rightarrow } \frac{1}{2T}\sum_{r=1}^T \left(\sum_u Q_{w,u}P^r_{c,w,u} + \sum_u Q_{c,u}P^r_{w,c,u}\right)\\ \frac{n(w)}{|\mathcal D|} \stackrel{p}{\rightarrow } \sum_u Q_{w,u},\quad \frac{n(c)}{|\mathcal D|} \stackrel{p}{\rightarrow } \sum_u Q_{c,u} $node2vec
的主要结论,其证明过程类似DeepWalk
:因此
$ \frac{n(w,c)\times |\mathcal D|}{n(w)\times n(c)}\stackrel{p}{\rightarrow } \frac{\frac{1}{2T}\sum_{r=1}^T \left(\sum_u Q_{w,u}P^r_{c,w,u} + \sum_u Q_{c,u}P^r_{w,c,u}\right)}{ \left(\sum_u Q_{w,u}\right)\times \left(\sum_u Q_{c,u}\right)} $node2vec
有:尽管实现了
node2vec
的封闭形式,我们将其矩阵形式的公式留待以后研究。注意:存储和计算转移概率张量 $ \mathbf P^r $ 以及对应的平稳分布代价非常高,使得我们难以对完整的二阶随机游走动力学过程建模。但是最近的一些研究试图通过对 $ \mathbf Q $ 进行低秩分解来降低时间复杂度和空间复杂度:
$ Q_{u,v} = \mathbf{\vec q}_u\cdot \mathbf{\vec q}_v $由于篇幅限制,我们这里主要集中在一阶随机游走框架
DeepWalk
上。
15.1.5 NetMF
根据前面的分析我们将
LINE,PTE,DeepWalk,node2vec
都统一到矩阵分解框架中。这里我们主要研究DeepWalk
矩阵分解,因为它比LINE
更通用、比node2vec
计算效率更高。首先我们引用了四个额外的定理:
定理四:定义归一化的图拉普拉斯矩阵为 $ \mathbf L = \mathbf I - \mathbf D^{-1/2}\mathbf A \mathbf D^{-1/2} $ ,则它的特征值都是实数。
而且,假设它的特征值从大到小排列 ,则有:
$ 2\ge\lambda_1\ge\lambda_2\ge \cdots\ge\lambda_n = 0 $进一步的,假设该图是连通图 (
connected
),并且顶点数量 $ n\gt 1 $ ,则有: $ \lambda_1\ge \frac{n}{n-1} $ 。证明参考:
《Spectral graph theory》
。定理五:实对称矩阵的奇异值就是该矩阵特征值的绝对值。
证明参考:
《Numerical linear algebra》
。定理六:假设 $ \mathbf B\in \mathbb R^{n\times n} ,\mathbf C \in \mathbb R^{n\times n} $ 为两个对称矩阵,假设将 $ \mathbf B,\mathbf C,\mathbf {BC} $ 的奇异值按照降序排列,则对于任意 $ 1\le i,j\le n,i+j\le n+1 $ ,以下不等式成立:
$ \sigma_{i+j-1}(\mathbf B\mathbf C) \le \sigma_i(\mathbf B)\times \sigma_j(\mathbf C) $其中 $ \sigma_i(\cdot) $ 为对应矩阵的奇异值根据降序排列之后的第 $ i $ 个奇异值。
证明参考:
《Topics in Matrix Analysis》
。定理七:给定一个实对称矩阵 $ \mathbf A $ ,定义它的瑞利商为:
$ R(\mathbf A,\mathbf{\vec x}) = \frac{\mathbf{\vec x}^\top \mathbf A \mathbf{\vec x} }{\mathbf{\vec x}^\top \mathbf{\vec x}} $假设 $ \mathbf A $ 的特征值从大到小排列为 $ \lambda_1\ge\cdots\ge\lambda_n $ ,则有:
$ \lambda_n = \min_{\mathbf{\vec x}\ne \mathbf{\vec 0}} R(\mathbf A,\mathbf{\vec x}),\quad \lambda_1 = \max_{\mathbf{\vec x}\ne \mathbf{\vec 0}} R(\mathbf A,\mathbf{\vec x}) $证明参考:
《Numerical linear algebra》
。
考察
$ \mathbf X \mathbf Y^{\top} = \log\left(\frac{\text{vol}_G}{T}\left(\sum_{r=1}^T \mathbf P^r\right)\mathbf D^{-1}\right)- (\log b)\mathbf I $DeepWalk
的矩阵分解:忽略常量以及
element-wise
的log
函数,我们关注于矩阵: $ \frac{1}{T}\left(\sum_{r=1}^T \mathbf P^r\right)\mathbf D^{-1} $ 。实对称矩阵 $ \mathbf D^{-1/2}\mathbf A\mathbf D^{-1/2} = \mathbf I - \mathbf L $ 存在特征值分解 $ \mathbf U\mathbf\Lambda \mathbf U^\top $ ,其中 $ \mathbf U $ 为正交矩阵、 $ \mathbf\Lambda=\text{diag}(\lambda_1,\cdots,\lambda_n) $ 为特征值从大到小构成的对角矩阵。根据定理四可知, $ 1=\lambda_1\ge \lambda_2\cdots\ge\lambda_n\ge -1 $ ,并且 $ \lambda_n\lt -\frac{1}{n-1}\lt0 $ 。
考虑到 $ \mathbf P = \mathbf D^{-1}\mathbf A= \mathbf D^{-1/2}\mathbf A\mathbf D^{-1/2} $ ,因此有:
$ \frac{1}{T}\left(\sum_{r=1}^T \mathbf P^r\right)\mathbf D^{-1} = \left(\mathbf D^{-1/2}\right)\left(\mathbf U\left(\frac{1}{T}\sum_{r=1}^T \mathbf\Lambda^r\right) \mathbf U^\top\right)\left(\mathbf D^{-1/2}\right) $我们首先分析 $ \mathbf U\left(\frac{1}{T}\sum_{r=1}^T \mathbf\Lambda^r\right) \mathbf U^\top $ 的谱。显然,它具有特征值:
$ \left\{\frac 1T \sum_{r=1}^T \lambda_1^r,\; \frac 1T \sum_{r=1}^T \lambda_2^r,\;\cdots,\;\frac 1T \sum_{r=1}^T \lambda_i^r,\;\cdots\;\frac 1T \sum_{r=1}^T \lambda_n^r\right\} $这可以视为对 $ \mathbf D^{-1/2}\mathbf A\mathbf D^{-1/2} $ 的特征值 $ \lambda_i $ 进行一个映射 $ f(x) = \frac 1T\sum_{r=1}^T x^r $ 。这个映射可以视为一个滤波器,滤波器的效果如下图所示。可以看到:
- 滤波器倾向于保留正的、大的特征值。
- 随着窗口大小 $ T $ 的增加,这种偏好变得更加明显。
即:随着 $ T $ 的增加,滤波器尝试通过保留较大的、正的特征值来近似低阶半正定矩阵。
然后我们分析 $ \frac{1}{T}\left(\sum_{r=1}^T \mathbf P^r\right)\mathbf D^{-1} $ 的谱。
根据定理五,矩阵 $ \mathbf U\left(\frac{1}{T}\sum_{r=1}^T \mathbf\Lambda^r\right) \mathbf U^\top $ 的奇异值可以根据其特征值的绝对值得到。我们将 $ |\frac 1T \sum_{r=1}^T \lambda_i^r|,i=1,2,\cdots,n $ 进行降序排列,假设排列的顺序为 $ \{p_1,p_2,\cdots,p_n\} $ ,则有:
$ \left|\frac 1T \sum_{r=1}^T \lambda_{p_1}^r\right|\ge \left|\frac 1T \sum_{r=1}^T \lambda_{p_2}^r\right|\ge\cdots\ge \left|\frac 1T \sum_{r=1}^T \lambda_{p_n}^r\right| $考虑到每个 $ d_i $ 都是正数,因此我们可以将 $ \mathbf D^{-1/2} $ 的奇异值根据特征值 $ \frac{1}{\sqrt d_i} $ 降序排列。假设排列的顺序为 $ \{q_1,q_2,\cdots,q_n\} $ ,则有:
$ \frac{1}{\sqrt{d_{q_1}}}\ge \frac{1}{\sqrt{d_{q_2}}}\ge\cdots\ge\frac{1}{\sqrt{d_{q_n}}} $特别的, $ d_{q_1} = d_{\min} $ 为最小的
degree
。通过应用两次定理六,我们可以发现第 $ s $ 个奇异值满足:
$ \sigma_s\left(\left(\frac{1}{T}\sum_{r=1}^T \mathbf P^r\right)\mathbf D^{-1}\right)\le \sigma_1(\mathbf D^{-1/2})\sigma_s\left(\mathbf U\left(\frac 1T\sum_{r=1}^T \mathbf\Lambda^r\right)\mathbf U^\top\right)\sigma_1(\mathbf D^{-1/2})\\ = \frac{1}{\sqrt{d_{q_1}}}\left|\frac 1T \sum_{r=1}^T\lambda_{p_s}^r\right| \frac{1}{\sqrt{d_{q_1}}} = \frac{1}{d_{\min}}\left|\frac 1T \sum_{r=1}^T\lambda_{p_s}^r\right| $因此 $ \frac{1}{T}\left(\sum_{r=1}^T \mathbf P^r\right)\mathbf D^{-1} $ 的第 $ s $ 个奇异值的上界为 $ \frac{1}{d_{\min}}\left|\frac 1T \sum_{r=1}^T\lambda_{p_s}^r\right| $ 。
另外,根据瑞利商,我们有:
$ R\left(\left(\frac 1T\sum_{r=1}^T\mathbf P^r\right)\mathbf D^{-1},\mathbf{\vec x}\right) = R\left(\mathbf U\left(\frac 1T\sum_{r=1}^T \mathbf\Lambda^r\right)\mathbf U^\top, \mathbf D^{-1/2} \mathbf{\vec x}\right) R(\mathbf D^{-1},\mathbf{\vec x})\\ \ge \lambda_{\min}\left(\mathbf U\left(\frac 1T \sum_{r=1}^T \mathbf\Lambda^r\right)\mathbf U^\top\right)\lambda_{\min}(\mathbf D^{-1})\\ = \frac {1}{d_\min}\lambda_{\min}\left(\mathbf U \left(\frac 1T\sum_{r=1}^T\mathbf\Lambda^r\right)\mathbf U^\top\right) $应用定理七,我们有:
$ \lambda_{\min}\left(\left(\frac 1T \sum_{r=1}^T \mathbf P^r\right)\mathbf D^{-1}\right) \ge \frac{1}{d_\min}\lambda_\min \left(\mathbf U\left(\frac 1T\sum_{r=1}^T \mathbf\Lambda^r\right)\mathbf U^\top\right) $
为了说明滤波器 $ f(x) = \frac 1T\sum_{r=1}^T x^r $ 的效果,我们分析了
Cora
数据集对应的引文网络。我们将引文链接视为无向边,并选择最大连通分量largest connected component
。我们分别给出了 $ \mathbf D^{-1/2}\mathbf A \mathbf D^{-1/2} $ 、 $ \mathbf U\left(\frac {1}{T} \sum_{r=1}^T \mathbf\Lambda^r\right)\mathbf U^\top $ 以及 $ \left(\frac 1T \sum_{r=1}^T \mathbf P^r\right)\mathbf D^{-1} $ 按照降序排列的特征值,其中 $ T=10 $ 。对于 $ \mathbf D^{-1/2}\mathbf A \mathbf D^{-1/2} $ ,最大的特征值为 $ \lambda_1= 1 $ ,最小特征值为 $ \lambda_n = -0.971 $ 。
对于 $ \mathbf U\left(\frac {1}{T} \sum_{r=1}^T \mathbf\Lambda^r\right)\mathbf U^\top $ ,我们发现:它的所有负特征值以及一些小的正特征值都被过滤掉了
filtered out
。对于 $ \left(\frac 1T \sum_{r=1}^T \mathbf P^r\right)\mathbf D^{-1} $ ,我们发现:
- 它的奇异值(即特征值的绝对值)被 $ \mathbf U\left(\frac {1}{T} \sum_{r=1}^T \mathbf\Lambda^r\right)\mathbf U^\top $ 的奇异值所限制
bounded
。 - 它的最小特征值的被 $ \mathbf U\left(\frac {1}{T} \sum_{r=1}^T \mathbf\Lambda^r\right)\mathbf U^\top $ 的特征值所限制
bounded
。
- 它的奇异值(即特征值的绝对值)被 $ \mathbf U\left(\frac {1}{T} \sum_{r=1}^T \mathbf\Lambda^r\right)\mathbf U^\top $ 的奇异值所限制
基于前面的理论分析,我们提出了一个矩阵分解框架
NetMF
,它是对DeepWalk
和LINE
的改进。为表述方便,我们定义:
$ \mathbf M = \frac{\text{vol}_G}{bT}\left(\sum_{r=1}^T\mathbf P^r\right) \mathbf D^{-1} $因此 $ \mathbf X \mathbf Y^\top = \log \mathbf M $ 对应于
DeepWalk
的矩阵分解。对于很小的 $ T $ ,我们直接计算 $ \mathbf M $ 并对 $ \log \mathbf M $ 进行矩阵分解。考虑到直接对 $ \log \mathbf M $ 进行矩阵分分解难度很大,有两个原因:当 $ M_{i,j} = 0 $ 时 $ \log M_{i,j} $ 的行为未定义; $ \log \mathbf M $ 是一个巨大的稠密矩阵,计算复杂度太高。
受到
Shifted PPMI
启发,我们定义 $ \mathbf M^\prime = \max(\mathbf M,1) $ 。这使得 $ \log \mathbf M^\prime $ 中每个元素都是有效的,并且 $ \log \mathbf M^\prime $ 是稀疏矩阵。然后我们对 $ \log \mathbf M^\prime $ 进行奇异值分解,并使用它的top
$ d $ 奇异值和奇异向量来构造embedding
向量。对于很大的 $ T $ ,直接计算 $ \mathbf M $ 的代价太高。我们提出一个近似算法,主要思路是:根据 $ \mathbf M $ 和归一化拉普拉斯矩阵之间的关系来近似 $ \mathbf M $ 。
首先我们对 $ \mathbf D^{-1/2}\mathbf A\mathbf D^{-1/2} $ 进行特征值分解,通过它的
top
$ h $ 个特征值和特征向量 $ \mathbf U_h\mathbf\Lambda_h\mathbf U_h^{\top} $ 来逼近 $ \mathbf D^{-1/2}\mathbf A\mathbf D^{-1/2} $ 。由于只有top
$ h $ 个特征值被使用,并且涉及的矩阵是稀疏的,因此我们可以使用Arnoldi
方法来大大减少时间。大型稠密矩阵的特征值分解的代价太高,实际是不可行的。
然后我们通过 $ \hat {\mathbf M} = \frac{\text{vol}_G}{b }\mathbf D ^{-1/2}\mathbf U_h\left(\frac 1T\sum_{r=1}^T\mathbf \Lambda_h^r\right) \mathbf U_h^\top\mathbf D^{-1/2} $ 来逼近 $ \mathbf M $ 。
NetMF
算法:输入:
- 图 $ G(V,E,\mathbf A) $
- 窗口大小 $ T $
输出:顶点的
embedding
矩阵 $ \mathbf X $算法步骤:
如果 $ T $ 较小,则计算:
$ \mathbf P^1,\cdots,\mathbf P^T\\ \mathbf M = \frac{\text{vol}_G}{bT}\left(\sum_{r=1}^T\mathbf P^r\right) \mathbf D^{-1}\\ \mathbf M^\prime = \max (\mathbf M,1) $如果 $ T $ 较大,则执行特征值分解: $ \mathbf D^{-1/2}\mathbf A \mathbf D^{-1/2} \simeq \mathbf U_h\mathbf\Lambda_h\mathbf U_h^\top $ 。然后计算:
$ \hat {\mathbf M} = \frac{\text{vol}_G}{b }\mathbf D ^{-1/2}\mathbf U_h\left(\frac 1T\sum_{r=1}^T\mathbf \Lambda_h^r\right) \mathbf U_h^\top\mathbf D^{-1/2}\\ \hat{\mathbf M}^\prime = \max (\hat{\mathbf M},1) $执行 $ d $ 维的
SVD
分解: $ \log \mathbf M^\prime = \mathbf U_d \Sigma_d \mathbf V_d^\top $ 或者 $ \log \hat{\mathbf M}^\prime = \mathbf U_d \Sigma_d \mathbf V_d^\top $ 。返回 $ \mathbf U_d\sqrt\Sigma_d $ 作为网络
embedding
。
对于较大的 $ T $ ,可以证明 $ \hat{\mathbf M} $ 逼近 $ \mathbf M $ 的误差上界,也可以证明 $ \log \hat{\mathbf M}^\prime $ 逼近 $ \log \mathbf M^\prime $ 的误差上界。
定理八:令 $ ||\cdot||_F $ 为矩阵的
$ \left\|\mathbf M - \hat{\mathbf M}\right\|_F \le \frac{\text{vol}_G}{bd_\min}\sqrt{\sum_{j=k+1}^n \left|\frac 1T\sum_{r=1}^T \lambda_j^r\right|}\\ \left\|\log \mathbf M^\prime - \log \hat{\mathbf M}^\prime\right\|_F \le \left\|\mathbf M^\prime - \hat{\mathbf M}^\prime\right\|_F \le \left\|\mathbf M - \hat{\mathbf M}\right\|_F $Frobenius
范数,则有:证明:
第一个不等式:可以通过
F
范数的定义和前面的定理七来证明。第二个不等式:不失一般性我们假设 $ M^\prime_{i,j}\le \hat M_{i,j}^\prime $ ,则有:
$ \left|\log M_{i,j}^\prime -\log \hat M_{i,j}^\prime \right| = \log \left(1+ \frac{\hat M^\prime_{i,j} - M^\prime_{i,j}}{M^\prime_{i,j}}\right)\\ \le \frac{\hat M^\prime_{i,j} - M^\prime_{i,j}}{M^\prime_{i,j}} \le \hat M^\prime_{i,j} - M^\prime_{i,j} = \left|\hat M^\prime_{i,j} - M^\prime_{i,j}\right| $第一步成立是因为: 对于 $ x\ge 0 $ 有 $ \log (1+x)\le x $ ;第二步成立是因为: $ M_{i,j}^\prime = \max(M_{i,j},1) \ge 1 $ 。因此有 $ \left\|\log \mathbf M^\prime - \log \hat{\mathbf M}^\prime\right\|_F \le \left\|\mathbf M^\prime - \hat{\mathbf M}^\prime\right\|_F $ 。
另外,根据 $ \mathbf M^\prime $ 和 $ \hat{\mathbf M}^\prime $ 的定义有:
$ \left|M_{i,j}^\prime - \hat M_{i,j}^\prime\right| = \left|\max(M_{i,j},1) - \max(\hat M_{i,j},1)\right|\le \left|M_{i,j} - \hat M_{i,j}\right| $因此有: $ \left\|\mathbf M^\prime - \hat{\mathbf M}^\prime\right\|_F \le \left\|\mathbf M - \hat{\mathbf M}\right\|_F $ 。
15.2 实验
这里我们在在多标签顶点分类任务中评估
NetMF
的性能,该任务也被DeepWalk, LINE, node2vec
等工作所采用。数据集:
BlogCatalog
数据集:在线博主的社交关系网络,标签代表博主的兴趣。Flickr
数据集:Flickr
网站用户之间的关系网络,标签代表用户的兴趣组,如“黑白照片”。Protein-Protein Interactions:PPI
:智人PPI
网络的子集,标签代表标志基因组和代表的生物状态。Wikipedia
数据集:来自维基百科,包含了英文维基百科dump
文件的前一百万个字节中的单词共现网络。顶点的标签表示通过Stanford POS-Tagger
推断出来的单词词性Part-of-Speech:POS
。
这些数据集的统计信息如下表所示。
Baseline
模型和配置:我们将NetMF(T=1)
、NetMF(T=10)
和LINE(2nd), DeepWalk
进行比较。- 所有模型的
embedding
维度都是128
维。 - 对于
NetMF(T=10)
,我们在Flickr
数据集上选择 $ h=16384 $ ,在其它数据集上选择 $ h=256 $ 。 - 对于
DeepWalk
,我们选择窗口大小为10
、随机游走序列长度40
、每个顶点开始的随机游走序列数量为80
。
我们重点将
NetMF(T=1)
和LINE(2nd)
进行比较,因为二者窗口大小都为1
;重点将NetMF(T=10)
和DeepWalk
进行比较,因为二者窗口大小都为10
。- 所有模型的
和
DeepWalk
相同的实验步骤,我们首先训练整个网络的embedding
,然后随机采样一部分标记样本来训练一个one-vs-rest
逻辑回归分类模型,剩余的顶点作为测试集。在测试阶段,one-vs-rest
模型给出label
的排名,而不是最终的label
分配。为了避免阈值效应,我们假设测试集的label
数量是给定的。对于
BlogCatalog,PPI,Wikipedia
数据集,我们考察分类训练集占比10%~90%
的情况下,各模型的性能;对于Flickr
数据集,我们考察分类训练集占比1%~10%
的情况下,各模型的性能。我们评估测试集的Micro-F1
指标和Macro-F1
指标。为了确保实验结果可靠,每个配置我们都重复实验10
次,并报告测试集指标的均值。完成的实验结果如下图所示。可以看到:
NetMF(T=1)
相对于LINE(2nd)
取得了性能的提升(它们的上下文窗口T=1
),NetMF(T=10)
相对于DeepWalk
也取得了性能提升(它们的上下文窗口T=10
)。在
BlogCatalog,PPI,Flickr
数据集中,我们提出的NetMF(T=10)
比Baseline
性能更好。这证明了我们提出的理论基础在network embedding
的有效性。在
Wikipedia
数据集中,窗口更小的NetMF(T=1)
和LINE(2nd)
效果更好。这表明:短期依赖足以建模Wikipedia
网络结构。这是因为Wikipedia
网络是一个平均degree
为77.11
的稠密的单词共现网络,大量单词之间存在共现关系。如下表所示,大多数情况下当标记数据稀疏时,
NetMF
方法远远优于DeepWalk
和LINE
。DeepWalk
尝试通过随机游走采样,从而用经验分布来逼近真实的vertex-context
分布。尽管大数定律可以保证这种方式的收敛性,但是实际上由于真实世界网络规模较大,而且实际随机游走的规模有限(随机游走序列的长度、随机游走序列的数量),因此经验分布和真实分布之间存在gap
,从而对DeepWalk
的性能产生不利影响。NetMF
通过直接建模真实的vertex-context
分布,从而得到比DeepWalk
更好的效果。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论