レコメンドシステムについて
レコメンドシステムとは、利⽤者にとって有⽤と思われる対象,情報,または商品などを選び出し,
それを利⽤者の⽬的に合わせた形で提⽰するシステムです。近年ではAmazonをはじめとする多くのwebサービスで実装されており、多くの人になじみのあるものとなってきました。
Amazonなどでは複雑なアルゴリズムを複数組み合わせてレコメンドシステムを構築しているようですが、今回はレコメンドを行うにあたり基礎となる内容ベースフィルタリングと協調フィルタリングについてまとめます。
内容ベースフィルタリング
あるユーザーが購⼊した商品のタグ情報から、類似の商品を探し推薦する方式です。
ユーザーが購入した商品のタグ情報を基に、ユーザーがどのような分野に興味があるのかを蓄積し、類似の商品を探して提案します。
この方式ではタグ情報を基に様々なレコメンドを行える一方、レコメンドしたい商品には必ずタグ付けを行なわなければならないというデメリットがあります。例えば上画像にある「入門Python3」は、商品登録時にタグ「#python」を付けたために、別のPython関係の書籍が販売されたの後にレコメンドされます。タグ「#python」がなければレコメンドされることはありません。
また、そもそもとしてタグ「#python」が適切かどうかも考えなくてはなりません。ユーザーの趣向を考慮したうえで緻密なマーケティングを行いタグを設計する必要があります。
そのため内容ベースフィルタリングは時間およびコストがかかってしまうという特性があります。
協調フィルタリング
ユーザーの⾏動履歴等を元に、購⼊パターンの近いユーザーを探し出して商品をレコメンドします。この際、アイテムの性質、タグ情報などは全く考慮しないという特徴があります。
上画像では、まず各商品にはタグがついていません。DBにも各ユーザーが過去に何の商品を買ったかの情報を記録します。そしてユーザーごとの購入履歴から類似性の高いユーザーを選びます。(例では類似ユーザーは一人だけ選ばれるものとする)
結果として、Aさんと購入趣向が近いDさんが過去に購入した商品がAさんにレコメンドされます。ユーザーの購入履歴を軸にするため、各商品のタグ情報は不要となります。
しかし協調フィルタリングでは、誰にも購入されていない商品はレコメンドされることがないといった大きなデメリットがあります。
ハイブリッドフィルタリング
内容ベースフィルタリング、協調フィルタリング、実用するにはそれぞれ大きなデメリットを有しています。そのためシステム構築の際には、各フィルタリングの良いところを組み合わせてレコメンドシステムを構築してくことが一般的であり、これらはハイブリッドと呼ばれます。