レコメンド

レコメンドとは

電子商取引のサイトにおいて最近広く認知されるようになった、「この商品を見た人はこのような商品も買っています」のような類似商品の推薦システムは、ルールベースに基づいたエキスパートシステムの一種とされ、レコメンドエンジンと呼ばれています。

また、レコメンドエンジンは大きく分けて2つのタイプに分かれ、一つは内容に基づいて推薦を行うもの、もう一つが、訪問者の閲覧履歴、購買履歴などから推薦を行うものです。

内容に基づいて推薦を行うものは、訪問者に関する情報を使用しません。代わりに、手元にある情報から関連性のある内容を計算で求めることができます。

例えば、商品の基本情報(商品名、ジャンル)などのほかにも、様々な構成要素からなる情報があり、それぞれの関係から計算される情報を特徴量とよび、これを計算することを特徴量の抽出といいます。

また、複数の情報(データ)に共通して存在する複数の要素がある状態を、共起パターンや共起表現といい、これらの情報を含む複数のソース(記事など)から関連性を計算できるようになります。

例えば、4つの記事に含まれるキーワードの数のうち、共通で使用されているキーワードの割合などを比較すると決めた場合は、それぞれ総当たりで計算することが可能です。

そしてもう一つのタイプですが、こちらは閲覧履歴や、購買履歴などの訪問者固有の情報を利用して、より訪問者に適した推薦を行うために「協調フィルタリング」というアルゴリズムを用いるものです。こちらは訪問者とそれ以外の人の情報の共起性を利用して相関分析を行うことで、個別化された推薦を行います。つまり、似たような行動、評価をしている人と同じく訪問者もこうするだろうという推論に基づいて推薦を行います。

例えば、Aさんに購買履歴のある商品Xについて、他の購買者についての購買履歴に共通する相関係数を計算します。この計算値が、正の相関で1に近いものほど強い関係であることから、その上位を選択し、さらにこの中から、Aさんが購入していない別の商品に関してのおすすめ度合いを計算することで、最終的なお薦め商品が選択されます。


レコメンドに使用するデータについて

次に、レコメンドの情報源について説明します。
ここではWebでの情報に絞っていますが、まずウェブサーバーからレコメンドするためのデータを蓄積していきます。

蓄積するデータは

  • ページ閲覧データ
  • 商品閲覧データ
  • 購入データ
  • プロファイルデータ
  • Webへの流入経路やキーワード
  • コンテンツデータ
  • ユーザのアクション(評価や投票)

等があります。

そして、レコメンドのアルゴリズムより重要なのは、どんなデータを収集して、データ間をどのように紐づけていくかが、システムの優劣を決定するうえでの大きな要素となります。

各データはユーザで紐づいている必要があり、また、訪問者数および商品数が多いサイトの場合は、データの格納方法、集約方法が重要となってきます。どちらかというと大量のデータを効率よく分類・関連付ける方が実装技術としては難易度が高いのです。

データ収集の技術としては

  • データモデル設計技術(データ構造)
  • 大量の(ネットワーク)トラフィックをさばく技術
  • 集計速度を高速化する技術
  • 分類(グルーピング)度を高速化する技術

などが要求されますが、これらをどれだけ正確かつ高速に実装できているかが、後につながるレコメンドアルゴリズムの精度にも影響を与える重要な要素です。

レコメンドはこのように「アルゴリズム」も大事ですが「精度の高いデータ構造」と組み合わさってはじめて最適なシステムとなります。レコメンドを導入するというからには、それに必要なデータの収集についても注意を払い、構築していくことが大事です。