网络表示学习Network Representation Learning/Embedding
网络表示学习相关资料
网络表示学习(network representation learning,NRL),也被称为图嵌入方法(graph embedding method,GEM)是这两年兴起的工作,目前很热,许多直接研究网络表示学习的工作和同时优化网络表示+下游任务的工作正在进行中。
清华大学计算机系的一个学习组 新浪微博@涂存超 整理的论文列表:https://github.com/thunlp/NRLpapers,并一直持续更新着,里面详细的列举了最近几年有关网络表示学习(network representation learning/network embedding)比较有代表性的论文列表及其代码。
☆陈启明整理的github列表 https://github.com/chihming/awesome-network-embedding
一篇综述性文章(University of Southern California (USC))及其code:
(1)文章: Goyal P, Ferrara E. Graph Embedding Techniques, Applications, and
Performance: A Survey[J]. arXiv preprint arXiv:1705.02801, 2017.
(2)代码: https://github.com/palash1992/GEM一个github资料,里面有部分论文+code(大多数是python实现,matlab次之):
四个slides:
[(MLSS2017)网络表示学习]《Representation Learning with Networks》by Jure Leskovec [Stanford University] Part1:网页链接 Part2:网页链接 Part3:网页链接 Part4:网页链接
- https://pan.baidu.com/s/1nuB5Rex
- https://pan.baidu.com/s/1geUHeQB
- https://pan.baidu.com/s/1cwB7pc
网络表示学习(DeepWalk,LINE,node2vec,SDNE)
详细的资料可以参考:网络表示学习相关资料
1.传统:基于图的表示(又称为基于符号的表示)
如左图G =(V,E),用不同的符号命名不同的节点,用二维数组(邻接矩阵)的存储结构表示两节点间是否存在连边,存在为1,否则为0。
缺点:长尾分布下大部分节点间没有关系,所以邻接矩阵非常稀疏,不利于存储计算。
2. 网络表示学习(Network Representation Learning,NRL),也称为图嵌入法(Graph
Embedding Method,GEM):用低维、稠密、实值的向量表示网络中的节点(含有语义关系,利于计算存储,不用再手动提特征(自适应性),且可以将异质信息投影到同一个低维空间中方便进行下游计算)。
DeepWalk【1】:
实现1:https://github.com/phanein/deepwalk
用SkipGram的方法进行网络中节点的表示学习。那么,根据SkipGram的思路,最重要的就是定义Context,也就是Neighborhood。NLP中,Neighborhood是当前Word周围的字,本文用随机游走得到Graph或者Network中节点的Neighborhood。
- (1)随机游走随机均匀地选取网络节点,并生成固定长度的随机游走序列,将此序列类比为自然语言中的句子(节点序列=句子,序列中的节点=句子中的单词),应用skip-gram模型学习节点的分布式表示,skip-gram模型详见:http://blog.csdn.net/u013527419/article/details/74129996
- (2)前提:如果一个网络的节点服从幂律分布,那么节点在随机游走序列中的出现次数也服从幂律分布,并且实证发现NLP中单词的出现频率也服从幂律分布。
- (3)大体步骤:
Network/graph ---------random walk ---------得到节点序列(representation mapping)-------- 放到skip-gram模型中(中间节点预测上下
文节点)--------- output:representation
LINE【2】:
(1)先区分两个概念:
一阶相似度:直接相连节点间,例如6与7。
定义节点vi和vj间的联合概率为
v代表节点,u代表节点的embedding。上面式子的意思是两节点越相似,內积越大,sigmoid映射后的值越大,也就是这两节点相连的权重越大,也就是这两个节点间出现的概率越大???。
二阶相似度:通过其他中介节点相连的节点间例如5与6。
用的是一个条件概率
(2)目标是让NRL前后节点间相似度不变,也节点表示学习前如果两个节点比较相似,那么embedding后的这两个节点表示向量也要很相似。--此文中用的是KL散度,度量两个概率分布之间的距离。KL散度的相关知识详见:http://blog.csdn.net/u013527419/article/details/51776786
以保证其一阶相似度为例子:
embedding前:节点vi和vj间的经验联合概率为
所以,最小化:
Node2vec【3】:
论文+实现及其他:http://snap.stanford.edu/node2vec/
类似于deepwalk,主要的创新点在于改进了随机游走的策略,定义了两个参数p和q,在BFS和DFS中达到一个平衡,同时考虑到局部和宏观的信息,并且具有很高的适应性。
(1)
(2)参数控制跳转概率的随机游走,之前完全随机时,p=q=1.
--返回概率参数(Return parameter)p,对应BFS,p控制回到原来节点的概率,如图中从t跳到v以后,有1/p的概率在节点v处再跳回到t。
--离开概率参数(In outparameter)q,对应DFS,q控制跳到其他节点的概率。
上图中,刚从edge
(t,v)过来,现在在节点v上,要决定下一步(v,x)怎么走。其中dtx表示节点t到节点x之间的最短路径,dtx=0表示会回到节点t本身,dtx=1表示节点t和节点x直接相连,但是在上一步却选择了节点v,dtx=2表示节点t不与x直接相连,但节点v与x直接相连。
(3)在计算广告、推荐领域中,围绕着node2nec有俩很有意思的应用:
Facebook:http://geek.csdn.net/news/detail/200138
Tencent:http://www.sohu.com/a/124091440_355140
SDNE[4]::
本文的一大贡献在于提出了一种新的半监督学习模型,结合一阶估计与二阶估计的优点,用于表示网络的全局结构属性和局部结构属性。
对节点的描述特征向量(比如点的「邻接向量」)使用autoencoder编码,取autoencoder中间层作为向量表示,以此来让获得2ndproximity(相似邻居的点相似度较高,因为两个节点的「邻接向量」相似,说明它们共享了很多邻居,最后映射成的向量y也会更接近)。总觉得上面图中local和global写反了。
目标函数:
【1】Perozzi B, Al-Rfou R, Skiena S.Deepwalk: Online learning of social representations[C],KDD2014:
701-710.
【2】LINE:Large-scaleInformation Network Embedding。WWW2015,JianTang,
Meng Qu , Mingzhe Wang, Ming Zhang, Jun Yan, Qiaozhu Mei,MicrosoftResearch Asia;Peking University,China;University of Michigan。
【3】node2vec: Scalable Feature Learning forNetworks,A
Grover, J Leskovec [StanfordUniversity] (KDD2016)
【4】Structural Deep Network Embedding,KDD 2016
上面都是我比较感兴趣一点的,详细的可以参考:https://github.com/thunlp/NRLpapers
转载自:蓁蓁尔的博客
网络表示学习相关资料 http://blog.csdn.net/u013527419/article/details/74853633
网络表示学习(DeepWalk,LINE,node2vec,SDNE) http://blog.csdn.net/u013527419/article/details/76017528
网络表示学习Network Representation Learning/Embedding的更多相关文章
- Hierarchical Attention Based Semi-supervised Network Representation Learning
Hierarchical Attention Based Semi-supervised Network Representation Learning 1. 任务 给定:节点信息网络 目标:为每个节 ...
- (转)Predictive learning vs. representation learning 预测学习 与 表示学习
Predictive learning vs. representation learning 预测学习 与 表示学习 When you take a machine learning class, ...
- 多视图子空间聚类/表示学习(Multi-view Subspace Clustering/Representation Learning)
多视图子空间聚类/表示学习(Multi-view Subspace Clustering/Representation Learning) 作者:凯鲁嘎吉 - 博客园 http://www.cnblo ...
- 零次学习(Zero-Shot Learning)入门(转)
很久没有更文章了,主要是没有找到zero-shot learning(ZSL)方面我特别想要分享的文章,且中间有一段时间在考虑要不要继续做这个题目,再加上我懒 (¬_¬),所以一直拖到了现在. 最近科 ...
- 论文阅读 Dynamic Graph Representation Learning Via Self-Attention Networks
4 Dynamic Graph Representation Learning Via Self-Attention Networks link:https://arxiv.org/abs/1812. ...
- 论文阅读 Inductive Representation Learning on Temporal Graphs
12 Inductive Representation Learning on Temporal Graphs link:https://arxiv.org/abs/2002.07962 本文提出了时 ...
- 【论文笔记】多任务学习(Multi-Task Learning)
1. 前言 多任务学习(Multi-task learning)是和单任务学习(single-task learning)相对的一种机器学习方法.在机器学习领域,标准的算法理论是一次学习一个任务,也就 ...
- 小样本学习(few-shot learning)在文本分类中的应用
1,概述 目前有效的文本分类方法都是建立在具有大量的标签数据下的有监督学习,例如常见的textcnn,textrnn等,但是在很多场景下的文本分类是无法提供这么多训练数据的,比如对话场景下的意图识别, ...
- 【PSMA】Progressive Sample Mining and Representation Learning for One-Shot Re-ID
目录 主要挑战 主要的贡献和创新点 提出的方法 总体框架与算法 Vanilla pseudo label sampling (PLS) PLS with adversarial learning Tr ...
随机推荐
- Pandas的使用(3)---Pandas的数据结构
Pandas的使用(3) Pandas的数据结构 1.Series 2.DataFrame
- Delphi中使用ADO连接Excel
第一部分: . 设置ADOConnection的ConnectionString属性的OLE DB的提供者要选择Microsoft Jet 4.0 OLE DB Provider(这本来是用于连接Ac ...
- ALGO-10_蓝桥杯_算法训练_集合运算(排序)
问题描述 给出两个整数集合A.B,求出他们的交集.并集以及B在A中的余集. 输入格式 第一行为一个整数n,表示集合A中的元素个数. 第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素. 第三行 ...
- Survival Analysis
code{white-space: pre;} Survival Analysis Zhu Lin 2017-3-18 What is Survival Analysis Survival analy ...
- 峰Redis学习(3)Redis 数据结构(字符串、哈希)
第一节:Redis 数据类型介绍 五种数据类型: 字符串(String) 字符串列表(list) 有序字符串集合(sorted set) 哈希(hash) 字符串集合(set) 第二节:Redis ...
- PAT 乙级 1029 旧键盘(20) C++版
1029. 旧键盘(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 旧键盘上坏了几个键,于是在敲一段文字的 ...
- postgresql小纪
本来是想在PaaS环境中定位PG数据库的问题,却发现给每个PG实例,就是每个库,分配的密码是加密的,还不能直接查看密码. 登录PG数据库对应的容器,发现使用默认的用户postgres没有密码也可以正常 ...
- maven的包冲突
maven的间接引用会引入其他未声明的包,maven自身的冲突解决方案,最终引用的包可能不是希望的版本. 直接声明期望的版本号,就没有间接引用的问题. 子模块很多时,可以使用dependencyMan ...
- HDOJ 2005 第几天?
#include<iostream> using namespace std; ] = { ,,,,,,,,,,, }; ] = { ,,,,,,,,,,, }; bool isRYear ...
- centos6.5远程桌面连接(VNC\SPice)
在Linux下用vnc远程桌面,centos中默认没有安装VNC 查询系统是否安装VNC # rpm -q tigervnc tigervnc-server 安装VNC服务 # yum install ...