レコメンダーシステム:問題の説明

みなさんこんにちは! 私の名前はセルゲイです。私は数学者で、Surfingbird推薦システムの開発を決定します。 この記事では、特に機械学習と推奨システムに特化したサイクルを開始します-サイクルにいくつのインストールがあるかはまだわかりませんが、定期的にそれらを作成するようにします。 今日は、レコメンダーシステムの一般的な内容を説明し、問題をもう少し正式に提起します。次のシリーズでは、それを解決する方法と、 タチコマレコメンダーシステムが学習する方法について説明します。



画像



推奨システムは、あなたが望むものよりもよく知っているモデルです。 最近、冗談を言うのを聞いたことがあります。ご存知のように、スーパーマーケットチェーンは通常、宣伝したいものを予測しようとします(これは推奨システムの例です)。 特に、スーパーマーケットは女性が妊娠したことを好みを変えて認識しようとし、それを使い始めるかもしれません。 だから、怒った父親がスーパーマーケットのオフィスに突入すると、娘の女子学生はおむつとベビー服のクーポンを郵便で受け取り始めたと言います。 マネージャーは長い間謝罪し、すべてのレコメンダーモデルが確率的であり、エラーが発生する可能性があることを伝える必要がありました。 数ヶ月後、父親は再び来て自分自身を謝罪しました-彼は娘についてすべてを知らなかったことが判明しました...



協調フィルタリングシステムは、過去にあなたや他のユーザーがこの製品や他の製品をどのように評価したかについての入力を受け取ることにより、特定の製品をどれだけ好きになるかを予測しようとするモデルです。 協調フィルタリングは現在、最も人気のあるタイプの推奨システムです。 たとえば、Surfingbirdでは、あなたの評価はボタンが好きなものと嫌いなものです(ページを見て評価を与えなかったという事実だけでなく、後で詳しく説明します)。 好みに関するデータが多いほど、お勧めできる興味深いページが増えます!



有名な推奨システムのその他の例をいくつか示します。



それでは、ラムに戻りましょう。 多くのユーザーと多くの製品( Surfingbirdの場合はWebページ、 Netflixの場合は映画、 Last.fmの場合は楽曲)があり、一部のユーザーは何らかの形で製品を高く評価していると想像してください。 正式には、データは次の形式のトリプルで構成されます 画像 ここで、 iはユーザーを表し、 aは製品を表し、 画像 ユーザーiが製品に与えた評価です。



このデータは、各行がユーザーに対応し、列が製品に対応するマトリックスとして想像できます。 私たちのタスクは、マトリックスの未知の要素を予測することです。 正確に言うと、私たちのタスクは、未知の要素のどれがその行で最大になるか、つまり、どの製品が特定のユーザーに最も好かれるかを予測することです。



協調フィルタリングシステムには、どのモデルでも何らかの方法で解決すべき一般的な問題がいくつかあります。

  1. 原則として、評価マトリックスは非常にまばらです -通常、多くのユーザーと製品があり、平均的なユーザーが製品をほとんど推定しないため、実際には評価は製品よりもはるかに低くなります。 マトリックスの残りの要素は未知であり、正確に予測する必要があるのはそれらです。
  2. コールドスタートの問題。 ユーザーの場合-まだ評価を取得していない新しいユーザーが到着したとき、彼をどうするか? まあ、まあ、まったくないとき、それは何でもありません-最も人気のある製品を単にお勧めできます。 しかし、ユーザーがすでに何かに感謝しているが、これまでのところほんの少しだったらどうでしょうか? 製品の場合、新製品を自信を持って推奨できるようになるまでに、いくつの評価が必要ですか? そして、あなたが誰かにそれを推薦しないならば、これらの評価はどこから来ますか?


次のシリーズでは、これらの問題やその他の問題の対処方法、および未知の評価を一般的に予測する方法についてお話しします。お楽しみに!



All Articles