こんにちは!
デジタルマーケター兼データサイエンティストのウマたん(@statistics1012)です!
ECサイトを眺めていると、あなたにオススメの商品はこちら!とレコメンドされることってありますよね。
そして、そのレコメンドにまんまとはまって思わぬ商品を購入してしまったり、もしくは全然興味のない商品をレコメンドされてウザいと思ったり。
「俺の何を分かってねん!」とPC画面に叫んでる人もいるかもしれませんが、そんなレコメンドには企業努力の結晶が詰まっているんです。
最近レコメンドについて考えることが多いので、この記事ではレコメンドアルゴリズムについてまとめていきたいと思います。
以下のYoutube動画でも解説していますよ!
レコメンドとは?
レコメンドとはそのまま文字通りの意味で「推薦」。
洋服屋さんに入ると、あなたの雰囲気や今日の服装や身長やお財布状況などを推測・聞き出して店員さんがあなたにぴったりの洋服を推薦してくれることがあります。
それがいわゆるレコメンド。
Web上では、あなたに紐づく様々な行動データや属性データが貯まっています。
それは会員情報のようにあなたが直接入力したものかもしれませんし、閲覧情報や購入商品情報など行動ベースでトラックされている情報かもしれません。
それらの情報から企業は、まさに洋服屋の店員さんのようにあなたへぴったりのモノを提供しているのです。
レコメンドのアルゴリズムの種類
さて、そんなレコメンドですが、どんな仕組みが裏にはあるのでしょうか?
実は、レコメンドアルゴリズムにはいくつかの種類があります。
ルールベースレコメンド
これは一番シンプルなレコメンドアルゴリズムです。
企業側はあらかじめ「このような行動を取った人・このような属性の人にこのような商品や情報を提供する」というルールを決めておくというアルゴリズム。
「このページに2回以上訪れた人にはこのレコメンド!」
「この商品を購入した人にはこのレコメンド!」
というようにあらかじめルールを決めておくので単純ですが、応用が利かずルールを決める作業が必要で労力がかかります。
また、ユーザーファーストではなく企業が押し出したいメッセージが届けられることとなりパーソナライゼーションからは程遠い存在になってしまいます。
ただ、やはり簡単であり巷のレコメンドロジックはルールベースで作られているものがまだまだ多いのは事実です。
コンテンツ(内容)ベースレコメンド
続いて、コンテンツベースとか内容ベースとか言われるレコメンドの方法があります。
これは、あるコンテンツや商品に対していくつかの属性(変数)を付けておいて、類似性の高いコンテンツ・商品を推薦するというモノ。
例えば、キュウリとほうれん草は、同じ緑黄色野菜であり、価格も同じくらいであり・・・という類似性からキュウリを購入した人にはほうれん草もレコメンドするというモノ(例えが悪いかも笑)
アディダスのスニーカー買ったらナイキのスニーカーもレコメンドされるようになったみたいな方がイメージ付きやすいかもしれません。
コンテンツベースレコメンドは、比較的興味・関心の保証があるコンテンツ・商品をレコメンドしてくれるのでルールベースよりはユーザーファーストになっていますが、結局同じようなカテゴリーばかりレコメンドされるようになり、面白みに欠けてしまいます。
新たなコンテンツ・商品との出会いが無くなってしまうんですね。
協調フィルタリング
コンテンツベースレコメンドよりもさらにパーソナライゼーションが進んだ手法であり、最もよく使われている手法が協調フィルタリングです。
協調フィルタリングには大きく分けてアイテムベースとユーザーベースがあります。
アイテムベースでは、
ユーザーの行動分析を基に商品同士の類似度を算出し、商品Aを購入したユーザーが商品Bも購入しやすいと分かると、商品Aを購入したユーザーに対して商品Bをレコメンドするようになります。
ユーザーベースでは、
ユーザーの行動分析を基にユーザー同士の類似度を算出し、ユーザーAとユーザーBの類似度が高いと分かると、ユーザーAが購入した商品をユーザーBにもレコメンドするようになります。
協調フィルタリングは、全く興味の無かった商品もレコメンドされるようになるので新たな出会い(セレンディピティ)が生じる可能性が高いです。
そして協調フィルタリングは、これだよ!これ!と自分に刺さるレコメンドが実行される可能性が高くコンテンツベースレコメンドよりもユーザーファーストになります。
ただ、協調フィルタリングを使ってもコンテンツベースレコメンドと同じような結果になってしまうことももちろんあります。
協調フィルタリングの欠点は、新商品はレコメンドされにくく新ユーザーもレコメンド精度が悪くなってしまうということ。
協調フィルタリングについて詳しくは以下の記事にまとめているので、興味のある方は是非ご覧ください!
ベイズ理論を用いたレコメンドアルゴリズム
最近では、ベイズ理論を用いたレコメンドアルゴリズムも用いられるようになってきているそうです。
ベイズの特徴として、少ない情報でも事前分布という考え方を用いることで比較的精度高く予測することができます。
そのため協調フィルタリングのデータが少ないときに精度が悪くなってしまうという弱点を上手く克服したレコメンドが行えるんです。
いわゆるハイブリッド型のレコメンドアルゴリズムですね。
ベイズ理論に関してはこちらに詳しくまとめているのでよければご覧ください!
レコメンドアルゴリズム まとめ
本記事では、レコメンドのアルゴリズムについてまとめてきました。
複数あるアルゴリズムのうち、正直どれが正解かは誰も分かりません。
協調フィルタリングが流行っていますが、結局完璧なレコメンドはないと思っていますし、完璧なレコメンドってそもそもなに!?って話ですよね。
個人的には、レコメンドって自分の行動や属性だけから機械的に判断されるものではなくて、信頼が介在するものだと思っているんです。
洋服屋さんで初めての店員さんからレコメンドされるモノより、行きつけの仲良し店員さんにレコメンドされるモノの方が心地よく購入できますよね?
結局、レコメンドが上手くいったかどうかっていうのは購入時の満足感が大事で、その満足感を支えるのはそこまでの過程で生じる信頼関係であるって思ったりするわけです。
ここら辺に関しては、レコメンドはどこへ向かうべきか的な記事をこちらにまとめていますので良ければご覧ください!
ってなわけで、ECサイトとかでレコメンドされたとしても、レコメンドうざい!とか思わずレコメンド頑張ってるな!と暖かい目で見てあげてください!笑
レコメンドロジックについてPythonでの実装や協調フィルタリングの仕組みをもっと知りたい方は以下のスタアカのレコメンドロジックコースをチェックしてみてください!
またUdemyでレコメンド・協調フィルタリングが学べるコースも公開していますのでぜひ興味のある方はチェックしてみてください!
【Python×協調フィルタリング】レコメンドで使われる協調フィルタリングのアルゴリズムを学びPythonで実装!
【時間】 | 3.5時間 |
---|---|
【レベル】 | 初級 |
レコメンド・協調フィルタリングの基礎を理解したいのであればこれ!
「Udemyのコース一覧」に講師クーポン「GT34R35G27DD」を公開していますのでそちらをご利用いただくと最大94%OFFになります!
少しでも機械学習や統計学やデータサイエンスに興味を持った方は以下の記事でより詳しく解説していますのでよければ参考にしてみてください!
イラスト出典:Illustration by Stories by Freepik