def METHOD_NAME(self):
    data = HeteroData()
    M = self.load_matlab_file(self.raw_paths[0], 'M')
    if self.name == 'flixster':
        user_x = self.load_matlab_file(self.raw_paths[0], 'W_users')
        item_x = self.load_matlab_file(self.raw_paths[0], 'W_movies')
    elif self.name == 'douban':
        user_x = self.load_matlab_file(self.raw_paths[0], 'W_users')
        item_x = torch.eye(M.size(1))
    elif self.name == 'yahoo_music':
        user_x = torch.eye(M.size(0))
        item_x = self.load_matlab_file(self.raw_paths[0], 'W_tracks')
    data['user'].x = user_x
    data['item'].x = item_x
    train_mask = self.load_matlab_file(self.raw_paths[0], 'Otraining')
    train_mask = train_mask.to(torch.bool)
    edge_index = train_mask.nonzero().t()
    rating = M[edge_index[0], edge_index[1]]
    data['user', 'rates', 'item'].edge_index = edge_index
    data['user', 'rates', 'item'].rating = rating
    data['item', 'rated_by', 'user'].edge_index = edge_index.flip([0])
    data['item', 'rated_by', 'user'].rating = rating
    test_mask = self.load_matlab_file(self.raw_paths[0], 'Otest')
    test_mask = test_mask.to(torch.bool)
    edge_label_index = test_mask.nonzero().t()
    edge_label = M[edge_label_index[0], edge_label_index[1]]
    data['user', 'rates', 'item'].edge_label_index = edge_label_index
    data['user', 'rates', 'item'].edge_label = edge_label
    if self.pre_transform is not None:
        data = self.pre_transform(data)
    self.save([data], self.processed_paths[0])