# # read training instances # # user \t item \t posIns1,posIns2,... \t negIns1,negIns2,... # with open(str_train_instance_path, 'r', encoding='utf8') as file_train_instances: for line in file_train_instances: list_training_instance.append(line) # # create matA # if len(tensor_x_uu) != 0: mat_a_uu = LA.linear_combination(val_user_num, val_user_num, tensor_x_uu, vec_theta_uu) mat_a_uu.data[:] = 2 / (1 + exp(-1 * mat_a_uu.data)) - 1 else: mat_a_uu = csr_matrix((val_user_num, val_user_num), dtype=float) if len(tensor_x_ui) != 0: mat_a_ui = LA.linear_combination(val_user_num, val_item_num, tensor_x_ui, vec_theta_ui) mat_a_ui.data[:] = 2 / (1 + exp(-1 * mat_a_ui.data)) - 1 else: mat_a_ui = csr_matrix((val_user_num, val_item_num), dtype=float) if len(tensor_x_ut) != 0: mat_a_ut = LA.linear_combination(val_user_num, val_tag_num, tensor_x_ut, vec_theta_ut) mat_a_ut.data[:] = 2 / (1 + exp(-1 * mat_a_ut.data)) - 1
shape=(valUserNum, valXiNum_I)) vecPI_Xi_U = csr_matrix(np.ones((valItemNum, valXiNum_U)) / valItemNum, shape=(valItemNum, valXiNum_U)) vecPI_Xi_I = csr_matrix(np.ones((valItemNum, valXiNum_I)) / valItemNum, shape=(valItemNum, valXiNum_I)) vecPT_Xi_U = csr_matrix(np.ones((valTagNum, valXiNum_U)) / valTagNum, shape=(valTagNum, valXiNum_U)) vecPT_Xi_I = csr_matrix(np.ones((valTagNum, valXiNum_I)) / valTagNum, shape=(valTagNum, valXiNum_I)) # # create matA # if len(matX_UU) != 0: matA_UU = LA.linear_combination(valUserNum, valUserNum, matX_UU, vecTheta_UU) matA_UU.data[:] = 1 / (1 + exp(-1 * matA_UU.data)) else: matA_UU = csr_matrix((valUserNum, valUserNum), dtype=float) if len(matX_UI) != 0: matA_UI = LA.linear_combination(valUserNum, valItemNum, matX_UI, vecTheta_UI) matA_UI.data[:] = 1 / (1 + exp(-1 * matA_UI.data)) else: matA_UI = csr_matrix((valUserNum, valItemNum), dtype=float) if len(matX_UT) != 0: matA_UT = LA.linear_combination(valUserNum, valTagNum, matX_UT, vecTheta_UT) matA_UT.data[:] = 1 / (1 + exp(-1 * matA_UT.data))
valTagNum = shape(tensor_x_ut[0])[1] # # read training instances # # user \t item \t posIns1,posIns2,... \t negIns1,negIns2,... # f_TestInstances = open(str_test_instance_path, 'r') for line in f_TestInstances: list_test_instance.append(line) # # create matA # if len(tensor_x_uu) != 0: matA_UU = LA.linear_combination(valUserNum, valUserNum, tensor_x_uu, vec_theta_uu) matA_UU.data[:] = 1 / (1 + exp(-1 * matA_UU.data)) else: matA_UU = csr_matrix((valUserNum, valUserNum), dtype=float) if len(tensor_x_ui) != 0: matA_UI = LA.linear_combination(valUserNum, valItemNum, tensor_x_ui, vec_theta_ui) matA_UI.data[:] = 1 / (1 + exp(-1 * matA_UI.data)) else: matA_UI = csr_matrix((valUserNum, valItemNum), dtype=float) if len(tensor_x_ut) != 0: matA_UT = LA.linear_combination(valUserNum, valTagNum, tensor_x_ut, vec_theta_ut) matA_UT.data[:] = 1 / (1 + exp(-1 * matA_UT.data))