Re Reference AI

技術

TF-IDFとは

Term Frequency-Inverse Document Frequency

単語の出現頻度と、その単語が多くの文書に共通して現れるかどうかを掛け合わせ、文書における単語の重要度を測る統計的手法

検索自然言語処理

ひとことで言うと

その文書らしさを表す言葉ほど高得点にする、昔からある検索・重要語抽出の計算方法。

概要

TF-IDFは、文書における各単語の重要度をスコア化する統計的手法。 単語が特定の文書内でどれだけ頻繁に出現するか(TF: Term Frequency)を示す値と、その単語が文書集合全体でどれだけ多くの文書に出現するか(DF: Document Frequency)の逆数(IDF: Inverse Document Frequency)を掛け合わせて計算する。 「the」や「is」のようにほぼすべての文書に出現する単語はIDFが小さくなるため重要度は下がり、逆に特定の文書にだけ頻出する単語は重要度が高く評価される。 文書をTF-IDF値のベクトルとして表現することで、単語埋め込みのような意味理解を伴わずに、文書間の類似度計算やキーワード検索のスコアリングに利用できる。 BM25はTF-IDFの考え方を発展させ、文書長による正規化などを加えたアルゴリズムで、現在もキーワードベース検索の主要な手法として広く使われている。

背景

検索システムにおいて、単語の単純な出現回数だけでは「the」のような一般的な単語が過大評価されてしまう。 TF-IDFは、多くの文書に共通する単語の重みを下げることで、その文書に特徴的な単語をより重視するスコアリングを実現する目的で考案された。

歴史

1972年: Karen Spärck Jonesが逆文書頻度(IDF)の概念を提案する論文を発表。 1980年代: 情報検索(IR)分野でTF-IDFがベクトル空間モデルの重み付け手法として広く採用される。 2009年: TF-IDFを発展させたBM25が主要な検索エンジンの標準的なスコアリング手法として定着。

アーキテクチャ

TF(単語の出現頻度)は、対象文書内でのその単語の出現回数をそのまま使うか、文書長で正規化した値として計算する。 IDF(逆文書頻度)は、文書集合全体の文書数を、その単語が出現する文書数で割った値の対数として計算し、多くの文書に出現する単語ほど値が小さくなるよう設計されている。 最終的なTF-IDF値はTFとIDFの積として求まり、各文書は語彙数次元のTF-IDFベクトルとして表現される、ベクトル空間モデルの一種として構成される。

ワークフロー

文書集合内の各単語について、対象文書内での出現頻度(TF)を計算 → その単語が出現する文書数の割合の逆数からIDFを計算 → TFとIDFを掛け合わせてTF-IDF値を算出 → 各文書をTF-IDF値のベクトルとして表現し、検索クエリとのコサイン類似度計算などに利用する。

コード例

scikit-learnでのTF-IDF計算

from sklearn.feature_extraction.text import TfidfVectorizer

docs = [
    "AI is transforming technology",
    "Technology and AI are evolving fast",
    "The cat sat on the mat",
]
vectorizer = TfidfVectorizer()
tfidf_matrix = vectorizer.fit_transform(docs)
print(vectorizer.get_feature_names_out())
print(tfidf_matrix.toarray())

利点

  • 計算が軽量で、大規模な文書集合に対しても高速に処理できる
  • 学習データや事前学習モデルを必要とせず、統計量だけで重要度を計算できる
  • 検索結果のスコアリング根拠が明確で、解釈しやすい

欠点

  • 単語の表記が一致しないと類似と判定できず、同義語や言い換えに対応できない
  • 単語の並び順や文脈的な意味を考慮しないため、意味的な類似性の判定には限界がある
  • 埋め込みベースのセマンティック検索と比べ、意味理解を要するクエリへの対応力が低い

比較

  • BM25BM25はTF-IDFの考え方に文書長の正規化などを加えて発展させたキーワード検索アルゴリズム
  • セマンティック検索TF-IDFはキーワードの一致に基づく手法で、埋め込みによる意味的な類似度を使うセマンティック検索とは対照的
  • EmbeddingTF-IDFベクトルも一種の文書表現だが、意味を学習する埋め込みベクトルとは成り立ちが異なる

関連用語

BM25セマンティック検索NLPハイブリッド検索

よくある質問

TF-IDFとBM25はどちらを使うべき?

現在の実用的なキーワード検索では、より精度の高いBM25が広く使われている。TF-IDFは仕組みがシンプルで教育的にも理解しやすいため、基礎概念として紹介されることが多い。

TF-IDFは意味的な検索に使える?

単語の一致に基づくため、同義語や言い換えには対応できない。意味的な検索にはWord2VecBERTなどの埋め込みを使ったセマンティック検索が適している。

関連Zenn記事