每天人们都在和形形色色的社交网站打交道,微信,微博,知乎等等。在不同的社交网站上,人们通过加好友,关注,互粉等功能建立了联系,形成了一张张巨大的社交网络。而在这些联系背后,往往蕴含着不同的含义。例如,很多原因可能使得我们成为社交网络上的好友:亲人关系,朋友关系,同事关系,或者仅仅是有着相同的兴趣爱好。如同在生活中一样,在社交网络上,我们也扮演着不同的角色,与他人维系着不同的关系。那么,机器如何能分辨出扮演不同角色的你?又如何知道你们之间不同的关系呢?今天,ACL2017 上清华大学涂存超博士等人的工作将为你一一解惑。
首先,介绍“网络表示学习(Network Embedding)”的概念。网络数据形式可以自然地表达物体和物体间的联系。“网络表示学习”目的是将网络中的节点用一个低维的实值向量进行表示,每个节点的表示向量蕴含了该节点的网络结构等信息。传统的网络表示学习往往将网络中的节点表示成一个固定不变的向量。然而,真实世界中的网络节点在与其他节点进行交互时,往往会展现出不同方面的特点。例如,一个研究者与不同的研究者发生合作关系往往因为不同的研究主题;社交媒体中的用户会因为不同的原因与其他用户建立联系。如图 1 所示,中间的学者在与右边作者发表论文时,很显然会发表 machine translation 相关的工作,而在和左边作者合作时则会是 syntactic parsing 相关的论文。考虑到网络节点的这种动态性,仅仅用一个固定的向量作为节点的表示,很显然是不合适的。此外,这些方法也不能对节点之间的关系进行有效的建模和解释。因此,如何对节点根据其邻居的不同学习动态的表示,以及如何对节点之间的关系进行解释,是网络表示学习面临的挑战。
▲ 图 1:同一用户对于不同邻居展现出不同角色
因此,在涂博士等人的工作中提出了一种“上下文敏感的网络表示学习模型(Context-Aware Network Embedding)”,如图 2 所示。该模型希望借助网络节点上额外的文本信息对网络节点的表示和节点之间的关系进行动态地建模。模型假设每个节点的表示向量由“结构表示向量(Vs)”和“文本表示向量(Vt)”两部分构成。其中,“ 文本表示向量(Vt)”是由节点的文本信息通过卷积神经网络生成的。图 2 中 u, v 两个节点首先分别通过卷积神经网络生成了 P, Q 两个文本表示矩阵。而后,为了根据 u, v 节点之间的关系进行动态地表示学习, 采用了“互相注意力机制”,生成了 ap, aq 两个注意力向量,分别作用于 P, Q 得到最终两节点的文本表示向量 Ut(v), Vt(u)。
▲ 图 2:利用互相注意力机制生成节点的文本表示向量
因为节点的文本表示向量的生成过程是跟邻居相关的,因此将其称之为“上下文敏感的表示向量”。同时,注意力的结果能够反映出节点对于邻居节点文本信息的关注点,从而能够对关系进行解释。如图 3 所示,通过上下文敏感的表示学习,节点A和不同的节点 B, C 之间呈现出不同的“注意力”,因此也解释了 AB, AC 之间不同的关系。同时,该论文通过实验验证了“上下文敏感的表示向量”的有效性,在三个网络数据集上的链接预测任务中均取得了最好的效果,并在节点分类任务上与前人工作可比。
▲ 图 3:利用互相注意力结果对节点之间关系进行解释
提及这个工作的应用场景,作者说“可以运用到许多社交网络分析任务中,例如网络节点分类、聚类,链接预测,社区发现等等。在真实的社交网络中,一般会对应着用户画像、好友推荐等任务。”关于这个工作现在的不足之处和未来的方向,作者表示“这篇论文通过 mutual attention 的结果对节点之间的关系进行解释,这种关系仍然是一种隐式的关系,怎么样能够对显示的关系的做出解释,比如说家人、朋友、同事、师生等,是我们之后关注的问题。” 让我们共同期待他们的未来工作!
来源:paperweekly