Uwzględnianie historii użytkownika w silniku rekomendacji
W wielu scenariuszach rekomendacji – takich jak polecanie filmów czy produktów – oparcie się na jednym punkcie danych będzie niewystarczające. W takich przypadkach trzeba osadzić całą historię użytkownika lub jej część, aby uzyskać trafniejsze rekomendacje.
W tym ćwiczeniu rozbudujesz system rekomendacji produktów tak, aby uwzględniał wszystkie produkty wcześniej odwiedzone przez użytkownika. Są one przechowywane na liście słowników o nazwie user_history.
Do dyspozycji masz następujące funkcje niestandardowe: create_embeddings(texts), create_product_text(product) oraz find_n_closest(query_vector, embeddings, n=3). Biblioteka numpy została zaimportowana jako np.
To ćwiczenie jest częścią kursu
Wprowadzenie do osadzeń z OpenAI API
Instrukcje do ćwiczenia
- Połącz cechy tekstowe każdego produktu z
user_history, osadź powstałe ciągi tekstowe i oblicz średnie osadzenia (embeddings) za pomocą bibliotekinumpy. - Odfiltruj z
productsprodukty, które znajdują się wuser_history. - Połącz cechy każdego produktu z
products_filteredi osadź powstałe ciągi tekstowe.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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'])