recbole.data.dataloader.knowledge_dataloader

class recbole.data.dataloader.knowledge_dataloader.KGDataLoader(config, dataset, sampler, shuffle=False)[source]

Bases: recbole.data.dataloader.abstract_dataloader.AbstractDataLoader

KGDataLoader is a dataloader which would return the triplets with negative examples in a knowledge graph.

Parameters
  • config (Config) – The config of dataloader.

  • dataset (Dataset) – The dataset of dataloader.

  • sampler (KGSampler) – The knowledge graph sampler of dataloader.

  • shuffle (bool, optional) – Whether the dataloader will be shuffle after a round. Defaults to False.

shuffle

Whether the dataloader will be shuffle after a round. However, in KGDataLoader, it’s guaranteed to be True.

Type

bool

batch_size: Optional[int]
collate_fn(index)[source]

Collect the sampled index, and apply neg_sampling or other methods to get the final data.

dataset: torch.utils.data.dataset.Dataset[torch.utils.data.dataloader.T_co]
drop_last: bool
num_workers: int
pin_memory: bool
pin_memory_device: str
prefetch_factor: int
sampler: Union[torch.utils.data.sampler.Sampler, Iterable]
timeout: float
class recbole.data.dataloader.knowledge_dataloader.KnowledgeBasedDataLoader(config, dataset, sampler, kg_sampler, shuffle=False)[source]

Bases: object

KnowledgeBasedDataLoader is used for knowledge based model. It has three states, which is saved in state. In different states, _next_batch_data() will return different Interaction. Detailed, please see state.

Parameters
  • config (Config) – The config of dataloader.

  • dataset (Dataset) – The dataset of dataloader.

  • sampler (Sampler) – The sampler of dataloader.

  • kg_sampler (KGSampler) – The knowledge graph sampler of dataloader.

  • shuffle (bool, optional) – Whether the dataloader will be shuffle after a round. Defaults to False.

state
This dataloader has three states:

In the first state, this dataloader would only return the triplets with negative examples in a knowledge graph. In the second state, this dataloader would only return the user-item interaction. In the last state, this dataloader would return both knowledge graph information and user-item interaction information.

Type

KGDataLoaderState

get_model(model)[source]

Let the general_dataloader get the model, used for dynamic sampling.

knowledge_shuffle(epoch_seed)[source]

Reset the seed to ensure that each subprocess generates the same index squence.

set_mode(state)[source]
Set the mode of KnowledgeBasedDataLoader, it can be set to three states:
  • KGDataLoaderState.RS

  • KGDataLoaderState.KG

  • KGDataLoaderState.RSKG

The state of KnowledgeBasedDataLoader would affect the result of _next_batch_data().

Parameters

state (KGDataLoaderState) – the state of KnowledgeBasedDataLoader.

update_config(config)[source]