数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 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
- 并发
九、CANE [2017]
network embedding: NE
(即network representation learning: NRL
)旨在根据顶点在网络中的结构角色structural role
,从而将网络的顶点映射到低维空间中。network embedding
提供了一种高效efficient
且有效effective
的方法来表达和管理大型网络,缓解了传统基于符号的representation
的计算问题和稀疏性问题。因此,近年来network embedding
吸引了人们的许多研究兴趣,并在包括链接预测、顶点分类、社区检测在内的许多网络分析任务上取得了可喜的表现。在现实世界的社交网络中,一个顶点在与不同的邻居顶点交互时可能表现出不同的方面
aspect
,这是很直观的。例如,研究人员通常与各种合作伙伴就不同的研究主题进行合作(如下图所示),社交媒体用户与分享不同兴趣的各种朋友联系,一个网页出于不同目的链接到多个其它网页。然而,现有的大多数network embedding
方法只为每个顶点安排一个single embedding
向量,并产生以下两个问题:这些方法在与不同邻居交互时,无法灵活转换不同的方面
aspect
。在这些模型中,一个顶点倾向于迫使它的所有邻居之间的
embedding
彼此靠近,但事实上并非一直如此。例如下图中,左侧用户和右侧用户共享较少的共同兴趣,但是由于他们都链接到中间用户,因此被认为彼此接近。因此,这使得顶点embedding
没有区分性。即:“朋友的朋友“ 不一定是朋友。
为了解决这些问题,论文
《CANE: Context-Aware Network Embedding for Relation Modeling》
提出了一个Context-Aware Network Embedding: CANE
框架,用于精确建模顶点之间的关系。更具体而言,论文在信息网络information network
上应用CANE
。信息网络的每个顶点还包含丰富的外部信息,例如文本text
、标签label
、或者其它元数据meta-data
。在这种场景下,上下文的重要性对network embedding
更为关键。在不失一般性的情况下,论文在基于文本的信息网络中实现了CANE
,但是CANE
可以很容易地扩展到其它类型的信息网络。在传统的
network embedding
模型中,每个顶点都表达为一个静态的embedding
向量,即context-free embedding
。相反,CANE
根据与当前顶点交互的不同邻居,从而将动态的embedding
分配给当前顶点,称为context-aware embedding
。以一个顶点 $ u $ 为例:当与不同的邻居交互时, $ u $ 的context-free embedding
保持不变;而当面对不同的邻居时, $ u $ 的context-aware embedding
是动态的。CANE
类似于GAT
,其中不同邻域顶点的attention
权重是不同的。在CANE
中,注意力权重是hard
的(0
或者1
);在GAT
中,注意力权重是soft
的(0
到1
之间)。当顶点 $ u $ 与它的邻居顶点 $ v $ 交互时,它们彼此相关的
context embedding
分别来自它们的文本信息。对于每个顶点,我们可以轻松地使用神经模型neural model
,例如卷积神经网络和循环神经网络来构建context-free embedding
和text-based embedding
。为了实现context-aware text-based embedding
,论文引入了selective attention
方案,并在这些神经模型中建立了 $ u $ 和 $ v $ 之间的互注意力mutual attention
。mutual attention
预期引导神经模型强调那些被相邻顶点focus
的单词,并最终获得context-aware embedding
。每个顶点的context-free embedding
和context-aware embedding
都可以通过使用现有的network embedding
方法学到(如DeepWalk
,LINE
,node2vec
)并拼接起来。论文对不同领域的三个真实数据集进行了实验。与其它
state-of-the-art
方法相比,链接预测的实验结果展示了论文框架的有效性。结果表明,context-aware embedding
对于网络分析至关重要,特别是对于那些涉及顶点之间复杂交互的任务,如链接预测。论文还通过顶点分类和案例研究来探索论文框架的性能,这再次证实了CANE
模型的灵活性和优越性。CANE
在链接预测方面比state-of-the-art
方法取得了显著的提升,在顶点分类方面与state-of-the-art
方法的性能相当。相关工作:随着大型社交网络的快速增长,
network embedding
(即network representation learning
)已被提出作为网络分析任务的关键技术。近年来,人们已经提出了大量的
network embedding
模型来学习有效的顶点embedding
。例如:DeepWalk
在网络上执行随机游走,并引入了一种有效的word representation learning
模型SkipGram
来学习network embedding
。LINE
优化大型网络中edge
的联合概率和条件概率,从而学习顶点representation
。node2vec
将DeepWalk
中的随机游走策略修改为有偏的随机游走biased random walk
,从而更有效地探索网络结构。
然而,这些
network embedding
模型中的大多数仅将结构信息编码为顶点embedding
,而没有考虑现实世界社交网络中伴随顶点的异质信息heterogeneous information
。为解决这个问题,研究人员努力将异质信息整合到传统的network embedding
模型中。例如:text-associated Deep-Walk: TADW
使用文本信息改进了基于DeepWalk
的矩阵分解。max-margin DeepWalk: MMDW
利用顶点的labeling
信息来学习network representation
。group enhanced network embedding: GENE
整合了NE
中存在的group
信息。context-enhanced network embedding: CENE
将文本内容视为一种特殊的顶点,并同时利用结构信息和文本信息来学习network embedding
。
据我们所知,所有现有的
network embedding
模型都聚焦于学习context-free embedding
,但是忽略了顶点和其它顶点交互时的不同角色。相比之下,我们假设一个顶点根据与它交互的不同顶点而具有不同的embedding
,并提出CANE
来学习context-aware embedding
。
9.1 模型
9.1.1 问题定义
我们首先给出一些基本的符号和定义。给定信息网络
information network
$ G=(V,E,T) $ ,其中 $ V $ 为顶点集合, $ E \sube V\times V $ 为边集合, $ T $ 为顶点的文本信息。每条边 $ e_{u,v}\in E $ 表示顶点 $ (u,v) $ 之间的关系,并且关联一个权重 $ w_{u,v} $ 。这里顶点 $ v\in V $ 的文本信息表达为单词序列 $ \mathcal S_v=(t_1,t_2,\cdots,t_{n_v}) $ ,其中 $ n_v = |\mathcal S_v| $ 为序列 $ \mathcal S_v $ 的长度。network representation learning
旨在根据网络结构和关联信息(如文本和label
)为每个顶点 $ v\in V $ 学习低维embedding
$ \mathbf{\vec v}\in \mathbb R^d $ ,其中 $ d\ll |V| $ 为representation
空间的维度。Context-free Embedding
的定义:传统的network representation learning
模型为每个顶点学习context-free embedding
。这意味着顶点的embedding
是固定的,并且不会根据顶点的上下文信息(即与之交互的另一个顶点)而改变。Context-aware Embedding
的定义:与现有的、学习context-free embedding
的network representation learning
模型不同,CANE
根据顶点不同的上下文来学习该顶点的各种embedding
。具体而言,对于边 $ e_{u,v} $ ,CANE
学习context-aware embedding
$ \mathbf{\vec v}_{(u)} $ 和 $ \mathbf{\vec u}_{(v)} $ 。CANE
的模型容量要比传统的network representation learning
模型容量大得多。传统network representation learning
模型只需要计算 $ O(|V|) $ 个embedding
,而CANE
模型需要计算 $ O(|E|) $ 个embedding
。更大的模型容量可能会导致严重的过拟合。此外,
CANE
模型中每个顶点有可变数量的embedding
,在顶点分类任务中,如何利用这些embedding
是个难点。
9.1.2 模型
整体框架:为了充分利用网络结构和关联的文本信息,我们为顶点 $ v $ 提供了两种类型的
embedding
:基于结构structure-based
的embedding
$ \mathbf{\vec v}^s $ 、基于文本text-based
的embedding
$ \mathbf{\vec v}^t $ 。structure-basedembeding
可以捕获网络结构中的信息,而text-based embedding
可以捕获关联文本信息中的文本含义textual meaning
。使用这些embedding
,我们可以简单地拼接它们并获得顶点embedding
为 $ \mathbf{\vec v} = \mathbf{\vec v}^s \oplus \mathbf{\vec v}^t $ ,其中 $ \oplus $ 为拼接算子。CANE
并不是独立建模structure-basedembeding
和text-based embedding
,而是联合优化它们。注意,
text-based embedding
$ \mathbf{\vec v}^t $ 可以是context-free
的、也可以是context-aware
的,这将在后面详细介绍。当 $ \mathbf{\vec v}^t $ 是context-aware
时,整个顶点embedding
$ \mathbf{\vec v} $ 也将是context-aware
。通过上述定义,
$ \mathcal L = \sum_{e\in E} L(e) $CANE
旨在最大化所有edge
上的目标函数,如下所示:这里每条
$ L(e) = L_s(e) + L_t(e) $edge
的目标函数 $ L(e) $ 由两部分组成:其中: $ L_s(e) $ 表示基于结构的目标函数
structure-based objective
, $ L_t(e) $ 表示基于文本的目标函数text-based objective
。接下来我们分别对这两个目标函数进行详细介绍。CANE
仅建模一阶邻近性(即观察到的直接链接),并没有建模高阶邻近性,因为CANE
隐含地假设了 “朋友的朋友“ 不一定是朋友。仅建模一阶邻近性会遇到数据稀疏的不利影响。基于结构的目标函数:不失一般性,我们假设网络是有向的,因为无向边可以被认为是两个方向相反、且权重相等的有向边。因此,基于结构的目标函数旨在使用
$ L_s(e) = w_{u,v} \log p\left(\mathbf{\vec v}^s\mid \mathbf{\vec u}^s\right) $structure-based embedding
来衡量观察到一条有向边的对数似然log-likelihood
,即:遵从
$ p\left(\mathbf{\vec v}^s\mid \mathbf{\vec u}^s\right)=\frac{\exp\left(\mathbf{\vec u}^s\cdot \mathbf{\vec v}^s\right)}{\sum_{z\in V} \mathbf{\vec u}^s\cdot \mathbf{\vec z}^s} $LINE
,我们将上式中的条件概率定义为:基于文本的目标函数:现实世界社交网络中的顶点通常伴随着关联的文本信息。因此,我们提出了基于文本的目标函数来利用这些文本信息,并学习
text-based embedding
。基于文本的目标函数 $ L_t(e) $ 可以通过各种度量指标来定义。为了与 $ L_s(e) $ 兼容,我们将 $ L_t(e) $ 定义如下:
$ L_t(e) = \alpha L_{t,t}(e) + \beta L_{t,s}(e) + \gamma L_{s,t}(e) $其中:
$ \alpha,\beta,\gamma $ 为对应部分的重要性,为超参数。
如果仅仅最小化 $ L_t(e) $ ,则只需要两个超参数即可。但是由于需要和 $ L_s(e) $ 相加,因此 $ L_t(e) $ 需要三个超参数。
$ L_{t,t}(e),L_{t,s}(e),L_{s,t}(e) $ 定义为:
$ L_{t,t}(e) = w_{u,v} \log p\left(\mathbf{\vec v}^t\mid \mathbf{\vec u}^t\right)\\ L_{t,s}(e) = w_{u,v} \log p\left(\mathbf{\vec v}^t\mid \mathbf{\vec u}^s\right)\\ L_{s,t}(e) = w_{u,v} \log p\left(\mathbf{\vec v}^s\mid \mathbf{\vec u}^t\right) $这里构建了
structure-based embedding
、text-based embedding
之间的桥梁,使得信息在结构和文本之间流动。
上式中的条件概率将两种类型的顶点
embedding
映射到相同的representation
空间中,但是考虑到它们自身的特点,这里并未强制它们相同。类似地,我们使用softmax
函数来计算概率,如公式 $ p\left(\mathbf{\vec v}^s\mid \mathbf{\vec u}^s\right) $ 所示。structure-based embedding
被视为parameter
,与传统的network embedding
模型相同。但是对于text-based embedding
,我们打算从顶点的关联文本信息中获取它们。此外,text-based embedding
可以通过context-free
的方式、或者context-aware
的方式获取。接下来我们将详细介绍。Context-Free Text Embedding
:有多种神经网络模型可以从单词序列word sequence
中获取text embedding
,如卷积神经网络CNN
、循环神经网络RNN
。在这项工作中,我们研究了用于文本建模的不同神经网络,包括CNN
、Bidirectional RNN
、GRU
,并采用了性能最好的CNN
。CNN
可以在单词之间捕获局部语义依赖性local semantic dependency
。CNN
以一个顶点的单词序列作为输入,通过lookup
、卷积、池化这三层得到基于文本的embedding
。lookup
:给定一个单词序列 $ \mathcal S =(t_1,t_2,\cdots,t_{n}) $ ,lookup layer
将每个单词 $ t_i\in \mathcal S $ 转换为对应的word embedding
$ \mathbf{\vec t}_i\in \mathbb R^{d^\prime} $ ,并且获得embedding
序列 $ \mathbf S = \left(\mathbf{\vec t}_1,\cdots, \mathbf{\vec t}_n\right) $ ,其中 $ d^\prime $ 为word embedding
的维度。卷积:
$ \mathbf{\vec x}_i = \mathbf C * \mathbf S_{i:i+l-1} + \mathbf{\vec b} $lookup
之后,卷积层提取输入的embedding
序列 $ \mathbf S $ 的局部特征local feature
。具体而言,它使用卷积矩阵 $ \mathbf C\in \mathbb R^{d\times (l\times d^\prime)} $ 在长度为 $ l $ 的滑动窗口上进行卷积操作,如下所示:$ \mathbf C $ 表示 $ d $ 个卷积核,每个卷积核的尺寸为 $ l\times d^\prime $ 。 $ d $ 为卷积核数量,也称作输出通道数。
其中:
- $ \mathbf S_{i:i+l-1}\in \mathbb R^{l\times d^\prime} $ 为第 $ i $ 个滑动窗口内所有
word embedding
拼接得到的矩阵。 - $ \mathbf{\vec b} \in \mathbb R^d $ 为
bias
向量。
注意,我们在单词序列的边缘添加了零填充向量。
- $ \mathbf S_{i:i+l-1}\in \mathbb R^{l\times d^\prime} $ 为第 $ i $ 个滑动窗口内所有
最大池化:为了获得
$ r_i = \tanh\left(\max\left(x_{1,i},x_{2,i},\cdots,x_{n,i}\right)\right),\quad i=1,\cdots,d \\ \mathbf{\vec v}^t = (r_1,\cdots,r_d)^\top\in \mathbb R^d $text embedding
$ \mathbf{\vec v}^t $ ,我们对 $ \{\mathbf{\vec x}_1,\cdots,\mathbf{\vec x}_n\} $ 进行最大池化和非线性变换,如下所示:其中:
max
是在embedding
维度上进行的,tanh
为逐元素的函数。
Context-Aware Text Embedding
:如前所述,我们假设顶点在与其它顶点交互时扮演不同的角色。换句话讲,对于给定的顶点,其它不同的顶点与它有不同的焦点,这将导致context-aware text embedding
。为了实现这一点,我们采用
mutual attention
来获得context-aware text embedding
。mutual attention
使CNN
中的池化层能够感知edge
中的顶点pair
,从而使得来自一个顶点的文本信息可以直接影响另一个顶点的text embedding
,反之亦然。加权池化,权重来自于当前顶点文本内容和另一个顶点文本内容的相关性。
如下图所示,我们说明了
$ \mathbf F=\tanh\left(\mathbf P^\top \mathbf A \mathbf Q\right) $context-aware text embedding
的生成过程。给定一条边 $ e_{u,v} $ 和两个对应的文本序列 $ \mathcal S_u $ 和 $ \mathcal S_v $ ,我们可以通过卷积层得到矩阵 $ \mathbf P\in \mathbb R^{d\times m} $ 和 $ \mathbf Q\in \mathbb R^{d\times n} $ 。这里 $ m $ 表示 $ \mathcal S_u $ 的长度, $ n $ 表示 $ \mathcal S_v $ 的长度。通过引入一个注意力矩阵attentive matrix
$ \mathbf A\in \mathbb R^{d\times d} $ ,我们计算相关性矩阵correlation matrix
$ \mathbf F\in \mathbb R^{m\times n} $ 如下:注意, $ \mathbf F $ 中的每个元素 $ F_{i,j} $ 表示两个隐向量(即 $ \mathbf{\vec p}_i,\mathbf{\vec q}_j $ )之间的
$ g_i^p = \text{mean}(F_{i,1},F_{i,2},\cdots,F_{i,n})\\ g_i^q = \text{mean}(F_{1,i},F_{2,i},\cdots,F_{m,i}) $pair-wise
相关性得分correlation score
。然后,我们沿 $ \mathbf F $ 的行和列进行池化操作从而生成重要性向量importance vector
,分别称作行池化row-pooling
和列池化column-pooling
。根据我们的实验,均值池化的性能优于最大池化。因此,我们采用如下的均值池化操作:其中:
- $ \mathbf{\vec g}^p = \left(g_1^p,\cdots,g_m^p\right)^\top \in \mathbb R^m $ 表示行池化向量,它就是 $ \mathbf P $ 的重要性向量。
- $ \mathbf{\vec g}^q = \left(g_1^q,\cdots,g_n^q \right)^\top \in \mathbb R^n $ 表示列池化向量,它就是 $ \mathbf Q $ 的重要性向量。
接下来,我们使用
$ a_i^p = \frac{\exp\left(g_i^p\right)}{\sum_{j=1}^m \exp\left(g_j^p\right)},\quad a_i^q = \frac{\exp\left(g_i^q\right)}{\sum_{j=1}^n \exp\left(g_j^q\right)}\\ \mathbf{\vec a}^p = \left(a_1^p,\cdots,a_m^p\right)^\top \in \mathbb R^m\\ \mathbf{\vec a}^q = \left(a_1^q,\cdots,a_n^q\right)^\top \in \mathbb R^n $softmax
函数将重要性向量 $ \mathbf{\vec g}^p $ 和 $ \mathbf{\vec g}^q $ 转换为注意力向量attention vector
$ \mathbf{\vec a}^p $ 和 $ \mathbf{\vec a}^q $ ,其中:即:对重要性向量进行
softmax
归一化。最后,顶点 $ u $ 和 $ v $ 的
$ \mathbf{\vec u}^t_{(v)} = \mathbf P\mathbf{\vec a}^p,\quad \mathbf{\vec v}^t_{(u)} = \mathbf Q\mathbf{\vec a}^q $context-aware text embedding
计算为:现在,给定一条边 $ e_{u,v} $ ,我们可以获得
$ \mathbf{\vec u}_{(v)} = \mathbf{\vec u}^s \oplus \mathbf{\vec u}^t_{(v)}, \quad \mathbf{\vec v}_{(u)} = \mathbf{\vec v}^s \oplus \mathbf{\vec v}^t_{(u)} $context-aware embedding
,它是structure embedding
和context-aware text embedding
的拼接:其中 $ \oplus $ 为拼接算子。
$ \log \sigma\left(\mathbf{\vec u }\cdot \mathbf{\vec v}\right) + k\times \mathbb E_{z\sim P(v)}\left[\log \sigma(-\mathbf{\vec u}\cdot \mathbf{\vec z})\right] $CANE
优化过程:如前所述,CANE
旨在最大化若干个条件概率。直观而言,使用softmax
函数优化条件概率在计算上代价太大。因此,我们使用负采样,并将目标函数转换为以下形式:其中: $ k $ 为负采样比例, $ \sigma $ 为
sigmoid
函数, $ P(v)\propto d_v^{3/4} $ 为负顶点的采样分布, $ d_v $ 为顶点 $ v $ 的out-degree
。之后,我们使用
Adam
来优化新的目标函数。注意,CANE
通过使用训练好的CNN
来为新顶点生成text embedding
,从而完全能够实现zero-shot
场景。
9.2 实验
为了研究
CANE
对顶点之间关系建模的有效性,我们在几个真实世界的数据集上进行了链接预测实验。此外,我们还使用顶点分类任务来验证顶点的context-aware embedding
是否可以反过来组成高质量的context-free embedding
。数据集:我们选择如下所示的、真实世界的三个数据集。
Cora
:一个典型的论文引用网络数据集。在过滤掉没有文本信息的论文之后,网络中包含2277
篇机器学习论文,涉及7
个类别。HepTh
:另一个论文引用网络数据集。在过滤掉没有文本信息的论文之后,网络中包含1038
篇高能物理方面的论文。Zhihu
:一个大型的在线问答网络,用户可以相互关注并在网站上回答问题。我们随机抽取了10000
名活跃用户,并使用他们关注主题的描述作为文本信息。
这些数据集的详细统计信息如下表所示。
baseline
方法:我们采用以下方法作为baseline
:仅考虑网络结构:
Mixed Membership Stochastic Blockmodel: MMB
: 是关系数据的一个传统图模型,它允许每个顶点在形成边的时候随机选择一个不同的topic
。DeepWalk
:使用截断的随机游走将图结构转化为线性结构,然后使用层次softmax
的SkipGram
模型处理序列从而学习顶点embedding
。LINE
:分别定义损失函数来保留一阶邻近性和二阶邻近性来求解一阶邻近representation
和二阶邻近representation
,然后将二者拼接一起作为representation
。Node2Vec
:通过一个有偏随机游走过程biased random walk procedure
来将图结构转化为线性结构,然后使用层次softmax
的SkipGram
模型处理序列。
同时考虑结构和文本:
Naive Combination
:用两个模型分别计算structure embedding
和text embedding
,然后简单地将structure embedding
和text embedding
拼接起来。TADW
:采用矩阵分解的方式将顶点的文本特征融合到network embedding
中。CENE
:将文本内容视为一种特殊的顶点来利用结构和文本信息,并优化异质链接的概率。
评估指标:对于链接预测任务,我们采用标准的评估指标
AUC
。对于顶点分类任务,我们采用L2
正则化的逻辑回归来训练分类器,并评估分类准确率指标。训练配置:
为公平起见,我们将所有方法的
embedding
维度设为200
。对于
LINE
方法,负采样系数设置为5
。一阶embedding
和 二阶embedding
维度都是100
维,使得拼接后的向量有200
维。对于
node2vec
方法,我们使用网格搜索并选择最佳的超参数。对于
CANE
方法,我们通过超参数搜索选择最佳的 $ \alpha,\beta,\gamma $ 。为了加速训练过程,我们选择负采样系数 $ k = 1 $ 。为了说明文本
embedding
以及注意力机制的效果,我们设计了三个版本:CANE with text only
:仅包含context-aware text embedding
。CANE without attention
:包含structure embedding
以及context-free text embedding
。CANE
:完整的CANE
模型。
链接预测实验:我们分别移除了
Cora,HepTh,Zhihu
等网络不同比例的边,然后评估预测的AUC
指标。注意,当我们仅保留5%
的边来训练时,大多数顶点是孤立的,此时所有方法的效果都较差而且毫无意义。因此我们不考虑5%
以下比例的情况。Cora
的结果如下,其中 $ \alpha = 1.0,\beta = 0.3,\gamma = 0.3 $ 。HepTh
的结果如下,其中 $ \alpha = 0.7,\beta = 0.2,\gamma = 0.2 $ 。Zhihu
的结果如下,其中 $ \alpha = 1.0,\beta = 0.3,\gamma = 0.3 $ 。从链接预测任务的实验结果可以看到:
CANE
在所有训练集、所有训练比例都取得最好的效果,这表明CANE
在链接预测任务中的有效性,验证了CANE
具备精确建模顶点之间关系的能力。在不同的训练比例下,
CENE
和TADW
的效果不稳定。具体而言:CENE
在训练比例较小时效果比TADW
较差,因为相比TADW
,CENE
使用了更多的参数(如卷积核和word embedding
),因此CENE
需要更多的训练数据。- 与
CENE
不同,TADW
在较小的训练比例时表现得更好,因为基于DeepWalk
的方法即使在边有限的情况下也可以通过随机游走很好地探索稀疏网络结构。然而,由于它的简单性和bag-of-words
假设的局限性,TADW
在较大的训练比例时表现不佳。 CANE
在各种情况下,效果都很稳定。这展示了CANE
的灵活性和鲁棒性。
通过引入注意力机制,学到的
context-aware embedding
比没有注意力的embedding
效果更好。这验证了我们的假设:顶点和其它顶点交互时应该扮演不同的角色,从而有利于相关的链接预测任务。
综上所述,以上所有实验结果表明:
CANE
可以学习高质量的context-aware embedding
,这有利于精确估计顶点之间的关系。此外,实验结果也表明了CANE
的有效性和鲁棒性。实验可以看到:引入顶点的文本信息可以更好地提升
network embedding
的质量。因此,CANE
应该和带文本信息的baseline
方法进行比较。如果CANE
和DeepWalk/LINE/node2vec
等纯结构的network embedding
方法比较,则不太公平。顶点分类实验:网络分析任务(如顶点分类和聚类)需要得到该顶点的整体
$ \mathbf{\vec u} = \frac 1N \sum_{(u,v)\;\text{or}\; (v,u)\in E} \mathbf{\vec u}_{(v)} $embedding
,而不是顶点的很多个context-aware embedding
。为了得到整体embedding
,我们简单的将每个顶点的所有context-aware embedding
取平均,如下所示:其中 $ N $ 为顶点 $ u $ 的
context-aware embedding
数量。使用生成的整体
embedding
,我们在Cora
数据集上执行顶点分类任务,采用2-fold
交叉验证并报告平均准确率。实验结果如下图所示,可以看到:CANE
的性能与state-of-the-art
的CENE
相当。这表明:学到的context-aware embedding
可以通过简单的取平均操作转化为高质量的context-free embedding
,并进一步应用于其它网络分析任务。- 通过引入
mutual attention
机制,CANE
的性能比没有注意力的版本得到较大的提升。这与链接预测的结果是一致的。
综上所述,实验结果表明
CANE
可以灵活地完成各种网络分析任务。案例研究:为了说明
mutual attention
机制从文本信息中选择有意义特征的重要性,我们可视化了两个顶点的热力度。图中,每个单词都带有各种背景色,颜色越深该单词的权重越大。每个单词的权重根据注意力权重来计算,计算方式为:- 首先,对于每对顶点
pair
,我们获取其单词序列每个卷积窗口的注意力权重 $ a_i^p,a_i^q $ 。 - 然后,在这个窗口内我们为每个单词分配注意力权重(窗口内的多个单词对应于该窗口的权重)。
- 最后,考虑到一个单词可能会出现在多个窗口内(单个顶点的单词序列包含很多个窗口),我们将该单词的多个权重相加,得到单词的注意力权重。
我们提出的注意力机制使得顶点之间的关系明确且可解释。如下图所示,我们选择
Cora
数据集存在引用关系的三篇论文A,B,C
。可以看到:尽管论文B,C
和论文A
存在引用关系,但是论文B
和论文C
关注的是论文A
的不同部分:Edge #1
在论文A
上重点关注reinforcement learning
。Edge #2
在论文A
上重点关注machine learning, supervised learning algorithms,complex stochastic models
。
另外,论文
A
中的所有这些关键元素都可以在论文B
和论文C
中找到对应的单词。这些关键元素对引用关系给出了准确的解释,这很直观。这些挖掘出的顶点之间显著的相关性,反应了mutual attention
机制的有效性,同时也表明CANE
精确建模关系的能力。- 首先,对于每对顶点
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论