#NE(Network Embedding)论文小览
自从word2vec横空出世,似乎一切东西都在被embedding,今天我们要关注的这个领域是Network Embedding,也就是基于一个Graph,将节点或者边投影到低维向量空间中,再用于后续的机器学习或者数据挖掘任务,对于复杂网络来说这是比较新的尝试,而且取得了一些效果。
本文大概梳理了最近几年流行的一些方法和论文,paper主要是来自thunlp/NRLPapers 这个List,并掺杂了一些其他论文。大概看了一遍,简单总结一下,希望对大家有所帮助,如有不严谨的地方,还望指正。
抛开一些传统的流形学习方法不谈,下面大概以这个outline组织(区分并不严格):
##DeepWalk(Online Learning of Social Representations.)
DeepWalk是KDD 2014的一篇文章,彼时word2vec在文本上的成功应用掀起来一波向量化的浪潮,word2vec是根据词的共现关系,将词映射到低维向量,并保留了语料中丰富的信息。DeepWalk算法思路其实很简单,对图从一个节点开始使用random walk来生成类似文本的序列数据,然后将节点id作为一个个「词」使用skip gram训练得到「词向量」。
思路虽然简单,背后是有一定道理的,后面一些工作有证明这样做其实等价于特殊矩阵分解(Matrix Factorization)。而DeepWalk本身也启发了后续的一系列工作。
node2vec(Scalable Feature Learning for Networks)
node2vec在DW的基础上,定义了一个bias random walk的策略生成序列,仍然用skip gram去训练。
论文分析了BFS和DFS两种游走方式,保留的网络结构信息是不一样的。
DeepWalk中根据边的权重进行随机游走,而node2vec加了一个权重调整参数α:t是上一个节点,v是最新节点,x是候选下一个节点。d(t,x)是t到候选节点的最小跳数。
通过不同的p和q参数设置,来达到保留不同信息的目的。当p和q都是1.0的时候,它等价于DeepWalk。
MMDW(Max-Margin DeepWalk Discriminative Learning of Network Representation)
DW本身是无监督的,如果能够引入label数据,生成的向量对于分类任务会有更好的作用。
之前提到过有证明DW实际上是对于一个特殊矩阵M的分解,
这篇文章将DeepWalk和Max-Margin(SVM)结合起来,从损失函数看是这两部分组成:
1.训练的时候是分开优化,固定
X
X
X
X X X
X X XLreg是正则。
不然过这个计算要传入「邻接向量」进去的话,对于节点特别多的情况是个负担。
##Heterogeneous
真实世界中的网络毫无疑问是异构的(Heterogenous),比如交易中,涉及到的节点有人、商品、店铺等等;更一般的比如知识图谱中有不同类型的节点和边,而前面描述的绝大部分工作都是在同构网络(Homogenous)的基础上进行的,所以了解异构网络的embedding对真正在实际中的应用会有帮助。
###PTE(Predictive Text Embedding through Large-scale Heterogeneous Text Networks.)
这篇文章的主要意图是将predictive的信息在最后的embedding提现出来,但不要像CNN/RNN模型那样直接嵌套一个复杂的预测模型。所以他分别定义了三种network,word-word,word-document,word-label。都搞成类似二部图的样子,然后将各自的损失函数汇总到一起(形式都是类似的,定义经验概率和目标概率求KL距离),就是这么简单粗暴。
###HINES(Heterogeneous Information Network Embedding for Meta Path based Proximity)
这篇文章对多元异构网络(知识图谱)进行了embedding,图中有不同类型的点,不同类型的连边。引入了meta path的概念,就是不同点之间的连边是按照一定的元信息连起来的,比如A1(Author)-P1(Paper)-A2(Author)这样一个meta path表示的信息可能就是A1和A2之间合作了一篇paper,这个概念可以很好地推广到很多场景。
一般在计算proximity的时候都是按照1st order这样的思路来的,但引入了meta path概念的时候,如果A和B在一条meta path的两端,那么它们的proximity应该更大,当然这也取决于这条元路径本身的信息量。
文章中选择了所有长度小于l的元路径,因为一般来说路径越长其信息量越少。
最后的损失函数同样是刻画分布的距离。
##总结
Network Embedding是最近几年还是有蛮多工作的,这里只列举了一些。虽然NE从NLP里借鉴了很多的思想,但二者还是有一些不同的,a.如果以节点id作为「词」,那么对于一些真实的网络来说,可能会非常稀疏,而且节点的数量会非常大,上亿是很正常的,这对上面一些方法的应用有一些限制,你可以想象存这样大的一张此表需要多大的内存。b.异构网络如何能够更好地被训练,是一个很有挑战的事情;同时节点和边上往往有着各种丰富的信息,如何能够将这些信息都学到结果向量中,也是很有意思的。
本文并没有非常详细地去讲每篇论文,只是记录了主要思路,有兴趣可以去读原始论文。
##Reference
【0】上面每一个子标题括号中的内容就是对应的论文题目。
【1】THUNLP_NRLpapers
【2】《Representation Learning with Networks》by Jure Leskovec.slide_01