Locality Sensitive Hashing(LSH)–複数のソースからのジョブの重複排除のためのスケーラブルなソリューション
トピックに戻る—重複排除が重要なのはなぜですか?
私たちは、Kalibrrからのジョブ投稿の大規模なコーパスを使用して、さまざまな公共の求人投稿から採掘されたジョブ投稿と組み合わせて、モデルを訓練し 類似のジョブ記述を含むコーパス内に複数のジョブを持つことは、モデルにとって有害です。 その例は下の画像に示されています。
Duplicate job descriptions associated to varying positions can affect the model’s performance in distinguishing context between different job titles. ディープラーニングや一般的な機械学習では、モデルは一連の特徴をカテゴリにマップしたり、目的を最適化したりする関数を学習するように訓練されているため、類似しているが異なるターゲットに関連付けられている入力を持つことは、モデルの信頼性とパフォーマンスに確実に影響します。
予測パフォーマンスの問題に加えて、大部分のデータが重複している大規模なコーパスを持つモデルをトレーニングすると、不要な計算リソースが消費
これは、データを理解することがモデルのパフォーマンスにどのように容易に影響するかを示しています。
Tf-Idf—単純な重複排除アルゴリズム
重複の検出は、さまざまな方法で行うことができます。 Tf-idfのような単純なベクトル表現で文書を表現することは、類似した文書を発見するための合理的な方法であり得る。 これは、文書ベクトル間の余弦またはユークリッド類似性などの類似性指標を比較することによって行うことができます。
次のスニペットでは、ほぼ同一のテキストを識別するためにアルゴリズムを適用する方法を示します。
このメソッドは小さなコーパスで動作しますが、ドキュメントを変換した後のベクトルの次元が得られるため、スケールするのは非常に困難です。 また、スクリプトがパイプライン全体を実行するのに319ミリ秒かかったことに注意してください。 これは、”次元の呪い”の多くの現れの一つです—変換の高い次元は、分析の空間と時間の複雑さの両方に影響を与えます。
局所性敏感ハッシュ(LSH)—スケーラブルな技術
この問題の解決策は、局所性敏感ハッシュ(LSH)です。 LSH法は,大規模なデータセットに対して類似性に近い解析を行うことができる。 ハッシュを使用して、同等のtf-idf変換よりも桁違いに低い次元を持つドキュメントをバケットにマップします。 この特性により、LSHはテキストマイニングなどの大規模なアプリケーションでの使用が便利になります。LSHは衝突の確率を計算するためにminhashアルゴリズムを使用します。
LSHは衝突の確率を計算するためにminhashアルゴリズムを使用します。 Minhashを用いたLSHにおける衝突確率はJaccard類似度計量と等価であることを示した。 簡単に言えば、Jaccard similarityは、2つの集合の共通部分を各集合の要素の和集合で割ったものを計算します。 その式を以下に示す。P>
Jaccardの類似性は、次のアイデアを定量化します—より一般的な項目を持つ二つのグループは、類似している可能性があります。wikipediaによると、LSHについてのスニペットは次のとおりです。
局所性に敏感なハッシュ(LSH)は、高次元データの次元を減らします。 LSHは入力項目をハッシュして、類似した項目が高い確率で同じ”バケット”にマップされるようにします(バケットの数は、可能な入力項目のユニバースより LSHは、類似したアイテムの”衝突”の確率を最大化することを目的としているため、従来のハッシュ関数や暗号化ハッシュ関数とは異なります。 局所性に敏感なハッシュは、データクラスタリングや最近傍探索と多くの共通点があります。
LSH at work
このモジュールを使用して、上記の同じ例に適用されたLSHの実装を以下に示します。DIV>
コーパスにLSHを適用しましたが、ほぼ同様のコンテンツを持ついくつかのジョブ投稿が200回以上表示されることがわかりました!Tf-Idfはより一般的であり、テキストの類似性を扱うためのより使い慣れたモデルですが、スケールの大きいデータセットを扱う場合、LSHはより便利なモデ より小さなデータセットであっても、LSHは計算時間を大幅に改善します。
コーパスを適切に重複排除できることは、トレーニングデータのノイズを低減し、計算リソースを節約し、ユースケースのより正確なモデルを学習するのに役
私たちは、LSHが次のように適用できる多くの問題があると信じています。
- 重複した画像のクリーンアップ:画像機能にLSHを適用し、各ビンから一意の画
- チャットボット:類似した入力の近くを識別し、知識ベースから最良の応答を識別するためにモデルを訓練します。
- 推奨エンジン:類似した機能を持つアイテムをグループ化し、ユーザーにアイテムを承認します。
あなた自身の問題にLSHを探索して試してみてください! 🙂
LSHに関する参考文献
これらの記事は、LSHがどのように機能するかを非常によく説明し、例も示しています。
ここでは、LSHについて説明する大規模なデータセットのマイニングに関するコースです。