PyTorch-BigGraph系列:数据模型

PBG(Pytorch-BigGraph)对有向的多关系多图进行操作,其顶点叫做实体。每一条边原实体与目的实体相连接(源实体和目标实体分别叫做左手边和右手边,简记为LHS和RHS)。同一对实体允许右多条边。即左手边和右手边的边是相同的也是允许的。

每个实体具有特定的实体类型(每一个实体有且仅有一个实体类型)。因此,这些类型会把所有实体分成不相交的组。相似地,每一条边也属于一个关系类型。给定关系类型的所有边必须具有相同实体类型的左手边实体和相同类型的右手边实体类型(与右手边实体类型不相同的实体类型)。该属性意味着每一个关系类型有一个左手边实体类型和一个右手边实体类型。

该图中,有14个实体,5个红色实体类型,6个黄色实体类型和3个蓝色实体类型;有12条边,6个橘黄色关系类型(在红色和黄色实体之间),3个紫色实体类型(在红色和蓝色实体之间)以及3个绿色实体类型(在黄色和蓝色实体之间)。

为了使PBG能够对大规模图进行操作,给图会被分成几个小的片段,在每一个小片段上以分布式方式进行训练。通过将每个类型的实体拆分成一定数量的子集,这属首次。拆分的过程叫做分区。然后,对每一个关系类型,其边被划分成桶:对每对分区(对每一个关系类型,一个关系类型来自右手边,另一个关系类型来自右手边),创建一个桶,其包含左手边和右手边实体都在这些分区的类型边。

该图展示了一个可能的实体分区,红色有三个分区,黄色有3个分区,蓝色只有1个分区(因此蓝色是未分区的)。显示的边是是那些在红色实体的分区2黄色的桶和黄色实体的分区1之间的橘色桶。
注意:
由于技术的原因,在当前状态下,出现在某个关系类型左侧的所有实体类型必须划分为相同数量的分区(除了未分区实体)。
对于出现在右侧的所有实体类型也必须如此。在数字术语中,它意味着所有实体的分区数量必须能够广播到相同的值。

所有的实体由类型所标识——分区以及其在该分区内的索引(索引必须是连续的,意味着如果在类型分区中存在 N N N个实体,其索引在半开区间 [ 0 , N ) [0, N) [0,N))。一条边由其类型所标识——桶(即,左手边和右手边实体类型的分区)以及左手边和右手边各自分区类的索引。一条边没有必须指定其左手边和右手边实体,因为其隐含在变得关系类型中了。

正式地,每一个桶都可以一对整数 ( i , j ) (i, j) (i,j)所识别,其中 i i i j j j分别是左手边和右手边的分区。在桶中,每一条边都由一个整数三元组 ( x , r , y ) (x, r, y) (x,r,y)所识别, x x x y y y分别表示左手边和右手边实体,而 r r r表示关系类型。这条边是通过首先在配置中查找关系类型 r r r而被“解释”的,并且指出其只有左手边的实体类型 e 1 e_1 e1和右手边的实体类型 e 2 e_2 e2。然后可以确定左手边的实体,由 ( e 1 , i , x ) (e_1, i, x) (e1,i,x)给出(其类型,分以及分区类的索引),相似地,左手边的实体由 ( e 2 , j , y ) (e_2, j, y) (e2,j,y)给出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值