レコメンドエンジンにユーザー履歴を加える
映画や購入のレコメンドのように、多くのケースでは1つのデータポイントだけで次のレコメンドを決めるのは不十分です。こうした場合は、より正確で関連性の高いレコメンドのために、ユーザーの履歴データのすべて、または一部を埋め込みにする必要があります。
この演習では、これまでにユーザーが閲覧したすべての商品を考慮するように、商品レコメンドシステムを拡張します。これらは user_history という辞書のリストに保存されています。
次のカスタム関数を使用できます: create_embeddings(texts)、create_product_text(product)、find_n_closest(query_vector, embeddings, n=3)。また、numpy は np としてインポート済みです。
この演習はコースの一部です
OpenAI API ではじめる Embeddings 入門
演習の手順
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'])