8

さまざまなアイテムをユーザーの好みに合わせて推薦するというコンセプトで構築されたウェブサイトをデザイン中です。(つまり、評価したアイテム、お気に入りリストに追加されたアイテムなど)この例としては、Amazon、Movielens、Netflixなどがあります。

さて、私の問題は、このシステムの数学的部分に関してどこから始めればよいかわからないということです。私は必要な数学を学びたいと思っています、それは私がどんな種類の数学が必要かわからないだけです。

Grouplens.orgにあるいくつかの出版物、特に「スケーラブルなkNN CFアルゴリズムに向けて:クラスタリングの効果的なアプリケーションの調査」を見てきました。(pdf)5ページ「予測生成」まですべてを理解するのはかなり得意です

ps何が起こっているのかについての説明を正確に探しているわけではありませんが、それは役立つかもしれませんが、私が知る必要のある数学にもっと興味があります。このようにして、私は何が起こっているのかを理解することができます。

4

5 に答える 5

11

著者が導入した手順を説明しましょう(私が理解したとおり):

入力:

  • トレーニング データ: ユーザー、アイテム、およびこれらのアイテムに対するユーザーの評価 (各ユーザーがすべてのアイテムを評価するとは限りません)
  • 対象ユーザー: いくつかのアイテムのいくつかの評価を持つ新規ユーザー
  • ターゲット アイテム: ターゲット ユーザーによって評価されていない、評価を予測したいアイテム。

出力:

  • 対象ユーザーによる対象アイテムの予測

これを一連のアイテムに対して繰り返すことができ、次に N 上位のアイテム (予測された最高の評価) を返します。

手順:
このアルゴリズムは、単純なKNNメソッドと非常によく似ています (すべてのトレーニング データを検索して、ターゲット ユーザーと同様の評価を持つユーザーを見つけ、それらの評価を組み合わせて予測 [投票] を行います)。
この単純な方法は、ユーザー/アイテムの数が増えると、うまくスケーリングできません。

提案されたアルゴリズムは、最初にトレーニング ユーザーをK個のグループ (項目を同様に評価した人々のグループ) にクラスター化することです。ここで、K << N ( Nはユーザーの総数) です。
次に、これらのクラスターをスキャンして、ターゲット ユーザーが最も近いクラスターを見つけます (すべてのトレーニング ユーザーを調べるのではなく)。
最後に、それらの中からl個を選択し、それらのl個のクラスターまでの距離によって重み付けされた平均として予測を行います。

使用される類似度の尺度は相関係数であり、クラスタリング アルゴリズムはバイセクティング K-Means アルゴリズムであることに注意してください。標準のkmeansを使用するだけでよく、ユークリッド距離やコサイン距離などの他の類似度メトリックも使用できます。

5 ページの最初の式は、相関の定義です。

corr(x,y) = (x-mean(x))(y-mean(y)) / std(x)*std(y)

2 番目の式は基本的に加重平均です。

predRating = sum_i(rating_i * corr(target,user_i)) / sum(corr(target,user_i))
               where i loops over the selected top-l clusters

これが物事を少し明確にすることを願っています:)

于 2009-10-03T03:18:29.170 に答える
8

集合知プログラミングは、Pythonのサンプルコードがたくさんある、この分野の非常にユーザーフレンドリーな入門書です。少なくとも、このトピックに関する学術論文の数学を理解するための準備を整えるのに役立ちます。

于 2009-10-03T02:36:55.260 に答える
5

インテリジェントWebのアルゴリズム(H Marmanis、D Babenko、Manning出版)は、サブジェットの紹介テキストです。検索の概念についても説明しますが、その主な焦点は分類、推奨システムなどです。これはプロジェクトの入門書として適切であり、適切な質問をしたり、状況でより有望または実用的であると思われる場所を深く掘り下げたりすることができます。

この本には、関連する数学のトピック(主に線形代数)の「復習」も含まれていますが、この復習は最小限です。あなたはウェブ上でより良くするでしょう。

線形代数を発見したり、線形代数に戻ったりするための楽しい方法は、MITOpenCourseWareで利用可能なGilbertStrand教授の18.06講義シリーズに従うことです。

線形代数は救いへの唯一の方法ではありません;-)分布、共分散、ベイズ推定などの基本的な統計の概念をブラッシュアップすることが役立つ場合があります。

于 2009-10-03T02:46:28.347 に答える
1

あなたはおそらく知っているはずです:

  • 線形代数
  • 人工知能 / 機械学習 / 統計

あった方がよい:

  • メトリック スペース
  • トポロジー
  • EDA / 堅牢な統計
  • アフィン代数
  • 機能解析
  • グラフ理論

とはいえ、常識だけでどこまでも行ける。システムに満足させたい特性のリストがある場合、それらの特性を満たすコードを書くだけで多くのことができるようになります。

例は次のとおりです。

  • 「悪い」推奨は決してしない
  • スコアはいくつかのパラメータで単調に増加しています
  • X、Y、Z の改善のアイデアの扉を開いたままにしておいてください。
于 2011-03-14T05:14:56.550 に答える