TF-IDF
TF-IDFは、コレクション内の文書に対して、ある単語の重要度を term frequency(TF)と inverse document frequency(IDF)の積で重み付けする情報検索統計です。どこにでも現れる単語の重みを下げ、まれにしか現れない単語の重みを上げます。
TF-IDF = term frequency (TF) × inverse document frequency (IDF) は、文書内における単語の相対的重要度を数値化する、標準的な情報検索メトリクスです。
TFは、1つの文書の中でその単語がどれくらい頻繁に出現するかを示し、IDFは、文書コレクション全体の中でその単語がどれほど珍しいかを示します。
Karen Spärck Jones は1972年にIDFを導入し、このメトリクスは検索エンジン、テキストマイニング、文書分類で広く使われています。
公式見解および業界の共通認識では、Google はTF-IDFを直接的なランキング要因として使用していないため、SEOではあくまで指針として扱うのが安全です。
概要
TF-IDF(Term Frequency–Inverse Document Frequency)は、文書内で単語がどれだけ重要かを重み付けする情報検索統計であり、その単語がコレクション全体でどれほど一般的かを考慮して調整します。特定の文書では頻繁に出現する一方で、他の文書ではあまり見られない単語は、より高いスコアを得ます。つまり、ある文書を特徴づける重要な単語を浮かび上がらせるために使われます。
これは2つの要素から成り立っています。TF(term frequency)は、単一の文書内でその単語がどれくらい出現するかを見ており、出現頻度が高いほど、その文書にとってその単語がより重要であるとみなします。IDF(逆文書頻度)は、コレクション全体で見たときに単語がどれだけ珍しいかを測る指標であり、ほぼすべての文書に出現する一般的な単語(助詞や冠詞のような機能語など)の重みを下げ、限られた少数の文書にしか出現しない単語の重みを上げます。
計算
最も標準的な定義は次のとおりです。TFは1つの文書内における単語の割合、IDFは単語が出現する文書数で全文書数を割った値の対数であり、この2つを掛け合わせて最終スコアを算出します。
tf(t, d) = (文書 d における単語 t の出現回数) / (文書 d の総単語数)
idf(t, D) = log( N / df(t) )
N = 全文書数
df(t) = 単語 t が出現した文書数
tfidf(t, d, D) = tf(t, d) × idf(t, D)たとえば、1,000件の文書からなるコレクション(N = 1000)で、すべての1,000件の文書に出現する単語は idf = log(1000/1000) = 0 となるため、TFがどれほど高くても最終スコアは0に近づきます。逆に、その単語が10件の文書にしか出現しない場合は idf = log(1000/10) = log(100) となり、より大きな値になります。そのため、ある文書内での出現頻度が高いほどスコアは上がります。このように、単語ごとの重要度が差別化され、一般的な単語は抑えられ、珍しい単語は強調されます。
構成要素 | 何を測るか | 効果 |
|---|---|---|
TF(term frequency) | 1つの文書内で単語がどれくらいの頻度で出現するか | 単語が使われる頻度が高いほど、重みも高くなる |
IDF(inverse document frequency) | 文書コレクション全体における希少性 | 一般的な単語の重みを下げ、希少な単語の重みを上げる |
TF-IDF(積) | 文書内での相対的重要性 | その文書を特徴づける単語を強調する |
SEOでの活用と制限
TF-IDFは、Karen Spärck Jones が1972年にIDF(「term specificity」)を提唱して以来、検索エンジン、テキストマイニング、文書分類、レコメンデーションシステムで標準として使われてきた古典的な指標です。SEOツールはこの原理を借用し、上位表示されている競合文書が比較的頻繁に使用している単語を分析して、コンテンツ内で強化すべき候補語を提案します。
とはいえ、「GoogleがTF-IDFを直接のランキング要因として使っている」という一般的な見方には注意が必要です。GoogleのJohn Mueller氏はTF-IDFを「かなり古い指標で、この数年で物事はかなり進化している。ほかにも多くの指標がある」と説明しており、Search Engine Journalもこれを「間違いなく」ランキング要因ではないと結論づけています。その理由としては、(1) TF-IDFだけでは同じ単語を含む数百万、あるいは数十億もの文書を意味のある形で区別できないこと、(2) Googleは単語ベクトル、コサイン類似度、自然言語処理、意図と文脈のマッチングなど、より高度な手法を用いていること、(3) TF-IDFスコアを正確に算出するにはGoogleのインデックス全体が必要になるため、個々のサイトが直接最適化するのは難しいこと、が挙げられます。
実務では、TF-IDFを直接の最適化対象として扱うことは推奨されません。生の単語頻度を引き上げようとすると、やがてキーワード密度target, and from there intoキーワードの詰め込み。検索エンジンのあらゆる現代的な仕組みの根底には「出現頻度と文書の希少性」という核心原理があるため、TF-IDF は、直接スコアを追い求める対象というよりも、コンテンツがどのキーワードや関連語彙をカバーすべきかを確認するための参照フレームワークとして使うのが最適です。
参考文献と出典
tf–idf — Wikipedia(定義、式、Karen Spärck Jones による 1972 年の IDF 提案)
TF-IDF: Is It A Google Ranking Factor? — Search Engine Journal(Google のranking factorであるかどうか、John Mueller の発言)
Does Google Really Use TF-IDF? — MarketMuse(Google における TF-IDF の使用に関するバランスの取れた見解)
TF-IDFを理解する — GeeksforGeeks(TFとIDFの計算概念)