Amazon Web Services ブログ
コンテキスト情報とサードパーティデータを活用したレコメンデーションの改善
自分の購買行動が天候に影響されることに気付いたことはありますか?たとえば、暑い日にはホットコーヒーよりもレモネードを飲みたくなるのではないでしょうか。
消費財企業や流通小売企業のお客様は、どうすれば気温や雨などの気象条件をもとに消費者によりよい商品提案を提供することができるか、について深く理解したいと考えてきました。 一年以上のデータが取得されています。暑い日には清涼飲料の需要が増えるといったこれまでの観測に基づいて、気象情報を組み合わせることで Amazon Personalize モデルを高度にしたいと考えているでしょう。
2019 年 12 月、AWS は Amazon Personalize でのコンテキスト推奨のサポートを発表しました。この機能を使用すれば、モデルトレーニング時に相互作用でコンテキスト情報を含めることができ、まだユーザー向けのレコメンデーションを生成するときにもコンテキストを含めることができます。リアルタイムなコンテキストレコメンデーションを実装する方法については、Increasing the relevance of your Amazon Personalize recommendations by leveraging contextual information (コンテキスト情報を活用して、Amazon Personalize によるレコメンデーションの相関性を高める)を参照してください。
このブログでは、AWS Data Exchange でパートナーから提供されるデータを使用して、レコメンデーション生成時にコンテキストを含めるための実践的なアプローチを共有します。AWS Data Exchange は、サードパーティのデータをクラウドで簡単に検索、購読、使用するためのサービスです。
ソリューション概要
この例では、Weather Trends International 社が提供する気温と降水量のデータセットのサブセットを使います。ボトラー会社の飲料カタログを表す架空のデータセットと、 Retail Demo Store のユーザーデモデータセットとを、組み合わせて使います。 Retail Demo Store は、アプリケーション兼、ワークショッププラットフォームで、AWS サービスを使用して e コマースで魅力的なカスタマーエクスペリエンスを構築する方法をデモンストレーションするための教育用ツールの側面もあります。
3 つのデータセットすべてを使用して、Direct-to-consumer (DTC) 向け e コマースサイトを模したサンプル購買データと、気候がさまざまな消費者へのレコメンデーションにどのように影響するかを表す Amazon Personalize モデルを作成します。
データ準備
まず、Amazon Personalize で使用するデータを準備します。 各データセットを見てみましょう。
interactions.csv
購買データセットには、ユーザーと商品の購買履歴データとリアルタイムデータが保存されます。少なくとも、購買ごとに、ユーザー ID、商品 ID および、タイムスタンプ(Unix エポック時間形式)を指定する必要があります。購買データをさらに説明するためにメタデータフィールドを含めることもできます。たとえば、イベントタイプ、使用するデバイスタイプや毎日の気温など、その他の関連するコンテキスト情報を含めることができます。
購買データセットを作成するために、Retail Demo Storeか取得したアップサンプリングプロセスにわずかに変更を加えています。まずはユーザーと商品との架空の購買イベントを作成し、その日の平均気温を購買データセットのカテゴリ属性として追加します。 気温の範囲は以下のようにします:
- 5 ℃ 以下 =
very cold
- 5-10 ℃ =
cold
- 10-15 ℃ =
slightly cold
- 15–21 ℃ =
lukewarm
- 21–28 ℃ =
hot
- 28℃ 以上=
very hot
アップサンプリングプロセスでは、ユーザーのペルソナフィールドを考慮して、購買履歴を生成します。 ペルソナsparkling_waters_other
のユーザーは、これらのカテゴリの製品を表示、追加、および購入することができます。
温度データが強化された相互作用データセットは、次のスクリーンショットのようになります。
コンテキストとは、時間の経過とともに急速に変化し、消費者の認識や行動に影響を与える可能性のある環境情報です。推論時のコンテキスト情報として、購買データセットのオプションのカテゴリ属性である DAILY_TEMPERATURE
を使用します。
次に、2020 年 3 月 25 日からの 3 か月間に生成された購買データから気温の分布を見てみましょう。
上図から購買データセットに hot
の日や cold
の日が少ないことがわかります。モデルがこれらの日に消費者が取る行動について学習し、推論時にも使うシグナルになる可能性があります。レコメンデーションを行うにあたり Amazon Personalize に気象コンテキストを与え、このコンテキスト情報によってレコメンデーションがどのように影響を受けるのかを調査することができます。
items.csv
この架空のデータセットは、とある消費財企業の製品カタログをシミュレートしたものです。
アイテムデータセットには、製品に関するメタデータが格納されています。このデータセットは、Amazon Personalize 利用にあたってはオプションです。しかし今回のユースケースでは、レコメンデーションの挙動をテストするために category
と size
の属性を含める必要があります。
users.csv
このデータセットは、Retail Demo Store プロジェクトから取得した、架空のデータセットのサブセットです。
ユーザーデータセットには、ユーザーに関するメタデータが格納されています。年齢、性別、名前などの情報を含まれるでしょう。このデータセットも Amazon Personalize 利用にはオプションです。
このブログでは、id
と persona
の列をモデルに含める必要があります。persona
は、消費者の好む製品のカテゴリを表すカテゴリメタデータフィールドであり、レコメンデーションの挙動をテストするために使用します。
weather_data.csv
Weather Trends International 社が提供する実際の気象データセットを使用して、購買データセットを気候データで充実させます。
簡素化のため Santiago de Chile(location_id = ‘ST650’
)の行のみを使うことにします。
Amazon Personalize コンポーネントの作成
データセットを取り込む準備ができれば、Amazon Personalize デプロイメントの作成を開始できます。読者が自分のアカウントで操作する場合は、サンプルノートブックを使って以下の手順を実行してください:
- 購買履歴、ユーザー、アイテムのメタデータのデータセットを含むデータセットグループを作成します。
- 履歴データを各データセットにインポートします。
- コンテキストアウェアアルゴリズム(aws-user-personalization)を使用してソリューションを構成し、ソリューションバージョンをトレーニングします。
- ソリューションバージョンのメトリクスを評価します。
- キャンペーン(マネージドレコメンデーションエンドポイント)を作成します。
- パーソナライズされたレコメンデーションを確認します。
Amazon Personalize レコメンデーションの評価
ここまでで作成したキャンペーンの提供するレコメンデーションを評価することができます。そのためにランダムに ID 170 のユーザーを選び、コンテキストとして毎日の気温がある場合とない場合で、レコメンデーションされる上位 5 つの飲料製品を確認します。
次のスクリーンショットは、コンテキスト情報のない場合の上位 5 つを示しています。
また次のスクリーンショットは、DAILY_TEMPERATURE = “cold”
である場合の上位 5 つを示しています。
このユーザーのペルソナは other_waters_sparkling
ですので、このカテゴリの飲料を好むことがわかっています。Amazon Personalize のレコメンデーションする製品は、コンテキストの有無に関わらずペルソナの嗜好と一致しています。一方、寒い日のレコメンデーションではそのランキングが変わります:
- ランキングの上位 3 つのカテゴリは変わらない
- お茶商品(ITEM_ID 33) のランキングは 1 位から 3 位に低下
- 清涼飲料(ITEM_ID 52) のココナッツウォーターは、より大きなサイズの同飲料、商品(ITEM_ID 15) で置き換わった
こうした変更は、データセットで提供される消費者の行動によって引き起こされています。たとえば、ユーザー 170 は、さまざまなブランドのホットティーとアイスティーを好み、レコメンデーションランキングが寒い日のその好みを反映している可能性があります。
コンテキストは、過去に購買履歴のない新規ユーザーの対応時に特に有効です。次の表は、コンテキストなしで、新規ユーザー(ID 7000) への主なレコメンデーションを示しています。
一方以下は、DAILY_TEMPERATURE = “hot”
のコンテキストを指定して、同ユーザーに対するレコメンデーションを示したものです。
寒い日にレコメンデーションを行うと、レコメンデーションする製品は同じでも、暑い日のコンテキストを与えるか、コンテキストを提供しないかでランキングが変わります。 匿名購買機能を備えた e コマースにおいて、視覚化する製品に優先順位を付けたり、現在のコンテキストを考慮して新規ユーザーに人気アイテムを提案したりする場合には、この機能が特に有用です。
まとめ
「How Context Affects Choice(コンテキストがいかに選択に影響を与えるか)」の調査で述べられているように、コンテキストは、意思決定のプロセスに影響を与えることにより、消費者の行動に影響を与えます。気温、降水量、デバイスタイプ、インタラクションのチャネルといったデータは、モデルを豊かなものにし、Amazon Personalize の生成するレコメンデーションの相関性を向上させることができます。より相関性の高いレコメンデーションをすることは、より高度なユーザーエクスペリエンスとよりよいビジネス成果につながります。
このブログの情報が有用なのか、実際にどのように機能するか試す場合は、独自にコンテキストデータを収集するか、AWS Data Exchangeでデータセットを購入すれば、このブログのアプローチを適用してユースケースを本番環境に移行することができます。 ぜひ自由に創造的なアイデアを探してみてください。
独自データを使ってこのユースケースを再現する場合は、Daily Historical Weather Dataset – Demo は一ヶ月間無料で利用できます。このブログで紹介したソースコードは GitHub で入手できます。
Amazon Personalize に関するその他のリソースは、Amazon Personalize GitHubリポジトリにあります。
著者について
Angel Goñi
Angel Goñi は AWS のエンタープライズソリューションアーキテクトで、エンタープライズのお客様が AWS サービスを活用してデジタルトランスフォーメーションプロセスを推進する支援をしています。消費財業界のお客様の SAP の AWS 移行をお手伝いしています。
翻訳は Solutions Architect 杉中が担当しました。原文はこちらです。