機械学習でできる!レコメンデーションエンジンを理解する!

こんにちは!
IT企業に勤めて、約2年間でデータサイエンティストになったごぼちゃん(@XB37q)です!

このコラムでは、レコメンデーションに使われる4つのエンジンを紹介します!
ECサイトでは様々な機能を持ったレコメンデーションが使われており、従来のルールベースのレコメンデーションや、機械学習を使ったレコメンデーションが存在します。

レコメンデーションとは

レコメンデーションのイメージ
レコメンデーションのイメージ

レコメンデーションとは「勧告」や「推薦」という意味を持った単語です。
「勧告」とは、「当事者に、こういう処置をしたほうが良いと(多少とも)公的なしかたで告げ(説い)て勧めること。その内容。」であり、「推薦」とは、「自分がよいと思う人・物事を、他人にすすめること。」を表します。

例えば、ECサイトを使って商品を閲覧した時や購入した時に、「他のおすすめ商品」などが表示されることがあります。
これがレコメンデーションと呼ばれる機能です。

ECサイトの利用者の様々なデータを活用して、利用者が欲しいと思っている物を提供する機能が、レコメンデーションになります。
使われているデータには、例えば、利用者の性別や年齢を表す会員情報を表すデータ、どの商品を見たのかを表す閲覧データ、どの商品を購入したのかを表す購買データ、商品の特性を表す商品データなど、様々なデータが使われている可能性があります。

このレコメンデーションは企業にとって売上を伸ばすとても重要な機能です。
そのため、レコメンデーションを実現させる様々な方法が検討されています。

レコメンデーションエンジンの種類

レコメンデーションエンジンには、どのような種類があるのでしょうか?
このコラムでは、4種類のレコメンデーションエンジンを紹介します。

  • ルールベースレコメンデーション
  • 商品ベースレコメンデーション
  • 協調フィルタリング(商品ベース)
  • 協調フィルタリング(ユーザーベース)

ルールベースレコメンデーション

ルールベースレコメンデーション
ルールベースレコメンデーション

ルールベースレコメンデーションと呼ばれるレコメンデーションエンジンです。
ルールベースレコメンデーションとは、昔から存在していた一番シンプルなエンジンであり、あるルールを決めてレコメンデーションするエンジンです。
企業側が「このような行動を取った人・このような属性の人にこのような商品や情報を提供する」というルールを決めておくことで、レコメンデーションを実現させます。

例えば、「ECサイトに2回以上訪問した人にはこの商品をおすすめ!」といったユーザーの行動に紐づくルールや、「この商品を購入した人にはこの商品をおすすめ!!」といった商品の購買情報に紐づくルールなどが考えられるでしょう。

ECサイトを作った時から前もってルールを決めておくため、非常にシンプルであり、解釈がしやすいのが特徴です。

しかし、デメリットもあります。
デメリットは、ルールを決める作業が必要であり、商品の数やユーザーの数に応じてルールを決める作業が増えることにあります。
また、ユーザーの要望をデータから判断しているわけではなく、企業が決めたルールに応じてレコメンデーションされるため、ユーザーの要望を反映できるレコメンデーションが実現できていない可能性が高いです。

商品ベースレコメンデーション

商品ベースレコメンデーション
商品ベースレコメンデーション

商品ベースレコメンデーションと呼ばれるレコメンデーションエンジンです。
商品ベースレコメンデーションとは、商品のデータを使用して、似たような商品をレコメンデーションするエンジンです。

例えば、あるテニス漫画Aとテニス漫画Bは、どちらもテニスのストーリーであり、価格も同じくらいであるため、テニス漫画Aを購入した人に対してテニス漫画Bもレコメンデーションします。

商品ベースレコメンデーションは、興味・関心の保証がある商品をレコメンデーションするため、ルールベースレコメンデーションと比較すると、ユーザーが欲しい商品をレコメンデーションできる可能性が高いです。

しかし、同じような商品ばかりがレコメンデーションされるため、商品のバリエーションが偏ることから、新しい商品をレコメンデーションすることが出来ません。
例えば、眼鏡を探している人には、コンタクトをレコメンデーションすることが良いかもしれませんが、眼鏡だけをレコメンデーションするといったことになる可能性があります。

協調フィルタリング

協調フィルタリングと呼ばれるレコメンデーションエンジンです。
協調フィルタリングとは、現在、最もよく使われているエンジンです。

実際にユーザーが商品を買ったことを表す購買データを使用して、レコメンデーションを実現します。
協調フィルタリングには大きく分けて商品ベースとユーザーベースがあり、それぞれ特徴があります。

協調フィルタリング(商品ベース)

協調フィルタリング(商品ベース)
協調フィルタリング(商品ベース)

内容ベースでは、ユーザーの購買データから商品同士の類似度を算出します。
そして、商品Aと商品Bの類似度が高い場合、商品Aを購入したユーザーに対して商品Bをレコメンデーションします。

協調フィルタリング(ユーザーベース)

協調フィルタリング(ユーザーベース)
協調フィルタリング(ユーザーベース)

ユーザーベースでは、ユーザーの購買データからユーザー同士の類似度を算出します。
そして、ユーザーAとユーザーBの類似度が高い場合、ユーザーAが購入した商品をユーザーBへレコメンデーションします。

協調フィルタリングの特徴

協調フィルタリングは、ユーザーが全く興味の無かった商品もレコメンデーションできるため、新しい商品が顧客へレコメンデーションできる可能性が高いです。
そのため、内容ベースレコメンドよりもユーザーの要望に沿った商品がレコメンデーションされる可能性が高いです。
ただ、協調フィルタリング使ってもコンテンツベースレコメンドと同じような結果になってしまうことももちろんあります。

協調フィルタリングのデメリットは、新しい商品がレコメンデーションされにくくなり、新しいユーザーに対してもレコメンデーションする精度が悪くなってしまいます。

レコメンデーションを実現する注意点

前の章までで紹介した通り、レコメンデーションを実現する方法は何種類か存在し、それぞれに特徴があります。
そのため、複数の種類のレコメンデーションエンジンを使い分けたり、組み合わせるハイブリッド型のレコメンデーションエンジンが使われることもあります。

例えば、新しいユーザーをレコメンデーションする場合は内容ベースレコメンデーションを、既存のユーザーへレコメンデーションする場合は協調フィルタリングなど、様々使い分けることが可能です。

また、レコメンデーションする場合は、「売れ筋topの商品」や「最近流行っている商品」など、様々な機能が考えられます。
「売れ筋topの商品」の場合、商品の売上データから売上が大きい商品をレコメンデーションすることや、「最近流行っている商品」の場合、1日前の売上と2日前の売上の比率などからレコメンデーションすることが考えられます。
そのため、機械学習を使ったレコメンデーションをしなくてもいい場合や、使い方を区別して考えることが重要だと思います。

また、どのレコメンデーションエンジンが良いかどうかに正解はありません。
試行錯誤して何種類かのレコメンデーションエンジンを試すことも重要だと思います。

検索とレコメンデーションは似ている?!

検索とレコメンドは、どちらも顧客の要望とアイテムを紐づけるという意味で類似している機能です。

  • 検索は入力キーワードとサイトをマッチングさせる機能
  • レコメンドは顧客情報やアイテム情報とアイテムをマッチングさせる機能

どちらもユーザーの要望を読み取り、要望に沿ったコンテンツをマッチングさせるという意味では同じであり、使用するデータが違うのみです。

このように、ユーザーの要望といった見えないものを、限られたデータ(入力キーワード、顧客情報など)から推測することが出来るというのが、統計学や機械学習の強味だと思っています。

レコメンドアルゴリズム まとめ

  • レコメンデーションとは
    • 利用者が欲しいと思っている物を提供する機能
    • 企業にとって売上を伸ばすとても重要な機能
  • ルールベースレコメンデーション
    • あるルールを決めてレコメンデーションするエンジン
    • ールを決める作業が必要であり、商品の数やユーザーの数に応じてルールを決める作業が増える
  • 商品ベースレコメンデーション
    • 商品のデータを使用して、似たような商品をレコメンデーションするエンジン
    • 同じような商品ばかりがレコメンデーションされるため、商品のバリエーションが偏る
  • 協調フィルタリング
    • 商品ベースは商品同士の類似度を算出し、ユーザーベースの類似度を算出する
    • ユーザーが全く興味の無かった商品もレコメンデーションできるため、新しい商品が顧客へレコメンデーションできる可能性が高い
    • 新しい商品がレコメンデーションされにくくなり、新しいユーザーに対してもレコメンデーションする精度が悪くなってしまいます。
  • レコメンデーションの注意点
    • 機械学習を使ったレコメンデーションをしなくてもいい場合や、使い方を区別して考える
    • どのレコメンデーションエンジンが良いかどうかに正解はない

参考図書