PBG(Pytorch-BigGraph)對有向的多關係多圖進行操作,其頂點叫做實體。每一條邊原實體與目的實體相連接(源實體和目標實體分別叫做左手邊和右手邊,簡記爲LHS和RHS)。同一對實體允許右多條邊。即左手邊和右手邊的邊是相同的也是允許的。
每個實體具有特定的實體類型(每一個實體有且僅有一個實體類型)。因此,這些類型會把所有實體分成不相交的組。相似地,每一條邊也屬於一個關係類型。給定關係類型的所有邊必須具有相同實體類型的左手邊實體和相同類型的右手邊實體類型(與右手邊實體類型不相同的實體類型)。該屬性意味着每一個關係類型有一個左手邊實體類型和一個右手邊實體類型。
爲了使PBG能夠對大規模圖進行操作,給圖會被分成幾個小的片段,在每一個小片段上以分佈式方式進行訓練。通過將每個類型的實體拆分成一定數量的子集,這屬首次。拆分的過程叫做分區。然後,對每一個關係類型,其邊被劃分成桶:對每對分區(對每一個關係類型,一個關係類型來自右手邊,另一個關係類型來自右手邊),創建一個桶,其包含左手邊和右手邊實體都在這些分區的類型邊。
注意:
由於技術的原因,在當前狀態下,出現在某個關係類型左側的所有實體類型必須劃分爲相同數量的分區(除了未分區實體)。
對於出現在右側的所有實體類型也必須如此。在數字術語中,它意味着所有實體的分區數量必須能夠廣播到相同的值。
所有的實體由類型所標識——分區以及其在該分區內的索引(索引必須是連續的,意味着如果在類型分區中存在個實體,其索引在半開區間)。一條邊由其類型所標識——桶(即,左手邊和右手邊實體類型的分區)以及左手邊和右手邊各自分區類的索引。一條邊沒有必須指定其左手邊和右手邊實體,因爲其隱含在變得關係類型中了。
正式地,每一個桶都可以一對整數所識別,其中和分別是左手邊和右手邊的分區。在桶中,每一條邊都由一個整數三元組所識別,和分別表示左手邊和右手邊實體,而表示關係類型。這條邊是通過首先在配置中查找關係類型而被“解釋”的,並且指出其只有左手邊的實體類型和右手邊的實體類型。然後可以確定左手邊的實體,由給出(其類型,分以及分區類的索引),相似地,左手邊的實體由給出。