現在、Apache Luceneに基づいた小さな社内検索エンジンを構築しています。その目的は簡単です-いくつかのキーワードに基づいて、社内で書かれた記事を提案します。基本メトリックとしてかなり標準的なTF-IDFスコアリングを使用しており、その上に独自のスコアリングメカニズムを構築しています。これらのすべては、ランキングがめちゃくちゃになっているように見えるいくつかのコーナーケースを除いて、うまく機能しているようです。
したがって、私がやろうとしているのは、検索結果ページに小さな関連/非関連リンクを追加して、その結果が最初に含まれるべきかどうかの認識に応じてユーザーがそれらのいずれかをクリックできるようにすることです。
私のアイデア
- これらの関連/非関連をラベルとして扱い、トレーニングデータを作成します。
- このデータを使用して分類器(SVMなど)をトレーニングします
- このモデルを検索エンジンに組み込みます。つまり、新しい結果はすべて分類子を通過し、関連性があるかどうかのラベルが割り当てられます。
このアプローチは直感的に思えますが、実際に機能するかどうかはわかりません。私には2つの具体的な質問があります。
- すべての機能を抽出する必要がありますか?
- 機械学習コンポーネントを検索エンジンに統合するより良い方法はありますか?私の最終目標は、ビジネスロジックとユーザーフィードバックの両方に基づいてランキング関数を「学習」することです。