SIGIR2018 《HTNE Embedding Temporal Network via Neighborhood Formation》 Reading Notes

论文地址:HTNE Introduction 本文出发点在于捕获动态网络中节点和边的变化来在embedding中保持网络结构,举个简单的例子来说,如Fig. 1所示,是一个共同作者网络图。数字标注的节点是author,方框内是co-authored paper. 可以看到图中每个节点每条边加入网络中的时间是不同的。根据图中的信息,可以分析出例如前期1和2,3合作较紧密,后期转为了6,7。 并且(b)中所示,同一条边可能多次出现,这就比传统的单条边拥有更多语义信息。 另外,最近也有方法对动态网络的embedding做了研究,比如[29][30]的方法。但是他们的目的是将时间线分段为固定时间窗来对动态建模,但是这些方法依然没有考虑动态过程也就是网络随时序动态变化的信息。 因此,本文提出了基于霍克斯过程(Hawkes process)的时序网络表示学习方法,该方法是由序列事件驱动的(也就是序列的变化) 如Fig .1(b)所示 (b)图为节点1的邻域生成序列。霍克斯过程的思路是说历史上发生的事情对未来的概率密度函数有影响,只是随着时间流逝这种影响会逐渐减弱(Decay)。本文提出用霍克斯过程来捕获时间序列(也就是邻域生成序列)的激励效应。 尤其是历史事件对当前事件的影响。 通过把成对的向量映射到基本速率和历史影响,从而把低维向量被输入Hawkes过程。 另外历史邻居当前邻居的影响,不同节点是不同的,所以本文使用attention model来学习历史邻居对当前邻居影响的量化表示。 值得注意的是,本文目标是优化邻域生成序列的极大似然估计即条件强度函数(conditional intensity function)来邻域生成序列的到达率,而不是条件概率函数 Model Definition 本文通过跟踪节点邻域的形成来捕获网络的形成过程。 Definition 1 : 时序网络 $G=(V,E,A)$, $A$ 是事件集, 边$(x,y) \in E$ 被表示为按时间顺序的时间序列,例如, $\mathbf{a}_{x,y}={a_1\to{a_2}\to{…}}\subset\mathcal{A}$, $a_i$ 表示时间$t_i$时刻的一个事件。 因此,网络中节点的相邻邻居可以根据与邻居的交互事件的时序被组织为序列,表示邻域形成过程。 Definition 2 : 对于给定节点$x$,邻域表示为$N(x)={y_i|i=1,2…}$.$x$的目标邻居到达事件可以表示为${x:(y_1,t_1)\to(y_2,t_2)\to…\to(y_n,t_n)}$,即邻域形成序列。每个元组表示在时间戳$t_i$时,$x$与$y_i$建立边。 Hawkes Process 点过程(Point Process)通过假设t时刻前的历史事件可以影响当前事件的发生,来对离散序列事件建模。 对于一个给定的节点$x \in V$, 在$x$的邻域生成序列中,到达目标邻居$y$的条件强度函数(或者可以说是$x$与$y$有边的可能性强度)可以表示为: $$ \tilde{\lambda}_{y|x}(t)=\mu_{x,y}+\sum_{t_h<t}{\alpha_{h,y}\kappa(t-t_{h})}$$ 其中,$\mu_{x,y}$表示构建一条连接节点$x$和$y$的基本率(base rate),$h$是t时刻前的历史目标节点,$\alpha_{h,y}$表示一个$t_h$时刻的历史目标节点$h$(该节点是$x$的邻居)对当前邻居$y$的影响强度。$\sum_{t_h<t}$表示遍历t时刻前$x$的所有邻居。$\kappa(t-t_{h})$表示随时间的衰减,可以表示成指数函数: $$\kappa(t-t_h)=\exp(-\delta_s(t-t_h))$$ 其中,减少率 $\delta$是一个源依赖参数,对于每一个源节点(每个序列的根),历史邻居对当前邻居形成的影响强度是不同的。具体来说,如果$\kappa$越大,说明$t_h$时刻的邻居对当前邻居的影响越大,即 $-\delta_s(t-t_h)$越大, $\delta_s(t-t_h)$越小,因为$t$是当前时刻的邻居,所以当$t_h$越接近当前邻居时刻时,$\kappa$越大,这就说明了里当前时刻之前越近的邻居,对当前时刻邻居的影响越大。 综上所述,$\kappa$的具体意义是随时间衰减的影响,其中$\delta_s$参数表示对于不同的源节点,影响是不同的。 如果$\tilde{\lambda}_{y|x}(t)$ 越大,说明x和y有边的可能性也越大。 直观的来看,基本率(base rate)$\mu_{x,y}$揭示了节点x和节点y之间的连接可能性。为了简洁,本文使用了**负平方欧式距离(negative squared Euclidean)**来反映表示向量间的相似度: $\mu_{x,y}=f(\mathbf{e}_x,\mathbf{e}_y)=-||\mathbf{e}_x-\mathbf{e}_y||^2$。同样的,在计算历史邻居$h$对当前邻居$y$的影响时,也采用这个方法,即: $\alpha_{h,y}=f(\mathbf{e}_h,\mathbf{e}_y)=-||\mathbf{e}_h-\mathbf{e}_y||^2$。 因为条件强度函数必须为正,所以使用如下公式: $\lambda_{y|x}(t)=\exp(\tilde\lambda_{y|x}(t))$。$exp()$对原函数进行了归一化,所以问题就转化为了given $x$, maximize likelihood: $p(y|x)$. 这就与传统的NE方法差不多了。。。 ...

February 17, 2019 · 1 min · JhuoW

AAAI2018 《GraphGAN:Graph Representation Learning with Generative Adversarial Nets》Reading Notes

论文地址:GraphGAN Introduction GAN是CV上非常火的方法,作者将其引入Network Embedding领域。为了达到这个目的,首先,作者将当前的NE model分成了两类,分别是生成模型(generative model)和判别模型(discriminative model)。简单来说,生成模型。 所谓生成模型,就是对于每个节点$v_c$,都存在一个潜在的真实连接分布$p_{true}(v|v_c)$, 这个分布反映了由条件生成样本的概率,因此,生成式模型的目的就是求网络中边的极大似然。比较经典的方法有DeepWalk,是通过随机游走来获得center node的上下文,然后最大化上下文节点的似然。Node2vec拓展了DeepWalk,提出了biased随机游走,使得模型在为给定节点生成上下文节点时具有更多的灵活性。 所谓判别模型,目的是学习一个分类器来直接预测边是否存在。将两个节点视为输入特征,然后输出预测的两个节点之间有边的概率,即$p(edge|(v_i,v_j))$,常见的方法有SDNE,PPNE。 于是,本文结合生成对抗网络(GAN),提出了GraphGAN来同一生成和判别器。其中生成器$G(v|v_c)$试图拟合真实的连接概率分布$p_{true}(v|v_c)$,生成最可能和$v_c$有链接的点。判别器$D(v,v_c)$尝试区分强连接节点对和若连接节点对,然后计算$v$和$v_c$存在边的可能性。简单来说,就是把生成器生成的可能与$v_c$有边的节点放入判别器计算两者有边的概率。 除此之外GAN框架下,然而生成器的连接分布是通过softmax实现的,但是传统的softmax无法适配生成器,原因如下: (1).传统的softmax对网络中的所有节点一视同仁,缺乏对网络结构相似度信息的考虑。 (2).计算成本太高。 因此,论文中提出了新的生成器实现方法 Graph Softmax。并且证明GS具有归一化(normalization)、网络结构感知(graph structure awareness)和高计算效率(computational efficiency)的性质。相应的,文中也提出了基于随机游走(random walk)的生成器策略。 Model 这里挑特别的来说。$\mathcal{N}(v_c)$表示和$v_c$直接相连的节点集。我们把给定节点$v_c$与任意节点$v \in \mathcal{V}$的真实连接分布表示为$p_{true}(v|v_c)$。这么看$\mathcal{N}(v_c)$可以看做从$p_{true}(v|v_c)$中采样的集合。文章的目的是学习两个模型: Generator $G(v|v_c;\theta_G)$ 生成器,尝试拟合真实连接分布$p_{true}(v|v_c)$,并且从节点集$\mathcal{V}$中生成最有可能和$v_c$相连的节点。 Discriminator $D(v,v_c;\theta_G)$ 判别器,目的是判断已对接点$(v,v_c)$的连接性。$D(v,v_c;\theta_G)$输出$v$和$v_c$有边的概率。 生成器$G$尝试完美拟合$p_{true}(v|v_c)$,并且生成和$v_c$真实邻居高度相似的节点来欺骗判别器。相反,判别器尝试发现输入的顶点是真实的节点对或者有生成器生成出的样本。这是一个极大极小游戏,目标函数$V(G,D)$: $$\min_{\theta_G} \max_{\theta_D} V(G,D)=\sum_{c=1}^V (\mathbb{E}_{v \sim p_{true}(\cdot|v_c)}[\log D(v,v_c;\theta_D)]+\mathbb{E}_{v \sim G(\cdot|v_c;\theta_G)}[\log(1-D(v,v_c;\theta_D))])$$ 上面这个公式是本文最关键的公式,以我的分析就是:在给定$\theta_D$的情况下,对其最小化。先来分析$\max_{\theta_D}V(G,D)$,即给定$\theta_G$,使原式最大。当给定$\theta_G$时,通过改变$\theta_D$,使$\mathbb{E}_{v \sim p_{true}(\cdot|v_c)}[\log D(v,v_c;\theta_D)]$达到最大(是判别器D拟合真实分布),同时使$\mathbb{E}_{v \sim G(\cdot|v_c;\theta_G)}[\log(1-D(v,v_c;\theta_D))]$最大,即尽可能减小选定节点$v_c$与判别器中生成的$v_c$邻居节点与$v_c$连接的可能性。然后在给定$\theta_D$的情况下,通过改变生成器$\theta_G$继续生成节点,使得$\mathbb{E}_{v \sim G(\cdot|v_c;\theta_G)}[\log(1-D(v,v_c;\theta_D))]$尽可能小,即上一步的判别器尽可能把当前生成器生成的节点认为是邻居。 之后再更新判别器,以此类推。这样$G$和$D$各自提高性能,最终$G$生成的分布和真实连接分布无法区分,这样达到最好的效果。整体过程如下图所示: Discriminator Optimization 对于判别器来说是个简单的sigmoid函数,来计算两个输入节点的表示向量: $$D(v,v_c;\theta_D)=\frac{1}{1+\exp(-d^\top_v d_{v_c})}$$ 其中,$d_v$,$d_{v_c}$是两个输入节点关于判别器$D$的表示向量,$\theta_D$是所有节点表示向量的结合。注意到上面的公式只涉及$v$和$v_c$, 我们只需要更新$d_v$,$d_{v_c}$,通过梯度下降的方法可以实现: Generator Optimization 对于生成器来说,目标是最小化判别器将生成的样本判断为负样本的对数似然(概率)。换句话说,生成器会调整自己的连接分布(通过调整生成的所有节点的向量表示$\theta_G$)来提升对生成样本的判别分数。由于$v$的采样时离散的,所以使用policy gradient来计算$V(G,D)$关于$\theta_G$的梯度: 为了理解上述公式,注意到$\nabla_{\theta_G}V(G,D)$是一个由$\log(1-D(v,v_c;\theta_D))$加权的梯度$\nabla_{\theta_G}\log G(v|v_c;\theta_G)$的求和,直观上说,这意味着有高概率是负样本的节点会将生成器G“拉着”远离自己(因为我们在$\theta_G$上执行梯度下降)。 Graph Softmax graph softmax的核心思想是定义一种新的计算连接性概率的方式,满足以下性质: ...

January 22, 2019 · 1 min · JhuoW

CIKM2018 《Enhanced Network Embeddings via Exploiting Edge Labels》 Reading Notes

论文地址: Enhanced Network Embeddings via Exploiting Edge Labels Introduction 这是DeepWalk团队的一篇论文,目的是捕获网络中的边信息。传统的NE方法通常把节点简单关系当做(0,1)二值,然而边中所包含的丰富的语义信息。本文尝试做Network Embedding的同时保留网络结构和节点关系信息。举个例子来说,真实社交网络中,一个用户可能和他的同事,家人有关系,但是已有的NE方法不能同事捕获好友关系(有边连接),以及边的类型。 具体来说,本分的方法分为无监督部分和监督部分。其中无监督部分预测节点邻域, 监督部分预测边标签。所以本文模型是个半监督NE模型。 Problem Definition 假定Network Graph $G=(V,E)$是无向图。$L=(l_1,l_2,…,l_{|V|})$是边的类型集。一个含有边类型的Graph可以被重新定义为$G=(V,E_L,E_U,Y_L)$,其中$E_L$是由label的边集,$E_U$是没有label的边集,$E_L \cup E_U =E$。$Y_L$表示$E_L$中边的关系类型集合。论文中假定一条边可以有多重关系,所以对于边$E_i$的label集$Y_L(i) \in Y_L$, $Y_L(i)$可能包含很多类型 所以$Y_L(i) \subseteq L$。目的还是一样,学习一个映射函数$\Phi \to \mathbb{R}^{|V| \times d}$, 其中$d \ll |V|$。 Method 首先定义损失函数: $$\mathcal{L}=(1-\lambda)\mathcal{L}_s+\lambda\mathcal{L}_r$$ 其中$\mathcal{L}_s$表示预测节点邻域的损失。$\mathcal{L}_r$表示预测边label的损失。$\lambda$是两种损失的权重。 Structural Loss 第一部分是最小化无监督网络结构损失,对于一个给定的节点$v$, 要最大化这个节点和它邻域可能性。其中,节点的邻域不一定要一定和该节点有边相连。文章先给出了结构损失的目标函数: $$\mathcal{L}_s=-\sum_{u \in C(v)} \log Pr(u|v)$$ 这个函数其实就是给定$v$,最大化$v$的邻域的极大似然。其中$Pr(u|v)$是一个softmax函数: $$Pr(u|v)=\frac{\exp(\Phi(u) \cdot \Phi’(v))}{\sum_{u’ \in V} \exp(\Phi(u’) \cdot \Phi’(v))}$$ 这其实和DeepWalk一样,一个节点$v$有两个表示向量,$\Phi(v)$和$\Phi’(v)$分别表示该节点作为中心节点和上下文节点的表示。由于计算复杂度较高,所以采用负采样的策略。 剩下的问题就是如何构建节点$v$的邻域$C(v)$。一种直接的方式就是从邻接矩阵中选取他的邻居。然后由于现实网络的稀疏性,一个节点只有很少的邻居。为了缓解网络稀疏性的问题, 本文采取了类似于DeepWalk的randomwalk策略。 最终可以得到节点$v$的邻域: $$C(v)={v_{i-w},…,v_{i-1}} \cup {v_{i+1},…,v_{i+w}}$$ Relational Loss 由于label是为了预测边的,所以需要把每条边表示出来,所以对于边$e=(u,v) \in E$,可以用一下方法来表示这条边: $$\Phi(e)=g(\Phi(u),\Phi(v))$$ 其中,$g$是一个映射函数用来把两个节点的表示向量转化为他们之间边的表示向量,本文使用了简单的连接操作,即把两个向量直接拼接: $$\Phi(e)=\Phi(u) \oplus \Phi(v)$$ 这样我们就获得了edge embedding。直接将它输入前馈神经网络,前馈神经网络第$k$层的定义为: $$h^{(k)}=f(W^{(k)}h^{(k-1)}+b^{(k)})$$ 其中 $h^{(0)}=\Phi(e)$,$f$是除最后一层外采用relu激活函数,最后一层采用sigmoid函数激活,最后一层输出为$\hat{y_i}$。最后最小化二元交叉熵损失函数: ...

January 22, 2019 · 1 min · JhuoW

KDD2016 SDNE:《Structral Deep Network Embedding》 Reading Notes

论文地址:SDNE Introduction 这是一篇比较早的Network Embedding论文, 较早将深度模型应用到NE任务。 首先,本文提出了当前网络表示学习中遇到的三个问题: (1). 高度非线性 (2). 尽可能保持网络结构 (3). 现实网络的高度稀疏性 SDNE的主要目标就是保持网络结构的一阶相似性和二阶相似性。 一阶相似性就是网络中边相连的节点对之间具有的相似性。 二阶相似性就是在一个Graph中,拥有共同邻居但是不直接向相连的两个节点具有的相似性。 其中,一阶相似性主要反映了网络的局部特征。 二阶相似性反映了网络的全局特征。 Model 本文的模型主要如下图所示: 这张图看上去有点复杂,实则原理非常简单。 模型分为无监督部分和有监督部分,无监督部分是一个深度自编码器 用来捕获二阶相似度(保留全局结构),监督部分是一个拉普拉斯特征映射捕获一阶相似度(局部结构)。呃呃呃,Emmmmm ,不知道是我理解有问题还是其他原因,文章里说的和我理解的不太一样 /(ㄒoㄒ)/~~。 然后介绍一下具体的模型结构: 深度自编码器的编码部分: $$y_i^{(k)}=\sigma{(W^{(k)}y_i^{(k-1)}+b^{(k)})}, k=2,…,K$$ 假设第$k$层是 节点$v$的表示向量(仅考虑全局信息),那么从第$k$层开始解码,最终得到$\hat{x_i}$, 所以自编码器的误差就是输入节点$v$的邻接向量的重构误差。所以,二阶相似度损失函数定义为: $$\mathcal{L}=\sum_{i=1}^n{||\hat{x_i}-x_i||^2_2}$$ 值得注意的是,由于网络的稀疏性,邻接矩阵中的0元素远多于非0元素,使用邻接矩阵作为输入的话要处理很多0,这样就做了太多无用功了。为了解决这个问题,对损失函数做了改进如下: $$\mathcal{L_{2nd}}=\sum_{i=1}^n||(\hat{x_i}-x_i)\odot{b_i}||^2_2=||\hat{X}-X\odot{B}||^2_F$$ 其中$\odot$是哈马达乘积,表示对应元素相乘。$b_i={b_{i,j}}^n_{j=1}$, 邻接矩阵中的0对应$b=1$, 非0元素的$b>1$,这样的目的是对于有边连接的节点增加惩罚。可以理解为对有边连接的节点赋予更高权重。 以上我们获得了二阶相似度的损失函数。在介绍一阶相似度之前,我们先来看看拉普拉斯映射(Laplacian Eigenmap) 其实LE也是一种经典的NRL方法,主要目的也是降维。其目标函数如下所示: $$\sum_{i,j} W_{ij}||y_i-y_j||^2$$ LE是通过构建相似关系图来重构局部特征结构,如果放在网络结构中来说,如果节点$v_i$和$v_j$很接近(有边),那么他们在embedding space中的距离也应该相应接近。$y_i$和$y_j$就表示他们在特征空间中的表示。因此,本文定义了保持一阶相似度的目标函数: $$\mathcal{L_{1st}}=\sum_{i,j=1}^n{s_{i,j}||y_i^{(K)}-y_j^{(K)}||^2_2}=\sum_{i.j=1}^n{s_{i,j}||y_i-y_j||^2_2}$$ 具体来说,$K$就是自编码器第$K$层的输出,即编码结果,需要保持一条边的两个节点在嵌入空间中的表示相对接近。 最终 结合一阶相似度和二阶相似度,本文给出了SDNE的目标函数: $$\mathcal{L_{mix}}=\mathcal{L_{2nd}+\alpha{\mathcal{L_{1st}}}}+\nu{\mathcal{L_{reg}}} =||(\hat{X}-X)\odot{B}||^2_F+\alpha{\sum_{i.j=1}^n{s_{i,j}||y_i-y_j||^2_2}}+\nu{\mathcal{L_{reg}}}$$ 其中,为了防止过拟合,添加了$\mathcal L2$-norm单元$\mathcal{L_{reg}}$来防止过拟合: $$\mathcal{L_{reg}}=\frac{1}{2}\sum_{k=1}^k({||W^{(k)}||^2_F+||\hat{W}^{k}||_F^2})$$ Optimization 使用SGD来优化$\mathcal{L_{mix}}$。具体算法如下:

January 21, 2019 · 1 min · JhuoW

ICLR2018 《Graph Attention Networks》 Reading Notes

论文地址:GAT Introduction 本文介绍了一种新型的神经网络架构用来处理图结构。即__Graph Attention Networks__(GATs)。该方法利用masked self-attentional layer,即通过网络层的堆叠,可以获取网络中每个节点的领域特征,同时为领域中的不同节点指定不同的权重。这样做的好处是可以不需要各种高成本的矩阵运算也不依赖于的图结构信息。通过这种方式,GAT可以解决基于谱的图神经网络存在的问题,同时,GAT可以使用用归纳(inductive)和直推(transductive)问题。 归纳学习:先从训练样本中学习到一定的模式,然后利用其对测试样本进行预测(即首先从特殊到一般,然后再从一般到特殊),这类模型如常见的贝叶斯模型。 直推学习:先观察特定的训练样本,然后对特定的测试样本做出预测(从特殊到特殊),这类模型如k近邻、SVM等。 Architecture 图$G$中有$N$个节点,他们的特征向量为:$\textbf{h}={\vec{h_1},\vec{h_2},…,\vec{h_N}}$,其中,$\vec{h_i} \in \mathbb{R}^F$,$F$是每个节点特征数。我们的目的是输出一个新的节点特征向量集$\textbf{h’}={\vec{h_1’},\vec{h_2’},…,\vec{h_N’}}$,其中$\vec{h_i’} \in \mathbb{R}^{F’}$。 本质就是修改特征向量的维度(Network embedding) 为了获得足够的表达能力以将输入特征变换为更高级别的特征,需要至少一个可学习的线性变换。因此,以任意节点$i$和$j$为例,分别对节点$i$和节点$j$的特征向量做线性变换$W \in \mathbb{R}^{F \times F’}$,这样 就将$\vec{h_i}$和$\vec{h_j}$从$F$维的向量转化为$F’$维的向量: $$ e_{ij} = a(W\vec{h_i},W\vec{h_j}) $$ 上式中,分别对$\vec{h_i}$和$\vec{h_j}$做线性变换,然后使用self-attention为图中的每一个节点分配注意力(权重)。上式中,注意力机制$a$是一个$\mathbb{R}^{F’} \times \mathbb{R}^{F’} \to \mathbb{R}$的映射。最终得到的$e_{ij}$是节点$j$对节点$i$的影响力系数(一个实数)。 但是,上面的方法考虑其他节点对$i$的影响时,将图中的所有节点都纳入了考虑范围,这样就丢失了图的结构信息。因此,本文引入masked attention机制,即计算影响力系数$e_{ij}$时, 仅考虑节点$i$的一部分邻居节点 $j \in \mathcal{N}_i$($i$也属于$\mathcal{N}_i$)。使用softmax将节点$i$部分邻居的注意力系数分配到(0,1)上: $$ \alpha_{ij} = \mathrm{softmax}_j(e_{ij}) = \frac{\exp(e_{ij})}{\sum_{k \in \mathcal{N}_i}\exp(e_{ik})} $$ 在本文中,$a$是一个单层前馈神经网络,参数是一个权重向量$\vec{\text{a}} \in \mathbb{R}^{2F’}$,然后使用负半轴斜率为0.2的LeakyReLU作为非线性激活函数: $$ \alpha_{ij} = \frac{\exp(\mathrm{LeakyReLU}(\vec{\text{a}}^T[W\vec{h_i}||W\vec{h_j}]))}{\sum_{k\in \mathcal{N}_i} \exp(\mathrm{LeakyReLU}(\vec{\text{a}}^T[W\vec{h_i}||W\vec{h_k}]))} $$ 其中$||$表示向量的连接操作。上述过程可以用下图表示: 这样,我们就可以获得节点$j$对节点$i$的注意力系数$\alpha_{ij}$,那么,节点$i$最终的输出特征$\vec{h_i’}$就是对$\mathcal{N}_i$中所有节点的加权(加注意力)求和: $$ \vec{h_i’} = \sigma (\sum_{j \in \mathcal{N}_i}\alpha_{ij} W\vec{h_j}) $$ ...

September 14, 2018 · 1 min · JhuoW

KDD2017 《metapath2vec:Scalable Representation Learning for Heterogeneous Networks》 Reading Notes

论文地址: metapath2vec Introduction 真实网络中通常包含多种类型的节点和关系,这些节点和关系共同组成了异质信息网络(Heterogeneous Information Network),传统的NE方法如DeepWalk, Line , node2vec更多关注与同质网络从而忽略了网络的异质性。针对这个问题,这篇文章提出了metapath2vec基于meta-path的随机游走来构建节点的异质邻域,采用异质Skip-gram模型来学习节点的representation。 另外,在负采样时也考虑异质性,从而进一步提出了metapath2vec++。如下: Definition Definition 1: 异质网络: $G = (V,E,T)$,其中每个节点和边分别对应一个映射 $\phi(v) : V \rightarrow T_{V}$ 和$\varphi(e) : E \rightarrow T_{E}$。 其中$T_V$和$T_E$分别表示节点的类型集合以及关系的类型集合。且$\left|T_{V}\right|+\left|T_{E}\right|>2$。 Definition 2: 异质网络表示学习 为网络中的节点学习一个$d$维的表示 $\mathrm{X} \in \mathbb{R}^{|V| \times d}$,$d \ll|V|$。节点的向量表示可以捕获节点间结构和语义关系。 Model metapath2vec Skip-Gram模型是给定一个节点,预测向下文节点的概率。metapath2vec的目的是考虑多种类型节点和多种类型关系的情况下,最大化网络概率。为了将异质信息融入skip-gram模型中,首先提出异质skip-gram。 Heterogeneous Skip-Gram 对于节点类型$|T_V| > 1$的网络$G$, 给定一个节点$v$,需要最大化属于类型$t \in T_V$的异质上下文节点的概率: $$ \arg \max_{\theta} \sum_{v \in V} \sum_{t \in T_{V}} \sum_{c_{t} \in N_{t}(v)} \log p\left(c_{t} | v ; \theta\right) $$ 其中,$N_t(v)$表示$v$属于第$t$个类型的邻居节点。 $p\left(c_{t} | v ; \theta\right)$ 表示给定节点$v$,它的$t$类型邻域概率: $p\left(c_{t} | v ; \theta\right)=\frac{e^{X_{c_{t}} \cdot X_{v}}}{\sum_{u \in V} e^{X_{u} \cdot X_{v}}}$,是一个softmax函数,$X_v$是节点$v$的表示。由于softmax函数的分母每一次都要遍历所有节点,所以采用负采样改进$\log p(\cdot)$ 如下: $$ \log \sigma\left(X_{c_{t}} \cdot X_{v}\right)+\sum_{m=1}^{M} \mathbb{E}_{u^{m} \sim P(u)}\left[\log \sigma\left(-X_{u^{m}} \cdot X_{v}\right)\right] $$ 其中 $\sigma(x)=\frac{1}{1+e^{-x}}$。 ...

June 29, 2018 · 1 min · JhuoW

ACL2017 《CANE:Context-Aware Network Embedding for Relation Modeling》 Reading Notes

paper Introduction 在现实世界的社交网络中,一个顶点在与不同的邻居顶点交互时可能表现出不同的方面 (aspect),这是很直观的。例如,研究人员通常与各种合作伙伴就不同的研究主题进行合作(如下图所示),社交媒体用户与分享不同兴趣的各种朋友联系,一个网页出于不同目的链接到多个其它网页。然而,现有的大多数 NE 方法只为每个顶点安排一个 single embedding 向量,并产生以下两个问题: 这些方法在与不同邻居交互时,无法灵活转换不同的aspect 在这些模型中,一个顶点倾向于迫使它的所有邻居之间的 embedding彼此靠近,但事实上并非一直如此。例如下图中,左侧用户和右侧用户共享较少的共同兴趣,但是由于他们都链接到中间用户,因此被认为彼此接近。因此,这使得顶点 embedding 没有区分性。 为了解决上述问题,本文提出了一个 CANE框架,用于精确建模顶点之间的关系。更具体而言,论文在信息网络上应用 CANE。信息网络的每个顶点还包含丰富的外部信息,例如文本、标签 、或者其它元数据。在这种场景下,上下文的重要性对 network embedding 更为关键。在不失一般性的情况下,论文在基于文本的信息网络中实现了 CANE,但是 CANE可以很容易地扩展到其它类型的信息网络。 在传统的 network embedding模型中,每个顶点都表达为一个静态的 embedding 向量,即 context-free embedding 。相反,CANE 根据与当前顶点交互的不同邻居,从而将动态的 embedding分配给当前顶点,称为 context-aware embedding。以一个顶点$u$为例:当与不同的邻居交互时, 的 context-free embedding保持不变;而当面对不同的邻居时, $u$的 context-aware embedding是动态的。 当顶点$u$与它的邻居顶点$v$交互时,它们彼此相关的 context embedding 分别来自它们的文本信息。对于每个顶点,可以轻松地使用神经模型neural model ,例如卷积神经网络和循环神经网络来构建 context-free embedding 和 text-based embedding 。为了实现 context-aware text-based embedding,论文引入了 selective attention 方案,并在这些神经模型中建立了 和 之间的互注意力 mutual attention 。mutual attention 预期引导神经模型强调那些被相邻顶点 focus 的单词,并最终获得 context-aware embedding。每个顶点的 context-free embedding 和 context-aware embedding 都可以通过使用现有的 network embedding 方法学到(如 DeepWalk,LINE,node2vec)并拼接起来。 ...

March 9, 2018 · 3 min · JhuoW