レコメンデーションエンジンへのユーザー履歴の追加
映画や購買履歴のレコメンデーションなど、多くのケースにおいて、1つのデータポイントだけを基準にしたレコメンデーションでは不十分です。このような場合、より精度の高く関連性の高いレコメンデーションを実現するためには、ユーザーの履歴のすべてまたは一部を埋め込む必要があります。
この演習では、ユーザーがこれまでに閲覧したすべての商品(user_history という辞書のリストに格納済み)を考慮できるよう、商品レコメンデーションシステムを拡張します。
以下のカスタム関数が利用可能です:create_embeddings(texts)、create_product_text(product)、find_n_closest(query_vector, embeddings, n=3)。また、numpy は np としてインポート済みです。
この演習はコースの一部です
OpenAI API で学ぶ埋め込み入門
演習の手順
user_history内の各商品のテキスト情報を結合し、得られた文字列を埋め込んだうえで、numpyを使って平均埋め込みを計算します。user_historyに含まれる商品をproductsから除外します。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'])