3

ユーザーの好みに合うアイテムのリストを選択するアルゴリズムがあります。
機密性の問題のため、アルゴリズムの詳細はスキップします...

今、私はそれを統計的にチェックする方法を考えようとしています。
私が今それをチェックしている方法は次のとおりです。

  1. アルゴリズムは、ユーザーごとに最良の結果を取得します。
  2. 上位 5 つの結果と下位 5 つの結果をシャッフルします。
  3. 人が気に入った結果を順番にリストする (0 = 最も気に入った、9 = 気に入らなかった)
  4. ユーザーの結果をアルゴリズムの結果と比較します。

私がこれを行っているのは、アルゴリズムが良い結果を選択することを示すために、いくつかの悪い結果を入れて、アルゴリズムが悪い結果も知っていることを示す必要があると考えたからです。

だから、私が求めているのは:

上位の結果と下位の結果をシャッフルするのは良い考えですか?

そうでない場合は、アルゴリズムがユーザーの好みにどの程度一致しているかについての優れた統計を取得する方法についてのアイデアはありますか (ユーザーが選択できるものがあります)。

4

3 に答える 3

4

上と下の推測を混合するという問題とは別に、説明したように、実験プロセスの暗黙の欠点は、ユーザーの選択に関連するデータが、アルゴリズムの特定のバージョンのコンテキストでのみ利用できること
です。アルゴリズムまたはそのパラメーターはわずかに調整されているため、過去のユーザーの選択の記録を再利用してアルゴリズムの変更を検証することはできません。

高い結果と低い結果の混合について:
アルゴリズムの上部と下部の推測を混合してアイテムのセットを生成する主な欠点は、アルゴリズムのパフォーマンスを測定するために使用されるエラー/距離関数の選択がさらに複雑になる可能性があることです。項目の2つのサブセット(最上位の選択肢、最下位の選択肢)が個別の測定値を計算する目的で別々に保持されない限り、エラーの一般的な統計的測定値(RMSEなど)は、効果的なアルゴリズムの品質の適切な測定値にはなりません。
たとえば、ユーザーが上位の選択肢として選択することになる推測の少ないアイテムを頻繁に提案するアルゴリズムは、高値と安値を混同しないアルゴリズムと同じ平均エラー率を持つ可能性がありますが、ユーザーはアイテムを並べ替える傾向がありますそれらのサブセット内でより多く。

2番目の欠点は、アルゴリズム評価方法が、ユーザーの実際の最上位の選択肢を生成する能力ではなく、[アルゴリズム]が選択するアイテムのユーザーの相対的な好き/嫌いをフィルタリングする能力を単に限定する可能性があることです。 言い換えれば、ユーザーの実際の最上位の選択肢がユーザーに提供されることは決してないかもしれません。そうですね、アルゴリズムは、ユーザーがラップの前にロックンロールを言うのが好きだと推測するのに適していますが、実際にはユーザーがクラシックバロック音楽を全体的に好むとは決して推測しません。

于 2011-06-25T20:03:16.103 に答える
4

あなたの方法は偏っています。上位 5 件と下位 5 件の結果を使用すると、アルゴリズムに従ってユーザーが注文する可能性が非常に高くなります。音楽を評価するアルゴリズムがあり、上位 1 位と下位 1 位をユーザーに提示するとします。

もちろん、トップとボトムの差が非常に大きいため、ユーザーはアルゴリズムとまったく同じようにマークします。ランダムに選択されたアイテムをユーザーに評価させる必要があります。

于 2011-06-25T19:00:47.503 に答える
4

まず、次のことを自問してください。

何を測定しようとしていますか?

ここで他の提出物を非難するつもりはありませんが、mjv と Sjoerd の回答は、あなたがしようとしていることが期待どおりに機能しない可能性がある理由について、いくつかのもっともらしいヒューリスティックな理由を提供しています。実験に欠陥がある理由と、それを改善するために何ができるかを説明しないという意味で、建設的ではありません。これらの問題のいずれかに対処する前に、何を測定したいかを定義する必要があり、それから初めて実験を考案する必要があります。

さて、あなたの目的に適した指標を構成するものが何であるかは断言できませんが、いくつかの提案をすることができます. 出発点として、適合率と再現率のグラフを使用してみることができます。

http://en.wikipedia.org/wiki/Precision_and_recall

これは、機械学習および情報検索 (つまり、Web 検索) におけるランキングおよび分類アルゴリズムのパフォーマンスを評価するための標準的な手法です。エンジニアリングのバックグラウンドがある場合は、精度/再現率が精度/精度の概念を一般化することを理解しておくと役立ちます。

http://en.wikipedia.org/wiki/Accuracy_and_precision

ここで、アルゴリズムが次のようなことを行うと仮定しましょう。ユーザーに関する以前のデータを入力として受け取り、ユーザーが好む可能性のある他のアイテムのランク付けされたリストを返します。たとえば、アルゴリズムが Web 検索エンジンで、アイテムがページであるとします。または、映画のレコメンデーションがあり、アイテムが本です。これは、あなたが今しようとしていることと非常によく似ているように聞こえるので、この類推を続けましょう。

次に、最初の n に対するアルゴリズムの結果の精度は、最初から上位 n までのレコメンデーションのうち、ユーザーが実際に気に入ったアイテムの数です。

    precision = #(items user actually liked out of top n) / n

リコールは、アイテムの総数のうち、実際に手に入れたアイテムの数です。

    recall = #(items correctly marked as liked) / #(items user actually likes)

理想的には、これらの量の両方を最大化する必要がありますが、ある意味でそれらは競合する目的です。これを説明するために、いくつかの極端な状況を考えてみましょう。たとえば、すべてを返すレコメンダーを使用できます。この場合、リコールは完全になりますが、精度は非常に低くなります。2 番目の可能性は、何も返さないか、確実なヒットを 1 つだけ返すレコメンダーを使用することです。この場合、(限定的な意味で) 完全な精度が得られますが、再現率はほとんどありません。

その結果、ランキング アルゴリズムのパフォーマンスを理解するために、人々は通常、精度と再現率のグラフを確認します。これらは、返されるアイテムの数が変化したときの精度と再現率の単なるプロットです。

次のチュートリアルから取得した画像 (読む価値があります): http://nlp.stanford.edu/IR-book/html/htmledition/evaluation-of-ranked-retrieval-results-1.html

アルゴリズムの精度と再現率を概算するために、次のことができます。まず、アルゴリズムによってランク付けされた n 個の結果の大規模なセットを返します。次に、ユーザーに n 個の結果から実際に気に入った項目をマークしてもらいます。これにより、ドキュメントの部分セット < n (数がわかっているため) ごとに精度を計算するのに十分な情報が簡単に得られます。セット全体でユーザーが気に入ったアイテムの総数を取得することで、(このドキュメント セットに限定して) 再現率を計算することもできます。これにより、このデータの精度再現率曲線をプロットできます。現在、より少ない作業でこれを推定するためのより洗練された統計手法がありますが、私はすでに十分に書いています。詳細については、私の回答の本文にあるリンクを確認してください。

于 2011-06-26T01:56:01.870 に答える