Error encountered while training Recommendation Engine using ALS technique in Python

Viewed 12

**I am trying to build a recommendation engine using the following three columns - customer_id, Content_title, and Clicks. I am able to train for initial few subscribers (say 1000) and after that, it throws an error **

Code executed

if __name__ == '__main__':
import time
start = time.time()

content_1 = []
scores_1 = []
subs_1 = []
rec1 = []
    
for i in range(0, 10000): #len(subids)-1):
    recommended = model.recommend(subids[i], sparse_user_item[i])
    rec1.append(recommended)
    
    for j in range (0,10):
        subs_1.append(subids[i])
    #scores_1 = zip(scores_1,recommended[1])
    scores_1.append(list(recommended[1]))
    content_1.append(list(recommended[0]))

Error Message

 ---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
Input In [256], in <cell line: 2>()
      9 rec1 = []
     11 for i in range(0, 10000): #len(subids)-1):
---> 12     recommended = model.recommend(subids[i], sparse_user_item[i])
     13     rec1.append(recommended)
     15     for j in range (0,10):

File ~/.local/lib/python3.8/site-packages/implicit/cpu/matrix_factorization_base.py:51, in MatrixFactorizationBase.recommend(self, userid, user_items, N, filter_already_liked_items, filter_items, recalculate_user, items)
     48     if user_items.shape[0] != user_count:
     49         raise ValueError("user_items must contain 1 row for every user in userids")
---> 51 user = self._user_factor(userid, user_items, recalculate_user)
     53 item_factors = self.item_factors
     55 # if we have an item list to restrict down to, we need to filter the item_factors
     56 # and filter_query_items

File ~/.local/lib/python3.8/site-packages/implicit/cpu/matrix_factorization_base.py:135, in MatrixFactorizationBase._user_factor(self, userid, user_items, recalculate_user)
    133 if recalculate_user:
    134     return self.recalculate_user(userid, user_items)
--> 135 return self.user_factors[userid]

IndexError: index 86110 is out of bounds for axis 0 with size 40916
0 Answers
Related