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开源了超大规模图嵌入算法,上亿个节点也能快速完成相关推荐

  1. 快速理解Facebook图嵌入算法Pytorch-Biggraph的原理

    Facebook最近开源了其图嵌入算法Pytorch-Biggraph.这个算法完全基于CPU进行运算不需要GPU支持,而且号称能够应对上亿节点.有热心的读者给我私信问到图嵌入是是否就是笔者在之前的博 ...

  2. 图网络算法——信息传递和节点分类

    图网络算法--信息传递和节点分类 在开始介绍下面的算法问题之前,我们首先从提出一个问题,给定一个某些节点具有分类标签的网络结构,我们应该如何去预测网络中其他节点的标签呢? 这种节点分类的方式称为半监督 ...

  3. Facebook 开源聊天机器人Blender,经94 亿个参数强化训练,更具“人情味”

    来源:AI前线 作者 | Kyle Wiggers 编译 | Sambodhi 策划 & 编辑 | 刘燕 不久前,Facebook 开源了号称是全球最强大的聊天机器人 Blender,它标志着 ...

  4. Facebook开源图嵌入“神器”:无需GPU,高效处理数十亿级实体图形 | 极客头条...

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑ 编译 | Major.一一 出品 | AI科技大本营(ID: rgznai100) 有效处理大规模图对于 ...

  5. AAAI 2020 开源论文 | 一种针对图嵌入模型的受限黑盒对抗攻击框架

    AAAI(人工智能促进协会年会)是人工智能领域的顶级国际会议之一.今年的 AAAI 2020 是第 34 届,于 2 月 7 日至 12 日在美国纽约举行.今年,第 3 次参会的腾讯 AI Lab 共 ...

  6. 阿里开源大规模分布式图学习框架:专为Graph嵌入,无缝对接TF/PyTorch

    ↑ 点击上方[计算机视觉联盟]关注我们 来源:阿里妈妈 编辑:金金,大明 来自新智元 阿里妈妈开源大规模分布式图表征学习框架Euler,面向工业级用户和高级研究者,结合TF/XDL/PyTorch等深 ...

  7. 【论文分享】图嵌入恶意域名检测算法:Malicious Domain Detection via Domain Relationship and Graph Models

    题目:Malicious Domain Detection via Domain Relationship and Graph Models 链接:https://ieeexplore.ieee.or ...

  8. 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler...

    雷锋网 AI 科技评论消息,继去年 11 月开源面向高维稀疏数据场景的深度优化工具 X-Deep Learning(截至发稿,GitHub Star 数已达到 1972)之后,阿里妈妈团队于今日正式开 ...

  9. 图嵌入 (Graph Embedding)

    图嵌入 Random Walk Matrix Fractorization Meta Paths Deep Learning Others 开放资源 开源实现 论文列表和评测 图(Graph / Ne ...

最新文章

  1. android studio同步代码块,Android Studio快捷键大全
  2. MSBuild学习总结
  3. 【原创】android——SQLite的cmd命令的基本操作
  4. 大学慕课数据结构单元测试——华中科技大学
  5. TCP通信过程大讨论
  6. flutter上拉抽屉效果 flutter拖动抽屉效果
  7. SQL 年龄段 品牌分类 分组统计
  8. springcahce集成redis 设置过期时间
  9. 批量梯度下降算法BGD
  10. 认知无线电切换算法,基于排队论源码
  11. IEEE1588v2解析(7)gPTP协议和PTP的关系
  12. 无线局域网安全(三)————CCMP加密
  13. 进入pe系统 原系统启动服务器,pe和启动系统安装系统教程
  14. 带有同步更新新浪微博功能的个人日记应用
  15. 计算机专业英语教程比较实用,计算机专业英语教程Unit1整理
  16. GPRS学习(1)----网络结构及主要网元功能
  17. Threejs实现卫星太阳板折叠动画,信号发射,姿态调整
  18. 微信跳一跳作弊python脚本,非常简单
  19. 合创视觉UI设计会用到哪些软件?UI设计要学什么软件?
  20. HTML5网页在线代码编辑器源码 适用各类项目代码在线编辑

热门文章

  1. HMM与条件随机场区别 转
  2. String对象不可修改指的是对象本身不可修改,而不是引用不可修改。
  3. JAVA坏境变量中的JAVA_HOME path classpath 的设置与作用。
  4. 遥遥无期还是近在咫尺?长文展望「大模型」商业化前景
  5. IJCAI 2020开幕,杰出论文奖、卓越研究奖、约翰·麦卡锡奖等8项大奖公布 | AI日报...
  6. 你可能不知道的Shell
  7. Python2.x与3​​.x版本区别
  8. TensorFLow能够识别的图像文件,可以通过numpy
  9. 深度学习1:生成模型的输入数据集和可视化
  10. 8个可以提高数据科学工作效率、节省宝贵时间的Python库