推奨システムは、あなたが望むものよりもよく知っているモデルです。 最近、冗談を言うのを聞いたことがあります。ご存知のように、スーパーマーケットチェーンは通常、宣伝したいものを予測しようとします(これは推奨システムの例です)。 特に、スーパーマーケットは女性が妊娠したことを好みを変えて認識しようとし、それを使い始めるかもしれません。 だから、怒った父親がスーパーマーケットのオフィスに突入すると、娘の女子学生はおむつとベビー服のクーポンを郵便で受け取り始めたと言います。 マネージャーは長い間謝罪し、すべてのレコメンダーモデルが確率的であり、エラーが発生する可能性があることを伝える必要がありました。 数ヶ月後、父親は再び来て自分自身を謝罪しました-彼は娘についてすべてを知らなかったことが判明しました...
協調フィルタリングシステムは、過去にあなたや他のユーザーがこの製品や他の製品をどのように評価したかについての入力を受け取ることにより、特定の製品をどれだけ好きになるかを予測しようとするモデルです。 協調フィルタリングは現在、最も人気のあるタイプの推奨システムです。 たとえば、Surfingbirdでは、あなたの評価はボタンが好きなものと嫌いなものです(ページを見て評価を与えなかったという事実だけでなく、後で詳しく説明します)。 好みに関するデータが多いほど、お勧めできる興味深いページが増えます!
有名な推奨システムのその他の例をいくつか示します。
- Amazonはこの地域のリーダーの1つです。 Amazonは、購入したもの、見たもの、評価したもの、残したレビューに基づいて本や他の製品をお勧めします...はい、通常、ビッグブラザーは何かを使用できない場合でもすべてを収集します。
- Netflix-ロシアでは、この会社はほとんど知られておらず、ロシアでは機能しませんが、有名なNetflix賞を発表した際に科学界で最も有名な声明を発表したのはNetflixでした。 (Netflix賞と、そこから学んだ教訓については、次のシリーズのいずれかで説明します)。 Netflixのコアビジネスは映画レンタルです。 現在、同社はストリーミングビデオに切り替えていますが、生涯の最初の10年間に物理DVDを郵送し、次のDVDを入手するために返送する必要がありました(サブスクリプションの費用がかかりました)。 ロシア人にとっては、映画をダウンロードするためにお金を払ったり、ダウンロードすることさえできず、オンラインで視聴することは難しいのですが、このモデルは非常に成功し、数年間Netflix Prize向けに公開されたデータセットが主要なテストケースになりました共同フィルタリングシステム(現在は、匿名化の可能性があるためNetflixがオープンアクセスから削除され、 Yahoo!KDD Cup Datasetに置き換えられました)。
- Last.fmとPandoraは音楽を推奨しています。 Last.fmは、他のユーザーの評価に加えて、音楽に関する専ら「外部」データ(作者、スタイル、日付、タグなど)を使用し、 Pandoraは楽曲の「コンテンツ」に基づいて、興味深いアイデアはMusic Genome Projectです。このプロジェクトでは、プロのミュージシャンが数百の属性に従って楽曲を分析します (残念ながら、 Pandoraは現在ロシアでは利用できません)。 確かに、組成物を自動的に分析する方法はまだ誰も知りません。これは機械学習のためのもう1つの興味深い取り組みです...
- Google 、 Yahoo! 、 Yandex-ユーザーにサイトを推奨していると言えますか? 正式に-はい、しかし実際にはそれらは異なるシステムです。検索エンジンは、このドキュメントがこのクエリにどの程度関連するかを予測しようとし、推奨者はこのユーザーがこの製品に与える評価を予測しようとします。 もちろん、検索エンジンの成功には、ユーザーからのデータ(クリックログ)に基づいたモデルのかなりのメリットがあり、もちろん、検索結果は多くの場合パーソナライズされますが、それでもタスクは少し異なります。 私たちのタスクに少し近いのは、どの広告をユーザーに表示するかという問題です( AdSense 、 Yandex.Directなど)-ここでユーザーは実際に広告に「自分の足で投票」し、ポジティブを引き起こす可能性のあるものを「推奨」する必要があります反応。 しかし、問題は経済的な側面によって複雑です(広告主はお金を払い、広告を出す権利のためにオークションを彼らの間で手配しなければなりません)。 ただし、主要な検索エンジンには、推奨システムに基づいた多くのサイドプロジェクトがあります。たとえば、すでにYahoo! ミュージック
それでは、ラムに戻りましょう。 多くのユーザーと多くの製品( Surfingbirdの場合はWebページ、 Netflixの場合は映画、 Last.fmの場合は楽曲)があり、一部のユーザーは何らかの形で製品を高く評価していると想像してください。 正式には、データは次の形式のトリプルで構成されます ここで、 iはユーザーを表し、 aは製品を表し、 ユーザーiが製品に与えた評価です。
このデータは、各行がユーザーに対応し、列が製品に対応するマトリックスとして想像できます。 私たちのタスクは、マトリックスの未知の要素を予測することです。 正確に言うと、私たちのタスクは、未知の要素のどれがその行で最大になるか、つまり、どの製品が特定のユーザーに最も好かれるかを予測することです。
協調フィルタリングシステムには、どのモデルでも何らかの方法で解決すべき一般的な問題がいくつかあります。
- 原則として、評価マトリックスは非常にまばらです -通常、多くのユーザーと製品があり、平均的なユーザーが製品をほとんど推定しないため、実際には評価は製品よりもはるかに低くなります。 マトリックスの残りの要素は未知であり、正確に予測する必要があるのはそれらです。
- コールドスタートの問題。 ユーザーの場合-まだ評価を取得していない新しいユーザーが到着したとき、彼をどうするか? まあ、まあ、まったくないとき、それは何でもありません-最も人気のある製品を単にお勧めできます。 しかし、ユーザーがすでに何かに感謝しているが、これまでのところほんの少しだったらどうでしょうか? 製品の場合、新製品を自信を持って推奨できるようになるまでに、いくつの評価が必要ですか? そして、あなたが誰かにそれを推薦しないならば、これらの評価はどこから来ますか?
次のシリーズでは、これらの問題やその他の問題の対処方法、および未知の評価を一般的に予測する方法についてお話しします。お楽しみに!