Facebook开源了超大规模图嵌入算法,上亿个节点也能快速完成
https://www.toutiao.com/a6675562914365047300/
图,是很有用的数据结构,用节点 (Node) 和边 (Edge) 织成一张网。比如,知识图谱就是这样的网。
处理这样的数据,要用到图嵌入 (Graph Embedding) :把高维的网络,转换成低维的向量。处理之后,机器学习模型才能轻易食用。
如果像上图这样,只有几个节点,十几条边,图嵌入没什么难度。
如果有几十亿个节点,几万亿条边呢?传统的图嵌入方法就捉急了。
但现在,Facebook开源了叫做PyTorch-BigGraph (简称PBG) 的新工具。
有了它,再大的图 (原文是arbitrarily large,任意大) 都能快速生成图嵌入。而且,完全不需要GPU。
开源模型除了可以自己训练之外,还有拿7,800万节点的Wikidata数据预训练过的模型,可以直接下载来用。
PBG发表之后,小伙伴们纷纷奔走相告:
LeCun老师还亲自转发了两次。
如何养成
PBG是一个分布式系统,用1.2亿个节点的完整FreeBase知识图谱来训练的。
训练过程中,PBG会吃进图上所有边 (Edge) 的大列表,每条边都是用它两端的节点来定义,一个是源 (Source) ,一个是目标 (Target) 。定义中也有两点之间的关系 (Relation Type) 。
然后,PBG给每一个节点,输出一个特征向量 (就是嵌入) ,让两个相邻的节点在向量空间中离得近一些,让不相邻节点的离远一些。
这样一来,那些周围环境分布相近的节点,在向量空间里的位置也会彼此靠近,图原本要表达的意思就保留下来了。
另外,针对每种不同的关系,“近似度得分 (Proximity Score) ”都可以定制不同的计算方法。这样,一个节点的嵌入,就可以在不同种类的关系里共享了。
快一点,再快一点
要快速处理大规模的图数据,PBG用了这几个法术:
一是图分区 (Graph Partitioning) ,这样就不需要把整个模型加载到内存里了。在图嵌入质量不损失的情况下,比不分区时节省了88%的内存占用。二是一台机器进行多线程计算。三是在多台机器上同时跑,在图上各自跑一个不相邻的区域。四是批次负采样 (Batched Negative Sampling) ,能让一台CPU每秒处理100万条边,每条边100次负采样。
训练完成之后,在FB15k、Youtube、LiveJournal等等图谱上,都测试过。
团队说,PBG和大前辈们的图嵌入质量相当,但需要的时间明显缩短了。
你也试一试吧
你也去训练一个PBG吧。
反正,也不用GPU。
不想训练的话,还有用完整WikiData预训练的模型。
你需要的传送门,都在这里了。
代码传送门:
https://github.com/facebookresearch/PyTorch-BigGraph
食用索引:
https://torchbiggraph.readthedocs.io/en/latest/
论文传送门:
https://arxiv.org/abs/1903.12287
博客传送门:
https://ai.facebook.com/blog/open-sourcing-pytorch-biggraph-for-faster-embeddings-of-extremely-large-graphs/
Facebook开源了超大规模图嵌入算法,上亿个节点也能快速完成相关推荐
- 快速理解Facebook图嵌入算法Pytorch-Biggraph的原理
Facebook最近开源了其图嵌入算法Pytorch-Biggraph.这个算法完全基于CPU进行运算不需要GPU支持,而且号称能够应对上亿节点.有热心的读者给我私信问到图嵌入是是否就是笔者在之前的博 ...
- 图网络算法——信息传递和节点分类
图网络算法--信息传递和节点分类 在开始介绍下面的算法问题之前,我们首先从提出一个问题,给定一个某些节点具有分类标签的网络结构,我们应该如何去预测网络中其他节点的标签呢? 这种节点分类的方式称为半监督 ...
- Facebook 开源聊天机器人Blender,经94 亿个参数强化训练,更具“人情味”
来源:AI前线 作者 | Kyle Wiggers 编译 | Sambodhi 策划 & 编辑 | 刘燕 不久前,Facebook 开源了号称是全球最强大的聊天机器人 Blender,它标志着 ...
- Facebook开源图嵌入“神器”:无需GPU,高效处理数十亿级实体图形 | 极客头条...
点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑ 编译 | Major.一一 出品 | AI科技大本营(ID: rgznai100) 有效处理大规模图对于 ...
- AAAI 2020 开源论文 | 一种针对图嵌入模型的受限黑盒对抗攻击框架
AAAI(人工智能促进协会年会)是人工智能领域的顶级国际会议之一.今年的 AAAI 2020 是第 34 届,于 2 月 7 日至 12 日在美国纽约举行.今年,第 3 次参会的腾讯 AI Lab 共 ...
- 阿里开源大规模分布式图学习框架:专为Graph嵌入,无缝对接TF/PyTorch
↑ 点击上方[计算机视觉联盟]关注我们 来源:阿里妈妈 编辑:金金,大明 来自新智元 阿里妈妈开源大规模分布式图表征学习框架Euler,面向工业级用户和高级研究者,结合TF/XDL/PyTorch等深 ...
- 【论文分享】图嵌入恶意域名检测算法:Malicious Domain Detection via Domain Relationship and Graph Models
题目:Malicious Domain Detection via Domain Relationship and Graph Models 链接:https://ieeexplore.ieee.or ...
- 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler...
雷锋网 AI 科技评论消息,继去年 11 月开源面向高维稀疏数据场景的深度优化工具 X-Deep Learning(截至发稿,GitHub Star 数已达到 1972)之后,阿里妈妈团队于今日正式开 ...
- 图嵌入 (Graph Embedding)
图嵌入 Random Walk Matrix Fractorization Meta Paths Deep Learning Others 开放资源 开源实现 论文列表和评测 图(Graph / Ne ...
最新文章
- android studio同步代码块,Android Studio快捷键大全
- MSBuild学习总结
- 【原创】android——SQLite的cmd命令的基本操作
- 大学慕课数据结构单元测试——华中科技大学
- TCP通信过程大讨论
- flutter上拉抽屉效果 flutter拖动抽屉效果
- SQL 年龄段 品牌分类 分组统计
- springcahce集成redis 设置过期时间
- 批量梯度下降算法BGD
- 认知无线电切换算法,基于排队论源码
- IEEE1588v2解析(7)gPTP协议和PTP的关系
- 无线局域网安全(三)————CCMP加密
- 进入pe系统 原系统启动服务器,pe和启动系统安装系统教程
- 带有同步更新新浪微博功能的个人日记应用
- 计算机专业英语教程比较实用,计算机专业英语教程Unit1整理
- GPRS学习(1)----网络结构及主要网元功能
- Threejs实现卫星太阳板折叠动画,信号发射,姿态调整
- 微信跳一跳作弊python脚本,非常简单
- 合创视觉UI设计会用到哪些软件?UI设计要学什么软件?
- HTML5网页在线代码编辑器源码 适用各类项目代码在线编辑
热门文章
- HMM与条件随机场区别 转
- String对象不可修改指的是对象本身不可修改,而不是引用不可修改。
- JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用。
- 遥遥无期还是近在咫尺?长文展望「大模型」商业化前景
- IJCAI 2020开幕,杰出论文奖、卓越研究奖、约翰·麦卡锡奖等8项大奖公布 | AI日报...
- 你可能不知道的Shell
- Python2.x与3​​.x版本区别
- TensorFLow能够识别的图像文件,可以通过numpy
- 深度学习1:生成模型的输入数据集和可视化
- 8个可以提高数据科学工作效率、节省宝贵时间的Python库