Добавление истории пользователя в систему рекомендаций
Во многих сценариях рекомендаций — например, при подборе фильмов или товаров — опираться лишь на одну точку данных недостаточно. В таких случаях для получения более точных и релевантных рекомендаций необходимо учитывать всю историю взаимодействий пользователя или её часть.
В этом упражнении вы расширите систему рекомендации товаров: теперь она будет учитывать все продукты, которые пользователь просматривал ранее. Эти данные хранятся в списке словарей user_history.
Вам доступны следующие пользовательские функции: create_embeddings(texts), create_product_text(product) и find_n_closest(query_vector, embeddings, n=3). Библиотека numpy уже импортирована как np.
Это упражнение является частью курса
Введение в эмбеддинги с OpenAI API
Инструкции к упражнению
- Объедините текстовые признаки для каждого товара из
user_history, создайте эмбеддинги полученных строк и вычислите средний эмбеддинг с помощьюnumpy. - Отфильтруйте
products, исключив товары, которые уже присутствуют вuser_history. - Объедините признаки для каждого товара из
products_filteredи создайте эмбеддинги полученных строк.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Prepare and embed the user_history, and calculate the mean embeddings
history_texts = [____ for article in user_history]
history_embeddings = ____
mean_history_embeddings = ____
# Filter products to remove any in user_history
products_filtered = ____
# Combine product features and embed the resulting texts
product_texts = ____
product_embeddings = ____
hits = find_n_closest(mean_history_embeddings, product_embeddings)
for hit in hits:
product = products_filtered[hit['index']]
print(product['title'])