レコメンデーションエンジンの基礎 | SiTest (サイテスト) ブログ

メニューボタン閉じるボタン

レコメンデーションエンジンの基礎

ECサイトなどでよく使われているレコメンド機能。
有名なのはAmazonで出てくる、「この商品を買った人はこんな商品も買っています」といった商品のリストが表示される機能ですね。

今回は、レコメンドのレコメンデーションエンジンの分析手法の基礎的なことついて紹介します。

  • ■ 基本的なアイテムベースとユーザーベースの分析手法

  • レコメンデーションシステムの基礎的な手法として、関連するアイテムを探すか、
    関連するユーザーを探すかによって、大きく2つの手法に分かれます。

    アイテムベースの分析

     
    アイテムベースの分析では、ある特定のアイテムに関連するアイテムを見つけ出します。
    ユーザーがあるアイテムを好むとき、そのアイテムに関連するアイテムをレコメンドします。

    例えば、アイテムがAからDまでの4つあるとします。
    アイテムAとCが類似している場合にユーザーがアイテムAを好むなら、
    そのユーザーにはアイテムCがレコメンドされることになります。

    類似したアイテムを見つけ出すのには、大きく2つの手法があります。
    ひとつはコンテンツベースの分析で、コンテンツの内部を表現するためにコンテンツそのものを分析します。
    通常は、文章に出現するターム(語)やフレーズ(連続した複数のターム)を利用して表現します。そして、それらのターム群に対して、出現頻度等の重み付けを行います。
    これらをタームベクトルとよびコンテンツテキストのメタデータをあらわします。
    これらの2つのコンテンツの類似度は、2つのタームベクトルのコサイン類似度等の計算によって求められます。

    ユーザーベースの分析

     
    ユーザーベースの分析では、そのユーザーに類似したユーザーを見つけ出します。
    例えば、あるユーザーがアイテムAを好む場合、ユーザーAに類似した他のユーザーにアイテムAがレコメンドされます。類似したユーザー同士は、プロファイルベースのユーザー情報から求められます。例えば、年齢、性別、居住地などの属性値にもとづいたユーザのクラスタが考えられます。

    もうひとつの分析手法としてコラボレーションベースの手法があげられます。
    コラボレーションベースの手法は、ユーザーが関心を持つと思われるアイテムを予測するためにユーザーのインタラクションを用います。
    例えば、ユーザーがアイテムの評価をするようなシステムの場合を想定してみます。

    あるユーザーと別のユーザーがアイテムにつけた評価のパターンを元に、そのユーザーが興味を持つと予測されるアイテムを見つけます。
    この手法では、あるユーザーのメタデータと、そのユーザーに類似したユーザーのメタデータを照らし合わせて、ユーザーが興味を持つであろうアイテムを見つけ出します。
    ある特定のセグメントに属するユーザー間で好まれる、または人気のあるアイテムは、閲覧、購入などの行動履歴に現れることになります。
    行動履歴の評価値などの情報は、ある特定のユーザーセグメントにおけるアイテムのクオリティーを表すことになります。

    これは一般的に協調フィルタリングの手法と呼ばれ、協調フィルタリングには、
    主にメモリベースとモデルベースという2つの手法があげられます。

    メモリベースシステムでは、類似したユーザーを見つけるために類似度を用います。
    類似したユーザーがつけた評価に重み付けを行い、平均した値を予測値とみなします。
    モデルベースの手法は、予測のためにモデルを構築します。
    主な手法としては、確率論、線形代数、クラスタリング、ニューラルネットワークなどの用いて予測を行います。

    ■ 最後に

    駆け足で、レコメンデーションエンジンの分析手法の基礎について、ご紹介してきましたが、最近では分析手法が洗練されてきており、いろんな手法が日々開発されています。

    次回は、そのような最近のレコメンデーションエンジンの分析手法について、ご紹介していきたいと思います。