Facebook:BigGraph 中文文档-动态关系(PyTorch)

目录

图嵌入是一种从图中生成无监督节点特征(node features)的方法,生成的特征可以应用在各类机器学习任务上。现代的图网络,尤其是在工业应用中,通常会包含数十亿的节点(node)和数万亿的边(edge)。这已经超出了已知嵌入系统的处理能力。Facebook开源了一种嵌入系统,PyTorch-BigGraph(PBG),系统对传统的多关系嵌入系统做了几处修改让系统能扩展到能处理数十亿节点和数万亿条边的图形。

本系列为翻译的pytouch的官方手册,希望能帮助大家快速入门GNN及其使用,全文十五篇,文中如果有勘误请随时联系。

(一)Facebook开源图神经网络-Pytorch Biggraph

(二)Facebook:BigGraph 中文文档-数据模型(PyTorch)

(三)Facebook:BigGraph 中文文档-从实体嵌入到边分值(PyTorch)

(四)Facebook:BigGraph 中文文档-I/O格式化(PyTorch)

(五)Facebook:BigGraph 中文文档-批预处理

(六)Facebook:BigGraph 中文文档-分布式模式(PyTorch)

(七)Facebook:BigGraph 中文文档-损失计算(PyTorch)

(八)Facebook:BigGraph 中文文档-评估(PyTorch)

(九)Facebook:BigGraph 中文文档-动态关系(PyTorch)


Dynamic relations 动态关系

Caution 注意

This is an advanced topic! 这是升级教程!

Enabling the dynamic_relations flag in the configuration activates an alternative mode to be used for graphs with a large number of relations (more than ~100 relations). In dynamic relation mode, PBG runs with several modifications to its “standard” operation in order to support the large number of relations. 

在配置中启动dynamic_relations配置将激活另一种模式,用于具有大量关系(超过~100)的图。在动态关系模式下,PBG运行时对其“标准”操作进行了一些修改用于支持大量的关系。

The differences are:

相比不同有:

The number of relations isn’t provided in the config but is instead found in the input data, namely in the entity path, inside a dynamic_rel_count.txt file. The settings of the relations, however, are still provided in the config file. This happens by providing a single relation config which will act as a “template” for all other ones, by being duplicated an appropriate number of times. One can think of this as the one relation in the config being “broadcasted” to the size of the relation list found in the dynamic_rel_count.txt file.

配置中不需要提供number数量,替代的是在输入数据的整个实体路径中来查找,即dynamic_rel_count.txt文件,但关系的设置,仍然需要在配置文件中配置。这是通过提供一个单独的关系配置来实现的,该配置将充当当所有其他关系的“模板”,并且被复制合适的次数。我们将其看做是配置中的一个关系被“广播”到dynamic_rel_count.txt文件中的关系列表的大小。

The batches of positive edges that are passed from the training loop into the model contain edges for multiple relation types at the same time (instead of each batch coming entirely from the same relation type). This introduces some performance challenges in how the operators are applied to the embeddings, as instead of a single operator with a single set of parameters applied to all edges, there might be a different one for each edge. The previous property ensures that all the operators are of the same type, so just their parameters might differ from one row to another. To account for this, the operators for dynamic relations are implemented differently, with a single operator object containing the parameters for all relation types. This implementation detail should be transparent as for how the operators are applied to the embeddings, but might come up when retrieving the parameters at the end of training.

在训练循环中包含正边的批次,传入模型中同时包含多个关系类型的边(不是每个批次完全来自同一关系类型)。这让如何将运算符应用于嵌入上带来了一些性能挑战,因为对于每个边,可能会有一个不同的运算符,而不是对所有边应用一组参数的单个运算符。previous属性确保所有运算符都是同一类型的,因此这些参数可能会不同的行不一样。为了匹配,动态关系的运算符以不同方式实现,单个运算符对象包含所有关系类型的参数。对于如何向运算符应用到嵌入中,整个实现细节应该是透明的,但在训练结束时检索参数是可能会出现。

With non-dynamic relations, the operator is applied to the embedding of the right-hand side entity of the edge, whereas the embedding of the left-hand side entity is left unchanged. In a given batch, denote the 𝑖i-th positive edge by (𝑥𝑖,𝑟,𝑦𝑖) (𝑥𝑖 and 𝑦𝑖yi being the left- and right-hand side entities, 𝑟 being the relation type). For each of the positive edges, denote its 𝑗-th negative sample (𝑥𝑖,𝑟,𝑦′𝑖,𝑗). Due to same-batch negative sampling it may occur that the same right-hand side entity is used as a negative for several positives, that is, that 𝑦′𝑖1,𝑗1=𝑦′𝑖2,𝑗2 . for 𝑖1≠𝑖2. However, since it’s the same relation type 𝑟rfor all negatives, all the right-hand side entities will be transformed in the same way (i.e., passed through 𝑟’s operator) no matter what positive edge they are a negative for. we need to apply the operator of 𝑟r to all of them, hence the total number of operator evaluations is equal to the number of positives and negatives.

对于非动态关系,算子应用在右侧实体的嵌入上,同事左侧试题的嵌入保持不变。在给定的批次中,用(𝑥𝑖,𝑟,𝑦𝑖)来表示第i个正边(xi和yi为左侧和右侧的实体,r是关系类型)。对每一个正边,用(𝑥𝑖,𝑟,𝑦′𝑖,𝑗)来表示对应的第j个负样本。由于同一批负采样可能会出现同一个右侧实体被抽样为复变,如:𝑦′𝑖1,𝑗1=𝑦′𝑖2,𝑗2  并且 i1≠𝑖2. 

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容