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

1# @Time : 2023/03/01 

2# @Author : João Felipe Guedes 

3# @Email : guedes.joaofelipe@poli.ufrj.br 

4# UPDATE 

5 

6r"""Random 

7################################################ 

8 

9""" 

10 

11import torch 

12 

13from hopwise.model.abstract_recommender import GeneralRecommender 

14from hopwise.utils import InputType, ModelType 

15 

16 

17class Random(GeneralRecommender): 

18 """Random is an fundamental model that recommends random items.""" 

19 

20 input_type = InputType.POINTWISE 

21 type = ModelType.TRADITIONAL 

22 

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)) 

27 

28 def forward(self): 

29 pass 

30 

31 def calculate_loss(self, interaction): 

32 return torch.nn.Parameter(torch.zeros(1)) 

33 

34 def predict(self, interaction): 

35 return torch.rand(len(interaction), device=self.device).squeeze(-1) 

36 

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)