NLP Group, Dept. of CS&T, Tsinghua University CANE: Context-Aware Network Embedding for Relation Modeling Cunchao Tu NLP Group, Dept. of CS&T, Tsinghua University ACL 2017
Network Embedding Learn a low-dimensional embedding for each vertex in networks network embedding的目的是为网络中的每个节点学习一个低维实值的向量表示。举一个例子,这里是一个空手道俱乐部成员之间的关系网络。假设我们希望为每个成员学习一个二维的向量,那么最终network embedding的输出就是将每个节点映射到一个平面上。 在网络中越相关的节点应该在表示空间中距离越近。 每个节点向量表示蕴含了该节点的网络结构信息,对于一些有额外文本、标签等信息的信息网络,网络表示通常也需要将这些额外的文本、标签等信息编码到该向量表示中。 通常情况下,网络表示中的网络可以是人与人之间的社交网络,可以是论文与论文之间的引用网络,也可以是web页面之间的链接网络。
Network Embedding Embeddings as features Vertex classification -> User profiling/ Anomaly detection 网络表示只是一个基础工具。为每个节点学习到其向量表示之后,一般会把这些向量作为特征运用到网络分析任务中去。比如说,我们可以用它来做节点分类,这个一般对应着实际场景中的用户画像、异常节点检测等任务。 比如说,我们知道一个用户的表示向量之后,可以推测它的性别、年龄、职业、地理位置等信息。
Network Embedding Embeddings as features Vertex classification -> User profiling/ Anomaly detection Link prediction -> Friend recommendation 除了节点分类之外,链接预测也是一个典型的网络分析任务,就是给你两个节点及其表示向量,来判断他们之间有没有关系。实际场景中,一般对应着好友推荐等等。假设你的向量表示代表了你的网络信息及兴趣爱好信息,可以通过这种推荐来找到你感兴趣的人或者失散多年的好友。
Existing models ignore aspect transition of vertices! Typical NE Models Context-free embeddings Learn a fixed embedding for each vertex Vertices show various aspects when interacting with different neighbors Existing models ignore aspect transition of vertices! 在网络表示学习方面最近几年在kdd/ijcai/acl上已经有了很多工作。这些已有的工作都在学习一个context-free的表示。就是这些模型都在为每个网络节点学习一个固定的表示向量。但实际上,网络节点在与不同邻居进行交互时往往会展现出不同的方面。举个形象的例子,人民的名义中祁同伟是个很矛盾的角色。 总结来说,就是已经有的这些模型忽略了网络节点角色的转变。
Example An NLP researcher 这里举一个比较具体的例子。这里有一个NLP的研究者,我们把他记作A。他的个人简介是,我在研究NLP的问题,包括句法分析、机器翻译等等。
Example Co-author with other researchers 他与另外一个研究者有合作的关系,一起发表过论文。我们把这个人记作B。这个人专注于一些传统的NLP任务,例如分词、词性标注,句法分析。那么这两个人合作关系的建立可能是因为他们都是NLP的研究人员,而且有共同的研究内容句法分析。在B的眼中,A是一个句法分析方面的专家,所以他才会与他和发论文,建立起co-author的关系。
Example Co-author with other researchers 但是对于另外一个合作者C。C是专门做机器翻译相关的工作。那么在她的眼中,A是一个机器翻译方面的专家,所以他们俩才会有co-author的关系。因此,虽然BC两个人都与A有co-author的关系,但是他们与A建立co-author关系的原因是不同的,而且A在他们眼中的形象也是不同的。 基于这个想法,我们认为应该对于社交网络中的节点,应该根据其交互对象,也就是邻居的不同,学习不同的向量表示。
Context-Aware Network Embedding Text-based information networks Dynamic embeddings according to different neighbors Model relationships between vertices more precisely 也就是我们这篇工作的主题,学习context-aware network embedding。 具体来说,我们的工作有下面三个特点。首先,我们是在有文本信息的信息网络上来学习上下文相关的网络表示。因为我们觉得文本信息能够对节点之间的关系进行解释。其次我们根据节点的不同邻居学习动态的表示。最后,学习到的context-aware network embedding能够对节点之间的关系进行更准确的建模,能够对节点之间的关系提供一些直观的解释。
Context-Aware Network Embedding Maximize the log-likelihood of each edge e=(u, v) 𝐿 𝑠𝑠 (𝑒) +𝛼∙𝐿 𝑠𝑡 𝑒 +𝛽∙𝐿 𝑡𝑠 𝑒 +𝛾∙𝐿 𝑡𝑡 𝑒 u v us ut vs vt 下面详细的介绍一下我们的模型。对于每一条边,CANE会最大化这条边的一些log-likelihood。因为我们是在有文本的信息网络上做的,所以我们假设每个节点的表示向量有两部分,一部分是u_s,是结构表示向量,一部分是u_t,是该节点的文本表示向量。其中文本的表示向量是由节点附加的文本信息得到的,具体的过程会在之后介绍。我们的模型一方面想要最大化边上两个节点的条件概率,另一方面也希望同一节点的文本和结构表示向量有一致性,所以定义了结构到结构,结构到文本、文本到结构、文本到文本的loss。
Context-Aware Text Embedding Row-pooling+softmax Column-pooling+softmax ap aq u v edge P Q ut(v)=P·ap vt(u)=Q·aq Text Embeddings Text Description Convolutional Unit A tanh(PTAQ) F 我们的网络表示向量之所以是context-aware的,是因为边上两个节点的文本表示向量的生成过程是互相相关的,所以最后与结构向量拼接形成的表示向量也是context-aware的。具体来说,对于边上的两个节点,根据每个节点的文本描述经过卷积单元进行卷积,得到卷积之后的矩阵。这个矩阵的每一列代表了文本中每一个卷积窗口的表示向量。比如上面这个句子有5个词,下面的有7个词,卷积核或者说是最后表示的维度是4,那么上面的得到的卷积之后的矩阵就是一个4*5的,下面的Q是4*7的。通过引入一个attention矩阵,达到让P和Q中的列向量进行两两比较的目的,最后会得到相关矩阵。对该矩阵进行row-pooling和softmax,得到了P中每个列向量的attention权重;对该矩阵进行column pooling和softmax,得到了Q中每个列向量的attention权重。最后加权平均,分别得到了u和v的文本表示向量。这些操作能够找到uv的文本信息中互相最相关的部分,用这些彼此最相关的部分形成他们的context-aware text embedding。
Experiments Datasets Cora: paper citation network HepTh: (High Energy Physis Theory) citation network from arxiv. Zhihu: online Q&A website in China Datasets Cora HepTh Zhihu #Vertices 2,277 1,038 10,000 #Edges 5,214 1,990 43,894 #Labels 7 — 下面介绍一下具体的实验。我们用了三个真实的数据集,包括两个论文引用网络数据集Cora和Hepth,以及zhihu的用户关注数据集。其中Cora数据集中的每个节点是标签信息的,可以用来进行节点分类。
Experiments NE Baselines Tasks Structure-only: MMB, DeepWalk, LINE, node2vec Structure and text: naive combination, TADW, CENE Tasks Link prediction (AUC value) Vertex classification (Accuracy) baseline分别用了一些仅仅基于网络结构的方法以及文本网络相结合的方法。 任务的话采用了链接预测和节点分类。
Link Prediction #Training edges 15% 25% 35% 45% 55% 65% 75% 85% 95% MMB 54.6 57.9 57.3 61.6 66.2 68.4 73.6 76.0 80.3 DeepWalk 55.2 66.0 70.0 75.7 81.3 83.3 87.6 88.9 88.0 LINE 53.7 60.4 66.5 73.9 78.5 83.8 87.5 87.7 Node2vec 57.1 63.6 69.9 76.2 84.3 87.3 88.4 89.2 NC 78.7 82.1 84.7 88.7 91.8 92.1 92.0 92.7 TADW 87.0 89.5 90.8 91.1 92.6 93.5 91.9 91.7 CENE 86.2 84.6 89.9 91.2 92.3 93.2 92.9 CANE(Text) 85.2 93.1 CANE(w/o attention) 84.5 89.3 91.6 92.5 93.6 CANE 90.0 93.0 94.2 94.6 95.4 95.7 96.3 由于空间的原因这里只列出了hepth数据集上的结果。可以看到我们的方法在不同训练比例的情况下都显著优于baseline。
Link Prediction #Training edges 15% 25% 35% 45% 55% 65% 75% 85% 95% MMB 54.6 57.9 57.3 61.6 66.2 68.4 73.6 76.0 80.3 DeepWalk 55.2 66.0 70.0 75.7 81.3 83.3 87.6 88.9 88.0 LINE 53.7 60.4 66.5 73.9 78.5 83.8 87.5 87.7 Node2vec 57.1 63.6 69.9 76.2 84.3 87.3 88.4 89.2 NC 78.7 82.1 84.7 88.7 91.8 92.1 92.0 92.7 TADW 87.0 89.5 90.8 91.1 92.6 93.5 91.9 91.7 CENE 86.2 84.6 89.9 91.2 92.3 93.2 92.9 CANE(Text) 85.2 93.1 CANE(w/o attention) 84.5 89.3 91.6 92.5 93.6 CANE 90.0 93.0 94.2 94.6 95.4 95.7 96.3 此外,我们也验证了我们采用的这种mutual attention的效果。我们对比了把文本表示生成的过程替换成传统的cnn,不考虑同一边上两个节点互相之间的attention的方法,发现引入互相attention的机制能够显著提高link prediction的效果。当然,我们提出的方法应用在link prediction任务上是非常直观的,因为这个任务已经给定了你两个节点让你判断他们之间有没有关系,可以直接采用互相attention的机制。
Vertex Classification Transform context-aware embeddings to context-free embeddings Comparable performance 但是对于节点分类任务,我们需要的是一个节点的全局的向量,也就是context-free的向量。那么CANE是不是就不适用了呢?其实并不是。我们可以通过很简单的操作来将context-aware向量转化成context-free向量,也就是把所有context-aware向量简单的求个平均就可以了。我们对比了节点分类的效果,发现也能够与最好的方法可比,而且mutual attention的机制也是有效的。
Mutual Attention Edge (A, B) and (A, C) 最开始的时候我们提到,我们想对节点之间的关系进行解释。这里我们展示了通过attention结果进行解释的例子。这里有三篇论文,AB和AC之间分别有引用关系。但是通过attention的结果我们发现,不同引用的侧重点是不同的。
Conclusion Context-aware network embedding Mutual attention Learns dynamic text embeddings according to the neighbors. Mutual attention Makes the relations between vertices explicit and interpretable. Experiments CANE is naturally applicable to link prediction task. The learnt context-aware embeddings can transform into high-quality context-free embeddings.
Q&A Homepage Code and Datasets Email: tucunchao@gmail.com