ユーザーの好みを探るレコメンデーション・システムの仕組み

Hadoopとインメモリ・アナリティクスによる強力なレコメンデーションの作成

著者:ウェイン・トンプソン(SAS、データ・サイエンス・テクノロジー・マネジャー)

Amazon、Pandora、Netflixでオンライン・ショッピングをしたことのある読者は、レコメンデーション・システムを実際に体験したことがあるでしょう。この高度なシステムは、過去の購買行動を分析し、ショッピング中にリアルタイムで推薦する商品が表示されます。

この仕組みは、顧客とマーケターのどちらにもメリットがあります。顧客にとっては、追加で購入したい商品やサービスがパーソナライズされて提示されるため、利便性が高くなります。マーケターは顧客関係と顧客維持を積極的に向上させて、売り上げを5~20%増やすことができます。

個人やグループに最適なレコメンデーションを提供するためには、従来の速度の壁を超えて迅速に答えを出すアナリティクスが必要です。

レコメンデーション・システムには複数のアプローチがあります。その中心的なモデルは以下のとおりです。

  • コンテンツベース・フィルタリング:顧客が過去に閲覧または購入した商品に基づいて、それらの商品の説明とともに推薦する商品を提示します。
  • 協調フィルタリング:類似の顧客が過去に気に入って購入した商品を提示します。

レコメンデーション・システムは、使用するフィードバックが直接的か、もしくは間接的かによってさらに細かく分類されます。

  • 明示的:顧客のランク付けまたはタグに基づきます(レストランの5つ星による格付けに似ています)。
  • 暗黙的:過去において、同時に購入されることの多かった商品を提示します。

レコメンデーション・システムを導入する業種や目的は、さまざまです。スーパーマーケットで支払い時に渡されるクーポンは、その顧客の過去の購入履歴に基づいてパーソナライズされています。オンライン・ショップやエンターテイメント業界では、顧客の現在表示または視聴している商品に基づいて、レコメンデーションや広告をリアルタイムに表示します。LinkedInやFacebookなどのソーシャル・ネットワークは、ユーザーの既存のネットワークに基づいて追加の交流や友達が提示されます。

レコメンデーション・システムの仕組み

個人やグループに最適なレコメンデーションを提供するためには、従来の速度の壁を超えて迅速に答えを出すアナリティクスが必要です。顧客とチャンスを逃さないためには、大量のデータをリアルタイムで分析しなければなりません。

このような理由から、多くの組織がHadoopに移行し、レコメンデーション・エンジンを構築しています。オープンソースのHadoopソフトウェア・フレームワークを使用すると、一般的なハードウェアの大規模なクラスタでアプリケーションを実行できます。Hadoopの強力な処理能力により、タスクとジョブを実質的に無制限で並行処理できるため、従来の企業のデータ・インフラストラクチャを驚くほど低コストで強化できます。

昔ながらの「人海戦術」をハイテク化したそのアプローチでは、データは分散したサーバクラスタのローカルディスクに保存されます。それぞれのサーバは、大量のデータに駆り立てられるように、驚異的な速さで処理を進めます。

典型的なシナリオは、複数のデータノードと1つのヘッドノードのHadoopに大量の顧客データが保存するものです。Hadoopクラスタのメモリにデータがロードされると、インメモリ・アナリティクス・ソフトウェアが処理を引き継ぎ、システムは分割管理されます。複数のデータノードで並行してレコメンデーション・モデルが計算され、ユーザーに最適な商品の組み合わせが意思決定のためにクラスタのエッジにあるヘッドノードに返されます。

あるオンライン・ショップが100万人のユーザー、50万冊の本、500万の本の評価のデータに基づいてレコメンドする場合を考えてみましょう。データセットのサイズを考えると、大量の計算を処理するために、従来の分析ソフトウェアなら数時間または数日かかるでしょう。分散型処理とインメモリ・アナリティクスを導入すれば、数分での処理が可能になり、顧客がそのサイトでショッピングしている間に正確なレコメンデーションを提供できます。

最適なアルゴリズムの選択

前述のように、適切なレコメンデーションに到達するためのアプローチは複数ありますが、同様に、レコメンデーション・モデルで使用するアルゴリズムにも複数の選択肢があります。以下に例を挙げます。

  • k近傍法。商品またはユーザー間の関係の評価に基づく協調フィルタリングです。
  • コールドスタート。新しいWebサイトの閲覧者に対して、一般的に顧客に人気のある商品を提示します。
  • 行列因子分解。商品のグループや商品のファミリを示す潜在因子を導き出します。
  • アソシエーション分析。表示したり買い物かごに入れたりした商品に関連する商品を自動的に提示します。
  • クラスタリング。類似のユーザーやアイテムをグループ化して、大量のデータ・マトリクスの分析を効率化します。
  • スロープ・ワン。新しいアイテムとその他のアイテムに対するユーザーの嗜好度(評価)の差異の平均に基づいて新しいアイテムに対する嗜好度を予測します。

状況に合わせて、どのアルゴリズムが最適か試してみてください。異なるアルゴリズムを比較して、特定のビジネス課題に最適なアルゴリズムを決定します。複数の分析手法を組み合わせたモデルが最適である可能性もあります。

Hadoopは、分散型の並行処理により、数10億のデータを複雑なアルゴリズムで処理するにあたっての帯域幅と調整の問題を解決してくれます。インメモリ・アナリティクスではビッグデータを使用して複雑な問題を短時間に解決でき、「学習」を通して時間の経過とともにより正確なリコメンデーションが可能になります。これらのテクノロジーを組み合わせることで、商品評価の有無にかかわらず、顧客のすべてのタッチポイントにリアルタイムでより適切なリコメンデーションを提供できます。

パズルの最後のピース

これまで、レコメンデーション・システムの機能とレコメンデーション・モデルを短期間で構築する方法について説明してきましたが、重要なピースであるレコメンデーション・モデルの導入が欠けていました。イベント・ストリーム・プロセッシング (ESP)をエンジンにすると、リアルタイムで多様なESPのウィンドウにデータを収集し、そのデータをフィルタリングしたり統合したりすることで、最適なレコメンドを実行することができます。こうして、データ収集と事前処理からモデルの作成と導入までのレコメンデーション・システムのエコシステムが完成します。


Wayne Thompson

SASデータ・サイエンス・テクノロジーズのマネジャー、ウェイン・トンプソンは、データ・マイニングと機械学習の分野における経験豊富なイノベーターとして講演や教育活動に取り組み、世界中に知られています。また、世界最大手の企業を支援して、アナリティクスを活用したハイ・パフォーマンスを実現しています。SASでは20年に渡って数多くの画期的なアナリティクス・テクノロジーを市場に提供し、高い評価を得てきました。現在は、Hadoopに最適化されたインメモリ・アナリティクスを中心に、ビジネス・アナリティクス、異常値の検出と定義、エンティティ・アナリティクスおよびレコメンデーション・エンジンのためのセルフサービスのデータ・マイニング・ツールを手がけています。

Back to Top