A Tutorial on Network Embeddings

 A Tutorial on Network Embeddings

paper:https://arxiv.org/abs/1808.02590
 
NE 的中心思想就是找到一种映射函数,该函数将网络中的每个节点转换为低维度的潜在表示
典型例子 DeepWalk:
其学习 Zachary’s Karate network 网络中的拓扑结构信息并转换成一个二维的潜在表示(latent representation)
 

目标

  • 适应性
    • 随着网络发展,新的表示不需要重复学习
  • 可扩展
    • 短时间处理较大规模网络
  • 社区感知
    • 潜在节点间的距离可用于评估网络节点间的相似性度量
  • 低维
    • 标记数据稀疏时,低维模型能够更好的推广,并加速收敛和推理
  • 持续
    • 需要潜在的表示在连续的空间内模拟社区成员关系,连续的表示使社区有更平滑的边界,促进分类
此文包含
  • 无监督网络嵌入方法在无特征的同质网络的应用
  • 调研特征网络和部分标记网络中的网络嵌入
  • 讨论异构网络嵌入方法
 

网络嵌入发展

传统意义的Graph Embedding

  • 降维
    • PCA
    • 多维缩放(MDS)
      • 将特征矩阵 M 的每一行投影到k 维向量,保留k 维空间中原始矩阵中不同对象距离
    • Isomap 算法
      • (MDS 的扩展)通过将每个节点与特定距离内的节点连接构造邻域图,以保持非线性流形的整体结构
    • 局部线性嵌入( LLE )
这些方法都在小型网络上提供良好性能,但其时间复杂度至少为二次,故无法在大规模网络上运行
 

深度学习

  • DeepWalk
    • 通过将节点视为单词并生成短随机游走作为句子来弥补网络嵌入和单词嵌入的差距。然后,可以将诸如 Skip-gram 之类的神经语言模型应用于这些随机游走以获得网络嵌入。
    • 按需生成随机游走。skim-gram 针对每个样本进行了优化
    • DeepWalk 是可扩展的,生成随机游走和优化 Skip-gram 模型的过程都是高效且平凡的并行化
    • 引入了深度学习图形的范例
 
 

无向网络的网络嵌入

 

 

  • LINE
    • 为了更好的保存网络的结构信息,提出了一阶相似度和二阶相似度的概念,并在目标函数中结合了两者
    • 使用广度优先算法,只有距离给定节点最多两跳的节点才被视为相邻节点
    • 使用负抽样 skip-gram
  • Node2vec
    • 反映网络的结构
    • deepwalk 的扩展(deepwalk 完全时随机的),引入偏向的随机游走,增加 p,q 两个参数,p(控制访问走过的node,即往回走,q 控制没走过的node ,向外走)
    • DeepWalk和node2vec算法是先在网络中随机游走,得到node的序列。两个node同时出现在一个序列中的频率越高,两个node的相似度越高。然后构建一个神经网络,神经网络的输入是node,输出是其他node与输入的node同时出现的概率。同时出现的概率越高,两个node的相似度越高。为了保持相似度一致,得到目标函数
  • Walklets
    • 不要游走,跳过!在线学习多尺度网络嵌入
    • 进一步学习节点不同权重的网络嵌入,以不同的粒度捕获网络的结构信息。
  • GraRep
    • 通过将图形邻接矩阵提升到不同的幂来利用不同尺度的节点共现信息,将奇异值分解(SVD)应用于邻接矩阵的幂以获得节点的低维表示
  • GraphAttention
    • 不是预先确定超参数来控制上下文节点分布,而是自动学习对图转换矩阵的幂集数的关注
    • 通过设置隐藏层,这些层里的节点能够注意其邻近节点的特征,我们能够(隐含地)为邻近的不同节点指定不同的权重,不需要进行成本高昂的矩阵运算(例如反演),也无需事先知道图的结构
  • SDNE
    • https://blog.csdn.net/wangyang163wy/article/details/79698563
    • 通过深度自动编码器保持 2 跳邻居之间的接近度。它通过最小化它们的表示之间的欧几里德距离来进一步保持相邻节点之间的接近度
    • 具有多层非线性函数,从而能够捕获到高度非线性的网络结构。然后使用一阶和二阶邻近关系来保持网络结构。二阶邻近关系被无监督学习用来捕获全局的网络结构,一阶邻近关系使用监督学习来保留网络的局部结构
  • DNGR
    • 基于深度神经网络的学习网络嵌入的方法
 
 

改进

 
HARP
https://zhuanlan.zhihu.com/p/32525850?edition=yidianzixun&utm_source=yidianzixun&yidian_docid=0I21RlAU
  • network embedding的时候保持网络高阶的结构特征,具体的做法是通过将原网络图进行合并,合并为多个层次的网络图
  • 通过递归地粗粒化方式,将原网络图的节点和边通过合并划分成一系列分层的结构更小的网络图,然后再利用现有的算法进行不断的特征提取,从而实现最终的network embedding特征提取
 

特征网络嵌入( Attributed Network Embeddings )

无监督网络嵌入方法仅利用网络结构信息来获得低维度的网络特征。但是现实世界网络中的节点和边缘通常与附加特征相关联,这些特征称为属性(attribute)。
例如在诸如 Twitter 的社交网络站点中,用户(节点)发布的文本内容是可用的。因此期望网络嵌入方法还从节点属性和边缘属性中的丰富内容中学习
 
挑战:特征的稀疏性,如何将它们合并到现有的网络嵌入框架中

方法:

  • TADW
    • Network repre- sentation learning with rich text information
    • 研究节点与文本特征相关联情况,首先证明了deepwalk 实质上是将转移概率矩阵 分解为两个低维矩阵,它将文本矩阵合并到矩阵分解过程中
 

联合建模网络结构和节点特征

  • CENE
    • 结合网络结构和节点特征
    • 将文本内容视为特殊类型的节点,并利用节点-节点链接和节点内容链接进行节点嵌入。 优化目标是共同最小化两种类型链路的损失。
 

节点标签,引文网络中的出版地和日期等

典型方法是:优化用于生成节点嵌入和用于预测节点标签的损失
  • GENE
    • 将组的信息考虑到Network Embedding学习中,同一组的节点即使直接没有边,一般也会存在一些内在关系
    • 每个相同的组也会学到一个向量表示,组向量有两个用处:1)在利用周围节点预测中心节点时,组向量也会加入预测; 2)组向量也会预测组中的其他节点。最后目标函数是将上述两项相加而成
  • Max margin DeepWalk(MMDW)
    • 第一部分是基于矩阵分解的节点嵌入模型
    • 第二部分是将学习的表示作为特征来训练标记节点上的最大边缘 SVM 分类器。通过引入偏置梯度,可以联合更新两个部分中的参数。
 

异构网络嵌入

  • Chang [13] 提出了异构网络的深度嵌入框架
    • 为每种模态(如图像,文本)构建一个特征表示,然后将不同模态的嵌入映射到同一个嵌入空间
    • 优化目标:最大化链接节点嵌入间的相似性、最小化未链接节点的嵌入

来源:网络


智能推荐

A Tutorial on Principal Component Analysis主成分分析教程

主成分分析(PCA)是现代数据分析的中流砥柱 - 黑箱被广泛使用,但(有时)知之甚少。 本文的目标是消除这个黑匣子背后的魔力。 这份手稿的重点在于为主成分分析的工作方式和原因建立坚实的直觉。 本手稿通过从简单的直觉,PCA背后的数学中得出这些知识。 本教程不会回避非正式的解释,也不会回避数学。 希望通过处理这两个方面,各级读者将能够更好地理解PCA 以及何时,如何以及为何应用此技术。 引言 主成分...

EBM读书笔记(A Tutorial on Energy-Based Learning杂记)

注:本文大部分是A Tutorial on Energy-Based Learning的部分内容翻译,也还有部分自己的理解。因此起名杂记。其中措辞和理解有可能不够严谨。 在物理学中,能量最低的状态认为是最稳定的,也可以认为是事物本来的状态。那么模式识别可以这样理解:把准则(判别函数)放在一个输入和各个模式上,如果输入在某个模式上的能量最小,就认为输入属于这个模式的可能性最大。判别函数有好有坏,评价...

论文翻译和解读 A Tutorial on Energy-Based Learning (三)

这篇博客是上篇博客的后续,主要是原文5章。 目录 5. Analysis of Loss Functions for Energy-Based Models 5.1 "Good" and "Bad" Loss Functions 5.2 Sufficient Conditions for Good Loss Functions 5.3 Conditions ...

A perceptual quantization strategy for HEVC based on a convolutional neural network trained on natur

基于在自然图像上训练的卷积神经网络的HEVC的感知量化策略 局部失真可见性和局部质量的快速预测模型可以潜在地使现代的spatiotem-porally自适应编码方案对于实时应用是可行的。本文提出了一种基于快速卷积神经网络的HEVC量化策略。通过对从我们改进的对比度增益控制模型导出的数据训练的网络预测本地伪像可见性。对比度增益控制模型在我们最近的自然场景中局部失真可见性数据库中进行了训练[Alam ...

A New Hand Segmentation Method Based on Fully Convolutional Network

Abstract 手部分割具有人机交互、人的行为识别等重要应用。然而,由于手部运动和环境的复杂性,传统的手部分割方法不能得到广泛的应用。 随着深度学习的发展,卷积神经网络在许多视觉任务中表现出强大的功能。本文提出了一种基于全卷积网络的手部分割方法。我们将VGG 16层网络(VGG16)的FCN-8S结构转换为手部分割网络。 通过对ILSVRC-2014竞赛中的VGG16模型版本进行微调,得到了一个...

猜你喜欢

Network & sharing in VirtualBox - Full tutorial

2019独角兽企业重金招聘Python工程师标准>>> This is the fourth article on VirtualBox management. Today, I'm going to teach you everything you need to know of VirtualBox networking and sharing. I'm going to s...

Tutorial on Binary Descriptors – part 1

转载地址:https://gilscvblog.com/2013/08/26/tutorial-on-binary-descriptors-part-1/ Why Binary Descriptors? Following the previous post on descriptors, we’re now familiar with histogram of g...

原型对象,原型链

函数都有prototype属性,它指向原型对象。 实例对象有__proto__属性,它指向对象原型 每一个原型对象都有constructor输赢,指向构造函数,每一个原型对象又具有__proto__属性,这个指向Object.prototype.在这里插入图片描述...

Node 调用 dubbo 服务的探索及实践

2.Dubbo简介 2.1 什么是dubbo Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 2.2 流程图 Provider : 暴露服务的服务提供方。 Consumer : 调用远程服务的服务消费方。 Registry : 服务注册与发现的注册中心。 Monito...

mysql总结

mysql基础入门的总结     关于数据库:     数据库是软件开发人员要掌握的基本工具,软件的运行的过程就是操作数据的过程,数据库中的数据无非就是几个操作:增-删-查-改。         Mysql安装完成后,需要配置变量环境,找到配置路径path,然后把mysql安装目录bin文件导入就可以了。 然后运行cm...

问答精选

Correctly formatting GCM notifications?

I'm currently trying out the google cloud messaging service with its sample application "Guestbook." https://developers.google.com/cloud/samples/mbs/ I'm attempting to send notifications tha...

Are there any performance benefits of using Asynchronous functions over Synchronous in Node Js?

Now I came across an article that distinguishes between an Asynchronous function and Synchronous functions. From my understanding of the different examples and explanations, synchronous functions are ...

Python: Costing calculator output

Good day all I'm busy creating a small costing calculator for the signage department. I'm not getting the calculator to output the amount. Brief Description: You enter the height and width and then wh...

Flask-SQLAlchemy - model has no attribute 'foreign_keys'

I have 3 models created with Flask-SQLalchemy: User, Role, UserRole role.py: user.py: user_role.py: If I try (in the console) to get all users via User.query.all() I get AttributeError: 'NoneType' obj...

Seeding many PRNGs, then having to seed them again, what is a good quality approach?

I have many particles that follow an stochastic process in parallel. For each particle, there is a PRNG associated to it. The simulation must go through many repetitions to get average results. For ea...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答