協調フィルタリングって何?商品のおすすめ機能を学ぼう!

AI・機械学習

2017/11/10

AI・機械学習

近年、ECサイトで買い物をする際、おすすめのサービスや商品として表示されたものが面白そうで、クリックして確認するだけのはずが、つい買ってしまった、という人も多いのではないでしょうか。

本記事では、このおすすめアイテムの表示を実現している主な手法「協調フィルタリング」について解説します。

問題点や例も含めてご紹介することで、初心者でも理解できるように解説していますので、ぜひ最後まで読んで協調フィルタリングとは何かを理解してください。

協調フィルタリングとは?

協調フィルタリングとは、レコメンドシステム(推薦システム)を実現する手法の一つです。

レコメンドシステムは、ECサイトなどでサイトの運営者がサイトの訪問者の好みに合うアイテムを「おすすめ」する際に使用するものです。

訪問者が能動的に行う通常の検索と異なり、「おすすめ」アイテムの表示に際し、運営者の意図(季節商品の上位表示など)を反映させることも可能です。

身近な具体例としては、アマゾンやTSUTAYA DISCAS、楽天ECサイトでのおすすめ商品の提示が挙げられます。

 

以下に、レコメンドシステムを実現している手法と協調フィルタリングの位置づけを図で示します。

なお、本稿ではレコメンドシステムでよく使われる「狭義の協調フィルタリング」を解説していきます。

 

◇協調フィルタリングと、協調フィルタリングのレコメンドシステムにおける位置づけ◇
レコメンドシステムのイメージ
アイテムの購入/選択履歴は、口コミ同様、利用者によるそのアイテムの「おすすめ」とみなせます。

協調フィルタリングはこれを利用し、訪問者と似た行動履歴を持つ利用者のデータ(購買履歴など)を基に、訪問者が購入する可能性が高いアイテムを「おすすめ」として表示します。

訪問者と行動や好みが似た他人が良いと思うものは、訪問者も良いと思う確率が高いだろう、という考えです。

 

◇アマゾンのレコメンドシステム「この商品を買った人はこんな商品も買っています」◇

レコメンドシステムのイメージ

 

協調フィルタリングとコンテンツベースフィルタリングとの違い

コンテンツベースフィルタリングとは、レコメンドシステムを実現するもう一つの手法です。

協調フィルタリングでは、訪問者の行動履歴からおすすめアイテムを導いていました。

しかしコンテンツベースフィルタリングでは、事前にアイテムを属性に応じてグルーピングしておき、訪問者が検索したり購入したアイテムと似たアイテムを特徴が似ている順に表示し、おすすめしていきます。

コンテンツベースフィルタリングを利用する場合、予め用意してあるアイテムの情報と訪問者の好みを比較し、類似度の高いアイテムをおすすめすることので必然的におすすめアイテムは訪問者が想定している範囲に収まりがちになります。

これに対して協調フィルタリングでは、訪問者と似た他人の行動履歴を利用するため、訪問者自身についての情報が少ない場合でも比較的訪問者の好みにあったアイテムをおすすめできます。

さらに、類似利用者の行動履歴にあっても訪問者は持っていないアイテムをおすすめ候補にすることから、訪問者の想定の範囲を超えたアイテムをおすすめ(セレンディピティ)できる可能性があります。

また、協調フィルタリングでは類似利用者の行動履歴にあるアイテムをおすすめ候補に使うため、運営者がアイテムの特徴などを知る必要はありません。

コンテンツベースフィルタリングでは事前に行う必要があったアイテムの情報の用意、加工も、協調フィルタリングでは不要なことから、運営者のコスト抑制にも寄与します。

 

以下は、協調フィルタリングとコンテンツベースフィルタリングの簡単な比較です。

レコメンドシステムのイメージ

 

協調フィルタリングの強み

ここでは協調フィルタリングの強みを見ていきましょう。まずは簡単な具体例を紹介します。

【例】

・プレーヤー:A・B・Cの3人

・ゲーム:7種類(①〜⑦)

・遊び方:①〜③の3個はA・B・C全員がプレイする。
Aは①〜③に加えて④と⑤をプレイする。
Bは①〜③に加えて⑥と⑦をプレイする。
Cは①〜③に加えて⑦をプレイする。
プレイ後は①〜⑦のゲームを5段階(1が一番つまらない、5が一番面白い)で評価する。

・結果

レコメンドシステムのイメージ

結果の評価

①〜③の評価から、AとBは好みが似ていそうです。好みが似ていることを「相関が強い」といいます。従って、AとCは相関が弱そうと言えます。

あるものにおいて好みが似ている人達は、他のものにおいても好みが似ている場合が多いことから、AとBの⑥と⑦のゲームについての感想は似ている可能性が高いと考えられます。

特に⑦のゲームは、Bの評価は高く、Cの評価は低いので、Aは高い確率で⑦を面白いと感じそうです。

 

ところで、「好み」が度合いを表す以上、例えば評価数値が同じ3でも、評価を甘めにつけるプレーヤーと辛めにつけるプレーヤーの3では意味が違います。

このバイアスの影響を回避するには、全プレーヤーの評価値を、評価基準を揃えた値に変換してから比較します。

 

なお、今回取り上げた例はゲームという単一ジャンルにおける好みの類似から、まだプレイしていないゲームについての好みを予想しましたが、あるものにおいて好みが似ている人達は、他のものにおいても好みが似ています。

……ということは、他のジャンルでも同じような好みである可能性が高いと考えることが可能です。

このため、例えば上記のAが明るい色の服を好むのであれば、Bもそうであろうと考え、Aの購入履歴を基にBに明るい色の服をおすすめすることで実際にBが気に入って購入することも十分考えられるのです。

 

協調フィルタリングの強みとは

実際にレコメンドシステムがおすすめアイテムを表示する際は、訪問者と似た利用者何人分の評価を参考にすればよいか、という問題が出てきます。参考にする人数が少ないほど個々の利用者の評価が色濃く出ます。

類似度の高い利用者上位5人の評価を参考にした場合と、上位100人の評価を参考にした場合では、5人の評価を参考にした時の方が、より訪問者の好みに合ったアイテムがおすすめされる可能性も高くなります。

しかし、好みではないアイテムが含まれる可能性も高くなります。機械学習でいえば過学習の状態に陥りやすくなります。

過去の研究からは30~100人を参考にすると、おすすめアイテムの内容が類似利用者の平均的な好みになるそうです。機械学習でいえば頑健性のあるシステムになるといえます。

 

協調フィルタリングの強みをまとめると、次のようになります。

(1)相関の要因を知らなくても予測が可能である。
(2)アイテムの特徴を知ることなしにおすすめとして挙げることが可能である。
(3)異なるジャンルのアイテムでもおすすめすることが可能である。

 

協調フィルタリングの欠点

協調フィルタリングの欠点は次のとおりです。

 

おすすめの対象アイテムが、訪問者と類似の利用者のデータから引けるアイテムに限定される

アイテムの知識がなくてもおすすめアイテムを提示できるのは、訪問者と似た利用者の行動履歴からアイテムを引いてくるからです。

つまり、類似度の高い利用者の行動履歴にないアイテムは誰も評価していないアイテムであることから、おすすめの対象とならないのです。

 

同じ型で色やサイズだけ異なるようなアイテムをおすすめしてしまう

協調フィルタリングはアイテムの特徴を一切考慮しません。

また、訪問者と類似度の高い利用者は、収入も似通っている場合が多いでしょう。

おすすめの対象にできるアイテムが訪問者と類似度の高い利用者の行動履歴にあるアイテムに限られることから、形は同じで色やサイズだけしか違わない類似品がおすすめに挙がってしまいます。

 

行動履歴のない訪問者に対応できない

協調フィルタリングでは行動履歴のない訪問者に対応できません。

協調フィルタリングでは、訪問者と既存の利用者との類似度を見ることで、訪問者の好みに合うであろうアイテムをおすすめします。

訪問者が他のサイトでなんらかの行動履歴があるとしても、その情報を取得できない場合は同じです。

 

少数派問題

行動履歴がそこそこある訪問者でも、その好みが特殊で類似の利用者を見つけることが困難な場合、おすすめアイテムを引いてくるデータベースがないのと同じ状況になります。

このため、協調フィルタリングでは対応が困難です。

 

スタートアップ問題

新規システムで利用者がまだ誰もいない場合、訪問者が来ても類似度の高い利用者がいないため、協調フィルタリングでは対応できません。

これらの事態を回避・解決するため、実際には異なる2つの協調フィルタリングを組み合わせたハイブリッド型で運用することが多いのです。

 

いかがでしたでしょうか?

レコメンドシステム、協調フィルタリングを活用したプログラムの開発もUdemyなら動画でわかりやすく学ぶことができます。

ぜひ協調フィルタリングをマスターして、お仕事にお役立てください。

AI・機械学習初心者が必ず受講しておくべき講座

AIとは何かを理解し、機械学習と数学の基礎を理解

分類・パターン認識からSVM、交差検証や過学習など機械学習に必要なあらゆるスキルが身に付く!

TensorFlowの環境構築から学べる、ディープラーニングの学習におすすめの講座

  

協調フィルタリングを実際に作りたい方におすすめ!

実践データサイエンス&機械学習 with Python -統計学の基礎からビッグデータまで- | Udemy

実践データサイエンス&機械学習 with Python -統計学の基礎からビッグデータまで- | Udemy

【世界で3万人以上が受講】世界で活躍する専門家の講義を、日本の人気講師が解説します。データサイエンスと機械学習を包括的に扱います。統計学の基礎から始めて、レコメンドシステムや検索エンジン、スパムメールフィルタなどの構築も行います。

動画で学習する

  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー
  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー

関連記事