Coverage for hopwise/model/general_recommender/random.py: 90%
21 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-09-30 13:25 +0000
« prev ^ index » next coverage.py v7.16.2, created at 2026-09-30 13:25 +0000
1# @Time : 2023/03/01
2# @Author : João Felipe Guedes
3# @Email : guedes.joaofelipe@poli.ufrj.br
4# UPDATE
6r"""Random
7################################################
9"""
11import torch
13from hopwise.model.abstract_recommender import GeneralRecommender
14from hopwise.utils import InputType, ModelType
17class Random(GeneralRecommender):
18 """Random is an fundamental model that recommends random items."""
20 input_type = InputType.POINTWISE
21 type = ModelType.TRADITIONAL
23 def __init__(self, config, dataset):
24 super().__init__(config, dataset)
25 torch.manual_seed(config["seed"] + self.n_users + self.n_items)
26 self.fake_loss = torch.nn.Parameter(torch.zeros(1))
28 def forward(self):
29 pass
31 def calculate_loss(self, interaction):
32 return torch.nn.Parameter(torch.zeros(1))
34 def predict(self, interaction):
35 return torch.rand(len(interaction), device=self.device).squeeze(-1)
37 def full_sort_predict(self, interaction):
38 batch_user_num = interaction[self.USER_ID].shape[0]
39 result = torch.rand(self.n_items, 1).to(torch.float64)
40 result = torch.repeat_interleave(result.unsqueeze(0), batch_user_num, dim=0)
41 return result.view(-1)