# レコメンドで使われる4つのアルゴリズムを簡単に紐解く！

> 当サイト【スタビジ】の本記事では、レコメンドに用いられる4つのアルゴリズムについて数式は使わずに簡単に解説していきます。レコメンドはどこに向かうのかみたいな議論もしていきたいと思います。果たして完璧なレコメンドはあり得るのでしょうか？

- URL: https://toukei-lab.com/recommend-algorithm
- 公開: 2022.11.29 / 更新: 2024.11.21
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
当サイト【スタビジ】の本記事では、レコメンド機能に用いられる4つのアルゴリズムについて数式は使わずに簡単に解説していきます。レコメンドはどこに向かうのかみたいな議論もしていきたいと思います。果たして完璧なレコメンドはあり得るのでしょうか？
:::

こんにちは！

デジタルマーケター兼データサイエンティストのウマたん([@statistics1012](https://twitter.com/statistics1012?lang=ja))です！

ECサイトを眺めていると、**あなたにオススメの商品はこちら！**&#x3068;レコメンドされることってありますよね。

そして、そのレコメンドにまんまとはまって思わぬ商品を購入してしまったり、もしくは全然興味のない商品をレコメンドされてウザいと思ったり。

「俺の何を分かってねん！」とPC画面に叫んでる人もいるかもしれませんが、<mark>そんなレコメンドには企業努力の結晶が詰まっているんです。</mark>

:::talk{who="umatan"}
ウザいって思わないで優しい目で見てほしいな！笑
:::

最近レコメンドについて考えることが多いので、この記事では**レコメンドアルゴリズム**についてまとめていきたいと思います。

以下のYoutube動画でも解説していますよ！

::youtube{#BWb2CJ4HDTU}

## レコメンドとは？

![studies mention](/wp-content/uploads/2020/06/Mention-amico-min.png)

レコメンドとはそのまま文字通りの意味で「**推薦**」。

洋服屋さんに入ると、<mark>あなたの雰囲気や今日の服装や身長やお財布状況などを推測・聞き出して店員さんがあなたにぴったりの洋服を推薦してくれる</mark>ことがあります。

それがいわゆるレコメンド。

Web上では、あなたに紐づく様々な**行動データや属性データ**が貯まっています。

それは会員情報のようにあなたが直接入力したものかもしれませんし、閲覧情報や購入商品情報など行動ベースでトラックされている情報かもしれません。

それらの情報から企業は、まさに<mark>**洋服屋の店員さんのようにあなたへぴったりのモノを提供しているのです。**</mark>

## レコメンドのアルゴリズムの種類

![pc python](/wp-content/uploads/2019/08/Work-time-amico-min.png)

さて、そんなレコメンドですが、どんな仕組みが裏にはあるのでしょうか？

実は、レコメンドアルゴリズムにはいくつかの種類があります。

:::talk{who="robotan"}
え、そうなの！？どれも同じかと思ってた、、、
:::

:::talk{who="umatan"}
いくつかあるんだけど、ここでは４つを紹介していくよ！
:::

### ルールベースレコメンド

![Site Stats](/wp-content/uploads/2017/11/Site-Stats-amico.png)

これは一番シンプルなレコメンドアルゴリズムです。

企業側はあらかじ&#x3081;**「このような行動を取った人・このような属性の人にこのような商品や情報を提供する」**&#x3068;いうルールを決めておくというアルゴリズム。

「このページに2回以上訪れた人にはこのレコメンド！」

「この商品を購入した人にはこのレコメンド！」

というようにあらかじめルールを決めておくので単純ですが、<mark>応用が利かずルールを決める作業が必要で労力がかかります。</mark>

また、ユーザーファーストではなく企業が押し出したいメッセージが届けられることとなり<mark>パーソナライゼーションからは程遠い存在</mark>になってしまいます。

ただ、やはり簡単であり<mark>巷のレコメンドロジックはルールベースで作られているものがまだまだ多いのは事実</mark>です。

### コンテンツ（内容）ベースレコメンド

![Business Plan](/wp-content/uploads/2020/07/Business-Plan-amico.png)

続いて、コンテンツベースとか内容ベースとか言われるレコメンドの方法があります。

これは、ある**コンテンツや商品に対していくつかの属性（変数）を付けておいて、類似性の高いコンテンツ・商品を推薦するというモノ。**

例えば、キュウリとほうれん草は、同じ緑黄色野菜であり、価格も同じくらいであり・・・という類似性から<mark>キュウリを購入した人にはほうれん草もレコメンドする</mark>というモノ（例えが悪いかも笑）

<mark>アディダスのスニーカー買ったらナイキのスニーカーもレコメンドされる</mark>ようになったみたいな方がイメージ付きやすいかもしれません。

コンテンツベースレコメンドは、比較的興味・関心の保証があるコンテンツ・商品をレコメンドしてくれるので**ルールベースよりはユーザーファースト**になっていますが、<mark>結局同じようなカテゴリーばかりレコメンドされるようになり、面白みに欠けてしまいます。</mark>

新たなコンテンツ・商品との出会いが無くなってしまうんですね。

### 協調フィルタリング

![robot](/wp-content/uploads/2017/12/Robotics-amico-min.png)

コンテンツベースレコメンドよりもさらに**パーソナライゼーションが進んだ手法であり、最もよく使われている手法が協調フィルタリング**です。

<mark>協調フィルタリングには大きく分けて**アイテムベース**と**ユーザーベース**があります。</mark>

アイテムベースでは、

:::box
**ユーザーの行動分析を基に商品同士の類似度を算出し、商品Aを購入したユーザーが商品Bも購入しやすいと分かると、商品Aを購入したユーザーに対して商品Bをレコメンドするようになります。**
:::

ユーザーベースでは、

:::box
**ユーザーの行動分析を基にユーザー同士の類似度を算出し、ユーザーAとユーザーBの類似度が高いと分かると、ユーザーAが購入した商品をユーザーBにもレコメンドするようになります。**
:::

協調フィルタリングは、**<mark>全く興味の無かった商品もレコメンドされるようになる</mark>ので新たな出会い（セレンディピティ）が生じる可能性が高いです。**

そして協調フィルタリングは、これだよ！これ！と自分に刺さるレコメンドが実行される可能性が高く<mark>コンテンツベースレコメンドよりもユーザーファーストになります。</mark>

ただ、協調フィルタリングを使ってもコンテンツベースレコメンドと同じような結果になってしまうことももちろんあります。

協調フィルタリングの欠点は、**<mark>新商品はレコメンドされにくく新ユーザーもレコメンド精度が悪くなってしまう</mark>ということ。**

協調フィルタリングについて詳しくは以下の記事にまとめているので、興味のある方は是非ご覧ください！

<https://toukei-lab.com/collaborative-filtering>

### ベイズ理論を用いたレコメンドアルゴリズム

![AI](/wp-content/uploads/2017/12/Artificial-intelligence-amico-min.png)

最近では、ベイズ理論を用いたレコメンドアルゴリズムも用いられるようになってきているそうです。

ベイズの特徴として<mark>、少ない情報でも事前分布という考え方を用いることで比較的精度高く予測することができます。</mark>

そのため協調フィルタリングの**データが少ないときに精度が悪くなってしまうという弱点を上手く克服したレコメンドが行えるんです。**

いわゆるハイブリッド型のレコメンドアルゴリズムですね。

ベイズ理論に関してはこちらに詳しくまとめているのでよければご覧ください！

<https://toukei-lab.com/bayes>

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

![Teacher](/wp-content/uploads/2017/11/Teacher-amico.png)

本記事では、**レコメンドのアルゴリズム**についてまとめてきました。

複数あるアルゴリズムのうち、<mark>正直どれが正解かは誰も分かりません。</mark>

協調フィルタリングが流行っていますが、結局完璧なレコメンドはないと思っていますし、完璧なレコメンドってそもそもなに！？って話ですよね。

個人的には、レコメンドって自分の行動や属性だけから機械的に判断されるものではなくて、**信頼が介在するもの**だと思っているんです。

洋服屋さんで初めての店員さんからレコメンドされるモノより、行きつけの仲良し店員さんにレコメンドされるモノの方が心地よく購入できますよね？

結局、<mark>**レコメンドが上手くいったかどうかっていうのは購入時の満足感が大事で、その満足感を支えるのはそこまでの過程で生じる信頼関係である**</mark>って思ったりするわけです。

ここら辺に関しては、レコメンドはどこへ向かうべきか的な記事をこちらにまとめていますので良ければご覧ください！

<https://toukei-lab.com/recommend-personalization>

ってなわけで、<mark>ECサイトとかでレコメンドされたとしても、レコメンドうざい！とか思わずレコメンド頑張ってるな！と暖かい目で見てあげてください！笑</mark>

レコメンドロジックについてPythonでの実装や協調フィルタリングの仕組みをもっと知りたい方は以下のスタアカのレコメンドロジックコースをチェックしてみてください！

:::box
[業界最安級AI特化スクール「スタアカ」：レコメンドロジックコース](https://toukei-lab.com/achademy/courses/recommend/)
:::

また[Udemy](/udemy-review)でレコメンド・協調フィルタリングが学べるコースも公開していますのでぜひ興味のある方はチェックしてみてください！

:::box
**【Python×協調フィルタリング】レコメンドで使われる協調フィルタリングのアルゴリズムを学びPythonで実装！**

[![Udemy_Recommend](/wp-content/uploads/2024/01/Udemy_Recommend.jpg)](https://www.udemy.com/course/python-recommend/?referralCode=1A1A6B462DF5AD0FA1DA)

<table class="table">
<tbody>
<tr>
<th>【時間】</th>
<td><span>3.5時間</span></td>
</tr>
<tr>
<th>【レベル】</th>
<td><span>初級</span></td>
</tr>
</tbody>
</table>

レコメンド・協調フィルタリングの基礎を理解したいのであればこれ！

::button[このコースを見てみる]{href="https://www.udemy.com/course/python-recommend/?referralCode=1A1A6B462DF5AD0FA1DA" note="＼30日以内なら返金無料／"}

「[Udemyのコース一覧](/my-udemy-course)」に講師クーポン「NZWCLGF4BTZENY6E」を公開していますのでそちらをご利用いただくと最大90%オフ以上の割引価格になります！
:::

少しでも機械学習や統計学やデータサイエンスに興味を持った方は以下の記事でより詳しく解説していますのでよければ参考にしてみてください！

<https://toukei-lab.com/machine-learning-fresh>

<https://toukei-lab.com/statistics-freshman>

<https://toukei-lab.com/data-scientist>

イラスト出典：**[Illustration by Stories by Freepik](https://stories.freepik.com/)**