協調フィルタリングが面白い!

Webマイニング分野でポピュラーな「情報推薦」、そこで頻繁に使われるのが協調フィルタリングですね。私も興味を持ったので調べました。

1番最初に詰まったのが「推薦方法には(1)コンテンツベース手法と(2)協調フィルタリング手法があり、協調フィルタリングには(2-1)アイテムベース手法と(2-2)ユーザベース手法がある。」という説明。コンテンツベースとアイテムベースって同じようなものに聴こえたんですけど・・ん?(混乱)

というわけで、このあたりの違いに着目しながらまとめます。ポイントはコンテンツ特徴に着目するのか、購買履歴に着目するのかです。

コンテンツベースフィルタリング(content-based filtering)

コンテンツ特徴に着目して情報推薦する手法。推薦は応用範囲が広く、店頭に並ぶ製品に加えて観光地・音楽・映画などが挙げれます。これらをまとめてコンテンツと呼びます。

コンテンツベースフィルタリングでは各コンテンツに手動で特徴設定が必要です。これにはセンスが問われます。例えば、「君の名は。」の特徴には「アニメーション」「新海誠」「恋愛」などが考えられます。

これらを特徴ベクトルで表現して、距離定義に基づいて算出した類似度でソートすることで、検索キーワード(例『映画、新海誠』)に対して「君の名は。」を推薦できます。

ここで「ん?」と思った方がいるかもしれません。「君の名は。ってジャンル『恋愛』なの?」「もっと色々な特徴あるんじゃないの?」と。

実はコンテンツベース手法には次の弱点があります。
①特徴設定に専門性(ドメイン知識)が求められる
②特徴の多様性に欠ける

そこで協調フィルタリングの出番です。

協調フィルタリング(collaborative filtering)※アイテムベース

協調フィルタリングにはアイテムベースとユーザベースとありますが、ここではアイテムベースの説明をします。

協調フィルタリングではコンテンツの特徴ではなく購買履歴に着目します。各コンテンツがどんなものなのかという特徴を職人が知恵を凝らして設定するのではなく、「ユーザからの評価は?」「どんなコンテンツと一緒に購入された?」といった購買履歴を分析して特徴抽出します。

コンテンツベース手法には①専門性が求められる、②多様性に欠けるという弱点がありましたが、購買履歴を分析するので手動の特徴設定が不要()、購買行動はコンテンツの特徴に基づいて発生する()ことから弱点を解決しています。

ここでいう特徴とはジャンルや作家といった明確なものではなく、「こんな人たちに売れてる」という程度の曖昧な数値です。推薦とは「コレが好きな人はコッチも好きだろうな」というコンテンツ同士の類似度が必要で、コンテンツがどんな特徴を持っているか曖昧でも成り立つのです。

協調フィルタリング(collaborative filtering)※ユーザベース

同じく購買履歴に着目します。先ほどはコンテンツを分類しましたが今回はユーザを分類します。この背景には「ユーザの購買行動には傾向と特徴があり、分類可能である。」という仮定があります。そこでユーザ類似性を算出して「似たユーザには同じものを推薦すればいい。」という考えから、何を推薦するのか決定します。

以下のGifがわかりやすいのでご覧ください。


By MoshaninOwn work, CC BY-SA 3.0, Link

ColdStart問題

購買履歴がないと協調フィルタリングは使えません。つまり新規ユーザや新商品には適用できない問題があります。新商品は誰もまだ購入していないため「この商品は誰にも買われていません」という結果になります。

市場投入してしばらく経つのに購入されてないならレコメンドしないのが正解ですが、市場投入したばかりで購入履歴がないからレコメンドしないのは不適切ですよね。

このようにデータが足りない状況を欠損値問題といい、欠損値をどう補うのか様々な研究がされています。

少数派問題

独特な好みを持つユーザや、今までに類がないような斬新な商品といった少数派には、類似するものを見つけられないため協調フィルタリングが有利に働かないという問題も報告されています。

協調フィルタリングのまとめ

・購買履歴から似たユーザ、似たコンテンツを定義

・ドメイン知識が不要

・ユーザが多いと購買履歴が集まりやすいので有利

・新商品投入など新陳代謝が激しい場合は不利

・類似する仲間がいなければ推薦できない少数派問題