NLP-情報検索
情報検索(IR)は、ドキュメントリポジトリからの情報、特にテキスト情報の編成、保存、検索、および評価を処理するソフトウェアプログラムとして定義できます。このシステムは、ユーザーが必要な情報を見つけるのを支援しますが、質問の回答を明示的に返すことはありません。必要な情報で構成される可能性のあるドキュメントの存在と場所を通知します。ユーザーの要件を満たすドキュメントは、関連ドキュメントと呼ばれます。完璧なIRシステムは、関連するドキュメントのみを取得します。
次の図の助けを借りて、情報検索(IR)のプロセスを理解することができます-
上の図から、情報が必要なユーザーは、自然言語でクエリの形式でリクエストを作成する必要があることが明らかです。次に、IRシステムは、必要な情報について、ドキュメントの形式で関連する出力を取得することによって応答します。
情報検索(IR)システムにおける古典的な問題
IR研究の主な目標は、ドキュメントのリポジトリから情報を取得するためのモデルを開発することです。ここでは、という名前の古典的な問題について説明しますad-hoc retrieval problem、IRシステムに関連します。
アドホック検索では、ユーザーは必要な情報を説明する自然言語でクエリを入力する必要があります。次に、IRシステムは、必要な情報に関連する必要なドキュメントを返します。たとえば、インターネットで何かを検索していて、要件に従って関連性のある正確なページがいくつか表示されているが、関連性のないページもいくつかあるとします。これは、アドホック検索の問題が原因です。
アドホック検索の側面
以下は、IR研究で扱われるアドホック検索のいくつかの側面です-
関連性フィードバックの助けを借りて、ユーザーはどのようにしてクエリの元の定式化を改善できますか?
データベースのマージを実装する方法、つまり、異なるテキストデータベースの結果を1つの結果セットにマージする方法は?
部分的に破損したデータを処理する方法は?どのモデルが同じに適していますか?
情報検索(IR)モデル
数学的には、モデルは、現実世界のある現象を理解することを目的とした多くの科学分野で使用されています。情報検索のモデルは、特定のクエリに関連してユーザーが何を見つけるかを予測して説明します。IRモデルは、基本的に、検索手順の上記の側面を定義するパターンであり、次のもので構成されます。
ドキュメントのモデル。
クエリのモデル。
クエリをドキュメントと比較するマッチング関数。
数学的には、検索モデルは次のもので構成されます。
D −ドキュメントの表現。
R −クエリの表現。
F − D、Qのモデリングフレームワークとそれらの間の関係。
R (q,di)−クエリに関してドキュメントを順序付ける類似性関数。ランキングとも呼ばれます。
情報検索(IR)モデルの種類
情報モデル(IR)モデルは、次の3つのモデルに分類できます。
古典的なIRモデル
これは、IRモデルを実装するのに最も簡単で簡単です。このモデルは、簡単に認識および理解できる数学的知識に基づいています。ブール、ベクトル、確率は3つの古典的なIRモデルです。
非古典的IRモデル
これは、従来のIRモデルとは完全に反対です。このような種類のIRモデルは、類似性、確率、ブール演算以外の原則に基づいています。非古典的IRモデルの例としては、情報論理モデル、状況理論モデル、相互作用モデルがあります。
代替IRモデル
これは、他のいくつかの分野からのいくつかの特定の技術を利用した古典的なIRモデルの拡張です。クラスターモデル、ファジーモデル、潜在意味インデックス(LSI)モデルは、代替IRモデルの例です。
情報検索(IR)システムの設計機能
IRシステムの設計機能について学びましょう-
転置インデックス
ほとんどのIRシステムの主要なデータ構造は、転置インデックスの形式です。転置インデックスは、すべての単語について、それを含むすべてのドキュメントとドキュメント内での出現頻度をリストするデータ構造として定義できます。クエリワードの「ヒット」を簡単に検索できます。
単語の削除を停止します
ストップワードは、検索に役立つ可能性が低いと見なされる高頻度の単語です。それらは意味的な重みが少ない。そのような種類の単語はすべて、ストップリストと呼ばれるリストに含まれています。たとえば、冠詞「a」、「an」、「the」、および「in」、「of」、「for」、「at」などの前置詞は、ストップワードの例です。転置インデックスのサイズは、ストップリストによって大幅に縮小できます。ジップの法則に従って、数十語をカバーするストップリストは転置インデックスのサイズをほぼ半分に減らします。一方、ストップワードを削除すると、検索に役立つ用語が削除される場合があります。たとえば、「ビタミンA」からアルファベット「A」を削除した場合、それは意味がありません。
ステミング
形態素解析の簡略化された形式であるステミングは、単語の末尾を切り落とすことによって単語の基本形式を抽出するヒューリスティックプロセスです。たとえば、「笑う」、「笑う」、「笑う」という単語は、「笑う」という語根に由来します。
以降のセクションでは、いくつかの重要で有用なIRモデルについて説明します。
ブールモデル
これは最も古い情報検索(IR)モデルです。このモデルは、集合論とブール代数に基づいています。ここで、ドキュメントは用語のセットであり、クエリは用語のブール式です。ブールモデルは次のように定義できます-
D−単語のセット、つまり、ドキュメントに存在する索引語。ここで、各用語は存在する(1)または存在しない(0)のいずれかです。
Q −ブール式。ここで、用語はインデックス用語であり、演算子は論理積です-AND、論理和-ORおよび論理差-NOT
F −用語のセットおよびドキュメントのセットに対するブール代数
関連性フィードバックについて話す場合、ブールIRモデルでは、関連性予測は次のように定義できます。
R −ドキュメントは、クエリ式を次のように満たす場合にのみ、クエリ式に関連すると予測されます。
((˅)˄˄〜ℎ)
このモデルは、一連のドキュメントの明確な定義としてのクエリ用語によって説明できます。
たとえば、クエリ用語 “economic” 用語で索引付けされたドキュメントのセットを定義します “economic”。
さて、用語をブールAND演算子と組み合わせた後の結果はどうなるでしょうか?これは、単一の用語のいずれかのドキュメントセット以下のドキュメントセットを定義します。たとえば、用語を含むクエリ“social” そして “economic”両方の用語で索引付けされたドキュメントのドキュメントセットを生成します。つまり、両方のセットが交差するドキュメントセットです。
さて、用語をブールOR演算子と組み合わせた後の結果はどうなるでしょうか?単一の用語のいずれかのドキュメントセット以上のドキュメントセットを定義します。たとえば、用語を含むクエリ“social” または “economic” いずれかの用語で索引付けされたドキュメントのドキュメントセットを生成します “social” または “economic”。つまり、両方のセットを結合したドキュメントセットです。
ブールモードの利点
ブールモデルの利点は次のとおりです。
セットに基づく最も単純なモデル。
理解と実装が簡単です。
完全一致のみを取得します
これにより、ユーザーはシステムを制御できるようになります。
ブールモデルのデメリット
ブールモデルの欠点は次のとおりです。
モデルの類似度関数はブール値です。したがって、部分的な一致はありません。これはユーザーにとって迷惑になる可能性があります。
このモデルでは、ブール演算子の使用法は、重要な単語よりもはるかに大きな影響を及ぼします。
クエリ言語は表現力豊かですが、複雑でもあります。
取得したドキュメントのランキングはありません。
ベクトル空間モデル
ブールモデルの上記の欠点のために、Gerard Saltonと彼の同僚は、Luhnの類似性基準に基づくモデルを提案しました。Luhnによって策定された類似性基準は、「特定の要素とそれらの分布で合意された2つの表現が多いほど、それらが類似した情報を表す可能性が高くなる」と述べています。
ベクトル空間モデルについてさらに理解するには、次の重要な点を考慮してください。
インデックス表現(ドキュメント)とクエリは、高次元のユークリッド空間に埋め込まれたベクトルと見なされます。
ドキュメントベクトルとクエリベクトルの類似性の尺度は、通常、それらの間の角度の余弦です。
コサイン類似度測定式
コサインは正規化された内積であり、次の式を使用して計算できます。
$$スコア\ lgroup \ vec {d} \ vec {q} \ rgroup = \ frac {\ sum_ {k = 1} ^ m d_ {k} \:。q_ {k}} {\ sqrt {\ sum_ {k = 1} ^ m \ lgroup d_ {k} \ rgroup ^ 2} \:。\ sqrt {\ sum_ {k = 1} ^ m} m \ lgroup q_ {k} \ rgroup ^ 2} $$
$$スコア\ lgroup \ vec {d} \ vec {q} \ rgroup = 1 \:when \:d = q $$
$$スコア\ lgroup \ vec {d} \ vec {q} \ rgroup = 0 \:when \:d \:and \:q \:share \:no \:items $$
クエリとドキュメントによるベクトル空間表現
クエリとドキュメントは、2次元のベクトル空間で表されます。用語はcar そして insurance。ベクトル空間には1つのクエリと3つのドキュメントがあります。
車と保険の条件に応じて上位にランク付けされたドキュメントがドキュメントになります d2 間の角度のため q そして d2最小です。この背後にある理由は、自動車と保険の両方の概念がd 2で顕著であり、したがって重みが高いためです。反対側では、d1 そして d3 また、両方の用語についても言及していますが、いずれの場合も、どちらか一方がドキュメントの中心的な重要な用語ではありません。
用語の重み付け
用語の重み付けとは、ベクトル空間の用語の重みを意味します。用語の重みが大きいほど、コサインに対する用語の影響が大きくなります。モデル内のより重要な用語には、より多くの重みを割り当てる必要があります。ここで発生する問題は、これをどのようにモデル化できるかということです。
これを行う1つの方法は、ドキュメント内の単語を用語の重みとしてカウントすることです。しかし、それは効果的な方法だと思いますか?
より効果的な別の方法は、を使用することです term frequency (tfij), document frequency (dfi) そして collection frequency (cfi)。
期間頻度(tf ij)
それはの発生数として定義されるかもしれません wi に dj。用語の頻度によって取得される情報は、特定のドキュメント内で単語がどれだけ目立つかということです。言い換えると、用語の頻度が高いほど、その単語はそのドキュメントの内容を適切に説明していると言えます。
ドキュメントの頻度(df i)
これは、wiが発生するコレクション内のドキュメントの総数として定義できます。それは有益性の指標です。意味的に焦点が合っていない単語とは異なり、意味的に焦点が合っている単語は、ドキュメント内で数回出現します。
収集頻度(cf i)
これは、の発生の総数として定義できます。 wi コレクション内。
数学的には、$ df_ {i} \ leq cf_ {i} \:and \:\ sum_ {j} tf_ {ij} = cf_ {i} $
ドキュメント頻度の重み付けの形式
ここで、ドキュメントの頻度の重み付けのさまざまな形式について学習しましょう。フォームは以下のとおりです-
用語頻度因子
これは、用語頻度因子としても分類されます。つまり、 t ドキュメントに頻繁に表示され、その後、 tそのドキュメントを取得する必要があります。単語を組み合わせることができますterm frequency (tfij) そして document frequency (dfi) 次のように単一の重みに-
$$ weight \ left(i、j \ right)= \ begin {cases}(1 + log(tf_ {ij}))log \ frac {N} {df_ {i}} \:if \:tf_ {i、 j} \:\ geq1 \\ 0 \:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\ :\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:\:if \:tf_ {i、j} \:= 0 \ end {cases } $$
ここで、Nはドキュメントの総数です。
逆ドキュメント頻度(idf)
これはドキュメント頻度の重み付けの別の形式であり、idf重み付けまたは逆ドキュメント頻度重み付けと呼ばれることがよくあります。idfの重み付けの重要な点は、コレクション全体での用語の希少性がその重要性の尺度であり、重要性が発生頻度に反比例することです。
数学的には、
$$ idf_ {t} = log \ left(1+ \ frac {N} {n_ {t}} \ right)$$
$$ idf_ {t} = log \ left(\ frac {N-n_ {t}} {n_ {t}} \ right)$$
ここに、
N =コレクション内のドキュメント
n t =用語tを含むドキュメント
ユーザークエリの改善
情報検索システムの主な目標は、ユーザーの要件に従って関連するドキュメントを作成するための正確さでなければなりません。ただし、ここで発生する問題は、ユーザーのクエリ形成スタイルを改善することによって、出力をどのように改善できるかということです。確かに、IRシステムの出力はユーザーのクエリに依存しており、適切にフォーマットされたクエリはより正確な結果を生成します。ユーザーはの助けを借りて自分のクエリを改善することができますrelevance feedback、IRモデルの重要な側面。
関連性のフィードバック
関連性フィードバックは、指定されたクエリから最初に返される出力を受け取ります。この初期出力を使用して、ユーザー情報を収集し、その出力が新しいクエリの実行に関連しているかどうかを知ることができます。フィードバックは次のように分類できます-
明示的なフィードバック
これは、関連性の評価者から得られるフィードバックとして定義できます。これらの評価者は、クエリから取得したドキュメントの関連性も示します。クエリ検索のパフォーマンスを向上させるには、関連性フィードバック情報を元のクエリで補間する必要があります。
システムの評価者または他のユーザーは、以下の関連性システムを使用して、関連性を明示的に示すことができます-
Binary relevance system −この関連性フィードバックシステムは、ドキュメントが特定のクエリに関連性がある(1)または関連性がない(0)ことを示します。
Graded relevance system−採点された関連性フィードバックシステムは、数字、文字、または説明を使用した採点に基づいて、特定のクエリに対するドキュメントの関連性を示します。説明は、「関連性がない」、「やや関連性がある」、「非常に関連性がある」、「関連性がある」などのようになります。
暗黙のフィードバック
ユーザーの行動から推測されるのはフィードバックです。この動作には、ユーザーがドキュメントの表示に費やした時間、表示用に選択されたドキュメントと選択されていないドキュメント、ページの参照とスクロールアクションなどが含まれます。暗黙的なフィードバックの最良の例の1つは次のとおりです。dwell time、これは、ユーザーが検索結果でリンクされているページを表示するのに費やした時間の尺度です。
疑似フィードバック
ブラインドフィードバックとも呼ばれます。自動ローカル分析の方法を提供します。関連性フィードバックの手動部分は、疑似関連性フィードバックの助けを借りて自動化されているため、ユーザーは、長時間の対話なしで検索パフォーマンスを向上させることができます。このフィードバックシステムの主な利点は、明示的な関連性フィードバックシステムのように評価者を必要としないことです。
このフィードバックを実装するには、次の手順を検討してください-
Step 1−最初に、最初のクエリによって返された結果を関連する結果として取得する必要があります。関連する結果の範囲は、上位10〜50の結果に含まれている必要があります。
Step 2 −次に、たとえば用語頻度(tf)-逆ドキュメント頻度(idf)の重みを使用して、ドキュメントから上位20〜30の用語を選択します。
Step 3−これらの用語をクエリに追加し、返されたドキュメントと一致させます。次に、最も関連性の高いドキュメントを返します。