今回はAmazonやNetflixのレコメンド機能を支える手法である協調フィルタリングについて解説します。協調フィルタリングは人工知能の中心的な役割を担う機械学習の中の、教師なし学習にもカテゴライズされます。
人工知能や機械学習の概要については以下を参照ください。
レコメンドの仕組み
レコメンド機能が、必ず協調フィルタリングを採用しているわけではありませんので、旧来の手法も含めて、まずはレコメンドで使われている様々な手法を以下で簡単に紹介します。
ルールベースレコメンド (Rule-based recommend)
ルールベースレコメンドは最も単純なレコメンドの手法です。予め人間が決めたルールに従ってレコメンドを表示します。例えば自転車を購入した人には付属品のライトや空気入れを提案するとか、新商品を提案するといったように、予めルールを決めておくのです。
わかりやすい仕組みである一方、ルール構築に手間がかかると同時に、ルールのメンテナンスも煩雑です。
内容ベースフィルタリング (Content-based filtering)
内容ベースフィルタリングは、商品に対してタグ付けすることで、類似した商品を自動的にレコメンドする仕組みです。例えば”男性向け”・”若年”・”短編”というタグがつけられた映画を鑑賞した場合に、同じタグがつけられた別の商品を自動的にレコメンドすることができます。
内容ベースフィルタリングは類似性のある商品を提案するのには適していますが、ちょっと軸をずらして提案するのは苦手です。
協調フィルタリング
協調フィルタリングは、ルールベースレコメンドや内容ベースフィルタリングとは異なるアルゴリズムで動いているため、一見すると、”どうしてそれが欲しいってわかったんだ“と思ってしまうような的確な提案が可能になっています。以下でより詳しく解説します。
協調フィルタリング
協調フィルタリングは、大量の顧客情報からユーザ間の嗜好の類似性を見つけ、それを基に需要を推測する手法です。協調フィルタリングを用いたレコメンドにはユーザベースレコメンドとアイテムベースレコメンドがありますので、以下で例を出して説明します。
ユーザベース
ユーザベースレコメンドでは、顧客間の類似性から需要を推測してレコメンドします。例えば以下のように、あるECサイト上に田中さん・鈴木さん・佐藤さん・山田さん・斎藤さんが何を買ったか(買った商品は”1″、買ってない場合は”0″)という顧客情報があったとします。
![](https://chefyushima.com/wp-content/uploads/2023/02/image-50.png)
ここで新規顧客がペンと掃除機を買ったとしましょう。この時新規顧客と既存ユーザの類似性は、相関係数を用いると以下のようにあらわすことができます。
![](https://chefyushima.com/wp-content/uploads/2023/02/image-53.png)
これを見ると、新規顧客と比較的購買行動が近いのは田中さん・佐藤さん・斎藤さんの3人であることがわかります。
なお相関係数というのは、2つのデータの相関の強弱や正負を示します。0が最も相関がなく、1が最も強い正の相関、-1が最も強い負の相関です。0.7を超えてくると相関が非常に強く、反対に0.2を下回るとほとんど相関がない、と判断されます。負の値でも同じです。詳細は以下を参照ください。
![](https://chefyushima.com/wp-content/uploads/2023/02/correlation-160x90.png)
では次に、田中さん・佐藤さん・斎藤さんの3人の購買行動を基に、レコメンドの度合いを示すレコメンド指数を導入します。以下では、3人の購買有無(0 or 1)の平均値をレコメンド指数としています。
![](https://chefyushima.com/wp-content/uploads/2023/02/image-51.png)
これを見ると、ノートは田中さん・佐藤さん・斎藤さんのいずれもが購入していて、レコメンド指数が最も高くなっています。これを基に、”次はノートをいかがですか?”という提案を出すことができます。
アイテムベース
ユーザベースレコメンドでは、顧客間の類似性から需要を推測してレコメンドしましたが、アイテムベースレコメンドでは、商品間の類似性から需要を推測します。ユーザベースレコメンドと同じく以下の購買情報を使って説明します。
![](https://chefyushima.com/wp-content/uploads/2023/02/image-52.png)
この時、ペンと掃除機を購入した新規顧客に対して、各商品間の相関関係に基づいて需要を推測するとします。各商品間の相関係数は以下の通りです。
![](https://chefyushima.com/wp-content/uploads/2023/02/image-54.png)
ここでは相関係数+0.5以上のものを抽出するとします。ペンと相関が強いのはノート・消しゴム・掃除機・食洗器、一方掃除機と相関が強いのはペンでした。購入済の商品を除くと、ノート・消しゴム・食洗器の3つがレコメンドされることになります。
コールドスタート問題
協調フィルタリングでは、これまで想像しなかった商品をレコメンドされるような可能性がある一方、新規ユーザーや新商品を的確にレコメンドすることが難しいコールドスタートと呼ばれるデメリットも存在します。
新規ユーザー
協調フィルタリングでは、当人の購買情報も使って需要を予測します。そのため、新規ユーザーはその人の購買情報が不足しているためにうまくレコメンドできません。また既存ユーザーであって、独特の嗜好を持っている場合は既存の購買情報から需要を推測することが困難です。
新商品
また購買情報に存在しない商品はレコメンドされませんので、結果的に新商品がレコメンドされにくくなるという特徴があります。
コールドスタート問題を回避するには
コールドスタート問題を回避するための手段の1つが、上述の内容ベースフィルタリングです。内容ベースフィルタリングであれば、協調フィルタリングを適用する際には、併用しながら、最適なバランスを探る必要があるのです。
コメント