プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

協調フィルタリングとは?仕組み・3つのステップ・課題をわかりやすく解説

協調フィルタリングとは

協調フィルタリング(Collaborative Filtering)は、メモリベース推論の一種であり、パーソナライズされたレコメンデーションを支援する用途に特に適した手法です。協調フィルタリングシステムは、ユーザーの嗜好に関する履歴データを出発点とします。距離関数は嗜好の重なり具合に基づいて類似度を判定し、「同じものを好きなユーザー同士は互いに近い存在である」とみなします。

さらに、評価(投票)は距離によって重み付けされるため、自分に近い類似ユーザーの評価ほど、推薦結果に大きな影響力を持ちます。言い換えれば、同じ嗜好を持つ仲間集団(ピアグループ)の判断を活用することで、特定のユーザーの現在の好みに合う音楽、書籍、ワインなどを発見するアプローチだといえます。この手法は「ソーシャル情報フィルタリング」とも呼ばれています。

協調フィルタリングは、口コミによる評判をもとに「自分がその商品やコンテンツを好きになるかどうか」を判断するプロセスを自動化する技術です。ただし、単に「多くの人が気に入った」という情報だけでは不十分です。人は誰でも、ある推薦を他の推薦よりも強く信頼します。過去の推薦が的確だった親しい友人のおすすめなら、普段あまり好まないジャンルの新作映画であっても、足を運ぶきっかけになることがあるでしょう。

レコメンデーション生成の3つのステップ

自動化された協調フィルタリングシステムで新規ユーザー向けのレコメンデーションを作成する際は、一般的に以下の3つのステップが踏まれます。

  • ユーザープロファイルの構築: 新規顧客に映画、楽曲、レストランなどのアイテムを選ばせて評価してもらい、そのユーザーの嗜好プロファイルを作成します。
  • プロファイルの比較: 何らかの類似度の尺度を用いて、新規ユーザーのプロファイルを既存ユーザーのプロファイルと比較します。
  • 評価の予測: 類似したプロファイルを持つユーザー群の評価を組み合わせることで、新規ユーザーがまだ評価していないアイテムに対する評価値を予測します。

協調フィルタリングの課題:スパースなプロファイル

協調フィルタリングには一つの大きな課題があります。それは、評価対象のアイテム数が、一人のユーザーが実際に経験したり、進んで評価したりできる数をはるかに上回るという点です。そのため、プロファイルは一般に「スパース(疎)」な状態になり、レコメンデーションの作成に必要なユーザー間の嗜好の重なりが非常に少なくなってしまいます。

ここで、ユーザープロファイルを「評価対象の全アイテムごとに1つの成分を持つベクトル」として考えてみましょう。ベクトルの各要素は、対応するアイテムに対するプロファイル所有者の評価を表し、−5から5までのスケールで記録されます。0は中立の評価、空欄は無回答(意見なし)を意味します。

ベクトルに数千もの成分があり、しかも各ユーザーが「どのアイテムを評価するか」を自由に選べる場合、任意の2人のユーザーのプロファイルが重なる部分はごくわずかにしか残りません。逆に、ユーザーに特定のアイテム群だけを評価させるよう強制すれば、プロファイルの密度は上がります。しかし、ニッチなアイテムの評価の方が、一般的なアイテムの評価よりもそのユーザーの個性を雄弁に物語るケースも多いため、貴重なデータを見逃すリスクが生じます。このように、スパース性とのバランスをどう取るかが、協調フィルタリング設計における重要なポイントとなります。

  1. Firefoxユーザーが知っておきたいWebExtensions移行の意味と影響

    Mozillaの主力ブラウザ「Firefox」に大きな変更が迫っています。同社は昨年、Firefox 48に「WebExtensions」と呼ばれる新機軸を導入しました。これは拡張機能向けの新しいAPIで、これまで使われてきた旧来の(それでいて非常に成功していた)APIを、最終的に置き換えていくものです。この方針転換に、一部のFirefoxユーザーは不安を抱いています。既存の拡張機能がWebExtensionsに対応するために何が必要なのか、まだ完全には明らかになっておらず、いずれすべての拡張機能にWebExtensions対応が義務付けられるためです。ここでは、現時点で判明している情報と、そ

  2. Suftoajachi.comとは?デスクトップに表示される迷惑ポップアップの正体と削除方法

    Suftoajachi.comは、デスクトップにしつこいポップアップを表示させる悪質なウェブサイトです。この不正なドメインは、ブラウザのサイト通知機能を悪用して訪問者から利益を得ています。訪問者をうそぶって通知の購読に誘導するこの手法は、さまざまなコンテンツ制作者やメディア・マーケティング企業の収益源となっています。ユーザーは「ロボットではないことの確認」や「動画の続きの視聴」などを理由に、「許可」ボタンをクリックするよう求められます。ユーザーがよく目にするプロンプトの例としては、次のようなものがあります。「ロボットではないことを確認してください – 『許可』を押してください」「18歳以上の方