Node2Vec:万物皆可Embedding

2020 年 12 月 4 日 AINLP

相关阅读: 

Graph Embedding基础系列第三篇,和deepwalk的思路非常相似,来自2016年Stanford的node2vec,

  • 论文:node2vec: Scalable Feature Learning for Networks [1]
  • 代码:https://github.com/aditya-grover/node2vec

前面介绍过,deepwalk可以认为是 random walk + skip-gram 的模型,random walk本质上是一个dfs的过程,丢失了bfs的邻居结构信息;而node2vec可以简单理解为对deepwalk的随机游走过程进行优化,综合考虑了bfs和dfs的游走方式,提出了『biased random walk』,训练更新仍然是skip-gram那一套。下面来具体介绍~

先验知识

文中提出了两种度量节点相似性的方式:

内容相似

具有直接链接关系的两个节点,我们可以认为是内容相似的。例如上图中的

结构相似

网络拓扑结构组成上是类似的,我们也可以认为两个节点是相似的。例如上图中的

DFS 和 BFS

这两种基础搜索策略相信大家肯定非常熟悉的吧,就不再赘述。DFS为上图中蓝色路径,可以理解为获取全局信息;BFS为上图中红色路径,可以理解为获取局部信息。

node2vec模型

随机游走

对于一个起始节点 , 我们可以采样出一条长度为 的随机游走路径,

其中, 表示节点 和节点 之间的未归一化概率(即从节点 转移到节点 的概率), 为归一化常数。

搜索bias

最简单优化随机游走的方式是将 定义为 边的权重 ,如果是无权图,则 。这种方案的缺点是没有网络的结构。

考虑真实场景下的网络,会同时存在DFS和BFS两种采样方式,提出了一种更为合理的「二阶随机游走」。以下图为例,我们从节点 转移到节点 ,并且当前在节点 ,需要考虑下一个采样节点

为此, 作者定义了一个概率分布,也就是一个节点到它的不同邻居的转移概率:

解释一下:

  • 如果t和x相等,那么采样的概率为
  • 如果t与x相连,那么采样的概率为 1
  • 如果t与x不相连,那么采样的概率为

参数的意义为:

  • 参数 :表示节点之间的最短路径,取值为
  • 参数 :返回参数,控制重新采样上一步已访问节点的概率。
    • 当参数 时,接下来采样的节点很大概率不是之前已访问节点,这一策略使得采样偏向dfs;
    • 当 参数 时,接下来采样的节点很大概率是之前已访问节点,这一策略是的采样偏向bfs;
  • 参数 :出入参数,控制采样的方向。
    • 当参数 时,接下来采样的节点倾向于向 靠近,偏向于bfs;
    • 当参数 时,接下来采样的节点倾向于向 远离,偏向于dfs;

可以发现,当 时,node2vec就是一个deepwalk模型了。

Edge embedding

在某些任务中,我们会对边的特征感兴趣,比如 link prediction,因此可能需要获取 edge embedding。

给定两个节点 , 我们有它们对应的向量表示 ,然后可以定义一个二元操作来生成边的表示

具体可选的二元操作如下:

本文参考资料

[1]

node2vec: Scalable Feature Learning for Networks: https://arxiv.org/abs/1607.00653


- END -


由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方"AINLP",进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心

欢迎加入AINLP技术交流群
进群请添加AINLP小助手微信 AINLPer(id: ainlper),备注NLP技术交流

推荐阅读

这个NLP工具,玩得根本停不下来

征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)

完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)

从数据到模型,你可能需要1篇详实的pytorch踩坑指南

如何让Bert在finetune小数据集时更“稳”一点

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化

Node2Vec 论文+代码笔记

模型压缩实践收尾篇——模型蒸馏以及其他一些技巧实践小结

中文命名实体识别工具(NER)哪家强?

学自然语言处理,其实更应该学好英语

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


阅读至此了,分享、点赞、在看三选一吧🙏

登录查看更多
1

相关内容

专知会员服务
37+阅读 · 2020年11月24日
【NeurIPS2020-MIT】子图神经网络,Subgraph Neural Networks
专知会员服务
45+阅读 · 2020年9月28日
专知会员服务
47+阅读 · 2020年8月27日
图节点嵌入(Node Embeddings)概述,9页pdf
专知会员服务
37+阅读 · 2020年8月22日
【KDD2020-UCLA-微软】GPT-GNN:图神经网络的预训练
专知会员服务
61+阅读 · 2020年8月19日
【图神经网络(GNN)结构化数据分析】
专知会员服务
114+阅读 · 2020年3月22日
图神经网络入门(三)GAT图注意力网络
专知
7+阅读 · 2020年5月15日
“推荐系统”加上“图神经网络”
机器学习与推荐算法
12+阅读 · 2020年3月23日
图表示学习Graph Embedding综述
图与推荐
10+阅读 · 2020年3月23日
GraphSAGE: GCN落地必读论文
AI100
29+阅读 · 2019年8月15日
论文浅尝 | 一种嵌入效率极高的 node embedding 方式
开放知识图谱
13+阅读 · 2019年5月12日
干货 | 万物皆可「计算机视觉」
AI科技评论
6+阅读 · 2019年2月10日
网络表示学习介绍
人工智能前沿讲习班
17+阅读 · 2018年11月26日
图上的归纳表示学习
科技创新与创业
22+阅读 · 2017年11月9日
dynnode2vec: Scalable Dynamic Network Embedding
Arxiv
13+阅读 · 2018年12月6日
Arxiv
4+阅读 · 2018年2月19日
VIP会员
相关VIP内容
专知会员服务
37+阅读 · 2020年11月24日
【NeurIPS2020-MIT】子图神经网络,Subgraph Neural Networks
专知会员服务
45+阅读 · 2020年9月28日
专知会员服务
47+阅读 · 2020年8月27日
图节点嵌入(Node Embeddings)概述,9页pdf
专知会员服务
37+阅读 · 2020年8月22日
【KDD2020-UCLA-微软】GPT-GNN:图神经网络的预训练
专知会员服务
61+阅读 · 2020年8月19日
【图神经网络(GNN)结构化数据分析】
专知会员服务
114+阅读 · 2020年3月22日
相关资讯
图神经网络入门(三)GAT图注意力网络
专知
7+阅读 · 2020年5月15日
“推荐系统”加上“图神经网络”
机器学习与推荐算法
12+阅读 · 2020年3月23日
图表示学习Graph Embedding综述
图与推荐
10+阅读 · 2020年3月23日
GraphSAGE: GCN落地必读论文
AI100
29+阅读 · 2019年8月15日
论文浅尝 | 一种嵌入效率极高的 node embedding 方式
开放知识图谱
13+阅读 · 2019年5月12日
干货 | 万物皆可「计算机视觉」
AI科技评论
6+阅读 · 2019年2月10日
网络表示学习介绍
人工智能前沿讲习班
17+阅读 · 2018年11月26日
图上的归纳表示学习
科技创新与创业
22+阅读 · 2017年11月9日
Top
微信扫码咨询专知VIP会员