一、 引言

图数据在我们的世界中广泛存在,如社交网络,知识图谱,交通网络等。以知识图谱为例,它已经成为很多智能系统的支柱,如搜索引擎,推荐系统等。知识图谱中的一个核心问题是图结构(包括结点和边)的表示,好的知识表示可以帮助知识图谱更加完善以及知识图谱上层的应用。图表示的挑战主要在于图数据规模的大幅度增长(如搜索引擎背后的知识图谱、大规模电商知识图谱可以达到 TB 甚至 PB 规模)以及图数据的复杂性(结点和边的相互作用,结点属性,图的高阶特征如子图等)。本文介绍清华大学 AMiner [1] 团队近几年在复杂网络表示方面的工作,以下分为网络表示的基本原理,算法和应用三方面来介绍。

原文链接:点击这里

二、 网络表示(Network Embedding)的基本原理

一般来讲,我们将图定义为:$G = {V, E, X}$,其中VV是结点的结合,E \subseteq V \times XEV×X 是图上边的集合,X \in \mathbb{R}^{|V|\times d}X∈R∣V∣×d 是每个结点的初始语义特征。网络表示的目标是为图中的结点学习潜在的表示 Z \in \mathbb{R}^{|V|\times d_z}Z∈R∣V∣×dz​,并且希望ZZ可以包含图结构的信息(如结点之间相似度)以及结点的语义特征。

DeepWalk [2] 和 LINE [3] 是网络表示学习的两个经典算法。DeepWalk 的主要思路是在图上进行随机路径采样,将采样得到的结点序列看做自然语言中的句子。之后,利用语言建模中的经典方法 SkipGram [4] 方法进行优化,SkipGram 的思路是用一个结点去预测同一个序列中周围的结点。不同的是,LINE 的目标是保持图中结点之间的“一阶”和“二阶”相似度。一阶相似度是结点和其直接邻居之间的相似度。二阶相似度可以理解为结点和它“两跳”邻居的相似度。

基于此,项目组提出基于矩阵分解的知识统一表示学习方法NetMF [5],从理论上证明已有的多种网络表示学习方法(DeepWalk、LINE 等)都可以归一化到矩阵分解理论框架下,提出了网络表示学习的新思路。NetMF为基于 SkipGram 和负采样的网络表示学习方法提供了理论基础。


表1:DeepWalk, LINE, PTE, node2vec 隐式分解或逼近的矩阵

表1展示了几个网络表示代表性方法 DeepWalk, LINE, PTE, node2vec 所隐式分解或逼近的矩阵。这几个方法均是网络表示学习前期的代表性方法。具体来说,NetMF证明了(1)当DeepWalk随机游走的步长足够长时,它实质上概率收敛到网络的拉普拉斯矩阵的低秩表示;(2)LINE理论上可以被看做是DeepWalk的特殊情形,它假设随机游走的窗口大小为1;(3)PTE [16]是LINE的扩展,它联合分解了多个网络的拉普拉斯矩阵;(4)node2vec [17]是在分解一个关于网络上二阶随机游走的平稳分布和转移概率矩阵。

同时,NetMF 还提升了网络表示的精度,DeepWalk, LINE 等使用10%训练数据获得分类的 F1-Score 是12-29%,NetMF 在相同数据集上的 F1-Score 是 18-38%。截止目前(2020年5月),NetMF 是数据挖掘顶级会议WSDM 2018上被引用次数最多的论文。

为了进一步提升 NetMF 算法的可扩展性,项目组提出 NetSMF [6] 算法,将网络表示学习看做稀疏矩阵分解问题。NetSMF 的网络表示精度和 NetMF 相当,并且能够对大规模网络进行表示。在比较的算法中,只有 NetSMF 和 LINE 能够在一天之内得到亿级网络的结点表示。

此外,项目组从理论上挖掘了“负采样”技术在网络表示学习的作用,并提出一个统一的负采样技术 MCNS 来优化各种网络表示学习算法 [20]。负采样技术的目的是在网络上寻找与结点 vv 不相似的点u'u′。众多网络表示学习算法如 DeepWalk 和 LINE 均采用了负采样技术,很多负采样方法沿用了语言模型 Word2Vec 中的负采样方法,使得负采样分布和结点度数的3/4次成正比。然而,大部分研究关注于如何进行正采样(寻找与结点vv相似的点uu),如用随机游走,二阶相似度,社区结构来寻找相似的结点,很少有研究系统性得研究负采样技术对网络表示学习的影响。项目组发现,对于优化目标函数和减小方差,负采样在理论上和正采样同样重要。并且,负采样的分布应该和正采样的分布正相关且呈次线性关系。基于此理论,MCNS用自对比(self-constrastive)估计来逼近正采样分布,并且利用Metropolis-Hastings算法加速计算。

项目组将提出的MCNS算法与不同应用场景中的负采样方法进行比较,包括信息检索、推荐系统、知识图谱补全等8个负采样方法,并且在3个代表性的下游任务,3种代表性网络表示学习算法,5个不同类型数据集上总计19种实验设计下进行了实验,MCNS 可以稳定得到更好的表示用于下游任务。

三、网络表示的算法

下面,我们介绍项目组提出的其他网络表示学习算法,他们分别侧重于网络表示学习的不同方面。

(一)大规模网络上的快速结点表示 ProNE [7]。ProNE 借鉴了网络表示学习可以建模为矩阵分解的思路。传统的矩阵分解复杂度是 O(n^3)O(n3),这里n是网络中结点的数量,这对于大规模矩阵分解通常是不可行的。ProNE通过负采样方法构造一个稀疏矩阵进行分解,由此避免了直接分解邻接矩阵的平凡解。具体地,ProNE 巧妙得将稀疏矩阵构造为 l=-\sum_{(i,j)\in D} [p_{ij} \ln\sigma(r_i^Tc_j) + \lambda P_{D,j} \ln (-r_i^Tc_j)]l=−∑(i,j)∈D​[pij​lnσ(riTcj​)+λPD,j​ln(−riTcj​)],其中 P_{D,j}PD,j​ 是上下文结点v_jvj​相关的负例,r_i^Tc_jriTcj​用向量内积来刻画结点之间的相似度。此优化框架下的稀疏矩阵分解的复杂度可达到 O(|E|)O(∣E∣),即网络中边的数量级。

稀疏矩阵分解后得到的结点表示只捕捉了网络中的局部信息。除此之外,ProNE 利用高阶 Cheeger 不等式,对图的谱空间进行调制,让初始分解得到的结点表示在调制后的谱空间内进行传播。从高阶 Cheeger 不等式中可以推断,小的拉普拉斯矩阵的特征值控制着图被划分成几个大的子图的划分效果;大的特征值控制着图被划分为许多个小的子图的划分效果,可以理解为局域的聚类效果或平滑效果。因此,ProNE 希望通过控制谱空间的大特征值和小特征值来控制图的高阶全局以及局域的划分聚类效果。首先,将网络的拉普拉斯矩阵进行调制 \tilde{L} = U diag([g(\lambda_1),...,g(\lambda_n)]U^T)L~=Udiag([g(λ1​),...,g(λn​)]UT),这里可以根据图的特点采用带通或低通滤波等。之后在新图上传播结点表示,从而将全局的聚类信息或者局域的平滑嵌入到图表示,提高图表示的表达能力,具体的操作为 R_d = D^{-1}A(E_n - \tilde{L})R_dRd​=D−1A(En​−L~)Rd​,其中,D^{-1}AD−1A是归一化的邻接矩阵,E_nEn​是单位矩阵,R_dRd​是结点表示矩阵。

ProNE 能够快速计算大规模网络中的结点表示,对于亿级网络结点表示,单线程的ProNE 比20线程的 LINE 更快(LINE是比较方法中最快的算法)。此外,ProNE 在调制谱空间中传播结点表示的方法也能够显著提升其他网络表示学习算法的精度,如DeepWalk, LINE, Node2vec [8] ,提升的相对幅度在10%以上。


图1:ProNE 谱传播方法可以显著提升多种网络表示学习算法

(二)富属性多重边异构网络表示学习 GATNE [9] 。很多网络表示学习方法关注于单类型的结点和单类型的边,GATNE 考虑了更复杂场景下的网络表示学习。现实中的网络结点和边可能有多种类型,每个结点可能有丰富的属性。比如,在电商知识图谱中,结点有用户、物品等不同类型,边有“点击”、“购买”等不同类型,商品有价格,描述,品牌等属性。GATNE 设计了一个统一的网络表示框架,能够同时建模了结点的基本表示(Base Embedding), 结点的属性表示,边的表示。结点ii关于边类型rr表示的计算方式为 v_(i,r)=b_i+α_r M_r^T U_i a_(i,r)v(​i,r)=bi​+αrMrTUia(​i,r),其中,b_ibi​是结点的基本表示(与其边的类型rr无关),α_rαr​是超参数,U_iUi​是结点ii相关的边的表示,a_(i,r)a(​i,r)代表了注意力(attention)系数,M_rMr​是训练参数。


表2:(来自论文 [9])GATNE与不同类型网络表示学习算法的比较

GATNE 能够支持对知识图谱中的新结点进行表示学习(inductive settings)。此时,新结点的属性特征用于生成其表示 v_{i,r} = h_z(x_i)+\alpha_r M_r^T U_ia_{i,r} + \beta D_z^T x_ivi,r​=hz​(xi​)+αrMrTUiai,r​+βDzTxi​,这里,zz表示结点的类型,h_zhz​是一种特征转换函数,D_zDz​是训练参数。GATNE 的训练方式是基于元路径的随机游走和异构 SkipGram,例如,采样的路径会根据预先设计的元路径(如:用户-商品-用户)。随机路径采样生成的正例,以及在异构网络中负采样得到的负例相结合,来最小化负对数似然。

GATNE在多个复杂网络数据(如亚马逊、Youtube,阿里巴巴数据)上进行验证,对生成的结点表示进行链接预测,比已有方法如metapath2vec [18],MNE [19] 等F1值提升6%~28%。此外,GATNE很容易并行化,能够生成亿级复杂网络的结点表示。GATNE已经被应用于阿里巴巴的推荐场景,并且被阿里巴巴图神经网络计算平台 AliGraph和百度的Paddle Graph Learning (PGL) 平台实现。

(三)可迁移的图结构表示预训练方法 GCC [21]。通常的网络表示学习算法是在一个图上进行学习表示,然后用于与该图相关的任务,如结点分类,链接预测等。这样的话,在一个图上学习到的知识难以迁移到别的图上进行表示学习。受自然语言处理和计算机视觉领域的自监督预训练范式启发,项目组提出一个无监督的网络表示学习框架,它可以学习不同网络结构中存在的普遍的网络拓扑结构规律,如无标度(scale-free),“小世界”(small world)等规律。GCC 将预训练任务定义为子图级别的实例判别(subgraph-level instance discrimination),然后利用对比学习(contrastive learning)的框架进行学习。具体来说,GCC 中进行对比学习的实例单位是“子图”,结点v的子图是通过在v的ego network中采样结点生成诱导子图,同一个结点出发采样多个的子图对是正例,相同图上的不同结点或者不同图上的结点采样得到的子图对是负例(如图2)。GCC 可以使用任何图编码器(如GIN)编码得到表示,对于训练方法,GCC 尝试了端对端训练和动量更新两种方式。


图2:GCC的训练框架,最左是不同结点(红&蓝)的ego network,通过不同结点采样出的子图进行对比学习。

项目组将GCC用于3种图挖掘任务(结点分类、图分类、相似结点搜索)和10种图数据(包括学术合作网络、社交网络、交通网络等)上,实验结果显示在多种图上预训练的GCC模型和在单一图数据上训练得到的表示相比,能达到相当甚至更优的效果。

此外,项目组还提出了动态网络表示学习算法 [10, 11] 以及基于对抗学习的鲁棒网络表示学习算法 [12, 13]等。

四、网络表示的应用

项目组已经将不同的网络学习表示算法部署到多种应用中。包括:

学术数据语义集成。项目组利用网络表示学习算法进行知识图谱构建,多源数据集成 [14],同名作者消歧等 [15],支撑了以知识和图神经网络计算为中心的科技情报挖掘系统AMiner,建立了超过2.7 亿论文、1.3亿学者、1.2 亿专利的科技知识图谱,形成了智慧人才情报、学术搜索与知识图谱等系列产品,服务全球220 个国家和地区1000 余万用户。此外,知识图谱构建技术用于搜狗学术搜索,日均服务搜索超过3亿次。项目组还开源了世界最大的开放学术图谱Open Academic Graph (OAG)。

图神经网络计算平台 AliGraph。项目组的算法成功应用在阿里巴巴图神经网络计算平台AliGraph,月活跃用户超过5亿,支持百亿节点与万亿边的异构图数据训练,获世界人工智能大会先锋奖。

此外,项目组系列产品为科研主管部门如科技部、国家自然基金委等提供学术评价、智能指派/推荐等知识服务;为企事业单位华为、腾讯等提供人才发现、专家推荐等智能服务,助力企业产品升级,推动企业科技创新。


参考文献

[1] Tang, Jie, Jing Zhang, Limin Yao, Juanzi Li, Li Zhang, and Zhong Su. "Arnetminer: extraction and mining of academic social networks." In Proceedings of the 14th ACM SIGKDD international conference on Knowledge discovery and data mining, pp. 990-998. 2008.
[2] Perozzi, Bryan, Rami Al-Rfou, and Steven Skiena. "Deepwalk: Online learning of social representations." In Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining, pp. 701-710. 2014.
[3] Tang, Jian, Meng Qu, Mingzhe Wang, Ming Zhang, Jun Yan, and Qiaozhu Mei. "Line: Large-scale information network embedding." In Proceedings of the 24th international conference on world wide web, pp. 1067-1077. 2015.
[4] Mikolov, Tomas, Kai Chen, Greg Corrado, and Jeffrey Dean. "Efficient estimation of word representations in vector space." arXiv preprint arXiv:1301.3781 (2013).
[5] Qiu, Jiezhong, Yuxiao Dong, Hao Ma, Jian Li, Kuansan Wang, and Jie Tang. "Network embedding as matrix factorization: Unifying deepwalk, line, pte, and node2vec." In Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining, pp. 459-467. 2018.
[6] Qiu, Jiezhong, Yuxiao Dong, Hao Ma, Jian Li, Chi Wang, Kuansan Wang, and Jie Tang. "Netsmf: Large-scale network embedding as sparse matrix factorization." In The World Wide Web Conference, pp. 1509-1520. 2019.
[7] Zhang, Jie, Yuxiao Dong, Yan Wang, Jie Tang, and Ming Ding. "ProNE: fast and scalable network representation learning." In Proc. 28th Int. Joint Conf. Artif. Intell., IJCAI, pp. 4278-4284. 2019.
[8] Grover, Aditya, and Jure Leskovec. "node2vec: Scalable feature learning for networks." In Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining, pp. 855-864. 2016.
[9] Cen, Yukuo, Xu Zou, Jianwei Zhang, Hongxia Yang, Jingren Zhou, and Jie Tang. "Representation learning for attributed multiplex heterogeneous network." In Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, pp. 1358-1368. 2019.
[10] Han, Yu, Jie Tang, and Qian Chen. "Network embedding under partial monitoring for evolving networks." In Proceedings of the 28th International Joint Conference on Artificial Intelligence, pp. 2463-2469. AAAI Press, 2019.
[11] Zhao, Yifeng, Xiangwei Wang, Hongxia Yang, Le Song, and Jie Tang. "Large scale evolving graphs with burst detection." In 28th International Joint Conference on Artificial Intelligence (IJCAI). 2019.
[12] Ding, Ming, Jie Tang, and Jie Zhang. "Semi-supervised learning on graphs with generative adversarial nets." In Proceedings of the 27th ACM International Conference on Information and Knowledge Management, pp. 913-922. 2018.
[13] Feng, Fuli, Xiangnan He, Jie Tang, and Tat-Seng Chua. "Graph adversarial training: Dynamically regularizing based on graph structure." IEEE Transactions on Knowledge and Data Engineering (2019).
[14] Zhang, Fanjin, Xiao Liu, Jie Tang, Yuxiao Dong, Peiran Yao, Jie Zhang, Xiaotao Gu et al. "Oag: Toward linking large-scale heterogeneous entity graphs." In Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, pp. 2585-2595. 2019.
[15] Zhang, Yutao, Fanjin Zhang, Peiran Yao, and Jie Tang. "Name Disambiguation in AMiner: Clustering, Maintenance, and Human in the Loop." In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, pp. 1002-1011. 2018.
[16] Tang, Jian, Meng Qu, and Qiaozhu Mei. "Pte: Predictive text embedding through large-scale heterogeneous text networks." In Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 1165-1174. 2015.
[17] Grover, Aditya, and Jure Leskovec. "node2vec: Scalable feature learning for networks." In Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining, pp. 855-864. 2016.
[18] Dong, Yuxiao, Nitesh V. Chawla, and Ananthram Swami. "metapath2vec: Scalable representation learning for heterogeneous networks." In Proceedings of the 23rd ACM SIGKDD international conference on knowledge discovery and data mining, pp. 135-144. 2017.
[19] Zhang, Hongming, Liwei Qiu, Lingling Yi, and Yangqiu Song. "Scalable Multiplex Network Embedding." In IJCAI, vol. 18, pp. 3082-3088. 2018.
[20] Yang, Zhen, Ming Ding, Chang Zhou, Hongxia Yang, Jingren Zhou, and Jie Tang. Understanding Negative Sampling in Graph Representation Learning. In Proceedings of the Twenty-Sixth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD'20).
[21] Qiu, Jiezhong, Qibin Chen, Yuxiao Dong, Jing Zhang, Hongxia Yang, Ming Ding, Kuansan Wang, and Jie Tang. Graph Contrastive Coding for Structural Graph Representation Pre-Training. In Proceedings of the Twenty-Sixth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD'20).

复杂网络表示的原理,算法和应用相关推荐

  1. 数字证书及网络加解密原理

    数字证书及网络加解密原理 层次一 报文完整性验证 小明的明文(小刚的公钥加密)-> | 密文 |---传输----> |密文 |--------->(小刚私钥解密)------> ...

  2. 《VMware 网络技术:原理与实践》—— 3.2 以太网

    本节书摘来自华章出版社<VMware 网络技术:原理与实践>一 书中的第3章,第3.2节,作者:(美)Christopher Wahl Steven Pantol,更多章节内容可以访问云栖 ...

  3. 网络爬虫工作原理分析

    网络爬虫工作原理 1.聚焦爬虫工作原理及关键技术概述 网络爬虫是一个自动提取网页的程序,它为搜索引擎从Internet网上下载网页,是搜索引擎的重要组成.传统爬虫从一个或若干初始网页的URL开始,获得 ...

  4. 网络技术——路由器原理与测试

    网络技术--路由器原理与测试 下列练习项目实验搭建详细过程配置与说明 练习1:实现静态路由传输协议 练习2:实现默认路由传输协议 a.开启远程登录控制路由器 1.路由器 1.1.路由器工作原理 1.2 ...

  5. 干货:一文看懂网络爬虫实现原理与技术(值得收藏)

    01  网络爬虫实现原理详解 不同类型的网络爬虫,其实现原理也是不同的,但这些实现原理中,会存在很多共性.在此,我们将以两种典型的网络爬虫为例(即通用网络爬虫和聚焦网络爬虫),分别为大家讲解网络爬虫的 ...

  6. 【人工智能】基于蒙特卡洛树搜索和策略价值网络的AI五子棋算法设计

    基于蒙特卡洛树搜索和策略价值网络的AI五子棋算法设计 摘要 蒙特卡洛树搜索算法 五子棋博弈的状态价值函数 附1:详细论文说明下载: 附2:实现代码下载(2022.10更新后代码): 摘要 随着人工智能 ...

  7. 浅谈网络爬虫中广度优先算法和代码实现

    前几天给大家分享了网络爬虫中深度优先算法的介绍及其代码实现过程,没来得及上车的小伙伴们可以戳这篇文章--浅谈网络爬虫中深度优先算法和简单代码实现.今天小编给大家分享网络爬虫中广度优先算法的介绍及其代码 ...

  8. IT:银行类金融科技岗笔试习题集合—各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理)

    IT:银行类金融科技岗笔试习题集合-各大行(工商+建设+农业+浦发+招商+平安+人民+邮政银行)计算机信息科技岗笔试集合(包括计算机基础知识+网络+操作系统+数据库系统原理) 导读:因为博主后台留言太 ...

  9. 【论文导读】浅谈胶囊网络与动态路由算法

    前言 "Dynamic Routing Between Capsules"是由Hinton等联合发表在NIPS会议上.提出了一个新的神经网络---胶囊网络与囊间的动态路由算法. 上 ...

  10. 什么是网络光端机?网络光端机工作原理及功能介绍!

    网络光端机,就是光信号传输的终端设备.由于目前技术的提高,光纤价格的降低使它在各个领域得到很好的应用.在远程光纤传输中,光缆对信号的传输影响很小,光纤传输系统的传输质量主要取决于光端机的质量,因为光端 ...

最新文章

  1. 4.MySQL连接并选择数据库(SQL C)
  2. 慎用uniapp开发商业级应用
  3. VMware安装CentOS6
  4. 解决Jetson nano上编译librealsense错误:Could NOT find Vulkan (missing: VULKAN_LIBRARY VULKAN_INCLUDE_DIR)
  5. RegionServer宕机的原因
  6. 蒙特卡罗方法验证凯利公式
  7. 图解如何在DC上添加自定义属性类
  8. Redis Cluster Gossip 协议详解
  9. 数据接口的登录态校验以及JWT
  10. 【LeetCode】1. 盛最多水的容器:C#三种解法
  11. React开发(239):dva概念4dispatch
  12. 使用FTP获取RFC文档
  13. 用Python实现跳一跳自动跳跃。
  14. 9.MongoDB之explain(执行计划分析)
  15. 8.业务架构·应用架构·数据架构实战 --- 技术方案书
  16. 卡永久QQ飞车紫钻 记录
  17. DEDECMS短信宝短信插件
  18. Weblogic-端口查看与修改
  19. mac安装虚拟机win10,Mac安装VirtualBox
  20. 『Kubernetes』Linux安装K8S集群过程笔记

热门文章

  1. Java?Python?Let us GO!
  2. Python 面向监狱编程,就靠它了
  3. 10行Python代码自动清理电脑内重复文件,解放双手!
  4. 30 个极简Python代码,拿走即用(真干货)
  5. java卡片布局源码_Java编程使用卡片布局管理器示例【基于swing组件】
  6. 在python中、处理的一切都是对象_Python 3+ 一切都是对象
  7. linux 命令gpasswd -a,Linux中gpasswd命令起什么作用呢?
  8. C# 获取目录下文件
  9. iOS Base64转码(使用ios7系统自带编码库 和 GMTBase64 两种方式)
  10. 微软在Build 2019大会上发布Fluid Framework协作平台