局所性に敏感なハッシュの増幅


10

可能なすべてのペアを比較する必要なく、類似した候補アイテムのペアを見つけることができるように、コサイン局所性に敏感なハッシュを作成しようとしています。基本的には機能していますが、データ内のほとんどのペアは-0.2から+0.2の範囲でコサイン類似度を持っているようですので、細かくダイシングしてコサイン類似度0.1以上のものを選択しようとしています。

私は大量データセットのマイニングの第3章を読んでいます。これは、局所性に敏感なファミリーを増幅することにより、候補ペアの選択の精度を高めることについて説明しています。私は数学的な説明を理解するところだと思いますが、これを実際に実装する方法を見るのに苦労しています。

これまでのところは次のとおりです

  1. 100万人のユーザーの一部の選択からの評価付きの1000本の映画と言っています。各映画は、ユーザースコアのスパースベクトルで表されます(行番号=ユーザーID、値=ユーザーのスコア)
  2. N個のランダムなベクトルを作成します。ベクトルの長さは、映画のベクトルの長さ(つまり、ユーザー数)と一致します。ベクトル値は+1または-1です。私は実際にこれらのベクトルをバイナリとしてエンコードしてスペースを節約し、+ 1を1に、-1を0にマッピングします
  3. 映画とN個のランダムベクトルのそれぞれのドット積をとって、各映画のスケッチベクトルを構築します(または、N個のランダムベクトルを水平に配置し、それらを互いの上に重ねてからスケッチで行列Rを作成した場合は、スケッチ映画mはR * m)であり、結果のベクトルの各要素の符号を取るので、+ 1と-1の各映画のスケッチベクトルで終わります。各ベクトルは長さNビットです。
  4. 次に、次のようにして類似のスケッチを探します
    1. スケッチベクトルをrビットのbバンドに分割します
    2. rビットの各バンドは数値です。その番号をバンド番号と組み合わせて、その番号の下のハッシュバケットに映画を追加します。各ムービーは複数のバケットに追加できます。
    3. 次に、各バケットを調べます。同じバケットにある映画はすべて候補ペアです。

これをmmdsの3.6.3と比較すると、私のANDステップは、rビットのバンドを見るときです。rビットの値が同じであれば、2つのムービーがANDステップを通過します。私のORステップはバケットで発生します。両方のバケットに含まれている映画は候補ペアです。

この本は、ANDとORのステップを追加することで結果を「増幅」できることを示唆していますが、追加のレイヤーの構築プロセスの説明は、ペアワイズの同等性のチェックではなく、バケット番号を考え出す。

誰かがこれを行う方法を理解するのを手伝ってくれる?

回答:


4

私は何かを解決したと思います。基本的に私はマップ/リデュースタイプ環境で機能するアプローチを探しています。このアプローチはそれを行うと思います。

そう、

  • r行のbバンドがあり、別のANDステージ、たとえば別のc ANDを追加したいとします。
  • b * rビットの代わりに、b * r * cビットのハッシュが必要です
  • 以前のプロシージャをc回実行し、毎回b * rビットで実行します
  • これらの手順のいずれかによってxとyが候補ペアであることが判明した場合、キーと値1のID(x、y)のタプルを持つキーと値のペア((x、y)、1)を発行します。
  • cプロシージャの最後に、これらのペアをキーと合計でグループ化します
  • 合計がcに等しいペア(x、y)は、c回のラウンドのそれぞれで候補ペアであり、手順全体の候補ペアでもあります。

だから今私は実行可能な解決策を持っています、そして私がする必要があるのは、このような3つのステップを使用することが実際に私がより少ない全体的なハッシュビットまたはより良い全体的なパフォーマンスでより良い結果を得るのに役立つかどうかを計算することです...


0

h(x,v)={0if sgn(xv)<01else
vh(x,i)=(h(x,vi+1),...,h(x,vi+r))h(x,j)=f(h(x,rj),j)
h(x,y)={1if h(x,j)=h(y,j) for any j[0,b)0else
h(x,y)h^:SSS、しかしそうすることはまた偽陽性および/または陰性をもたらす可能性があります。ハッシュのアイデアの1つは、 すべてののの最小値(またはすべてのとすべての直接的および間接的に関連付けられたの最小値)です。どちらも明らかにバイアスをもたらします。私はこれらの1つを試すかもしれませんが、ランダムな1つのAND / ORからのハッシュが次回に意味があるかどうかはわかりません。しかし、ランダムな均一な分布と多数の複製を考えると、多分?h(x,j)jjyv
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.