Как получить рекомендованных пользователей для товара с системой рекомендации матричной факторизации? - PullRequest
1 голос
/ 05 февраля 2020

Любое учебное пособие или руководство, которое я видел, предназначено для рекомендации элементов пользователю, но как я могу рекомендовать пользователей для элемента?

В настоящее время я использую модель чередующихся наименьших квадратов библиотеки implicit .

Я обучил модель, и у моего предмета и скрытых векторов пользователя:

# get sparse item user matrix
sparse_item_user = sparse.csr_matrix((data['median spend'].astype(float), (data['product_id'], data['user_id'])))


# get sparse user item matrix for recommending
sparse_user_item = sparse.csr_matrix((data['median spend'].astype(float), (data['user_id'], data['product_id'])))


# fit model
model_als.fit(sparse_item_user)


# get user and item latent factors
user_factors = model_als.user_factors
item_factors = model_als.item_factors


# recommend items to a user
model_als.recommend(user_id, sparse_user_item)

Как я могу получить обратное, то есть рекомендовать пользователей для определенного предмета? Идея состоит в том, чтобы получить список контактов для отправки маркетингового электронного письма для определенного продукта, например, бананов.

Могу ли я просто умножить скрытые факторы обратно и проверить ряд бананов?

user_item_matrix_recombined = np.dot(model_als.user_factors,model_als.item_factors.T)

user_item_matrix_recombined[:,Banana_index]

Это может быть вычислительно дорого, чтобы сначала вычислить всю матрицу, есть ли другой способ? В неявной библиотеке нет методов для этого.

...