[论文阅读笔记] LouvainNE Hierarchical Louvain Method for High Quality and Scalable Network Embedding
[论文阅读笔记] LouvainNE: Hierarchical Louvain Method for High Quality and Scalable Network Embedding
本文结构
- 解决问题
- 主要贡献
- 算法原理
- 参考文献
(1) 解决问题
本篇论文是针对现有表征算法计算开销比较大,不能够很好应用到大规模网络上的问题。
(2) 主要贡献
Contribution: 提出一种快速且可扩展网络表征框架,LouvainNE,能够为包含数百亿边的网络生成高质量的表征向量。
(3) 算法原理
LouvainNE的算法思想也就是基于粗化图的,与HARP类似,但是粗化方式不同,粗化图的使用方式也不同。
LouvainNE算法包含三个部分:
(1)类似自顶向下的层次聚类算法,构建层次子图(2)为每个层次子图中的节点生成特定节点表征,提出两个不同的方法来生成节点嵌入(标准嵌入和随机嵌入方法)(3)结合各个层次子图中节点获得的表征成最终节点表征。
自顶向下构建层次子图:使用Louvain算法生成的社区构成节点来进行划分。(满足一个假设,相似的数据节点应该在二叉树上的位置更接近)如下图所示:

首先,使用Louvain算法得到原始图(对应上图树的根节点)的初始社区划分S1、S2、S3,每个社区可以看成一个粗化节点(对应上图中右半部分根节点的第一个分叉)。紧接着对S1、S2、S3分别递归使用Louvain再进行社区划分,分别得到各自的儿子节点,如上图中右边树所示,S1进一步划分为社区S11和S12。以上过程对树中每个非叶节点(粗化节点包含两个或多个原始图节点的为非叶节点,否则为叶节点)分别做,直到得到的儿子节点均只包含单个原始图中的节点,自顶向下层次子图构建完毕(每一层所有节点看成一个层次(粗化)图)。为每个层次图中的节点学习表示向量(同一深度的节点位于同一层图中),提出标准嵌入方法和随机嵌入方法。
标准嵌入:使用其他表示学习算法来学习,如DeepWalk、Line、Node2vec等等,通常其他表示学习算法的输入需要图结构的,因此需要定义层次子图,点由每一层节点组成,节点之间的边由以下公式确定(ES1S2代表节点集合S1和S2之间存在的边):

随机嵌入:使用标准正态分布随机生树中每个节点的表示向量,这种方法不需要构建图结构。(论文实验中对比了标准嵌入和随机嵌入的实验效果,emmm,结论是相差不大,考虑到随机嵌入效率比标准嵌入快很多,因为综合考虑还是使用随机嵌入的方法好。)
融合各层节点表示生成节点最终表示向量,我们只要得到树中所有叶节点的表示向量即课得到原始图的表示向量:我们可以发现,从根节点到叶节点对应唯一路径,聚合路径中节点的向量表示(结合各个层的表示,从而融合局部到全局的结构特征)即可得到叶节点的向量表示(即路径上其他节点向量的线性组合)。聚合方式如下所示(越靠近根节点的节点的向量表示越重要,h为树的深度,α为超参数(属于[0,1],衡量当前深度的节点表示向量对叶子节点表示向量的重要性),ytv为在第t深度的路径中节点的表示向量):

以上便是LouvainNE算法的全部内容,通过Louvain算法获取社区信息,将社区构造为粗化节点,逐级递归,构造层次树,最后结合叶节点对应的路径上所有粗化点的表示得到叶节点的表示。
(4) 参考文献
Bhowmick A K, Meneni K, Danisch M, et al. LouvainNE: Hierarchical Louvain Method for High Quality and Scalable Network Embedding [C] // Proceedings of the 13th International Conference on Web Search and Data Mining. 2020: 43-51.
[论文阅读笔记] LouvainNE Hierarchical Louvain Method for High Quality and Scalable Network Embedding的更多相关文章
- 论文阅读笔记(二十三)【ECCV2018】:Robust Anchor Embedding for Unsupervised Video Person Re-Identification in the Wild
Introduction 当前主要的非监督方法都采用相同的训练数据集,这些数据集在不同摄像头中是对称的,即不存在单个行人的错误项,这些方法将在实际场景中效果下降.在本方法中,作者引入了非对称数据,如下 ...
- 论文阅读笔记(十)【CVPR2016】:Recurrent Convolutional Network for Video-based Person Re-Identification
Introduction 该文章首次采用深度学习方法来解决基于视频的行人重识别,创新点:提出了一个新的循环神经网络架构(recurrent DNN architecture),通过使用Siamese网 ...
- 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification
Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...
- Nature/Science 论文阅读笔记
Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...
- [论文阅读笔记] Community aware random walk for network embedding
[论文阅读笔记] Community aware random walk for network embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 先前许多算法都 ...
- 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读笔记 Word Embeddings A Survey
论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...
- 论文阅读笔记 Improved Word Representation Learning with Sememes
论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...
随机推荐
- python进阶(16)深入了解GIL锁(最详细)
前言 python的使用者都知道Cpython解释器有一个弊端,真正执行时同一时间只会有一个线程执行,这是由于设计者当初设计的一个缺陷,里面有个叫GIL锁的,但他到底是什么?我们只知道因为他导致pyt ...
- [Java] 数据类型, 变量, 运算符, 表达式
title: [Java] 变量与表达式 你已经学会输出 Hello world 了, 那么现在, 我们来学习关于变量的知识 基本数据类型 在 Java 中, 有 8 种基本的数据类型: 名称 描述 ...
- 04- HTML常用标签
HTML标签分类 通过上节博客我们知道了网页的组成:文字 图片 连接 视频 音频.在HTML页面中,带有"< >"符号的元素被称为HTML标签,如上面提到的 <H ...
- php中var关键字用法
见很多朋友说在php中定义变量用不用var都没关系,其实不然. 看看例子,如果我这样使用var: 1 var $a=123; 2 echo $a; 3 //那么程序会提示语法错误,要去掉var这个变量 ...
- Win64 驱动内核编程-20.UnHook SSDT
UNHOOK SSDT 要恢复 SSDT,首先要获得 SSDT 各个函数的原始地址,而 SSDT 各个函数的原始地址,自然是存储在内核文件里的.于是,有了以下思路: 1.获得内核里 KiService ...
- Linux安装Redis报错`cc:命令未找到`
缺少gcc和gcc-c++的编译环境,安装即可. 可以联网情况下使用命令 yum install gcc yum install gcc-c++ 然后清理原来的残余文件 make distclean ...
- Ubuntu20.04安装和配置JDK
首先在官网下载Linux系统的jdk到本地 创建/java目录 sudo mkdir /java 这是直接创建在根目录下的. 3. 将下载的jdk压缩包移动到java文件夹 sudo mv 你的安装包 ...
- Base64文件上传(Use C#)
Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,它是一种基于64个可打印字符来表示二进制数据的方法. 使用base64进行文件上传的具体流程是:前台使用js将文件转换为base64格 ...
- Asp.NetCore Web应用程序中的请求管道和中间件
你是否会迷惑当我们请求一个ASP.NetWeb应用程序以后,它是怎么处理这些请求的,后台是怎么工作的,今天就讲一下Asp.NetCore Web应用程序中的请求处理过程. 上一节,我们讲到,Start ...
- net5学习笔记---依赖注入
小王的故事 小王去上班 小王是个程序员,每个工作日他都要去上班,诸多交通工具他最喜欢的交通工具是骑电车.在骑行的过程中放空自己使他很快. 突然有一天天气预报说近期有很大的雨,小王再想骑电车去上 ...