网络表示学习概述

网络表示学习概述

摘要

2017年最后一天,提前祝大家元旦快乐。

写在前面

随着社交媒体的飞速发展,在线社交网络成为了人们赖以生存的第二世界。大规模社交网络用户的形成使得传统的网络表示方法遇到了瓶颈,由于随着深度学习技术的蓬勃发展以及受自然语言处理领域词嵌入技术的启发,自动学习网络中节点的向量表示成为近年来的研究热点。本文将首先对社交网络的现状进行分析,然后给出网络表示学习技术的基本概念,进而按照历史发展顺序分门别类的介绍具体的网络表示学习方法,接着总结常用的网络表示学习第三方工具包,最后给出目前的研究热点与难点。本文旨在为初入社交网络分析的读者一个清晰的认识,同时能够为大家建立一个网络表示学习技术的整体框架以及发展趋势。如果本文能够帮助到志同道合的朋友,目的也就达到了,同时欢迎大家交流。

社交网络现状

近年来,在线社交网络可谓发展迅猛。说到社交网络,它的起源可以追溯到1736年Euler提出的图论理论当中的七桥问题。随后提出了社会科学理论,在这一阶段提出了许多社交网络中著名的结论,比如小世界、弱连接、邓巴数及结构洞等。紧接着一些搞理论物理的教授们也加入了社交网络分析的大家庭,他们更加侧重从物理结构上寻找规律,于是幂率分布、无标度网络、影响力最大化等结论被提出。再往后得益于硬件的飞速发展,进入了计算时代,链接预测等应用以及异质网络被提出。这一时代,社交媒体逐渐大量涌现。成立于2004年的Facebook的月活跃用户数已经达到20亿(截止2017年6月),可以说成为了虚拟世界中的第一大国;Twitter的月活跃用户数保持在3.2亿左右(截止2017年8月),有数据显示,该社交工具虽然较鼎盛时期有所下降,但依然保持活力;国内的社交工具QQ目前的月活跃用户达到了8.61亿(截止2017年8月),崛起于2011年的新兴社交工具微信月活跃用户数超过了9.6亿(截止2017年8月),新浪微博最新发布的数据表明,用户数已超过Twitter,达到3.4亿(截止2017年5月)。初步统计,每个网民平均加入了8个在线社交媒体,超过半数的网民通过社交网络来与朋友、同事保持联系。具体发展过程详见图1(该图源于微软研究院的Yuxiao Dong博士)。我们可以得到结论:在线社交网络已经成为了连接网络信息空间和人类物理世界必不可少的桥梁。因此社交网络分析成为了无论工业界还是学术界研究的热点,特别的最近的网络表示学习技术更可谓是如雨后春笋般的成长。

图1 社交网络科学发展简史

网络表示学习概念

网络表示学习(Network Representation Learning),又名网络嵌入(Network Embedding)、图嵌入(Graph Embedding),它旨在将网络中的节点表示成低维、实值、稠密的向量形式,使得得到的向量形式可以在向量空间中具有表示以及推理的能力,同时可轻松方便的作为机器学习模型的输入,进而可将得到的向量表示运用到社交网络中常见的应用中,如可视化任务、节点分类任务、链接预测以及社区发现等任务,还可以作为社交边信息应用到推荐系统等其他常见任务中。网络表示学习是一种分布式的表示学习技术。

网络表示学习是表示学习技术的一个子集。表示学习是一种对于数据广义的特征表示,可以是对于网络结构的表示(邻接矩阵),也可以是对于列表结构的表示(链表);可以是对于文本的特征描述(TF-IDF),也可以是对于图像的特征表示(SIFT); 可以是人工制造的特征(特征工程),也可以是自动学习到的隐含特征(矩阵分解); 可以是无监督的特征表示(AutoEncoder),也可以是监督的降维表示(LDA);可以是局部的流形学习方法(LLE),也可是全局的特征表示方法(SVD); 可以是线性的表示方法(PCA),也可以是高度非线性的自动学习方法(CNN)。 而网络表示学习则更加专注于社交网络的表示,旨在将网络中的节点以更加直观、更加高效的某种方式尽可能的还原原始空间中节点的关系。

网络表示学习是对于节点的一种分布式表示方案。分布式表示与之相对应的概念为离散的表示方法。离散的表示方法侧重于对每个对象进行单独建模,常见的离散表示方法有one-hot表示,bag of words和TF-IDF等,比如star和sun的离散式表示如图2,由于只有在该位置出现的地方为1,其他维度都为0,因此star和sun的语义尽管有些相近,但计算相似度时仍然为0。分布式表示是基于通过与他周围同时出现的词来表示它,它是基于分布式假设被John Rupert Firth提出的-You shall know a word by the company it keeps.比如拿‘’银行‘’举例,经常与它一同出现的词为“政府、借贷、存款”等,这样一来两个相似的词就不会出现相似度完全为0的情况,star和sun的分布式表示如图3。分布式表示相比于离散的表示方法有如下优点:维度大大减小,语义信息相对保留。

图2 离散的表示方法
图3 分布式表示方法

网络表示学习分类及代表方法

网络表示学习方法的分类仁者见仁、智者见智,因此不同的人会有不同的分类标准,在这我给出两套不同的分类体系,图4注重是否考虑了网络本身的属性以及是否结合了其他领域知识,图5则主要基于网络结构与是否结合了外部信息进行分类。虽然分类方法有所不同,但都是对于网络表示学习方法的总结,一套方法体系,不同视角分析。

图4的分类方法中,第一部分为基于结构的分类方法,但都是用传统的方法进行因子分解。随着自然语言处理中词嵌入技术在2013年被提出后,14年的deepwalk随后也被提出,进而更多考虑社交结构的方法也相继被提出,有的是改进deepwalk的随机游走策略的,比如node2vec,提出应该有一个偏置参数来控制模型更倾向于深度优先搜索还是广度优先搜索;有的是改进deepwalk的一阶近邻稀疏问题,比如LINE,提出应该利用丰富的二阶近邻关系来弥补一阶近邻的稀疏问题;随后又有人提出应该采用深度学习技术来捕捉网络中高度非线性的关系,同时还能保护好一阶与二阶近邻关系。后来人们考虑到既然是社交网络,那就不能脱离社交网络的一些经典性质,比如无标度网络、三角闭包关系以及社交网络中社区的概念,因此这一类方法是在学习节点的表示时仍要保护好网络结构的固有性质。后来有学者将自然语言处理领域的相关知识运用到了网络表示学习领域,进而提高网络中节点的表示。

图4 基于是否考虑社交属性的分类

图5的分类方法中,主要侧重在于基于网络结构的方法,又可进一步分为基于分解的方法、浅层网络的方法和深度学习的方法。另外结合外部信息的方法在这主要是介绍结合丰富的文本信息以及借鉴自然语言处理领域的经典模型等。接下来主要以此为框架来分别对代表性方法进行介绍。

图4 基于网络结构的NRL方法分类

1. Locally Linear Embedding

2. Laplace Eigenmaps

3. Graph Factorization

4. Deepwalk

5. LINE

Deepwalk是根据节点之间的连边进行随机游走,继而产生节点序列,因此只考虑了节点的一阶近邻。实际上网络中的一阶近邻是非常稀疏的,因此LINE认为应该考虑更多的近邻来丰富节点的表示。其中,二阶近邻就是看两个节点的共同邻居,共同邻居数越多,两个节点的二阶邻近度越高。


6. Node2vec

Deepwalk中的随机游走策略是完全随机的,node2vec认为我们应该保证网络结构中的结构等价性与同质性,因此分别对应于宽度优先搜索与广度优先搜索。所以定义了一个偏置参数来控制模型更倾向于BFS还是DFS。

同时将邻居节点分成了三类,假设节点已经从t节点到达了v节点,那么对于v节点的下一跳有4种选择,分别是再次回到t节点、访问x1、x2、x3中任意一个节点,由于x2,x3都距离t节点的跳数为2,因此属于一种情况,因此即使4种选择,但是3类情况。所以如果序列为(t-v-t),则表示节点返回到t的概率;如果序列为(t-v-x1),则表示节点进行宽度优先搜索的概率;如果序列为(t-v-x2或者t-v-x3),则表示节点进行广度优先搜索的概率。因此p参数用来控制模型是否更倾向于返回重新访问已经访问的节点概率,q参数用来控制模型更倾向于进行广度还是深度优先搜索的概率。

7. SDNE

上述介绍的模型虽然可以学到网络中的节点表示,但大部分都是基于线性的表示,或者浅层神经网络的表示。往往现实世界中的节点之间存在着千丝万缕的非线性的关系,因此SDNE认为我们应该利用深度学习模型来捕捉节点间高度的非线性关系。因此SDNE通过无监督学习方法autoencoder来自动捕捉节点的局部关系,通过将节点的二阶近邻来作为输入,进而学习二阶近邻的低维表示。同时将Laplacian Eigenmaps作为autoencoder之后的输入,来保证两个节点之间的一阶邻近关系,以此来保护网络的全局的结构信息。

8. TADW

Deepwalk只是考虑了网络中的结构属性,往往在现实世界中节点存在丰富的文本信息,因此TADW认为我们在对于节点进行表示的过程中,不仅要考虑网络的结构信息,还应利用节点产生的文本信息。因此它在矩阵分解的基础上,通过将邻接矩阵进行分解,同时用节点的文本表示矩阵来进行约束,以此来缓解网络结构的稀疏问题。

常用包库

1、DeepWalk

论文提出作者实现的python版deepwalk方法,支持两种图存储结构输入。

2、OpenNE

清华刘知远团队总结实现的GE方法集合,包括deepwalk,node2vec等常见GE方法。

3、GEM

实现了一些经典的GE方法集合,包括LE,LLE,GF,HOPE,SDNE等GE方法,同时存在配套综述论文。

研究热点与趋势

随着社交媒体的飞速发展以及深度学习技术的逐渐成熟,网络表示学习成为了工业界和学术界的新宠。从13年自然语言处理领域Wordvec的提出,到14年deepwalk的提出,网络表示学习开始大火,最近几年的研究成果可谓是如雨后春笋般出现,大量的工作都是基于网络表示学习的扩展,从近两年的发展趋势来看,网络表示学习开始向着更复杂的网络进发,比如超图、异质网络、动态网络。同时也开始逐渐往更深的模型靠拢,比如生成对抗网络,更深的深度模型等。同时结合外部信息的网络表示学习更具有实用性与挑战性,因此期待大家在此基础上更好的开展工作。

欢迎关注我的公众号【机器学习游记】,后期更多好玩的文章将在此发布,感恩。

编辑于 2019-01-05

文章被以下专栏收录